Skip to content

Commit

Permalink
MainForm - Added close all menu item when start page is selected and …
Browse files Browse the repository at this point in the history
…1 or more files are open
  • Loading branch information
NessieHax committed Jul 9, 2023
1 parent 5a98798 commit 4ac2659
Show file tree
Hide file tree
Showing 3 changed files with 284 additions and 310 deletions.
11 changes: 10 additions & 1 deletion PCK-Studio/MainForm.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 30 additions & 17 deletions PCK-Studio/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -147,14 +147,7 @@ private void MainForm_Load(object sender, EventArgs e)

private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (TabPage tab in tabControl.TabPages)
{
if (TryGetEditor(tab, out IPckEditor editor))
{
editor.Close();
tabControl.TabPages.Remove(tab);
}
}
closeAllToolStripMenuItem_Click(sender, e);
}

private void openToolStripMenuItem_Click(object sender, EventArgs e)
Expand Down Expand Up @@ -370,19 +363,29 @@ private void quickChangeToolStripMenuItem_Click(object sender, EventArgs e)
}
}

private void CloseTab(TabControl.TabPageCollection collection, TabPage page)
{
if (TryGetEditor(page, out IPckEditor editor))
{
editor.Close();
RemoveOpenFile(page);
collection.Remove(page);
}
}

private void closeToolStripMenuItem_Click(object sender, EventArgs e)
{
if (TryGetEditor(out IPckEditor editor))
{
editor.Close();
RemoveOpenFile();
tabControl.TabPages.Remove(tabControl.SelectedTab);
}
}
CloseTab(tabControl.TabPages, tabControl.SelectedTab);
}

private void RemoveOpenFile()
{
RemoveOpenFile(tabControl.SelectedTab);
}

private void RemoveOpenFile(TabPage page)
{
var kv = openFiles.First((kv) => kv.Value == tabControl.SelectedTab);
var kv = openFiles.First((kv) => kv.Value == page);
if (kv.Key != default && kv.Value != default)
{
openFiles.Remove(kv.Key);
Expand Down Expand Up @@ -817,11 +820,21 @@ private void tabControl_PageClosing(object sender, PageClosingEventArgs e)
private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
{
closeToolStripMenuItem.Visible = tabControl.SelectedIndex > 0;
closeAllToolStripMenuItem.Visible = tabControl.SelectedIndex == 0 && tabControl.TabCount > 1;

if (tabControl.TabPages.Count == 1)
if (tabControl.TabPages.Count == 1)
{
RPC.SetPresence("An Open Source .PCK File Editor");
}
}

private void closeAllToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (TabPage tab in tabControl.TabPages)
{
CloseTab(tabControl.TabPages, tab);
}
closeAllToolStripMenuItem.Visible = false;
}
}
}
Loading

0 comments on commit 4ac2659

Please sign in to comment.