diff --git a/terminal/bundles/org.eclipse.terminal.control/META-INF/MANIFEST.MF b/terminal/bundles/org.eclipse.terminal.control/META-INF/MANIFEST.MF index e22f4815dc1..ff5a3fb72be 100644 --- a/terminal/bundles/org.eclipse.terminal.control/META-INF/MANIFEST.MF +++ b/terminal/bundles/org.eclipse.terminal.control/META-INF/MANIFEST.MF @@ -25,10 +25,10 @@ Export-Package: org.eclipse.terminal.connector;version="1.0.100"; org.eclipse.terminal.connector, org.eclipse.terminal.model", org.eclipse.terminal.internal.connector;x-internal:=true, - org.eclipse.terminal.internal.control.impl;x-internal:=true, + org.eclipse.terminal.internal.control.impl;x-internal:=true;x-friends:="org.eclipse.terminal.view.ui", org.eclipse.terminal.internal.emulator;x-internal:=true, org.eclipse.terminal.internal.model;x-internal:=true, - org.eclipse.terminal.internal.preferences;x-internal:=true, + org.eclipse.terminal.internal.preferences;x-internal:=true;x-friends:="org.eclipse.terminal.view.ui", org.eclipse.terminal.internal.textcanvas;x-internal:=true, org.eclipse.terminal.model;version="1.0.100";uses:="org.eclipse.swt.graphics" Automatic-Module-Name: org.eclipse.terminal.control diff --git a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/control/impl/TerminalMessages.java b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/control/impl/TerminalMessages.java index 56ecd05699a..0ba81920130 100644 --- a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/control/impl/TerminalMessages.java +++ b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/control/impl/TerminalMessages.java @@ -56,6 +56,7 @@ public class TerminalMessages extends NLS { //Preference Page public static String INVERT_COLORS; + public static String RESTORE_TERMINALS; public static String BUFFERLINES; } diff --git a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/control/impl/TerminalMessages.properties b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/control/impl/TerminalMessages.properties index 96b277c2e77..d1624a42392 100644 --- a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/control/impl/TerminalMessages.properties +++ b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/control/impl/TerminalMessages.properties @@ -55,4 +55,5 @@ CannotConnectTo = Cannot initialize {0}:\n{1} NotInitialized = Not Initialized INVERT_COLORS = Invert terminal colors +RESTORE_TERMINALS = Reopen terminals after restart BUFFERLINES = Terminal buffer lines: diff --git a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/ITerminalConstants.java b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/ITerminalConstants.java index d3d34a76197..a2b7694ac55 100644 --- a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/ITerminalConstants.java +++ b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/ITerminalConstants.java @@ -29,12 +29,14 @@ public interface ITerminalConstants { public static final String PREF_BUFFERLINES = "TerminalPrefBufferLines"; //$NON-NLS-1$ public static final String PREF_INVERT_COLORS = "TerminalPrefInvertColors"; //$NON-NLS-1$ + public static final String PREF_RESTORE_TERMINALS = "TerminalPrefRestoreTerminals"; //$NON-NLS-1$ /** * @since 5.0 */ public static final String PREF_FONT_DEFINITION = "TerminalFontDefinition"; //$NON-NLS-1$ public static final int DEFAULT_BUFFERLINES = 1000; public static final boolean DEFAULT_INVERT_COLORS = false; + public static final boolean DEFAULT_PREF_RESTORE_TERMINALS = true; /** * @since 5.0 */ diff --git a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/TerminalPreferenceInitializer.java b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/TerminalPreferenceInitializer.java index 05e330c9d2e..407e3f45d6c 100644 --- a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/TerminalPreferenceInitializer.java +++ b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/TerminalPreferenceInitializer.java @@ -41,6 +41,7 @@ public void initializeDefaultPreferences() { IEclipsePreferences defaultPrefs = DefaultScope.INSTANCE.getNode(TerminalPlugin.PLUGIN_ID); defaultPrefs.putBoolean(ITerminalConstants.PREF_INVERT_COLORS, ITerminalConstants.DEFAULT_INVERT_COLORS); defaultPrefs.putInt(ITerminalConstants.PREF_BUFFERLINES, ITerminalConstants.DEFAULT_BUFFERLINES); + defaultPrefs.putBoolean(ITerminalConstants.PREF_RESTORE_TERMINALS, ITerminalConstants.DEFAULT_PREF_RESTORE_TERMINALS); defaultPrefs.put(ITerminalConstants.PREF_FONT_DEFINITION, ITerminalConstants.DEFAULT_FONT_DEFINITION); Preset defaultPresets = TerminalColorPresets.INSTANCE.getDefaultPreset(); diff --git a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/TerminalPreferencePage.java b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/TerminalPreferencePage.java index 62e3d9a4378..ab6b721439f 100644 --- a/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/TerminalPreferencePage.java +++ b/terminal/bundles/org.eclipse.terminal.control/src/org/eclipse/terminal/internal/preferences/TerminalPreferencePage.java @@ -68,6 +68,8 @@ protected void setupData() { } protected void setupEditors() { + addField(new BooleanFieldEditor(ITerminalConstants.PREF_RESTORE_TERMINALS, TerminalMessages.RESTORE_TERMINALS, + getFieldEditorParent())); addField(new BooleanFieldEditor(ITerminalConstants.PREF_INVERT_COLORS, TerminalMessages.INVERT_COLORS, getFieldEditorParent())); @@ -76,6 +78,7 @@ protected void setupEditors() { terminalColorsFieldEditor = new TerminalColorsFieldEditor(getFieldEditorParent()); addField(terminalColorsFieldEditor); + } @Override diff --git a/terminal/bundles/org.eclipse.terminal.view.ui/META-INF/MANIFEST.MF b/terminal/bundles/org.eclipse.terminal.view.ui/META-INF/MANIFEST.MF index e8dfd9f7c67..9652e27d4af 100644 --- a/terminal/bundles/org.eclipse.terminal.view.ui/META-INF/MANIFEST.MF +++ b/terminal/bundles/org.eclipse.terminal.view.ui/META-INF/MANIFEST.MF @@ -15,7 +15,8 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.9.0,4.0.0)", org.eclipse.ui.ide;bundle-version="[3.22.0,4.0.0)";resolution:=optional, org.eclipse.ui.editors;bundle-version="[3.20.0,4.0.0)";resolution:=optional, org.eclipse.text;bundle-version="[3.14.0,4.0.0)";resolution:=optional, - org.eclipse.terminal.view.core;bundle-version="[1.0.0,2.0.0)" + org.eclipse.terminal.view.core;bundle-version="[1.0.0,2.0.0)", + org.eclipse.terminal.control;bundle-version="[1.0.0,2.0.0)" Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-Localization: plugin diff --git a/terminal/bundles/org.eclipse.terminal.view.ui/src/org/eclipse/terminal/view/ui/internal/view/TerminalsView.java b/terminal/bundles/org.eclipse.terminal.view.ui/src/org/eclipse/terminal/view/ui/internal/view/TerminalsView.java index 17a73139d5c..37e4f5c8090 100644 --- a/terminal/bundles/org.eclipse.terminal.view.ui/src/org/eclipse/terminal/view/ui/internal/view/TerminalsView.java +++ b/terminal/bundles/org.eclipse.terminal.view.ui/src/org/eclipse/terminal/view/ui/internal/view/TerminalsView.java @@ -27,6 +27,7 @@ import org.eclipse.core.runtime.ILog; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; @@ -53,6 +54,8 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.terminal.internal.control.impl.TerminalPlugin; +import org.eclipse.terminal.internal.preferences.ITerminalConstants; import org.eclipse.terminal.view.ui.ITerminalsView; import org.eclipse.terminal.view.ui.internal.Messages; import org.eclipse.terminal.view.ui.internal.tabs.TabFolderManager; @@ -91,6 +94,9 @@ public class TerminalsView extends ViewPart implements ITerminalsView, IShowInTa // The view's memento handler private final TerminalsViewMementoHandler mementoHandler = new TerminalsViewMementoHandler(); + @SuppressWarnings("restriction") + private IPreferenceStore preferenceStore = TerminalPlugin.getDefault().getPreferenceStore(); + /** * "dummy" transfer just to store the information needed for the DnD * @@ -706,8 +712,9 @@ public void saveState(IMemento memento) { * * @param memento The memento or null. */ + @SuppressWarnings("restriction") public void restoreState(IMemento memento) { - if (memento == null) { + if (memento == null || !preferenceStore.getBoolean(ITerminalConstants.PREF_RESTORE_TERMINALS)) { return; } mementoHandler.restoreState(this, memento);