diff --git a/CHANGELOG.md b/CHANGELOG.md index 14cbcfd..2ff47aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,13 @@ This project has many features that were implemented in a [standalone app](https - Sometimes recursive queries may cause an infinite loop, or something else that leads to Notepad++ crashing. Recursive queries are almost always fine, and I only saw this bug once. Not sure why yet. - The tree view doesn't automatically reset when the user does an undo or redo action. You have to close and reopen the treeview for the changes to be reflected. This is annoying, but I can't seem to get my [Main.OnNotification](/JsonToolsNppPlugin/Main.cs) method to respond to undo and redo actions. - Improve how well the caret tracks the node selected in the query tree, after a query that selects a subset of nodes. The iterables have their line number set to 0. +- Get rid of __ALL__ dinging sounds from the forms, including the `TreeView` control in the TreeViewer. + +## [3.6.1] (unreleased) - 2022-MM-DD + +### Fixed + +1. Annoying dinging sounds when pressing `Enter`, `Tab`, or `Escape` with the forms. Dinging sounds seem impossible to remove from the `TreeView` control (see #11), but I will keep trying. ## [3.6.0] - 2022-09-25 diff --git a/JsonToolsNppPlugin/Forms/GrepperForm.cs b/JsonToolsNppPlugin/Forms/GrepperForm.cs index 2dfec99..8db8573 100644 --- a/JsonToolsNppPlugin/Forms/GrepperForm.cs +++ b/JsonToolsNppPlugin/Forms/GrepperForm.cs @@ -1,11 +1,6 @@ using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; using System.IO; -using System.Linq; -using System.Text; using System.Windows.Forms; using JSON_Tools.JSON_Tools; using JSON_Tools.Utils; diff --git a/JsonToolsNppPlugin/Forms/JsonToCsvForm.Designer.cs b/JsonToolsNppPlugin/Forms/JsonToCsvForm.Designer.cs index bbf59b2..8bd5351 100644 --- a/JsonToolsNppPlugin/Forms/JsonToCsvForm.Designer.cs +++ b/JsonToolsNppPlugin/Forms/JsonToCsvForm.Designer.cs @@ -39,6 +39,7 @@ private void InitializeComponent() this.DelimBoxLabel = new System.Windows.Forms.Label(); this.GenerateCSVButton = new System.Windows.Forms.Button(); this.DocsButton = new System.Windows.Forms.Button(); + this.AcceptCancelButton = new System.Windows.Forms.Button(); this.SuspendLayout(); // // KeySepBox @@ -157,11 +158,26 @@ private void InitializeComponent() this.DocsButton.Click += new System.EventHandler(this.DocsButton_Click); this.DocsButton.KeyUp += new System.Windows.Forms.KeyEventHandler(this.JsonToCsvForm_KeyUp); // + // AcceptCancelButton + // + this.AcceptCancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.AcceptCancelButton.Location = new System.Drawing.Point(231, 150); + this.AcceptCancelButton.Name = "AcceptCancelButton"; + this.AcceptCancelButton.Size = new System.Drawing.Size(112, 23); + this.AcceptCancelButton.TabIndex = 10; + this.AcceptCancelButton.TabStop = false; + this.AcceptCancelButton.Text = "AcceptCancelButton"; + this.AcceptCancelButton.UseVisualStyleBackColor = true; + this.AcceptCancelButton.Visible = false; + // // JsonToCsvForm // + this.AcceptButton = this.AcceptCancelButton; this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.AcceptCancelButton; this.ClientSize = new System.Drawing.Size(355, 278); + this.Controls.Add(this.AcceptCancelButton); this.Controls.Add(this.DocsButton); this.Controls.Add(this.GenerateCSVButton); this.Controls.Add(this.DelimBoxLabel); @@ -193,5 +209,6 @@ private void InitializeComponent() private System.Windows.Forms.Label DelimBoxLabel; private System.Windows.Forms.Button GenerateCSVButton; private System.Windows.Forms.Button DocsButton; + private System.Windows.Forms.Button AcceptCancelButton; } } \ No newline at end of file diff --git a/JsonToolsNppPlugin/Forms/TreeViewer.Designer.cs b/JsonToolsNppPlugin/Forms/TreeViewer.Designer.cs index d7b3492..7120330 100644 --- a/JsonToolsNppPlugin/Forms/TreeViewer.Designer.cs +++ b/JsonToolsNppPlugin/Forms/TreeViewer.Designer.cs @@ -51,6 +51,8 @@ private void InitializeComponent() this.CurrentPathBox = new System.Windows.Forms.TextBox(); this.CurrentPathButton = new System.Windows.Forms.Button(); this.RefreshButton = new System.Windows.Forms.Button(); + this.TheAcceptButton = new System.Windows.Forms.Button(); + this.TheCancelButton = new System.Windows.Forms.Button(); this.NodeRightClickMenu.SuspendLayout(); this.SuspendLayout(); // @@ -259,11 +261,37 @@ private void InitializeComponent() this.RefreshButton.Click += new System.EventHandler(this.RefreshButton_Click); this.RefreshButton.KeyUp += new System.Windows.Forms.KeyEventHandler(this.TreeViewer_KeyUp); // + // TheAcceptButton + // + this.TheAcceptButton.Location = new System.Drawing.Point(325, 435); + this.TheAcceptButton.Name = "TheAcceptButton"; + this.TheAcceptButton.Size = new System.Drawing.Size(75, 23); + this.TheAcceptButton.TabIndex = 9; + this.TheAcceptButton.TabStop = false; + this.TheAcceptButton.Text = "Accept"; + this.TheAcceptButton.UseVisualStyleBackColor = true; + this.TheAcceptButton.Visible = false; + // + // TheCancelButton + // + this.TheCancelButton.Location = new System.Drawing.Point(244, 435); + this.TheCancelButton.Name = "TheCancelButton"; + this.TheCancelButton.Size = new System.Drawing.Size(75, 23); + this.TheCancelButton.TabIndex = 10; + this.TheCancelButton.TabStop = false; + this.TheCancelButton.Text = "Cancel"; + this.TheCancelButton.UseVisualStyleBackColor = true; + this.TheCancelButton.Visible = false; + // // TreeViewer // + this.AcceptButton = this.TheAcceptButton; this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.TheCancelButton; this.ClientSize = new System.Drawing.Size(412, 461); + this.Controls.Add(this.TheCancelButton); + this.Controls.Add(this.TheAcceptButton); this.Controls.Add(this.RefreshButton); this.Controls.Add(this.CurrentPathButton); this.Controls.Add(this.CurrentPathBox); @@ -276,7 +304,6 @@ private void InitializeComponent() this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "TreeViewer"; this.Text = "TreeViewer"; - this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.TreeViewer_KeyUp); this.NodeRightClickMenu.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -306,5 +333,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem ToggleSubtreesItem; private System.Windows.Forms.Button RefreshButton; internal System.Windows.Forms.TextBox QueryBox; + private System.Windows.Forms.Button TheAcceptButton; + private System.Windows.Forms.Button TheCancelButton; } } \ No newline at end of file diff --git a/JsonToolsNppPlugin/Forms/TreeViewer.cs b/JsonToolsNppPlugin/Forms/TreeViewer.cs index 411ea0b..4daa355 100644 --- a/JsonToolsNppPlugin/Forms/TreeViewer.cs +++ b/JsonToolsNppPlugin/Forms/TreeViewer.cs @@ -1,15 +1,8 @@ using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; using System.Windows.Forms; using JSON_Tools.JSON_Tools; using JSON_Tools.Utils; -using Kbg.NppPluginNET.PluginInfrastructure; using Kbg.NppPluginNET; namespace JSON_Tools.Forms @@ -77,12 +70,34 @@ public TreeViewer(JNode json) // activate the query box so user can start typing immediately } + /// + /// this is a method that will hopefully stop the dinging from the TreeView.

+ /// See https://stackoverflow.com/questions/10328103/c-sharp-winforms-how-to-stop-ding-sound-in-treeview

+ /// e.SuppressKeyPress works for most controls but the TreeView is special + ///
+ /// + /// + /// + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) + { + if (keyData == Keys.Enter || keyData == Keys.Escape || keyData == Keys.Tab) + return true; + return base.ProcessCmdKey(ref msg, keyData); + } + + //private void TreeViewer_KeyUp(object sender, KeyEventArgs e) + //{ + // try some weirdness to avoid bell sound from TreeViewer

+ // see https://stackoverflow.com/questions/10328103/c-sharp-winforms-how-to-stop-ding-sound-in-treeview + // BeginInvoke(new Action(() => TreeViewer_KeyUp_Handler(sender, e))); + //} + // largely copied from NppManagedPluginDemo.cs in the original plugin pack private void TreeViewer_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { - e.Handled = true; + e.SuppressKeyPress = true; // Ctrl+Enter in query box -> submit query if (e.Control && QueryBox.Focused) SubmitQueryButton.PerformClick(); @@ -106,6 +121,7 @@ private void TreeViewer_KeyUp(object sender, KeyEventArgs e) else if (e.KeyData == Keys.Escape) { Npp.editor.GrabFocus(); + e.SuppressKeyPress = true; } // Tab -> go through controls, Shift+Tab -> go through controls backward else if (e.KeyCode == Keys.Tab) @@ -113,7 +129,7 @@ private void TreeViewer_KeyUp(object sender, KeyEventArgs e) Control next = GetNextControl((Control)sender, !e.Shift); while ((next == null) || (!next.TabStop)) next = GetNextControl(next, !e.Shift); next.Focus(); - e.Handled = true; + e.SuppressKeyPress = true; } } diff --git a/JsonToolsNppPlugin/Forms/TreeViewer.resx b/JsonToolsNppPlugin/Forms/TreeViewer.resx index 7a2896d..df574b0 100644 --- a/JsonToolsNppPlugin/Forms/TreeViewer.resx +++ b/JsonToolsNppPlugin/Forms/TreeViewer.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADC - CgAAAk1TRnQBSQFMAgEBCAEAAfgBAAH4AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CgAAAk1TRnQBSQFMAgEBCAEAAQgBAQEIAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/JsonToolsNppPlugin/JSONTools/JsonGrepper.cs b/JsonToolsNppPlugin/JSONTools/JsonGrepper.cs index a0e35f1..0983f1b 100644 --- a/JsonToolsNppPlugin/JSONTools/JsonGrepper.cs +++ b/JsonToolsNppPlugin/JSONTools/JsonGrepper.cs @@ -3,11 +3,7 @@ using System.IO; using System.Linq; using System.Threading; -using System.Threading.Tasks; using System.Net; -using System.Text; -using System.Windows.Forms; -using JSON_Tools.Utils; /* using System; using System.Net; diff --git a/JsonToolsNppPlugin/Main.cs b/JsonToolsNppPlugin/Main.cs index 2d4f3d4..4a76920 100644 --- a/JsonToolsNppPlugin/Main.cs +++ b/JsonToolsNppPlugin/Main.cs @@ -1,22 +1,18 @@ // NPP plugin platform for .Net v0.91.57 by Kasper B. Graversen etc. using System; using System.Collections.Generic; -using System.IO; using System.Text; using System.Diagnostics; using System.Drawing; -using System.Threading; using System.Windows.Forms; using System.Drawing.Imaging; using System.Runtime.InteropServices; -using System.Text.RegularExpressions; using Kbg.Demo.Namespace.Properties; using Kbg.NppPluginNET.PluginInfrastructure; using JSON_Tools.JSON_Tools; using JSON_Tools.Utils; using JSON_Tools.Forms; using JSON_Tools.Tests; -using static Kbg.NppPluginNET.PluginInfrastructure.Win32; namespace Kbg.NppPluginNET { diff --git a/JsonToolsNppPlugin/Properties/AssemblyInfo.cs b/JsonToolsNppPlugin/Properties/AssemblyInfo.cs index 070e059..6e862fc 100644 --- a/JsonToolsNppPlugin/Properties/AssemblyInfo.cs +++ b/JsonToolsNppPlugin/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("3.6.0")] -[assembly: AssemblyFileVersion("3.6.0")] +[assembly: AssemblyVersion("3.6.1")] +[assembly: AssemblyFileVersion("3.6.1")] diff --git a/JsonToolsNppPlugin/Tests/JsonGrepperTests.cs b/JsonToolsNppPlugin/Tests/JsonGrepperTests.cs index 9954461..36e2964 100644 --- a/JsonToolsNppPlugin/Tests/JsonGrepperTests.cs +++ b/JsonToolsNppPlugin/Tests/JsonGrepperTests.cs @@ -3,7 +3,6 @@ using System.IO; using JSON_Tools.JSON_Tools; using JSON_Tools.Utils; -using Kbg.NppPluginNET.PluginInfrastructure; namespace JSON_Tools.Tests { diff --git a/JsonToolsNppPlugin/Tests/JsonParserTests.cs b/JsonToolsNppPlugin/Tests/JsonParserTests.cs index df46e05..f209d1b 100644 --- a/JsonToolsNppPlugin/Tests/JsonParserTests.cs +++ b/JsonToolsNppPlugin/Tests/JsonParserTests.cs @@ -1,10 +1,8 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Text; using JSON_Tools.JSON_Tools; using JSON_Tools.Utils; -using Kbg.NppPluginNET.PluginInfrastructure; namespace JSON_Tools.Tests { diff --git a/JsonToolsNppPlugin/Tests/RemesPathTests.cs b/JsonToolsNppPlugin/Tests/RemesPathTests.cs index bedbc42..f15e516 100644 --- a/JsonToolsNppPlugin/Tests/RemesPathTests.cs +++ b/JsonToolsNppPlugin/Tests/RemesPathTests.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Text; using System.Text.RegularExpressions; using JSON_Tools.JSON_Tools; diff --git a/JsonToolsNppPlugin/Tests/SliceTests.cs b/JsonToolsNppPlugin/Tests/SliceTests.cs index 6811c7d..22a87b2 100644 --- a/JsonToolsNppPlugin/Tests/SliceTests.cs +++ b/JsonToolsNppPlugin/Tests/SliceTests.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Text; using JSON_Tools.Utils; -using Kbg.NppPluginNET.PluginInfrastructure; namespace JSON_Tools.Tests { diff --git a/JsonToolsNppPlugin/Tests/TestRunner.cs b/JsonToolsNppPlugin/Tests/TestRunner.cs index 1911950..8a3f846 100644 --- a/JsonToolsNppPlugin/Tests/TestRunner.cs +++ b/JsonToolsNppPlugin/Tests/TestRunner.cs @@ -4,13 +4,7 @@ There is also a CLI utility that accepts a letter ('j' or 'y') and a filename as resultant pretty-printed JSON (if first arg j) or YAML (if first arg y) document (UTF-8 encoded). Redirecting this output to a text file allows the creation of a new YAML file. */ -using System; -using System.IO; -using System.Linq; -using System.Text; using JSON_Tools.Utils; -using JSON_Tools.JSON_Tools; -using Kbg.NppPluginNET.PluginInfrastructure; namespace JSON_Tools.Tests { diff --git a/JsonToolsNppPlugin/Tests/YamlDumperTests.cs b/JsonToolsNppPlugin/Tests/YamlDumperTests.cs index fa9be1a..6efe3b6 100644 --- a/JsonToolsNppPlugin/Tests/YamlDumperTests.cs +++ b/JsonToolsNppPlugin/Tests/YamlDumperTests.cs @@ -1,7 +1,5 @@ -using System; -using JSON_Tools.JSON_Tools; +using JSON_Tools.JSON_Tools; using JSON_Tools.Utils; -using Kbg.NppPluginNET.PluginInfrastructure; namespace JSON_Tools.Tests { diff --git a/JsonToolsNppPlugin/Utils/Misc.cs b/JsonToolsNppPlugin/Utils/Misc.cs index 48afcab..3210c94 100644 --- a/JsonToolsNppPlugin/Utils/Misc.cs +++ b/JsonToolsNppPlugin/Utils/Misc.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Text; using System.Windows.Forms; using Kbg.NppPluginNET.PluginInfrastructure; diff --git a/JsonToolsNppPlugin/Utils/NanInf.cs b/JsonToolsNppPlugin/Utils/NanInf.cs index 871de73..8aff20b 100644 --- a/JsonToolsNppPlugin/Utils/NanInf.cs +++ b/JsonToolsNppPlugin/Utils/NanInf.cs @@ -1,6 +1,4 @@ -using System; - -namespace JSON_Tools.Utils +namespace JSON_Tools.Utils { public class NanInf { diff --git a/JsonToolsNppPlugin/Utils/Settings.cs b/JsonToolsNppPlugin/Utils/Settings.cs index d7096c8..febcb6a 100644 --- a/JsonToolsNppPlugin/Utils/Settings.cs +++ b/JsonToolsNppPlugin/Utils/Settings.cs @@ -1,9 +1,4 @@ -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; -using System.Drawing; -using System.Linq; -using System.Windows.Forms; +using System.ComponentModel; using JSON_Tools.JSON_Tools; using CsvQuery.PluginInfrastructure; // for SettingsBase diff --git a/docs/README.md b/docs/README.md index ec57987..1eeb20b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -303,9 +303,7 @@ __NOTES:__ Sometimes it is useful to work with many JSON files at a time. For this purpose, we created a tool for *grepping* (searching for certain kinds of files in a directory, possibly recursively) for JSON files in a local directory, and also for sending [REST API](https://www.redhat.com/en/topics/api/what-is-a-rest-api) requests to multiple URLs. -We can open this tool with a button in the bottom center. - -![Open the JSON grepper/API requester with this button](/docs/json%20viewer%20json_from_files_and_apis%20button.PNG) +We can open this tool with the `Plugins->JsonTools->Get JSON from files and APIs` menu command or `Ctrl+Alt+Shift+G`. The tool looks like this: @@ -313,7 +311,7 @@ The tool looks like this: ## Sending REST API requests ## -Perhaps the most useful attribute of this tool is its ability to connect to APIs and extract useful data without the user needing to write a script. +Perhaps the most useful attribute of this tool is its ability to connect to APIs and extract useful data without the user needing to write a script. Just enter one URL per line in the box on the left. **WARNING!!!** Before sending API requests, make sure you understand the correct way to format the URL, what type of JSON you expect to be getting, etc. *This tool has not been tested on private APIs*, so you should expect it to fail unless you can incorporate your API key and other authentication information into the URL. @@ -321,7 +319,9 @@ Here's an example of what you get with successful request(s): ![JSON grepper/API requester successful API requests](/docs/json_from_files_and_apis%20api%20good%20url%20result.PNG) -Of course, sometimes an API request will fail. You can click the `View errors` button to see any errors that happened. +The URLs of successful requests show up in the box on the right. I used the `View results in buffer` button at the bottom of the form to open the buffer and tree view shown here. + +Of course, sometimes an API request will fail. You can click the [View errors button](#viewing-errors) to see any errors that happened. ## Getting JSON from local directories ## @@ -343,7 +343,7 @@ If you like most of the JSON documents you've found but you don't want to keep * ![JSON grepper/API requester remove selected files button BEFORE removal](/docs/json_from_files_and_apis%20remove%20selected%20files%20BEFORE.PNG) -After you click the button, those JSON documents will be removed. +After you click the button, those JSON documents will be removed, and the buffer and tree view will update to reflect this. ![JSON grepper/API requester remove selected files button AFTER removal](/docs/json_from_files_and_apis%20remove%20selected%20files%20AFTER.PNG) @@ -351,7 +351,7 @@ After you click the button, those JSON documents will be removed. Click the `View errors` button to see if any errors happened. If any did, a new buffer will happen with an object mapping from filenames and urls to the associated exception. -ADD IMAGE +![JSON grepper/API requester error report](/docs/json_from_files_and_apis%20error%20report.PNG) # OTHER FEATURES NOT YET ADDED (COME BACK SOON!) # diff --git a/docs/json parser settings allow singlequotes and comments.PNG b/docs/json parser settings allow singlequotes and comments.PNG index 2ad87e5..8d0e270 100644 Binary files a/docs/json parser settings allow singlequotes and comments.PNG and b/docs/json parser settings allow singlequotes and comments.PNG differ diff --git a/docs/json viewer csv generator.PNG b/docs/json viewer csv generator.PNG index 6ead6dd..3e3a28b 100644 Binary files a/docs/json viewer csv generator.PNG and b/docs/json viewer csv generator.PNG differ diff --git a/docs/json viewer query save.PNG b/docs/json viewer query save.PNG index 02d19de..1cb0bc5 100644 Binary files a/docs/json viewer query save.PNG and b/docs/json viewer query save.PNG differ diff --git a/docs/json viewer with remespath query.PNG b/docs/json viewer with remespath query.PNG index 67b9291..77dccf5 100644 Binary files a/docs/json viewer with remespath query.PNG and b/docs/json viewer with remespath query.PNG differ diff --git a/docs/json_from_files_and_apis api bad url error.PNG b/docs/json_from_files_and_apis api bad url error.PNG deleted file mode 100644 index e7a4a0c..0000000 Binary files a/docs/json_from_files_and_apis api bad url error.PNG and /dev/null differ diff --git a/docs/json_from_files_and_apis api good url result.PNG b/docs/json_from_files_and_apis api good url result.PNG index 9ae04a6..6b9eb57 100644 Binary files a/docs/json_from_files_and_apis api good url result.PNG and b/docs/json_from_files_and_apis api good url result.PNG differ diff --git a/docs/json_from_files_and_apis api request warning.PNG b/docs/json_from_files_and_apis api request warning.PNG deleted file mode 100644 index 881df07..0000000 Binary files a/docs/json_from_files_and_apis api request warning.PNG and /dev/null differ diff --git a/docs/json_from_files_and_apis clear all files.PNG b/docs/json_from_files_and_apis clear all files.PNG deleted file mode 100644 index 2553576..0000000 Binary files a/docs/json_from_files_and_apis clear all files.PNG and /dev/null differ diff --git a/docs/json_from_files_and_apis error report.PNG b/docs/json_from_files_and_apis error report.PNG new file mode 100644 index 0000000..49dec17 Binary files /dev/null and b/docs/json_from_files_and_apis error report.PNG differ diff --git a/docs/json_from_files_and_apis get json in directory.PNG b/docs/json_from_files_and_apis get json in directory.PNG index 6822158..67d6419 100644 Binary files a/docs/json_from_files_and_apis get json in directory.PNG and b/docs/json_from_files_and_apis get json in directory.PNG differ diff --git a/docs/json_from_files_and_apis initial.PNG b/docs/json_from_files_and_apis initial.PNG index 4abc922..d671f1a 100644 Binary files a/docs/json_from_files_and_apis initial.PNG and b/docs/json_from_files_and_apis initial.PNG differ diff --git a/docs/json_from_files_and_apis remove selected files AFTER.PNG b/docs/json_from_files_and_apis remove selected files AFTER.PNG index 7296b27..11ecc41 100644 Binary files a/docs/json_from_files_and_apis remove selected files AFTER.PNG and b/docs/json_from_files_and_apis remove selected files AFTER.PNG differ diff --git a/docs/json_from_files_and_apis remove selected files BEFORE.PNG b/docs/json_from_files_and_apis remove selected files BEFORE.PNG index f3afbb2..818954f 100644 Binary files a/docs/json_from_files_and_apis remove selected files BEFORE.PNG and b/docs/json_from_files_and_apis remove selected files BEFORE.PNG differ diff --git a/docs/json_from_files_and_apis save query to file.PNG b/docs/json_from_files_and_apis save query to file.PNG deleted file mode 100644 index 1a0807c..0000000 Binary files a/docs/json_from_files_and_apis save query to file.PNG and /dev/null differ diff --git a/docs/lint form example.PNG b/docs/lint form example.PNG deleted file mode 100644 index cbc851e..0000000 Binary files a/docs/lint form example.PNG and /dev/null differ diff --git a/docs/partial tree load example.PNG b/docs/partial tree load example.PNG index 8a164a8..6425c81 100644 Binary files a/docs/partial tree load example.PNG and b/docs/partial tree load example.PNG differ diff --git a/docs/path to current tree node button.PNG b/docs/path to current tree node button.PNG index b960a3b..f35434a 100644 Binary files a/docs/path to current tree node button.PNG and b/docs/path to current tree node button.PNG differ diff --git a/docs/tree first view.PNG b/docs/tree first view.PNG index 0cd0cbe..f77f1d9 100644 Binary files a/docs/tree first view.PNG and b/docs/tree first view.PNG differ diff --git a/docs/tree partially expanded.PNG b/docs/tree partially expanded.PNG index aa9b045..7674992 100644 Binary files a/docs/tree partially expanded.PNG and b/docs/tree partially expanded.PNG differ diff --git a/error json after parsing.PNG b/error json after parsing.PNG index c3de1d3..caa9a7f 100644 Binary files a/error json after parsing.PNG and b/error json after parsing.PNG differ diff --git a/jsontools before after.PNG b/jsontools before after.PNG index 71c036c..9a74b53 100644 Binary files a/jsontools before after.PNG and b/jsontools before after.PNG differ diff --git a/jsontools before after.pptx b/jsontools before after.pptx index b78d6f8..8f3bd65 100644 Binary files a/jsontools before after.pptx and b/jsontools before after.pptx differ