Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSopot Cela2015-07-24 12:19:31 +0000
committerSopot Cela2015-07-24 12:19:31 +0000
commit500e8529b6f541fae6caf3549a95da9e67cecf7f (patch)
tree74416789d02bbdc28d905762bb66644ce263c0fa
parent73380715ff68fdd606bd64876a25d62f591ede84 (diff)
downloadeclipse.platform.ui-500e8529b6f541fae6caf3549a95da9e67cecf7f.tar.gz
eclipse.platform.ui-500e8529b6f541fae6caf3549a95da9e67cecf7f.tar.xz
eclipse.platform.ui-500e8529b6f541fae6caf3549a95da9e67cecf7f.zip
Bug 472707 - Allow user to disable CSS styling
Change-Id: I3898e73329d526bf7cd267ee88f19a72ec1acc2f Signed-off-by: Sopot Cela <scela@redhat.com> Change-Id: Id63123584aac33739e6e342921d4421d82e1b034
-rw-r--r--bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java9
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java2
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java19
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties2
4 files changed, 22 insertions, 10 deletions
diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java
index 82155bcf005..37c368aa5c7 100644
--- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java
+++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java
@@ -106,6 +106,10 @@ public class PartRenderingEngine implements IPresentationEngine {
private static final String defaultFactoryUrl = "bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/"
+ "org.eclipse.e4.ui.workbench.renderers.swt.WorkbenchRendererFactory";
+
+ public static final String ENABLED_THEME_KEY = "themeEnabled";
+
+ private static boolean enableThemePreference;
private String factoryUrl;
IRendererFactory curFactory = null;
@@ -474,6 +478,9 @@ public class PartRenderingEngine implements IPresentationEngine {
curFactory = factory;
context.set(IRendererFactory.class, curFactory);
+ IEclipsePreferences node = InstanceScope.INSTANCE.getNode("org.eclipse.e4.ui.workbench.renderers.swt");
+ enableThemePreference = node.getBoolean(ENABLED_THEME_KEY, true);
+
cssThemeChangedHandler = new StylingPreferencesHandler(context.get(Display.class));
}
@@ -1226,7 +1233,7 @@ public class PartRenderingEngine implements IPresentationEngine {
IEclipseContext appContext) {
String cssTheme = (String) appContext.get(E4Application.THEME_ID);
String cssURI = (String) appContext.get(IWorkbench.CSS_URI_ARG);
- if ("none".equals(cssTheme)) {
+ if ("none".equals(cssTheme) || (!enableThemePreference)) {
appContext.set(IStylingEngine.SERVICE_NAME, new IStylingEngine() {
@Override
public void setClassname(Object widget, String classname) {
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
index 8787b989edc..2f54d6a377e 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
@@ -28,7 +28,7 @@ public class WorkbenchMessages extends NLS {
private static final String BUNDLE_NAME = "org.eclipse.ui.internal.messages";//$NON-NLS-1$
- public static String ThemingDisabled;
+ public static String ThemingEnabled;
public static String ThemeChangeWarningText;
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java
index e49e89fa966..0939286158b 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java
@@ -34,6 +34,7 @@ import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.css.swt.theme.ITheme;
import org.eclipse.e4.ui.css.swt.theme.IThemeEngine;
import org.eclipse.e4.ui.internal.workbench.swt.E4Application;
+import org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer;
import org.eclipse.jface.dialogs.Dialog;
@@ -100,19 +101,22 @@ public class ViewsPreferencePage extends PreferencePage implements
private Map<String, String> themeAssociations;
private boolean highContrastMode;
+ private Button themingEnabled;
+
@Override
protected Control createContents(Composite parent) {
initializeDialogUnits(parent);
Composite comp = new Composite(parent, SWT.NONE);
+ themingEnabled = createCheckButton(comp, WorkbenchMessages.ThemingEnabled, engine != null);
+
// if started with "-cssTheme none", CSS settings should be disabled
// but other appearance settings should be *not* disabled
if (engine == null) {
GridLayout layout = new GridLayout(1, false);
layout.horizontalSpacing = 10;
comp.setLayout(layout);
- new Label(comp, SWT.NONE).setText(WorkbenchMessages.ThemingDisabled);
Label separator = new Label(comp, SWT.SEPARATOR | SWT.HORIZONTAL);
GridData layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
layoutData.verticalIndent = 20;
@@ -294,14 +298,15 @@ public class ViewsPreferencePage extends PreferencePage implements
apiStore.setValue(IWorkbenchPreferenceConstants.USE_COLORED_LABELS, useColoredLabels.getSelection());
((PreferencePageEnhancer) Tweaklets.get(PreferencePageEnhancer.KEY)).performOK();
+ IEclipsePreferences prefs = getSwtRendererPreferences();
if (enableMru != null) {
- IEclipsePreferences prefs = getSwtRendererPreferences();
prefs.putBoolean(StackRenderer.MRU_KEY, enableMru.getSelection());
- try {
- prefs.flush();
- } catch (BackingStoreException e) {
- WorkbenchPlugin.log("Failed to set SWT renderer preferences", e); //$NON-NLS-1$
- }
+ }
+ prefs.putBoolean(PartRenderingEngine.ENABLED_THEME_KEY, themingEnabled.getSelection());
+ try {
+ prefs.flush();
+ } catch (BackingStoreException e) {
+ WorkbenchPlugin.log("Failed to set SWT renderer preferences", e); //$NON-NLS-1$
}
return super.performOk();
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
index 886459c4b6b..394f94d14ba 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
@@ -501,7 +501,7 @@ OpenPerspectiveDialogAction_tooltip=Open Perspective
PreferencePage_noDescription = (No description available)
PreferencePageParameterValues_pageLabelSeparator = \ >\
ThemeChangeWarningText = A restart may be required for the theme change to take full effect.
-ThemingDisabled = Theming is disabled.
+ThemingEnabled = Enable theming (requires restart)
# --- Workbench -----
WorkbenchPreference_openMode=Open mode
WorkbenchPreference_doubleClick=D&ouble click

Back to the top