diff --git a/src/duckstation-qt/CMakeLists.txt b/src/duckstation-qt/CMakeLists.txt index a00ef65cb..03f30745a 100644 --- a/src/duckstation-qt/CMakeLists.txt +++ b/src/duckstation-qt/CMakeLists.txt @@ -3,7 +3,7 @@ set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) add_executable(duckstation-qt - resources/icons.qrc + resources/resources.qrc aboutdialog.cpp aboutdialog.h advancedsettingswidget.cpp diff --git a/src/duckstation-qt/duckstation-qt.vcxproj b/src/duckstation-qt/duckstation-qt.vcxproj index 1b55b2df5..bbbb62936 100644 --- a/src/duckstation-qt/duckstation-qt.vcxproj +++ b/src/duckstation-qt/duckstation-qt.vcxproj @@ -148,7 +148,7 @@ - + Document @@ -171,7 +171,7 @@ - + diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp index 7aa1f2368..67ee2f97b 100644 --- a/src/duckstation-qt/mainwindow.cpp +++ b/src/duckstation-qt/mainwindow.cpp @@ -16,6 +16,7 @@ #include "settingsdialog.h" #include "settingwidgetbinder.h" #include +#include #include #include #include @@ -40,6 +41,7 @@ MainWindow::MainWindow(QtHostInterface* host_interface) : QMainWindow(nullptr), m_ui.setupUi(this); setupAdditionalUi(); connectSignals(); + updateTheme(); resize(800, 700); } @@ -603,6 +605,52 @@ void MainWindow::connectSignals() SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.actionDebugShowTimersState, "Debug/ShowTimersState"); SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.actionDebugShowMDECState, "Debug/ShowMDECState"); + + addThemeToMenu(tr("Default"), QStringLiteral("default")); + addThemeToMenu(tr("Dark"), QStringLiteral("qdarkstyle")); +} + +void MainWindow::addThemeToMenu(const QString& name, const QString& key) +{ + QAction* action = m_ui.menuSettingsTheme->addAction(name); + action->setCheckable(true); + action->setData(key); + connect(action, &QAction::toggled, [this, key](bool) { setTheme(key); }); +} + +void MainWindow::setTheme(const QString& theme) +{ + m_host_interface->putSettingValue(QStringLiteral("UI/Theme"), theme); + updateTheme(); +} + +void MainWindow::updateTheme() +{ + QString theme = m_host_interface->getSettingValue(QStringLiteral("UI/Theme"), QStringLiteral("default")).toString(); + if (theme == QStringLiteral("qdarkstyle")) + { + QFile f(QStringLiteral(":qdarkstyle/style.qss")); + if (f.open(QFile::ReadOnly | QFile::Text)) + qApp->setStyleSheet(f.readAll()); + } + else + { + qApp->setStyleSheet(QString()); + } + + for (QObject* obj : m_ui.menuSettingsTheme->children()) + { + QAction* action = qobject_cast(obj); + if (action) + { + QVariant action_data(action->data()); + if (action_data.isValid()) + { + QSignalBlocker blocker(action); + action->setChecked(action_data == theme); + } + } + } } SettingsDialog* MainWindow::getSettingsDialog() diff --git a/src/duckstation-qt/mainwindow.h b/src/duckstation-qt/mainwindow.h index df4ce7fa7..3d6440c61 100644 --- a/src/duckstation-qt/mainwindow.h +++ b/src/duckstation-qt/mainwindow.h @@ -35,6 +35,9 @@ private Q_SLOTS: void destroyDisplay(); void focusDisplayWidget(); + void setTheme(const QString& theme); + void updateTheme(); + void onEmulationStarting(); void onEmulationStarted(); void onEmulationStopped(); @@ -65,6 +68,7 @@ protected: private: void setupAdditionalUi(); void connectSignals(); + void addThemeToMenu(const QString& name, const QString& key); void updateEmulationActions(bool starting, bool running); void switchToGameListView(); void switchToEmulationView(); diff --git a/src/duckstation-qt/mainwindow.ui b/src/duckstation-qt/mainwindow.ui index c1cbcd42e..19e2a6e6f 100644 --- a/src/duckstation-qt/mainwindow.ui +++ b/src/duckstation-qt/mainwindow.ui @@ -85,6 +85,11 @@ S&ettings + + + Theme + + @@ -101,6 +106,7 @@ + diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_down.png b/src/duckstation-qt/resources/qdarkstyle/arrow_down.png new file mode 100644 index 000000000..c4e6894ba Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_down.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_down@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_down@2x.png new file mode 100644 index 000000000..bb8cbed0d Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_down@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_down_disabled.png b/src/duckstation-qt/resources/qdarkstyle/arrow_down_disabled.png new file mode 100644 index 000000000..aa1d06c08 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_down_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_down_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_down_disabled@2x.png new file mode 100644 index 000000000..86bf434b8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_down_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_down_focus.png b/src/duckstation-qt/resources/qdarkstyle/arrow_down_focus.png new file mode 100644 index 000000000..1c42ee8f6 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_down_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_down_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_down_focus@2x.png new file mode 100644 index 000000000..7374637c5 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_down_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_down_pressed.png b/src/duckstation-qt/resources/qdarkstyle/arrow_down_pressed.png new file mode 100644 index 000000000..8139ee3e8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_down_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_down_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_down_pressed@2x.png new file mode 100644 index 000000000..5e9d225ff Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_down_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_left.png b/src/duckstation-qt/resources/qdarkstyle/arrow_left.png new file mode 100644 index 000000000..ef929fdf0 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_left.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_left@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_left@2x.png new file mode 100644 index 000000000..c8923d6f4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_left@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_left_disabled.png b/src/duckstation-qt/resources/qdarkstyle/arrow_left_disabled.png new file mode 100644 index 000000000..9c69561a7 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_left_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_left_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_left_disabled@2x.png new file mode 100644 index 000000000..e52114312 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_left_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_left_focus.png b/src/duckstation-qt/resources/qdarkstyle/arrow_left_focus.png new file mode 100644 index 000000000..a1f070455 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_left_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_left_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_left_focus@2x.png new file mode 100644 index 000000000..c4267e856 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_left_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_left_pressed.png b/src/duckstation-qt/resources/qdarkstyle/arrow_left_pressed.png new file mode 100644 index 000000000..bd706cbdd Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_left_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_left_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_left_pressed@2x.png new file mode 100644 index 000000000..341b2e541 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_left_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_right.png b/src/duckstation-qt/resources/qdarkstyle/arrow_right.png new file mode 100644 index 000000000..4f3388505 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_right.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_right@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_right@2x.png new file mode 100644 index 000000000..94b260965 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_right@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_right_disabled.png b/src/duckstation-qt/resources/qdarkstyle/arrow_right_disabled.png new file mode 100644 index 000000000..0fbc6b04c Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_right_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_right_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_right_disabled@2x.png new file mode 100644 index 000000000..8e9272a5b Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_right_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_right_focus.png b/src/duckstation-qt/resources/qdarkstyle/arrow_right_focus.png new file mode 100644 index 000000000..764940945 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_right_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_right_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_right_focus@2x.png new file mode 100644 index 000000000..6d52b5fa3 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_right_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_right_pressed.png b/src/duckstation-qt/resources/qdarkstyle/arrow_right_pressed.png new file mode 100644 index 000000000..a5f04522a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_right_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_right_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_right_pressed@2x.png new file mode 100644 index 000000000..6f6a8130c Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_right_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_up.png b/src/duckstation-qt/resources/qdarkstyle/arrow_up.png new file mode 100644 index 000000000..61d7574a4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_up.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_up@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_up@2x.png new file mode 100644 index 000000000..d711fae16 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_up@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_up_disabled.png b/src/duckstation-qt/resources/qdarkstyle/arrow_up_disabled.png new file mode 100644 index 000000000..18e8ecd8d Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_up_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_up_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_up_disabled@2x.png new file mode 100644 index 000000000..fb4defb52 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_up_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_up_focus.png b/src/duckstation-qt/resources/qdarkstyle/arrow_up_focus.png new file mode 100644 index 000000000..a7acd9b66 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_up_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_up_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_up_focus@2x.png new file mode 100644 index 000000000..9cd982a1d Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_up_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_up_pressed.png b/src/duckstation-qt/resources/qdarkstyle/arrow_up_pressed.png new file mode 100644 index 000000000..390a80e21 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_up_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/arrow_up_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/arrow_up_pressed@2x.png new file mode 100644 index 000000000..dd352cff3 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/arrow_up_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/base_icon.png b/src/duckstation-qt/resources/qdarkstyle/base_icon.png new file mode 100644 index 000000000..37a6158cc Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/base_icon.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/base_icon@2x.png b/src/duckstation-qt/resources/qdarkstyle/base_icon@2x.png new file mode 100644 index 000000000..e6e5cb916 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/base_icon@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/base_icon_disabled.png b/src/duckstation-qt/resources/qdarkstyle/base_icon_disabled.png new file mode 100644 index 000000000..37a6158cc Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/base_icon_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/base_icon_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/base_icon_disabled@2x.png new file mode 100644 index 000000000..e6e5cb916 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/base_icon_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/base_icon_focus.png b/src/duckstation-qt/resources/qdarkstyle/base_icon_focus.png new file mode 100644 index 000000000..37a6158cc Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/base_icon_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/base_icon_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/base_icon_focus@2x.png new file mode 100644 index 000000000..e6e5cb916 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/base_icon_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/base_icon_pressed.png b/src/duckstation-qt/resources/qdarkstyle/base_icon_pressed.png new file mode 100644 index 000000000..37a6158cc Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/base_icon_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/base_icon_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/base_icon_pressed@2x.png new file mode 100644 index 000000000..e6e5cb916 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/base_icon_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_closed.png b/src/duckstation-qt/resources/qdarkstyle/branch_closed.png new file mode 100644 index 000000000..53e2c51f5 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_closed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_closed@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_closed@2x.png new file mode 100644 index 000000000..06cdefa5f Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_closed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_closed_disabled.png b/src/duckstation-qt/resources/qdarkstyle/branch_closed_disabled.png new file mode 100644 index 000000000..5106a1438 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_closed_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_closed_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_closed_disabled@2x.png new file mode 100644 index 000000000..180bae9e6 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_closed_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_closed_focus.png b/src/duckstation-qt/resources/qdarkstyle/branch_closed_focus.png new file mode 100644 index 000000000..c227f9f71 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_closed_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_closed_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_closed_focus@2x.png new file mode 100644 index 000000000..ad23d0d33 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_closed_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_closed_pressed.png b/src/duckstation-qt/resources/qdarkstyle/branch_closed_pressed.png new file mode 100644 index 000000000..90845a81f Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_closed_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_closed_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_closed_pressed@2x.png new file mode 100644 index 000000000..60aaeb7fb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_closed_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_end.png b/src/duckstation-qt/resources/qdarkstyle/branch_end.png new file mode 100644 index 000000000..08b5559b2 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_end.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_end@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_end@2x.png new file mode 100644 index 000000000..ae6dbe991 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_end@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_end_disabled.png b/src/duckstation-qt/resources/qdarkstyle/branch_end_disabled.png new file mode 100644 index 000000000..027a8894a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_end_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_end_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_end_disabled@2x.png new file mode 100644 index 000000000..43c1b0c76 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_end_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_end_focus.png b/src/duckstation-qt/resources/qdarkstyle/branch_end_focus.png new file mode 100644 index 000000000..fdb3160bb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_end_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_end_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_end_focus@2x.png new file mode 100644 index 000000000..3ca890449 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_end_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_end_pressed.png b/src/duckstation-qt/resources/qdarkstyle/branch_end_pressed.png new file mode 100644 index 000000000..1c2432dd4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_end_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_end_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_end_pressed@2x.png new file mode 100644 index 000000000..af0f8fa5a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_end_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_line.png b/src/duckstation-qt/resources/qdarkstyle/branch_line.png new file mode 100644 index 000000000..a3a564e44 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_line.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_line@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_line@2x.png new file mode 100644 index 000000000..1dbf71fc7 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_line@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_line_disabled.png b/src/duckstation-qt/resources/qdarkstyle/branch_line_disabled.png new file mode 100644 index 000000000..ecc7e6d93 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_line_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_line_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_line_disabled@2x.png new file mode 100644 index 000000000..adc6446c9 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_line_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_line_focus.png b/src/duckstation-qt/resources/qdarkstyle/branch_line_focus.png new file mode 100644 index 000000000..0037f175a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_line_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_line_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_line_focus@2x.png new file mode 100644 index 000000000..cb257a914 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_line_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_line_pressed.png b/src/duckstation-qt/resources/qdarkstyle/branch_line_pressed.png new file mode 100644 index 000000000..2d0856527 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_line_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_line_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_line_pressed@2x.png new file mode 100644 index 000000000..803708fb4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_line_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_more.png b/src/duckstation-qt/resources/qdarkstyle/branch_more.png new file mode 100644 index 000000000..31b6cee87 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_more.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_more@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_more@2x.png new file mode 100644 index 000000000..f1f7a67f1 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_more@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_more_disabled.png b/src/duckstation-qt/resources/qdarkstyle/branch_more_disabled.png new file mode 100644 index 000000000..d4b604905 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_more_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_more_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_more_disabled@2x.png new file mode 100644 index 000000000..3ef752108 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_more_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_more_focus.png b/src/duckstation-qt/resources/qdarkstyle/branch_more_focus.png new file mode 100644 index 000000000..943c13d0b Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_more_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_more_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_more_focus@2x.png new file mode 100644 index 000000000..9f53ef1fa Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_more_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_more_pressed.png b/src/duckstation-qt/resources/qdarkstyle/branch_more_pressed.png new file mode 100644 index 000000000..9037ed3b3 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_more_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_more_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_more_pressed@2x.png new file mode 100644 index 000000000..675d52c76 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_more_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_open.png b/src/duckstation-qt/resources/qdarkstyle/branch_open.png new file mode 100644 index 000000000..0861d0bc7 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_open.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_open@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_open@2x.png new file mode 100644 index 000000000..8850f7367 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_open@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_open_disabled.png b/src/duckstation-qt/resources/qdarkstyle/branch_open_disabled.png new file mode 100644 index 000000000..b6c80243b Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_open_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_open_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_open_disabled@2x.png new file mode 100644 index 000000000..15ce9f265 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_open_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_open_focus.png b/src/duckstation-qt/resources/qdarkstyle/branch_open_focus.png new file mode 100644 index 000000000..eadb0962a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_open_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_open_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_open_focus@2x.png new file mode 100644 index 000000000..7dfcbbe8a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_open_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_open_pressed.png b/src/duckstation-qt/resources/qdarkstyle/branch_open_pressed.png new file mode 100644 index 000000000..2b22e8d08 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_open_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/branch_open_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/branch_open_pressed@2x.png new file mode 100644 index 000000000..269a0cbee Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/branch_open_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_checked.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked.png new file mode 100644 index 000000000..e7ed08081 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_checked@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked@2x.png new file mode 100644 index 000000000..35f2ade58 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_disabled.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_disabled.png new file mode 100644 index 000000000..512b0a3e4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_disabled@2x.png new file mode 100644 index 000000000..557383ec8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_focus.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_focus.png new file mode 100644 index 000000000..0b90412f2 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_focus@2x.png new file mode 100644 index 000000000..7aee03cbb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_pressed.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_pressed.png new file mode 100644 index 000000000..3d4c869b7 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_pressed@2x.png new file mode 100644 index 000000000..bfbc14b94 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_checked_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate.png new file mode 100644 index 000000000..c21ab99bf Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate@2x.png new file mode 100644 index 000000000..2fc29cee6 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_disabled.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_disabled.png new file mode 100644 index 000000000..1d3c21492 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_disabled@2x.png new file mode 100644 index 000000000..bb8e7a747 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_focus.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_focus.png new file mode 100644 index 000000000..13ca4a7a4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_focus@2x.png new file mode 100644 index 000000000..3907eb8d4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_pressed.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_pressed.png new file mode 100644 index 000000000..12f83ceba Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_pressed@2x.png new file mode 100644 index 000000000..5ff4f6629 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_indeterminate_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked.png new file mode 100644 index 000000000..e2da452fa Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked@2x.png new file mode 100644 index 000000000..3732d5406 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_disabled.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_disabled.png new file mode 100644 index 000000000..c2e30c690 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_disabled@2x.png new file mode 100644 index 000000000..c4bddb6eb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_focus.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_focus.png new file mode 100644 index 000000000..c57f04d9f Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_focus@2x.png new file mode 100644 index 000000000..1776ad048 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_pressed.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_pressed.png new file mode 100644 index 000000000..be41236e1 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_pressed@2x.png new file mode 100644 index 000000000..b1ad7c72f Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/checkbox_unchecked_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_horizontal.png b/src/duckstation-qt/resources/qdarkstyle/line_horizontal.png new file mode 100644 index 000000000..11bc5c003 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_horizontal.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_horizontal@2x.png b/src/duckstation-qt/resources/qdarkstyle/line_horizontal@2x.png new file mode 100644 index 000000000..c229ac963 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_horizontal@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_horizontal_disabled.png b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_disabled.png new file mode 100644 index 000000000..204df8058 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_horizontal_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_disabled@2x.png new file mode 100644 index 000000000..a4713c565 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_horizontal_focus.png b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_focus.png new file mode 100644 index 000000000..ecda0c10b Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_horizontal_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_focus@2x.png new file mode 100644 index 000000000..84397efdb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_horizontal_pressed.png b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_pressed.png new file mode 100644 index 000000000..fd5d864ca Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_horizontal_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_pressed@2x.png new file mode 100644 index 000000000..140552e4f Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_horizontal_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_vertical.png b/src/duckstation-qt/resources/qdarkstyle/line_vertical.png new file mode 100644 index 000000000..a3a564e44 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_vertical.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_vertical@2x.png b/src/duckstation-qt/resources/qdarkstyle/line_vertical@2x.png new file mode 100644 index 000000000..1dbf71fc7 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_vertical@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_vertical_disabled.png b/src/duckstation-qt/resources/qdarkstyle/line_vertical_disabled.png new file mode 100644 index 000000000..ecc7e6d93 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_vertical_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_vertical_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/line_vertical_disabled@2x.png new file mode 100644 index 000000000..adc6446c9 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_vertical_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_vertical_focus.png b/src/duckstation-qt/resources/qdarkstyle/line_vertical_focus.png new file mode 100644 index 000000000..0037f175a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_vertical_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_vertical_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/line_vertical_focus@2x.png new file mode 100644 index 000000000..cb257a914 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_vertical_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_vertical_pressed.png b/src/duckstation-qt/resources/qdarkstyle/line_vertical_pressed.png new file mode 100644 index 000000000..2d0856527 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_vertical_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/line_vertical_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/line_vertical_pressed@2x.png new file mode 100644 index 000000000..803708fb4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/line_vertical_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_checked.png b/src/duckstation-qt/resources/qdarkstyle/radio_checked.png new file mode 100644 index 000000000..6f1fd6ca6 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_checked.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_checked@2x.png b/src/duckstation-qt/resources/qdarkstyle/radio_checked@2x.png new file mode 100644 index 000000000..228ffdbf2 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_checked@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_checked_disabled.png b/src/duckstation-qt/resources/qdarkstyle/radio_checked_disabled.png new file mode 100644 index 000000000..27788530d Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_checked_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_checked_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/radio_checked_disabled@2x.png new file mode 100644 index 000000000..930bfaf70 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_checked_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_checked_focus.png b/src/duckstation-qt/resources/qdarkstyle/radio_checked_focus.png new file mode 100644 index 000000000..ca8e8bc9a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_checked_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_checked_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/radio_checked_focus@2x.png new file mode 100644 index 000000000..aa0f1152b Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_checked_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_checked_pressed.png b/src/duckstation-qt/resources/qdarkstyle/radio_checked_pressed.png new file mode 100644 index 000000000..6e391a0ff Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_checked_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_checked_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/radio_checked_pressed@2x.png new file mode 100644 index 000000000..0512731ae Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_checked_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_unchecked.png b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked.png new file mode 100644 index 000000000..763306bdc Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_unchecked@2x.png b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked@2x.png new file mode 100644 index 000000000..28b6a0784 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_disabled.png b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_disabled.png new file mode 100644 index 000000000..fc0b12f78 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_disabled@2x.png new file mode 100644 index 000000000..d31f2b4b9 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_focus.png b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_focus.png new file mode 100644 index 000000000..9c87b01e4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_focus@2x.png new file mode 100644 index 000000000..4b4c7321d Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_pressed.png b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_pressed.png new file mode 100644 index 000000000..709e31633 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_pressed@2x.png new file mode 100644 index 000000000..b014de5f0 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/radio_unchecked_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/style.qss b/src/duckstation-qt/resources/qdarkstyle/style.qss new file mode 100644 index 000000000..929c03693 --- /dev/null +++ b/src/duckstation-qt/resources/qdarkstyle/style.qss @@ -0,0 +1,2175 @@ +/* --------------------------------------------------------------------------- + + Created by the qtsass compiler v0.1.1 + + The definitions are in the "qdarkstyle.qss._styles.scss" module + + WARNING! All changes made in this file will be lost! + +--------------------------------------------------------------------------- */ +/* QDarkStyleSheet ----------------------------------------------------------- + +This is the main style sheet, the palette has nine colors. + +It is based on three selecting colors, three greyish (background) colors +plus three whitish (foreground) colors. Each set of widgets of the same +type have a header like this: + + ------------------ + GroupName -------- + ------------------ + +And each widget is separated with a header like this: + + QWidgetName ------ + +This makes more easy to find and change some css field. The basic +configuration is described bellow. + + BACKGROUND ----------- + + Light (unpressed) + Normal (border, disabled, pressed, checked, toolbars, menus) + Dark (background) + + FOREGROUND ----------- + + Light (texts/labels) + Normal (not used yet) + Dark (disabled texts) + + SELECTION ------------ + + Light (selection/hover/active) + Normal (selected) + Dark (selected disabled) + +If a stranger configuration is required because of a bugfix or anything +else, keep the comment on the line above so nobody changes it, including the +issue number. + +*/ +/* + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #19232D; + border: 0px solid #32414B; + padding: 0px; + color: #F0F0F0; + selection-background-color: #1464A0; + selection-color: #F0F0F0; +} + +QWidget:disabled { + background-color: #19232D; + color: #787878; + selection-background-color: #14506E; + selection-color: #787878; +} + +QWidget::item:selected { + background-color: #1464A0; +} + +QWidget::item:hover { + background-color: #148CD2; + color: #32414B; +} + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + background-color: #32414B; + border: 0px solid #19232D; + spacing: 0px; + padding: 2px; +} + +QMainWindow::separator:hover { + background-color: #505F69; + border: 0px solid #148CD2; +} + +QMainWindow::separator:horizontal { + width: 5px; + margin-top: 2px; + margin-bottom: 2px; + image: url(":/qdarkstyle/toolbar_separator_vertical.png"); +} + +QMainWindow::separator:vertical { + height: 5px; + margin-left: 2px; + margin-right: 2px; + image: url(":/qdarkstyle/toolbar_separator_horizontal.png"); +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #148CD2; + border: 1px solid #19232D; + color: #19232D; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 1px solid #32414B; + /* Fixes Spyder #9120, #9121 */ + background: #32414B; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #148CD2; + border: 1px solid #19232D; + color: #19232D; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + background-color: #19232D; + color: #F0F0F0; + spacing: 4px; + outline: none; + padding-top: 4px; + padding-bottom: 4px; +} + +QCheckBox:focus { + border: none; +} + +QCheckBox QWidget:disabled { + background-color: #19232D; + color: #787878; +} + +QCheckBox::indicator { + margin-left: 4px; + height: 16px; + width: 16px; +} + +QCheckBox::indicator:unchecked { + image: url(":/qdarkstyle/checkbox_unchecked.png"); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + border: none; + image: url(":/qdarkstyle/checkbox_unchecked_focus.png"); +} + +QCheckBox::indicator:unchecked:disabled { + image: url(":/qdarkstyle/checkbox_unchecked_disabled.png"); +} + +QCheckBox::indicator:checked { + image: url(":/qdarkstyle/checkbox_checked.png"); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed { + border: none; + image: url(":/qdarkstyle/checkbox_checked_focus.png"); +} + +QCheckBox::indicator:checked:disabled { + image: url(":/qdarkstyle/checkbox_checked_disabled.png"); +} + +QCheckBox::indicator:indeterminate { + image: url(":/qdarkstyle/checkbox_indeterminate.png"); +} + +QCheckBox::indicator:indeterminate:disabled { + image: url(":/qdarkstyle/checkbox_indeterminate_disabled.png"); +} + +QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + image: url(":/qdarkstyle/checkbox_indeterminate_focus.png"); +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #32414B; + border-radius: 4px; + padding: 4px; + margin-top: 16px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 3px; + padding-left: 3px; + padding-right: 5px; + padding-top: 8px; + padding-bottom: 16px; +} + +QGroupBox::indicator { + margin-left: 2px; + height: 16px; + width: 16px; +} + +QGroupBox::indicator:unchecked { + border: none; + image: url(":/qdarkstyle/checkbox_unchecked.png"); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + border: none; + image: url(":/qdarkstyle/checkbox_unchecked_focus.png"); +} + +QGroupBox::indicator:unchecked:disabled { + image: url(":/qdarkstyle/checkbox_unchecked_disabled.png"); +} + +QGroupBox::indicator:checked { + border: none; + image: url(":/qdarkstyle/checkbox_checked.png"); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + border: none; + image: url(":/qdarkstyle/checkbox_checked_focus.png"); +} + +QGroupBox::indicator:checked:disabled { + image: url(":/qdarkstyle/checkbox_checked_disabled.png"); +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: #19232D; + color: #F0F0F0; + spacing: 4px; + padding: 0px; + border: none; + outline: none; +} + +QRadioButton:focus { + border: none; +} + +QRadioButton:disabled { + background-color: #19232D; + color: #787878; + border: none; + outline: none; +} + +QRadioButton QWidget { + background-color: #19232D; + color: #F0F0F0; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + border: none; + outline: none; + margin-left: 4px; + height: 16px; + width: 16px; +} + +QRadioButton::indicator:unchecked { + image: url(":/qdarkstyle/radio_unchecked.png"); +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed { + border: none; + outline: none; + image: url(":/qdarkstyle/radio_unchecked_focus.png"); +} + +QRadioButton::indicator:unchecked:disabled { + image: url(":/qdarkstyle/radio_unchecked_disabled.png"); +} + +QRadioButton::indicator:checked { + border: none; + outline: none; + image: url(":/qdarkstyle/radio_checked.png"); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { + border: none; + outline: none; + image: url(":/qdarkstyle/radio_checked_focus.png"); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + image: url(":/qdarkstyle/radio_checked_disabled.png"); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #32414B; + padding: 2px; + border: 1px solid #19232D; + color: #F0F0F0; +} + +QMenuBar:focus { + border: 1px solid #148CD2; +} + +QMenuBar::item { + background: transparent; + padding: 4px; +} + +QMenuBar::item:selected { + padding: 4px; + background: transparent; + border: 0px solid #32414B; +} + +QMenuBar::item:pressed { + padding: 4px; + border: 0px solid #32414B; + background-color: #148CD2; + color: #F0F0F0; + margin-bottom: 0px; + padding-bottom: 0px; +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border: 0px solid #32414B; + color: #F0F0F0; + margin: 0px; +} + +QMenu::separator { + height: 1px; + background-color: #505F69; + color: #F0F0F0; +} + +QMenu::icon { + margin: 0px; + padding-left: 8px; +} + +QMenu::item { + background-color: #32414B; + padding: 4px 24px 4px 24px; + /* Reserve space for selection border */ + border: 1px transparent #32414B; +} + +QMenu::item:selected { + color: #F0F0F0; +} + +QMenu::indicator { + width: 12px; + height: 12px; + padding-left: 6px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::indicator:non-exclusive:unchecked { + image: url(":/qdarkstyle/checkbox_unchecked.png"); +} + +QMenu::indicator:non-exclusive:unchecked:selected { + image: url(":/qdarkstyle/checkbox_unchecked_disabled.png"); +} + +QMenu::indicator:non-exclusive:checked { + image: url(":/qdarkstyle/checkbox_checked.png"); +} + +QMenu::indicator:non-exclusive:checked:selected { + image: url(":/qdarkstyle/checkbox_checked_disabled.png"); +} + +QMenu::indicator:exclusive:unchecked { + image: url(":/qdarkstyle/radio_unchecked.png"); +} + +QMenu::indicator:exclusive:unchecked:selected { + image: url(":/qdarkstyle/radio_unchecked_disabled.png"); +} + +QMenu::indicator:exclusive:checked { + image: url(":/qdarkstyle/radio_checked.png"); +} + +QMenu::indicator:exclusive:checked:selected { + image: url(":/qdarkstyle/radio_checked_disabled.png"); +} + +QMenu::right-arrow { + margin: 5px; + image: url(":/qdarkstyle/arrow_right.png"); + height: 12px; + width: 12px; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #19232D; + color: #F0F0F0; + border: 1px solid #32414B; + border-radius: 4px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: #19232D; + border: 1px solid #32414B; + border-radius: 4px; + padding: 2px; + /* fix #159 */ + min-height: 1.25em; + /* fix #159 */ + color: #F0F0F0; +} + +QAbstractScrollArea:disabled { + color: #787878; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- */ +QScrollArea QWidget QWidget:disabled { + background-color: #19232D; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 1px solid #32414B; + border-radius: 4px; + background-color: #19232D; +} + +QScrollBar:vertical { + background-color: #19232D; + width: 16px; + margin: 16px 2px 16px 2px; + border: 1px solid #32414B; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #787878; + border: 1px solid #32414B; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #148CD2; + border: 1px solid #148CD2; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #1464A0; +} + +QScrollBar::handle:vertical { + background-color: #787878; + border: 1px solid #32414B; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #148CD2; + border: 1px solid #148CD2; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #1464A0; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(":/qdarkstyle/arrow_right_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(":/qdarkstyle/arrow_right.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qdarkstyle/arrow_down_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(":/qdarkstyle/arrow_down.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 3px 0px 3px; + border-image: url(":/qdarkstyle/arrow_left_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(":/qdarkstyle/arrow_left.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qdarkstyle/arrow_up_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(":/qdarkstyle/arrow_up.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #19232D; + color: #F0F0F0; + border-radius: 4px; + border: 1px solid #32414B; +} + +QTextEdit:hover { + border: 1px solid #148CD2; + color: #F0F0F0; +} + +QTextEdit:focus { + border: 1px solid #1464A0; +} + +QTextEdit:selected { + background: #1464A0; + color: #32414B; +} + +/* QPlainTextEdit --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #19232D; + color: #F0F0F0; + border-radius: 4px; + border: 1px solid #32414B; +} + +QPlainTextEdit:hover { + border: 1px solid #148CD2; + color: #F0F0F0; +} + +QPlainTextEdit:focus { + border: 1px solid #1464A0; +} + +QPlainTextEdit:selected { + background: #1464A0; + color: #32414B; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image: url(":/qdarkstyle/window_grip.png"); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 2px; + border: 1px solid #32414B; + border: 1px solid #19232D; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #32414B; + border-bottom: 1px solid #19232D; + padding: 2px; + font-weight: bold; + spacing: 2px; +} + +QToolBar QToolButton { + background-color: #32414B; + border: 1px solid #32414B; +} + +QToolBar QToolButton:hover { + border: 1px solid #148CD2; +} + +QToolBar QToolButton:checked { + border: 1px solid #19232D; + background-color: #19232D; +} + +QToolBar QToolButton:checked:hover { + border: 1px solid #148CD2; +} + +QToolBar::handle:horizontal { + width: 16px; + image: url(":/qdarkstyle/toolbar_move_horizontal.png"); +} + +QToolBar::handle:vertical { + height: 16px; + image: url(":/qdarkstyle/toolbar_move_vertical.png"); +} + +QToolBar::separator:horizontal { + width: 16px; + image: url(":/qdarkstyle/toolbar_separator_horizontal.png"); +} + +QToolBar::separator:vertical { + height: 16px; + image: url(":/qdarkstyle/toolbar_separator_vertical.png"); +} + +QToolButton#qt_toolbar_ext_button { + background: #32414B; + border: 0px; + color: #F0F0F0; + image: url(":/qdarkstyle/arrow_right.png"); +} + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox { + background-color: #19232D; + border: 1px solid #32414B; + color: #F0F0F0; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + border-radius: 4px; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: transparent #19232D; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #32414B; + border-bottom: 1px solid #32414B; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-bottom: -1px; +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(":/qdarkstyle/arrow_up_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::up-arrow:hover { + image: url(":/qdarkstyle/arrow_up.png"); +} + +QAbstractSpinBox:down-button { + background-color: transparent #19232D; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #32414B; + border-top: 1px solid #32414B; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-top: -1px; +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(":/qdarkstyle/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::down-arrow:hover { + image: url(":/qdarkstyle/arrow_down.png"); +} + +QAbstractSpinBox:hover { + border: 1px solid #148CD2; + color: #F0F0F0; +} + +QAbstractSpinBox:focus { + border: 1px solid #1464A0; +} + +QAbstractSpinBox:selected { + background: #1464A0; + color: #32414B; +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: #19232D; + border: 0px solid #32414B; + padding: 2px; + margin: 0px; + color: #F0F0F0; +} + +QLabel:disabled { + background-color: #19232D; + border: 0px solid #32414B; + color: #787878; +} + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #19232D; + border: 1px solid #32414B; + color: #F0F0F0; + border-radius: 4px; +} + +QTextBrowser:disabled { + background-color: #19232D; + border: 1px solid #32414B; + color: #787878; + border-radius: 4px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #32414B; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: #19232D; + border: 1px solid #32414B; + color: #F0F0F0; + border-radius: 4px; +} + +QGraphicsView:disabled { + background-color: #19232D; + border: 1px solid #32414B; + color: #787878; + border-radius: 4px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 1px solid #32414B; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #32414B; + border-radius: 4px; +} + +QCalendarWidget:disabled { + background-color: #19232D; + color: #787878; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #19232D; + color: #F0F0F0; +} + +QLCDNumber:disabled { + background-color: #19232D; + color: #787878; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #19232D; + border: 1px solid #32414B; + color: #F0F0F0; + border-radius: 4px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #19232D; + border: 1px solid #32414B; + color: #787878; + border-radius: 4px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #1464A0; + color: #19232D; + border-radius: 4px; +} + +QProgressBar::chunk:disabled { + background-color: #14506E; + color: #787878; + border-radius: 4px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #505F69; + border: 1px solid #32414B; + color: #F0F0F0; + border-radius: 4px; + padding: 3px; + outline: none; + /* Issue #194 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +QPushButton:disabled { + background-color: #32414B; + border: 1px solid #32414B; + color: #787878; + border-radius: 4px; + padding: 3px; +} + +QPushButton:checked { + background-color: #32414B; + border: 1px solid #32414B; + border-radius: 4px; + padding: 3px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #19232D; + border: 1px solid #32414B; + color: #787878; + border-radius: 4px; + padding: 3px; + outline: none; +} + +QPushButton:checked:selected { + background: #1464A0; + color: #32414B; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QPushButton:pressed { + background-color: #19232D; + border: 1px solid #19232D; +} + +QPushButton:pressed:hover { + border: 1px solid #148CD2; +} + +QPushButton:hover { + border: 1px solid #148CD2; + color: #F0F0F0; +} + +QPushButton:selected { + background: #1464A0; + color: #32414B; +} + +QPushButton:hover { + border: 1px solid #148CD2; + color: #F0F0F0; +} + +QPushButton:focus { + border: 1px solid #1464A0; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; + margin: 0px; + padding: 2px; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:checked { + background-color: transparent; + border: 1px solid #1464A0; +} + +QToolButton:checked:disabled { + border: 1px solid #14506E; +} + +QToolButton:pressed { + margin: 1px; + background-color: transparent; + border: 1px solid #1464A0; +} + +QToolButton:disabled { + border: none; +} + +QToolButton:hover { + border: 1px solid #148CD2; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 2px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 1px solid #148CD2; + border-radius: 0; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 2px; +} + +QToolButton::menu-button { + padding: 2px; + border-radius: 4px; + border: 1px solid #32414B; + width: 12px; + outline: none; +} + +QToolButton::menu-button:hover { + border: 1px solid #148CD2; +} + +QToolButton::menu-button:checked:hover { + border: 1px solid #148CD2; +} + +QToolButton::menu-indicator { + image: url(":/qdarkstyle/arrow_down.png"); + height: 8px; + width: 8px; + top: 0; + /* Exclude a shift for better image */ + left: -2px; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(":/qdarkstyle/arrow_down.png"); + height: 8px; + width: 8px; +} + +QToolButton::menu-arrow:hover { + image: url(":/qdarkstyle/arrow_down_focus.png"); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #32414B; + color: #F0F0F0; + border-radius: 4px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #787878; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #32414B; + border-radius: 4px; + selection-background-color: #1464A0; + padding-left: 4px; + padding-right: 36px; + /* 4 + 16*2 See scrollbar size */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} + +QComboBox QAbstractItemView { + border: 1px solid #32414B; + border-radius: 0; + background-color: #19232D; + selection-background-color: #1464A0; +} + +QComboBox QAbstractItemView:hover { + background-color: #19232D; + color: #F0F0F0; +} + +QComboBox QAbstractItemView:selected { + background: #1464A0; + color: #32414B; +} + +QComboBox QAbstractItemView:alternate { + background: #19232D; +} + +QComboBox:disabled { + background-color: #19232D; + color: #787878; +} + +QComboBox:hover { + border: 1px solid #148CD2; +} + +QComboBox:focus { + border: 1px solid #1464A0; +} + +QComboBox:on { + selection-background-color: #1464A0; +} + +QComboBox::indicator { + border: none; + border-radius: 0; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: transparent; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #19232D; +} + +QComboBox::item:alternate { + background: #19232D; +} + +QComboBox::item:checked { + font-weight: bold; +} + +QComboBox::item:selected { + border: 0px solid transparent; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #32414B; +} + +QComboBox::down-arrow { + image: url(":/qdarkstyle/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(":/qdarkstyle/arrow_down.png"); +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #19232D; +} + +QSlider:focus { + border: none; +} + +QSlider::groove:horizontal { + background: #32414B; + border: 1px solid #32414B; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::groove:vertical { + background: #32414B; + border: 1px solid #32414B; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical { + background: #1464A0; + border: 1px solid #32414B; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical :disabled { + background: #14506E; +} + +QSlider::sub-page:horizontal { + background: #1464A0; + border: 1px solid #32414B; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::sub-page:horizontal:disabled { + background: #14506E; +} + +QSlider::handle:horizontal { + background: #787878; + border: 1px solid #32414B; + width: 8px; + height: 8px; + margin: -8px 0px; + border-radius: 4px; +} + +QSlider::handle:horizontal:hover { + background: #148CD2; + border: 1px solid #148CD2; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #1464A0; +} + +QSlider::handle:vertical { + background: #787878; + border: 1px solid #32414B; + width: 8px; + height: 8px; + margin: 0 -8px; + border-radius: 4px; +} + +QSlider::handle:vertical:hover { + background: #148CD2; + border: 1px solid #148CD2; +} + +QSlider::handle:vertical:focus { + border: 1px solid #1464A0; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #19232D; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #32414B; + border-radius: 4px; + color: #F0F0F0; +} + +QLineEdit:disabled { + background-color: #19232D; + color: #787878; +} + +QLineEdit:hover { + border: 1px solid #148CD2; + color: #F0F0F0; +} + +QLineEdit:focus { + border: 1px solid #1464A0; +} + +QLineEdit:selected { + background-color: #1464A0; + color: #32414B; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #32414B; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 4px; +} + +QTabWidget::pane { + border: 1px solid #32414B; + border-radius: 4px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #32414B; + border: 1px solid #1464A0; +} + +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar { + qproperty-drawBase: 0; + border-radius: 4px; + margin: 0px; + padding: 2px; + border: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button { + border: 0; + margin: 2px; + padding: 2px; + image: url(":/qdarkstyle/window_close.png"); +} + +QTabBar::close-button:hover { + image: url(":/qdarkstyle/window_close_focus.png"); +} + +QTabBar::close-button:pressed { + image: url(":/qdarkstyle/window_close_pressed.png"); +} + +/* QTabBar::tab - selected ------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #14506E; + color: #787878; + background-color: #32414B; +} + +QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #14506E; + color: #787878; + background-color: #32414B; +} + +QTabBar::tab:left:selected:disabled { + border-right: 3px solid #14506E; + color: #787878; + background-color: #32414B; +} + +QTabBar::tab:right:selected:disabled { + border-left: 3px solid #14506E; + color: #787878; + background-color: #32414B; +} + +QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #19232D; + color: #787878; + background-color: #19232D; +} + +QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #19232D; + color: #787878; + background-color: #19232D; +} + +QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #19232D; + color: #787878; + background-color: #19232D; +} + +QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #19232D; + color: #787878; + background-color: #19232D; +} + +QTabBar::tab:top:!selected { + border-bottom: 2px solid #19232D; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected { + border-top: 2px solid #19232D; + margin-bottom: 3px; +} + +QTabBar::tab:left:!selected { + border-left: 2px solid #19232D; + margin-right: 2px; +} + +QTabBar::tab:right:!selected { + border-right: 2px solid #19232D; + margin-left: 2px; +} + +QTabBar::tab:top { + background-color: #32414B; + color: #F0F0F0; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 3px solid #32414B; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +QTabBar::tab:top:selected { + background-color: #505F69; + color: #F0F0F0; + border-bottom: 3px solid #1464A0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +QTabBar::tab:top:!selected:hover { + border: 1px solid #148CD2; + border-bottom: 3px solid #148CD2; + /* Fixes spyder-ide/spyder#9766 */ + padding-left: 4px; + padding-right: 4px; +} + +QTabBar::tab:bottom { + color: #F0F0F0; + border-top: 3px solid #32414B; + background-color: #32414B; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected { + color: #F0F0F0; + background-color: #505F69; + border-top: 3px solid #1464A0; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QTabBar::tab:bottom:!selected:hover { + border: 1px solid #148CD2; + border-top: 3px solid #148CD2; + /* Fixes spyder-ide/spyder#9766 */ + padding-left: 4px; + padding-right: 4px; +} + +QTabBar::tab:left { + color: #F0F0F0; + background-color: #32414B; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + min-height: 5px; +} + +QTabBar::tab:left:selected { + color: #F0F0F0; + background-color: #505F69; + border-right: 3px solid #1464A0; +} + +QTabBar::tab:left:!selected:hover { + border: 1px solid #148CD2; + border-right: 3px solid #148CD2; + padding: 0px; +} + +QTabBar::tab:right { + color: #F0F0F0; + background-color: #32414B; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + min-height: 5px; +} + +QTabBar::tab:right:selected { + color: #F0F0F0; + background-color: #505F69; + border-left: 3px solid #1464A0; +} + +QTabBar::tab:right:!selected:hover { + border: 1px solid #148CD2; + border-left: 3px solid #148CD2; + padding: 0px; +} + +QTabBar QToolButton { + /* Fixes #136 */ + background-color: #32414B; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed { + background-color: #32414B; +} + +QTabBar QToolButton:pressed:hover { + border: 1px solid #148CD2; +} + +QTabBar QToolButton::left-arrow:enabled { + image: url(":/qdarkstyle/arrow_left.png"); +} + +QTabBar QToolButton::left-arrow:disabled { + image: url(":/qdarkstyle/arrow_left_disabled.png"); +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(":/qdarkstyle/arrow_right.png"); +} + +QTabBar QToolButton::right-arrow:disabled { + image: url(":/qdarkstyle/arrow_right_disabled.png"); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + outline: 1px solid #32414B; + background-color: #19232D; + border: 1px solid #32414B; + border-radius: 4px; + titlebar-close-icon: url(":/qdarkstyle/window_close.png"); + titlebar-normal-icon: url(":/qdarkstyle/window_undock.png"); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 6px; + spacing: 4px; + border: none; + background-color: #32414B; +} + +QDockWidget::close-button { + background-color: #32414B; + border-radius: 4px; + border: none; +} + +QDockWidget::close-button:hover { + image: url(":/qdarkstyle/window_close_focus.png"); +} + +QDockWidget::close-button:pressed { + image: url(":/qdarkstyle/window_close_pressed.png"); +} + +QDockWidget::float-button { + background-color: #32414B; + border-radius: 4px; + border: none; +} + +QDockWidget::float-button:hover { + image: url(":/qdarkstyle/window_undock_focus.png"); +} + +QDockWidget::float-button:pressed { + image: url(":/qdarkstyle/window_undock_pressed.png"); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView:branch:selected, QTreeView:branch:hover { + background: url(":/qdarkstyle/transparent.png"); +} + +QTreeView:branch:has-siblings:!adjoins-item { + border-image: url(":/qdarkstyle/branch_line.png") 0; +} + +QTreeView:branch:has-siblings:adjoins-item { + border-image: url(":/qdarkstyle/branch_more.png") 0; +} + +QTreeView:branch:!has-children:!has-siblings:adjoins-item { + border-image: url(":/qdarkstyle/branch_end.png") 0; +} + +QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings { + border-image: none; + image: url(":/qdarkstyle/branch_closed.png"); +} + +QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings { + border-image: none; + image: url(":/qdarkstyle/branch_open.png"); +} + +QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover { + image: url(":/qdarkstyle/branch_closed_focus.png"); +} + +QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover { + image: url(":/qdarkstyle/branch_open_focus.png"); +} + +QTreeView::indicator:checked, +QListView::indicator:checked { + image: url(":/qdarkstyle/checkbox_checked.png"); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed { + image: url(":/qdarkstyle/checkbox_checked_focus.png"); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked { + image: url(":/qdarkstyle/checkbox_unchecked.png"); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed { + image: url(":/qdarkstyle/checkbox_unchecked_focus.png"); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate { + image: url(":/qdarkstyle/checkbox_indeterminate.png"); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed { + image: url(":/qdarkstyle/checkbox_indeterminate_focus.png"); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #19232D; + border: 1px solid #32414B; + color: #F0F0F0; + gridline-color: #32414B; + border-radius: 4px; +} + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #19232D; + color: #787878; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #1464A0; + color: #32414B; +} + +QTreeView:hover, +QListView:hover, +QTableView:hover, +QColumnView:hover { + background-color: #19232D; + border: 1px solid #148CD2; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #1464A0; +} + +QTreeView::item:selected:hover, +QListView::item:selected:hover, +QTableView::item:selected:hover, +QColumnView::item:selected:hover { + background: #1464A0; + color: #19232D; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #1464A0; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: #148CD2; + background-color: #32414B; +} + +QTableCornerButton::section { + background-color: #19232D; + border: 1px transparent #32414B; + border-radius: 0px; +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #32414B; + border: 0px transparent #32414B; + padding: 0px; + margin: 0px; + border-radius: 0px; +} + +QHeaderView:disabled { + background-color: #32414B; + border: 1px transparent #32414B; + padding: 2px; +} + +QHeaderView::section { + background-color: #32414B; + color: #F0F0F0; + padding: 2px; + border-radius: 0px; + text-align: left; +} + +QHeaderView::section:checked { + color: #F0F0F0; + background-color: #1464A0; +} + +QHeaderView::section:checked:disabled { + color: #787878; + background-color: #14506E; +} + +QHeaderView::section::horizontal { + padding-left: 4px; + padding-right: 4px; + border-left: 1px solid #19232D; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #32414B; +} + +QHeaderView::section::horizontal:disabled { + color: #787878; +} + +QHeaderView::section::vertical { + padding-left: 4px; + padding-right: 4px; + border-top: 1px solid #19232D; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #32414B; +} + +QHeaderView::section::vertical:disabled { + color: #787878; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #32414B; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qdarkstyle/arrow_down.png"); +} + +QHeaderView::up-arrow { + background-color: #32414B; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qdarkstyle/arrow_up.png"); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 0px; + border: 1px solid #32414B; +} + +QToolBox:selected { + padding: 0px; + border: 2px solid #1464A0; +} + +QToolBox::tab { + background-color: #19232D; + border: 1px solid #32414B; + color: #F0F0F0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QToolBox::tab:disabled { + color: #787878; +} + +QToolBox::tab:selected { + background-color: #505F69; + border-bottom: 2px solid #1464A0; +} + +QToolBox::tab:selected:disabled { + background-color: #32414B; + border-bottom: 2px solid #14506E; +} + +QToolBox::tab:!selected { + background-color: #32414B; + border-bottom: 2px solid #32414B; +} + +QToolBox::tab:!selected:disabled { + background-color: #19232D; +} + +QToolBox::tab:hover { + border-color: #148CD2; + border-bottom: 2px solid #148CD2; +} + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: #19232D; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 4px; + border: 1px solid #32414B; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 4px; + border: 1px transparent #32414B; +} + +.QFrame[frameShape="4"] { + max-height: 2px; + border: none; + background-color: #32414B; +} + +.QFrame[frameShape="5"] { + max-width: 2px; + border: none; + background-color: #32414B; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +--------------------------------------------------------------------------- */ +QSplitter { + background-color: #32414B; + spacing: 0px; + padding: 0px; + margin: 0px; +} + +QSplitter::handle { + background-color: #32414B; + border: 0px solid #19232D; + spacing: 0px; + padding: 1px; + margin: 0px; +} + +QSplitter::handle:hover { + background-color: #787878; +} + +QSplitter::handle:horizontal { + width: 5px; + image: url(":/qdarkstyle/line_vertical.png"); +} + +QSplitter::handle:vertical { + height: 5px; + image: url(":/qdarkstyle/line_horizontal.png"); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #1464A0; + border-style: solid; + border: 1px solid #32414B; + border-radius: 4px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #1464A0; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #32414B; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(":/qdarkstyle/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(":/qdarkstyle/arrow_down.png"); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #19232D; + border-radius: 4px; + border: 1px solid #32414B; + selection-background-color: #1464A0; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #148CD2; + color: #F0F0F0; +} + +QAbstractView:selected { + background: #1464A0; + color: #32414B; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal.png new file mode 100644 index 000000000..012ea2dfb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal@2x.png new file mode 100644 index 000000000..520c34f98 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_disabled.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_disabled.png new file mode 100644 index 000000000..1f91df98f Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_disabled@2x.png new file mode 100644 index 000000000..738008f92 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_focus.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_focus.png new file mode 100644 index 000000000..999b3c7d8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_focus@2x.png new file mode 100644 index 000000000..f8e40b7d1 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_pressed.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_pressed.png new file mode 100644 index 000000000..c31b69deb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_pressed@2x.png new file mode 100644 index 000000000..2f4cb41c7 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_horizontal_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical.png new file mode 100644 index 000000000..16473bfd8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical@2x.png new file mode 100644 index 000000000..90a5caee3 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_disabled.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_disabled.png new file mode 100644 index 000000000..2d240edb5 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_disabled@2x.png new file mode 100644 index 000000000..fd1df30f1 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_focus.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_focus.png new file mode 100644 index 000000000..58cda1f80 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_focus@2x.png new file mode 100644 index 000000000..9222b4fd8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_pressed.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_pressed.png new file mode 100644 index 000000000..e7d641926 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_pressed@2x.png new file mode 100644 index 000000000..9c438faf4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_move_vertical_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal.png new file mode 100644 index 000000000..3c0acbdcc Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal@2x.png new file mode 100644 index 000000000..fb4e24c88 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_disabled.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_disabled.png new file mode 100644 index 000000000..32f7e8ca6 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_disabled@2x.png new file mode 100644 index 000000000..f7bec188b Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_focus.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_focus.png new file mode 100644 index 000000000..91c19d65c Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_focus@2x.png new file mode 100644 index 000000000..c4829918d Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_pressed.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_pressed.png new file mode 100644 index 000000000..7a7f91737 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_pressed@2x.png new file mode 100644 index 000000000..d65773b48 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_horizontal_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical.png new file mode 100644 index 000000000..4dde3f37f Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical@2x.png new file mode 100644 index 000000000..fe97c0de3 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_disabled.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_disabled.png new file mode 100644 index 000000000..7426ae2de Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_disabled@2x.png new file mode 100644 index 000000000..7acc6d33e Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_focus.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_focus.png new file mode 100644 index 000000000..6e3c12143 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_focus@2x.png new file mode 100644 index 000000000..cac3a56c2 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_pressed.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_pressed.png new file mode 100644 index 000000000..b777784b8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_pressed@2x.png new file mode 100644 index 000000000..7ed878fd3 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/toolbar_separator_vertical_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/transparent.png b/src/duckstation-qt/resources/qdarkstyle/transparent.png new file mode 100644 index 000000000..8b241c4a4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/transparent.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/transparent@2x.png b/src/duckstation-qt/resources/qdarkstyle/transparent@2x.png new file mode 100644 index 000000000..2c3df7a5e Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/transparent@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/transparent_disabled.png b/src/duckstation-qt/resources/qdarkstyle/transparent_disabled.png new file mode 100644 index 000000000..8b241c4a4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/transparent_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/transparent_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/transparent_disabled@2x.png new file mode 100644 index 000000000..2c3df7a5e Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/transparent_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/transparent_focus.png b/src/duckstation-qt/resources/qdarkstyle/transparent_focus.png new file mode 100644 index 000000000..8b241c4a4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/transparent_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/transparent_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/transparent_focus@2x.png new file mode 100644 index 000000000..2c3df7a5e Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/transparent_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/transparent_pressed.png b/src/duckstation-qt/resources/qdarkstyle/transparent_pressed.png new file mode 100644 index 000000000..8b241c4a4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/transparent_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/transparent_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/transparent_pressed@2x.png new file mode 100644 index 000000000..2c3df7a5e Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/transparent_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_close.png b/src/duckstation-qt/resources/qdarkstyle/window_close.png new file mode 100644 index 000000000..6f55c3ae7 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_close.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_close@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_close@2x.png new file mode 100644 index 000000000..ff644f2e8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_close@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_close_disabled.png b/src/duckstation-qt/resources/qdarkstyle/window_close_disabled.png new file mode 100644 index 000000000..22694e31d Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_close_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_close_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_close_disabled@2x.png new file mode 100644 index 000000000..ebc97db70 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_close_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_close_focus.png b/src/duckstation-qt/resources/qdarkstyle/window_close_focus.png new file mode 100644 index 000000000..f017eda31 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_close_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_close_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_close_focus@2x.png new file mode 100644 index 000000000..5a354d796 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_close_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_close_pressed.png b/src/duckstation-qt/resources/qdarkstyle/window_close_pressed.png new file mode 100644 index 000000000..04b922dd0 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_close_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_close_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_close_pressed@2x.png new file mode 100644 index 000000000..58c0bf592 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_close_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_grip.png b/src/duckstation-qt/resources/qdarkstyle/window_grip.png new file mode 100644 index 000000000..0528049bb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_grip.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_grip@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_grip@2x.png new file mode 100644 index 000000000..1ca1b073c Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_grip@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_grip_disabled.png b/src/duckstation-qt/resources/qdarkstyle/window_grip_disabled.png new file mode 100644 index 000000000..15f55c056 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_grip_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_grip_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_grip_disabled@2x.png new file mode 100644 index 000000000..33a4588e8 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_grip_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_grip_focus.png b/src/duckstation-qt/resources/qdarkstyle/window_grip_focus.png new file mode 100644 index 000000000..06e76c31f Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_grip_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_grip_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_grip_focus@2x.png new file mode 100644 index 000000000..58c2d06e4 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_grip_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_grip_pressed.png b/src/duckstation-qt/resources/qdarkstyle/window_grip_pressed.png new file mode 100644 index 000000000..b3a566cdb Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_grip_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_grip_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_grip_pressed@2x.png new file mode 100644 index 000000000..e9da94049 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_grip_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_minimize.png b/src/duckstation-qt/resources/qdarkstyle/window_minimize.png new file mode 100644 index 000000000..f60981615 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_minimize.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_minimize@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_minimize@2x.png new file mode 100644 index 000000000..30f728f02 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_minimize@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_minimize_disabled.png b/src/duckstation-qt/resources/qdarkstyle/window_minimize_disabled.png new file mode 100644 index 000000000..29db1c9b1 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_minimize_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_minimize_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_minimize_disabled@2x.png new file mode 100644 index 000000000..1572ca2fe Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_minimize_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_minimize_focus.png b/src/duckstation-qt/resources/qdarkstyle/window_minimize_focus.png new file mode 100644 index 000000000..cb592f598 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_minimize_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_minimize_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_minimize_focus@2x.png new file mode 100644 index 000000000..6f6465169 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_minimize_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_minimize_pressed.png b/src/duckstation-qt/resources/qdarkstyle/window_minimize_pressed.png new file mode 100644 index 000000000..6962440ac Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_minimize_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_minimize_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_minimize_pressed@2x.png new file mode 100644 index 000000000..cb028272b Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_minimize_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_undock.png b/src/duckstation-qt/resources/qdarkstyle/window_undock.png new file mode 100644 index 000000000..616da991a Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_undock.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_undock@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_undock@2x.png new file mode 100644 index 000000000..511036bf2 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_undock@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_undock_disabled.png b/src/duckstation-qt/resources/qdarkstyle/window_undock_disabled.png new file mode 100644 index 000000000..a2b3d25b2 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_undock_disabled.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_undock_disabled@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_undock_disabled@2x.png new file mode 100644 index 000000000..638ec8104 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_undock_disabled@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_undock_focus.png b/src/duckstation-qt/resources/qdarkstyle/window_undock_focus.png new file mode 100644 index 000000000..ae6dc4a60 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_undock_focus.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_undock_focus@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_undock_focus@2x.png new file mode 100644 index 000000000..d06dd1eac Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_undock_focus@2x.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_undock_pressed.png b/src/duckstation-qt/resources/qdarkstyle/window_undock_pressed.png new file mode 100644 index 000000000..e9142ded2 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_undock_pressed.png differ diff --git a/src/duckstation-qt/resources/qdarkstyle/window_undock_pressed@2x.png b/src/duckstation-qt/resources/qdarkstyle/window_undock_pressed@2x.png new file mode 100644 index 000000000..a597420f3 Binary files /dev/null and b/src/duckstation-qt/resources/qdarkstyle/window_undock_pressed@2x.png differ diff --git a/src/duckstation-qt/resources/resources.qrc b/src/duckstation-qt/resources/resources.qrc new file mode 100644 index 000000000..34e5dd0ed --- /dev/null +++ b/src/duckstation-qt/resources/resources.qrc @@ -0,0 +1,256 @@ + + + icons/flag-eu.png + icons/flag-eu.svg + icons/flag-jp.png + icons/flag-jp.svg + icons/flag-us.png + icons/flag-us.svg + icons/star-0.png + icons/star-1.png + icons/star-2.png + icons/star-3.png + icons/star-4.png + icons/star-5.png + icons/applications-internet.png + icons/system-search.png + icons/list-add.png + icons/list-remove.png + icons/duck.png + icons/edit-find.png + icons/folder-open.png + icons/applications-development.png + icons/applications-other.png + icons/applications-system.png + icons/applications-system-24.png + icons/audio-card.png + icons/document-open.png + icons/document-save.png + icons/drive-optical.png + icons/drive-removable-media.png + icons/input-gaming.png + icons/media-flash.png + icons/media-flash-24.png + icons/media-optical.png + icons/media-optical-24.png + icons/media-playback-pause.png + icons/media-playback-start.png + icons/system-shutdown.png + icons/utilities-system-monitor.png + icons/video-display.png + icons/view-fullscreen.png + icons/view-refresh.png + + + + qdarkstyle/arrow_down.png + qdarkstyle/arrow_down@2x.png + qdarkstyle/arrow_down_disabled.png + qdarkstyle/arrow_down_disabled@2x.png + qdarkstyle/arrow_down_focus.png + qdarkstyle/arrow_down_focus@2x.png + qdarkstyle/arrow_down_pressed.png + qdarkstyle/arrow_down_pressed@2x.png + qdarkstyle/arrow_left.png + qdarkstyle/arrow_left@2x.png + qdarkstyle/arrow_left_disabled.png + qdarkstyle/arrow_left_disabled@2x.png + qdarkstyle/arrow_left_focus.png + qdarkstyle/arrow_left_focus@2x.png + qdarkstyle/arrow_left_pressed.png + qdarkstyle/arrow_left_pressed@2x.png + qdarkstyle/arrow_right.png + qdarkstyle/arrow_right@2x.png + qdarkstyle/arrow_right_disabled.png + qdarkstyle/arrow_right_disabled@2x.png + qdarkstyle/arrow_right_focus.png + qdarkstyle/arrow_right_focus@2x.png + qdarkstyle/arrow_right_pressed.png + qdarkstyle/arrow_right_pressed@2x.png + qdarkstyle/arrow_up.png + qdarkstyle/arrow_up@2x.png + qdarkstyle/arrow_up_disabled.png + qdarkstyle/arrow_up_disabled@2x.png + qdarkstyle/arrow_up_focus.png + qdarkstyle/arrow_up_focus@2x.png + qdarkstyle/arrow_up_pressed.png + qdarkstyle/arrow_up_pressed@2x.png + qdarkstyle/base_icon.png + qdarkstyle/base_icon@2x.png + qdarkstyle/base_icon_disabled.png + qdarkstyle/base_icon_disabled@2x.png + qdarkstyle/base_icon_focus.png + qdarkstyle/base_icon_focus@2x.png + qdarkstyle/base_icon_pressed.png + qdarkstyle/base_icon_pressed@2x.png + qdarkstyle/branch_closed.png + qdarkstyle/branch_closed@2x.png + qdarkstyle/branch_closed_disabled.png + qdarkstyle/branch_closed_disabled@2x.png + qdarkstyle/branch_closed_focus.png + qdarkstyle/branch_closed_focus@2x.png + qdarkstyle/branch_closed_pressed.png + qdarkstyle/branch_closed_pressed@2x.png + qdarkstyle/branch_end.png + qdarkstyle/branch_end@2x.png + qdarkstyle/branch_end_disabled.png + qdarkstyle/branch_end_disabled@2x.png + qdarkstyle/branch_end_focus.png + qdarkstyle/branch_end_focus@2x.png + qdarkstyle/branch_end_pressed.png + qdarkstyle/branch_end_pressed@2x.png + qdarkstyle/branch_line.png + qdarkstyle/branch_line@2x.png + qdarkstyle/branch_line_disabled.png + qdarkstyle/branch_line_disabled@2x.png + qdarkstyle/branch_line_focus.png + qdarkstyle/branch_line_focus@2x.png + qdarkstyle/branch_line_pressed.png + qdarkstyle/branch_line_pressed@2x.png + qdarkstyle/branch_more.png + qdarkstyle/branch_more@2x.png + qdarkstyle/branch_more_disabled.png + qdarkstyle/branch_more_disabled@2x.png + qdarkstyle/branch_more_focus.png + qdarkstyle/branch_more_focus@2x.png + qdarkstyle/branch_more_pressed.png + qdarkstyle/branch_more_pressed@2x.png + qdarkstyle/branch_open.png + qdarkstyle/branch_open@2x.png + qdarkstyle/branch_open_disabled.png + qdarkstyle/branch_open_disabled@2x.png + qdarkstyle/branch_open_focus.png + qdarkstyle/branch_open_focus@2x.png + qdarkstyle/branch_open_pressed.png + qdarkstyle/branch_open_pressed@2x.png + qdarkstyle/checkbox_checked.png + qdarkstyle/checkbox_checked@2x.png + qdarkstyle/checkbox_checked_disabled.png + qdarkstyle/checkbox_checked_disabled@2x.png + qdarkstyle/checkbox_checked_focus.png + qdarkstyle/checkbox_checked_focus@2x.png + qdarkstyle/checkbox_checked_pressed.png + qdarkstyle/checkbox_checked_pressed@2x.png + qdarkstyle/checkbox_indeterminate.png + qdarkstyle/checkbox_indeterminate@2x.png + qdarkstyle/checkbox_indeterminate_disabled.png + qdarkstyle/checkbox_indeterminate_disabled@2x.png + qdarkstyle/checkbox_indeterminate_focus.png + qdarkstyle/checkbox_indeterminate_focus@2x.png + qdarkstyle/checkbox_indeterminate_pressed.png + qdarkstyle/checkbox_indeterminate_pressed@2x.png + qdarkstyle/checkbox_unchecked.png + qdarkstyle/checkbox_unchecked@2x.png + qdarkstyle/checkbox_unchecked_disabled.png + qdarkstyle/checkbox_unchecked_disabled@2x.png + qdarkstyle/checkbox_unchecked_focus.png + qdarkstyle/checkbox_unchecked_focus@2x.png + qdarkstyle/checkbox_unchecked_pressed.png + qdarkstyle/checkbox_unchecked_pressed@2x.png + qdarkstyle/line_horizontal.png + qdarkstyle/line_horizontal@2x.png + qdarkstyle/line_horizontal_disabled.png + qdarkstyle/line_horizontal_disabled@2x.png + qdarkstyle/line_horizontal_focus.png + qdarkstyle/line_horizontal_focus@2x.png + qdarkstyle/line_horizontal_pressed.png + qdarkstyle/line_horizontal_pressed@2x.png + qdarkstyle/line_vertical.png + qdarkstyle/line_vertical@2x.png + qdarkstyle/line_vertical_disabled.png + qdarkstyle/line_vertical_disabled@2x.png + qdarkstyle/line_vertical_focus.png + qdarkstyle/line_vertical_focus@2x.png + qdarkstyle/line_vertical_pressed.png + qdarkstyle/line_vertical_pressed@2x.png + qdarkstyle/radio_checked.png + qdarkstyle/radio_checked@2x.png + qdarkstyle/radio_checked_disabled.png + qdarkstyle/radio_checked_disabled@2x.png + qdarkstyle/radio_checked_focus.png + qdarkstyle/radio_checked_focus@2x.png + qdarkstyle/radio_checked_pressed.png + qdarkstyle/radio_checked_pressed@2x.png + qdarkstyle/radio_unchecked.png + qdarkstyle/radio_unchecked@2x.png + qdarkstyle/radio_unchecked_disabled.png + qdarkstyle/radio_unchecked_disabled@2x.png + qdarkstyle/radio_unchecked_focus.png + qdarkstyle/radio_unchecked_focus@2x.png + qdarkstyle/radio_unchecked_pressed.png + qdarkstyle/radio_unchecked_pressed@2x.png + qdarkstyle/toolbar_move_horizontal.png + qdarkstyle/toolbar_move_horizontal@2x.png + qdarkstyle/toolbar_move_horizontal_disabled.png + qdarkstyle/toolbar_move_horizontal_disabled@2x.png + qdarkstyle/toolbar_move_horizontal_focus.png + qdarkstyle/toolbar_move_horizontal_focus@2x.png + qdarkstyle/toolbar_move_horizontal_pressed.png + qdarkstyle/toolbar_move_horizontal_pressed@2x.png + qdarkstyle/toolbar_move_vertical.png + qdarkstyle/toolbar_move_vertical@2x.png + qdarkstyle/toolbar_move_vertical_disabled.png + qdarkstyle/toolbar_move_vertical_disabled@2x.png + qdarkstyle/toolbar_move_vertical_focus.png + qdarkstyle/toolbar_move_vertical_focus@2x.png + qdarkstyle/toolbar_move_vertical_pressed.png + qdarkstyle/toolbar_move_vertical_pressed@2x.png + qdarkstyle/toolbar_separator_horizontal.png + qdarkstyle/toolbar_separator_horizontal@2x.png + qdarkstyle/toolbar_separator_horizontal_disabled.png + qdarkstyle/toolbar_separator_horizontal_disabled@2x.png + qdarkstyle/toolbar_separator_horizontal_focus.png + qdarkstyle/toolbar_separator_horizontal_focus@2x.png + qdarkstyle/toolbar_separator_horizontal_pressed.png + qdarkstyle/toolbar_separator_horizontal_pressed@2x.png + qdarkstyle/toolbar_separator_vertical.png + qdarkstyle/toolbar_separator_vertical@2x.png + qdarkstyle/toolbar_separator_vertical_disabled.png + qdarkstyle/toolbar_separator_vertical_disabled@2x.png + qdarkstyle/toolbar_separator_vertical_focus.png + qdarkstyle/toolbar_separator_vertical_focus@2x.png + qdarkstyle/toolbar_separator_vertical_pressed.png + qdarkstyle/toolbar_separator_vertical_pressed@2x.png + qdarkstyle/transparent.png + qdarkstyle/transparent@2x.png + qdarkstyle/transparent_disabled.png + qdarkstyle/transparent_disabled@2x.png + qdarkstyle/transparent_focus.png + qdarkstyle/transparent_focus@2x.png + qdarkstyle/transparent_pressed.png + qdarkstyle/transparent_pressed@2x.png + qdarkstyle/window_close.png + qdarkstyle/window_close@2x.png + qdarkstyle/window_close_disabled.png + qdarkstyle/window_close_disabled@2x.png + qdarkstyle/window_close_focus.png + qdarkstyle/window_close_focus@2x.png + qdarkstyle/window_close_pressed.png + qdarkstyle/window_close_pressed@2x.png + qdarkstyle/window_grip.png + qdarkstyle/window_grip@2x.png + qdarkstyle/window_grip_disabled.png + qdarkstyle/window_grip_disabled@2x.png + qdarkstyle/window_grip_focus.png + qdarkstyle/window_grip_focus@2x.png + qdarkstyle/window_grip_pressed.png + qdarkstyle/window_grip_pressed@2x.png + qdarkstyle/window_minimize.png + qdarkstyle/window_minimize@2x.png + qdarkstyle/window_minimize_disabled.png + qdarkstyle/window_minimize_disabled@2x.png + qdarkstyle/window_minimize_focus.png + qdarkstyle/window_minimize_focus@2x.png + qdarkstyle/window_minimize_pressed.png + qdarkstyle/window_minimize_pressed@2x.png + qdarkstyle/window_undock.png + qdarkstyle/window_undock@2x.png + qdarkstyle/window_undock_disabled.png + qdarkstyle/window_undock_disabled@2x.png + qdarkstyle/window_undock_focus.png + qdarkstyle/window_undock_focus@2x.png + qdarkstyle/window_undock_pressed.png + qdarkstyle/window_undock_pressed@2x.png + qdarkstyle/style.qss + +