From 3c58527d534b44c1f67fe5c85d28be90e81789a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20Svensson?= Date: Sat, 24 Apr 2021 11:18:14 +0200 Subject: [PATCH] Bug 350499: Ask user to confirm toolchain change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a user switches toolchain integration used, all the settings will be lost. Rather than having the user find this out the hard way, prompt about it and highlight the implications of changing toolchain. Contributed by STMicroelectronics Change-Id: I885bc5544d7222eb1aeee7c92ac98c0d1c083cb1 Signed-off-by: Torbjörn Svensson --- .../cdt/managedbuilder/internal/ui/Messages.java | 4 ++++ .../cdt/managedbuilder/internal/ui/Messages.properties | 4 ++++ .../managedbuilder/ui/properties/ToolChainEditTab.java | 10 +++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java index aca82d55614..1832851d0f3 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java @@ -286,6 +286,10 @@ public class Messages extends NLS { public static String WizardDefaultsTab_0; public static String WizardDefaultsTab_1; public static String RefreshPolicyTab_resourcesTreeLabel; + public static String BuilderSettingsTab_23; + public static String BuilderSettingsTab_24; + public static String BuilderSettingsTab_25; + public static String BuilderSettingsTab_26; static { // Initialize resource bundle. diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties index d10945519a4..65a03e53d28 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties @@ -41,6 +41,10 @@ BuilderSettingsTab_19=Build (Incremental build) BuilderSettingsTab_20=Clean BuilderSettingsTab_21=Build location BuilderSettingsTab_22=Build &directory: +BuilderSettingsTab_23=Confirm toolchain change +BuilderSettingsTab_24=Changing toolchain will reset all tool settings to default values. Existing settings will be unrecoverable. +BuilderSettingsTab_25=Continue +BuilderSettingsTab_26=Cancel BuilderSettingsTab_Configure_Build_Arguments_In_the_Behavior_tab=Configure build arguments in the Behavior tab. BuildStepsTab_0=Command: BuildStepsTab_1=Description: diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java index b1b3383c375..96539cfe806 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java @@ -44,6 +44,7 @@ import org.eclipse.cdt.managedbuilder.tcmodification.IToolModification; import org.eclipse.cdt.ui.CDTSharedImages; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; +import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; @@ -113,7 +114,14 @@ public class ToolChainEditTab extends AbstractCBuildPropertyTab { c_toolchain.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - modifyToolchain(); + if (MessageDialog.open(MessageDialog.WARNING, c_toolchain.getShell(), Messages.BuilderSettingsTab_23, + Messages.BuilderSettingsTab_24, SWT.NONE, Messages.BuilderSettingsTab_25, + Messages.BuilderSettingsTab_26) == MessageDialog.OK) { + modifyToolchain(); + } else { + e.doit = false; + fillToolChainCombo(); + } } }); c_toolchain.setEnabled(!page.isForFile());