1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-21 21:52:10 +02:00

fixed bug # 69080

This commit is contained in:
David Inglis 2005-05-19 01:34:11 +00:00
parent 5ecd43203f
commit 3e98b19c1c
5 changed files with 105 additions and 49 deletions

View file

@ -3,3 +3,7 @@ Release CDT-3.0
* All the MakefileEditor text preference settings are now common with the text editors.
To access use Window --> Preferences --> General --> Editors --> Text Editors
* New Environment variable support for builder.
* Can now filter folders which do not have make target in Make Target view.

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

View file

@ -12,22 +12,13 @@
MakeCWizard.title=C/Make Project
MakeCWizard.description=Create a New C Project using 'make' to build it
MakeEnvironmentBlock.10=&Remove
MakeEnvironmentBlock.10=&Remove
MakeEnvironmentBlock.11=New Environment Variable
MakeEnvironmentBlock.11=New Environment Variable
MakeEnvironmentBlock.12=Overwrite variable?
MakeEnvironmentBlock.12=Overwrite variable?
MakeEnvironmentBlock.13=A variable named {0} already exists. Overwrite?
MakeEnvironmentBlock.13=A variable named {0} already exists. Overwrite?
MakeEnvironmentBlock.14=Select &environment variables to add:
MakeEnvironmentBlock.14=Select &environment variables to add:
MakeEnvironmentBlock.15=Select Environment Variables
MakeEnvironmentBlock.15=Select Environment Variables
MakeEnvironmentBlock.16=Edit Environment Variable
MakeEnvironmentBlock.16=Edit Environment Variable
MakeEnvironmentBlock.17=&Append environment to native environment
MakeEnvironmentBlock.17=&Append environment to native environment
MakeEnvironmentBlock.18=Re&place native environment with specified environment
MakeEnvironmentBlock.18=Re&place native environment with specified environment
MakeCWizard.task_name=Creating C project with Make builder...
@ -35,24 +26,14 @@ MakeCCWizard.title=C++/Make Project
MakeCCWizard.description=Create a New C++ Project using 'make' to build it
MakeCCWizard.task_name=Creating C++ project with Make builder...
MakeEnvironmentBlock.0=Variable
MakeEnvironmentBlock.0=Variable
MakeEnvironmentBlock.1=Value
MakeEnvironmentBlock.1=Value
MakeEnvironmentBlock.2=&Name:
MakeEnvironmentBlock.2=&Name:
MakeEnvironmentBlock.3=&Value:
MakeEnvironmentBlock.3=&Value:
MakeEnvironmentBlock.4=Environment
MakeEnvironmentBlock.4=Environment
MakeEnvironmentBlock.5=Environment used for make builder
MakeEnvironmentBlock.5=Environment used for make builder
MakeEnvironmentBlock.6=Environment variables to set
MakeEnvironmentBlock.6=Environment variables to set
MakeEnvironmentBlock.7=N&ew...
MakeEnvironmentBlock.7=N&ew...
MakeEnvironmentBlock.8=Se&lect...
MakeEnvironmentBlock.8=Se&lect...
MakeEnvironmentBlock.9=E&dit...
MakeEnvironmentBlock.9=E&dit...
MakeCWizardSettings.title=C/Make Project Settings
@ -185,6 +166,9 @@ AddTargetAction.tooltip=Add Make Target
AddTargetAction.exception.internalError=Internal Error
AddTargetAction.=Internal Error
FilterEmptyFolderAction.label=Hide Empty Folders
FilterEmptyFolderAction.tooltip=Hide Empty Folders
# Startup messages
MakeUIPlugin.update_project=Update make projects
MakeUIPlugin.update_project_message=Older \'make\' projects have been detected in your workspace. \n These projects are no longer supported, would you like to convert these now?

View file

