Change log – Beta version

Beta versions release notes are presented in reverse chronological order. Production (master) versions release notes are in the regular change log.

Version BETA: 0.1.5 (2022-09-14)
- implement darkmode for editor window
- add option for dark mode (DarkMode=1 under [EditorWindow] in ini file), default 1 (enabled), effective only if Windows is in dark mode (restart QCE after changing Windows dark mode)
- set dark mode support for menubar's drop down menus only (not possible for menu bar itself)
- in status bar, remove "synchronized" status bas section and reword the first section with "Editing" and "Read-only" plus editor content's length
- fix bug retrieving values from the previous edit command of a given edit command type

Version BETA: 0.1.4 (2022-09-12)
- support tab and eol in prefix/suffix commands
- default wordwrap option to true
- in Ditto fix bug in order to retrieve clips longer than 500 characters
- fix bug to make Find commands start from the current cursor position
- fix bug not closing dialog boxes after some edit commands
- fix bug not enabling the Save Clipboard button after some commands

Version BETA: 0.1.3 (2022-09-11)
- implement interactive find and replace with eols and tabs visibles when in selection to be replaced
Version BETA: 0.1.2 (2022-09-06)
- refactpr execute edit commands
- refactor Prefix and Suffix in PreSuffix unique dialog box
- refactor Replace All, Change case and Sort commands as Edit command class methods
- when confirming change case on all text, add "OK got it" button to avoid showing again the confirmation dialog box
- in Replace All, remove "In selection" option and always replace in selection if there is a selection
- in SubString command, when from/to text is not found on a line, keep the entire line
- keep track of last command of each edit command type and use last command values as default in edit command dialog box
- enable save button only if edit commands change the content of the editor
- set cursor position or selection after edit commands
- in Replace All, support eol and tal in search or replace values
- implement repeated find with continue yes/no, find next and find previous
Version BETA: 0.1.1 (2022-08-28)
- initial release with code moved (and adapted) from Quick Access Clipboard covering the Editor window (excluding rules management)
- move Change case commands to a Edit submenu
- support Clipboard history integration Ditto
Version BETA: 0.1 (2022-07-18)
- repository creation



Version BETA: (2022-04-25)
Rules Manager
- in "Available rules" list, add a column "Last modified" to display the last modified date-time of rules (sortable)
- new ini option LastModifiedDateFormat to set the last modified column date format, default "ShortDate" (see for other formats)
- if last used used version is before v0.1.0.4, update rules values in ini file to add last modified date
- new ini option AvailableRulesSortOrder to remember the last sort column of "Available rules" list
- improved clarity text of substring dialog box
- fix bug not updating the status bar with cursor position and selection length
- when showing invisible characters, new ini option ShowHiddenEolAsLfOnly to show end-of-line as CR+LF (two characters) or only LF (default)
- new in option to launch QAC at Windows startup independently of options to display Editor or Rules windows at QAC startup

Version BETA: (2022-03-27)
Rules Manager
- add new rule type "Sort", by default, sorting the Clipboard lines alphabetically
- add "Sort" rules options: Reverse order, Numeric values, Case sensitive, Case sensitive considering regional settings, From a given position, From last backslash, Unique (remove duplicate lines) and Randomly
- add "Sentence case" option in for "Change case" rules
- never timeout rules when value RulesTimeoutSecs=0 under [RulesWindow]
- change order and internal code for "Change case" options 4 (now "Sentence case") and 5 (now "Toggle case") - BREAKING CHANGE: current rules for "Sentence case" and "Toggle case" must be updated
- fix bug in rule suffix that was inserting the suffix between the CR and LF, now insert before CR
- in Rules manager, update list of rules in status bar when changing order in Active listview using drag-and-drop
- add "Sentence case" option "Edit, Change case" menu
- add "Edit, Quick Sort (alphabetically)" menu, sorting the Editor's lines alphabetically
- add "Edit, Sort with options" menu, with the same options described above for Sort rules (Reverse order, Numeric values, etc.)
- add "Edit, Sort again" menu, sorting the Editor's lines with the options defined the last time the "Sort with options" command was used
- prompt to reload QAC after changing a hotkey
- in Editor, fix bug to check for unsaved changes before Exiting the app
- in Rules, fix bug with prefix or suffix including double-quotes

Version BETA: (2022-03-22)
Rules Manager
- in QAC Rules, each time the rule(s) are executed, take backup of the Clipboard
- new mouse and keyboard hotkeys to Restore the content of the Clipboard to its content before the last execution of rule(s)
- add menu items on Tray menu and Rules manager window to Restore Clipboard
- in Rules debug mode, add the number of seconds to execute the last rule(s) - to enable rules debug mode, in ini file, under [RulesWindow], change RulesTimeoutDebug=0 to RulesTimeoutDebug=1
Various improvements
- enable the "Cancel" button as soon as the "Edit Clipboard" button is clicked, allowing to revert the editor to the current Clipboard content
- fix a bug preventing saving of "Display at startup" options to ini file

