aboutsummaryrefslogtreecommitdiff
path: root/src/aooptionsdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/aooptionsdialog.cpp')
-rw-r--r--src/aooptionsdialog.cpp37
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");