From 17c30078e2504cca2cb73624f44d128358434072 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 21 Apr 2016 18:07:58 +0200 Subject: [PATCH] Add expand and collapse all functions to event browser menu. Refs #254 --- .../Controls/TreeListView/TreeListNode.cs | 9 +++++++ renderdocui/Windows/EventBrowser.Designer.cs | 27 +++++++++++++++++-- renderdocui/Windows/EventBrowser.cs | 17 ++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/renderdocui/Controls/TreeListView/TreeListNode.cs b/renderdocui/Controls/TreeListView/TreeListNode.cs index f9cf1bde5..f40009c72 100644 --- a/renderdocui/Controls/TreeListView/TreeListNode.cs +++ b/renderdocui/Controls/TreeListView/TreeListNode.cs @@ -118,6 +118,15 @@ namespace TreelistView { Expanded = false; } + public void CollapseAll() + { + Expanded = false; + if (HasChildren) + { + foreach (Node node in Nodes) + node.CollapseAll(); + } + } public void Expand() { Expanded = true; diff --git a/renderdocui/Windows/EventBrowser.Designer.cs b/renderdocui/Windows/EventBrowser.Designer.cs index ff58a37f0..8197eb4a4 100644 --- a/renderdocui/Windows/EventBrowser.Designer.cs +++ b/renderdocui/Windows/EventBrowser.Designer.cs @@ -41,6 +41,8 @@ this.eventView = new TreelistView.TreeListView(); this.eventViewRightClick = new System.Windows.Forms.ContextMenuStrip(this.components); this.selectVisibleColumnsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.expandAll = new System.Windows.Forms.ToolStripMenuItem(); + this.collapseAll = new System.Windows.Forms.ToolStripMenuItem(); this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.findEventButton = new System.Windows.Forms.ToolStripButton(); @@ -152,18 +154,37 @@ // eventViewRightClick // this.eventViewRightClick.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.expandAll, + this.collapseAll, this.selectVisibleColumnsToolStripMenuItem}); this.eventViewRightClick.Name = "contextMenuStrip1"; - this.eventViewRightClick.Size = new System.Drawing.Size(179, 26); + this.eventViewRightClick.Size = new System.Drawing.Size(179, 92); + this.eventViewRightClick.Opening += new System.ComponentModel.CancelEventHandler(this.eventViewRightClick_Opening); // // selectVisibleColumnsToolStripMenuItem // this.selectVisibleColumnsToolStripMenuItem.Image = global::renderdocui.Properties.Resources.timeline_marker; this.selectVisibleColumnsToolStripMenuItem.Name = "selectVisibleColumnsToolStripMenuItem"; this.selectVisibleColumnsToolStripMenuItem.Size = new System.Drawing.Size(178, 22); - this.selectVisibleColumnsToolStripMenuItem.Text = "Select Visible Columns"; + this.selectVisibleColumnsToolStripMenuItem.Text = "Select &Visible Columns"; this.selectVisibleColumnsToolStripMenuItem.Click += new System.EventHandler(this.selectVisibleColumnsToolStripMenuItem_Click); // + // expandAll + // + this.expandAll.Image = global::renderdocui.Properties.Resources.fit_window; + this.expandAll.Name = "expandAll"; + this.expandAll.Size = new System.Drawing.Size(178, 22); + this.expandAll.Text = "&Expand All"; + this.expandAll.Click += new System.EventHandler(this.expandAll_Click); + // + // collapseAll + // + this.collapseAll.Image = global::renderdocui.Properties.Resources.arrow_in; + this.collapseAll.Name = "collapseAll"; + this.collapseAll.Size = new System.Drawing.Size(178, 22); + this.collapseAll.Text = "&Collapse All"; + this.collapseAll.Click += new System.EventHandler(this.collapseAll_Click); + // // toolStrip1 // this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None; @@ -406,6 +427,8 @@ private System.Windows.Forms.ToolStrip bookmarkStrip; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripButton toggleBookmark; + private System.Windows.Forms.ToolStripMenuItem expandAll; + private System.Windows.Forms.ToolStripMenuItem collapseAll; } } \ No newline at end of file diff --git a/renderdocui/Windows/EventBrowser.cs b/renderdocui/Windows/EventBrowser.cs index 306baca9e..e04293262 100644 --- a/renderdocui/Windows/EventBrowser.cs +++ b/renderdocui/Windows/EventBrowser.cs @@ -1006,6 +1006,23 @@ namespace renderdocui.Windows SelectColumns(); } + private void eventViewRightClick_Opening(object sender, CancelEventArgs e) + { + collapseAll.Enabled = expandAll.Enabled = (eventView.SelectedNode != null && eventView.SelectedNode.HasChildren); + } + + private void expandAll_Click(object sender, EventArgs e) + { + if(eventView.SelectedNode != null) + eventView.SelectedNode.ExpandAll(); + } + + private void collapseAll_Click(object sender, EventArgs e) + { + if (eventView.SelectedNode != null) + eventView.SelectedNode.CollapseAll(); + } + private void EventBrowser_FormClosed(object sender, FormClosedEventArgs e) { m_Core.RemoveLogViewer(this);