Browse Source
Merge pull request #2897 from bunnei/telemetry-ui
Merge pull request #2897 from bunnei/telemetry-ui
Telemetry UI and final touchespull/15/merge
committed by
GitHub
20 changed files with 446 additions and 48 deletions
-
2src/citra/citra.cpp
-
4src/citra/config.cpp
-
9src/citra/default_ini.h
-
3src/citra_qt/CMakeLists.txt
-
8src/citra_qt/configuration/config.cpp
-
15src/citra_qt/configuration/configure.ui
-
1src/citra_qt/configuration/configure_dialog.cpp
-
52src/citra_qt/configuration/configure_web.cpp
-
30src/citra_qt/configuration/configure_web.h
-
153src/citra_qt/configuration/configure_web.ui
-
46src/citra_qt/main.cpp
-
2src/citra_qt/main.h
-
2src/citra_qt/ui_settings.h
-
3src/core/settings.h
-
57src/core/telemetry_session.cpp
-
12src/core/telemetry_session.h
-
3src/web_service/telemetry_json.cpp
-
7src/web_service/telemetry_json.h
-
67src/web_service/web_backend.cpp
-
18src/web_service/web_backend.h
@ -0,0 +1,52 @@ |
|||
// Copyright 2017 Citra Emulator Project
|
|||
// Licensed under GPLv2 or any later version
|
|||
// Refer to the license.txt file included.
|
|||
|
|||
#include "citra_qt/configuration/configure_web.h"
|
|||
#include "core/settings.h"
|
|||
#include "core/telemetry_session.h"
|
|||
#include "ui_configure_web.h"
|
|||
|
|||
ConfigureWeb::ConfigureWeb(QWidget* parent) |
|||
: QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) { |
|||
ui->setupUi(this); |
|||
connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this, |
|||
&ConfigureWeb::refreshTelemetryID); |
|||
|
|||
this->setConfiguration(); |
|||
} |
|||
|
|||
ConfigureWeb::~ConfigureWeb() {} |
|||
|
|||
void ConfigureWeb::setConfiguration() { |
|||
ui->web_credentials_disclaimer->setWordWrap(true); |
|||
ui->telemetry_learn_more->setOpenExternalLinks(true); |
|||
ui->telemetry_learn_more->setText("<a " |
|||
"href='https://citra-emu.org/entry/" |
|||
"telemetry-and-why-thats-a-good-thing/'>Learn more</a>"); |
|||
|
|||
ui->web_signup_link->setOpenExternalLinks(true); |
|||
ui->web_signup_link->setText("<a href='https://services.citra-emu.org/'>Sign up</a>"); |
|||
ui->web_token_info_link->setOpenExternalLinks(true); |
|||
ui->web_token_info_link->setText( |
|||
"<a href='https://citra-emu.org/wiki/citra-web-service/'>What is my token?</a>"); |
|||
|
|||
ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry); |
|||
ui->edit_username->setText(QString::fromStdString(Settings::values.citra_username)); |
|||
ui->edit_token->setText(QString::fromStdString(Settings::values.citra_token)); |
|||
ui->label_telemetry_id->setText("Telemetry ID: 0x" + |
|||
QString::number(Core::GetTelemetryId(), 16).toUpper()); |
|||
} |
|||
|
|||
void ConfigureWeb::applyConfiguration() { |
|||
Settings::values.enable_telemetry = ui->toggle_telemetry->isChecked(); |
|||
Settings::values.citra_username = ui->edit_username->text().toStdString(); |
|||
Settings::values.citra_token = ui->edit_token->text().toStdString(); |
|||
Settings::Apply(); |
|||
} |
|||
|
|||
void ConfigureWeb::refreshTelemetryID() { |
|||
const u64 new_telemetry_id{Core::RegenerateTelemetryId()}; |
|||
ui->label_telemetry_id->setText("Telemetry ID: 0x" + |
|||
QString::number(new_telemetry_id, 16).toUpper()); |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
// Copyright 2017 Citra Emulator Project |
|||
// Licensed under GPLv2 or any later version |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
#include <memory> |
|||
#include <QWidget> |
|||
|
|||
namespace Ui { |
|||
class ConfigureWeb; |
|||
} |
|||
|
|||
class ConfigureWeb : public QWidget { |
|||
Q_OBJECT |
|||
|
|||
public: |
|||
explicit ConfigureWeb(QWidget* parent = nullptr); |
|||
~ConfigureWeb(); |
|||
|
|||
void applyConfiguration(); |
|||
|
|||
public slots: |
|||
void refreshTelemetryID(); |
|||
|
|||
private: |
|||
void setConfiguration(); |
|||
|
|||
std::unique_ptr<Ui::ConfigureWeb> ui; |
|||
}; |
|||
@ -0,0 +1,153 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<ui version="4.0"> |
|||
<class>ConfigureWeb</class> |
|||
<widget class="QWidget" name="ConfigureWeb"> |
|||
<property name="geometry"> |
|||
<rect> |
|||
<x>0</x> |
|||
<y>0</y> |
|||
<width>400</width> |
|||
<height>300</height> |
|||
</rect> |
|||
</property> |
|||
<property name="windowTitle"> |
|||
<string>Form</string> |
|||
</property> |
|||
<layout class="QVBoxLayout" name="verticalLayout"> |
|||
<item> |
|||
<layout class="QVBoxLayout" name="verticalLayout_3"> |
|||
<item> |
|||
<widget class="QGroupBox" name="groupBoxWebConfig"> |
|||
<property name="title"> |
|||
<string>Citra Web Service</string> |
|||
</property> |
|||
<layout class="QVBoxLayout" name="verticalLayoutCitraWebService"> |
|||
<item> |
|||
<widget class="QLabel" name="web_credentials_disclaimer"> |
|||
<property name="text"> |
|||
<string>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item> |
|||
<layout class="QGridLayout" name="gridLayoutCitraUsername"> |
|||
<item row="0" column="0"> |
|||
<widget class="QLabel" name="label_username"> |
|||
<property name="text"> |
|||
<string>Username: </string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item row="0" column="1"> |
|||
<widget class="QLineEdit" name="edit_username"> |
|||
<property name="maxLength"> |
|||
<number>36</number> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item row="1" column="0"> |
|||
<widget class="QLabel" name="label_token"> |
|||
<property name="text"> |
|||
<string>Token: </string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item row="1" column="1"> |
|||
<widget class="QLineEdit" name="edit_token"> |
|||
<property name="maxLength"> |
|||
<number>36</number> |
|||
</property> |
|||
<property name="echoMode"> |
|||
<enum>QLineEdit::Password</enum> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item row="2" column="0"> |
|||
<widget class="QLabel" name="web_signup_link"> |
|||
<property name="text"> |
|||
<string>Sign up</string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item row="2" column="1"> |
|||
<widget class="QLabel" name="web_token_info_link"> |
|||
<property name="text"> |
|||
<string>What is my token?</string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
</layout> |
|||
</item> |
|||
</layout> |
|||
</widget> |
|||
</item> |
|||
<item> |
|||
<widget class="QGroupBox" name="groupBox"> |
|||
<property name="title"> |
|||
<string>Telemetry</string> |
|||
</property> |
|||
<layout class="QVBoxLayout" name="verticalLayout_2"> |
|||
<item> |
|||
<widget class="QCheckBox" name="toggle_telemetry"> |
|||
<property name="text"> |
|||
<string>Share anonymous usage data with the Citra team</string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item> |
|||
<widget class="QLabel" name="telemetry_learn_more"> |
|||
<property name="text"> |
|||
<string>Learn more</string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item> |
|||
<layout class="QGridLayout" name="gridLayoutTelemetryId"> |
|||
<item row="0" column="0"> |
|||
<widget class="QLabel" name="label_telemetry_id"> |
|||
<property name="text"> |
|||
<string>Telemetry ID:</string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
<item row="0" column="1"> |
|||
<widget class="QPushButton" name="button_regenerate_telemetry_id"> |
|||
<property name="sizePolicy"> |
|||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed"> |
|||
<horstretch>0</horstretch> |
|||
<verstretch>0</verstretch> |
|||
</sizepolicy> |
|||
</property> |
|||
<property name="layoutDirection"> |
|||
<enum>Qt::RightToLeft</enum> |
|||
</property> |
|||
<property name="text"> |
|||
<string>Regenerate</string> |
|||
</property> |
|||
</widget> |
|||
</item> |
|||
</layout> |
|||
</item> |
|||
</layout> |
|||
</widget> |
|||
</item> |
|||
</layout> |
|||
</item> |
|||
<item> |
|||
<spacer name="verticalSpacer"> |
|||
<property name="orientation"> |
|||
<enum>Qt::Vertical</enum> |
|||
</property> |
|||
<property name="sizeHint" stdset="0"> |
|||
<size> |
|||
<width>20</width> |
|||
<height>40</height> |
|||
</size> |
|||
</property> |
|||
</spacer> |
|||
</item> |
|||
</layout> |
|||
</widget> |
|||
<resources/> |
|||
<connections/> |
|||
</ui> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue