Warning, file /plasma/kde-gtk-config/kded/gsd-xsettings-manager/gsd-xsettings-manager.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2023 Fushan Wen <qydwhotmail@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "gsd-xsettings-manager.h"
0008 
0009 #include <QDBusConnection>
0010 #include <QDateTime>
0011 
0012 #include "config_editor/settings_ini.h"
0013 #include "gsd_xsettings_manager_adaptor.h"
0014 
0015 namespace
0016 {
0017 static constexpr const char *GTK_SETTINGS_DBUS_PATH = "/org/gtk/Settings";
0018 static constexpr const char *GTK_SETTINGS_DBUS_NAME = "org.gtk.Settings";
0019 }
0020 
0021 GSDXSettingsManager::GSDXSettingsManager(QObject *parent)
0022     : QObject(parent)
0023 {
0024     new GSDXSettingsManagerAdaptor(this);
0025 
0026     QDBusConnection dbus = QDBusConnection::sessionBus();
0027     dbus.registerObject(QString::fromLatin1(GTK_SETTINGS_DBUS_PATH), this);
0028     dbus.registerService(QString::fromLatin1(GTK_SETTINGS_DBUS_NAME));
0029 }
0030 
0031 GSDXSettingsManager::~GSDXSettingsManager()
0032 {
0033 }
0034 
0035 void GSDXSettingsManager::modulesChanged()
0036 {
0037     QDBusMessage msg = QDBusMessage::createSignal(QString::fromLatin1(GTK_SETTINGS_DBUS_PATH),
0038                                                   QStringLiteral("org.freedesktop.DBus.Properties"),
0039                                                   QStringLiteral("PropertiesChanged"));
0040     QVariantList args{
0041         QString::fromLatin1(GTK_SETTINGS_DBUS_NAME),
0042         QVariantMap{{QStringLiteral("Modules"), Modules()}},
0043         QStringList(),
0044     };
0045     msg.setArguments(args);
0046     QDBusConnection::sessionBus().send(msg);
0047 }
0048 
0049 void GSDXSettingsManager::enableAnimationsChanged()
0050 {
0051     QDBusMessage msg = QDBusMessage::createSignal(QString::fromLatin1(GTK_SETTINGS_DBUS_PATH),
0052                                                   QStringLiteral("org.freedesktop.DBus.Properties"),
0053                                                   QStringLiteral("PropertiesChanged"));
0054     QVariantList args{
0055         QString::fromLatin1(GTK_SETTINGS_DBUS_NAME),
0056         QVariantMap{{QStringLiteral("EnableAnimations"), EnableAnimations()}},
0057         QStringList(),
0058     };
0059     msg.setArguments(args);
0060     QDBusConnection::sessionBus().send(msg);
0061 }
0062 
0063 qlonglong GSDXSettingsManager::FontconfigTimestamp() const
0064 {
0065     return QDateTime::currentSecsSinceEpoch();
0066 }
0067 
0068 QString GSDXSettingsManager::Modules() const
0069 {
0070     return SettingsIniEditor::value(QStringLiteral("gtk-modules"), 3);
0071 }
0072 
0073 bool GSDXSettingsManager::EnableAnimations() const
0074 {
0075     return SettingsIniEditor::value(QStringLiteral("gtk-enable-animations"), 3) == QLatin1String("true");
0076 }