From e451a6c00ad5482cb6db66222979e5667461208b Mon Sep 17 00:00:00 2001 From: Ken Ryall Date: Thu, 3 May 2007 20:26:46 +0000 Subject: [PATCH] Bug 179202. Make showing the list of source files when you expand a binary optional. This setting will go away once we do 182388. --- .../eclipse/cdt/internal/core/model/Binary.java | 8 ++++++-- .../eclipse/cdt/core/CCorePreferenceConstants.java | 5 +++++ .../internal/core/CCorePreferenceInitializer.java | 2 ++ .../ui/preferences/CDebugPreferencePage.java | 14 +++++++++++++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Binary.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Binary.java index b0864d540bc..45f05649978 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Binary.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Binary.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2006 QNX Software Systems and others. + * Copyright (c) 2000, 2007 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -18,6 +18,8 @@ import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; +import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.CCorePreferenceConstants; import org.eclipse.cdt.core.ISymbolReader; import org.eclipse.cdt.core.IBinaryParser.IBinaryExecutable; import org.eclipse.cdt.core.IBinaryParser.IBinaryFile; @@ -248,7 +250,9 @@ public class Binary extends Openable implements IBinary { // First check if we can get the list of source // files used to build the binary from the symbol // information. if not, fall back on information from the binary parser. - if (!addSourceFiles(info, obj, hash)) + boolean showSourceFiles = CCorePlugin.getDefault().getPluginPreferences().getBoolean( CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES ); + if (!showSourceFiles || + !addSourceFiles(info, obj, hash)) { ISymbol[] symbols = obj.getSymbols(); for (int i = 0; i < symbols.length; i++) { diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java index ddbfd2798ca..2387e998fe2 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java @@ -75,4 +75,9 @@ public class CCorePreferenceConstants { * Default workspace-wide language mappings. */ public static final String DEFAULT_WORKSPACE_LANGUAGE_MAPPINGS = ""; //$NON-NLS-1$ + + /** + * Attempt to show source files for executable binaries. + */ + public static final String SHOW_SOURCE_FILES_IN_BINARIES = CCorePlugin.PLUGIN_ID + ".showSourceFilesInBinaries"; //$NON-NLS-1$ } diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java index 9be56923124..b7808858df5 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java @@ -57,6 +57,8 @@ public class CCorePreferenceInitializer extends AbstractPreferenceInitializer { optionNames.add(optionName); } + defaultPreferences.putBoolean(CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES, true); + // indexer defaults IndexerPreferences.initializeDefaultPreferences(defaultPreferences); } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/preferences/CDebugPreferencePage.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/preferences/CDebugPreferencePage.java index 15ad5eaba25..b8bbc6bd30b 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/preferences/CDebugPreferencePage.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/preferences/CDebugPreferencePage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2005 QNX Software Systems and others. + * Copyright (c) 2004, 2007 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -11,6 +11,9 @@ package org.eclipse.cdt.debug.internal.ui.preferences; import java.text.MessageFormat; + +import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.CCorePreferenceConstants; import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.ICDebugConstants; import org.eclipse.cdt.debug.core.cdi.ICDIFormat; @@ -77,6 +80,8 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr private PropertyChangeListener fPropertyChangeListener; + private Button fShowBinarySourceFilesButton; + protected class PropertyChangeListener implements IPropertyChangeListener { private boolean fHasStateChanged = false; @@ -127,6 +132,8 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr createViewSettingPreferences( composite ); createSpacer( composite, 1 ); createDisassemblySettingPreferences( composite ); + createSpacer( composite, 1 ); + createBinarySettings( composite ); setValues(); return composite; } @@ -157,6 +164,7 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr fVariableFormatCombo.select( getFormatIndex( CDebugCorePlugin.getDefault().getPluginPreferences().getInt( ICDebugConstants.PREF_DEFAULT_VARIABLE_FORMAT ) ) ); fExpressionFormatCombo.select( getFormatIndex( CDebugCorePlugin.getDefault().getPluginPreferences().getInt( ICDebugConstants.PREF_DEFAULT_EXPRESSION_FORMAT ) ) ); fRegisterFormatCombo.select( getFormatIndex( CDebugCorePlugin.getDefault().getPluginPreferences().getInt( ICDebugConstants.PREF_DEFAULT_REGISTER_FORMAT ) ) ); + fShowBinarySourceFilesButton.setSelection( CCorePlugin.getDefault().getPluginPreferences().getBoolean( CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES ) ); } /* @@ -205,6 +213,9 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr fRegisterFormatCombo = createComboBox( formatComposite, PreferenceMessages.getString( "CDebugPreferencePage.10" ), fFormatLabels, fFormatLabels[0] ); //$NON-NLS-1$ } + private void createBinarySettings( Composite parent ) { + fShowBinarySourceFilesButton = createCheckButton( parent, "Show source files in binaries" ); + } /** * Create the disassembly setting preferences composite widget */ @@ -334,6 +345,7 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr CDebugCorePlugin.getDefault().getPluginPreferences().setValue( ICDebugConstants.PREF_DEFAULT_EXPRESSION_FORMAT, getFormatId( fExpressionFormatCombo.getSelectionIndex() ) ); CDebugCorePlugin.getDefault().getPluginPreferences().setValue( ICDebugConstants.PREF_DEFAULT_REGISTER_FORMAT, getFormatId( fRegisterFormatCombo.getSelectionIndex() ) ); getDisassemblySourceColor().store(); + CCorePlugin.getDefault().getPluginPreferences().setValue( CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES, fShowBinarySourceFilesButton.getSelection() ); } /**