diff --git a/Controllers/NodeTreeController.cs b/Controllers/NodeTreeController.cs index 3179027..66c0fca 100644 --- a/Controllers/NodeTreeController.cs +++ b/Controllers/NodeTreeController.cs @@ -183,10 +183,13 @@ namespace NBTExplorer.Controllers public void CreateNode (TagType type) { - if (_nodeTree.SelectedNode == null) + if (_nodeTree.Nodes == null || _nodeTree.Nodes.Count == 0) return; - CreateNode(_nodeTree.SelectedNode, type); + if (_nodeTree.SelectedNode == null) + CreateNode(_nodeTree.Nodes[0], type); + else + CreateNode(_nodeTree.SelectedNode, type); } public void DeleteNode (TreeNode node) diff --git a/Controllers/RuleTreeController.cs b/Controllers/RuleTreeController.cs index eec9d81..1d80bec 100644 --- a/Controllers/RuleTreeController.cs +++ b/Controllers/RuleTreeController.cs @@ -86,6 +86,11 @@ namespace NBTExplorer.Controllers get { return _nodeTree.SelectedNode; } } + private TreeNode SelectedOrRootNode + { + get { return _nodeTree.SelectedNode ?? (_nodeTree.Nodes.Count > 0 ? _nodeTree.Nodes[0] : null); } + } + private TreeNode CreateIntegralNode (string typeName) where K : TagNode where T : IntegralTagRule, new() @@ -346,7 +351,7 @@ namespace NBTExplorer.Controllers public void CreateWildcardNode () { - CreateWildcardNode(SelectedNode); + CreateWildcardNode(SelectedOrRootNode); } public void CreateUnionNode (TreeNode node) @@ -365,7 +370,7 @@ namespace NBTExplorer.Controllers public void CreateUnionNode () { - CreateUnionNode(SelectedNode); + CreateUnionNode(SelectedOrRootNode); } public void CreateIntersectNode (TreeNode node) @@ -384,15 +389,15 @@ namespace NBTExplorer.Controllers public void CreateIntersectNode () { - CreateIntersectNode(SelectedNode); + CreateIntersectNode(SelectedOrRootNode); } public void CreateNode (TagType type) { - if (_nodeTree.SelectedNode == null) + if (SelectedOrRootNode == null) return; - CreateNode(_nodeTree.SelectedNode, type); + CreateNode(SelectedOrRootNode, type); } private TreeNode CreateNode (SearchRule rule) diff --git a/Windows/About.Designer.cs b/Windows/About.Designer.cs index cee128a..1e5152b 100644 --- a/Windows/About.Designer.cs +++ b/Windows/About.Designer.cs @@ -37,14 +37,16 @@ // this.linkLabel1.AutoSize = true; this.linkLabel1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.linkLabel1.LinkArea = new System.Windows.Forms.LinkArea(0, 0); + this.linkLabel1.LinkArea = new System.Windows.Forms.LinkArea(165, 31); this.linkLabel1.Location = new System.Drawing.Point(96, 12); this.linkLabel1.Name = "linkLabel1"; - this.linkLabel1.Size = new System.Drawing.Size(245, 120); + this.linkLabel1.Size = new System.Drawing.Size(256, 133); this.linkLabel1.TabIndex = 0; - this.linkLabel1.Text = "NBTExplorer\r\nCopyright ©2011-2012 Justin Aquadro\r\n\r\nNBTExplorer is based on NBTEd" + + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "NBTExplorer\r\nCopyright ©2011-2013 Justin Aquadro\r\n\r\nNBTExplorer is based on NBTEd" + "it by copyboy\r\nFugue icon set: p.yusukekamiyamane.com\r\n\r\nEmail: jaquadro@gmail.c" + "om\r\nNBTExplorer Github Project Page"; + this.linkLabel1.UseCompatibleTextRendering = true; this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); // // pictureBox1 diff --git a/Windows/About.cs b/Windows/About.cs index 4459efa..2b9d416 100644 --- a/Windows/About.cs +++ b/Windows/About.cs @@ -11,7 +11,7 @@ namespace NBTExplorer.Windows private void linkLabel1_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e) { - + System.Diagnostics.Process.Start("https://github.com/jaquadro/NBTExplorer"); } } } diff --git a/Windows/About.resx b/Windows/About.resx index 12983ad..9caa316 100644 --- a/Windows/About.resx +++ b/Windows/About.resx @@ -120,37 +120,47 @@ - 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 - WJFmECzBEqzQP447p8g/Ns7ZMHZ1QY8AAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wgAADsIBFShKgAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuODc7gF0AAAj7SURBVHhe7dKx + DW25DQTQjVyLC3A3Tl3IL8L92vngBIsBiCeJNzgJgSEokX/9+fPn8zf99z///N/foew2LH5MRyTKbsPi + x3REouw2LH5MRyTKbsPix3REouw2LH5MRyTKbsPix3REouw2LH5MRyTKbsPix3REouw2LH5MRyTKbsPi + x3REouw2LH5MRyTKbsPix3REouw2LH5MRyTKbsPix3REouw2LH5MRyTKbsPix3REouw2LH5MRyTKbsPi + x3REouw2LG6kA0n//tc//hb1n6RZk3KTWNxIy0g6IlH/SZo1KTeJxY20jKQjEvWfpFmTcpNY3EjLSDoi + Uf9JmjUpN4nFjbSMpCMS9Z+kWZNyk1jcSMtIOiJR/0maNSk3icWNtIykIxL1n6RZk3KTWNxIy0g6IlH/ + SZo1KTeJxY20jKQjEvWfpFmTcpNY3EjLSDoiUf9JmjUpN4nFjbSMpCMS9Z+kWZPmFPVvsLiRlpG0CFH/ + SZo1aU5R/waLG2kZSYsQ9Z+kWZPmFPVvsLiRlpG0CFH/SZo1aU5R/waLG2kZSYsQ9Z+kWZPmFPVvsLiR + lpG0CFH/SZo1aU5R/waLG2kZSYsQ9Z+kWZPmFPVvsLiRlpG0CFH/SZo1aU5R/waLG2kZSYsQ9Z+kWZPm + FPVvsDhND2+od0v9W1pYS/0bevMkFqfp4Q31bql/SwfSUv+G3jyJxWl6eEO9W+rf0oG01L+hN09icZoe + 3lDvlvq3dCAt9W/ozZNYnKaHN9S7pf4tHUhL/Rt68yQWp+nhDfVuqX9LB9JS/4bePInFaXp4Q71b6t/S + gbTUv6E3T2Jxmh7eUO+W+rd0IC31b+jNk1icpoc31Lul/i0dSEv9G3rzJBZPoE9O+kBR/4Z6T9O7G+ot + eneDxRPoc5I+RtS/od7T9O6Geove3WDxBPqcpI8R9W+o9zS9u6Heonc3WDyBPifpY0T9G+o9Te9uqLfo + 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 \ No newline at end of file diff --git a/Windows/FindReplace.Designer.cs b/Windows/FindReplace.Designer.cs index b559f73..a72224c 100644 --- a/Windows/FindReplace.Designer.cs +++ b/Windows/FindReplace.Designer.cs @@ -49,6 +49,7 @@ this._tbFindDouble = new System.Windows.Forms.ToolStripButton(); this._tbFindString = new System.Windows.Forms.ToolStripButton(); this.groupBox2 = new System.Windows.Forms.GroupBox(); + this._deleteTagsCheckbox = new System.Windows.Forms.CheckBox(); this.panel2 = new System.Windows.Forms.Panel(); this.treeView2 = new System.Windows.Forms.TreeView(); this.toolStrip2 = new System.Windows.Forms.ToolStrip(); @@ -70,37 +71,40 @@ this._buttonReplace = new System.Windows.Forms.Button(); this._buttonReplaceAll = new System.Windows.Forms.Button(); this._buttonCancel = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); this._explorerStrip = new System.Windows.Forms.ToolStrip(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.groupBox1.SuspendLayout(); this.panel1.SuspendLayout(); this.toolStrip1.SuspendLayout(); this.groupBox2.SuspendLayout(); this.panel2.SuspendLayout(); this.toolStrip2.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // // groupBox1 // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox1.Controls.Add(this.panel1); - this.groupBox1.Location = new System.Drawing.Point(12, 46); + this.groupBox1.Location = new System.Drawing.Point(3, 3); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(450, 146); + this.groupBox1.Size = new System.Drawing.Size(324, 211); this.groupBox1.TabIndex = 0; this.groupBox1.TabStop = false; this.groupBox1.Text = "Find"; // // panel1 // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.panel1.Controls.Add(this.treeView1); this.panel1.Controls.Add(this.toolStrip1); this.panel1.Location = new System.Drawing.Point(6, 19); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(438, 155); + this.panel1.Size = new System.Drawing.Size(312, 186); this.panel1.TabIndex = 0; // // treeView1 @@ -114,7 +118,7 @@ this.treeView1.SelectedImageIndex = 0; this.treeView1.ShowPlusMinus = false; this.treeView1.ShowRootLines = false; - this.treeView1.Size = new System.Drawing.Size(438, 130); + this.treeView1.Size = new System.Drawing.Size(312, 161); this.treeView1.TabIndex = 1; // // imageList1 @@ -162,7 +166,7 @@ this._tbFindString}); this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.Size = new System.Drawing.Size(438, 25); + this.toolStrip1.Size = new System.Drawing.Size(312, 25); this.toolStrip1.TabIndex = 0; this.toolStrip1.Text = "toolStrip1"; // @@ -301,14 +305,26 @@ this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox2.Controls.Add(this._deleteTagsCheckbox); this.groupBox2.Controls.Add(this.panel2); - this.groupBox2.Location = new System.Drawing.Point(12, 198); + this.groupBox2.Location = new System.Drawing.Point(333, 3); this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(450, 184); + this.groupBox2.Size = new System.Drawing.Size(324, 211); this.groupBox2.TabIndex = 1; this.groupBox2.TabStop = false; this.groupBox2.Text = "Replace"; // + // _deleteTagsCheckbox + // + this._deleteTagsCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this._deleteTagsCheckbox.AutoSize = true; + this._deleteTagsCheckbox.Location = new System.Drawing.Point(6, 188); + this._deleteTagsCheckbox.Name = "_deleteTagsCheckbox"; + this._deleteTagsCheckbox.Size = new System.Drawing.Size(268, 17); + this._deleteTagsCheckbox.TabIndex = 1; + this._deleteTagsCheckbox.Text = "Delete matched tags before applying replacements."; + this._deleteTagsCheckbox.UseVisualStyleBackColor = true; + // // panel2 // this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -318,7 +334,7 @@ this.panel2.Controls.Add(this.toolStrip2); this.panel2.Location = new System.Drawing.Point(6, 19); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(438, 159); + this.panel2.Size = new System.Drawing.Size(312, 163); this.panel2.TabIndex = 0; // // treeView2 @@ -332,7 +348,7 @@ this.treeView2.SelectedImageIndex = 0; this.treeView2.ShowPlusMinus = false; this.treeView2.ShowRootLines = false; - this.treeView2.Size = new System.Drawing.Size(438, 134); + this.treeView2.Size = new System.Drawing.Size(312, 138); this.treeView2.TabIndex = 1; // // toolStrip2 @@ -355,7 +371,7 @@ this._tbReplaceCompound}); this.toolStrip2.Location = new System.Drawing.Point(0, 0); this.toolStrip2.Name = "toolStrip2"; - this.toolStrip2.Size = new System.Drawing.Size(438, 25); + this.toolStrip2.Size = new System.Drawing.Size(312, 25); this.toolStrip2.TabIndex = 0; this.toolStrip2.Text = "toolStrip2"; // @@ -497,7 +513,7 @@ // _buttonFind // this._buttonFind.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this._buttonFind.Location = new System.Drawing.Point(306, 388); + this._buttonFind.Location = new System.Drawing.Point(516, 251); this._buttonFind.Name = "_buttonFind"; this._buttonFind.Size = new System.Drawing.Size(75, 23); this._buttonFind.TabIndex = 2; @@ -508,7 +524,7 @@ // _buttonReplace // this._buttonReplace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this._buttonReplace.Location = new System.Drawing.Point(387, 388); + this._buttonReplace.Location = new System.Drawing.Point(597, 251); this._buttonReplace.Name = "_buttonReplace"; this._buttonReplace.Size = new System.Drawing.Size(75, 23); this._buttonReplace.TabIndex = 3; @@ -519,7 +535,7 @@ // _buttonReplaceAll // this._buttonReplaceAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this._buttonReplaceAll.Location = new System.Drawing.Point(387, 417); + this._buttonReplaceAll.Location = new System.Drawing.Point(597, 280); this._buttonReplaceAll.Name = "_buttonReplaceAll"; this._buttonReplaceAll.Size = new System.Drawing.Size(75, 23); this._buttonReplaceAll.TabIndex = 4; @@ -530,7 +546,7 @@ // _buttonCancel // this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this._buttonCancel.Location = new System.Drawing.Point(12, 388); + this._buttonCancel.Location = new System.Drawing.Point(12, 251); this._buttonCancel.Name = "_buttonCancel"; this._buttonCancel.Size = new System.Drawing.Size(75, 23); this._buttonCancel.TabIndex = 5; @@ -538,35 +554,45 @@ this._buttonCancel.UseVisualStyleBackColor = true; this._buttonCancel.Click += new System.EventHandler(this._buttonCancel_Click); // - // label1 - // - this.label1.Location = new System.Drawing.Point(12, 420); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(358, 18); - this.label1.TabIndex = 6; - this.label1.Text = "Search Root: blahblahbnl/blf"; - // // _explorerStrip // this._explorerStrip.Location = new System.Drawing.Point(0, 0); this._explorerStrip.Name = "_explorerStrip"; - this._explorerStrip.Size = new System.Drawing.Size(474, 25); + this._explorerStrip.Size = new System.Drawing.Size(684, 25); this._explorerStrip.TabIndex = 7; this._explorerStrip.Text = "toolStrip3"; // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.groupBox1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.groupBox2, 1, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 28); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(660, 217); + this.tableLayoutPanel1.TabIndex = 8; + // // FindReplace // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(474, 451); + this.ClientSize = new System.Drawing.Size(684, 314); + this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this._explorerStrip); - this.Controls.Add(this.label1); this.Controls.Add(this._buttonCancel); this.Controls.Add(this._buttonReplaceAll); this.Controls.Add(this._buttonReplace); this.Controls.Add(this._buttonFind); - this.Controls.Add(this.groupBox2); - this.Controls.Add(this.groupBox1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; this.Name = "FindReplace"; this.Text = "Find and Replace"; this.groupBox1.ResumeLayout(false); @@ -575,10 +601,12 @@ this.toolStrip1.ResumeLayout(false); this.toolStrip1.PerformLayout(); this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); this.panel2.ResumeLayout(false); this.panel2.PerformLayout(); this.toolStrip2.ResumeLayout(false); this.toolStrip2.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -627,7 +655,8 @@ private System.Windows.Forms.ToolStripButton _tbFindGroupOr; private System.Windows.Forms.ToolStripButton _tbFindEdit; private System.Windows.Forms.ToolStripButton _tbReplaceEdit; - private System.Windows.Forms.Label label1; private System.Windows.Forms.ToolStrip _explorerStrip; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.CheckBox _deleteTagsCheckbox; } } diff --git a/Windows/FindReplace.cs b/Windows/FindReplace.cs index be1ab70..cafa325 100644 --- a/Windows/FindReplace.cs +++ b/Windows/FindReplace.cs @@ -33,10 +33,17 @@ namespace NBTExplorer.Windows _mainSearchRoot = searchRoot; _findController = new RuleTreeController(treeView1); + treeView1.NodeMouseDoubleClick += (s, e) => { + _findController.EditSelection(); + }; //_findController.VirtualRootDisplay = "Find Rules"; _replaceController = new NodeTreeController(treeView2); + treeView2.NodeMouseDoubleClick += (s, e) => { + _replaceController.EditSelection(); + }; + _replaceController.VirtualRootDisplay = "Replacement Tags"; _explorerStrip.Renderer = new ToolStripExplorerRenderer(); @@ -228,8 +235,6 @@ namespace NBTExplorer.Windows worker.Cancel(); _searchState = null; } - - t.Join(); } private void SearchNextNodeContinuous () @@ -248,8 +253,6 @@ namespace NBTExplorer.Windows worker.Cancel(); _searchState = null; } - - //t.Join(); } private void RunContinuousReplace () @@ -260,8 +263,6 @@ namespace NBTExplorer.Windows Invoke((Action)(() => { Reset(); })); - - //while (worker.Continue()) ; } private delegate void Action (); @@ -328,8 +329,13 @@ namespace NBTExplorer.Windows List matches = new List(); _findController.Root.Matches(node, matches); + List replaceNames = new List(); + foreach (DataNode rnode in _replaceController.Root.Nodes) + replaceNames.Add(rnode.NodeName); + foreach (var replNode in matches) { - replNode.DeleteNode(); + if (_deleteTagsCheckbox.Checked || replaceNames.Contains(replNode.NodeName)) + replNode.DeleteNode(); } foreach (TagDataNode tag in _replaceController.Root.Nodes) { diff --git a/Windows/FindReplace.resx b/Windows/FindReplace.resx index 60312b4..a33ff5b 100644 --- a/Windows/FindReplace.resx +++ b/Windows/FindReplace.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + 235, 17 @@ -125,7 +128,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABA - QgAAAk1TRnQBSQFMAgEBFAEAAagBAQGoAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA + QgAAAk1TRnQBSQFMAgEBFAEAAcABAQHAAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABYAMAAQEBAAEYBgABSP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AOEAA/8D/AP6GPgD+QP6A/wMAAP9 A/oS+AP5A/0D/2kAA/4D+QPxAboBogGKAbYBhgFWAbYBhgFWAbYBhgFWAbYBhgFWAbYBhgFWAbYBhgFW AbYBhgFWAbYBhgFWAbwBpAGNA/cMAAP8A/YD8wG8AcoBzQFVAZUBowFVAZUBowHQAdcB2QPzA/UD+wP/ @@ -443,48 +446,48 @@ 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 - AdqiqapqVOQNAAAAAElFTkSuQmCC + jVhp0Vq/GO1B4CBi6UgZK6dWzo0e1BimzsxdqISkbtecbXNpsViclnO2svPEu3OeQ9tDH3VvM6K/oL7w + 4t68P+/XoyP+n3fNKMq6DaLj+qDInB3gavh2G8ou8HcnOrBtaL/ehTuMolPLClprSXgaKH/zvfmRv+8S + 6Uv6XBIgo8MNG2zh1GV5z5Ls9E1aMJOlLBneyLgjlbRzurLcZc767aFqCiCjww0bbOHAJVo75x0qQ0Zw + z1TSz8PVFBmprPRZ2VmDm4+jA8jocMMGHRy4REtbgBkm+VXn6+on4I5sfOkwrARtr8r0o5dizEiWZiye + 4sI5/XJgyLM2q3cVp0zuUnhwnE3AJZrlvtp4aP2rbbJMAxdVSZ/SJvzDXjGqs/MBMOQV59FZPH+6B6QQ + g0vsPu5jTE42M+pf/2jxirGHpBhV3v08aSSL0T4bFwTI9W5ibe531/uYWYRL7D055bisS/LmF6W3aisX + 6ncI0zdGViO3nmTntPYCBZDR4aYZ44LozqsTObjEPkVcdkC5WOyxsLTGWqB6x/JBvZNfaO9PUvecfBwg + o8NNYytQ2O5vjwlw67+y5cQzxaErmeJFHcveHi18ME1w71Uj35eOqVIZgIxOLd2wwRZOXZbeZokdTXuU + 8oPKd74jXSx79AxXO3w1n2vtoL0AGR1u2GALp+ESmyS2NIpdEs0STRLbJLY22C6xUwI3bLCFA/efPoL4 + CcCwqZ4FAx1nAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIHSURBVDhPY6AZ2LWY2XnXYsa9ILxzMVM8VBg/2DKfQQLK - ZNg2j3Hf+9f939/c6/izbQHjLqgwihoUsHEOU8KmuYz7Ns1lXr5xNrMHiP373cz/T69k/kWIMS8HiYPU + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIGSURBVDhPY6AZ2LWY2XnXYsa9ILxzMVM8VBg/2DKfQQLK + ZNg2j3Hf+9f931/ebv2zbQHjLqgwihoUsHEOU8KmuYz7Ns1lXr5xNrMHiP373cz/jy6m/UWIMS8HiYPU QrUhwIaZjPu/v5r8//3D9u8HN+ieB/G/vej///JE9I91MxlXH1yjc/7t+YbvX551/QfJQbUhwOrJTAfu - nwj/8fRK4v9Xt4r/71+lceH9w+b/t08GftoHZL+8WQB0TeJ/kBqQWqg2BFg+kcFqeT/jyj0rlG+e3Gbx - 4tGl1P8gfOd08P+HF5P/g8RAciA1ILVQbZhgYRezy4JupkOHN1l9uHbU4z8Ig9ggMZAcVBkmmN3KYD2n - jXH1jpVGN09utn955bDLfxC+ccIfTB/bbP1yxxKtmyA1ILVQbQgwtZ7pyF1ggN066f3/+jGX/0snCV8+ - ucX0871zYWA2SOzGCY//J476/ACphWpDgL4KpqN3Trv8P3HI7MeibqEr/ZWMG04cNvtx/3zgf5AcSAwk - B1ID4kO1IUB7AUNKSw7jiZZcxvVAtjeIvrDf/u/TKz7/QeIwMSg7BaoNFVgZMkhBmQyVyYzHrh6x/3t3 - v/3PyiTGU1BhFDXYAC8QKwKxup89Q0VdJscFELY3YUgEiQGxMhALADEjEGMFHEAsBsQgW7BhcSDmAmKc - BpAIGBgAf2IcXUMiPSkAAAAASUVORK5CYII= + nwj/8fRK4v9Xt4r/71+lceH9w+b/t08GftoHZL+8WfAfJAdSA1IL1YYAyycyWC3vZ1y5Z4XyzZPbLF48 + upT6H4TvnA7+//Bi8n+QGEgOpAakFqoNEyzsYnZZ0M106PAmqw/Xjnr8B2EQGyQGkoMqwwSzWxms57Qx + rt6x0ujmyc32L68cdvkPwjdO+IPpY5utX+5YonUTpAakFqoNAabWMx25CwywWye9/18/5vJ/6SThyye3 + mH6+dy4MzAaJ3Tjh8f/EUZ8fILVQbQjQV8F09M5pl/8nDpn9WNQtdKW/knHDicNmP+6fD/wPkgOJgeRA + akB8qDYEaC9gSGnJYTzRksu4Hsj2BtFn99v/fXrF5z9IHCYGZadAtaECK0MGKSiToTKZ8dilg/Z/7+63 + /1mZxHgKKoyiBhvgBWJFIFb3s2eoqMvkuADC9iYMiSAxIFYGYgEgZgRirIADiMWAGGQLNiwOxFxAjNMA + EgEDAwA7NBxCd851BwAAAABJRU5ErkJggg== @@ -583,6 +586,9 @@ 122, 17 + + 122, 17 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -733,16 +739,313 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFzSURBVDhPrdFPRINxHMfx7+M3OnaMDl06dU7XKUYlpUMl - k/5RRjqkGE22dailSKyU0Q6tjU0ztjFbWbLoz3To1mG2qChZKaJDfu0zv+fneW7P1MPbw+/3eT2Xh/7l - yTrJlJ002U4n2Lqa00x5bdo7bGEEJzoZrWu+crQcvh2v8XLGU81na9OlnmODLYzgROlx1nnn7clpPxBa - 6JAF5sy6D2ALIzhRasw0WwzOlJ7iLq6WcPfJoo4ueY6whRGcKDnCtsvXoR9eCHO1Qtguy+9Ny3OELYzg - RHEr2/2+9fPPi21ZxjMoi7t6dXfYwghOFLMy39eNj7/ntmSAYbul+g7Ot+vusIURnCgyzPwflzv8Nbsh - A9a+tWELIzhRaIgdlM82+XN61VDYwghOFBhQgi+VX/SYXDYUtjCCE/n7lchDws3vY0uGwhZGcCJvt5Iq - RR28eLRoKGxhBKemqVZlf8WinNcSDCw+UF+poVJjjcHA/uUh+gUO+918FI/WkQAAAABJRU5ErkJggg== + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFzSURBVDhPrdE/SAJhHMbx33FCY2PQ0NLUHK1SIFRE0VAR + Ev2DQoiGKBCSUBvKKIhAoxByyE5QEkEF0cIIAwtpaGsQDSroDxYFQUO8+ch7L3fbSR18OXjf53PL0b88 + WSeZstMm29mUvKnmNFNBm/YOWxjOiU7HG1qvHG1HbycbrJLx1PLbOnSp59hgC8M5UXpS7r719uW0Hwgt + dYmCC2bdB7CF4ZwoNWGaLylz5ce4i6kl3AOiqKNHnCNsYTgnSo7Jvpd86IcVw0ytGLaLCvuz4hxhC8M5 + Udwq733fBNhn3ifKeIZFcVe/7g5bGM6JYlbZ/3XtZ++5HRFg2G6pvZXFTt0dtjCcE0VG5cDH5S57zW6J + gLVvbdjCcE4UGpEPK+fb7Cm9bihsYTgnCg5JynP1Fz0kVw2FLQznRIFBKXKfcLO72IqhsIXhnMjbK6XK + UQcrHS8bClsYzqllpl06WLNIF/UEA4sPNFZrqtZcZzCwf3mIfgHu4t1w+i+rTAAAAABJRU5ErkJggg== 345, 17 + + + AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA + IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAABjRbAAY0WwsGNFvIBTNa/wo5Yf8jXo3/KGSU/yZhkf8NPmf/BTNa/wY0W+AGNFscBjRbAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAABTNaAAUzWgsFM1rIBDJZ/wk4YP8iXYz/KGSU/yZhkf8NPmf/BTNa/wY0 + W+AGNFscBjRbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzVdAAc1XQsHNV3IBjRc/ws6Yv8jXo3/KGSU/yZh + kf8NPmf/BTNa/wY0W+AGNFscBjRbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFiGACBYhgsgWIbIH1iG/yFa + iP8mYpL/KGSU/yZhkf8NPmf/BTNa/wY0W+AGNFscBjRbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGSUAChk + lAsoZJTIKGSU/yhklP8oZJT/KGSU/yZhkf8NPmf/BTNa/wY0W+AGNFscBjRbAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAKGSUAChklAsoZJTIKGSU/yhklP8oZJT/KGSU/yZhkf8NPmf/BTNa/wY0W+AGNFscBjRbAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAKGSUAChklAsoZJTIKGSU/yhklP8oZJT/KGSU/yZhkf8NPmf/BTNa/wY0 + W+AGNFscBjRbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChk + lAAoZJQAKGSUAChklAAoZJQAKGSUAAAAAAAAAAAAKGSUAChklAsoZJTIKGSU/yhklP8oZJT/KGSU/yZh + kf8NPmf/BTNa/wY0W+AGNFscBjRbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAChklAAoZJQGKGSUCihklAkoZJQCKGSUAAAAAAAAAAAAJmKRACZikQsmYpHIJmKR/yZi + kv8nY5P/KGSU/yZhkf8NPmf/BTNa/wY0W+AGNFscBjRbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + lAAoZJQAKGSUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAKGSUAChklAgoZJSuKGSU4CNejeAjXo30I16N/yRejf8nYpL/KGSU/yNe + jf8KOWH/BTNa/wY0W/QGNFtOBjRbHgY0WxoGNFsDBjRbAAY0WwoGNFuxBjRb4AY0W8QGNFsYBjRbAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGSUAChklAEoZJQXKGSUHgo5YR4KOWGxCThg/wo7 + Y/8gWoj/KGSU/yNejf8KOWH/BTNa/wY0W/0GNFvmBjRb4AY0W8UGNFsYBjRbAAY0WwEGNFsYBjRbHgY0 + WxoGNFsDBjRbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEURuABFEbgARRG4AEURuAAUz + WgAFM1mkBDFY/wY0W/8gWYf/KGWV/yNejf8JOGD/BDJZ/wUzWv8FM1r/BjRb/wY0W+EGNFsYBjRbAAY0 + WwAGNFsABjRbAAY0WwAGNFsABjRbAAY0WwAGNFsABjRbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjRbAAY0 + WwIGNFsqBjRbNgY0WzYKOmK5DD1m/w0/aP8bU4D/IFqI/x1Wg/8PQGr/DD1m/ww9Zv8HNl3/BTNa/wY0 + W+YGNFtMBjRbNgY0WzMGNFsLBjRbAAY0WwYGNFswBjRbNgY0WyoGNFsCBjRbAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAABjRbAAY0WwkGNFu9BjRb9AY0W/QbUX77JmKS/yRfjv8NP2j/BjRb/ws6Yv8hXIv/JmGR/yRf + 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 + AAAAAAAAAAAAAAAAAAAAAAAAKGSUAChklBMoZJSRKGSUpChklH4oZJQGKGSUAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGSUAChklAAoZJQAKGSUACdjkx4nY5PgJ2OT/ydj + k/MnY5M2J2OTAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGSUAChklAAoZJQAKGSUAChklAAoZJQAKGSUAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGSUAChk + lB4oZJTgKGSU/yhklPMoZJQ2KGSUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAKGSUAChklB4oZJTgKGSU/yhklPMoZJQ2KGSUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAKGSUAChklB4oZJTgKGSU/yhklPMoZJQ2KGSUAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AADmBwAA/nMAAP53AAD/fwAA/38AAA== + + \ No newline at end of file diff --git a/Windows/SearchStateWin.cs b/Windows/SearchStateWin.cs index f723e4b..02dbd12 100644 --- a/Windows/SearchStateWin.cs +++ b/Windows/SearchStateWin.cs @@ -23,25 +23,25 @@ namespace NBTExplorer.Windows public override void InvokeDiscoverCallback (DataNode node) { if (_sender != null && DiscoverCallback != null) - _sender.BeginInvoke(DiscoverCallback, new object[] { node }); + _sender.Invoke(DiscoverCallback, new object[] { node }); } public override void InvokeProgressCallback (DataNode node) { if (_sender != null && ProgressCallback != null) - _sender.BeginInvoke(ProgressCallback, new object[] { node }); + _sender.Invoke(ProgressCallback, new object[] { node }); } public override void InvokeCollapseCallback (DataNode node) { if (_sender != null && CollapseCallback != null) - _sender.BeginInvoke(CollapseCallback, new object[] { node }); + _sender.Invoke(CollapseCallback, new object[] { node }); } public override void InvokeEndCallback (DataNode node) { if (_sender != null && EndCallback != null) - _sender.BeginInvoke(EndCallback, new object[] { node }); + _sender.Invoke(EndCallback, new object[] { node }); } } } diff --git a/dead_bush.ico b/dead_bush.ico index 64aa5a0..c175b53 100644 Binary files a/dead_bush.ico and b/dead_bush.ico differ