aboutsummaryrefslogtreecommitdiff
path: root/src/aooptionsdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/aooptionsdialog.cpp')
-rw-r--r--src/aooptionsdialog.cpp42
1 files changed, 37 insertions, 5 deletions
diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp
index b752038..589bc92 100644
--- a/src/aooptionsdialog.cpp
+++ b/src/aooptionsdialog.cpp
@@ -3,6 +3,7 @@
#include "courtroom.h"
#include "lobby.h"
#include "bass.h"
+#include "networkmanager.h"
#include <QFileDialog>
@@ -381,10 +382,9 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
row += 1;
ui_ms_lbl = new QLabel(ui_form_layout_widget);
- ui_ms_lbl->setText(tr("Backup MS:"));
+ ui_ms_lbl->setText(tr("Alternate Server List:"));
ui_ms_lbl->setToolTip(
- tr("If the built-in server lookups fail, the game will try the "
- "address given here and use it as a backup master server address."));
+ tr("Overrides the base URL to retrieve server information from."));
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_ms_lbl);
@@ -1067,6 +1067,30 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
ui_mount_down->setEnabled(false);
});
+ // Privacy tab
+ ui_privacy_tab = new QWidget(this);
+ ui_settings_tabs->addTab(ui_privacy_tab, tr("Privacy"));
+
+ ui_privacy_layout = new QVBoxLayout(ui_privacy_tab);
+
+ ui_privacy_optout_cb = new QCheckBox(ui_privacy_tab);
+ ui_privacy_optout_cb->setText(tr("Do not include me in public player counts"));
+ ui_privacy_layout->addWidget(ui_privacy_optout_cb);
+
+ ui_privacy_separator = new QFrame(ui_privacy_tab);
+ ui_privacy_separator->setObjectName(QString::fromUtf8("line"));
+ ui_privacy_separator->setFrameShape(QFrame::HLine);
+ ui_privacy_separator->setFrameShadow(QFrame::Sunken);
+ ui_privacy_layout->addWidget(ui_privacy_separator);
+
+ ui_privacy_policy = new QTextBrowser(ui_privacy_tab);
+ QSizePolicy privacySizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ sizePolicy.setHorizontalStretch(0);
+ sizePolicy.setVerticalStretch(0);
+ ui_privacy_policy->setSizePolicy(privacySizePolicy);
+ ui_privacy_policy->setPlainText(tr("Getting privacy policy..."));
+ ui_privacy_layout->addWidget(ui_privacy_policy);
+
update_values();
// When we're done, we should continue the updates!
@@ -1150,6 +1174,15 @@ void AOOptionsDialog::update_values() {
defaultMount->setFlags(Qt::ItemFlag::NoItemFlags);
ui_mount_list->addItem(defaultMount);
ui_mount_list->addItems(ao_app->get_mount_paths());
+
+ ui_privacy_optout_cb->setChecked(ao_app->get_player_count_optout());
+
+ ao_app->net_manager->request_document(MSDocumentType::PrivacyPolicy, [this](QString document) {
+ if (document.isEmpty()) {
+ document = tr("Couldn't get the privacy policy.");
+ }
+ ui_privacy_policy->setHtml(document);
+ });
}
void AOOptionsDialog::save_pressed()
@@ -1225,6 +1258,7 @@ void AOOptionsDialog::save_pressed()
configini->setValue("casing_cm_enabled", ui_casing_cm_cb->isChecked());
configini->setValue("casing_can_host_cases",
ui_casing_cm_cases_textbox->text());
+ configini->setValue("player_count_optout", ui_privacy_optout_cb->isChecked());
QStringList mountPaths;
for (int i = 1; i < ui_mount_list->count(); i++)
@@ -1237,8 +1271,6 @@ void AOOptionsDialog::save_pressed()
if (asset_cache_dirty)
ao_app->invalidate_lookup_cache();
- callwordsini->close();
-
// We most probably pressed "Restore defaults" at some point. Since we're saving our settings, remove the temporary file.
if (QFile::exists(ao_app->get_base_path() + "config.temp"))
QFile::remove(ao_app->get_base_path() + "config.temp");