From 857c5eae688574a290eeb7c1c4863efbef46a2ea Mon Sep 17 00:00:00 2001 From: Ken Ryall Date: Wed, 7 Apr 2010 15:19:53 +0000 Subject: [PATCH] Bug 303440 - [preferences] Unify and clarify debug preference pages --- debug/org.eclipse.cdt.debug.mi.ui/plugin.xml | 34 ++++++++++++++ debug/org.eclipse.cdt.debug.ui/plugin.xml | 44 +++++++++++++++++++ dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/plugin.xml | 36 ++++++++++++++- .../dsf/gdb/launching/GdbLaunchDelegate.java | 2 + dsf/org.eclipse.cdt.dsf.ui/plugin.properties | 2 +- dsf/org.eclipse.cdt.dsf.ui/plugin.xml | 31 ++++++++++++- .../cdt/dsf/debug/ui/DsfDebugUITools.java | 21 +++++++++ .../cdt/dsf/internal/ui/DsfUIPlugin.java | 3 ++ .../cdt/launch/AbstractCLaunchDelegate.java | 10 ++++- .../org/eclipse/cdt/launch/LaunchUtils.java | 23 +++++++++- .../plugin.xml | 2 +- 11 files changed, 201 insertions(+), 7 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.mi.ui/plugin.xml b/debug/org.eclipse.cdt.debug.mi.ui/plugin.xml index ebacefa621f..2c8ef969e5d 100644 --- a/debug/org.eclipse.cdt.debug.mi.ui/plugin.xml +++ b/debug/org.eclipse.cdt.debug.mi.ui/plugin.xml @@ -136,4 +136,38 @@ + + + + + + + + + + + + + + + + + + + diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml index 13e20328df5..f39a3cefb80 100644 --- a/debug/org.eclipse.cdt.debug.ui/plugin.xml +++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml @@ -2399,4 +2399,48 @@ commandId="org.eclipse.cdt.debug.ui.command.castToArray"> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/plugin.xml b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/plugin.xml index 53dee121099..f2dba5a34e7 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/plugin.xml +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/plugin.xml @@ -305,7 +305,7 @@ @@ -511,4 +511,38 @@ + + + + + + + + + + + + + + + + + + + diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/GdbLaunchDelegate.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/GdbLaunchDelegate.java index eaeba2e8434..afcc8830d98 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/GdbLaunchDelegate.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/GdbLaunchDelegate.java @@ -58,7 +58,9 @@ public class GdbLaunchDelegate extends AbstractCLaunchDelegate2 private final static String NON_STOP_FIRST_VERSION = "6.8.50"; //$NON-NLS-1$ private boolean isNonStopSession = false; + @Override public void launch( ILaunchConfiguration config, String mode, ILaunch launch, IProgressMonitor monitor ) throws CoreException { + org.eclipse.cdt.launch.LaunchUtils.enableActivity("org.eclipse.cdt.debug.dsfgdbActivity", true); //$NON-NLS-1$ if ( monitor == null ) { monitor = new NullProgressMonitor(); } diff --git a/dsf/org.eclipse.cdt.dsf.ui/plugin.properties b/dsf/org.eclipse.cdt.dsf.ui/plugin.properties index ec8dddd372b..19146e9de1f 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/plugin.properties +++ b/dsf/org.eclipse.cdt.dsf.ui/plugin.properties @@ -39,7 +39,7 @@ menu.updateScope = Update Scope menu.numberFormat = Number Format -preferencePage.name = DSF +preferencePage.name = View Performance action.expandStack.label = E&xpand Stack diff --git a/dsf/org.eclipse.cdt.dsf.ui/plugin.xml b/dsf/org.eclipse.cdt.dsf.ui/plugin.xml index 2c2baa79332..20d9953f3f1 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/plugin.xml +++ b/dsf/org.eclipse.cdt.dsf.ui/plugin.xml @@ -495,7 +495,7 @@ @@ -679,7 +679,36 @@ activityId="org.eclipse.cdt.dsf.ui.activity.updateModes" pattern="org\.eclipse\.cdt\.dsf\.ui/org\.eclipse\.cdt\.dsf\.debug\.ui\.[A-Za-z]+\.viewmodel\.update\.actions\.refresh"> + + + + + + + + + + + + + + + + + enabledActivityIds = new HashSet(activityManager.getEnabledActivityIds()); + boolean changed = false; + if (enableit) + changed = enabledActivityIds.add(activityID); + else + changed = enabledActivityIds.remove(activityID); + if (changed) + workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds); + } + } diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/internal/ui/DsfUIPlugin.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/internal/ui/DsfUIPlugin.java index ed997000325..58e7fa37723 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/internal/ui/DsfUIPlugin.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/internal/ui/DsfUIPlugin.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.dsf.internal.ui; import org.eclipse.cdt.dsf.concurrent.IDsfStatusConstants; import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.DisassemblyBackendDsfFactory; import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.model.SourceDocumentProvider; +import org.eclipse.cdt.dsf.debug.ui.DsfDebugUITools; import org.eclipse.cdt.dsf.ui.viewmodel.datamodel.IDMVMContext; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; @@ -61,6 +62,8 @@ public class DsfUIPlugin extends AbstractUIPlugin { // Register the DSF backend for our disassembly view (the CDT debug UI // plugin registers the CDI one) Platform.getAdapterManager().registerAdapters(new DisassemblyBackendDsfFactory(), IDMVMContext.class); + + DsfDebugUITools.enableActivity("org.eclipse.cdt.debug.ui.cdtActivity", true); //$NON-NLS-1$ } /* diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java index 6f02af44067..a080fbde0f1 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java @@ -23,8 +23,8 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.Map.Entry; +import java.util.Properties; import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.cdt.core.IBinaryParser.IBinaryObject; @@ -118,7 +118,13 @@ abstract public class AbstractCLaunchDelegate extends LaunchConfigurationDelegat } } - /* (non-Javadoc) + + public AbstractCLaunchDelegate() { + super(); + org.eclipse.cdt.launch.LaunchUtils.enableActivity("org.eclipse.cdt.debug.cdigdbActivity", true); //$NON-NLS-1$ + } + + /* (non-Javadoc) * @see org.eclipse.debug.core.model.LaunchConfigurationDelegate#getLaunch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String) */ @Override diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/LaunchUtils.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/LaunchUtils.java index 53a2ee98bd0..5dfe5420db8 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/LaunchUtils.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/LaunchUtils.java @@ -11,11 +11,13 @@ package org.eclipse.cdt.launch; import java.io.IOException; +import java.util.HashSet; +import java.util.Set; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.IBinaryParser; -import org.eclipse.cdt.core.ICExtensionReference; import org.eclipse.cdt.core.IBinaryParser.IBinaryObject; +import org.eclipse.cdt.core.ICExtensionReference; import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; import org.eclipse.cdt.utils.CommandLineUtil; import org.eclipse.core.resources.IProject; @@ -26,6 +28,9 @@ import org.eclipse.core.runtime.Path; import org.eclipse.core.variables.IStringVariableManager; import org.eclipse.core.variables.VariablesPlugin; import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.activities.IActivityManager; +import org.eclipse.ui.activities.IWorkbenchActivitySupport; /** * Utility methods. @@ -112,4 +117,20 @@ public class LaunchUtils { private static String[] parseArguments(String args) { return CommandLineUtil.argumentsToArray(args); } + + @SuppressWarnings("unchecked") + public static void enableActivity(String activityID, boolean enableit) + { + IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport(); + IActivityManager activityManager = workbenchActivitySupport.getActivityManager(); + Set enabledActivityIds = new HashSet(activityManager.getEnabledActivityIds()); + boolean changed = false; + if (enableit) + changed = enabledActivityIds.add(activityID); + else + changed = enabledActivityIds.remove(activityID); + if (changed) + workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds); + } + } diff --git a/memory/org.eclipse.cdt.debug.ui.memory.traditional/plugin.xml b/memory/org.eclipse.cdt.debug.ui.memory.traditional/plugin.xml index 907808dcd15..adeececc01c 100644 --- a/memory/org.eclipse.cdt.debug.ui.memory.traditional/plugin.xml +++ b/memory/org.eclipse.cdt.debug.ui.memory.traditional/plugin.xml @@ -19,7 +19,7 @@