summaryrefslogtreecommitdiff
path: root/src/citra_qt/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'src/citra_qt/configuration')
-rw-r--r--src/citra_qt/configuration/config.cpp8
-rw-r--r--src/citra_qt/configuration/configure.ui15
-rw-r--r--src/citra_qt/configuration/configure_dialog.cpp1
-rw-r--r--src/citra_qt/configuration/configure_web.cpp52
-rw-r--r--src/citra_qt/configuration/configure_web.h30
-rw-r--r--src/citra_qt/configuration/configure_web.ui153
6 files changed, 257 insertions, 2 deletions
diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp
index 6e42db007..e2dceaa4c 100644
--- a/src/citra_qt/configuration/config.cpp
+++ b/src/citra_qt/configuration/config.cpp
@@ -139,10 +139,13 @@ void Config::ReadValues() {
139 qt_config->endGroup(); 139 qt_config->endGroup();
140 140
141 qt_config->beginGroup("WebService"); 141 qt_config->beginGroup("WebService");
142 Settings::values.enable_telemetry = qt_config->value("enable_telemetry", true).toBool();
142 Settings::values.telemetry_endpoint_url = 143 Settings::values.telemetry_endpoint_url =
143 qt_config->value("telemetry_endpoint_url", "https://services.citra-emu.org/api/telemetry") 144 qt_config->value("telemetry_endpoint_url", "https://services.citra-emu.org/api/telemetry")
144 .toString() 145 .toString()
145 .toStdString(); 146 .toStdString();
147 Settings::values.citra_username = qt_config->value("citra_username").toString().toStdString();
148 Settings::values.citra_token = qt_config->value("citra_token").toString().toStdString();
146 qt_config->endGroup(); 149 qt_config->endGroup();
147 150
148 qt_config->beginGroup("UI"); 151 qt_config->beginGroup("UI");
@@ -194,6 +197,7 @@ void Config::ReadValues() {
194 UISettings::values.show_status_bar = qt_config->value("showStatusBar", true).toBool(); 197 UISettings::values.show_status_bar = qt_config->value("showStatusBar", true).toBool();
195 UISettings::values.confirm_before_closing = qt_config->value("confirmClose", true).toBool(); 198 UISettings::values.confirm_before_closing = qt_config->value("confirmClose", true).toBool();
196 UISettings::values.first_start = qt_config->value("firstStart", true).toBool(); 199 UISettings::values.first_start = qt_config->value("firstStart", true).toBool();
200 UISettings::values.callout_flags = qt_config->value("calloutFlags", 0).toUInt();
197 201
198 qt_config->endGroup(); 202 qt_config->endGroup();
199} 203}
@@ -283,8 +287,11 @@ void Config::SaveValues() {
283 qt_config->endGroup(); 287 qt_config->endGroup();
284 288
285 qt_config->beginGroup("WebService"); 289 qt_config->beginGroup("WebService");
290 qt_config->setValue("enable_telemetry", Settings::values.enable_telemetry);
286 qt_config->setValue("telemetry_endpoint_url", 291 qt_config->setValue("telemetry_endpoint_url",
287 QString::fromStdString(Settings::values.telemetry_endpoint_url)); 292 QString::fromStdString(Settings::values.telemetry_endpoint_url));
293 qt_config->setValue("citra_username", QString::fromStdString(Settings::values.citra_username));
294 qt_config->setValue("citra_token", QString::fromStdString(Settings::values.citra_token));
288 qt_config->endGroup(); 295 qt_config->endGroup();
289 296
290 qt_config->beginGroup("UI"); 297 qt_config->beginGroup("UI");
@@ -320,6 +327,7 @@ void Config::SaveValues() {
320 qt_config->setValue("showStatusBar", UISettings::values.show_status_bar); 327 qt_config->setValue("showStatusBar", UISettings::values.show_status_bar);
321 qt_config->setValue("confirmClose", UISettings::values.confirm_before_closing); 328 qt_config->setValue("confirmClose", UISettings::values.confirm_before_closing);
322 qt_config->setValue("firstStart", UISettings::values.first_start); 329 qt_config->setValue("firstStart", UISettings::values.first_start);
330 qt_config->setValue("calloutFlags", UISettings::values.callout_flags);
323 331
324 qt_config->endGroup(); 332 qt_config->endGroup();
325} 333}
diff --git a/src/citra_qt/configuration/configure.ui b/src/citra_qt/configuration/configure.ui
index 85e206e42..6abd1917e 100644
--- a/src/citra_qt/configuration/configure.ui
+++ b/src/citra_qt/configuration/configure.ui
@@ -6,8 +6,8 @@
6 <rect> 6 <rect>
7 <x>0</x> 7 <x>0</x>
8 <y>0</y> 8 <y>0</y>
9 <width>441</width> 9 <width>740</width>
10 <height>501</height> 10 <height>500</height>
11 </rect> 11 </rect>
12 </property> 12 </property>
13 <property name="windowTitle"> 13 <property name="windowTitle">
@@ -49,6 +49,11 @@
49 <string>Debug</string> 49 <string>Debug</string>
50 </attribute> 50 </attribute>
51 </widget> 51 </widget>
52 <widget class="ConfigureWeb" name="webTab">
53 <attribute name="title">
54 <string>Web</string>
55 </attribute>
56 </widget>
52 </widget> 57 </widget>
53 </item> 58 </item>
54 <item> 59 <item>
@@ -97,6 +102,12 @@
97 <header>configuration/configure_graphics.h</header> 102 <header>configuration/configure_graphics.h</header>
98 <container>1</container> 103 <container>1</container>
99 </customwidget> 104 </customwidget>
105 <customwidget>
106 <class>ConfigureWeb</class>
107 <extends>QWidget</extends>
108 <header>configuration/configure_web.h</header>
109 <container>1</container>
110 </customwidget>
100 </customwidgets> 111 </customwidgets>
101 <resources/> 112 <resources/>
102 <connections> 113 <connections>
diff --git a/src/citra_qt/configuration/configure_dialog.cpp b/src/citra_qt/configuration/configure_dialog.cpp
index dfc8c03a7..b87dc0e6c 100644
--- a/src/citra_qt/configuration/configure_dialog.cpp
+++ b/src/citra_qt/configuration/configure_dialog.cpp
@@ -23,5 +23,6 @@ void ConfigureDialog::applyConfiguration() {
23 ui->graphicsTab->applyConfiguration(); 23 ui->graphicsTab->applyConfiguration();
24 ui->audioTab->applyConfiguration(); 24 ui->audioTab->applyConfiguration();
25 ui->debugTab->applyConfiguration(); 25 ui->debugTab->applyConfiguration();
26 ui->webTab->applyConfiguration();
26 Settings::Apply(); 27 Settings::Apply();
27} 28}
diff --git a/src/citra_qt/configuration/configure_web.cpp b/src/citra_qt/configuration/configure_web.cpp
new file mode 100644
index 000000000..8715fb018
--- /dev/null
+++ b/src/citra_qt/configuration/configure_web.cpp
@@ -0,0 +1,52 @@
1// Copyright 2017 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "citra_qt/configuration/configure_web.h"
6#include "core/settings.h"
7#include "core/telemetry_session.h"
8#include "ui_configure_web.h"
9
10ConfigureWeb::ConfigureWeb(QWidget* parent)
11 : QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) {
12 ui->setupUi(this);
13 connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this,
14 &ConfigureWeb::refreshTelemetryID);
15
16 this->setConfiguration();
17}
18
19ConfigureWeb::~ConfigureWeb() {}
20
21void ConfigureWeb::setConfiguration() {
22 ui->web_credentials_disclaimer->setWordWrap(true);
23 ui->telemetry_learn_more->setOpenExternalLinks(true);
24 ui->telemetry_learn_more->setText("<a "
25 "href='https://citra-emu.org/entry/"
26 "telemetry-and-why-thats-a-good-thing/'>Learn more</a>");
27
28 ui->web_signup_link->setOpenExternalLinks(true);
29 ui->web_signup_link->setText("<a href='https://services.citra-emu.org/'>Sign up</a>");
30 ui->web_token_info_link->setOpenExternalLinks(true);
31 ui->web_token_info_link->setText(
32 "<a href='https://citra-emu.org/wiki/citra-web-service/'>What is my token?</a>");
33
34 ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry);
35 ui->edit_username->setText(QString::fromStdString(Settings::values.citra_username));
36 ui->edit_token->setText(QString::fromStdString(Settings::values.citra_token));
37 ui->label_telemetry_id->setText("Telemetry ID: 0x" +
38 QString::number(Core::GetTelemetryId(), 16).toUpper());
39}
40
41void ConfigureWeb::applyConfiguration() {
42 Settings::values.enable_telemetry = ui->toggle_telemetry->isChecked();
43 Settings::values.citra_username = ui->edit_username->text().toStdString();
44 Settings::values.citra_token = ui->edit_token->text().toStdString();
45 Settings::Apply();
46}
47
48void ConfigureWeb::refreshTelemetryID() {
49 const u64 new_telemetry_id{Core::RegenerateTelemetryId()};
50 ui->label_telemetry_id->setText("Telemetry ID: 0x" +
51 QString::number(new_telemetry_id, 16).toUpper());
52}
diff --git a/src/citra_qt/configuration/configure_web.h b/src/citra_qt/configuration/configure_web.h
new file mode 100644
index 000000000..20bc254b9
--- /dev/null
+++ b/src/citra_qt/configuration/configure_web.h
@@ -0,0 +1,30 @@
1// Copyright 2017 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include <memory>
8#include <QWidget>
9
10namespace Ui {
11class ConfigureWeb;
12}
13
14class ConfigureWeb : public QWidget {
15 Q_OBJECT
16
17public:
18 explicit ConfigureWeb(QWidget* parent = nullptr);
19 ~ConfigureWeb();
20
21 void applyConfiguration();
22
23public slots:
24 void refreshTelemetryID();
25
26private:
27 void setConfiguration();
28
29 std::unique_ptr<Ui::ConfigureWeb> ui;
30};
diff --git a/src/citra_qt/configuration/configure_web.ui b/src/citra_qt/configuration/configure_web.ui
new file mode 100644
index 000000000..d8d283fad
--- /dev/null
+++ b/src/citra_qt/configuration/configure_web.ui
@@ -0,0 +1,153 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ui version="4.0">
3 <class>ConfigureWeb</class>
4 <widget class="QWidget" name="ConfigureWeb">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>400</width>
10 <height>300</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>Form</string>
15 </property>
16 <layout class="QVBoxLayout" name="verticalLayout">
17 <item>
18 <layout class="QVBoxLayout" name="verticalLayout_3">
19 <item>
20 <widget class="QGroupBox" name="groupBoxWebConfig">
21 <property name="title">
22 <string>Citra Web Service</string>
23 </property>
24 <layout class="QVBoxLayout" name="verticalLayoutCitraWebService">
25 <item>
26 <widget class="QLabel" name="web_credentials_disclaimer">
27 <property name="text">
28 <string>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</string>
29 </property>
30 </widget>
31 </item>
32 <item>
33 <layout class="QGridLayout" name="gridLayoutCitraUsername">
34 <item row="0" column="0">
35 <widget class="QLabel" name="label_username">
36 <property name="text">
37 <string>Username: </string>
38 </property>
39 </widget>
40 </item>
41 <item row="0" column="1">
42 <widget class="QLineEdit" name="edit_username">
43 <property name="maxLength">
44 <number>36</number>
45 </property>
46 </widget>
47 </item>
48 <item row="1" column="0">
49 <widget class="QLabel" name="label_token">
50 <property name="text">
51 <string>Token: </string>
52 </property>
53 </widget>
54 </item>
55 <item row="1" column="1">
56 <widget class="QLineEdit" name="edit_token">
57 <property name="maxLength">
58 <number>36</number>
59 </property>
60 <property name="echoMode">
61 <enum>QLineEdit::Password</enum>
62 </property>
63 </widget>
64 </item>
65 <item row="2" column="0">
66 <widget class="QLabel" name="web_signup_link">
67 <property name="text">
68 <string>Sign up</string>
69 </property>
70 </widget>
71 </item>
72 <item row="2" column="1">
73 <widget class="QLabel" name="web_token_info_link">
74 <property name="text">
75 <string>What is my token?</string>
76 </property>
77 </widget>
78 </item>
79 </layout>
80 </item>
81 </layout>
82 </widget>
83 </item>
84 <item>
85 <widget class="QGroupBox" name="groupBox">
86 <property name="title">
87 <string>Telemetry</string>
88 </property>
89 <layout class="QVBoxLayout" name="verticalLayout_2">
90 <item>
91 <widget class="QCheckBox" name="toggle_telemetry">
92 <property name="text">
93 <string>Share anonymous usage data with the Citra team</string>
94 </property>
95 </widget>
96 </item>
97 <item>
98 <widget class="QLabel" name="telemetry_learn_more">
99 <property name="text">
100 <string>Learn more</string>
101 </property>
102 </widget>
103 </item>
104 <item>
105 <layout class="QGridLayout" name="gridLayoutTelemetryId">
106 <item row="0" column="0">
107 <widget class="QLabel" name="label_telemetry_id">
108 <property name="text">
109 <string>Telemetry ID:</string>
110 </property>
111 </widget>
112 </item>
113 <item row="0" column="1">
114 <widget class="QPushButton" name="button_regenerate_telemetry_id">
115 <property name="sizePolicy">
116 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
117 <horstretch>0</horstretch>
118 <verstretch>0</verstretch>
119 </sizepolicy>
120 </property>
121 <property name="layoutDirection">
122 <enum>Qt::RightToLeft</enum>
123 </property>
124 <property name="text">
125 <string>Regenerate</string>
126 </property>
127 </widget>
128 </item>
129 </layout>
130 </item>
131 </layout>
132 </widget>
133 </item>
134 </layout>
135 </item>
136 <item>
137 <spacer name="verticalSpacer">
138 <property name="orientation">
139 <enum>Qt::Vertical</enum>
140 </property>
141 <property name="sizeHint" stdset="0">
142 <size>
143 <width>20</width>
144 <height>40</height>
145 </size>
146 </property>
147 </spacer>
148 </item>
149 </layout>
150 </widget>
151 <resources/>
152 <connections/>
153</ui>