Version BETA: (2022-03-07)
- add line number, character number, index from start and selection length to status bar
- merge "Edit Clipboard" and "Save Clipboard" buttons in one button with different labels at the window bottom
- add menu item "Display Editor window at startup" under "Options" menu and Tray menu
- fix bug turning editor read-only off when changing word wrap
- after word wrap change, set focus to edit control only if not read-only
Rules Manager
- add timeout debug option with default false (RulesTimeoutDebug=0) displaying a tooltip with remaining seconds before timeout at the top of active window (change value to ="1" if desired)
- add menu item "Display Rules Manager window at startup" under "Options" menu and Tray menu
- fix bug when getting current position of window
- application now available in portable ZIP file
- in Portable mode, set default values to "no" for startup options for Editor (DisplayEditorAtStartup=0) and Rules manager (DisplayRulesAtStartup=0) windows, remember window position (RememberEditorPosition=0 and RememberRulesPosition=0) and open on active monitor (OpenEditorOnActiveMonitor=0 and OpenRulesOnActiveMonitor=0); change these values to "=1" in QuickAccessClipboard.ini file if desired
- in Setup mode, fix bug setting startup registry key at first launch

Version BETA: 0.1 (2022-02-10)
- see description of features
- change Save Clipboard button label; fix typo in a rule demo example
- see Alpha releases change log below

Version ALPHA: (2022-02-09)
- improve help text form editor's command Change case, Substring, Prefix and Suffix

Version ALPHA: (2022-02-07)
- fix bug displaying Replace dialog box after having used the find dialog box
- fix bug with the Find and Replace dialog boxes when word wrap is on
- fix timeout bug preventing disabling rules
- minor cosmetic adjustments and fix button drawing issues when resizing the Rules window and in Rules

Version ALPHA: (2022-02-05)
- implement Find (Ctrl+F), Find next (F3), Find previous (Shift+F3) and Find and replace (Ctrl+H) using Edit library from jballli
- fix bug setting initial wordwrap property of editor control
- fix bug keeping the correct readonly setting when switching wordwrap
- fix bug suspending hotkeys from the tray menu

