Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Rolka2014-10-15 11:56:46 +0000
committerDaniel Rolka2014-10-15 12:09:21 +0000
commitb431db0746b124993da998f5e8fbe1c6dcf1dec1 (patch)
tree7acb3d0340b47df95e312db268e6b92bb5c08056
parente7c315e2708fbf6c81f0f61d43162109c5aff1f9 (diff)
downloadeclipse.platform.ui-b431db0746b124993da998f5e8fbe1c6dcf1dec1.tar.gz
eclipse.platform.ui-b431db0746b124993da998f5e8fbe1c6dcf1dec1.tar.xz
eclipse.platform.ui-b431db0746b124993da998f5e8fbe1c6dcf1dec1.zip
Bug 435512 - [CSS] Override the preferences customized by the user with
the proper CSS values Change-Id: Ic8ed8b380fb26caa5e9a8c9fe6d9d886482ec6ad Signed-off-by: Daniel Rolka <daniel.rolka@pl.ibm.com>
-rw-r--r--bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java4
-rw-r--r--bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/helpers/EclipsePreferencesHelper.java16
-rw-r--r--bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/properties/preference/EclipsePreferencesHandler.java3
3 files changed, 21 insertions, 2 deletions
diff --git a/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java b/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java
index 99765533e8b..c0d4901a7a2 100644
--- a/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java
+++ b/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java
@@ -44,6 +44,7 @@ import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.core.util.impl.resources.FileResourcesLocatorImpl;
import org.eclipse.e4.ui.css.core.util.impl.resources.OSGiResourceLocator;
import org.eclipse.e4.ui.css.core.util.resources.IResourceLocator;
+import org.eclipse.e4.ui.css.swt.helpers.EclipsePreferencesHelper;
import org.eclipse.e4.ui.css.swt.theme.ITheme;
import org.eclipse.e4.ui.css.swt.theme.IThemeEngine;
import org.eclipse.osgi.service.datalocation.Location;
@@ -453,6 +454,9 @@ public class ThemeEngine implements IThemeEngine {
if (restore) {
IEclipsePreferences pref = getPreferences();
+ EclipsePreferencesHelper.setPreviousThemeId(pref.get(THEMEID_KEY, null));
+ EclipsePreferencesHelper.setCurrentThemeId(theme.getId());
+
pref.put(THEMEID_KEY, theme.getId());
try {
pref.flush();
diff --git a/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/helpers/EclipsePreferencesHelper.java b/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/helpers/EclipsePreferencesHelper.java
index e1023a64dd1..b8bbaad9459 100644
--- a/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/helpers/EclipsePreferencesHelper.java
+++ b/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/helpers/EclipsePreferencesHelper.java
@@ -27,6 +27,10 @@ public class EclipsePreferencesHelper {
private static IPreferenceChangeListener preferenceChangeListener;
+ private static String previousThemeId;
+
+ private static String currentThemeId;
+
public static void appendOverriddenPropertyName(
IEclipsePreferences preferences, String name) {
String value = preferences.get(PROPS_OVERRIDDEN_BY_CSS_PROP, SEPARATOR);
@@ -87,6 +91,18 @@ public class EclipsePreferencesHelper {
overriddenByCSS.toString());
}
+ public static void setPreviousThemeId(String themeId) {
+ previousThemeId = themeId;
+ }
+
+ public static void setCurrentThemeId(String themeId) {
+ currentThemeId = themeId;
+ }
+
+ public static boolean isThemeChanged() {
+ return currentThemeId != null && !currentThemeId.equals(previousThemeId);
+ }
+
public static class PreferenceOverriddenByCssChangeListener implements
IPreferenceChangeListener {
@Override
diff --git a/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/properties/preference/EclipsePreferencesHandler.java b/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/properties/preference/EclipsePreferencesHandler.java
index faee09356fb..d48c64c5579 100644
--- a/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/properties/preference/EclipsePreferencesHandler.java
+++ b/bundles/org.eclipse.e4.ui.css.swt/src/org/eclipse/e4/ui/css/swt/properties/preference/EclipsePreferencesHandler.java
@@ -67,8 +67,7 @@ public class EclipsePreferencesHandler implements ICSSPropertyHandler {
protected void overrideProperty(IEclipsePreferences preferences,
String name, String value) {
- // when pref is not already set, either by the user or by the CSS
- if (preferences.get(name, null) == null) {
+ if (preferences.get(name, null) == null || EclipsePreferencesHelper.isThemeChanged()) {
preferences.put(name, value);
EclipsePreferencesHelper.appendOverriddenPropertyName(preferences,
name);

Back to the top