Keep existing configurations' strings               

Authored by gikari on Aug 24 2019, 1:04 PM.

Description

Keep existing configurations' strings               

Summary:
Gtk configurator has been replacing .gtkrc-2.0 config file with it's own settings, discarding present file contents. Now it only modifies configuration strings, or add them if they are not present at the beginning of the file.

This patch also removes redundant configurations, such as including theme from /usr/share/themes gtkrc's, "user-font" style, widget_class and unneeded symlink .gtkrc-2.0-kde4. Those options do not seem needed, as gtk2 applications look the same without these options without any regressions. This was tested on Gimp, Inkscape and BleachBit apps on Manjaro, OpenSUSE and KDE Neon distributions.

As for gtk3 ini file - this is not reproducible anymore, any line, which does not hold parameter changeable in configurator, remains in settings.ini.

BUG: 322797
BUG: 354963
BUG: 342320
FIXED-IN: 5.17.0

Test Plan:
Insert some lines in .gtkrc-2.0 file, that do not represent settings, that configurator changes, check if they are still present after applying new settings.

Check if gtk2 apps look identical with or without .gtkrc-2.0-kde4 symlink, with or without similar lines in .gtrkrc-2.0:

include "/usr/share/themes/Breeze/gtk-2.0/gtkrc"
style "user-font"
{
	font_name="Noto Sans Regular"
}
widget_class "*" style "user-font"

Reviewers: apol, Plasma

Reviewed By: apol

Subscribers: GB_2, ngraham, plasma-devel

Tags: Plasma

Differential Revision: https://phabricator.kde.org/D21524

Details