Version ALPHA: 0.0.9 (2022-02-03)
- add "Word wrap" checkbox and an the "WordWrap" ini option (under "EditorWindow" section) updated as checkbox is changed
- add Toggle case option to Change case command
- make `t (for tab) and `n (for new line) work in editor Substring text search
- remove "Use tab" checkbox until an AutoHotkey runtime bug is fixed (; the "UseTab" option (under "EditorWindow" section) can still be changed in ini file
- when showing invisible characters, make space characters visible
- fix bug when changing Editor window's shortcuts with Editor window is always on top
Rules manager
- add Toogle case option to Change case rule type
- change vocabulary using "Active rules" instead of "Selected rule" (and "Activate", "Deactivate", etc.)
- add list of active rules to Rules manager status bar
- add shortcuts reminders in tray menu
- new AutoHotkey runtime v1.1.33.10

Version ALPHA: (2022-01-31)
- improve reliability of Find command in editor
- improve editor actions involving selection of text (Change case, Substring, etc.)
- use Edit library (from jballi) for edit menu command Copy, Cut, Paste and Del
- disable Find and replace in edit menu until Replace command is implemented
- set timer every 200 ms to enable edit menu items requiring a selection
- optimization reflecting Clipboard changes in the editor
- move timeout option in ini file from Launch to RulesWindow section
- fix bug with end-of-lines when repeating a command on every line of the editor
- fix bugs in editor when using SubString command with text search

Version ALPHA: (2022-01-26)
- add "Window" menu to menu bar with items to switch to the other window or both windows
- add hotkeys Ctrl+E to show Editor window, Ctrl+R to show Rules window and Ctrl+B to show both windows
- merge context menu and Edit menu an use it as context menu
- add to Help menu "Visit QAC website" and "Make donation"
- remove option ShowMenuBar and always display menu bar in Window
- add items to Tray menu
- implement "Find" rule type (for use only in Editor) with hotkey Ctrl+F
- fix bug selecting text in editor

Version ALPHA: 0.0.8 (2022-01-20)
- split user interface in 2 guis: rules manager and editor
- add a cancel button to editor that do not close the window
- add "Edit Clipboard" button to editor removing the default readonly attibute of the editor
- add status when Clipboard is synchronized
- add "Edit" menu with all rule types (except types AutoHotkey and ConvertFormat) to editor menu bar and to editor context menu
- update getting the selected in editor using Edit library from jballi
- add Oops message when the editor is readonly
- add Ctrl+E hotkey to enable the editor or, if already enabled, show the "Edit" menu
- add Del to hotkeys processed if used in readonly editor
- apply rules on editor or selected text in editor, using a temporary rule object, refactoring save rule and adding rule method ExecRule()
- disable "Edit" main menu after cancel changes in editor
- make Rules manager gui resizable
- enable checkmark for "Options, Run at Startup" menu in Rules gui
- fix bugs in ExecRule() and GetCode() methods for Substring rules when the searched text (for "From text" or "To text" options) is not found
- save hotkeys to ini file section hotkeys

Version ALPHA: (2022-01-13)
- apply rules each time a rule is selected or deselected
- when centering a secondary dialog box on top of the primary window, take into account the border of the reference window

Version ALPHA: (2022-01-08)
- change tray icon when in the developemnt environment;
- keep selected rules after saving new/edited rule or deleting rule;
- fix bug in backup of selected rules
Version ALPHA: (2022-01-06)
- reenable timeout in QACrules (default timeout after 60 seconds without executing a rule); refactor interactions between QAC and QACrules
- fix bug with add button tooltip
- manage 3 sets of tooltips: 1) buttons, 2) rules updated and 3) rules removed
- escape reserved regex characters in rules of type Replace; escape double-quotes in string values of SubString rules
- fix bug restoring editor's checkbox options
- fix bugs encoding for ini text values in rules of type SubString, doubling rule names in rules index and not showing invisible characters after Clipboard uddate
- review help text for AutoHotkey type; update help text about encoding tab and eol for types using text fields
Version ALPHA: 0.0.7 (2022-01-05)
- add "Options" submenu to menu bar with item to "Select mouse hotkey", "Select keyboard hotkeys", "Run at statup" options and "Edit QAC settings file" (with reminder to restart the app after saving changes to the ini file)
- add "Select hotkey" dialog box for mouse and keyboard hotkeys
- display the editor at startup if the option "DisplayEditorAtStartup" is enabled in ini file
- remove editor dark mode option (need improvements) and run as admin (not ready)
- add rule type "Convert format" with only one subtype "Text format" for now
- add "Whole word only" and "Case sensitive" options for "Replace" rule type
- reject semi-colon in rule names (ini file restriction)
- in "Add/Edit rule" help for rules of type AutoHotkey, add links to AHK doc pages
- add "Undo last rule change" button and menu item
- add radio buttons to see "Rules" or "Groups" of rules in "Available" and "Selected" lists (groups not implemented at this time)
- add a button to "Add group" (disabled)
Settings file
- in ini file, save options values in three sections "General", "Launch" and "EditorWindow"; for values not in a group, save to section "Internal"
- at launch, add default rules to ini file if "Rules" section does not exist and add default values for options if values does not exist in ini file
- add "Rules-index" section to ini file with the value "Rules" listing available rules
- for Undo feature, maintain "Rules-backup" section and "Rules-backup" value in "Rules-index" section
- when showing the Editor, position the window on the active monitor
- set default temporary folder to %temp% for setup installation and "\Temp" for portable installation
- add missing menu bar menus items to tray menu
- make the tray menu item "Editor" the default item and require only one left mouse button click to trigger it
- add "Check for update" to "Help" menu

Version ALPHA: 0.0.6 (2021-12-29)
- add confirmation prompt before deleting a rule
- add column Notes to available rules listview
- add tooltip messages when hovering buttons
- make tab stop shorter in editor and in edit AutoHotkey rule
- edit rule when shift + double click a rule in Available rules
- do not close Editor when pressing Shift while clicking the Cancel button
Menu bar
- add "Rule" and "Help" menus to menu bar
- add "About QAC" under "Help menu"
- new menu item under "File" menu to open QAC ini file and QAC working directory
- only in alpha or beta releases, new menu item under "File" menu to open QACrules.ahk 
- add Substring subtypes FromBeginText, FromEndText, ToBeginText and ToEndText with a +/- offset
- option to execute a rule on each line of the Clipboard or editor's content for Substring and Prefix/Suffix rules
- replace LF with eol replacement chars when saving AutoHotkey code value to ini file, replace LF when editing AutoHotkey code and when building rule code
- after saving a rule, reload rules, rebuild rules menu, update Available rules listview and relaunch QACrules
- enable check for update

