From 64695227bf07a0a25f8898f037360b07ae345e3a Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Tue, 25 Jan 2011 15:43:38 +0000 Subject: [PATCH] bug 330750: Include path defined as ${workspace_loc} incorrectly displayed in Project Explorer view Patch from Alex Freidin --- .../settings/model/util/PathEntryTranslator.java | 2 ++ .../internal/ui/cview/CViewLabelProvider.java | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/PathEntryTranslator.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/PathEntryTranslator.java index c0d24bccd5e..b20671be40c 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/PathEntryTranslator.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/PathEntryTranslator.java @@ -711,6 +711,8 @@ public class PathEntryTranslator { result[0][i] = new Path(projName); result[1][i] = valuePath; + } else if(pathVarPath.isRoot()){ + result[1][i] = ResourcesPlugin.getWorkspace().getRoot().getLocation(); } } } else { diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewLabelProvider.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewLabelProvider.java index 2936f370b5b..4d326cd5d05 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewLabelProvider.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewLabelProvider.java @@ -18,6 +18,7 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.StyledString; import org.eclipse.swt.graphics.Image; import org.eclipse.cdt.core.model.ICElement; @@ -28,6 +29,8 @@ import org.eclipse.cdt.ui.CDTSharedImages; import org.eclipse.cdt.ui.CElementImageDescriptor; import org.eclipse.cdt.ui.CUIPlugin; +import org.eclipse.cdt.internal.corext.util.Strings; + import org.eclipse.cdt.internal.ui.viewsupport.AppearanceAwareLabelProvider; import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider; @@ -62,7 +65,9 @@ public class CViewLabelProvider extends AppearanceAwareLabelProvider { } } } - return containers[0].getFullPath().makeRelative().toString(); + IPath p = containers[0].getFullPath(); + p = (p.isRoot()) ? uriPathLocation : p.makeRelative(); + return decorateText(p.toString(), element); } } else if (element instanceof IIncludeReference) { IIncludeReference ref = (IIncludeReference)element; @@ -74,7 +79,7 @@ public class CViewLabelProvider extends AppearanceAwareLabelProvider { p = p.setDevice(null); p = p.removeFirstSegments(parentLocation.segmentCount()); } - return p.toString(); + return decorateText(p.toString(), element); } } else if (element instanceof ITranslationUnit) { ITranslationUnit unit = (ITranslationUnit)element; @@ -86,11 +91,16 @@ public class CViewLabelProvider extends AppearanceAwareLabelProvider { p = p.setDevice(null); p = p.removeFirstSegments(parentLocation.segmentCount()); } - return p.toString(); + return decorateText(p.toString(), element); } } return super.getText(element); } + + @Override + public StyledString getStyledText(Object element) { + return Strings.markLTR(new StyledString(getText(element))); + } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)