From 2142e53ae0c9e11df8b421d2c12e031428060dfd Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Fri, 16 Jun 2017 02:48:58 +0900
Subject: [PATCH] Organize functions

---
 app/src/handlers/systemhandler.cpp | 187 +++++++++++++----------------
 app/src/handlers/systemhandler.h   |  11 +-
 2 files changed, 88 insertions(+), 110 deletions(-)

diff --git a/app/src/handlers/systemhandler.cpp b/app/src/handlers/systemhandler.cpp
index d6f4fb4..dcc7b17 100644
--- a/app/src/handlers/systemhandler.cpp
+++ b/app/src/handlers/systemhandler.cpp
@@ -93,147 +93,122 @@ bool SystemHandler::isApplicableType(const QString &installType) const
 {
     auto desktop = desktopEnvironment();
 
-    if (installType == "wallpapers"
-            && (desktop == "kde" || desktop == "gnome" || desktop == "xfce")) {
-        return true;
+    QStringList applicableTypes;
+
+    if (desktop == "kde") {
+        applicableTypes << "wallpapers";
     }
-    else if (installType == "icons"
-             && (desktop == "kde" || desktop == "gnome" || desktop == "xfce")) {
-        return true;
+    else if (desktop == "gnome") {
+        applicableTypes << "wallpapers" << "icons" << "cursors";
     }
-    else if (installType == "cursors"
-             && (desktop == "kde" || desktop == "gnome" || desktop == "xfce")) {
-        return true;
+    else if (desktop == "xfce") {
+        applicableTypes << "wallpapers";
     }
-    /*else if ((installType == "aurorae_themes" && desktop == "kde")
-             || (installType == "metacity_themes" && desktop == "gnome")
-             || (installType == "xfwm4_themes" && desktop == "xfce")) {
-        return true;
-    }*/
-    return false;
+
+    return applicableTypes.contains(installType);
 }
 
 #ifdef QTLIB_UNIX
 bool SystemHandler::applyFile(const QString &path, const QString &installType) const
 {
     if (QFileInfo::exists(path) && isApplicableType(installType)) {
-        if (installType == "wallpapers") {
-            return applyWallpaper(path);
+        auto desktop = desktopEnvironment();
+
+        if (desktop == "kde") {
+            if (installType == "wallpapers") {
+                return applyKdeWallpaper(path);
+            }
         }
-        else if (installType == "icons") {
-            return applyIcon(path);
+        else if (desktop == "gnome") {
+            if (installType == "wallpapers") {
+                return applyGnomeWallpaper(path);
+            }
+            else if (desktop == "icons") {
+                return applyGnomeIcon(path);
+            }
+            else if (desktop == "cursors") {
+                return applyGnomeCursor(path);
+            }
         }
-        else if (installType == "cursors") {
-            return applyCursor(path);
+        else if (desktop == "xfce") {
+            if (installType == "wallpapers") {
+                return applyXfceWallpaper(path);
+            }
         }
-        /*else if (installType == "aurorae_themes"
-                 || installType == "metacity_themes"
-                 || installType == "xfwm4_themes") {
-            return applyWindowTheme(path);
-        }*/
     }
+
     return false;
 }
 #endif
 
 #ifdef QTLIB_UNIX
-bool SystemHandler::applyWallpaper(const QString &path) const
+bool SystemHandler::applyKdeWallpaper(const QString &path) const
 {
-    auto desktop = desktopEnvironment();
-
-    if (desktop == "kde") {
-        auto message = QDBusMessage::createMethodCall("org.kde.plasmashell", "/PlasmaShell", "org.kde.PlasmaShell", "evaluateScript");
-        QVariantList arguments;
-
-        QString script;
-        QTextStream out(&script);
-        out << "for (var key in desktops()) {"
-            << "var d = desktops()[key];"
-            << "d.wallpaperPlugin = 'org.kde.image';"
-            << "d.currentConfigGroup = ['Wallpaper', 'org.kde.image', 'General'];"
-            << "d.writeConfig('Image', 'file://" + path + "');"
-            << "}";
-
-        arguments << QVariant(script);
-        message.setArguments(arguments);
-
-        auto reply = QDBusConnection::sessionBus().call(message);
-
-        if (reply.type() == QDBusMessage::ErrorMessage) {
-            qWarning() << reply.errorMessage();
-            return false;
-        }
-        return true;
-    }
-    else if (desktop == "gnome") {
-        QStringList arguments{"set", "org.gnome.desktop.background", "picture-uri", "file://" + path};
-        return QProcess::startDetached("gsettings", arguments);
-    }
-    else if (desktop == "xfce") {
-        auto message = QDBusMessage::createMethodCall("org.xfce.Xfconf", "/org/xfce/Xfconf", "org.xfce.Xfconf", "SetProperty");
-        QVariantList arguments;
+    auto message = QDBusMessage::createMethodCall("org.kde.plasmashell", "/PlasmaShell", "org.kde.PlasmaShell", "evaluateScript");
 
-        QString channelValue = "xfce4-desktop";
-        //QString propertyValue = "/backdrop/screen0/monitor0/image-path";
-        QString propertyValue = "/backdrop/screen0/monitor0/workspace0/last-image";
-        QDBusVariant valueValue(path);
+    QString script;
+    QTextStream out(&script);
+    out << "for (var key in desktops()) {"
+        << "var d = desktops()[key];"
+        << "d.wallpaperPlugin = 'org.kde.image';"
+        << "d.currentConfigGroup = ['Wallpaper', 'org.kde.image', 'General'];"
+        << "d.writeConfig('Image', 'file://" + path + "');"
+        << "}";
 
-        arguments << QVariant(channelValue) << QVariant(propertyValue) << QVariant::fromValue(valueValue);
-        message.setArguments(arguments);
+    QVariantList arguments;
+    arguments << QVariant(script);
+    message.setArguments(arguments);
 
-        auto reply = QDBusConnection::sessionBus().call(message);
+    auto reply = QDBusConnection::sessionBus().call(message);
 
-        if (reply.type() == QDBusMessage::ErrorMessage) {
-            qWarning() << reply.errorMessage();
-            return false;
-        }
-        return true;
+    if (reply.type() == QDBusMessage::ErrorMessage) {
+        qWarning() << reply.errorMessage();
+        return false;
     }
-    return false;
+
+    return true;
 }
 
-bool SystemHandler::applyIcon(const QString &path) const
+bool SystemHandler::applyGnomeWallpaper(const QString &path) const
 {
-    auto desktop = desktopEnvironment();
-
-    if (desktop == "kde") {
-    }
-    else if (desktop == "gnome") {
-        auto themeName = QFileInfo(path).fileName();
-        QStringList arguments{"set", "org.gnome.desktop.interface", "icon-theme", themeName};
-        return QProcess::startDetached("gsettings", arguments);
-    }
-    else if (desktop == "xfce") {
-    }
-    return false;
+    QStringList arguments{"set", "org.gnome.desktop.background", "picture-uri", "file://" + path};
+    return QProcess::startDetached("gsettings", arguments);
 }
 
-bool SystemHandler::applyCursor(const QString &path) const
+bool SystemHandler::applyGnomeIcon(const QString &path) const
 {
-    auto desktop = desktopEnvironment();
+    auto themeName = QFileInfo(path).fileName();
+    QStringList arguments{"set", "org.gnome.desktop.interface", "icon-theme", themeName};
+    return QProcess::startDetached("gsettings", arguments);
+}
 
-    if (desktop == "kde") {
-    }
-    else if (desktop == "gnome") {
-        auto themeName = QFileInfo(path).fileName();
-        QStringList arguments{"set", "org.gnome.desktop.interface", "cursor-theme", themeName};
-        return QProcess::startDetached("gsettings", arguments);
-    }
-    else if (desktop == "xfce") {
-    }
-    return false;
+bool SystemHandler::applyGnomeCursor(const QString &path) const
+{
+    auto themeName = QFileInfo(path).fileName();
+    QStringList arguments{"set", "org.gnome.desktop.interface", "cursor-theme", themeName};
+    return QProcess::startDetached("gsettings", arguments);
 }
 
-bool SystemHandler::applyWindowTheme(const QString &path) const
+bool SystemHandler::applyXfceWallpaper(const QString &path) const
 {
-    auto desktop = desktopEnvironment();
+    auto message = QDBusMessage::createMethodCall("org.xfce.Xfconf", "/org/xfce/Xfconf", "org.xfce.Xfconf", "SetProperty");
 
-    if (desktop == "kde") {
-    }
-    else if (desktop == "gnome") {
-    }
-    else if (desktop == "xfce") {
+    QString channelValue = "xfce4-desktop";
+    //QString propertyValue = "/backdrop/screen0/monitor0/image-path";
+    QString propertyValue = "/backdrop/screen0/monitor0/workspace0/last-image";
+    QDBusVariant valueValue(path);
+
+    QVariantList arguments;
+    arguments << QVariant(channelValue) << QVariant(propertyValue) << QVariant::fromValue(valueValue);
+    message.setArguments(arguments);
+
+    auto reply = QDBusConnection::sessionBus().call(message);
+
+    if (reply.type() == QDBusMessage::ErrorMessage) {
+        qWarning() << reply.errorMessage();
+        return false;
     }
-    return false;
+
+    return true;
 }
 #endif
diff --git a/app/src/handlers/systemhandler.h b/app/src/handlers/systemhandler.h
index b469783..7145021 100644
--- a/app/src/handlers/systemhandler.h
+++ b/app/src/handlers/systemhandler.h
@@ -23,9 +23,12 @@ public slots:
 
 private:
 #ifdef QTLIB_UNIX
-    bool applyWallpaper(const QString &path) const;
-    bool applyIcon(const QString &path) const;
-    bool applyCursor(const QString &path) const;
-    bool applyWindowTheme(const QString &path) const;
+    bool applyKdeWallpaper(const QString &path) const;
+
+    bool applyGnomeWallpaper(const QString &path) const;
+    bool applyGnomeIcon(const QString &path) const;
+    bool applyGnomeCursor(const QString &path) const;
+
+    bool applyXfceWallpaper(const QString &path) const;
 #endif
 };
-- 
GitLab