From ecb45ef6df11cab92e0ef56b2873bb5da3be8010 Mon Sep 17 00:00:00 2001 From: Eladash Date: Sat, 16 Sep 2023 22:27:21 +0300 Subject: [PATCH] Welcome Dialog: Add ability to set Dark Theme --- rpcs3/rpcs3qt/gui_application.cpp | 9 +++++++++ rpcs3/rpcs3qt/welcome_dialog.cpp | 10 ++++++++++ rpcs3/rpcs3qt/welcome_dialog.h | 5 +++++ rpcs3/rpcs3qt/welcome_dialog.ui | 7 +++++++ 4 files changed, 31 insertions(+) diff --git a/rpcs3/rpcs3qt/gui_application.cpp b/rpcs3/rpcs3qt/gui_application.cpp index 982e1632ed..f20d791d6b 100644 --- a/rpcs3/rpcs3qt/gui_application.cpp +++ b/rpcs3/rpcs3qt/gui_application.cpp @@ -135,10 +135,19 @@ bool gui_application::Init() // Create connects to propagate events throughout Gui. InitializeConnects(); + bool set_dark_theme = false; + if (m_gui_settings->GetValue(gui::ib_show_welcome).toBool()) { welcome_dialog* welcome = new welcome_dialog(m_gui_settings, false); welcome->exec(); + + if (welcome->does_user_want_dark_theme()) + { + m_gui_settings->SetValue(gui::m_currentStylesheet, "Darker Style by TheMitoSan"); + } + + m_gui_settings->sync(); } // Check maxfiles diff --git a/rpcs3/rpcs3qt/welcome_dialog.cpp b/rpcs3/rpcs3qt/welcome_dialog.cpp index 32677a9396..d06275eabe 100644 --- a/rpcs3/rpcs3qt/welcome_dialog.cpp +++ b/rpcs3/rpcs3qt/welcome_dialog.cpp @@ -10,6 +10,13 @@ #include #include #include +#include +#include + +static bool recommend_dark_theme() +{ + return QGuiApplication::styleHints()->colorScheme() == Qt::ColorScheme::Dark; +} welcome_dialog::welcome_dialog(std::shared_ptr gui_settings, bool is_manual_show, QWidget* parent) : QDialog(parent) @@ -26,6 +33,7 @@ welcome_dialog::welcome_dialog(std::shared_ptr gui_settings, bool ui->i_have_read->setEnabled(!is_manual_show); ui->do_not_show->setEnabled(!is_manual_show); ui->do_not_show->setChecked(!m_gui_settings->GetValue(gui::ib_show_welcome).toBool()); + ui->use_dark_theme->setChecked(recommend_dark_theme()); ui->icon_label->load(QStringLiteral(":/rpcs3.svg")); ui->label_3->setText(tr( R"( @@ -85,6 +93,8 @@ welcome_dialog::welcome_dialog(std::shared_ptr gui_settings, bool { gui::utils::create_shortcut("RPCS3", "", "RPCS3", ":/rpcs3.svg", fs::get_temp_dir(), gui::utils::shortcut_location::applications); } + + m_user_wants_dark_theme = ui->use_dark_theme->isChecked(); }); } diff --git a/rpcs3/rpcs3qt/welcome_dialog.h b/rpcs3/rpcs3qt/welcome_dialog.h index 3f04cfdb9f..6e32117e2c 100644 --- a/rpcs3/rpcs3qt/welcome_dialog.h +++ b/rpcs3/rpcs3qt/welcome_dialog.h @@ -17,7 +17,12 @@ public: explicit welcome_dialog(std::shared_ptr gui_settings, bool is_manual_show, QWidget* parent = nullptr); ~welcome_dialog(); + bool does_user_want_dark_theme() const + { + return m_user_wants_dark_theme; + } private: std::unique_ptr ui; std::shared_ptr m_gui_settings; + bool m_user_wants_dark_theme = false; }; diff --git a/rpcs3/rpcs3qt/welcome_dialog.ui b/rpcs3/rpcs3qt/welcome_dialog.ui index 6eb517402d..a1026854ee 100644 --- a/rpcs3/rpcs3qt/welcome_dialog.ui +++ b/rpcs3/rpcs3qt/welcome_dialog.ui @@ -198,6 +198,13 @@ + + + + Use Dark Theme (Can Be Configured Later) + + +