[GUI] Add context menu to the Scene Hierarchy tab

- Added context menu with "Select all", "Select none", "Expand all", "Collapse all" options to the "Scene Hierarchy" tab.
https://github.com/aelurum/AssetStudio/issues/1
This commit is contained in:
VaDiM
2023-03-07 17:58:16 +03:00
parent fb574064c9
commit 7674081df7
3 changed files with 129 additions and 13 deletions

View File

@ -1300,6 +1300,14 @@ namespace AssetStudioGUI
FMODreset();
}
private void tabControl2_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl2.SelectedIndex == 1 && lastSelectedItem != null)
{
dumpTextBox.Text = DumpAsset(lastSelectedItem.Asset);
}
}
private void assetListView_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right && assetListView.SelectedIndices.Count > 0)
@ -1701,6 +1709,65 @@ namespace AssetStudioGUI
}
}
private void toolStripMenuItem15_Click(object sender, EventArgs e)
{
logger.ShowErrorMessage = toolStripMenuItem15.Checked;
}
private void sceneTreeView_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right && sceneTreeView.Nodes.Count > 0)
{
contextMenuStrip2.Show(sceneTreeView, e.Location.X, e.Location.Y);
}
}
private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)
{
sceneTreeView.BeginUpdate();
foreach (TreeNode node in sceneTreeView.Nodes)
{
node.Checked = true;
}
sceneTreeView.EndUpdate();
}
private void selectNoneToolStripMenuItem_Click(object sender, EventArgs e)
{
sceneTreeView.BeginUpdate();
foreach (TreeNode node in sceneTreeView.Nodes)
{
node.Checked = false;
}
sceneTreeView.EndUpdate();
}
private void expandAllToolStripMenuItem_Click(object sender, EventArgs e)
{
if (sceneTreeView.Nodes.Count > 500)
{
MessageBox.Show("Too many elements.");
return;
}
sceneTreeView.BeginUpdate();
foreach (TreeNode node in sceneTreeView.Nodes)
{
node.ExpandAll();
}
sceneTreeView.EndUpdate();
}
private void collapseAllToolStripMenuItem_Click(object sender, EventArgs e)
{
sceneTreeView.BeginUpdate();
foreach (TreeNode node in sceneTreeView.Nodes)
{
node.Collapse(ignoreChildren: false);
}
sceneTreeView.EndUpdate();
}
#region FMOD
private void FMODinit()
{
@ -2134,19 +2201,6 @@ namespace AssetStudioGUI
glControl1.SwapBuffers();
}
private void tabControl2_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl2.SelectedIndex == 1 && lastSelectedItem != null)
{
dumpTextBox.Text = DumpAsset(lastSelectedItem.Asset);
}
}
private void toolStripMenuItem15_Click(object sender, EventArgs e)
{
logger.ShowErrorMessage = toolStripMenuItem15.Checked;
}
private void glControl1_MouseWheel(object sender, MouseEventArgs e)
{
if (glControl1.Visible)