Skip to content
Snippets Groups Projects
Commit 2142e53a authored by akiraohgaki's avatar akiraohgaki
Browse files

Organize functions

parent ad32bc1c
No related branches found
No related tags found
No related merge requests found
......@@ -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
......@@ -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
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment