File indexing completed on 2024-05-12 05:29:27
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 inline constexpr QLatin1String GTK_SETTINGS_DBUS_PATH{"/org/gtk/Settings"}; 0018 inline constexpr QLatin1String 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(GTK_SETTINGS_DBUS_PATH, this); 0028 dbus.registerService(GTK_SETTINGS_DBUS_NAME); 0029 } 0030 0031 GSDXSettingsManager::~GSDXSettingsManager() 0032 { 0033 } 0034 0035 void GSDXSettingsManager::modulesChanged() 0036 { 0037 QDBusMessage msg = 0038 QDBusMessage::createSignal(GTK_SETTINGS_DBUS_PATH, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged")); 0039 QVariantList args{ 0040 GTK_SETTINGS_DBUS_NAME, 0041 QVariantMap{{QStringLiteral("Modules"), Modules()}}, 0042 QStringList(), 0043 }; 0044 msg.setArguments(args); 0045 QDBusConnection::sessionBus().send(msg); 0046 } 0047 0048 void GSDXSettingsManager::enableAnimationsChanged() 0049 { 0050 QDBusMessage msg = 0051 QDBusMessage::createSignal(GTK_SETTINGS_DBUS_PATH, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged")); 0052 QVariantList args{ 0053 GTK_SETTINGS_DBUS_NAME, 0054 QVariantMap{{QStringLiteral("EnableAnimations"), EnableAnimations()}}, 0055 QStringList(), 0056 }; 0057 msg.setArguments(args); 0058 QDBusConnection::sessionBus().send(msg); 0059 } 0060 0061 qlonglong GSDXSettingsManager::FontconfigTimestamp() const 0062 { 0063 return QDateTime::currentSecsSinceEpoch(); 0064 } 0065 0066 QString GSDXSettingsManager::Modules() const 0067 { 0068 return SettingsIniEditor::value(QStringLiteral("gtk-modules"), 3); 0069 } 0070 0071 bool GSDXSettingsManager::EnableAnimations() const 0072 { 0073 return SettingsIniEditor::value(QStringLiteral("gtk-enable-animations"), 3) == QLatin1String("true"); 0074 } 0075 0076 #include "moc_gsd-xsettings-manager.cpp"