mirror of
https://github.com/KillzXGaming/Switch-Toolbox
synced 2024-11-22 20:43:09 +00:00
Add proper file remove dialog and update the menus
This commit is contained in:
parent
2340d6a7a4
commit
d244ceab0a
7 changed files with 37 additions and 4 deletions
|
@ -99,7 +99,7 @@ namespace FirstPlugin.Forms
|
|||
stTabControl2.myBackColor = FormThemes.BaseTheme.FormBackColor;
|
||||
|
||||
//Always create an instance of the viewport unless opengl is disabled
|
||||
if (viewport == null && Runtime.UseOpenGL)
|
||||
if (viewport == null && Runtime.UseOpenGL || viewport.IsDisposed && Runtime.UseOpenGL)
|
||||
{
|
||||
viewport = new Viewport(ObjectEditor.GetDrawableContainers());
|
||||
viewport.Dock = DockStyle.Fill;
|
||||
|
|
|
@ -292,6 +292,9 @@ namespace Toolbox.Library.Forms
|
|||
var node = treeViewCustom1.SelectedNode;
|
||||
if (node != null)
|
||||
{
|
||||
var result = MessageBox.Show("If you remove this file, any unsaved progress will be lost! Continue?",
|
||||
"Remove Dialog", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
|
||||
if (node is IFileFormat)
|
||||
{
|
||||
((IFileFormat)node).Unload();
|
||||
|
@ -299,6 +302,14 @@ namespace Toolbox.Library.Forms
|
|||
|
||||
treeViewCustom1.Nodes.Remove(node);
|
||||
ResetEditor();
|
||||
|
||||
//Force garbage collection.
|
||||
GC.Collect();
|
||||
|
||||
// Wait for all finalizers to complete before continuing.
|
||||
GC.WaitForPendingFinalizers();
|
||||
|
||||
((IUpdateForm)Runtime.MainForm).UpdateForm();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
14
Switch_Toolbox_Library/Interfaces/IUpdateForm.cs
Normal file
14
Switch_Toolbox_Library/Interfaces/IUpdateForm.cs
Normal file
|
@ -0,0 +1,14 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Toolbox.Library
|
||||
{
|
||||
//A simple interface for updating a form
|
||||
public interface IUpdateForm
|
||||
{
|
||||
void UpdateForm();
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
|
@ -249,6 +249,7 @@
|
|||
<Compile Include="Interfaces\ICloneableNode.cs" />
|
||||
<Compile Include="Interfaces\IMeshContainer.cs" />
|
||||
<Compile Include="Interfaces\ITextureContainer.cs" />
|
||||
<Compile Include="Interfaces\IUpdateForm.cs" />
|
||||
<Compile Include="IO\Extensions\UintExtension.cs" />
|
||||
<Compile Include="IO\STColor.cs" />
|
||||
<Compile Include="Rendering\GenericModelRenderer\GenericModelRenderer.cs" />
|
||||
|
|
|
@ -20,7 +20,7 @@ using Toolbox.Library.Rendering;
|
|||
|
||||
namespace Toolbox
|
||||
{
|
||||
public partial class MainForm : Form, IMdiContainer
|
||||
public partial class MainForm : Form, IMdiContainer, IUpdateForm
|
||||
{
|
||||
private static MainForm _instance;
|
||||
public static MainForm Instance { get { return _instance == null ? _instance = new MainForm() : _instance; } }
|
||||
|
@ -55,6 +55,15 @@ namespace Toolbox
|
|||
LoadConfig();
|
||||
}
|
||||
|
||||
public void UpdateForm()
|
||||
{
|
||||
if (ActiveMdiChild is ObjectEditor)
|
||||
{
|
||||
var activeFile = ((ObjectEditor)ActiveMdiChild).GetActiveFile();
|
||||
SetFormatSettings(activeFile);
|
||||
}
|
||||
}
|
||||
|
||||
public void Reload()
|
||||
{
|
||||
LoadConfig();
|
||||
|
@ -243,10 +252,8 @@ namespace Toolbox
|
|||
if (File.Exists(FileName))
|
||||
SaveRecentFile(FileName);
|
||||
|
||||
|
||||
object file = STFileLoader.OpenFileFormat(FileName);
|
||||
|
||||
|
||||
if (file == null) //File might not be supported so return
|
||||
return;
|
||||
|
||||
|
|
Loading…
Reference in a new issue