Skip to content
Snippets Groups Projects
Commit 3a707c2a authored by akiraohgaki's avatar akiraohgaki
Browse files

Apply icon with kde

parent e3cc6501
Branches
Tags
No related merge requests found
......@@ -96,7 +96,8 @@ bool SystemHandler::isApplicableType(const QString &installType) const
QStringList applicableTypes;
if (desktop == "kde") {
applicableTypes << "wallpapers";
applicableTypes << "wallpapers"
<< "icons";
}
else if (desktop == "gnome") {
applicableTypes << "wallpapers"
......@@ -122,6 +123,9 @@ bool SystemHandler::applyFile(const QString &path, const QString &installType) c
if (installType == "wallpapers") {
return applyKdeWallpaper(path);
}
else if (installType == "icons") {
return applyKdeIcon(path);
}
}
else if (desktop == "gnome") {
if (installType == "wallpapers") {
......@@ -179,6 +183,31 @@ bool SystemHandler::applyKdeWallpaper(const QString &path) const
return true;
}
bool SystemHandler::applyKdeIcon(const QString &path) const
{
auto themeName = QFileInfo(path).fileName();
auto message = QDBusMessage::createMethodCall("org.kde.plasmashell", "/PlasmaShell", "org.kde.PlasmaShell", "evaluateScript");
QString script;
QTextStream out(&script);
out << "var c = ConfigFile('kdeglobals');"
<< "c.group = 'Icons';"
<< "c.writeEntry('Theme', '" + themeName + "');";
QVariantList arguments;
arguments << QVariant(script);
message.setArguments(arguments);
auto reply = QDBusConnection::sessionBus().call(message);
if (reply.type() == QDBusMessage::ErrorMessage) {
qWarning() << reply.errorMessage();
return false;
}
return true;
}
bool SystemHandler::applyGnomeWallpaper(const QString &path) const
{
QStringList arguments{"set", "org.gnome.desktop.background", "picture-uri", "file://" + path};
......
......@@ -24,6 +24,7 @@ public slots:
private:
#ifdef QTLIB_UNIX
bool applyKdeWallpaper(const QString &path) const;
bool applyKdeIcon(const QString &path) const;
bool applyGnomeWallpaper(const QString &path) const;
bool applyGnomeIcon(const QString &path) const;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment