mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 20:12:21 +02:00
Replaced mAddProjectTargetFolder with GetSelectedWorkspaceFolder()
This commit is contained in:
parent
8e34de65ea
commit
b24f1209eb
3 changed files with 50 additions and 51 deletions
|
@ -2304,7 +2304,7 @@ namespace IDE
|
||||||
AddNewProjectToWorkspace(project);
|
AddNewProjectToWorkspace(project);
|
||||||
project.FinishCreate();
|
project.FinishCreate();
|
||||||
|
|
||||||
mProjectPanel.InitProject(project);
|
mProjectPanel.InitProject(project, mProjectPanel.GetSelectedWorkspaceFolder());
|
||||||
mProjectPanel.Sort();
|
mProjectPanel.Sort();
|
||||||
mWorkspace.FixOptions();
|
mWorkspace.FixOptions();
|
||||||
mWorkspace.mHasChanged = true;
|
mWorkspace.mHasChanged = true;
|
||||||
|
@ -2694,7 +2694,7 @@ namespace IDE
|
||||||
|
|
||||||
AddProjectToWorkspace(project, false);
|
AddProjectToWorkspace(project, false);
|
||||||
if (addToUI)
|
if (addToUI)
|
||||||
mProjectPanel.InitProject(project);
|
mProjectPanel.InitProject(project, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!hadLoad)
|
if (!hadLoad)
|
||||||
|
|
|
@ -203,7 +203,7 @@ namespace IDE.ui
|
||||||
VerSpec verSpec = .SemVer(new .("*"));
|
VerSpec verSpec = .SemVer(new .("*"));
|
||||||
defer verSpec.Dispose();
|
defer verSpec.Dispose();
|
||||||
|
|
||||||
let project = gApp.mProjectPanel.ImportProject(entry.mPath, verSpec);
|
let project = gApp.mProjectPanel.ImportProject(entry.mPath, null, verSpec);
|
||||||
if (project == null)
|
if (project == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -134,7 +134,6 @@ namespace IDE.ui
|
||||||
bool mImportFolderDeferred;
|
bool mImportFolderDeferred;
|
||||||
bool mImportProjectDeferred;
|
bool mImportProjectDeferred;
|
||||||
bool mImportInstalledDeferred;
|
bool mImportInstalledDeferred;
|
||||||
WorkspaceFolder mAddProjectTargetFolder;
|
|
||||||
public Dictionary<ListViewItem, ProjectItem> mListViewToProjectMap = new .() ~ delete _;
|
public Dictionary<ListViewItem, ProjectItem> mListViewToProjectMap = new .() ~ delete _;
|
||||||
public Dictionary<ProjectItem, ProjectListViewItem> mProjectToListViewMap = new .() ~ delete _;
|
public Dictionary<ProjectItem, ProjectListViewItem> mProjectToListViewMap = new .() ~ delete _;
|
||||||
public Dictionary<ListViewItem, WorkspaceFolder> mListViewToWorkspaceFolderMap = new .() ~ delete _;
|
public Dictionary<ListViewItem, WorkspaceFolder> mListViewToWorkspaceFolderMap = new .() ~ delete _;
|
||||||
|
@ -519,21 +518,21 @@ namespace IDE.ui
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitProject(Project project)
|
public void InitProject(Project project, WorkspaceFolder workspaceFolder)
|
||||||
{
|
{
|
||||||
var projectListViewItem = InitProjectItem(project.mRootFolder);
|
var projectListViewItem = InitProjectItem(project.mRootFolder);
|
||||||
projectListViewItem.mRefObject = project;
|
projectListViewItem.mRefObject = project;
|
||||||
if (mAddProjectTargetFolder != null)
|
if (workspaceFolder != null)
|
||||||
{
|
{
|
||||||
let root = mListView.GetRoot();
|
let root = mListView.GetRoot();
|
||||||
root.RemoveChildItem(projectListViewItem, false);
|
root.RemoveChildItem(projectListViewItem, false);
|
||||||
mAddProjectTargetFolder.mListView.MakeParent();
|
workspaceFolder.mListView.MakeParent();
|
||||||
mAddProjectTargetFolder.mListView.AddChild(projectListViewItem);
|
workspaceFolder.mListView.AddChild(projectListViewItem);
|
||||||
mAddProjectTargetFolder.mListView.Open(true);
|
workspaceFolder.mListView.Open(true);
|
||||||
mProjectToWorkspaceFolderMap[project.mRootFolder] = mAddProjectTargetFolder;
|
mProjectToWorkspaceFolderMap[project.mRootFolder] = workspaceFolder;
|
||||||
|
|
||||||
mAddProjectTargetFolder.mProjects.Add(project);
|
workspaceFolder.mProjects.Add(project);
|
||||||
mAddProjectTargetFolder = null;
|
QueueSortItem(workspaceFolder.mListView);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -577,7 +576,7 @@ namespace IDE.ui
|
||||||
mProjectToWorkspaceFolderMap.Clear();
|
mProjectToWorkspaceFolderMap.Clear();
|
||||||
|
|
||||||
for (var project in IDEApp.sApp.mWorkspace.mProjects)
|
for (var project in IDEApp.sApp.mWorkspace.mProjects)
|
||||||
InitProject(project);
|
InitProject(project, null);
|
||||||
|
|
||||||
let root = mListView.GetRoot();
|
let root = mListView.GetRoot();
|
||||||
|
|
||||||
|
@ -1502,6 +1501,14 @@ namespace IDE.ui
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WorkspaceFolder GetSelectedWorkspaceFolder()
|
||||||
|
{
|
||||||
|
ListViewItem selectedItem = mListView.GetRoot().FindFirstSelectedItem();
|
||||||
|
if (mListViewToWorkspaceFolderMap.TryGetValue(selectedItem, let folder))
|
||||||
|
return folder;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
ListViewItem GetSelectedParentItem()
|
ListViewItem GetSelectedParentItem()
|
||||||
{
|
{
|
||||||
ListViewItem selectedItem = mListView.GetRoot().FindFirstSelectedItem();
|
ListViewItem selectedItem = mListView.GetRoot().FindFirstSelectedItem();
|
||||||
|
@ -2449,7 +2456,7 @@ namespace IDE.ui
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Project ImportProject(String filePath, VerSpec verSpec = .None)
|
public Project ImportProject(String filePath, WorkspaceFolder workspaceFolder, VerSpec verSpec = .None)
|
||||||
{
|
{
|
||||||
if (gApp.IsCompiling)
|
if (gApp.IsCompiling)
|
||||||
return null;
|
return null;
|
||||||
|
@ -2496,7 +2503,7 @@ namespace IDE.ui
|
||||||
gApp.AddNewProjectToWorkspace(proj, verSpec);
|
gApp.AddNewProjectToWorkspace(proj, verSpec);
|
||||||
gApp.mWorkspace.FixOptions();
|
gApp.mWorkspace.FixOptions();
|
||||||
gApp.[Friend]FlushDeferredLoadProjects(true);
|
gApp.[Friend]FlushDeferredLoadProjects(true);
|
||||||
InitProject(proj);
|
InitProject(proj, workspaceFolder);
|
||||||
if (failed)
|
if (failed)
|
||||||
{
|
{
|
||||||
gApp.Fail(StackStringFormat!("Failed to load project: {0}", filePath));
|
gApp.Fail(StackStringFormat!("Failed to load project: {0}", filePath));
|
||||||
|
@ -2542,6 +2549,8 @@ namespace IDE.ui
|
||||||
initialDir.Concat(Path.DirectorySeparatorChar, "Samples");
|
initialDir.Concat(Path.DirectorySeparatorChar, "Samples");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var workspaceFolder = GetSelectedWorkspaceFolder();
|
||||||
|
|
||||||
fileDialog.InitialDirectory = initialDir;
|
fileDialog.InitialDirectory = initialDir;
|
||||||
fileDialog.ValidateNames = true;
|
fileDialog.ValidateNames = true;
|
||||||
fileDialog.DefaultExt = ".toml";
|
fileDialog.DefaultExt = ".toml";
|
||||||
|
@ -2551,7 +2560,7 @@ namespace IDE.ui
|
||||||
{
|
{
|
||||||
for (String origProjFilePath in fileDialog.FileNames)
|
for (String origProjFilePath in fileDialog.FileNames)
|
||||||
{
|
{
|
||||||
ImportProject(origProjFilePath);
|
ImportProject(origProjFilePath, workspaceFolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -2656,16 +2665,10 @@ namespace IDE.ui
|
||||||
{
|
{
|
||||||
Menu anItem;
|
Menu anItem;
|
||||||
|
|
||||||
if (mListViewToWorkspaceFolderMap.TryGetValue(focusedItem, let folder))
|
void AddWorkspaceMenuItems()
|
||||||
{
|
{
|
||||||
anItem = menu.AddItem("Remove");
|
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => { RemoveSelectedWorkspaceFolder(); });
|
|
||||||
anItem = menu.AddItem("Rename");
|
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => { EditListViewItem(focusedItem); });
|
|
||||||
menu.AddItem();
|
|
||||||
anItem = menu.AddItem("Add New Project...");
|
anItem = menu.AddItem("Add New Project...");
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => {
|
anItem.mOnMenuItemSelected.Add(new (item) => {
|
||||||
mAddProjectTargetFolder = folder;
|
|
||||||
AddNewProject();
|
AddNewProject();
|
||||||
});
|
});
|
||||||
if (gApp.IsCompiling)
|
if (gApp.IsCompiling)
|
||||||
|
@ -2674,7 +2677,6 @@ namespace IDE.ui
|
||||||
anItem = menu.AddItem("Add Existing Project...");
|
anItem = menu.AddItem("Add Existing Project...");
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => {
|
anItem.mOnMenuItemSelected.Add(new (item) => {
|
||||||
mImportProjectDeferred = true;
|
mImportProjectDeferred = true;
|
||||||
mAddProjectTargetFolder = folder;
|
|
||||||
});
|
});
|
||||||
if (gApp.IsCompiling)
|
if (gApp.IsCompiling)
|
||||||
anItem.SetDisabled(true);
|
anItem.SetDisabled(true);
|
||||||
|
@ -2682,15 +2684,34 @@ namespace IDE.ui
|
||||||
anItem = menu.AddItem("Add From Installed...");
|
anItem = menu.AddItem("Add From Installed...");
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => {
|
anItem.mOnMenuItemSelected.Add(new (item) => {
|
||||||
mImportInstalledDeferred = true;
|
mImportInstalledDeferred = true;
|
||||||
mAddProjectTargetFolder = folder;
|
|
||||||
});
|
});
|
||||||
if (gApp.IsCompiling)
|
if (gApp.IsCompiling)
|
||||||
anItem.SetDisabled(true);
|
anItem.SetDisabled(true);
|
||||||
anItem = menu.AddItem("New Folder");
|
anItem = menu.AddItem("New Folder");
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => {
|
anItem.mOnMenuItemSelected.Add(new (item) => {
|
||||||
let newfolder = AddWorkspaceFolder(folder.mListView);
|
var workspaceFolder = GetSelectedWorkspaceFolder();
|
||||||
newfolder.mParent = folder;
|
if (workspaceFolder != null)
|
||||||
|
{
|
||||||
|
let newFolder = AddWorkspaceFolder(workspaceFolder.mListView);
|
||||||
|
newFolder.mParent = workspaceFolder;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddWorkspaceFolder((ProjectListViewItem)mListView.GetRoot());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mListViewToWorkspaceFolderMap.TryGetValue(focusedItem, let folder))
|
||||||
|
{
|
||||||
|
anItem = menu.AddItem("Remove");
|
||||||
|
anItem.mOnMenuItemSelected.Add(new (item) => { RemoveSelectedWorkspaceFolder(); });
|
||||||
|
anItem = menu.AddItem("Rename");
|
||||||
|
anItem.mOnMenuItemSelected.Add(new (item) => { EditListViewItem(focusedItem); });
|
||||||
|
menu.AddItem();
|
||||||
|
|
||||||
|
AddWorkspaceMenuItems();
|
||||||
|
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
else if (gApp.mWorkspace.IsInitialized)
|
else if (gApp.mWorkspace.IsInitialized)
|
||||||
|
@ -2698,29 +2719,7 @@ namespace IDE.ui
|
||||||
AddOpenContainingFolder();
|
AddOpenContainingFolder();
|
||||||
menu.AddItem();
|
menu.AddItem();
|
||||||
|
|
||||||
anItem = menu.AddItem("Add New Project...");
|
AddWorkspaceMenuItems();
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => {
|
|
||||||
mAddProjectTargetFolder = null;
|
|
||||||
AddNewProject();
|
|
||||||
});
|
|
||||||
if (gApp.IsCompiling)
|
|
||||||
anItem.SetDisabled(true);
|
|
||||||
|
|
||||||
anItem = menu.AddItem("Add Existing Project...");
|
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => {
|
|
||||||
mAddProjectTargetFolder = null;
|
|
||||||
mImportProjectDeferred = true;
|
|
||||||
});
|
|
||||||
if (gApp.IsCompiling)
|
|
||||||
anItem.SetDisabled(true);
|
|
||||||
|
|
||||||
anItem = menu.AddItem("Add From Installed...");
|
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => { mImportInstalledDeferred = true; });
|
|
||||||
if (gApp.IsCompiling)
|
|
||||||
anItem.SetDisabled(true);
|
|
||||||
|
|
||||||
anItem = menu.AddItem("New Folder");
|
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => { AddWorkspaceFolder((ProjectListViewItem)mListView.GetRoot()); });
|
|
||||||
menu.AddItem();
|
menu.AddItem();
|
||||||
anItem = menu.AddItem("Properties...");
|
anItem = menu.AddItem("Properties...");
|
||||||
anItem.mOnMenuItemSelected.Add(new (item) => { ShowWorkspaceProperties(); });
|
anItem.mOnMenuItemSelected.Add(new (item) => { ShowWorkspaceProperties(); });
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue