Revision history for Tk-JFileDialog 1.00 Date/time First version, released on an unsuspecting world. ... 1.5 Add binding to file listbox to select current file (like ). This is so that when selecting multiple files and keyboard focus is on the File listbox and an item is already highlighted, one can select that item with the keyboard, since will toggle the selection OFF. 1.6 Added -SortButton and -SortButtonLabel options. 1.61 Removed requirement for Tk::JDialog (use built-in Tk::Dialog instead). 1.62 Changed 3 instances of special variable to "$_" at lines 723, 724, and 726 to eliminate perl v5.20 warning: "Use of literal control characters in variable names is deprecated". 1.63 Clean up some window-manager grab and geometry issues. 2.0 * Fixed and closed rt.cpan bugs# 125539, 125544, 125552, and 125555. * Fixed several problems with enforcement of -Create option, particularly on MS-Windows (closes bug# 125539). * Fixed "-ShowAll" option / checkbox not showing hidden files / directories on M$-Windows (closes bug# 125544). * Fixed relative paths on Windows, ie. "C:FILE" by making JFileDialog "remember" the "CWD" for EACH drive-letter (Linux only has one CWD, closes bug# 125552). * Added options to show/hide the file and / or directory listboxes, and to forbid the user from changing directories. (-SgiwFileList and -ShowDirList (replaces -Chdir)). * Added a filter "list" (-FPatList) option and the ability to specify multiple file-extension filters in a single filter, separated by "|". * Added an option (-FPatOnly) to force user to select a file who's extension matches the fie-extension filter in effect. * Added a separate "Reset" button to restore the default path and / or file presented when opening the selection dialog and made these default values work properly. * Added an option (-maxwidth) to prevent the widget from growing very wide when a long list of files are selected, then added to the history dropdown. Default is 60 average character widths. * -Path and -File can now be set to initial (default) files. (Closes bug# 125555). * -SelDir is no longer a boolean flag, but numeric: Added options: -1 means user can't change directories, but must pick from the directory shown. 2 means user can select either files OR a directory. (0 and 1 still mean select File(s) or select a directory, as before). * -SelectMode = "single" or "browse" are now enforced when set, not allowing user to select more than one file. They are also the same mode ("browse") in the listboxes. * Converted the Filter entry to a JBrowseEntry to allow for a list of filters (new filter list option). * On M$-Windows, one can also specify a "Windows Favorites" folder as the -PathFile argument so that the links in that folder become the "Favorite Paths" drop-down list in the "Path" field instead of specifying a text file containing a list of "favorite" paths. ie. "c:/Users/uname/AppData/Roaming/Microsoft/Windows/Recent/". * Simplified window-appearance by combining the file / history and path / favorite path entry / dropdown lists by switching to JBrowseEntry widgets. (Tk::JBrowseEntry is now a prerequisite!) * Cleaned up some key bindings and default focusing for better keyboard usage. The -Chdir option has been changed to "-ShowDirList", as there is now also a similar "-ShowFileList" option. Developers using this option will need to change "-Chdir => 'YES'" to "-ShowDirList => 1). The -EDlgText option (user-set file error dialog message) is now depreciated (ignored - so developers don't have to change code) as the error dialog can now have several different messages. * The -DirLBCaption option now defaults to "Folders:" instead of "Directories:" on M$-Windows. 2.01 * Fixed: "Changes" file missing from MANIFEST, thus missing from MetaCPAN. 2.10 * Fixed critical bug that sometimes locked up application when path selected from the path history drop-down list. * Added -FNameList => arrayref option to allow developer to specify a reference to a specific list of filenames to display in the listbox for the user to select from. 2.20 * Added -nonLatinFilenames flag for use with international (non- low ASCII characters) file and directory-names to address a Perl UTF-8/unicode bug. Closes cpan bug (Feature-request)# 128958. * Added official license text and touched up docs. 2.30 * Add effort to make the popup dialog window transient (for window- managers). * Allow and clarify (document) the use of most regex characters in file patterns and pattern list (-FPat & -FPatList options). * Will now use Tk::JDialog in lieu of Tk::Dialog, if the former is installed. 2.31 2023/06/21 * Fix strict catch of undefined variable added in v2.30. :-/ * (Hopefully) Fixed Tk-errors in edge-cases where Tk suddenly "can't autoload the listbox functions" after turning off (hiding) the directory list and re-show()ing the window (we now always create both the file & directory listboxes and hide any that are not to be shown). * (Preemptive) - Make sure strict won't complain about undefined home directory variables (which differ between Windows and Linux). * Add test to test harness to test for and report on the availibility and usage of the optional Tk::JDialog module (for error dialogs). 2.40 2024/08/22 * Add new option: "-PreserveSelection" (boolean) to (if true) NOT replace any selected text in the PRIMARY selection cut-buffer with the selected/highlighted file chosen by this widget (Use case: text- editing applications with option to save selected text to a file (then chosen by JFileDialog), etc. Default is 0 (False) - replace selection w/selected file name as has previously been the case. * Automatically default-bind the key to the "Cancel button", if one is defined. * Update copyright year & touch up pod docs. 2.41 2025/05/13 * Add code to clean up paths when added to the history-list dropdown, namely convert any paths such as /home/user/project/subfolder/subsubfolder/../fn.txt to /home/user/project/subfolder/fn.txt, and /home/usr/./fn.txt to /home/usr/fn.txt. This was occasionally happening when user entered a relative filename path, ie. "../fn.txt relative to the current working directory. * Update copyright years to 2025.