Version ALPHA: (2021-12-19)
- add rules demo in new ini file
- in rules menu, display disabled item "No rule" if no rule
- fix bug delete form values when closing the edit rule gui
- change URLs for check4update

Version ALPHA: 0.0.5 (2021-12-19)
- add a submenu to context menu with all rules that can be applied on demand to current Clipboard
- if text selected in editor, execute rule on demand only on selected text
- restore cursor caret or selected text after rule execution
- ad Shift-F10 hotkey to intercept context menu in editor control
- in QACrules.ahk, listen to message from QAC main app to receive command exec with rule ID to execute rules on demand
- always launch QACrules even when no rule are applied
- include all rules in QACrules.ahk
- in QACrules, disable Clipboard change when executing rule on demand and enable it after execution
- removed SetTimer in QACrules preventing call to exec rule on demand (cause not found)
- when uncomplied, create QACrules.ahk in the working dir
- reject equal sign = in rule names
- fix bug setting editor's font

Version ALPHA: 0.0.4 (2021-12-17)
- reafactor edit dialog box for substring type using radio buttons
- validate required values in edit dialog box
- add checkbox to inivisible characters only when Clipboard is unchanged in the editor
- disable the editor when the See invisible characters option is enabled
- disable the See invisible characters checkbox when content of editor is changed
- increase sleep time after rule execution

Version ALPHA: (2021-12-14)
- fix bug in rules file name

Version ALPHA: 0.0.3 (2021-12-14)
Status bar
- display Clipboard connection status only if disconnected
- show if content length is from Clipboard or Editor
- show content lenght if text, else show if binary or empty
Object model
- develop RuleTypes class
- develop Rule class with properties name (index key), category, notes, ID (index key) and values; methods GetCode(), CopyRule()
- enable rules using 2 listviews instead of checkboxes, with arrows to select/deselect/deselect all rules
- align Appy rules button to Selected rules listview
- make available rules larger with columns for type and category
- when showing gui or applying rules, backup selected rules to restore them if rules changes are not applied
- sort available rules by name unless user change sorting using the header
- double click to select a rule
- buttons to add, edit, copy or remove rules
- dialog box to select type of added rule
- dialog box to add/edit/copy rule
- allow editor font up to size 36
- remove Cancel button and merge it with Close button
Settings file
- save options to ini file on exit
- encode pipes in values saved to ini file
- load whole Rules section from ini file and parse lines
- save addes/edited/copied rule
- remove rule
- reload rules after saving edited or added rule
- encode values when saving to ini and decode when loading 
keep ending | separator when saving to ini file to protect values ending with space
Rules execution
- in QACrules.ahk only include selected rules
- get code for rule types prefix and suffix;

Version ALPHA: 0.0.2 (2021-11-26)
- redefine main window buttons to
  - "Save Clipboard": save editor content to Clipboard and reconnect the Clipboard
  - "Cancel": revert editor to current Clipboard content and reconnect the Clipboard
  - "Close": close the window if the editor content was not changed, or display "Discard changes?" prompt and act as "Cancel" if answer is Yes, else just close the window
- enable and disable "Save Clipboard" and "Cancel" buttons and "File" menu items following changes in editor control
- keep "Close" button always enabled
Menu bar
- change "File" menu items action:
  - "Save Clipboard" to same action as the "Save Clipboard" button
  - "Cancel": same action as "Cancel" button
  - new menu item "Close": same action as "Close" button
- move and resize buttons and controls
Options checkboxes
- add "Always on top" checkbox to editor window with value "AlwaysOnTop" in ini file
- add "Use tab" checkbox to allow tabs in editor with value "UseTab" in ini file;
Status bar
- display on main window status bar:
  - editor's content length (with temporary debugging info)
  - Clipboard "connection" status (with temporary debugging info)
Editor's context menu
- replace editor control context menu to manage Clipboard connection
  - enable or disable context menu items based on selected text, Clipboard content or editor changed status
  - intercept Ctrl+C and Ctrl+V in editor to disable Clipboard connection when using these keys in the editor
- take a backup of rules checkboxes when showing the main window; if the window is closed without applying changed rules, restore backup values and alert user with a tooltip
- change JLicons required version number to v1.6.3

Version ALPHA: 0.0.1 (2021-11-14)
- repository creation
- main window with Clipboard editor and rules, with buttons "Save", "Save and Close" and "Close/Cancel" buttons
- menu bar with "File, Save Clipboard", "File, Cancel" and "File, Exit Quick Access Editor" menu items
- checkboxes for rules LowerCase, UpperCase, FirstUpperCase, TitleCase and Underscore2Space
- rules executed in temporary script QACrules.ahk called by QACrules.exe (AutoHotkey runtime) and removed when exiting the application