mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 06:02:11 +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.
|
* All the MakefileEditor text preference settings are now common with the text editors.
|
||||||
To access use Window --> Preferences --> General --> Editors --> 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.title=C/Make Project
|
||||||
MakeCWizard.description=Create a New C Project using 'make' to build it
|
MakeCWizard.description=Create a New C Project using 'make' to build it
|
||||||
MakeEnvironmentBlock.10=&Remove
|
MakeEnvironmentBlock.10=&Remove
|
||||||
MakeEnvironmentBlock.10=&Remove
|
|
||||||
MakeEnvironmentBlock.11=New Environment Variable
|
|
||||||
MakeEnvironmentBlock.11=New Environment Variable
|
MakeEnvironmentBlock.11=New Environment Variable
|
||||||
MakeEnvironmentBlock.12=Overwrite 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.13=A variable named {0} already exists. Overwrite?
|
||||||
MakeEnvironmentBlock.14=Select &environment variables to add:
|
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.15=Select Environment Variables
|
||||||
MakeEnvironmentBlock.16=Edit Environment Variable
|
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.17=&Append environment to native environment
|
|
||||||
MakeEnvironmentBlock.18=Re&place native environment with specified 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...
|
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.description=Create a New C++ Project using 'make' to build it
|
||||||
MakeCCWizard.task_name=Creating C++ project with Make builder...
|
MakeCCWizard.task_name=Creating C++ project with Make builder...
|
||||||
MakeEnvironmentBlock.0=Variable
|
MakeEnvironmentBlock.0=Variable
|
||||||
MakeEnvironmentBlock.0=Variable
|
|
||||||
MakeEnvironmentBlock.1=Value
|
|
||||||
MakeEnvironmentBlock.1=Value
|
MakeEnvironmentBlock.1=Value
|
||||||
MakeEnvironmentBlock.2=&Name:
|
MakeEnvironmentBlock.2=&Name:
|
||||||
MakeEnvironmentBlock.2=&Name:
|
|
||||||
MakeEnvironmentBlock.3=&Value:
|
|
||||||
MakeEnvironmentBlock.3=&Value:
|
MakeEnvironmentBlock.3=&Value:
|
||||||
MakeEnvironmentBlock.4=Environment
|
MakeEnvironmentBlock.4=Environment
|
||||||
MakeEnvironmentBlock.4=Environment
|
|
||||||
MakeEnvironmentBlock.5=Environment used for make builder
|
|
||||||
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.6=Environment variables to set
|
|
||||||
MakeEnvironmentBlock.7=N&ew...
|
|
||||||
MakeEnvironmentBlock.7=N&ew...
|
MakeEnvironmentBlock.7=N&ew...
|
||||||
MakeEnvironmentBlock.8=Se&lect...
|
MakeEnvironmentBlock.8=Se&lect...
|
||||||
MakeEnvironmentBlock.8=Se&lect...
|
|
||||||
MakeEnvironmentBlock.9=E&dit...
|
|
||||||
MakeEnvironmentBlock.9=E&dit...
|
MakeEnvironmentBlock.9=E&dit...
|
||||||
|
|
||||||
MakeCWizardSettings.title=C/Make Project Settings
|
MakeCWizardSettings.title=C/Make Project Settings
|
||||||
|
@ -185,6 +166,9 @@ AddTargetAction.tooltip=Add Make Target
|
||||||
AddTargetAction.exception.internalError=Internal Error
|
AddTargetAction.exception.internalError=Internal Error
|
||||||
AddTargetAction.=Internal Error
|
AddTargetAction.=Internal Error
|
||||||
|
|
||||||
|
FilterEmptyFolderAction.label=Hide Empty Folders
|
||||||
|
FilterEmptyFolderAction.tooltip=Hide Empty Folders
|
||||||
|
|
||||||
# Startup messages
|
# Startup messages
|
||||||
MakeUIPlugin.update_project=Update make projects
|
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?
|
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 String IMG_OBJS_ERROR = NAME_PREFIX + "error_obj.gif"; //$NON-NLS-1$
|
||||||
public static final ImageDescriptor DESC_OBJ_ERROR = createManaged(OBJ, IMG_OBJS_ERROR);
|
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_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_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_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_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 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);
|
public static final ImageDescriptor DESC_MAKEFILE_MACRO = createManaged(OBJ, IMG_OBJS_MAKEFILE_MACRO);
|
||||||
|
|
|
@ -10,23 +10,32 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.make.ui.views;
|
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.internal.ui.MakeUIPlugin;
|
||||||
import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
|
import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
|
||||||
import org.eclipse.cdt.make.ui.MakeContentProvider;
|
import org.eclipse.cdt.make.ui.MakeContentProvider;
|
||||||
import org.eclipse.cdt.make.ui.MakeLabelProvider;
|
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.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.IMenuListener;
|
||||||
import org.eclipse.jface.action.IMenuManager;
|
import org.eclipse.jface.action.IMenuManager;
|
||||||
import org.eclipse.jface.action.IToolBarManager;
|
import org.eclipse.jface.action.IToolBarManager;
|
||||||
import org.eclipse.jface.action.MenuManager;
|
import org.eclipse.jface.action.MenuManager;
|
||||||
import org.eclipse.jface.action.Separator;
|
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.DoubleClickEvent;
|
||||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
import org.eclipse.jface.viewers.IDoubleClickListener;
|
||||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||||
|
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||||
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||||
import org.eclipse.jface.viewers.TreeViewer;
|
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.jface.viewers.ViewerSorter;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
import org.eclipse.swt.events.KeyAdapter;
|
import org.eclipse.swt.events.KeyAdapter;
|
||||||
|
@ -43,45 +52,50 @@ public class MakeView extends ViewPart {
|
||||||
private EditTargetAction editTargetAction;
|
private EditTargetAction editTargetAction;
|
||||||
private DeleteTargetAction deleteTargetAction;
|
private DeleteTargetAction deleteTargetAction;
|
||||||
AddTargetAction addTargetAction;
|
AddTargetAction addTargetAction;
|
||||||
TreeViewer viewer;
|
TreeViewer fViewer;
|
||||||
DrillDownAdapter drillDownAdapter;
|
DrillDownAdapter drillDownAdapter;
|
||||||
|
private Action trimEmptyFolderAction;
|
||||||
|
|
||||||
public MakeView() {
|
public MakeView() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.ui.IWorkbenchPart#setFocus()
|
* @see org.eclipse.ui.IWorkbenchPart#setFocus()
|
||||||
*/
|
*/
|
||||||
public void 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)
|
* @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
|
||||||
*/
|
*/
|
||||||
public void createPartControl(Composite parent) {
|
public void createPartControl(Composite parent) {
|
||||||
MakeUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(parent, IMakeHelpContextIds.MAKE_VIEW);
|
MakeUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(parent, IMakeHelpContextIds.MAKE_VIEW);
|
||||||
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
|
fViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
|
||||||
viewer.setUseHashlookup(true);
|
fViewer.setUseHashlookup(true);
|
||||||
viewer.setContentProvider(new MakeContentProvider());
|
fViewer.setContentProvider(new MakeContentProvider());
|
||||||
viewer.setLabelProvider(new MakeLabelProvider());
|
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) {
|
public void doubleClick(DoubleClickEvent event) {
|
||||||
handleDoubleClick(event);
|
handleDoubleClick(event);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
|
fViewer.addSelectionChangedListener(new ISelectionChangedListener() {
|
||||||
|
|
||||||
public void selectionChanged(SelectionChangedEvent event) {
|
public void selectionChanged(SelectionChangedEvent event) {
|
||||||
handleSelectionChanged(event);
|
handleSelectionChanged(event);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
viewer.getControl().addKeyListener(new KeyAdapter() {
|
fViewer.getControl().addKeyListener(new KeyAdapter() {
|
||||||
|
|
||||||
public void keyPressed(KeyEvent event) {
|
public void keyPressed(KeyEvent event) {
|
||||||
if (event.character == SWT.DEL && event.stateMask == 0) {
|
if (event.character == SWT.DEL && event.stateMask == 0) {
|
||||||
|
@ -90,22 +104,77 @@ public class MakeView extends ViewPart {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
viewer.setContentProvider(new MakeContentProvider());
|
fViewer.setContentProvider(new MakeContentProvider());
|
||||||
viewer.setLabelProvider(new MakeLabelProvider());
|
fViewer.setLabelProvider(new MakeLabelProvider());
|
||||||
viewer.setSorter(new ViewerSorter());
|
fViewer.setSorter(new ViewerSorter() {
|
||||||
viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
|
|
||||||
getSite().setSelectionProvider(viewer);
|
public int category(Object element) {
|
||||||
|
if (element instanceof IResource) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
fViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
|
||||||
|
getSite().setSelectionProvider(fViewer);
|
||||||
|
|
||||||
makeActions();
|
makeActions();
|
||||||
hookContextMenu();
|
hookContextMenu();
|
||||||
contributeToActionBars();
|
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() {
|
private void makeActions() {
|
||||||
buildTargetAction = new BuildTargetAction(viewer.getControl().getShell());
|
buildTargetAction = new BuildTargetAction(fViewer.getControl().getShell());
|
||||||
addTargetAction = new AddTargetAction(viewer.getControl().getShell());
|
addTargetAction = new AddTargetAction(fViewer.getControl().getShell());
|
||||||
deleteTargetAction = new DeleteTargetAction(viewer.getControl().getShell());
|
deleteTargetAction = new DeleteTargetAction(fViewer.getControl().getShell());
|
||||||
editTargetAction = new EditTargetAction(viewer.getControl().getShell());
|
editTargetAction = new EditTargetAction(fViewer.getControl().getShell());
|
||||||
|
trimEmptyFolderAction = new FilterEmtpyFoldersAction();
|
||||||
}
|
}
|
||||||
private void contributeToActionBars() {
|
private void contributeToActionBars() {
|
||||||
IActionBars bars = getViewSite().getActionBars();
|
IActionBars bars = getViewSite().getActionBars();
|
||||||
|
@ -116,6 +185,7 @@ public class MakeView extends ViewPart {
|
||||||
private void fillLocalToolBar(IToolBarManager toolBar) {
|
private void fillLocalToolBar(IToolBarManager toolBar) {
|
||||||
drillDownAdapter.addNavigationActions(toolBar);
|
drillDownAdapter.addNavigationActions(toolBar);
|
||||||
toolBar.add(buildTargetAction);
|
toolBar.add(buildTargetAction);
|
||||||
|
toolBar.add(trimEmptyFolderAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fillLocalPullDown(IMenuManager manager) {
|
private void fillLocalPullDown(IMenuManager manager) {
|
||||||
|
@ -128,11 +198,11 @@ public class MakeView extends ViewPart {
|
||||||
|
|
||||||
public void menuAboutToShow(IMenuManager manager) {
|
public void menuAboutToShow(IMenuManager manager) {
|
||||||
MakeView.this.fillContextMenu(manager);
|
MakeView.this.fillContextMenu(manager);
|
||||||
updateActions((IStructuredSelection)viewer.getSelection());
|
updateActions((IStructuredSelection)fViewer.getSelection());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Menu menu = menuMgr.createContextMenu(viewer.getControl());
|
Menu menu = menuMgr.createContextMenu(fViewer.getControl());
|
||||||
viewer.getControl().setMenu(menu);
|
fViewer.getControl().setMenu(menu);
|
||||||
// getSite().registerContextMenu(menuMgr, viewer);
|
// getSite().registerContextMenu(menuMgr, viewer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +231,6 @@ public class MakeView extends ViewPart {
|
||||||
updateActions(sel);
|
updateActions(sel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void updateActions(IStructuredSelection sel) {
|
void updateActions(IStructuredSelection sel) {
|
||||||
addTargetAction.selectionChanged(sel);
|
addTargetAction.selectionChanged(sel);
|
||||||
buildTargetAction.selectionChanged(sel);
|
buildTargetAction.selectionChanged(sel);
|
||||||
|
|
Loading…
Add table
Reference in a new issue