fix #257 - new file from menu

This commit is contained in:
Vadim Lopatin 2017-09-08 15:22:07 +03:00
parent 09d5470dda
commit c66ae7521e
2 changed files with 16 additions and 2 deletions

View File

@ -1119,7 +1119,7 @@ class IDEFrame : AppFrame, ProgramExecutionStatusListener, BreakpointListChangeL
createNewProject(false); createNewProject(false);
return true; return true;
case IDEActions.FileNew: case IDEActions.FileNew:
addProjectItem(a.objectParam); addProjectItem(cast(Object)a.objectParam);
return true; return true;
case IDEActions.ProjectFolderRemoveItem: case IDEActions.ProjectFolderRemoveItem:
removeProjectItem(a.objectParam); removeProjectItem(a.objectParam);
@ -1233,9 +1233,12 @@ class IDEFrame : AppFrame, ProgramExecutionStatusListener, BreakpointListChangeL
} }
void addProjectItem(const Object obj) { void addProjectItem(Object obj) {
if (currentWorkspace is null) if (currentWorkspace is null)
return; return;
if (obj is null && _wsPanel !is null) {
obj = _wsPanel.selectedProjectItem;
}
Project project; Project project;
ProjectFolder folder; ProjectFolder folder;
if (cast(Project)obj) { if (cast(Project)obj) {

View File

@ -149,6 +149,17 @@ class WorkspacePanel : DockWindow {
return _workspace; return _workspace;
} }
/// returns currently selected project item
@property ProjectItem selectedProjectItem() {
TreeItem ti = _tree.items.selectedItem;
if (!ti)
return null;
Object obj = ti.objectParam;
if (!obj)
return null;
return cast(ProjectItem)obj;
}
ProjectSourceFile findSourceFileItem(string filename, bool fullFileName=true) { ProjectSourceFile findSourceFileItem(string filename, bool fullFileName=true) {
if (_workspace) if (_workspace)
return _workspace.findSourceFileItem(filename, fullFileName); return _workspace.findSourceFileItem(filename, fullFileName);