소스 검색

ui: Set Link Color when setting theme
Long story short, QT doesn't allow the link colors to be set via their stylesheets.

There are two ways to work with this, specify the color manually for every link (See the About dialog) The other way is to change the default palette.

IsDarkTheme is copy/pasted from src/yuzu/debugger/wait_tree.cpp

Kyle K 4 년 전
부모
커밋
38dd6dc190
3개의 변경된 파일20개의 추가작업 그리고 0개의 파일을 삭제
  1. 10 0
      src/yuzu/main.cpp
  2. 8 0
      src/yuzu/uisettings.cpp
  3. 2 0
      src/yuzu/uisettings.h

+ 10 - 0
src/yuzu/main.cpp

@@ -3652,6 +3652,16 @@ void GMainWindow::UpdateUITheme() {
         setStyleSheet({});
     }
 
+    QPalette new_pal(qApp->palette());
+    if (UISettings::IsDarkTheme()) {
+        new_pal.setColor(QPalette::Text, QColor(255, 255, 255, 255));
+        new_pal.setColor(QPalette::Link, QColor(0, 190, 255, 255));
+    } else {
+        new_pal.setColor(QPalette::Text, QColor(0, 0, 0, 255));
+        new_pal.setColor(QPalette::Link, QColor(0, 140, 200, 255));
+    }
+    qApp->setPalette(new_pal);
+
     QIcon::setThemeName(current_theme);
     QIcon::setThemeSearchPaths(theme_paths);
 }

+ 8 - 0
src/yuzu/uisettings.cpp

@@ -15,6 +15,14 @@ const Themes themes{{
     {"Midnight Blue Colorful", "colorful_midnight_blue"},
 }};
 
+bool IsDarkTheme() {
+    const auto& theme = UISettings::values.theme;
+    return theme == QStringLiteral("qdarkstyle") ||
+           theme == QStringLiteral("qdarkstyle_midnight_blue") ||
+           theme == QStringLiteral("colorful_dark") ||
+           theme == QStringLiteral("colorful_midnight_blue");
+}
+
 Values values = {};
 
 } // namespace UISettings

+ 2 - 0
src/yuzu/uisettings.h

@@ -17,6 +17,8 @@
 
 namespace UISettings {
 
+bool IsDarkTheme();
+
 struct ContextualShortcut {
     QString keyseq;
     QString controller_keyseq;