diff --git a/README.md b/README.md index bad1e440..6a0578d3 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ In case you fork the repository or clone it to your desktop, in the [README_Sour ### Copyright and license The initial developer of KeyNote is Marek Jedlinski, copyright 2000-2005. -The adaptation to Delphi 2006 and the new functionalities added since version 1.7.0 corresponds to Daniel Prado Velasco, copyright 2007-2023. +The adaptation to Delphi 2006 and the new functionalities added since version 1.7.0 corresponds to Daniel Prado Velasco, copyright 2007-2024. In august 2023, with the version 1.8.0, the code was migrated from Borland Delphi 2006 to to Embarcadero Delphi CE 11.3 (Community Edition 11.3 Alexandria). Code released under the [Mozilla Public License 2.0](./LICENSE.txt). This license applies only to units written by the authors of KeyNote and KeyNote NF: Marek Jedlinski and Daniel Prado, respectively. diff --git a/Setup.iss b/Setup.iss index 32ebd990..42989942 100644 --- a/Setup.iss +++ b/Setup.iss @@ -4,8 +4,8 @@ #define AppName "KeyNote NF" #define AppFileExe "keynote.exe" -#define Version "1.8.3.1" -#define AppVersion "1.8.3 .01" +#define Version "1.8.4.1" +#define AppVersion "1.8.4 .01" ;#define AppVersion GetVersionNumbersString("..\Output\bin\keynote.exe") #define DefaultProfile "{app}\Profiles\Default" @@ -16,12 +16,12 @@ [Setup] -TouchDate=2023-12-29 -TouchTime=16:00 +TouchDate=2024-01-27 +TouchTime=21:00 AppName={#AppName} AppVersion={#AppVersion} VersionInfoVersion={#Version} -AppCopyright=Copyright (C) 2007-2023 Daniel Prado Velasco (C) 2000-2005 Marek Jedlinski +AppCopyright=Copyright (C) 2007-2024 Daniel Prado Velasco (C) 2000-2005 Marek Jedlinski ;AppComments= AppContact=Daniel Prado Velasco AppPublisher=Daniel Prado Velasco diff --git a/doc/Changes in 1.8.4 .01.txt b/doc/Changes in 1.8.4 .01.txt new file mode 100644 index 00000000..62908724 --- /dev/null +++ b/doc/Changes in 1.8.4 .01.txt @@ -0,0 +1,173 @@ + +Changes in 1.8.4 .01 (27 ene 2024) +================================= + +* Fixed (IMPORTANT): Images and alarms can be removed from .knt file if it is saved after the New or Open actions. + See detailed description of the problem in issue #641 + +* Fixed: Using View|Show Images (or button) showed the Editor content at 100% zoom, ignoring custom zoom applied +* Fixed: Remove KNT hidden characters from text obtained with "Copy node name" (with Shift) +* Fixed: Do not allow to insert images with Insert|Picture... in plain text virtual nodes +* Fixed: Update "Show Images" state after changing selected node + +* FontSizesInHeading defaults now to "18,2,12" +* Optimizations in Replace All + +* Replaced ini option: IgnoreCtrHideTrePanel (default 0) -> UseCtrlHideTreePanel (default 1) + +* Menus: Added some icons, and other minor UI changes +* Alarms: Revised menu options and toolbar buttons. Other minor fixes + +* Favorite items can be relative to Keynote.exe + External items (programs or documents) can be entered with paths relative to the folder where KeyNote + is installed (where the .exe is located). + The locations can be modified directly in the .fvr file (where favorites are saved) and will also be + interpreted as relative paths to keynote.exe. + +* New: Allowed links relative to keynote.exe file + + Now you can create links relative to the folder where KeyNote is installed (where .exe is located). + Just use ">>" as in the following examples: + If keynote.exe is installed in C:\APL\KeyNote NF and you want to create a relative link + to "C:\APL\KeyNote NF\Profiles\Profiles.txt" you can use: + "file:///>>Profiles\Profiles.txt" + (or "file:///>>\Profiles\Profiles.txt") + (or simply type ">>Profiles\Profiles.txt" in the URL field of a hyperlink) + + If you want to refer to "C:\APL\Notepad++\Change.log" as a path relative to Keynote setup folder: + "file:///>>..\Notepad++\Change.log" + + +* It is allowed to select whether to include links to files/folders as relative or absolute + * Relative: to the folder where current .knt file is located + + -> Added a checkbox to Import window, to select 'Relative'. + -> When adding folders, the links are added without prompting. To insert relative, press Alt while dropping + -> Similarly, when adding files wiht Insert | Link to file... press Alt+Open on dialog to insert as relative path + +* Links: Added two INI options: URLFileEncodeName and URLFilePrefNoHyp + + - KeyOptions.URLFileEncodeName + 0 (default) - Names will not be URL-encoded. Specifically, spaces will not be converetd to %20 + (link will be enclosed between < and >) + 1 - Names will not be URL-encoded, as before + + This affects to File URLs created without hyperlinks, using URL recognition of RTF Editor, + for example in Plain text notes. + As a consequence, a link to "E:\Test\NAME OF NOTE.txt" will be created in a plain text note as: + URLFileEncodeName=0 -> + URLFileEncodeName=1 -> 'E:\_Pruebas\NAME OF NOTE.txt' (file:///E:\_Pruebas\NAME%20OF%20NOTE.txt) + + - KeyOptions.URLFilePrefNoHyp ( Preferably use simple links, not hyperlinks) + 0 (default) - Links to file will always created as hyperlinks if possible (in plain text notes it isn't) + 1 - When inserting a link to a file or directory with Insert | Link to file.. or with drag and drop, + the link will not use hyperlinks. It will insert the path adding "file:///" and enclosing with < and > if + necessary. + What you see in the Editor is then the URL, that you can modify directly. + Note: Editing the link with the dialog will always create a hyperlink + + If KeyOptions.URLFilePrefNoHyp = 1 and KeyOptions.URLFileEncodeName=0, dragging the following files + in a normal note will be inserted as + "E:\Test\NAME.txt" -> file:///E:\Test\NAME.txt + "E:\Test\NAME OF NOTE.txt" -> + + If KeyOptions.URLFilePrefNoHyp = 1 and KeyOptions.URLFileEncodeName=1, dragging the following files + in a normal note will be inserted as + "E:\Test\NAME.txt" -> file:///E:\Test\NAME.txt + "E:\Test\NAME OF NOTE.txt" -> E:\Test\NAME OF NOTE.txt (it will use hyperlink) + + If KeyOptions.URLFilePrefNoHyp = 0, then all those links will be created as hyperlinks. + + Note that editing any link with the action Create or Modify or from the dialog window will always convert that links in it's + hyperlink version. + +* Fixed: Activation of relative links of the form file:///... + + Absolute paths with file prefix worked ok: file:///E:\readme.txt + + Relative paths such as file:///readme.txt worked when included as URL field in a hyperlink created by KeyNote + (dropping a file or using Insert URL) and URLFileNoPrefix=1 (default). + But didn't work when directly typed (using URL recognition of RTF Editor and with "Detect and highlight URLs" enabled) + nor when included in a hyperlink and URLFileNoPrefix=0 + + Note that relative paths such as file://readme.txt will still not be recognized. + (while "file:///foo.txt" is valid, "file://foo.txt" is not, although some interpreters manage to handle the latter) + [http://en.wikipedia.org/wiki/File_URI_scheme] + + Activation will also work now with URLFileQuoteSpaces=1 (default=0) + + Note that URLFileQuoteSpaces and URLFileNoPrefix are INI Options included in early versions of KeyNote mostly with + XP in mind. Currently there is no necessity of modifying their default values: + URLFileNoPrefix=1 + URLFileQuoteSpaces=0 + +* Simplify insertion of external files links on plain text notes + + Instead of using something like: + 'E:\readme.txt' (file:///E:\readme.txt) + + Use simply: + file:///E:\readme.txt + + +* Fixed: Insertion of KNT Links in plain text note should use new style + + The new style uses note and node IDs instead of names. More robust. + + Instead of inserting like this: + 'MyNOTE/NodeB' (file:///?MyNOTE|NodeB|693|0|1) + + Now it will insert: + 'MyNOTE/NodeB' (file:///*14|1|693|0|1) + + In both cases Prompt action (eg. rigth click) will open Choose Action for Hyperlink dialog, where we + will see the full path of the target. + + +* Fixed: Corrected the interpretation of several KNT Links variants + + Revised the interpretation of: + NodeID: + If the target note is a simple note, the NodeID section will be ignored + If the target note is a tree type note, a blank, <=0 or not valid integer value will be ignored. + The link will point directly to the note, without changing current selected node. + + CaretPosition: + A negative value means not to change it. + + SelectionLength: + A negative value means not to change current selection. + + For example: + + file:///*1|12|30 + ...in current file, switch to the note with ID=1, select the node with ID=12 in the tree, and place the cursor on the 30th character, with no characters selected. + + file:///*1|12|-1 + ...same as above, but without changing cursor position + + file:///*1|12|-1|-1 + ...same as above, but without altering the current selected text + + file:///*1 + ...in current file, switch to the note with ID = 1. Place the cursor at the start of the current selected node (or the simple note), with no characters selected. + + file:///*1||0 + ...same as above + + file:///*1||40 + ...in current file, switch to the note with ID = 1. Place the cursor on the 40th character of the current selected node, with no characters selected. + + file:///*1|-1|40 + ...same as above + + file:///*1||-1 + ...same as above, but without changing cursor position + + file:///*1||-1|-1 + ...same as above, but without altering the current selected text + + Also valid with old format style. Example: + file:///?MyNote + file:///?MyNote||-1 + diff --git a/doc/License_agreement.txt b/doc/License_agreement.txt index a1836a14..9e60fd34 100644 --- a/doc/License_agreement.txt +++ b/doc/License_agreement.txt @@ -1,4 +1,4 @@ -Copyright (c) 2007-2023 Daniel Prado Velasco +Copyright (c) 2007-2024 Daniel Prado Velasco Copyright (C) 2000-2005 Marek Jedlinski KeyNote NF is free. You don't have to pay for it, and you can use it any way you want. It is developed as an Open Source project under the Mozilla Public License, v.2.0 (MPL 2.0). That means you have full access to the source code of this program. You can find it at https://github.com/dpradov/keynote-nf diff --git a/doc/history.txt b/doc/history.txt index 4af73d70..f184a86f 100644 --- a/doc/history.txt +++ b/doc/history.txt @@ -3,6 +3,34 @@ ## Remember to make backups of .knt files. Recommended option: 'Backup at regular intervals' +v 1.8.4 .01 (27 ene 2024) +-------------------------- +(Detailed info in doc\Changes in 1.8.4 .01.txt) + +* Fixed (IMPORTANT): Images and alarms can be removed from .knt file if it is saved after the New or Open actions. + +* Fixed: Using View|Show Images (or button) showed the Editor content at 100% zoom, ignoring custom zoom applied +* Fixed: Remove KNT hidden characters from text obtained with "Copy node name" (with Shift) +* Fixed: Do not allow to insert images with Insert|Picture... in plain text virtual nodes +* Fixed: Update "Show Images" state after changing selected node + +* Optimizations in Replace All +* Replaced ini option: IgnoreCtrHideTrePanel (default 0) -> UseCtrlHideTreePanel (default 1) + +* Menus: Added some icons, and other minor UI changes +* Alarms: Revised menu options and toolbar buttons. Other minor fixes + +* Favorite items can be relative to Keynote.exe +* New: Allowed links relative to keynote.exe file +* It is allowed to select whether to include links to files/folders as relative or absolute +* Links: Added two INI options: URLFileEncodeName and URLFilePrefNoHyp +* Fixed: Activation of relative links of the form file:///... +* Simplify insertion of external files links on plain text notes +* Fixed: Insertion of KNT Links in plain text note should use new style +* Fixed: Corrected the interpretation of several KNT Links variants + + + v 1.8.3 .01 (29 dec 2023) -------------------------- (Detailed info in doc\Changes in 1.8.3 .01.txt) diff --git a/general/kn_Const.pas b/general/kn_Const.pas index 5de68e74..644da8fe 100644 --- a/general/kn_Const.pas +++ b/general/kn_Const.pas @@ -119,16 +119,16 @@ procedure DefineConst; const Program_Name = 'KeyNote NF'; - Program_Version = '1.8.3 .01'; - Program_Version_Number = '1.8.3.1'; - Program_Version_Date = '29/12/2023'; + Program_Version = '1.8.4 .01'; + Program_Version_Number = '1.8.4.1'; + Program_Version_Date = '27/01/2024'; Program_License = 'Free software, Open Source (Mozilla Public License 2.0)'; Program_URL = 'https://github.com/dpradov/keynote-nf'; //'http://keynote.prv.pl'; Program_URL_Donations = 'https://github.com/dpradov/keynote-nf/tree/master#donations'; Program_Email1 = 'dprado.keynote@gmail.com'; Program_Email2 = 'marekjed@users.sourceforge.net'; - Program_Credit1 = 'Copyright © 2007-23 Daniel Prado Velasco (since 1.7.0)'; + Program_Credit1 = 'Copyright © 2007-24 Daniel Prado Velasco (since 1.7.0)'; Program_Credit2 = 'Copyright © 2000-05 Marek Jedlinski'; UniqueAppName_KEYNOTE10 = 'GFKeyNote10'; diff --git a/general/kn_about.dfm b/general/kn_about.dfm index 47d1702a..423cfd39 100644 --- a/general/kn_about.dfm +++ b/general/kn_about.dfm @@ -47,7 +47,7 @@ object AboutBox: TAboutBox AutoSize = False Caption = 'Donate with PayPal' Font.Charset = ANSI_CHARSET - Font.Color = clNavy + Font.Color = clBlue Font.Height = -11 Font.Name = 'Verdana' Font.Style = [] diff --git a/keynote.dproj b/keynote.dproj index 920c5ce6..2ee5147a 100644 --- a/keynote.dproj +++ b/keynote.dproj @@ -119,8 +119,8 @@ gdiScaling 8 - 3 - CompanyName=;FileDescription=KeyNote NF 1.8.3 .01;FileVersion=1.8.3.1;InternalName=;LegalCopyright=(c) Daniel Prado 2007-23 (c) Marek Jedlinski 2000-05;LegalTrademarks=Free software, MPL 2.0;OriginalFilename=keynote.exe;ProductName=KeyNote NF (New Features);ProductVersion=1.8.3.1;Comments=;ProgramID= + 4 + CompanyName=;FileDescription=KeyNote NF 1.8.4 .01;FileVersion=1.8.4.1;InternalName=;LegalCopyright=(c) Daniel Prado 2007-23 (c) Marek Jedlinski 2000-05;LegalTrademarks=Free software, MPL 2.0;OriginalFilename=keynote.exe;ProductName=KeyNote NF (New Features);ProductVersion=1.8.4.1;Comments=;ProgramID= VCL;$(DCC_Define) 1 @@ -137,8 +137,8 @@ gdiScaling 8 - 3 - CompanyName=;FileDescription=KeyNote NF 1.8.3 .01;FileVersion=1.8.3.1;InternalName=;LegalCopyright=(c) Daniel Prado 2007-23 (c) Marek Jedlinski 2000-05;LegalTrademarks=Free software, MPL 2.0;OriginalFilename=keynote.exe;ProductName=KeyNote NF (New Features);ProductVersion=1.8.3.1;Comments=;ProgramID= + 4 + CompanyName=;FileDescription=KeyNote NF 1.8.4 .01;FileVersion=1.8.4.1;InternalName=;LegalCopyright=(c) Daniel Prado 2007-23 (c) Marek Jedlinski 2000-05;LegalTrademarks=Free software, MPL 2.0;OriginalFilename=keynote.exe;ProductName=KeyNote NF (New Features);ProductVersion=1.8.4.1;Comments=;ProgramID= VCL;$(DCC_Define) true keynote_Icon.ico diff --git a/keynote.res b/keynote.res index 4ef3791b..aac1a58a 100644 Binary files a/keynote.res and b/keynote.res differ