switch to correct tab if open when opening from file system
This commit is contained in:
parent
44c1146949
commit
dbe806b301
3 changed files with 37 additions and 21 deletions
|
|
@ -1417,6 +1417,32 @@ namespace MatterHackers.MatterControl
|
|||
}
|
||||
}
|
||||
|
||||
public bool SwitchToWorkspaceIfAlreadyOpen(string assetPath)
|
||||
{
|
||||
var mainViewWidget = Instance.MainView;
|
||||
foreach (var openWorkspace in Instance.Workspaces)
|
||||
{
|
||||
if (openWorkspace.SceneContext.EditContext.SourceFilePath == assetPath
|
||||
|| (openWorkspace.SceneContext.EditContext.SourceItem is IAssetPath cloudItem
|
||||
&& cloudItem.AssetPath == assetPath))
|
||||
{
|
||||
foreach (var tab in mainViewWidget.TabControl.AllTabs)
|
||||
{
|
||||
if (tab.TabContent is DesignTabPage tabContent
|
||||
&& (tabContent.sceneContext.EditContext.SourceFilePath == assetPath
|
||||
|| (tabContent.sceneContext.EditContext.SourceItem is IAssetPath cloudItem2
|
||||
&& cloudItem2.AssetPath == assetPath)))
|
||||
{
|
||||
mainViewWidget.TabControl.ActiveTab = tab;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public DragDropData DragDropData { get; set; } = new DragDropData();
|
||||
|
||||
private string _uiHint = "";
|
||||
|
|
|
|||
|
|
@ -511,25 +511,10 @@ namespace MatterHackers.MatterControl.CustomWidgets
|
|||
var mainViewWidget = ApplicationController.Instance.MainView;
|
||||
|
||||
// check if it is already open
|
||||
foreach (var openWorkspace in ApplicationController.Instance.Workspaces)
|
||||
{
|
||||
if (openWorkspace.SceneContext.EditContext.SourceFilePath == asset.AssetPath
|
||||
|| (openWorkspace.SceneContext.EditContext.SourceItem is IAssetPath cloudItem
|
||||
&& cloudItem.AssetPath == asset.AssetPath))
|
||||
{
|
||||
foreach (var tab in mainViewWidget.TabControl.AllTabs)
|
||||
{
|
||||
if (tab.TabContent is DesignTabPage tabContent
|
||||
&& (tabContent.sceneContext.EditContext.SourceFilePath == asset.AssetPath
|
||||
|| (tabContent.sceneContext.EditContext.SourceItem is IAssetPath cloudItem2
|
||||
&& cloudItem2.AssetPath == asset.AssetPath)))
|
||||
{
|
||||
mainViewWidget.TabControl.ActiveTab = tab;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ApplicationController.Instance.SwitchToWorkspaceIfAlreadyOpen(asset.AssetPath))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var workspace = new PartWorkspace(new BedConfig(ApplicationController.Instance.Library.PlatingHistory));
|
||||
|
||||
|
|
|
|||
|
|
@ -431,7 +431,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
}
|
||||
|
||||
// you can use this code to test the ShellOpenFile code
|
||||
#if false
|
||||
#if true
|
||||
public override void OnKeyPress(KeyPressEventArgs keyPressEvent)
|
||||
{
|
||||
var files = new string[]
|
||||
|
|
@ -472,7 +472,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
if (Path.GetExtension(filePath).ToLower() == ".mcx")
|
||||
{
|
||||
var history = ApplicationController.Instance.Library.PlatingHistory;
|
||||
if (ApplicationController.Instance.SwitchToWorkspaceIfAlreadyOpen(filePath))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var history = ApplicationController.Instance.Library.PlatingHistory;
|
||||
var workspace = new PartWorkspace(new BedConfig(history));
|
||||
// Load the previous content
|
||||
await workspace.SceneContext.LoadContent(new EditContext()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue