]> cloud.milkyroute.net Git - dolphin.git/commitdiff
use proper icon set and style outside of Plasma
authorChristoph Cullmann <cullmann@kde.org>
Sun, 12 May 2024 21:39:31 +0000 (23:39 +0200)
committerMéven Car <meven@kde.org>
Mon, 13 May 2024 09:58:10 +0000 (09:58 +0000)
the framework functions used will setup the proper
icon set and re-coloring and style to use

details see

https://invent.kde.org/frameworks/kiconthemes/-/issues/3

src/main.cpp

index 207a12116663269ffa76eb89cf45a00aea551f1d..6df53b62ebe3c2405b8a10460f1dd945a5ff8e82 100644 (file)
@@ -22,6 +22,7 @@
 #include <KCrash>
 #include <KDBusService>
 #include <KIO/PreviewJob>
+#include <KIconTheme>
 #include <KLocalizedString>
 #include <KWindowSystem>
 
 #include <Kdelibs4ConfigMigrator>
 #endif
 
+#define HAVE_STYLE_MANAGER __has_include(<KStyleManager>)
+#if HAVE_STYLE_MANAGER
+#include <KStyleManager>
+#endif
+
 #include <QApplication>
 #include <QCommandLineParser>
 #include <QDBusConnection>
@@ -69,6 +75,13 @@ int main(int argc, char **argv)
     }
 #endif
 
+    /**
+     * trigger initialisation of proper icon theme
+     */
+#if KICONTHEMES_VERSION >= QT_VERSION_CHECK(6, 3, 0)
+    KIconTheme::initTheme();
+#endif
+
     /**
      * enable high dpi support
      */
@@ -79,8 +92,19 @@ int main(int argc, char **argv)
     QApplication app(argc, argv);
     app.setWindowIcon(QIcon::fromTheme(QStringLiteral("system-file-manager"), app.windowIcon()));
 
-#if defined(Q_OS_WIN) || defined(Q_OS_MACOS)
+#if HAVE_STYLE_MANAGER
+    /**
+     * trigger initialisation of proper application style
+     */
+    KStyleManager::initStyle();
+#else
+    /**
+     * For Windows and macOS: use Breeze if available
+     * Of all tested styles that works the best for us
+     */
+#if defined(Q_OS_MACOS) || defined(Q_OS_WIN)
     QApplication::setStyle(QStringLiteral("breeze"));
+#endif
 #endif
 
     KCrash::initialize();