@ -48,12 +48,11 @@ public class MakeUIImages {
public static final String IMG_OBJS_ERROR = NAME_PREFIX + "error_obj.gif"; //$NON-NLS-1$
public static final ImageDescriptor DESC_OBJ_ERROR = createManaged(OBJ, IMG_OBJS_ERROR);
// For the outliner label provider.
public static final String IMG_TOOLS_MAKE_TARGET_BUILD = NAME_PREFIX + "target_build.gif"; //$NON-NLS-1$
public static final String IMG_TOOLS_MAKE_TARGET_ADD = NAME_PREFIX + "target_add.gif"; //$NON-NLS-1$
public static final String IMG_TOOLS_MAKE_TARGET_DELETE = NAME_PREFIX + "target_delete.gif"; //$NON-NLS-1$
public static final String IMG_TOOLS_MAKE_TARGET_EDIT = NAME_PREFIX + "target_edit.gif"; //$NON-NLS-1$
public static final String IMG_TOOLS_MAKE_TARGET_FILTER = NAME_PREFIX + "target_filter.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_MAKEFILE_MACRO = NAME_PREFIX + "macro_obj.gif"; //$NON-NLS-1$
public static final ImageDescriptor DESC_MAKEFILE_MACRO = createManaged(OBJ, IMG_OBJS_MAKEFILE_MACRO);

View file

@ -10,23 +10,32 @@
*******************************************************************************/
package org.eclipse.cdt.make.ui.views;
import org.eclipse.cdt.make.internal.ui.MakeUIImages;
import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
import org.eclipse.cdt.make.ui.MakeContentProvider;
import org.eclipse.cdt.make.ui.MakeLabelProvider;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.ContentViewer;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
@ -43,45 +52,50 @@ public class MakeView extends ViewPart {
private EditTargetAction editTargetAction;
private DeleteTargetAction deleteTargetAction;
AddTargetAction addTargetAction;
TreeViewer viewer;
TreeViewer fViewer;
DrillDownAdapter drillDownAdapter;
private Action trimEmptyFolderAction;
public MakeView() {
super();
}
/* (non-Javadoc)
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchPart#setFocus()
*/
public void setFocus() {
viewer.getTree().setFocus();
fViewer.getTree().setFocus();
}
/* (non-Javadoc)
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
public void createPartControl(Composite parent) {
MakeUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(parent, IMakeHelpContextIds.MAKE_VIEW);
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
viewer.setUseHashlookup(true);
viewer.setContentProvider(new MakeContentProvider());
viewer.setLabelProvider(new MakeLabelProvider());
fViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
fViewer.setUseHashlookup(true);
fViewer.setContentProvider(new MakeContentProvider());
fViewer.setLabelProvider(new MakeLabelProvider());
drillDownAdapter = new DrillDownAdapter(viewer);
drillDownAdapter = new DrillDownAdapter(fViewer);
viewer.addDoubleClickListener(new IDoubleClickListener() {
fViewer.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
handleDoubleClick(event);
}
});
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
fViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
handleSelectionChanged(event);
}
});
viewer.getControl().addKeyListener(new KeyAdapter() {
fViewer.getControl().addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event) {
if (event.character == SWT.DEL && event.stateMask == 0) {
@ -90,22 +104,77 @@ public class MakeView extends ViewPart {
}
});
viewer.setContentProvider(new MakeContentProvider());
viewer.setLabelProvider(new MakeLabelProvider());
viewer.setSorter(new ViewerSorter());
viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
getSite().setSelectionProvider(viewer);
fViewer.setContentProvider(new MakeContentProvider());
fViewer.setLabelProvider(new MakeLabelProvider());
fViewer.setSorter(new ViewerSorter() {
public int category(Object element) {
if (element instanceof IResource) {
return 0;
}
return 1;
}
});
fViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
getSite().setSelectionProvider(fViewer);
makeActions();
hookContextMenu();
contributeToActionBars();
}
/**
* Returns setting for this control.
*
* @return Settings.
*/
IDialogSettings getSettings() {
final String sectionName = "org.eclipse.cdt.internal.ui.MakeView"; //$NON-NLS-1$
IDialogSettings settings = MakeUIPlugin.getDefault().getDialogSettings().getSection(sectionName);
if (settings == null) {
settings = MakeUIPlugin.getDefault().getDialogSettings().addNewSection(sectionName);
}
return settings;
}
protected class FilterEmtpyFoldersAction extends Action {
private static final String FILTER_EMPTY_FOLDERS = "FilterEmptyFolders"; //$NON-NLS-1$
public FilterEmtpyFoldersAction() {
super(MakeUIPlugin.getResourceString("FilterEmptyFolderAction.label"), IAction.AS_CHECK_BOX); //$NON-NLS-1$
setToolTipText(MakeUIPlugin.getResourceString("FilterEmptyFolderAction.tooltip")); //$NON-NLS-1$
setChecked(getSettings().getBoolean(FILTER_EMPTY_FOLDERS));
MakeUIImages.setImageDescriptors(this, "tool16", MakeUIImages.IMG_TOOLS_MAKE_TARGET_FILTER); //$NON-NLS-1$
fViewer.addFilter(new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement, Object element) {
if (isChecked() && element instanceof IFolder) {
ITreeContentProvider provider = (ITreeContentProvider) ((ContentViewer)viewer).getContentProvider();
Object[] children = provider.getChildren(element);
for (int i = 0; i < children.length; i++) {
if (select(viewer, element, children[i]))
return true;
}
return false;
}
return true;
}
});
}
public void run() {
fViewer.refresh();
getSettings().put(FILTER_EMPTY_FOLDERS, isChecked());
}
}
private void makeActions() {
buildTargetAction = new BuildTargetAction(viewer.getControl().getShell());
addTargetAction = new AddTargetAction(viewer.getControl().getShell());
deleteTargetAction = new DeleteTargetAction(viewer.getControl().getShell());
editTargetAction = new EditTargetAction(viewer.getControl().getShell());
buildTargetAction = new BuildTargetAction(fViewer.getControl().getShell());
addTargetAction = new AddTargetAction(fViewer.getControl().getShell());
deleteTargetAction = new DeleteTargetAction(fViewer.getControl().getShell());
editTargetAction = new EditTargetAction(fViewer.getControl().getShell());
trimEmptyFolderAction = new FilterEmtpyFoldersAction();
}
private void contributeToActionBars() {
IActionBars bars = getViewSite().getActionBars();
@ -116,6 +185,7 @@ public class MakeView extends ViewPart {
private void fillLocalToolBar(IToolBarManager toolBar) {
drillDownAdapter.addNavigationActions(toolBar);
toolBar.add(buildTargetAction);
toolBar.add(trimEmptyFolderAction);
}
private void fillLocalPullDown(IMenuManager manager) {
@ -128,12 +198,12 @@ public class MakeView extends ViewPart {
public void menuAboutToShow(IMenuManager manager) {
MakeView.this.fillContextMenu(manager);
updateActions((IStructuredSelection)viewer.getSelection());
updateActions((IStructuredSelection)fViewer.getSelection());
}
});
Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
// getSite().registerContextMenu(menuMgr, viewer);
Menu menu = menuMgr.createContextMenu(fViewer.getControl());
fViewer.getControl().setMenu(menu);
// getSite().registerContextMenu(menuMgr, viewer);
}
protected void fillContextMenu(IMenuManager manager) {
@ -145,7 +215,7 @@ public class MakeView extends ViewPart {
drillDownAdapter.addNavigationActions(manager);
// Other plug-ins can contribute there actions here
// manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
// manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
protected void handleDeleteKeyPressed() {
@ -161,7 +231,6 @@ public class MakeView extends ViewPart {
updateActions(sel);
}
void updateActions(IStructuredSelection sel) {
addTargetAction.selectionChanged(sel);
buildTargetAction.selectionChanged(sel);