diff options
Diffstat (limited to 'src/aooptionsdialog.cpp')
| -rw-r--r-- | src/aooptionsdialog.cpp | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp index 1b9342c3..54a11e13 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> @@ -1058,6 +1059,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! @@ -1140,6 +1165,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() @@ -1214,19 +1248,18 @@ 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++) mountPaths.append(ui_mount_list->item(i)->text()); configini->setValue("mount_paths", mountPaths); - if (audioChanged) - ao_app->initBASS(); - if (asset_cache_dirty) ao_app->invalidate_lookup_cache(); - callwordsini->close(); + if (audioChanged) + ao_app->initBASS(); // 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")) |
