diff options
Diffstat (limited to 'src/aooptionsdialog.cpp')
| -rw-r--r-- | src/aooptionsdialog.cpp | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp index b752038e..5fd80b70 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> @@ -1067,6 +1068,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 +1175,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 +1259,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 +1272,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"); |
