Bug 362522 - Theme switching should warn the user that a restart is
required
Open a dialog on OK or Apply
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 60029ee..31c0a02 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
@@ -23,6 +23,10 @@
private static final String BUNDLE_NAME = "org.eclipse.ui.internal.messages";//$NON-NLS-1$
+ public static String ThemeChangeWarningText;
+
+ public static String ThemeChangeWarningTitle;
+
public static String BundleSigningTray_Cant_Find_Service;
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 462761c..67f8821 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
@@ -16,6 +16,7 @@
import org.eclipse.e4.ui.css.swt.theme.IThemeEngine;
import org.eclipse.e4.ui.internal.workbench.swt.E4Application;
import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -51,7 +52,6 @@
private ComboViewer themeIdCombo;
private ITheme currentTheme;
private String defaultTheme;
-
private Button enableAnimations;
private Button useColoredLabels;
@@ -139,6 +139,10 @@
*/
@Override
public boolean performOk() {
+ if (!getSelection().equals(currentTheme)) {
+ MessageDialog.openWarning(getShell(), WorkbenchMessages.ThemeChangeWarningTitle,
+ WorkbenchMessages.ThemeChangeWarningText);
+ }
engine.setTheme(getSelection(), true);
IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS,
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 8e9f204..ae8346d 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
@@ -491,7 +491,8 @@
#---- General Preferences----
PreferencePage_noDescription = (No description available)
PreferencePageParameterValues_pageLabelSeparator = \ >\
-
+ThemeChangeWarningText = A restart is required for the theme change to take full effect.
+ThemeChangeWarningTitle = Theme change
# --- Workbench -----
WorkbenchPreference_openMode=Open mode
WorkbenchPreference_doubleClick=D&ouble click