Changeset View
Changeset View
Standalone View
Standalone View
kded/gtkconfig.cpp
Show All 40 Lines | 37 | GtkConfig::GtkConfig(QObject *parent, const QVariantList&) : | |||
---|---|---|---|---|---|
41 | kdeglobalsConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kdeglobals")))), | 41 | kdeglobalsConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kdeglobals")))), | ||
42 | kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc")))), | 42 | kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc")))), | ||
43 | kcminputConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kcminputrc")))) | 43 | kcminputConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kcminputrc")))) | ||
44 | { | 44 | { | ||
45 | QDBusConnection dbus = QDBusConnection::sessionBus(); | 45 | QDBusConnection dbus = QDBusConnection::sessionBus(); | ||
46 | dbus.registerService(QStringLiteral("org.kde.GtkConfig")); | 46 | dbus.registerService(QStringLiteral("org.kde.GtkConfig")); | ||
47 | dbus.registerObject(QStringLiteral("/GtkConfig"), this, QDBusConnection::ExportScriptableSlots); | 47 | dbus.registerObject(QStringLiteral("/GtkConfig"), this, QDBusConnection::ExportScriptableSlots); | ||
48 | 48 | | |||
49 | connect(qGuiApp, &QGuiApplication::fontChanged, this, &GtkConfig::setFont); | | |||
50 | connect(KIconLoader::global(), &KIconLoader::iconChanged, this, &GtkConfig::setIconTheme); | | |||
51 | connect(kdeglobalsConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKdeglobalsSettingsChange); | 49 | connect(kdeglobalsConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKdeglobalsSettingsChange); | ||
52 | connect(kwinConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKWinSettingsChange); | 50 | connect(kwinConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKWinSettingsChange); | ||
53 | connect(kcminputConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKCMInputSettingsChange); | 51 | connect(kcminputConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKCMInputSettingsChange); | ||
54 | dbus.connect( | | |||
55 | QString(), | | |||
56 | QStringLiteral("/KGlobalSettings"), | | |||
57 | QStringLiteral("org.kde.KGlobalSettings"), | | |||
58 | QStringLiteral("notifyChange"), | | |||
59 | this, | | |||
60 | SLOT(onGlobalSettingsChange(int,int)) | | |||
61 | ); | | |||
62 | 52 | | |||
63 | ConfigEditor::removeLegacyGtk2Strings(); | 53 | ConfigEditor::removeLegacyGtk2Strings(); | ||
64 | applyAllSettings(); | 54 | applyAllSettings(); | ||
65 | } | 55 | } | ||
66 | 56 | | |||
67 | GtkConfig::~GtkConfig() | 57 | GtkConfig::~GtkConfig() | ||
68 | { | 58 | { | ||
69 | QDBusConnection dbus = QDBusConnection::sessionBus(); | 59 | QDBusConnection dbus = QDBusConnection::sessionBus(); | ||
Show All 37 Lines | |||||
107 | { | 97 | { | ||
108 | const QString configFontName = configValueProvider->fontName(); | 98 | const QString configFontName = configValueProvider->fontName(); | ||
109 | ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-font-name"), configFontName); | 99 | ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-font-name"), configFontName); | ||
110 | ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("font-name"), configFontName); | 100 | ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("font-name"), configFontName); | ||
111 | ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-font-name"), configFontName); | 101 | ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-font-name"), configFontName); | ||
112 | ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/FontName"), configFontName); | 102 | ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/FontName"), configFontName); | ||
113 | } | 103 | } | ||
114 | 104 | | |||
115 | void GtkConfig::setIconTheme(int iconGroup) const | 105 | void GtkConfig::setIconTheme() const | ||
116 | { | 106 | { | ||
117 | if (iconGroup == KIconLoader::Group::Desktop) { // This is needed to update icons only once | | |||
118 | const QString iconThemeName = configValueProvider->iconThemeName(); | 107 | const QString iconThemeName = configValueProvider->iconThemeName(); | ||
119 | ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-icon-theme-name"), iconThemeName); | 108 | ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-icon-theme-name"), iconThemeName); | ||
120 | ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("icon-theme"), iconThemeName); | 109 | ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("icon-theme"), iconThemeName); | ||
121 | ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-icon-theme-name"), iconThemeName); | 110 | ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-icon-theme-name"), iconThemeName); | ||
122 | ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Net/IconThemeName"), iconThemeName); | 111 | ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Net/IconThemeName"), iconThemeName); | ||
123 | } | 112 | } | ||
124 | } | | |||
125 | 113 | | |||
126 | void GtkConfig::setCursorTheme() const | 114 | void GtkConfig::setCursorTheme() const | ||
127 | { | 115 | { | ||
128 | const QString cursorThemeName = configValueProvider->cursorThemeName(); | 116 | const QString cursorThemeName = configValueProvider->cursorThemeName(); | ||
129 | ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-cursor-theme-name"), cursorThemeName); | 117 | ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-cursor-theme-name"), cursorThemeName); | ||
130 | ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("cursor-theme"), cursorThemeName); | 118 | ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("cursor-theme"), cursorThemeName); | ||
131 | ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-cursor-theme-name"), cursorThemeName); | 119 | ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-cursor-theme-name"), cursorThemeName); | ||
132 | ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/CursorThemeName"), cursorThemeName); | 120 | ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/CursorThemeName"), cursorThemeName); | ||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Line(s) | 176 | { | |||
192 | ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("enable-animations"), enableAnimations == QLatin1String("1")); | 180 | ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("enable-animations"), enableAnimations == QLatin1String("1")); | ||
193 | ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-enable-animations"), enableAnimations); | 181 | ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-enable-animations"), enableAnimations); | ||
194 | ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/EnableAnimations"), enableAnimations); | 182 | ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/EnableAnimations"), enableAnimations); | ||
195 | } | 183 | } | ||
196 | 184 | | |||
197 | void GtkConfig::applyAllSettings() const | 185 | void GtkConfig::applyAllSettings() const | ||
198 | { | 186 | { | ||
199 | setFont(); | 187 | setFont(); | ||
200 | setIconTheme(KIconLoader::Group::Desktop); | 188 | setIconTheme(); | ||
201 | setCursorTheme(); | 189 | setCursorTheme(); | ||
202 | setIconsOnButtons(); | 190 | setIconsOnButtons(); | ||
203 | setIconsInMenus(); | 191 | setIconsInMenus(); | ||
204 | setToolbarStyle(); | 192 | setToolbarStyle(); | ||
205 | setScrollbarBehavior(); | 193 | setScrollbarBehavior(); | ||
206 | setDarkThemePreference(); | 194 | setDarkThemePreference(); | ||
207 | setWindowDecorationsButtonsOrder(); | 195 | setWindowDecorationsButtonsOrder(); | ||
208 | setEnableAnimations(); | 196 | setEnableAnimations(); | ||
209 | } | 197 | } | ||
210 | 198 | | |||
211 | void GtkConfig::onGlobalSettingsChange(int settingsChangeType, int arg) const | 199 | void GtkConfig::onKdeglobalsSettingsChange(const KConfigGroup &group, const QByteArrayList &names) const | ||
212 | { | 200 | { | ||
213 | SettingsChangeType changeType = static_cast<SettingsChangeType>(settingsChangeType); | 201 | if (group.name() == QStringLiteral("KDE")) { | ||
214 | SettingsCategory settingsCategory = static_cast<SettingsCategory>(arg); | 202 | if (names.contains(QByteArrayLiteral("AnimationDurationFactor"))) { | ||
215 | 203 | setEnableAnimations(); | |||
216 | if (changeType == SettingsChangeType::Settings && settingsCategory == SettingsCategory::Style) { | 204 | } | ||
217 | setIconsOnButtons(); | 205 | if (names.contains(QByteArrayLiteral("ShowIconsInMenuItems"))) { | ||
218 | setIconsInMenus(); | 206 | setIconsInMenus(); | ||
219 | setToolbarStyle(); | 207 | } | ||
220 | } else if (changeType == SettingsChangeType::Settings && settingsCategory == SettingsCategory::Mouse) { | 208 | if (names.contains(QByteArrayLiteral("ShowIconsOnPushButtons"))) { | ||
209 | setIconsOnButtons(); | ||||
210 | } | ||||
211 | if (names.contains(QByteArrayLiteral("ScrollbarLeftClickNavigatesByPage"))) { | ||||
221 | setScrollbarBehavior(); | 212 | setScrollbarBehavior(); | ||
222 | } else if (changeType == SettingsChangeType::Palette) { | 213 | } | ||
214 | } else if (group.name() == QStringLiteral("Icons")) { | ||||
215 | if (names.contains(QByteArrayLiteral("Theme"))) { | ||||
216 | setIconTheme(); | ||||
217 | } | ||||
218 | } else if (group.name() == QStringLiteral("General")) { | ||||
219 | if (names.contains(QByteArrayLiteral("font"))) { | ||||
220 | setFont(); | ||||
221 | } | ||||
222 | if (names.contains(QByteArrayLiteral("ColorScheme"))) { | ||||
223 | setDarkThemePreference(); | 223 | setDarkThemePreference(); | ||
224 | } | 224 | } | ||
225 | } else if (group.name() == QStringLiteral("Toolbar style")) { | ||||
226 | if (names.contains(QByteArrayLiteral("ToolButtonStyle"))) { | ||||
227 | setToolbarStyle(); | ||||
225 | } | 228 | } | ||
226 | | ||||
227 | void GtkConfig::onKdeglobalsSettingsChange(const KConfigGroup &group, const QByteArrayList &names) const | | |||
228 | { | | |||
229 | if (group.name() == QLatin1String("KDE") | | |||
230 | && names.contains(QByteArrayLiteral("AnimationDurationFactor"))) { | | |||
231 | setEnableAnimations(); | | |||
232 | } | 229 | } | ||
233 | } | 230 | } | ||
234 | 231 | | |||
235 | void GtkConfig::onKWinSettingsChange(const KConfigGroup &group, const QByteArrayList &names) const | 232 | void GtkConfig::onKWinSettingsChange(const KConfigGroup &group, const QByteArrayList &names) const | ||
236 | { | 233 | { | ||
237 | if (group.name() == QStringLiteral("org.kde.kdecoration2") | 234 | if (group.name() == QStringLiteral("org.kde.kdecoration2") | ||
238 | && (names.contains("ButtonsOnRight") || names.contains("ButtonsOnLeft"))) { | 235 | && (names.contains("ButtonsOnRight") || names.contains("ButtonsOnLeft"))) { | ||
239 | setWindowDecorationsButtonsOrder(); | 236 | setWindowDecorationsButtonsOrder(); | ||
Show All 13 Lines |