read proper values from l&f

wilder-pre-rebase
Marco Martin 12 years ago
parent fa214e475c
commit bf148b3d3a
  1. 38
      misc/kde4breeze/src/main.cpp

@ -31,9 +31,9 @@
static const QString defaultLookAndFeelPackage = "org.kde.breeze.desktop"; static const QString defaultLookAndFeelPackage = "org.kde.breeze.desktop";
void applyColorScheme(KConfig *other) void applyColorScheme(const QString &colorScheme, KConfig *other)
{ {
QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/Breeze.colors"); QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/" + colorScheme + ".colors");
KSharedConfigPtr config = KSharedConfig::openConfig(src); KSharedConfigPtr config = KSharedConfig::openConfig(src);
@ -44,11 +44,11 @@ void applyColorScheme(KConfig *other)
} }
} }
void cloneColorScheme() void cloneColorScheme(const QString &colorScheme)
{ {
Kdelibs4Migration migration; Kdelibs4Migration migration;
QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/Breeze.colors"); QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/" + colorScheme + ".colors");
QString dest = migration.saveLocation("data", "color-schemes") + "Breeze.colors"; QString dest = migration.saveLocation("data", "color-schemes") + colorScheme + ".colors";
QDir dir; QDir dir;
dir.mkpath(migration.saveLocation("data", "color-schemes")); dir.mkpath(migration.saveLocation("data", "color-schemes"));
@ -84,7 +84,7 @@ QVariant readConfigValue(KSharedConfigPtr lnfConfig, KSharedConfigPtr defaultLnf
void updateKdeGlobals() void updateKdeGlobals()
{ {
Kdelibs4Migration migration; Kdelibs4Migration migration;
//Apply Breeze color scheme //Apply the color scheme
KConfig config(migration.saveLocation("config") + "kdeglobals"); KConfig config(migration.saveLocation("config") + "kdeglobals");
KSharedConfig::Ptr kf5Config = KSharedConfig::openConfig("kdeglobals"); KSharedConfig::Ptr kf5Config = KSharedConfig::openConfig("kdeglobals");
@ -94,44 +94,48 @@ void updateKdeGlobals()
const QString looknfeel = kf52Group.readEntry("LookAndFeelPackage", defaultLookAndFeelPackage); const QString looknfeel = kf52Group.readEntry("LookAndFeelPackage", defaultLookAndFeelPackage);
KSharedConfigPtr lnfConfig; KSharedConfigPtr lnfConfig;
KSharedConfigPtr defaultLnfConfig = KSharedConfig::openConfig(QStandardPaths::locate(QStandardPaths::GenericDataLocation, "plasma/look-and-feel/" + looknfeel + "/contents/defaults")); KSharedConfigPtr defaultLnfConfig = KSharedConfig::openConfig(QStandardPaths::locate(QStandardPaths::GenericDataLocation, "plasma/look-and-feel/" + defaultLookAndFeelPackage + "/contents/defaults"));
if (looknfeel != defaultLookAndFeelPackage) { if (looknfeel != defaultLookAndFeelPackage) {
lnfConfig = KSharedConfig::openConfig(QStandardPaths::locate(QStandardPaths::GenericDataLocation, "plasma/look-and-feel/" + defaultLookAndFeelPackage + "/contents/defaults")); lnfConfig = KSharedConfig::openConfig(QStandardPaths::locate(QStandardPaths::GenericDataLocation, "plasma/look-and-feel/" + looknfeel + "/contents/defaults"));
} }
const QString widgetStyle = readConfigValue(lnfConfig, defaultLnfConfig, "KDE", "widgetStyle", "breeze").toString(); const QString widgetStyle = readConfigValue(lnfConfig, defaultLnfConfig, "KDE", "widgetStyle", "breeze").toString();
const QString colorScheme = readConfigValue(lnfConfig, defaultLnfConfig, "General", "ColorScheme", "Breeze").toString(); const QString colorScheme = readConfigValue(lnfConfig, defaultLnfConfig, "General", "ColorScheme", "Breeze").toString();
const QString icons = readConfigValue(lnfConfig, defaultLnfConfig, "Icons", "Theme", "breeze").toString(); const QString icons = readConfigValue(lnfConfig, defaultLnfConfig, "Icons", "Theme", "breeze").toString();
cloneColorScheme(colorScheme);
//use QtCurve only if installed //use QtCurve only if installed
const bool hasBreeze = QStyleFactory::keys().contains("Breeze"); const bool hasWidgetStyle = QStyleFactory::keys().contains(widgetStyle);
KConfigGroup group(&config, "General"); KConfigGroup group(&config, "General");
group.writeEntry("ColorScheme", colorScheme); group.writeEntry("ColorScheme", colorScheme);
if (hasBreeze) { group.sync();
if (hasWidgetStyle) {
group.writeEntry("widgetStyle", widgetStyle); group.writeEntry("widgetStyle", widgetStyle);
} }
applyColorScheme(&config); applyColorScheme(colorScheme, &config);
group.sync(); group.sync();
KConfigGroup iconGroup(&config, "Icons"); KConfigGroup iconGroup(&config, "Icons");
iconGroup.writeEntry("Theme", icons); iconGroup.writeEntry("Theme", icons);
applyColorScheme(&config); applyColorScheme(colorScheme, &config);
iconGroup.sync(); iconGroup.sync();
kf5Group.writeEntry("ColorScheme", colorScheme); kf5Group.writeEntry("ColorScheme", colorScheme);
if (hasBreeze) { kf5Group.sync();
if (hasWidgetStyle) {
kf5Group.writeEntry("widgetStyle", widgetStyle); kf5Group.writeEntry("widgetStyle", widgetStyle);
} }
applyColorScheme(kf5Group.config()); applyColorScheme(colorScheme, kf5Group.config());
kf5Group.sync(); kf5Group.sync();
kf52Group.writeEntry("ColorScheme", colorScheme); kf52Group.writeEntry("ColorScheme", colorScheme);
if (hasBreeze) { if (hasWidgetStyle) {
kf52Group.writeEntry("widgetStyle", widgetStyle); kf52Group.writeEntry("widgetStyle", widgetStyle);
} }
applyColorScheme(kf52Group.config()); applyColorScheme(colorScheme, kf52Group.config());
kf52Group.sync(); kf52Group.sync();
KConfigGroup kf5IconGroup(kf5Config, "Icons"); KConfigGroup kf5IconGroup(kf5Config, "Icons");
@ -144,8 +148,6 @@ int main(int argc, char **argv)
QCoreApplication app(argc, argv); QCoreApplication app(argc, argv);
cloneColorScheme();
updateKdeGlobals(); updateKdeGlobals();
return 0; return 0;

Loading…
Cancel
Save