Hello community,
here is the log from the commit of package kde-gtk-config5 for openSUSE:Factory
checked in at 2020-06-08 23:52:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kde-gtk-config5 (Old)
and /work/SRC/openSUSE:Factory/.kde-gtk-config5.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kde-gtk-config5"
Mon Jun 8 23:52:42 2020 rev:94 rq:812306 version:5.19.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kde-gtk-config5/kde-gtk-config5.changes
2020-05-07 15:08:50.240161713 +0200
+++
/work/SRC/openSUSE:Factory/.kde-gtk-config5.new.3606/kde-gtk-config5.changes
2020-06-08 23:53:38.571143271 +0200
@@ -1,0 +2,27 @@
+Thu Jun 4 13:27:11 UTC 2020 - Fabian Vogt <[email protected]>
+
+- Update to 5.19.0
+ * New bugfix release
+ * For more details please see:
+ * https://www.kde.org/announcements/plasma-5.19.0.php
+- Changes since 5.18.90:
+ * Remove kiconthemes dependency
+
+-------------------------------------------------------------------
+Thu May 14 14:33:02 UTC 2020 - Fabian Vogt <[email protected]>
+
+- Update to 5.18.90
+ * New feature release
+ * For more details please see:
+ * https://www.kde.org/announcements/plasma-5.18.90.php
+- Changes since 5.18.5:
+ * [GTK Config] Apply color scheme to GTK3 applications
+ * [GTK Config] Parameterise GTK config editing
+ * Improve CMake handling of GNOME libraries
+ * [GTK Config] Port all settings to KConfigWatcher
+ * Add missing license header to color-reload-module/reloader.c
+ * [GTK3] Add module to reload colorscheme in GTK3 apps without restarting
them
+ * [Gtk Config] Port cursor theme sync to KConfigWatcher
+ * Provide better name for GTK Settings Sync service
+
+-------------------------------------------------------------------
Old:
----
kde-gtk-config-5.18.5.tar.xz
kde-gtk-config-5.18.5.tar.xz.sig
New:
----
kde-gtk-config-5.19.0.tar.xz
kde-gtk-config-5.19.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kde-gtk-config5.spec ++++++
--- /var/tmp/diff_new_pack.vb5jMG/_old 2020-06-08 23:53:39.979147614 +0200
+++ /var/tmp/diff_new_pack.vb5jMG/_new 2020-06-08 23:53:39.983147626 +0200
@@ -18,24 +18,27 @@
%bcond_without lang
Name: kde-gtk-config5
-Version: 5.18.5
+Version: 5.19.0
Release: 0
Summary: Daemon for GTK2 and GTK3 Applications Appearance Under KDE
License: LGPL-3.0-or-later AND GPL-3.0-or-later
Group: System/GUI/KDE
URL: http://projects.kde.org/kde-gtk-config
-Source:
https://download.kde.org/stable/plasma/%{version}/kde-gtk-config-%{version}.tar.xz
+Source: kde-gtk-config-%{version}.tar.xz
%if %{with lang}
-Source1:
https://download.kde.org/stable/plasma/%{version}/kde-gtk-config-%{version}.tar.xz.sig
+Source1: kde-gtk-config-%{version}.tar.xz.sig
Source2: plasma.keyring
%endif
BuildRequires: extra-cmake-modules >= 0.0.9
BuildRequires: kf5-filesystem
BuildRequires: xz
BuildRequires: cmake(KF5Config)
+BuildRequires: cmake(KF5ConfigWidgets)
BuildRequires: cmake(KF5CoreAddons)
BuildRequires: cmake(KF5DBusAddons)
+BuildRequires: cmake(KF5GuiAddons)
BuildRequires: cmake(KF5IconThemes)
+BuildRequires: pkgconfig(giomm-2.4)
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(x11)
@@ -86,6 +89,9 @@
%files
%license COPYING*
+%dir %{_kf5_libdir}/gtk-3.0/
+%dir %{_kf5_libdir}/gtk-3.0/modules/
+%{_kf5_libdir}/gtk-3.0/modules/libcolorreload-gtk-module.so
%dir %{_kf5_plugindir}/kf5
%dir %{_kf5_plugindir}/kf5/kded
%{_kf5_plugindir}/kf5/kded/gtkconfig.so
++++++ kde-gtk-config-5.18.5.tar.xz -> kde-gtk-config-5.19.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/CMakeLists.txt
new/kde-gtk-config-5.19.0/CMakeLists.txt
--- old/kde-gtk-config-5.18.5/CMakeLists.txt 2020-05-05 16:36:35.000000000
+0200
+++ new/kde-gtk-config-5.19.0/CMakeLists.txt 2020-06-04 13:08:39.000000000
+0200
@@ -1,5 +1,5 @@
project(kde-gtk-config)
-set(PROJECT_VERSION "5.18.5")
+set(PROJECT_VERSION "5.19.0")
cmake_minimum_required(VERSION 3.10)
find_package(ECM REQUIRED NO_MODULE)
@@ -8,12 +8,19 @@
find_package(Qt5 REQUIRED NO_MODULE COMPONENTS DBus)
find_package(KF5CoreAddons REQUIRED)
find_package(KF5Config REQUIRED)
-find_package(KF5IconThemes REQUIRED)
+find_package(KF5ConfigWidgets REQUIRED)
+find_package(KF5GuiAddons REQUIRED)
find_package(KF5DBusAddons REQUIRED)
-find_package(GTK3 REQUIRED)
+find_package(PkgConfig REQUIRED)
find_package(GSettingSchemas REQUIRED)
find_package(XSettingsd)
+pkg_check_modules(GTK+3 REQUIRED IMPORTED_TARGET gtk+-3.0)
+pkg_check_modules(GTK+2 REQUIRED IMPORTED_TARGET gtk+-2.0)
+pkg_check_modules(GLib2 REQUIRED IMPORTED_TARGET glib-2.0)
+pkg_check_modules(GObject REQUIRED IMPORTED_TARGET gobject-2.0)
+pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
+
include(ECMSetupVersion)
include(ECMInstallIcons)
include(ECMMarkAsTest)
@@ -36,6 +43,7 @@
add_subdirectory(gtk3proxies)
add_subdirectory(kded)
add_subdirectory(kconf_update)
+add_subdirectory(color-reload-module)
# add clang-format target for all our real source files
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/cmake/modules/FindGTK3.cmake
new/kde-gtk-config-5.19.0/cmake/modules/FindGTK3.cmake
--- old/kde-gtk-config-5.18.5/cmake/modules/FindGTK3.cmake 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/cmake/modules/FindGTK3.cmake 1970-01-01
01:00:00.000000000 +0100
@@ -1,193 +0,0 @@
-# - Find gtk3, glib
-# Defines:
-# GTK3_FOUND
-# GTK3_INCLUDE_DIRS
-# GTK3_LIBRARY_DIRS
-# GTK3_DEFINITIONS
-# GTK3_DEFINITIONS
-
-FIND_PACKAGE(PkgConfig)
-
-#
-# gtk
-#
-PKG_CHECK_MODULES(PC_GTK3 REQUIRED gtk+-3.0)
-
-SET(GTK3_DEFINITIONS ${PC_GTK3_CXXFLAGS_OTHER})
-
-FIND_PATH(
- GTK3_INCLUDE_DIR gtk/gtk.h
- HINTS ${PC_GTK3_INCLUDEDIR} ${PC_GTK3_INCLUDE_DIRS}
- PATH_SUFFIXES gtk-3.0)
-
-FIND_LIBRARY(
- GTK3_LIBRARY NAMES gtk-3
- HINTS ${PC_GTK3_LIBDIR} ${PC_GTK3_LIBRARY_DIRS})
-
-#
-# glib
-#
-PKG_CHECK_MODULES(PC_GLIB2 REQUIRED glib-2.0)
-
-SET(GLIB2_DEFINITIONS ${PC_GLIB2_CXXFLAGS_OTHER})
-
-FIND_PATH(
- GLIB2_INCLUDE_DIR_PART1 glib.h
- HINTS ${PC_GLIB2_INCLUDEDIR} ${PC_GLIB2_INCLUDE_DIRS}
- PATH_SUFFIXES glib-2.0)
-
-FIND_PATH(
- GLIB2_INCLUDE_DIR_PART2 glibconfig.h
- HINTS ${PC_GLIB2_INCLUDEDIR} ${PC_GLIB2_INCLUDE_DIRS}
- PATH_SUFFIXES glib-2.0/include)
-
-SET(GLIB2_INCLUDE_DIR ${GLIB2_INCLUDE_DIR_PART1} ${GLIB2_INCLUDE_DIR_PART2})
-
-FIND_LIBRARY(
- GLIB2_LIBRARY NAMES glib-2.0
- HINTS ${PC_GLIB2_LIBDIR} ${PC_GLIB2_LIBRARY_DIRS})
-
-#
-# gobject
-#
-PKG_CHECK_MODULES(PC_GOBJECT2 REQUIRED gobject-2.0)
-
-SET(GLIB2_DEFINITIONS ${PC_GOBJECT2_CXXFLAGS_OTHER})
-
-FIND_PATH(
- GOBJECT2_INCLUDE_DIR_PART1 glib.h
- HINTS ${PC_GOBJECT2_INCLUDEDIR} ${PC_GOBJECT2_INCLUDE_DIRS}
- PATH_SUFFIXES gobject-2.0)
-
-FIND_PATH(
- GOBJECT2_INCLUDE_DIR_PART2 gobject.h
- HINTS ${PC_GOBJECT2_INCLUDEDIR} ${PC_GOBJECT2_INCLUDE_DIRS}
- PATH_SUFFIXES glib-2.0/gobject)
-
-SET(GOBJECT2_INCLUDE_DIR ${GOBJECT2_INCLUDE_DIR_PART1}
${GOBJECT2_INCLUDE_DIR_PART2})
-
-FIND_LIBRARY(
- GOBJECT2_LIBRARY NAMES gobject-2.0
- HINTS ${PC_GOBJECT2_LIBDIR} ${PC_GOBJECT2_LIBRARY_DIRS})
-
-#
-# gio
-#
-PKG_CHECK_MODULES(PC_GIO2 REQUIRED gio-2.0)
-
-SET(GLIB2_DEFINITIONS ${PC_GIO2_CXXFLAGS_OTHER})
-
-FIND_PATH(
- GIO2_INCLUDE_DIR_PART1 glib.h
- HINTS ${PC_GIO2_INCLUDEDIR} ${PC_GIO2_INCLUDE_DIRS}
- PATH_SUFFIXES gio)
-
-FIND_PATH(
- GIO2_INCLUDE_DIR_PART2 gio.h
- HINTS ${PC_GIO2_INCLUDEDIR} ${PC_GIO2_INCLUDE_DIRS}
- PATH_SUFFIXES glib-2.0/gio)
-
-SET(GIO2_INCLUDE_DIR ${GIO2_INCLUDE_DIR_PART1} ${GIO2_INCLUDE_DIR_PART2})
-
-FIND_LIBRARY(
- GIO2_LIBRARY NAMES gio-2.0
- HINTS ${PC_GIO2_LIBDIR} ${PC_GIO2_LIBRARY_DIRS})
-
-
-#
-# pango
-#
-PKG_CHECK_MODULES(PC_PANGO REQUIRED pango)
-
-SET(PANGO_DEFINITIONS ${PC_PANGO_CXXFLAGS_OTHER})
-
-FIND_PATH(
- PANGO_INCLUDE_DIR pango/pango.h
- HINTS ${PC_PANGO_INCLUDEDIR} ${PC_PANGO_INCLUDE_DIRS}
- PATH_SUFFIXES pango-1.0)
-
-FIND_LIBRARY(
- PANGO_LIBRARY NAMES pango-1.0
- HINTS ${PC_PANGO_LIBDIR} ${PC_PANGO_LIBRARY_DIRS})
-
-#
-# harfbuzz
-#
-if(PC_PANGO_VERSION VERSION_EQUAL 1.44 OR PC_PANGO_VERSION VERSION_GREATER
1.44)
- PKG_CHECK_MODULES(PC_HARFBUZZ REQUIRED harfbuzz)
-
- SET(HARFBUZZ_DEFINITIONS ${PC_HARFBUZZ_CXXFLAGS_OTHER})
-
- FIND_PATH(
- HARFBUZZ_INCLUDE_DIR hb.h
- HINTS ${PC_HARFBUZZ_INCLUDEDIR} ${PC_HARFBUZZ_INCLUDE_DIRS}
- PATH_SUFFIXES harfbuzz)
-
- FIND_LIBRARY(
- HARFBUZZ_LIBRARY NAMES harfbuzz
- HINTS ${PC_HARFBUZZ_LIBDIR} ${PC_HARFBUZZ_LIBRARY_DIRS})
-endif()
-
-#
-# cairo
-#
-PKG_CHECK_MODULES(PC_CAIRO REQUIRED cairo)
-
-SET(CAIRO_DEFINITIONS ${PC_CAIRO_CXXFLAGS_OTHER})
-
-FIND_PATH(
- CAIRO_INCLUDE_DIR cairo.h
- HINTS ${PC_CAIRO_INCLUDEDIR} ${PC_CAIRO_INCLUDE_DIRS}
- PATH_SUFFIXES cairo)
-
-FIND_LIBRARY(
- CAIRO_LIBRARY NAMES cairo
- HINTS ${PC_CAIRO_LIBDIR} ${PC_CAIRO_LIBRARY_DIRS})
-
-#
-# gdk-pixbuf
-#
-PKG_CHECK_MODULES(PC_GDKPIXBUF REQUIRED gdk-pixbuf-2.0)
-
-SET(GDKPIXBUF_DEFINITIONS ${PC_GDKPIXBUF_CXXFLAGS_OTHER})
-
-FIND_PATH(
- GDKPIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h
- HINTS ${PC_GDKPIXBUF_INCLUDEDIR} ${PC_GDKPIXBUF_INCLUDE_DIRS}
- PATH_SUFFIXES gdk-pixbuf-2.0)
-
-FIND_LIBRARY(
- GDKPIXBUF_LIBRARY NAMES gdk_pixbuf-2.0
- HINTS ${PC_GDKPIXBUF_LIBDIR} ${PC_GDKPIXBUF_LIBRARY_DIRS})
-
-#
-# atk
-#
-PKG_CHECK_MODULES(PC_ATK REQUIRED atk)
-
-SET(ATK_DEFINITIONS ${PC_ATK_CXXFLAGS_OTHER})
-
-FIND_PATH(
- ATK_INCLUDE_DIR atk/atk.h
- HINTS ${PC_ATK_INCLUDEDIR} ${PC_ATK_INCLUDE_DIRS}
- PATH_SUFFIXES atk-1.0)
-
-FIND_LIBRARY(
- ATK_LIBRARY NAMES atk-1.0
- HINTS ${PC_ATK_LIBDIR} ${PC_ATK_LIBRARY_DIRS})
-
-#
-#
-#result
-#
-#
-SET(GTK3_LIBRARY_DIRS ${GTK3_LIBRARY} ${GLIB2_LIBRARY} ${PANGO_LIBRARY}
${HARFBUZZ_LIBRARY} ${CAIRO_LIBRARY} ${GDKPIXBUF_LIBRARY} ${ATK_LIBRARY})
-SET(GTK3_INCLUDE_DIRS ${GTK3_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR}
${GIO2_INCLUDE_DIR} ${HARFBUZZ_INCLUDE_DIR} ${PANGO_INCLUDE_DIR}
${CAIRO_INCLUDE_DIR} ${GDKPIXBUF_INCLUDE_DIR} ${ATK_INCLUDE_DIR})
-
-INCLUDE(FindPackageHandleStandardArgs)
-
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(
- GTK3 DEFAULT_MSG
- GTK3_LIBRARY GTK3_INCLUDE_DIR)
-
-MARK_AS_ADVANCED(GTK3_INCLUDE_DIR GTK3_LIBRARY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kde-gtk-config-5.18.5/color-reload-module/CMakeLists.txt
new/kde-gtk-config-5.19.0/color-reload-module/CMakeLists.txt
--- old/kde-gtk-config-5.18.5/color-reload-module/CMakeLists.txt
1970-01-01 01:00:00.000000000 +0100
+++ new/kde-gtk-config-5.19.0/color-reload-module/CMakeLists.txt
2020-06-04 13:08:39.000000000 +0200
@@ -0,0 +1,19 @@
+add_library(colorreload-gtk3-module MODULE
+ reloader.c
+)
+
+target_link_libraries(colorreload-gtk3-module
+ PRIVATE
+ PkgConfig::GLib2
+ PkgConfig::GTK+3
+)
+
+set_target_properties(colorreload-gtk3-module
+ PROPERTIES
+ OUTPUT_NAME libcolorreload-gtk-module
+)
+
+install(
+ TARGETS colorreload-gtk3-module
+ DESTINATION ${KDE_INSTALL_LIBDIR}/gtk-3.0/modules
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/color-reload-module/reloader.c
new/kde-gtk-config-5.19.0/color-reload-module/reloader.c
--- old/kde-gtk-config-5.18.5/color-reload-module/reloader.c 1970-01-01
01:00:00.000000000 +0100
+++ new/kde-gtk-config-5.19.0/color-reload-module/reloader.c 2020-06-04
13:08:39.000000000 +0200
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2020 Carson Black <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License or (at your option) version 3 or any later version
+ * accepted by the membership of KDE e.V. (or its successor approved
+ * by the membership of KDE e.V.), which shall act as a proxy
+ * defined in Section 14 of version 3 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gtk/gtk.h>
+#include <glib.h>
+#include <gio/gio.h>
+#include <gdk/gdk.h>
+
+gchar *path;
+GFile *file;
+GFileMonitor *mon;
+GtkCssProvider *provider;
+
+void reload_colours() {
+ if (provider == NULL) {
+ provider = gtk_css_provider_new();
+ } else {
+ gtk_style_context_remove_provider_for_screen(
+ gdk_screen_get_default(),
+ GTK_STYLE_PROVIDER(provider)
+ );
+ g_clear_object(&provider);
+ provider = gtk_css_provider_new();
+ }
+ gtk_style_context_add_provider_for_screen(
+ gdk_screen_get_default(),
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_USER+1
+ );
+ gtk_css_provider_load_from_file(
+ provider,
+ file,
+ NULL
+ );
+}
+
+__attribute__((visibility("default"))) void gtk_module_init(gint *argc, gchar
***argv[]) {
+ path = g_strconcat(g_get_user_config_dir(), "/gtk-3.0/colors.css", NULL);
+ file = g_file_new_for_path(path);
+
+ mon = g_file_monitor_file(
+ file,
+ G_FILE_MONITOR_NONE,
+ NULL,
+ NULL
+ );
+
+ g_signal_connect(mon, "changed", G_CALLBACK(reload_colours), NULL);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/gtk3proxies/CMakeLists.txt
new/kde-gtk-config-5.19.0/gtk3proxies/CMakeLists.txt
--- old/kde-gtk-config-5.18.5/gtk3proxies/CMakeLists.txt 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/gtk3proxies/CMakeLists.txt 2020-06-04
13:08:39.000000000 +0200
@@ -1,14 +1,12 @@
-find_package(GTK3 REQUIRED)
# gtk3 pulls in X11 headers, we need to add the include path if they are not
in /usr/include
find_package(X11)
-
-include_directories(${GTK3_INCLUDE_DIRS})
-
add_executable(gtk3_preview preview3.c)
+
if(X11_FOUND)
target_include_directories(gtk3_preview PRIVATE ${X11_X11_INCLUDE_PATH})
endif()
+
target_compile_definitions(gtk3_preview PRIVATE
"-DDATA_DIR=\"${KDE_INSTALL_FULL_DATADIR}/kcm-gtk-module/\"")
-target_link_libraries(gtk3_preview ${GTK3_LIBRARY} ${GOBJECT2_LIBRARY}
${GLIB2_LIBRARY})
+target_link_libraries(gtk3_preview PkgConfig::GTK+3 PkgConfig::GLib2
PkgConfig::GObject)
install(TARGETS gtk3_preview RUNTIME DESTINATION "${LIBEXEC_INSTALL_DIR}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/gtkproxies/CMakeLists.txt
new/kde-gtk-config-5.19.0/gtkproxies/CMakeLists.txt
--- old/kde-gtk-config-5.18.5/gtkproxies/CMakeLists.txt 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/gtkproxies/CMakeLists.txt 2020-06-04
13:08:39.000000000 +0200
@@ -1,15 +1,10 @@
-find_package(GTK2 REQUIRED)
-
-include_directories(BEFORE ${GTK2_INCLUDE_DIRS})
-
add_executable(reload_gtk_apps reload.c)
-target_link_libraries(reload_gtk_apps ${GTK2_LIBRARIES})
+target_link_libraries(reload_gtk_apps PkgConfig::GTK+2)
install(TARGETS reload_gtk_apps RUNTIME DESTINATION "${LIBEXEC_INSTALL_DIR}")
-
add_executable(gtk_preview preview.c)
target_compile_definitions(gtk_preview PRIVATE
"-DDATA_DIR=\"${KDE_INSTALL_FULL_DATADIR}/kcm-gtk-module/\"")
-target_link_libraries(gtk_preview ${GTK2_LIBRARIES} ${GTK2_GIOMM_LIBRARY})
+target_link_libraries(gtk_preview PkgConfig::GTK+2)
install(TARGETS gtk_preview RUNTIME DESTINATION "${LIBEXEC_INSTALL_DIR}")
# preview file used for the gtk3 version too
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kconf_update/CMakeLists.txt
new/kde-gtk-config-5.19.0/kconf_update/CMakeLists.txt
--- old/kde-gtk-config-5.18.5/kconf_update/CMakeLists.txt 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kconf_update/CMakeLists.txt 2020-06-04
13:08:39.000000000 +0200
@@ -9,14 +9,15 @@
PRIVATE
Qt5::Core
KF5::ConfigCore
- ${GIO2_LIBRARY}
- ${GOBJECT2_LIBRARY}
+ KF5::ConfigWidgets
+ KF5::GuiAddons
+ PkgConfig::GIO
+ PkgConfig::GObject
)
target_include_directories(gtk_theme
PRIVATE
../kded/
- ${GTK3_INCLUDE_DIRS}
)
target_compile_definitions(gtk_theme
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kconf_update/gtktheme.cpp
new/kde-gtk-config-5.19.0/kconf_update/gtktheme.cpp
--- old/kde-gtk-config-5.18.5/kconf_update/gtktheme.cpp 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kconf_update/gtktheme.cpp 2020-06-04
13:08:39.000000000 +0200
@@ -19,6 +19,7 @@
*/
#include <QString>
+#include <QVariant>
#include "configeditor.h"
@@ -49,8 +50,8 @@
|| currentGtk3Theme == QStringLiteral("BreezyGTK")
|| currentGtk3Theme == QStringLiteral("Orion")
) {
- ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("gtk-theme"),
QStringLiteral("Breeze"));
+ ConfigEditor::setGtk3ConfigValueGSettings(QStringLiteral("gtk-theme"),
QStringLiteral("Breeze"));
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-theme-name"),
QStringLiteral("Breeze"));
-
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Net/ThemeName"),
QStringLiteral("Breeze"));
+
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Net/ThemeName"),
QStringLiteral("Breeze"));
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kded/CMakeLists.txt
new/kde-gtk-config-5.19.0/kded/CMakeLists.txt
--- old/kde-gtk-config-5.18.5/kded/CMakeLists.txt 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kded/CMakeLists.txt 2020-06-04
13:08:39.000000000 +0200
@@ -19,13 +19,16 @@
)
target_link_libraries(gtkconfig
+ PUBLIC
Qt5::DBus
KF5::CoreAddons
KF5::ConfigCore
+ KF5::ConfigWidgets
KF5::DBusAddons
- KF5::IconThemes
- ${GIO2_LIBRARY}
- ${GOBJECT2_LIBRARY}
+ PkgConfig::GTK+3
+ KF5::GuiAddons
+ PkgConfig::GIO
+ PkgConfig::GObject
)
install(TARGETS gtkconfig DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kded)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kded/configeditor.cpp
new/kde-gtk-config-5.19.0/kded/configeditor.cpp
--- old/kde-gtk-config-5.18.5/kded/configeditor.cpp 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kded/configeditor.cpp 2020-06-04
13:08:39.000000000 +0200
@@ -18,14 +18,20 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <QDebug>
+#include <QColor>
#include <QDir>
#include <QRegularExpression>
#include <QStandardPaths>
#include <QProcess>
+#include <QVariant>
+#include <QMap>
+#include <QList>
+#include <QTextStream>
#include <KSharedConfig>
#include <KConfigGroup>
+#include <KColorScheme>
+#include <KColorUtils>
#include <string>
#include <csignal>
@@ -35,19 +41,26 @@
#include "configeditor.h"
-void ConfigEditor::setGtk3ConfigValueDconf(const QString ¶mName, bool
paramValue, const QString &category)
+void ConfigEditor::setGtk3ConfigValueGSettings(const QString ¶mName, const
QVariant ¶mValue, const QString &category)
{
g_autoptr(GSettings) gsettings =
g_settings_new(category.toUtf8().constData());
- g_settings_set_boolean(gsettings, paramName.toUtf8().constData(),
paramValue);
+
+ if (paramValue.type() == QVariant::Type::String) {
+ g_settings_set_string(gsettings, paramName.toUtf8().constData(),
paramValue.toString().toUtf8().constData());
+ } else if (paramValue.type() == QVariant::Type::Int) {
+ g_settings_set_int(gsettings, paramName.toUtf8().constData(),
paramValue.toInt());
+ } else if (paramValue.type() == QVariant::Type::Bool) {
+ g_settings_set_boolean(gsettings, paramName.toUtf8().constData(),
paramValue.toBool());
+ }
}
-void ConfigEditor::setGtk3ConfigValueDconf(const QString ¶mName, const
QString ¶mValue, const QString &category)
+void ConfigEditor::setGtk3ConfigValueGSettingsAsEnum(const QString& paramName,
int paramValue, const QString& category)
{
g_autoptr(GSettings) gsettings =
g_settings_new(category.toUtf8().constData());
- g_settings_set_string(gsettings, paramName.toUtf8().constData(),
paramValue.toUtf8().constData());
+ g_settings_set_enum(gsettings, paramName.toUtf8().constData(), paramValue);
}
-void ConfigEditor::setGtk3ConfigValueSettingsIni(const QString ¶mName,
const QString ¶mValue)
+void ConfigEditor::setGtk3ConfigValueSettingsIni(const QString ¶mName,
const QVariant ¶mValue)
{
QString configLocation =
QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
QString gtk3ConfigPath = configLocation +
QStringLiteral("/gtk-3.0/settings.ini");
@@ -59,10 +72,9 @@
group.sync();
}
-void ConfigEditor::setGtk3ConfigValueXSettingsd(const QString ¶mName,
const QString ¶mValue)
+void ConfigEditor::setGtk3ConfigValueXSettingsd(const QString ¶mName,
const QVariant ¶mValue)
{
- using qsp = QStandardPaths;
- QString configLocation = qsp::writableLocation(qsp::GenericConfigLocation);
+ QString configLocation =
QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
QDir xsettingsdPath = configLocation + QStringLiteral("/xsettingsd");
if (!xsettingsdPath.exists()) {
@@ -80,7 +92,7 @@
reloadXSettingsd();
}
-void ConfigEditor::setGtk2ConfigValue(const QString ¶mName, const QString
¶mValue)
+void ConfigEditor::setGtk2ConfigValue(const QString ¶mName, const QVariant
¶mValue)
{
QString gtkrcPath = qEnvironmentVariable("GTK2_RC_FILES", QDir::homePath()
+ QStringLiteral("/.gtkrc-2.0"));
if (gtkrcPath.contains(QStringLiteral(":/"))) { // I.e. env variable
contains multiple paths
@@ -95,6 +107,14 @@
reloadGtk2Apps();
}
+void ConfigEditor::setGtk3Colors(const QMap<QString, QColor>
&colorsDefinitions)
+{
+ addImportStatementToGtkCssUserFile();
+ modifyColorsCssFile(colorsDefinitions);
+ addGtkModule(QStringLiteral("colorreload-gtk-module"));
+}
+
+
QString ConfigEditor::gtk2ConfigValue(const QString& paramName)
{
QString gtkrcPath = QDir::homePath() + QStringLiteral("/.gtkrc-2.0");
@@ -152,6 +172,51 @@
reloadGtk2Apps();
}
+void ConfigEditor::addGtkModule(const QString& moduleName)
+{
+ const QString currentModulesString =
gtk3ConfigValueSettingsIni(QStringLiteral("gtk-modules"));
+
+ if (currentModulesString.contains(moduleName)) {
+ return;
+ }
+
+ if (currentModulesString.isEmpty()) { // No modules
+ setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-modules"),
moduleName);
+ } else {
+ setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-modules"),
QStringLiteral("%1:%2").arg(currentModulesString, moduleName));
+ }
+}
+
+void ConfigEditor::addImportStatementToGtkCssUserFile()
+{
+ QString gtkCssPath =
QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) +
QStringLiteral("/gtk-3.0/gtk.css");
+ QFile gtkCss(gtkCssPath);
+
+ if (gtkCss.open(QIODevice::ReadWrite)) {
+ QByteArray gtkCssContents = gtkCss.readAll();
+
+ static const QByteArray importStatement = QByteArrayLiteral("@import
'colors.css';");
+ if (!gtkCssContents.contains(importStatement)) {
+ QTextStream gtkCssStream(>kCss);
+ gtkCssStream << importStatement;
+ }
+ }
+}
+
+void ConfigEditor::modifyColorsCssFile(const QMap<QString, QColor>
&colorsDefinitions)
+{
+ QString colorsCssPath =
QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) +
QStringLiteral("/gtk-3.0/colors.css");
+ QFile colorsCss(colorsCssPath);
+
+ if (colorsCss.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
+ QTextStream colorsCssStream(&colorsCss);
+
+ for (auto it = colorsDefinitions.cbegin(); it !=
colorsDefinitions.cend(); it++) {
+ colorsCssStream << QStringLiteral("@define-color %1
%2;\n").arg(it.key(), it.value().name());
+ }
+ }
+}
+
QString ConfigEditor::readFileContents(QFile &file)
{
if (file.open(QIODevice::ReadWrite | QIODevice::Text)) {
@@ -161,55 +226,45 @@
}
}
-void ConfigEditor::replaceValueInGtkrcContents(QString >krcContents, const
QString ¶mName, const QString ¶mValue)
+void ConfigEditor::replaceValueInGtkrcContents(QString >krcContents, const
QString ¶mName, const QVariant ¶mValue)
{
const QRegularExpression regExp(paramName +
QStringLiteral("=[^\n]*($|\n)"));
- static const QStringList nonStringProperties{
- QStringLiteral("gtk-toolbar-style"),
- QStringLiteral("gtk-menu-images"),
- QStringLiteral("gtk-button-images"),
- QStringLiteral("gtk-primary-button-warps-slider"),
- QStringLiteral("gtk-enable-animations"),
- };
-
QString newConfigString;
- if (nonStringProperties.contains(paramName)) {
- newConfigString = paramName + QStringLiteral("=") + paramValue +
QStringLiteral("\n");
+ if (paramValue.type() == QVariant::Type::String) {
+ newConfigString = QStringLiteral("%1=\"%2\"\n").arg(paramName,
paramValue.toString());
+ } else if (paramValue.type() == QVariant::Type::Bool) {
+ // GTK2 does not support 'true' and 'false' as values
+ newConfigString = QStringLiteral("%1=%2\n").arg(paramName,
QString::number(paramValue.toInt()));
} else {
- newConfigString = paramName + QStringLiteral("=\"") + paramValue +
QStringLiteral("\"\n");
+ newConfigString = QStringLiteral("%1=%2\n").arg(paramName,
paramValue.toString());
}
if (gtkrcContents.contains(regExp)) {
gtkrcContents.replace(regExp, newConfigString);
} else {
- gtkrcContents = newConfigString + QStringLiteral("\n") + gtkrcContents;
+ gtkrcContents = newConfigString + gtkrcContents;
}
}
-void ConfigEditor::replaceValueInXSettingsdContents(QString
&xSettingsdContents, const QString ¶mName, const QString ¶mValue)
+void ConfigEditor::replaceValueInXSettingsdContents(QString
&xSettingsdContents, const QString ¶mName, const QVariant ¶mValue)
{
const QRegularExpression regExp(paramName + QStringLiteral("
[^\n]*($|\n)"));
- static const QStringList nonStringProperties{
- QStringLiteral("Gtk/ButtonImages"),
- QStringLiteral("Gtk/MenuImages"),
- QStringLiteral("Gtk/ToolbarStyle"),
- QStringLiteral("Gtk/PrimaryButtonWarpsSlider"),
- QStringLiteral("Gtk/EnableAnimations"),
- };
-
QString newConfigString;
- if (nonStringProperties.contains(paramName)) {
- newConfigString = paramName + QStringLiteral(" ") + paramValue +
QStringLiteral("\n");
+ if (paramValue.type() == QVariant::Type::String) {
+ newConfigString = QStringLiteral("%1 \"%2\"\n").arg(paramName,
paramValue.toString());
+ } else if (paramValue.type() == QVariant::Type::Bool) {
+ // XSettigsd does not support 'true' and 'false' as values
+ newConfigString = QStringLiteral("%1 %2\n").arg(paramName,
QString::number(paramValue.toInt()));
} else {
- newConfigString = paramName + QStringLiteral(" \"") + paramValue +
QStringLiteral("\"\n");
+ newConfigString = QStringLiteral("%1 %2\n").arg(paramName,
paramValue.toString());
}
if (xSettingsdContents.contains(regExp)) {
xSettingsdContents.replace(regExp, newConfigString);
} else {
- xSettingsdContents = newConfigString + QStringLiteral("\n") +
xSettingsdContents;
+ xSettingsdContents = newConfigString + xSettingsdContents;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kded/configeditor.h
new/kde-gtk-config-5.19.0/kded/configeditor.h
--- old/kde-gtk-config-5.18.5/kded/configeditor.h 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kded/configeditor.h 2020-06-04
13:08:39.000000000 +0200
@@ -22,25 +22,33 @@
#include <unistd.h>
#include <QString>
+class QColor;
class QFile;
-class QString;
+class QVariant;
namespace ConfigEditor
{
- void setGtk2ConfigValue(const QString ¶mName, const QString
¶mValue);
- void setGtk3ConfigValueDconf(const QString ¶mName, bool paramValue,
const QString &category = QStringLiteral("org.gnome.desktop.interface"));
- void setGtk3ConfigValueDconf(const QString ¶mName, const QString
¶mValue, const QString &category =
QStringLiteral("org.gnome.desktop.interface"));
- void setGtk3ConfigValueSettingsIni(const QString ¶mName, const QString
¶mValue);
- void setGtk3ConfigValueXSettingsd(const QString ¶mName, const QString
¶mValue);
+ void setGtk2ConfigValue(const QString ¶mName, const QVariant
¶mValue);
+
+ void setGtk3ConfigValueGSettings(const QString ¶mName, const QVariant
¶mValue, const QString &category =
QStringLiteral("org.gnome.desktop.interface"));
+ void setGtk3ConfigValueGSettingsAsEnum(const QString ¶mName, int
paramValue, const QString &category =
QStringLiteral("org.gnome.desktop.interface"));
+ void setGtk3ConfigValueSettingsIni(const QString ¶mName, const
QVariant ¶mValue);
+ void setGtk3ConfigValueXSettingsd(const QString ¶mName, const QVariant
¶mValue);
+
+ void setGtk3Colors(const QMap<QString, QColor> &colorsDefinitions);
QString gtk2ConfigValue(const QString& paramName);
QString gtk3ConfigValueSettingsIni(const QString& paramName);
void removeLegacyGtk2Strings();
+ void addGtkModule(const QString &moduleName);
+
+ void addImportStatementToGtkCssUserFile();
+ void modifyColorsCssFile(const QMap<QString, QColor> &colorsDefinitions);
- void replaceValueInGtkrcContents(QString >krcContents, const QString
¶mName, const QString ¶mValue);
- void replaceValueInXSettingsdContents(QString &xSettingsdContents, const
QString ¶mName, const QString ¶mValue);
+ void replaceValueInGtkrcContents(QString >krcContents, const QString
¶mName, const QVariant ¶mValue);
+ void replaceValueInXSettingsdContents(QString &xSettingsdContents, const
QString ¶mName, const QVariant ¶mValue);
QString readFileContents(QFile >krc);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kded/configvalueprovider.cpp
new/kde-gtk-config-5.19.0/kded/configvalueprovider.cpp
--- old/kde-gtk-config-5.18.5/kded/configvalueprovider.cpp 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kded/configvalueprovider.cpp 2020-06-04
13:08:39.000000000 +0200
@@ -21,11 +21,16 @@
#include <QFont>
#include <QString>
#include <QColor>
+#include <QMap>
+#include <QList>
#include <KConfig>
-#include <KIconTheme>
#include <KSharedConfig>
#include <KConfigGroup>
+#include <KColorScheme>
+#include <KColorUtils>
+
+#include <gtk/gtk.h>
#include "configvalueprovider.h"
@@ -41,7 +46,6 @@
{
static const QFont defaultFont(QStringLiteral("Noto Sans"), 10);
- kdeglobalsConfig->reparseConfiguration();
KConfigGroup configGroup =
kdeglobalsConfig->group(QStringLiteral("General"));
QString fontAsString = configGroup.readEntry(QStringLiteral("font"),
defaultFont.toString());
static QFont font;
@@ -114,85 +118,63 @@
QString ConfigValueProvider::iconThemeName() const
{
- KIconTheme *newIconTheme = KIconLoader::global()->theme();
- if (newIconTheme) {
- return newIconTheme->internalName();
- } else {
- return QStringLiteral("breeze");
- }
+ KConfigGroup configGroup =
kdeglobalsConfig->group(QStringLiteral("Icons"));
+ return configGroup.readEntry(QStringLiteral("Theme"),
QStringLiteral("breeze"));
}
QString ConfigValueProvider::cursorThemeName() const
{
- inputConfig->reparseConfiguration();
KConfigGroup configGroup = inputConfig->group(QStringLiteral("Mouse"));
return configGroup.readEntry(QStringLiteral("cursorTheme"),
QStringLiteral("breeze_cursors"));
}
-QString ConfigValueProvider::iconsOnButtons() const
+bool ConfigValueProvider::iconsOnButtons() const
{
- kdeglobalsConfig->reparseConfiguration();
KConfigGroup configGroup = kdeglobalsConfig->group(QStringLiteral("KDE"));
- bool kdeConfigValue =
configGroup.readEntry(QStringLiteral("ShowIconsOnPushButtons"), true);
-
- if (kdeConfigValue) {
- return QStringLiteral("1");
- } else {
- return QStringLiteral("0");
- }
+ return configGroup.readEntry(QStringLiteral("ShowIconsOnPushButtons"),
true);
}
-QString ConfigValueProvider::iconsInMenus() const
+bool ConfigValueProvider::iconsInMenus() const
{
- kdeglobalsConfig->reparseConfiguration();
KConfigGroup configGroup = kdeglobalsConfig->group(QStringLiteral("KDE"));
- bool kdeConfigValue =
configGroup.readEntry(QStringLiteral("ShowIconsInMenuItems"), true);
-
- if (kdeConfigValue) {
- return QStringLiteral("1");
- } else {
- return QStringLiteral("0");
- }
+ return configGroup.readEntry(QStringLiteral("ShowIconsInMenuItems"), true);
}
-QString
ConfigValueProvider::toolbarStyle(ConfigValueProvider::ToolbarStyleNotation
notation) const
+int ConfigValueProvider::toolbarStyle() const
{
- kdeglobalsConfig->reparseConfiguration();
KConfigGroup configGroup = kdeglobalsConfig->group(QStringLiteral("Toolbar
style"));
QString kdeConfigValue =
configGroup.readEntry(QStringLiteral("ToolButtonStyle"), "TextBesideIcon");
- return toolbarStyleInDesiredNotation(kdeConfigValue, notation);
+
+ if (kdeConfigValue == QStringLiteral("NoText")) {
+ return GtkToolbarStyle::GTK_TOOLBAR_ICONS;
+ } else if (kdeConfigValue == QStringLiteral("TextOnly")) {
+ return GtkToolbarStyle::GTK_TOOLBAR_TEXT;
+ } else if (kdeConfigValue == QStringLiteral("TextBesideIcon")) {
+ return GtkToolbarStyle::GTK_TOOLBAR_BOTH_HORIZ;
+ } else {
+ return GtkToolbarStyle::GTK_TOOLBAR_BOTH;
+ }
}
-QString ConfigValueProvider::scrollbarBehavior() const
+bool ConfigValueProvider::scrollbarBehavior() const
{
- kdeglobalsConfig->reparseConfiguration();
KConfigGroup configGroup = kdeglobalsConfig->group(QStringLiteral("KDE"));
bool kdeConfigValue =
configGroup.readEntry(QStringLiteral("ScrollbarLeftClickNavigatesByPage"),
true);
- if (kdeConfigValue) { // GTK setting is inverted
- return QStringLiteral("0");
- } else {
- return QStringLiteral("1");
- }
+ return !kdeConfigValue; // GTK setting is inverted
}
-QString ConfigValueProvider::preferDarkTheme() const
+bool ConfigValueProvider::preferDarkTheme() const
{
- kdeglobalsConfig->reparseConfiguration();
KConfigGroup colorsConfigGroup =
kdeglobalsConfig->group(QStringLiteral("Colors:Window"));
QColor windowBackgroundColor =
colorsConfigGroup.readEntry(QStringLiteral("BackgroundNormal"), QColor(239,
240, 241));
const int windowBackgroundGray = qGray(windowBackgroundColor.rgb());
// We use heuristic to determine if current color scheme is dark or not
- if (windowBackgroundGray >= 192) {
- return QStringLiteral("0");
- } else {
- return QStringLiteral("1");
- }
+ return windowBackgroundGray < 192;
}
QString ConfigValueProvider::windowDecorationsButtonsOrder() const
{
- kwinConfig->reparseConfiguration();
KConfigGroup configGroup =
kwinConfig->group(QStringLiteral("org.kde.kdecoration2"));
QString buttonsOnLeftKdeConfigValue =
configGroup.readEntry(QStringLiteral("ButtonsOnLeft"), "MS");
QString buttonsOnRightKdeConfigValue =
configGroup.readEntry(QStringLiteral("ButtonsOnRight"), "HIAX");
@@ -203,55 +185,207 @@
return buttonsOnLeftInGtkNotation + QStringLiteral(":") +
buttonsOnRightInGtkNotation;
}
-QString ConfigValueProvider::enableAnimations() const
+bool ConfigValueProvider::enableAnimations() const
{
KConfigGroup generalCfg = kdeglobalsConfig->group(QStringLiteral("KDE"));
const qreal animationSpeedModifier = qMax(0.0,
generalCfg.readEntry("AnimationDurationFactor", 1.0));
- const bool enableAnimations = !qFuzzyIsNull(animationSpeedModifier);
-
- if (enableAnimations) {
- return QStringLiteral("1");
- } else {
- return QStringLiteral("0");
- }
+ return !qFuzzyIsNull(animationSpeedModifier);
}
-QString ConfigValueProvider::toolbarStyleInDesiredNotation(const QString
&kdeConfigValue, ConfigValueProvider::ToolbarStyleNotation notation) const
+QMap<QString, QColor> ConfigValueProvider::colors() const
{
- QStringList toolbarStyles {};
- if (notation == ToolbarStyleNotation::SettingsIni) {
- toolbarStyles.append({
- QStringLiteral("GTK_TOOLBAR_ICONS"),
- QStringLiteral("GTK_TOOLBAR_TEXT"),
- QStringLiteral("GTK_TOOLBAR_BOTH_HORIZ"),
- QStringLiteral("GTK_TOOLBAR_BOTH")
- });
- } else if (notation == ToolbarStyleNotation::Xsettingsd) {
- toolbarStyles.append({
- QStringLiteral("0"),
- QStringLiteral("1"),
- QStringLiteral("3"),
- QStringLiteral("2")
- });
- } else {
- toolbarStyles.append({
- QStringLiteral("icons"),
- QStringLiteral("text"),
- QStringLiteral("both-horiz"),
- QStringLiteral("both")
- });
- }
+ using KCS = KColorScheme;
- if (kdeConfigValue == QStringLiteral("NoText")) {
- return toolbarStyles[0];
- } else if (kdeConfigValue == QStringLiteral("TextOnly")) {
- return toolbarStyles[1];
- } else if (kdeConfigValue == QStringLiteral("TextBesideIcon")) {
- return toolbarStyles[2];
- } else {
- return toolbarStyles[3];
- }
+ // Color Schemes Collection
+ QHash<QString, QHash<QString, KCS>> csc {
+ {QStringLiteral("active"), {
+ {QStringLiteral("view"), KCS(QPalette::Active, KCS::View)},
+ {QStringLiteral("window"), KCS(QPalette::Active, KCS::Window)},
+ {QStringLiteral("button"), KCS(QPalette::Active, KCS::Button)},
+ {QStringLiteral("selection"), KCS(QPalette::Active,
KCS::Selection)},
+ {QStringLiteral("tooltip"), KCS(QPalette::Active, KCS::Tooltip)},
+ {QStringLiteral("complementary"), KCS(QPalette::Active,
KCS::Complementary)},
+ }},
+ {QStringLiteral("inactive"), {
+ {QStringLiteral("view"), KCS(QPalette::Inactive, KCS::View)},
+ {QStringLiteral("window"), KCS(QPalette::Inactive, KCS::Window)},
+ {QStringLiteral("button"), KCS(QPalette::Inactive, KCS::Button)},
+ {QStringLiteral("selection"), KCS(QPalette::Inactive,
KCS::Selection)},
+ {QStringLiteral("tooltip"), KCS(QPalette::Inactive, KCS::Tooltip)},
+ {QStringLiteral("complementary"), KCS(QPalette::Inactive,
KCS::Complementary)},
+ }},
+ {QStringLiteral("inactive"), {
+ {QStringLiteral("view"), KCS(QPalette::Disabled, KCS::View)},
+ {QStringLiteral("window"), KCS(QPalette::Disabled, KCS::Window)},
+ {QStringLiteral("button"), KCS(QPalette::Disabled, KCS::Button)},
+ {QStringLiteral("selection"), KCS(QPalette::Disabled,
KCS::Selection)},
+ {QStringLiteral("tooltip"), KCS(QPalette::Disabled, KCS::Tooltip)},
+ {QStringLiteral("complementary"), KCS(QPalette::Disabled,
KCS::Complementary)},
+ }},
+ };
+
+ // Color mixing
+ QColor windowForegroundColor =
csc["active"]["window"].foreground(KCS::NormalText).color();
+ QColor windowBackgroundColor =
csc["active"]["window"].background(KCS::NormalBackground).color();
+ QColor bordersColor = KColorUtils::mix(windowBackgroundColor,
windowForegroundColor, 0.25);
+
+ QColor inactiveWindowForegroundColor =
csc["inactive"]["window"].foreground(KCS::NormalText).color();
+ QColor inactiveWindowBackgroundColor =
csc["inactive"]["window"].background(KCS::NormalBackground).color();
+ QColor inactiveBordersColor =
KColorUtils::mix(inactiveWindowBackgroundColor, inactiveWindowForegroundColor,
0.25);
+
+ QColor disabledWindowForegroundColor =
csc["disabled"]["window"].foreground(KCS::NormalText).color();
+ QColor disabledWindowBackgroundColor =
csc["disabled"]["window"].background(KCS::NormalBackground).color();
+ QColor disabledBordersColor =
KColorUtils::mix(disabledWindowBackgroundColor, disabledWindowForegroundColor,
0.25);
+
+ QColor unfocusedDisabledWindowForegroundColor =
csc["disabled"]["window"].foreground(KCS::NormalText).color();
+ QColor unfocusedDisabledWindowBackgroundColor =
csc["disabled"]["window"].background(KCS::NormalBackground).color();
+ QColor unfocusedDisabledBordersColor =
KColorUtils::mix(unfocusedDisabledWindowBackgroundColor,
unfocusedDisabledWindowForegroundColor, 0.25);
+
+ QColor tooltipForegroundColor =
csc["active"]["tooltip"].foreground(KCS::NormalText).color();
+ QColor tooltipBackgroundColor =
csc["active"]["tooltip"].background(KCS::NormalBackground).color();
+ QColor tooltipBorderColor = KColorUtils::mix(tooltipBackgroundColor,
tooltipForegroundColor, 0.25);
+
+ KConfigGroup windowManagerConfig =
kdeglobalsConfig->group(QStringLiteral("WM"));
+
+ return {
+ /*
+ * Normal (Non Backdrop, Non Insensitive)
+ */
+
+ // General Colors
+ { "theme_fg_color_breeze",
csc["active"]["window"].foreground(KCS::NormalText).color()},
+ { "theme_bg_color_breeze",
csc["active"]["window"].background(KCS::NormalBackground).color()},
+ { "theme_text_color_breeze",
csc["active"]["view"].foreground(KCS::NormalText).color()},
+ { "theme_base_color_breeze",
csc["active"]["view"].background(KCS::NormalBackground).color()},
+ { "theme_view_hover_decoration_color_breeze",
csc["active"]["view"].decoration(KCS::HoverColor).color()},
+ { "theme_hovering_selected_bg_color_breeze",
csc["active"]["selection"].decoration(KCS::HoverColor).color()},
+ { "theme_selected_bg_color_breeze",
csc["active"]["selection"].background(KCS::NormalBackground).color()},
+ { "theme_selected_fg_color_breeze",
csc["active"]["selection"].foreground(KCS::NormalText).color()},
+ { "theme_view_active_decoration_color_breeze",
csc["active"]["view"].decoration(KCS::HoverColor).color()},
+
+ // Button Colors
+ { "theme_button_background_normal_breeze",
csc["active"]["button"].background(KCS::NormalBackground).color()},
+ { "theme_button_decoration_hover_breeze",
csc["active"]["button"].decoration(KCS::HoverColor).color()},
+ { "theme_button_decoration_focus_breeze",
csc["active"]["button"].decoration(KCS::FocusColor).color()},
+ { "theme_button_foreground_normal_breeze",
csc["active"]["button"].foreground(KCS::NormalText).color()},
+ { "theme_button_foreground_active_breeze",
csc["active"]["selection"].foreground(KCS::NormalText).color()},
+
+
+ // Misc Colors
+ { "borders_breeze", bordersColor},
+ { "warning_color_breeze",
csc["active"]["view"].foreground(KCS::NeutralText).color()},
+ { "success_color_breeze",
csc["active"]["view"].foreground(KCS::PositiveText).color()},
+ { "error_color_breeze",
csc["active"]["view"].foreground(KCS::NegativeText).color()},
+
+ /*
+ * Backdrop (Inactive)
+ */
+
+ // General
+ { "theme_unfocused_fg_color_breeze",
csc["inactive"]["window"].foreground(KCS::NormalText).color()},
+ { "theme_unfocused_text_color_breeze",
csc["inactive"]["view"].foreground(KCS::NormalText).color()},
+ { "theme_unfocused_bg_color_breeze",
csc["inactive"]["window"].background(KCS::NormalBackground).color()},
+ { "theme_unfocused_base_color_breeze",
csc["inactive"]["view"].background(KCS::NormalBackground).color()},
+ { "theme_unfocused_selected_bg_color_alt_breeze",
csc["inactive"]["selection"].background(KCS::NormalBackground).color()},
+ { "theme_unfocused_selected_bg_color_breeze",
csc["inactive"]["selection"].background(KCS::NormalBackground).color()},
+ { "theme_unfocused_selected_fg_color_breeze",
csc["inactive"]["selection"].foreground(KCS::NormalText).color()},
+
+ // Button
+ { "theme_button_background_backdrop_breeze",
csc["inactive"]["button"].background(KCS::NormalBackground).color()},
+ { "theme_button_decoration_hover_backdrop_breeze",
csc["inactive"]["button"].decoration(KCS::HoverColor).color()},
+ { "theme_button_decoration_focus_backdrop_breeze",
csc["inactive"]["button"].decoration(KCS::FocusColor).color()},
+ { "theme_button_foreground_backdrop_breeze",
csc["inactive"]["button"].foreground(KCS::NormalText).color()},
+ { "theme_button_foreground_active_backdrop_breeze",
csc["inactive"]["selection"].foreground(KCS::NormalText).color()},
+
+ // Misc Colors
+ { "unfocused_borders_breeze", inactiveBordersColor},
+ { "warning_color_backdrop_breeze",
csc["inactive"]["view"].foreground(KCS::NeutralText).color()},
+ { "success_color_backdrop_breeze",
csc["inactive"]["view"].foreground(KCS::PositiveText).color()},
+ { "error_color_backdrop_breeze",
csc["inactive"]["view"].foreground(KCS::NegativeText).color()},
+
+ /*
+ * Insensitive (Disabled)
+ */
+
+ // General
+ {
"insensitive_fg_color_breeze",csc["disabled"]["window"].foreground(KCS::NormalText).color()},
+ { "insensitive_base_fg_color_breeze",
csc["disabled"]["view"].foreground(KCS::NormalText).color()},
+ { "insensitive_bg_color_breeze",
csc["disabled"]["window"].background(KCS::NormalBackground).color()},
+ { "insensitive_base_color_breeze",
csc["disabled"]["view"].background(KCS::NormalBackground).color()},
+ { "insensitive_selected_bg_color_breeze",
csc["disabled"]["selection"].background(KCS::NormalBackground).color()},
+ { "insensitive_selected_fg_color_breeze",
csc["disabled"]["selection"].foreground(KCS::NormalText).color()},
+
+ // Button
+ { "theme_button_background_insensitive_breeze",
csc["disabled"]["button"].background(KCS::NormalBackground).color()},
+ { "theme_button_decoration_hover_insensitive_breeze",
csc["disabled"]["button"].decoration(KCS::HoverColor).color()},
+ { "theme_button_decoration_focus_insensitive_breeze",
csc["disabled"]["button"].decoration(KCS::FocusColor).color()},
+ { "theme_button_foreground_insensitive_breeze",
csc["disabled"]["button"].foreground(KCS::NormalText).color()},
+ { "theme_button_foreground_active_insensitive_breeze",
csc["disabled"]["selection"].foreground(KCS::NormalText).color()},
+
+ // Misc Colors
+ { "insensitive_borders_breeze", disabledBordersColor},
+ { "warning_color_insensitive_breeze",
csc["disabled"]["view"].foreground(KCS::NeutralText).color()},
+ { "success_color_insensitive_breeze",
csc["disabled"]["view"].foreground(KCS::PositiveText).color()},
+ { "error_color_insensitive_breeze",
csc["disabled"]["view"].foreground(KCS::NegativeText).color()},
+
+ /*
+ * Insensitive Backdrop (Inactive Disabled)
+ * These pretty much have the same appearance as regular inactive
colors,
+ * but they're separate in case we decide to make them different in
the future.
+ */
+
+ // General
+ {
"insensitive_unfocused_fg_color_breeze",csc["disabled"]["window"].foreground(KCS::NormalText).color()},
+ { "theme_unfocused_view_text_color_breeze",
csc["disabled"]["view"].foreground(KCS::NormalText).color()},
+ { "insensitive_unfocused_bg_color_breeze",
csc["disabled"]["window"].background(KCS::NormalBackground).color()},
+ { "theme_unfocused_view_bg_color_breeze",
csc["disabled"]["view"].background(KCS::NormalBackground).color()},
+ { "insensitive_unfocused_selected_bg_color_breeze",
csc["disabled"]["selection"].background(KCS::NormalBackground).color()},
+ { "insensitive_unfocused_selected_fg_color_breeze",
csc["disabled"]["selection"].foreground(KCS::NormalText).color()},
+
+ // Button
+ { "theme_button_background_backdrop_insensitive_breeze",
csc["disabled"]["button"].background(KCS::NormalBackground).color()},
+ { "theme_button_decoration_hover_backdrop_insensitive_breeze",
csc["disabled"]["button"].decoration(KCS::HoverColor).color()},
+ { "theme_button_decoration_focus_backdrop_insensitive_breeze",
csc["disabled"]["button"].decoration(KCS::FocusColor).color()},
+ { "theme_button_foreground_backdrop_insensitive_breeze",
csc["disabled"]["button"].foreground(KCS::NormalText).color()},
+ { "theme_button_foreground_active_backdrop_insensitive_breeze",
csc["disabled"]["selection"].foreground(KCS::NormalText).color()},
+
+ // Misc Colors
+ { "unfocused_insensitive_borders_breeze",
unfocusedDisabledBordersColor},
+ { "warning_color_insensitive_backdrop_breeze",
csc["disabled"]["view"].foreground(KCS::NeutralText).color()},
+ { "success_color_insensitive_backdrop_breeze",
csc["disabled"]["view"].foreground(KCS::PositiveText).color()},
+ { "error_color_insensitive_backdrop_breeze",
csc["disabled"]["view"].foreground(KCS::NegativeText).color()},
+
+ /*
+ * Ignorant Colors (These colors do not care about backdrop or
insensitive states)
+ */
+
+ { "link_color_breeze",
csc["active"]["view"].foreground(KCS::LinkText).color()},
+ { "link_visited_color_breeze",
csc["active"]["view"].foreground(KCS::VisitedText).color()},
+
+ { "tooltip_text_breeze", tooltipForegroundColor},
+ { "tooltip_background_breeze", tooltipBackgroundColor},
+ { "tooltip_border_breeze", tooltipBorderColor},
+
+ { "content_view_bg_breeze",
csc["active"]["view"].background(KCS::NormalBackground).color()},
+
+ { "theme_titlebar_background_breeze",
windowManagerConfig.readEntry("activeBackground", QColor())},
+ { "theme_titlebar_foreground_breeze",
windowManagerConfig.readEntry("activeForeground", QColor())},
+ { "theme_titlebar_background_light_breeze",
csc["active"]["window"].background(KCS::NormalBackground).color()},
+ { "theme_titlebar_foreground_backdrop_breeze",
windowManagerConfig.readEntry("inactiveForeground", QColor())},
+ { "theme_titlebar_background_backdrop_breeze",
windowManagerConfig.readEntry("inactiveBackground", QColor())},
+ { "theme_titlebar_foreground_insensitive_breeze",
windowManagerConfig.readEntry("inactiveForeground", QColor())},
+ { "theme_titlebar_foreground_insensitive_backdrop_breeze",
windowManagerConfig.readEntry("inactiveForeground", QColor())},
+
+ // Titlebar colors
+ { "theme_titlebar_background_breeze",
windowManagerConfig.readEntry("activeBackground", QColor())},
+ { "theme_titlebar_foreground_breeze",
windowManagerConfig.readEntry("activeForeground", QColor())},
+ { "theme_titlebar_background_light_breeze",
csc["active"]["window"].background(KCS::NormalBackground).color()},
+ { "theme_titlebar_foreground_backdrop_breeze",
windowManagerConfig.readEntry("inactiveForeground", QColor())},
+ { "theme_titlebar_background_backdrop_breeze",
windowManagerConfig.readEntry("inactiveBackground", QColor())},
+ { "theme_titlebar_foreground_insensitive_breeze",
windowManagerConfig.readEntry("inactiveForeground", QColor())},
+ { "theme_titlebar_foreground_insensitive_backdrop_breeze",
windowManagerConfig.readEntry("inactiveForeground", QColor())},
+ };
}
QString ConfigValueProvider::windowDecorationButtonsOrderInGtkNotation(const
QString &kdeConfigValue) const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kded/configvalueprovider.h
new/kde-gtk-config-5.19.0/kded/configvalueprovider.h
--- old/kde-gtk-config-5.18.5/kded/configvalueprovider.h 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kded/configvalueprovider.h 2020-06-04
13:08:39.000000000 +0200
@@ -28,28 +28,22 @@
class ConfigValueProvider
{
public:
- enum class ToolbarStyleNotation {
- Xsettingsd = 0,
- SettingsIni,
- Dconf
- };
-
ConfigValueProvider();
QString fontName() const;
QString iconThemeName() const;
QString cursorThemeName() const;
- QString iconsOnButtons() const;
- QString iconsInMenus() const;
- QString toolbarStyle(ToolbarStyleNotation notation) const;
- QString scrollbarBehavior() const;
- QString preferDarkTheme() const;
+ bool iconsOnButtons() const;
+ bool iconsInMenus() const;
+ int toolbarStyle() const;
+ bool scrollbarBehavior() const;
+ bool preferDarkTheme() const;
QString windowDecorationsButtonsOrder() const;
- QString enableAnimations() const;
+ bool enableAnimations() const;
+ QMap<QString, QColor> colors() const;
private:
QString fontStyleHelper(const QFont &font) const;
- QString toolbarStyleInDesiredNotation(const QString &kdeConfigValue,
ToolbarStyleNotation notation) const;
QString windowDecorationButtonsOrderInGtkNotation(const QString
&kdeConfigValue) const;
KSharedConfigPtr kdeglobalsConfig;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kded/gtkconfig.cpp
new/kde-gtk-config-5.19.0/kded/gtkconfig.cpp
--- old/kde-gtk-config-5.18.5/kded/gtkconfig.cpp 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kded/gtkconfig.cpp 2020-06-04
13:08:39.000000000 +0200
@@ -24,9 +24,9 @@
#include <QDBusMessage>
#include <QGuiApplication>
-#include <KIconLoader>
#include <KPluginFactory>
#include <KConfigWatcher>
+#include <KColorScheme>
#include "gtkconfig.h"
#include "configvalueprovider.h"
@@ -39,24 +39,16 @@
configValueProvider(new ConfigValueProvider()),
themePreviewer(new ThemePreviewer(this)),
kdeglobalsConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kdeglobals")))),
-
kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc"))))
+
kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc")))),
+
kcminputConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kcminputrc"))))
{
QDBusConnection dbus = QDBusConnection::sessionBus();
dbus.registerService(QStringLiteral("org.kde.GtkConfig"));
dbus.registerObject(QStringLiteral("/GtkConfig"), this,
QDBusConnection::ExportScriptableSlots);
- connect(qGuiApp, &QGuiApplication::fontChanged, this, &GtkConfig::setFont);
- connect(KIconLoader::global(), &KIconLoader::iconChanged, this,
&GtkConfig::setIconTheme);
connect(kdeglobalsConfigWatcher.data(), &KConfigWatcher::configChanged,
this, &GtkConfig::onKdeglobalsSettingsChange);
connect(kwinConfigWatcher.data(), &KConfigWatcher::configChanged, this,
&GtkConfig::onKWinSettingsChange);
- dbus.connect(
- QString(),
- QStringLiteral("/KGlobalSettings"),
- QStringLiteral("org.kde.KGlobalSettings"),
- QStringLiteral("notifyChange"),
- this,
- SLOT(onGlobalSettingsChange(int,int))
- );
+ connect(kcminputConfigWatcher.data(), &KConfigWatcher::configChanged,
this, &GtkConfig::onKCMInputSettingsChange);
ConfigEditor::removeLegacyGtk2Strings();
applyAllSettings();
@@ -76,7 +68,7 @@
void GtkConfig::setGtk3Theme(const QString &themeName) const
{
- ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("gtk-theme"),
themeName);
+ ConfigEditor::setGtk3ConfigValueGSettings(QStringLiteral("gtk-theme"),
themeName);
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-theme-name"),
themeName);
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Net/ThemeName"),
themeName);
}
@@ -105,34 +97,32 @@
{
const QString configFontName = configValueProvider->fontName();
ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-font-name"),
configFontName);
- ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("font-name"),
configFontName);
+ ConfigEditor::setGtk3ConfigValueGSettings(QStringLiteral("font-name"),
configFontName);
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-font-name"),
configFontName);
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/FontName"),
configFontName);
}
-void GtkConfig::setIconTheme(int iconGroup) const
+void GtkConfig::setIconTheme() const
{
- if (iconGroup == KIconLoader::Group::Desktop) { // This is needed to
update icons only once
- const QString iconThemeName = configValueProvider->iconThemeName();
-
ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-icon-theme-name"),
iconThemeName);
- ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("icon-theme"),
iconThemeName);
-
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-icon-theme-name"),
iconThemeName);
-
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Net/IconThemeName"),
iconThemeName);
- }
+ const QString iconThemeName = configValueProvider->iconThemeName();
+ ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-icon-theme-name"),
iconThemeName);
+ ConfigEditor::setGtk3ConfigValueGSettings(QStringLiteral("icon-theme"),
iconThemeName);
+
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-icon-theme-name"),
iconThemeName);
+
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Net/IconThemeName"),
iconThemeName);
}
void GtkConfig::setCursorTheme() const
{
const QString cursorThemeName = configValueProvider->cursorThemeName();
ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-cursor-theme-name"),
cursorThemeName);
- ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("cursor-theme"),
cursorThemeName);
+ ConfigEditor::setGtk3ConfigValueGSettings(QStringLiteral("cursor-theme"),
cursorThemeName);
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-cursor-theme-name"),
cursorThemeName);
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/CursorThemeName"),
cursorThemeName);
}
void GtkConfig::setIconsOnButtons() const
{
- const QString iconsOnButtonsConfigValue =
configValueProvider->iconsOnButtons();
+ const bool iconsOnButtonsConfigValue =
configValueProvider->iconsOnButtons();
ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-button-images"),
iconsOnButtonsConfigValue);
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-button-images"),
iconsOnButtonsConfigValue);
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/ButtonImages"),
iconsOnButtonsConfigValue);
@@ -140,7 +130,7 @@
void GtkConfig::setIconsInMenus() const
{
- const QString iconsInMenusConfigValue =
configValueProvider->iconsInMenus();
+ const bool iconsInMenusConfigValue = configValueProvider->iconsInMenus();
ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-menu-images"),
iconsInMenusConfigValue);
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-menu-images"),
iconsInMenusConfigValue);
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/MenuImages"),
iconsInMenusConfigValue);
@@ -148,21 +138,16 @@
void GtkConfig::setToolbarStyle() const
{
- using ToolbarStyleNotation = ConfigValueProvider::ToolbarStyleNotation;
-
- QString toolbarStyleSettingsIni =
configValueProvider->toolbarStyle(ToolbarStyleNotation::SettingsIni);
- QString toolbarStyleDConf =
configValueProvider->toolbarStyle(ToolbarStyleNotation::Dconf);
- QString toolbarStyleXSettingsd =
configValueProvider->toolbarStyle(ToolbarStyleNotation::Xsettingsd);
-
- ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-toolbar-style"),
toolbarStyleSettingsIni);
- ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("toolbar-style"),
toolbarStyleDConf);
-
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-toolbar-style"),
toolbarStyleSettingsIni);
-
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/ToolbarStyle"),
toolbarStyleXSettingsd);
+ const int toolbarStyle = configValueProvider->toolbarStyle();
+ ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-toolbar-style"),
toolbarStyle);
+
ConfigEditor::setGtk3ConfigValueGSettingsAsEnum(QStringLiteral("toolbar-style"),
toolbarStyle);
+
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-toolbar-style"),
toolbarStyle);
+
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/ToolbarStyle"),
toolbarStyle);
}
void GtkConfig::setScrollbarBehavior() const
{
- const QString scrollbarBehavior = configValueProvider->scrollbarBehavior();
+ const bool scrollbarBehavior = configValueProvider->scrollbarBehavior();
ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-primary-button-warps-slider"),
scrollbarBehavior);
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-primary-button-warps-slider"),
scrollbarBehavior);
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/PrimaryButtonWarpsSlider"),
scrollbarBehavior);
@@ -170,32 +155,37 @@
void GtkConfig::setDarkThemePreference() const
{
- const QString preferDarkTheme = configValueProvider->preferDarkTheme();
+ const bool preferDarkTheme = configValueProvider->preferDarkTheme();
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-application-prefer-dark-theme"),
preferDarkTheme);
}
void GtkConfig::setWindowDecorationsButtonsOrder() const
{
const QString windowDecorationsButtonOrder =
configValueProvider->windowDecorationsButtonsOrder();
- ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("button-layout"),
windowDecorationsButtonOrder,
QStringLiteral("org.gnome.desktop.wm.preferences"));
+ ConfigEditor::setGtk3ConfigValueGSettings(QStringLiteral("button-layout"),
windowDecorationsButtonOrder,
QStringLiteral("org.gnome.desktop.wm.preferences"));
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-decoration-layout"),
windowDecorationsButtonOrder);
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/DecorationLayout"),
windowDecorationsButtonOrder);
}
void GtkConfig::setEnableAnimations() const
{
- const QString enableAnimations = configValueProvider->enableAnimations();
+ const bool enableAnimations = configValueProvider->enableAnimations();
ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-enable-animations"),
enableAnimations);
- // FIXME work with booleans in configValueProvider...
- ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("enable-animations"),
enableAnimations == QLatin1String("1"));
+
ConfigEditor::setGtk3ConfigValueGSettings(QStringLiteral("enable-animations"),
enableAnimations);
ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-enable-animations"),
enableAnimations);
ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Gtk/EnableAnimations"),
enableAnimations);
}
+void GtkConfig::setColors() const
+{
+ const QMap<QString, QColor> colors = configValueProvider->colors();
+ ConfigEditor::setGtk3Colors(colors);
+}
+
void GtkConfig::applyAllSettings() const
{
setFont();
- setIconTheme(KIconLoader::Group::Desktop);
+ setIconTheme();
setCursorTheme();
setIconsOnButtons();
setIconsInMenus();
@@ -204,31 +194,40 @@
setDarkThemePreference();
setWindowDecorationsButtonsOrder();
setEnableAnimations();
-}
-
-void GtkConfig::onGlobalSettingsChange(int settingsChangeType, int arg) const
-{
- SettingsChangeType changeType =
static_cast<SettingsChangeType>(settingsChangeType);
- SettingsCategory settingsCategory = static_cast<SettingsCategory>(arg);
-
- if (changeType == SettingsChangeType::Cursor) {
- setCursorTheme();
- } else if (changeType == SettingsChangeType::Settings && settingsCategory
== SettingsCategory::Style) {
- setIconsOnButtons();
- setIconsInMenus();
- setToolbarStyle();
- } else if (changeType == SettingsChangeType::Settings && settingsCategory
== SettingsCategory::Mouse) {
- setScrollbarBehavior();
- } else if (changeType == SettingsChangeType::Palette) {
- setDarkThemePreference();
- }
+ setColors();
}
void GtkConfig::onKdeglobalsSettingsChange(const KConfigGroup &group, const
QByteArrayList &names) const
{
- if (group.name() == QLatin1String("KDE")
- && names.contains(QByteArrayLiteral("AnimationDurationFactor"))) {
- setEnableAnimations();
+ if (group.name() == QStringLiteral("KDE")) {
+ if (names.contains(QByteArrayLiteral("AnimationDurationFactor"))) {
+ setEnableAnimations();
+ }
+ if (names.contains(QByteArrayLiteral("ShowIconsInMenuItems"))) {
+ setIconsInMenus();
+ }
+ if (names.contains(QByteArrayLiteral("ShowIconsOnPushButtons"))) {
+ setIconsOnButtons();
+ }
+ if
(names.contains(QByteArrayLiteral("ScrollbarLeftClickNavigatesByPage"))) {
+ setScrollbarBehavior();
+ }
+ } else if (group.name() == QStringLiteral("Icons")) {
+ if (names.contains(QByteArrayLiteral("Theme"))) {
+ setIconTheme();
+ }
+ } else if (group.name() == QStringLiteral("General")) {
+ if (names.contains(QByteArrayLiteral("font"))) {
+ setFont();
+ }
+ if (names.contains(QByteArrayLiteral("ColorScheme"))) {
+ setColors();
+ setDarkThemePreference();
+ }
+ } else if (group.name() == QStringLiteral("Toolbar style")) {
+ if (names.contains(QByteArrayLiteral("ToolButtonStyle"))) {
+ setToolbarStyle();
+ }
}
}
@@ -240,4 +239,13 @@
}
}
+void GtkConfig::onKCMInputSettingsChange(const KConfigGroup& group, const
QByteArrayList& names) const
+{
+ if (group.name() == QStringLiteral("Mouse")
+ && names.contains("cursorTheme")) {
+ setCursorTheme();
+ }
+}
+
+
#include "gtkconfig.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kded/gtkconfig.h
new/kde-gtk-config-5.19.0/kded/gtkconfig.h
--- old/kde-gtk-config-5.18.5/kded/gtkconfig.h 2020-05-05 16:36:35.000000000
+0200
+++ new/kde-gtk-config-5.19.0/kded/gtkconfig.h 2020-06-04 13:08:39.000000000
+0200
@@ -33,35 +33,12 @@
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.kde.GtkConfig")
- enum class SettingsChangeType {
- Palette = 0,
- Font,
- Style,
- Settings,
- Icon,
- Cursor,
- ToolbarStyle,
- BlockShortcuts,
- NaturalSorting
- };
-
- enum class SettingsCategory {
- Mouse,
- Completion,
- Paths,
- Popupmenu,
- Qt,
- Shortcuts,
- Locale,
- Style
- };
-
public:
GtkConfig(QObject *parent, const QVariantList& args);
~GtkConfig();
void setFont() const;
- void setIconTheme(int iconGroup) const;
+ void setIconTheme() const;
void setCursorTheme() const;
void setIconsOnButtons() const;
void setIconsInMenus() const;
@@ -70,6 +47,7 @@
void setDarkThemePreference() const;
void setWindowDecorationsButtonsOrder() const;
void setEnableAnimations() const;
+ void setColors() const;
void applyAllSettings() const;
@@ -83,13 +61,14 @@
Q_SCRIPTABLE void showGtk2ThemePreview(const QString &themeName) const;
Q_SCRIPTABLE void showGtk3ThemePreview(const QString &themeName) const;
- void onGlobalSettingsChange(int settingsChangeType, int arg) const;
void onKdeglobalsSettingsChange(const KConfigGroup &group, const
QByteArrayList &names) const;
void onKWinSettingsChange(const KConfigGroup &group, const QByteArrayList
&names) const;
+ void onKCMInputSettingsChange(const KConfigGroup &group, const
QByteArrayList &names) const;
private:
QScopedPointer<ConfigValueProvider> configValueProvider;
QScopedPointer<ThemePreviewer> themePreviewer;
KConfigWatcher::Ptr kdeglobalsConfigWatcher;
KConfigWatcher::Ptr kwinConfigWatcher;
+ KConfigWatcher::Ptr kcminputConfigWatcher;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kde-gtk-config-5.18.5/kded/gtkconfig.json
new/kde-gtk-config-5.19.0/kded/gtkconfig.json
--- old/kde-gtk-config-5.18.5/kded/gtkconfig.json 2020-05-05
16:36:35.000000000 +0200
+++ new/kde-gtk-config-5.19.0/kded/gtkconfig.json 2020-06-04
13:08:39.000000000 +0200
@@ -1,62 +1,56 @@
{
"KPlugin": {
- "Description": "GTK config management",
- "Description[ca@valencia]": "Gestió de la configuració del GTK",
- "Description[ca]": "Gestió de la configuració del GTK",
- "Description[cs]": "Správa nastavení GTK",
- "Description[da]": "Håndtering af GTK-config",
- "Description[en_GB]": "GTK config management",
- "Description[es]": "Gestión de configuración de GTK",
- "Description[et]": "GTK seadistuste haldamine",
- "Description[eu]": "GTK konfiguratzeko kudeaketa",
- "Description[fi]": "GTK-asetusten hallinta",
- "Description[fr]": "Gestion de la configuration GTK",
- "Description[hu]": "GTK konfiguráció-kezelés",
- "Description[ia]": "Gerente de configuration de GTK",
- "Description[id]": "Pengelolaan konfig GTK",
- "Description[it]": "Gestione della configurazione GTK",
- "Description[ko]": "GTK 설정 관리",
- "Description[lt]": "GTK konfigūracijos valdymas",
- "Description[nl]": "GTK-configuratiebeheer",
- "Description[nn]": "GTK-oppsetthandsaming",
- "Description[pt]": "Gestão das configurações do GTK",
- "Description[pt_BR]": "Gerenciamento das configurações do GTK",
- "Description[ru]": "Управление конфигурацией GTK",
- "Description[sk]": "GTK správa nastavení",
- "Description[sv]": "GTK inställningshantering",
- "Description[uk]": "Керування налаштуваннями GTK",
- "Description[x-test]": "xxGTK config managementxx",
- "Description[zh_CN]": "GTK 配置管理",
- "Description[zh_TW]": "GTK 設定管理工具",
+ "Description": "Automatically applies settings to GNOME/GTK
applications",
+ "Description[ca@valencia]": "Aplica automàticament la configuració a
les aplicacions GNOME/GTK",
+ "Description[ca]": "Aplica automàticament la configuració a les
aplicacions GNOME/GTK",
+ "Description[cs]": "Automaticky aplikuje nastavení na aplikace
GNOME/GTK",
+ "Description[en_GB]": "Automatically applies settings to GNOME/GTK
applications",
+ "Description[es]": "Aplica preferencias automáticamente a las
aplicaciones de GNOME/GTK",
+ "Description[et]": "Seadistuste automaatne rakendamine GNOME/GTK
rakendustele",
+ "Description[eu]": "GNOME/GTK aplikazioei ezarpenak automatikoki
ezartzen dizkie",
+ "Description[fi]": "Ottaa asetukset automaattisesti käyttöön
Gnome/Gtk-sovelluksissa",
+ "Description[fr]": "Applique automatiquement les paramètres aux
applications GNOME/GTK",
+ "Description[id]": "Secara otomatis menerapkan pengaturan ke
aplikasi-aplikasi GNOME/GTK",
+ "Description[it]": "Applica automaticamente le impostazioni alle
applicazioni GNOME/GTK",
+ "Description[ko]": "자동으로 그놈/GTK 프로그램에 설정 적용",
+ "Description[lt]": "Automatiškai taiko nuostatas GNOME/GTK programoms",
+ "Description[nl]": "Automatisch toegepaste instellingen op GNOME/GTK
toepassingen",
+ "Description[nn]": "Tek automatisk i bruk innstillingane på
GNOME-/GTK-program",
+ "Description[pt]": "Aplica automaticamente as configurações nas
aplicações do GNOME/GTK",
+ "Description[pt_BR]": "Aplica automaticamente as configurações aos
aplicativos GNOME/GTK",
+ "Description[ru]": "Автоматическое применение изменений для приложений
GNOME/GTK",
+ "Description[sk]": "Automaticky použije nastavenia pre GNOME/GTK
aplikácie",
+ "Description[sv]": "Verkställer automatiskt inställningar för
GNOME/GTK-program",
+ "Description[uk]": "Автоматично застосовує параметри до програм
GNOME/GTK",
+ "Description[x-test]": "xxAutomatically applies settings to GNOME/GTK
applicationsxx",
+ "Description[zh_CN]": "自动将设置应用到 GNOME/GTK 应用",
+ "Description[zh_TW]": "自動套用設定到 GNOME/GTK 應用程式",
"Icon": "gtkconfig",
- "Name": "Plasma GTKd",
- "Name[ca@valencia]": "Plasma GTKd",
- "Name[ca]": "Plasma GTKd",
- "Name[cs]": "Plasma GTKd",
- "Name[da]": "Plasma GTKd",
- "Name[en_GB]": "Plasma GTKd",
- "Name[es]": "Plasma GTKd",
- "Name[et]": "Plasma GTKd",
- "Name[eu]": "Plasma GTKd",
- "Name[fi]": "Plasma GTKd",
- "Name[fr]": "Plasma GTKd",
- "Name[hu]": "Plasma GTKd",
- "Name[ia]": "Plasma GTKd",
- "Name[id]": "Plasma GTKd",
- "Name[it]": "Plasma GTKd",
- "Name[ko]": "Plasma GTKd",
- "Name[lt]": "Plasma GTKd",
- "Name[nl]": "Plasma GTKd",
- "Name[nn]": "Plasma GTKd",
- "Name[pt]": "GTKd do Plasma",
- "Name[pt_BR]": "Plasma GTKd",
- "Name[ru]": "Plasma GTKd",
- "Name[sk]": "Plasma GTKd",
- "Name[sv]": "Plasma GTKd",
- "Name[uk]": "GTKd для Плазми",
- "Name[x-test]": "xxPlasma GTKdxx",
- "Name[zh_CN]": "Plasma GTKd",
- "Name[zh_TW]": "Plasma GTKd",
+ "Name": "GNOME/GTK Settings Synchronization Service",
+ "Name[ca@valencia]": "Servei de sincronització de la configuració del
GNOME/GTK",
+ "Name[ca]": "Servei de sincronització de la configuració del
GNOME/GTK",
+ "Name[cs]": "Služba synchronizace nastavení GNOME/GTK",
+ "Name[en_GB]": "GNOME/GTK Settings Synchronisation Service",
+ "Name[es]": "Servicio de sincronización de preferencias de GNOME/GTK",
+ "Name[et]": "GNOME/GTK seadistuste sünkroonimise teenus",
+ "Name[eu]": "GNOME/GTK ezarpenak sinkronizatzeko zerbitzua",
+ "Name[fi]": "Gnome/Gtk-asetussynkronointipalvelu",
+ "Name[fr]": "Service de synchronisation des paramètres GNOME/GTK",
+ "Name[id]": "Layanan Sinkronisasi Pengaturan GNOME/GTK",
+ "Name[it]": "Servizio di sincronizzazione delle impostazioni
GNOME/GTK",
+ "Name[ko]": "그놈/GTK 설정 동기화 서비스",
+ "Name[lt]": "GNOME/GTK nuostatų sinchronizavimo tarnyba",
+ "Name[nl]": "GNOME/GTK instellingen synchronisatieservice",
+ "Name[nn]": "GNOME/GTK-oppsettsynkronisering",
+ "Name[pt]": "Serviço de Sincronização das Configurações do GNOME/GTK",
+ "Name[pt_BR]": "Configuração do serviço de sincronização GNOME/GTK",
+ "Name[ru]": "Служба синхронизации параметров GNOME/GTK",
+ "Name[sk]": "Služba na synchronizáciu nastavení GNOME/GTK",
+ "Name[sv]": "Synkroniseringstjänst av GNOME/GTK inställningar",
+ "Name[uk]": "Служба синхронізації параметрів GNOME/GTK",
+ "Name[x-test]": "xxGNOME/GTK Settings Synchronization Servicexx",
+ "Name[zh_CN]": "GNOME/GTK 设置同步服务",
+ "Name[zh_TW]": "GNOME/GTK 設定同步服務",
"ServiceTypes": [
"KDEDModule"
],