From 6fbc58a2e227d10d606520eeaa49f2e661a4d13d Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Wed, 16 Jan 2008 09:50:40 +0000 Subject: [PATCH] Fix for 53844: sort order in C/C++ view --- .../preferences/AppearancePreferencePage.java | 50 +++++++++--------- .../ui/preferences/PreferencesMessages.java | 3 +- .../PreferencesMessages.properties | 11 ++-- .../org/eclipse/cdt/ui/CElementSorter.java | 31 ++++++++--- .../eclipse/cdt/ui/PreferenceConstants.java | 20 +++++-- doc/org.eclipse.cdt.doc.user/contexts_CDT.xml | 4 ++ .../images/view_appearance_prefs.png | Bin 18818 -> 21671 bytes .../reference/cdt_u_appearance_pref.htm | 22 ++++---- 8 files changed, 92 insertions(+), 49 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/AppearancePreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/AppearancePreferencePage.java index f1309a7af00..c17405c373c 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/AppearancePreferencePage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/AppearancePreferencePage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. + * Copyright (c) 2000, 2008 IBM Corporation 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 @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Anton Leherbauer (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.ui.preferences; @@ -41,15 +42,11 @@ import org.eclipse.cdt.internal.ui.wizards.dialogfields.Separator; public class AppearancePreferencePage extends PreferencePage implements IWorkbenchPreferencePage { - private static final String SHOW_TU_CHILDREN= PreferenceConstants.PREF_SHOW_CU_CHILDREN; - private static final String OUTLINE_GROUP_INCLUDES = PreferenceConstants.OUTLINE_GROUP_INCLUDES; - private static final String OUTLINE_GROUP_NAMESPACES = PreferenceConstants.OUTLINE_GROUP_NAMESPACES; - private static final String CVIEW_GROUP_INCLUDES = PreferenceConstants.CVIEW_GROUP_INCLUDES; - private SelectionButtonDialogField fShowTUChildren; private SelectionButtonDialogField fOutlineGroupIncludes; private SelectionButtonDialogField fOutlineGroupNamespaces; private SelectionButtonDialogField fCViewGroupIncludes; + private SelectionButtonDialogField fCViewSeparateHeaderAndSource; public AppearancePreferencePage() { setPreferenceStore(PreferenceConstants.getPreferenceStore()); @@ -77,14 +74,18 @@ public class AppearancePreferencePage extends PreferencePage implements IWorkben fCViewGroupIncludes.setDialogFieldListener(listener); fCViewGroupIncludes.setLabelText(PreferencesMessages.AppearancePreferencePage_cviewGroupIncludes_label); - } + fCViewSeparateHeaderAndSource= new SelectionButtonDialogField(SWT.CHECK); + fCViewSeparateHeaderAndSource.setDialogFieldListener(listener); + fCViewSeparateHeaderAndSource.setLabelText(PreferencesMessages.AppearancePreferencePage_cviewSeparateHeaderAndSource_label); + } private void initFields() { IPreferenceStore prefs= getPreferenceStore(); - fShowTUChildren.setSelection(prefs.getBoolean(SHOW_TU_CHILDREN)); - fCViewGroupIncludes.setSelection(prefs.getBoolean(CVIEW_GROUP_INCLUDES)); - fOutlineGroupIncludes.setSelection(prefs.getBoolean(OUTLINE_GROUP_INCLUDES)); - fOutlineGroupNamespaces.setSelection(prefs.getBoolean(OUTLINE_GROUP_NAMESPACES)); + fShowTUChildren.setSelection(prefs.getBoolean(PreferenceConstants.PREF_SHOW_CU_CHILDREN)); + fCViewGroupIncludes.setSelection(prefs.getBoolean(PreferenceConstants.CVIEW_GROUP_INCLUDES)); + fCViewSeparateHeaderAndSource.setSelection(prefs.getBoolean(PreferenceConstants.CVIEW_SEPARATE_HEADER_AND_SOURCE)); + fOutlineGroupIncludes.setSelection(prefs.getBoolean(PreferenceConstants.OUTLINE_GROUP_INCLUDES)); + fOutlineGroupNamespaces.setSelection(prefs.getBoolean(PreferenceConstants.OUTLINE_GROUP_NAMESPACES)); } /* @@ -110,17 +111,16 @@ public class AppearancePreferencePage extends PreferencePage implements IWorkben result.setLayout(layout); fShowTUChildren.doFillIntoGrid(result, nColumns); - fCViewGroupIncludes.doFillIntoGrid(result, nColumns); + fCViewGroupIncludes.doFillIntoGrid(result, nColumns); fOutlineGroupIncludes.doFillIntoGrid(result, nColumns); fOutlineGroupNamespaces.doFillIntoGrid(result, nColumns); new Separator().doFillIntoGrid(result, nColumns); + fCViewSeparateHeaderAndSource.doFillIntoGrid(result, nColumns); - new Separator().doFillIntoGrid(result, nColumns); - - String noteTitle= PreferencesMessages.AppearancePreferencePage_note; - String noteMessage= PreferencesMessages.AppearancePreferencePage_preferenceOnlyEffectiveForNewPerspectives; + String noteTitle= PreferencesMessages.AppearancePreferencePage_note; + String noteMessage= PreferencesMessages.AppearancePreferencePage_preferenceOnlyForNewViews; Composite noteControl= createNoteComposite(JFaceResources.getDialogFont(), result, noteTitle, noteMessage); GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan= 2; @@ -156,10 +156,11 @@ public class AppearancePreferencePage extends PreferencePage implements IWorkben */ public boolean performOk() { IPreferenceStore prefs= getPreferenceStore(); - prefs.setValue(SHOW_TU_CHILDREN, fShowTUChildren.isSelected()); - prefs.setValue(CVIEW_GROUP_INCLUDES, fCViewGroupIncludes.isSelected()); - prefs.setValue(OUTLINE_GROUP_INCLUDES, fOutlineGroupIncludes.isSelected()); - prefs.setValue(OUTLINE_GROUP_NAMESPACES, fOutlineGroupNamespaces.isSelected()); + prefs.setValue(PreferenceConstants.PREF_SHOW_CU_CHILDREN, fShowTUChildren.isSelected()); + prefs.setValue(PreferenceConstants.CVIEW_GROUP_INCLUDES, fCViewGroupIncludes.isSelected()); + prefs.setValue(PreferenceConstants.CVIEW_SEPARATE_HEADER_AND_SOURCE, fCViewSeparateHeaderAndSource.isSelected()); + prefs.setValue(PreferenceConstants.OUTLINE_GROUP_INCLUDES, fOutlineGroupIncludes.isSelected()); + prefs.setValue(PreferenceConstants.OUTLINE_GROUP_NAMESPACES, fOutlineGroupNamespaces.isSelected()); CUIPlugin.getDefault().savePluginPreferences(); return super.performOk(); } @@ -169,10 +170,11 @@ public class AppearancePreferencePage extends PreferencePage implements IWorkben */ protected void performDefaults() { IPreferenceStore prefs= getPreferenceStore(); - fShowTUChildren.setSelection(prefs.getDefaultBoolean(SHOW_TU_CHILDREN)); - fCViewGroupIncludes.setSelection(prefs.getDefaultBoolean(CVIEW_GROUP_INCLUDES)); - fOutlineGroupIncludes.setSelection(prefs.getDefaultBoolean(OUTLINE_GROUP_INCLUDES)); - fOutlineGroupNamespaces.setSelection(prefs.getDefaultBoolean(OUTLINE_GROUP_NAMESPACES)); + fShowTUChildren.setSelection(prefs.getDefaultBoolean(PreferenceConstants.PREF_SHOW_CU_CHILDREN)); + fCViewGroupIncludes.setSelection(prefs.getDefaultBoolean(PreferenceConstants.CVIEW_GROUP_INCLUDES)); + fCViewSeparateHeaderAndSource.setSelection(prefs.getDefaultBoolean(PreferenceConstants.CVIEW_SEPARATE_HEADER_AND_SOURCE)); + fOutlineGroupIncludes.setSelection(prefs.getDefaultBoolean(PreferenceConstants.OUTLINE_GROUP_INCLUDES)); + fOutlineGroupNamespaces.setSelection(prefs.getDefaultBoolean(PreferenceConstants.OUTLINE_GROUP_NAMESPACES)); super.performDefaults(); } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java index ce70564f165..a1255440330 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java @@ -137,10 +137,11 @@ public final class PreferencesMessages extends NLS { public static String AppearancePreferencePage_description; public static String AppearancePreferencePage_showTUChildren_label; public static String AppearancePreferencePage_cviewGroupIncludes_label; + public static String AppearancePreferencePage_cviewSeparateHeaderAndSource_label; public static String AppearancePreferencePage_outlineGroupIncludes_label; public static String AppearancePreferencePage_outlineGroupNamespaces_label; public static String AppearancePreferencePage_note; - public static String AppearancePreferencePage_preferenceOnlyEffectiveForNewPerspectives; + public static String AppearancePreferencePage_preferenceOnlyForNewViews; public static String CEditorPreferencePage_folding_title; public static String FoldingConfigurationBlock_enable; public static String FoldingConfigurationBlock_combo_caption; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties index f74554c4c0d..b881d109020 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties @@ -149,14 +149,15 @@ CBufferPreferences_CodeReaderBuffer_Size=Size (MB) CEditorPreferencePage_behaviourPage_EnableEditorProblemAnnotation=Enable editor problem annotation #Appearance Preferences -AppearancePreferencePage_description= Appearance of C elements in viewers: +AppearancePreferencePage_description= Appearance of C/C++ elements in viewers: #AppearancePreferencePage.methodreturntype.label= Show &method return types AppearancePreferencePage_showTUChildren_label= Show translation unit members -AppearancePreferencePage_cviewGroupIncludes_label= Group the includes in the C/C++ projects view -AppearancePreferencePage_outlineGroupIncludes_label= Group the includes in the outliner -AppearancePreferencePage_outlineGroupNamespaces_label= Group the namespaces in the outliner +AppearancePreferencePage_cviewGroupIncludes_label= Group include directives in Project Explorer and C/C++ Projects view +AppearancePreferencePage_cviewSeparateHeaderAndSource_label= Sort header files before source files in Project Explorer and C/C++ Projects view +AppearancePreferencePage_outlineGroupIncludes_label= Group include directives in the Outline view +AppearancePreferencePage_outlineGroupNamespaces_label= Group namespaces in the Outline view AppearancePreferencePage_note=Note: -AppearancePreferencePage_preferenceOnlyEffectiveForNewPerspectives=This preference may only take effect on new perspectives +AppearancePreferencePage_preferenceOnlyForNewViews=This preference does not affect open views #Folding CEditorPreferencePage_folding_title= &Folding diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CElementSorter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CElementSorter.java index 3c4f738b629..83aa114d77a 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CElementSorter.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CElementSorter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2006 IBM Corporation and others. + * Copyright (c) 2005, 2008 IBM Corporation 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 @@ -8,6 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation * QNX Software System + * Anton Leherbauer (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.ui; @@ -43,6 +44,7 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IStorage; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; +import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.viewers.ContentViewer; import org.eclipse.jface.viewers.IBaseLabelProvider; import org.eclipse.jface.viewers.ILabelProvider; @@ -104,7 +106,22 @@ public class CElementSorter extends ViewerSorter { protected static final int RESOURCES= 201; protected static final int STORAGE= 202; protected static final int OTHERS= 500; + + /** + * Flag indicating whether header files and source files should be separated. + * If true, header files will be sorted before source files, + * otherwise header and source files will be sorted by name. + */ + private boolean fSeparateHeaderAndSource; + /** + * Default constructor for use as executable extension. + */ + public CElementSorter() { + final IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore(); + fSeparateHeaderAndSource= store.getBoolean(PreferenceConstants.CVIEW_SEPARATE_HEADER_AND_SOURCE); + } + public int category (Object element) { if (element instanceof ICModel) { return CMODEL; @@ -120,11 +137,13 @@ public class CElementSorter extends ViewerSorter { return CCONTAINERS; } else if (element instanceof ITranslationUnit) { ITranslationUnit tu = (ITranslationUnit)element; - if (CoreModel.isValidHeaderUnitName(tu.getCProject().getProject(), tu.getElementName())) { - return TRANSLATIONUNIT_HEADERS; - } - if (CoreModel.isValidSourceUnitName(tu.getCProject().getProject(), tu.getElementName())) { - return TRANSLATIONUNIT_SOURCE; + if (fSeparateHeaderAndSource) { + if (CoreModel.isValidHeaderUnitName(tu.getCProject().getProject(), tu.getElementName())) { + return TRANSLATIONUNIT_HEADERS; + } + if (CoreModel.isValidSourceUnitName(tu.getCProject().getProject(), tu.getElementName())) { + return TRANSLATIONUNIT_SOURCE; + } } return TRANSLATIONUNITS; } else if (element instanceof IInclude) { diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java index 0d840be1f76..8b8e937e34f 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java @@ -718,7 +718,7 @@ public class PreferenceConstants { public static final String ID_BESTMATCH_HOVER= "org.eclipse.cdt.ui.BestMatchHover"; //$NON-NLS-1$ /** - * A named preference that controls if the Outline view. + * A named preference that controls whether the Outline view should group include directives. *

* Value is of type Boolean. *

@@ -726,7 +726,7 @@ public class PreferenceConstants { public static final String OUTLINE_GROUP_INCLUDES= "org.eclipse.cdt.ui.outline.groupincludes"; //$NON-NLS-1$ /** - * A named preference that controls if the Outline view. + * A named preference that controls whether the Outline view should group namespaces. *

* Value is of type Boolean. *

@@ -735,7 +735,7 @@ public class PreferenceConstants { /** - * A named preference that controls whether the outline view + * A named preference that controls whether the Outline view * selection should stay in sync with with the element at the current cursor position. *

* Value is of type Boolean. @@ -744,13 +744,25 @@ public class PreferenceConstants { public static final String OUTLINE_LINK_TO_EDITOR = "org.eclipse.cdt.ui.outline.linktoeditor"; //$NON-NLS-1$ /** - * A named preference that controls if the CView. + * A named preference that controls whether include directives should be grouped in the + * C/C++ Projects view and the Project Explorer view. *

* Value is of type Boolean. *

*/ public static final String CVIEW_GROUP_INCLUDES= "org.eclipse.cdt.ui.cview.groupincludes"; //$NON-NLS-1$ + /** + * A named preference that controls whether header and source files should be separated in the + * C/C++ Projects view and the Project Explorer view. + *

+ * Value is of type Boolean. + *

+ * + * @since 5.0 + */ + public static final String CVIEW_SEPARATE_HEADER_AND_SOURCE= "org.eclipse.cdt.ui.cview.separateheaderandsource"; //$NON-NLS-1$ + /** * A named preference that controls which completion proposal categories * have been excluded from the default proposal list. diff --git a/doc/org.eclipse.cdt.doc.user/contexts_CDT.xml b/doc/org.eclipse.cdt.doc.user/contexts_CDT.xml index e8d707f1708..3a04a1f15f3 100644 --- a/doc/org.eclipse.cdt.doc.user/contexts_CDT.xml +++ b/doc/org.eclipse.cdt.doc.user/contexts_CDT.xml @@ -349,5 +349,9 @@ Allows you to switch mark occurrences on and off. + + Customize the appearance of C/C++ elements in viewers. + + diff --git a/doc/org.eclipse.cdt.doc.user/images/view_appearance_prefs.png b/doc/org.eclipse.cdt.doc.user/images/view_appearance_prefs.png index a5a92bc10e24cac4a8c1cc2beb8c36734637a82f..2fb57f4637a17430229c7d0d7146c1c462f38c6c 100644 GIT binary patch literal 21671 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 QJCA~#PC^~=$Nl5~2~NzrHUIzs literal 18818 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 diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_appearance_pref.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_appearance_pref.htm index 4af86243fe2..2493c35eca1 100644 --- a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_appearance_pref.htm +++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_appearance_pref.htm @@ -13,7 +13,7 @@

Appearance preferences

Use the Appearance panel of the Preferences window to customize the appearance of C elements in the viewers.

-

+

- - + + - - + + - - + + - - + + + + + +
@@ -25,20 +25,24 @@
Show translation unit numbers Select this option to show translation unit numbers. Show translation unit members Select this option to show translation unit members in Project Explorer and C/C++ Projects view.
Group the includes in the C/C++ projects view Select this option to group include files in the C/C++ project view. Group include directives in Project Explorer and C/C++ Projects view Select this option to group include directives in Project Explorer and C/C++ Projects view.
Group the includes in the outliner Select this option to group include files in outline views. Group include directives in the Outline view Select this option to group include directives in the Outline view.
Group the namespaces in the outliner Select this option to group files by namespaces in outline views. Group namespaces in the Outline view Select this option to group namespace declarations in the Outline view.
Sort header files before source files in Project Explorer and C/C++ Projects view Select this option to separate header and source files in Project Explorer and C/C++ Projects view.