From 38a82d22b97b614d57d8e35f0b81fa11d3bce1f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Perlk=C3=B6nig?=
Date: Wed, 12 Jul 2017 19:27:40 -0600
Subject: [PATCH] Added an HTML help file, which can be reached via a new
button in the Settings group.
---
EditTools/EditingTools.csproj | 5 +++
EditTools/Ribbon1.Designer.cs | 51 +++++++++++++++++------
EditTools/Ribbon1.cs | 15 +++++++
EditTools/help.html | 74 ++++++++++++++++++++++++++++++++++
deploy/helpfile/help.html | 74 ++++++++++++++++++++++++++++++++++
deploy/make-installer.iss | 4 +-
screen-capture.jpg | Bin 21281 -> 22357 bytes
7 files changed, 208 insertions(+), 15 deletions(-)
create mode 100644 EditTools/help.html
create mode 100644 deploy/helpfile/help.html
diff --git a/EditTools/EditingTools.csproj b/EditTools/EditingTools.csproj
index d4654d2..9507d57 100644
--- a/EditTools/EditingTools.csproj
+++ b/EditTools/EditingTools.csproj
@@ -363,6 +363,11 @@
+
+
+ Always
+
+
10.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
diff --git a/EditTools/Ribbon1.Designer.cs b/EditTools/Ribbon1.Designer.cs
index 144c190..5bc555e 100644
--- a/EditTools/Ribbon1.Designer.cs
+++ b/EditTools/Ribbon1.Designer.cs
@@ -42,16 +42,19 @@ private void InitializeComponent()
this.group2 = this.Factory.CreateRibbonGroup();
this.dd_Langs = this.Factory.CreateRibbonDropDown();
this.btn_FixLang = this.Factory.CreateRibbonButton();
+ this.btn_SingData = this.Factory.CreateRibbonButton();
this.group3 = this.Factory.CreateRibbonGroup();
this.btn_WordList = this.Factory.CreateRibbonButton();
+ this.btn_WordFreq = this.Factory.CreateRibbonButton();
this.btn_ProperNouns = this.Factory.CreateRibbonButton();
- this.btn_SingData = this.Factory.CreateRibbonButton();
this.grp_Finishing = this.Factory.CreateRibbonGroup();
this.btn_AcceptFormatting = this.Factory.CreateRibbonButton();
this.group4 = this.Factory.CreateRibbonGroup();
this.dd_Boilerplate = this.Factory.CreateRibbonDropDown();
this.btn_ApplyBoilerplate = this.Factory.CreateRibbonButton();
- this.btn_WordFreq = this.Factory.CreateRibbonButton();
+ this.lbl_Version = this.Factory.CreateRibbonLabel();
+ this.btn_Help = this.Factory.CreateRibbonButton();
+ this.lbl_Spacer1 = this.Factory.CreateRibbonLabel();
this.EditingTools.SuspendLayout();
this.group1.SuspendLayout();
this.group2.SuspendLayout();
@@ -72,6 +75,9 @@ private void InitializeComponent()
//
// group1
//
+ this.group1.Items.Add(this.lbl_Version);
+ this.group1.Items.Add(this.btn_Help);
+ this.group1.Items.Add(this.lbl_Spacer1);
this.group1.Items.Add(this.btn_Settings);
this.group1.Items.Add(this.btn_Export);
this.group1.Items.Add(this.btn_Import);
@@ -125,6 +131,13 @@ private void InitializeComponent()
"ters";
this.btn_FixLang.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_FixLang_Click);
//
+ // btn_SingData
+ //
+ this.btn_SingData.Label = "Find Singular Data";
+ this.btn_SingData.Name = "btn_SingData";
+ this.btn_SingData.ScreenTip = "Find \"data\" used as a singular noun";
+ this.btn_SingData.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_SingData_Click);
+ //
// group3
//
this.group3.Items.Add(this.btn_WordList);
@@ -140,6 +153,12 @@ private void InitializeComponent()
this.btn_WordList.ScreenTip = "Generate a list of all the unique words in the document";
this.btn_WordList.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_WordList_Click);
//
+ // btn_WordFreq
+ //
+ this.btn_WordFreq.Label = "Word Frequency List";
+ this.btn_WordFreq.Name = "btn_WordFreq";
+ this.btn_WordFreq.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_WordFreq_Click);
+ //
// btn_ProperNouns
//
this.btn_ProperNouns.Label = "Check Proper Nouns";
@@ -148,13 +167,6 @@ private void InitializeComponent()
"";
this.btn_ProperNouns.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_ProperNouns_Click);
//
- // btn_SingData
- //
- this.btn_SingData.Label = "Find Singular Data";
- this.btn_SingData.Name = "btn_SingData";
- this.btn_SingData.ScreenTip = "Find \"data\" used as a singular noun";
- this.btn_SingData.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_SingData_Click);
- //
// grp_Finishing
//
this.grp_Finishing.Items.Add(this.btn_AcceptFormatting);
@@ -190,11 +202,21 @@ private void InitializeComponent()
"o add/remove/edit boilerplate";
this.btn_ApplyBoilerplate.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_ApplyBoilerplate_Click);
//
- // btn_WordFreq
+ // lbl_Version
//
- this.btn_WordFreq.Label = "Word Frequency List";
- this.btn_WordFreq.Name = "btn_WordFreq";
- this.btn_WordFreq.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_WordFreq_Click);
+ this.lbl_Version.Label = "Version 1.3.0";
+ this.lbl_Version.Name = "lbl_Version";
+ //
+ // btn_Help
+ //
+ this.btn_Help.Label = "Help!";
+ this.btn_Help.Name = "btn_Help";
+ this.btn_Help.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btn_Help_Click);
+ //
+ // lbl_Spacer1
+ //
+ this.lbl_Spacer1.Label = " ";
+ this.lbl_Spacer1.Name = "lbl_Spacer1";
//
// Ribbon1
//
@@ -238,6 +260,9 @@ private void InitializeComponent()
internal Microsoft.Office.Tools.Ribbon.RibbonGroup grp_Finishing;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btn_AcceptFormatting;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btn_WordFreq;
+ internal Microsoft.Office.Tools.Ribbon.RibbonLabel lbl_Version;
+ internal Microsoft.Office.Tools.Ribbon.RibbonButton btn_Help;
+ internal Microsoft.Office.Tools.Ribbon.RibbonLabel lbl_Spacer1;
}
partial class ThisRibbonCollection
diff --git a/EditTools/Ribbon1.cs b/EditTools/Ribbon1.cs
index d02c294..f130676 100644
--- a/EditTools/Ribbon1.cs
+++ b/EditTools/Ribbon1.cs
@@ -656,5 +656,20 @@ private void btn_WordFreq_Click(object sender, RibbonControlEventArgs e)
watch.Stop();
d.Hide();
}
+
+ private void btn_Help_Click(object sender, RibbonControlEventArgs e)
+ {
+ System.Reflection.Assembly assemblyInfo = System.Reflection.Assembly.GetExecutingAssembly();
+ string assemblyLocation = assemblyInfo.Location;
+ Debug.WriteLine(assemblyLocation);
+
+ //CodeBase is the location of the ClickOnce deployment files
+ Uri uriCodeBase = new Uri(assemblyInfo.CodeBase);
+ string ClickOnceLocation = Path.GetDirectoryName(uriCodeBase.LocalPath.ToString());
+ Debug.WriteLine(ClickOnceLocation);
+
+ string loc = ClickOnceLocation + Path.DirectorySeparatorChar + "help.html";
+ System.Diagnostics.Process.Start(@"file:///" + loc);
+ }
}
}
diff --git a/EditTools/help.html b/EditTools/help.html
new file mode 100644
index 0000000..acda9df
--- /dev/null
+++ b/EditTools/help.html
@@ -0,0 +1,74 @@
+
+
+ Editing Tools Help
+
+
+ Editing Tools Help
+
+ This is the help file for version 1.3.0 of the editing tools.
+
+
+ For general information about this tool, or to download the latest version, visit the project's GitHub page. If you have suggestions for new tools, or if you are having problems using the tool, either file an issue on GitHub or feel free to email me directly.
+
+
+ The various tools are grouped into five categories:
+
+
+
+
+ Settings
+ This is where you configure the the tool generally. There are five features:
+
+ - Version: This tells you what version of the tool you are running. Visit the "Releases" section of the GitHub page to download the latest version (or older versions, if you prefer).
+ - Help!: This opens the help file you're reading now.
+ - Settings: There are currently two settings you can change:
+
+ - Edit-distance sensitivity: This is used by the "Check Proper Nouns" feature (see the "Proofing" section). The number represents the number of changes you have to make to one word to make it another word. The higher the number, the more false positives you'll get. Too low and you'll miss valid misspellings. A setting of "2" seems to me to be a good balance, but play around with it if you wish.
+ -
+
Comment boilerplate: This is where you add/change/remove comment boilerplate (see the "Boilerplate" section).
+ To add new boilerplate, click on the blank row that appears at the bottom of the list of boilerplate. Give it a helpful shortcut name (left-hand side) and then enter the full text of your desired comment (right-hand side).
+ To edit a boilerplate, simply click on the entry and make the edits.
+ To delete a boilerplate, select the row by clicking in the tiny cell to the far left of the row. Then just hit the Delete key on your keyboard.
+
+
+
+ - Export: This is how you can backup, migrate, or share your comment boilerplate. When clicked, it will ask you where you want the save the file. It will then create an XML file that can be read by the "Import" function.
+ - Import: This lets you load exported comment boilerplate. You first select the file and then you have one of three self-explanatory choices of how you want the tool to handle duplicates.
+
+
+
+ Editing
+
+ - Apply Language: Applies the selected language to all the text in the body, headers, footers, and notes. It does not find text in text boxes. I don't know if finds text in frames.
+ - Find Singular Data: Where I work, "data" must always be plural, so this uses natural language processing to find (and highlight in grey) possible instances of "data" being used as a singular. It will only highlight sentences that actually contain the word "data"! So look at sentences around highlighted sentences to find misuses of pronouns referring to "data."
+
+
+
+ Proofing
+
+ - Word List: Creates a separate document containing all the unique words in the document. It retains capitalization. This is a great proofreading tool because it removes the meaning of the text and just gives you the individual words.
+ - Word Frequency List: Does the same as above but also counts the occurences of each word. It puts the list in a table, which for some reason is slow, so please be patient.
+ - Check Proper Nouns: This feature gets a lot of use in my day job. This tool generates a list of proper nouns and then does two comparisons: (1) a "sounds like" check and (2) an edit distance check (see the "Settings" section). If it finds groups of proper nouns that are spelled differently but either sound alike or are close in spelling, it will list them in a new document. This is an excellent way to find common typos in proper names that can easily be missed in a long document.
+
+
+
+ Finishing
+ This is for tools you run at the end of an editing pass.
+
+ - Accept Formatting Changes: This lets you accept all tracked formatting changes with one click.
+
+
+
+ Boilerplate
+ For me this is the second-most-used feature, next only to "Check Proper Nouns." If you find yourself typing similar comments over and over again, then this can save you tons of time. To add/remove/edit boilerplate, see the "Settings" section.
+
+ - Apply Comment: First select the text you want to comment on. Then select the short name of the comment you wish to insert. Then click the "Apply Comment" button. A new comment will be inserted containing the boilerplate. Edit as you will. It's that easy!
+
+
+
diff --git a/deploy/helpfile/help.html b/deploy/helpfile/help.html
new file mode 100644
index 0000000..acda9df
--- /dev/null
+++ b/deploy/helpfile/help.html
@@ -0,0 +1,74 @@
+
+
+ Editing Tools Help
+
+
+ Editing Tools Help
+
+ This is the help file for version 1.3.0 of the editing tools.
+
+
+ For general information about this tool, or to download the latest version, visit the project's GitHub page. If you have suggestions for new tools, or if you are having problems using the tool, either file an issue on GitHub or feel free to email me directly.
+
+
+ The various tools are grouped into five categories:
+
+
+
+
+ Settings
+ This is where you configure the the tool generally. There are five features:
+
+ - Version: This tells you what version of the tool you are running. Visit the "Releases" section of the GitHub page to download the latest version (or older versions, if you prefer).
+ - Help!: This opens the help file you're reading now.
+ - Settings: There are currently two settings you can change:
+
+ - Edit-distance sensitivity: This is used by the "Check Proper Nouns" feature (see the "Proofing" section). The number represents the number of changes you have to make to one word to make it another word. The higher the number, the more false positives you'll get. Too low and you'll miss valid misspellings. A setting of "2" seems to me to be a good balance, but play around with it if you wish.
+ -
+
Comment boilerplate: This is where you add/change/remove comment boilerplate (see the "Boilerplate" section).
+ To add new boilerplate, click on the blank row that appears at the bottom of the list of boilerplate. Give it a helpful shortcut name (left-hand side) and then enter the full text of your desired comment (right-hand side).
+ To edit a boilerplate, simply click on the entry and make the edits.
+ To delete a boilerplate, select the row by clicking in the tiny cell to the far left of the row. Then just hit the Delete key on your keyboard.
+
+
+
+ - Export: This is how you can backup, migrate, or share your comment boilerplate. When clicked, it will ask you where you want the save the file. It will then create an XML file that can be read by the "Import" function.
+ - Import: This lets you load exported comment boilerplate. You first select the file and then you have one of three self-explanatory choices of how you want the tool to handle duplicates.
+
+
+
+ Editing
+
+ - Apply Language: Applies the selected language to all the text in the body, headers, footers, and notes. It does not find text in text boxes. I don't know if finds text in frames.
+ - Find Singular Data: Where I work, "data" must always be plural, so this uses natural language processing to find (and highlight in grey) possible instances of "data" being used as a singular. It will only highlight sentences that actually contain the word "data"! So look at sentences around highlighted sentences to find misuses of pronouns referring to "data."
+
+
+
+ Proofing
+
+ - Word List: Creates a separate document containing all the unique words in the document. It retains capitalization. This is a great proofreading tool because it removes the meaning of the text and just gives you the individual words.
+ - Word Frequency List: Does the same as above but also counts the occurences of each word. It puts the list in a table, which for some reason is slow, so please be patient.
+ - Check Proper Nouns: This feature gets a lot of use in my day job. This tool generates a list of proper nouns and then does two comparisons: (1) a "sounds like" check and (2) an edit distance check (see the "Settings" section). If it finds groups of proper nouns that are spelled differently but either sound alike or are close in spelling, it will list them in a new document. This is an excellent way to find common typos in proper names that can easily be missed in a long document.
+
+
+
+ Finishing
+ This is for tools you run at the end of an editing pass.
+
+ - Accept Formatting Changes: This lets you accept all tracked formatting changes with one click.
+
+
+
+ Boilerplate
+ For me this is the second-most-used feature, next only to "Check Proper Nouns." If you find yourself typing similar comments over and over again, then this can save you tons of time. To add/remove/edit boilerplate, see the "Settings" section.
+
+ - Apply Comment: First select the text you want to comment on. Then select the short name of the comment you wish to insert. Then click the "Apply Comment" button. A new comment will be inserted containing the boilerplate. Edit as you will. It's that easy!
+
+
+
diff --git a/deploy/make-installer.iss b/deploy/make-installer.iss
index 4fc4187..3683e18 100644
--- a/deploy/make-installer.iss
+++ b/deploy/make-installer.iss
@@ -34,10 +34,10 @@
; The version number. It is suggested to use the semantic versionin
; scheme (http://semver.org), but this is not a must. This version
; information may contain text.
-#define SEMANTIC_VERSION "1.2.1"
+#define SEMANTIC_VERSION "1.3.0"
; The version in four-number format
-#define FOUR_NUMBER_VERSION "1.2.1.0"
+#define FOUR_NUMBER_VERSION "1.3.0.0"
; The year(s) of publication (e.g., "2014-2017")
#define PUB_YEARS "2017"
diff --git a/screen-capture.jpg b/screen-capture.jpg
index 2d3b4a65d70109d5188eae4c60ed0a4e39271401..1281aa3c21052881670210175f766f19da0841d1 100644
GIT binary patch
delta 14306
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
T`G5WD`~O4e|AEYB4|D$u)dz-E
delta 13390
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
VTg%qX41BF-@+X;wgzzx^-vFP0_R;_V
|