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:
parent
5ecd43203f
commit
3e98b19c1c
5 changed files with 105 additions and 49 deletions
|
@ -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.
|
||||
|
||||
|
|
BIN
build/org.eclipse.cdt.make.ui/icons/etool16/target_filter.gif
Normal file
BIN
build/org.eclipse.cdt.make.ui/icons/etool16/target_filter.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 345 B |
|
@ -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?
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue