Sunday, January 27, 2008

v6.80.0043 - 2008-01-27 15:16

  • + Copy/Move Here To New Subfolder: Now supports "/" as alternative folder separator.
  • * Configuration | Tabs: renamed "Max number of tabs (0 for unlimited)" to "Maximum number of tabs (0 = unlimited)" and fixed a little bug when trying to open a new tab beyond the limit: Now you get a message that the limit is reached.
  • ! Free Keyboard Shortcuts dialog: The key "#" did not jump to the correct line in the list. Fixed.
  • ! Fixed some other glitches with box-colored list.
  • * In a box-colored list, the color of the sorted column is now determined automatically. Looks better.
  • + Scripting: Now you can force stepping (prompting) per command. Simply prefix a ? to the command. For example, the following script will goto Desktop (and remove any Visual Filters), and then prompt you before executing the sortby command:
      ::goto Desktop|::?sortby m, d
    Works as well with ID-based scripts:
      ::?#1016::?#101
  • * UDC dialog: Now, the obligatory fields are marked by a bold label.
  • * Favorite Folders/Files: removed the auto-sorting of those lists. Now *you* determine the order of your favorites! Much better, ain't it? You also can add separators to the menu by inserting "-" items.

Saturday, January 26, 2008

v6.80.0042 - 2008-01-26 12:24

  • + Menu File | Settings | Load Configuration...: Now can can load a configuration file (*.ini) from anywhere (not just from application path as it has been before)! However, to keep things in one place, a copy of that file will be auto-created in the application path (no overwriting will happen), and that copy will be used as the new configuration file.
  • * UDC dialog: The "Tips..." interface now allows you to copy selected parts of the information.
  • + UDC New: If a source is defined then the following variables in the Name field refer to the source: <srcbase>, <srcext>, <srctitle>, <srcver>, <srcmyyyymmdd>.
    They obviously correspond to <curbase>, <curext>, <curtitle>, <curver>, and <myyyymmdd>, which will now refer to the current item always (before they referred to the source if there was one).
  • + Copy/Move Here To New Subfolder: Now, you can define a whole new subpath (e.g. download\2008\new) as target. It will be created on the fly (if necessary).
  • + Configuration | Tabs: Added option "Always keep right end of tab bar empty". Ensures, independently of the setting of Max Tab Width, an empty space of 16 pixels at the right end of the tab bar. This space can be dbl-clicked to create a new tab, or right-clicked to pop a list of all tabs.
  • ! Fixed some glitches with iconized tabs.
  • ! Fixed some glitches with box-colored list.

Friday, January 25, 2008

v6.80.0041 - 2008-01-25 13:19

  • + Configuration Tabs On dbl-click: Added Iconize.
  • ! Tabs: Crash when the right-most tab was iconized. Fixed.

v6.80.0040 - 2008-01-25 11:44

  • +++ Tabs: Now tabs can be iconized! Shrunk to the size of an icon. Mindblowing space saver! Handling is ultra-simple: Find new option "Iconize" in tab's context menu.
  • + Configuration Tabs: Now you can define a maximum tab width. Default is 250 pixels. Set to 0 to have it as it has been all the time before: Tabs use all space available.
  • + Tabs: If you set a maximum tab width you will also get a guaranteed empty space (16 pixels) at the right end of the tab bar. Dbl-clicking this space will now open a new tab (clone of current tab). Right-clicking this space will popup the Tab List (which now has icons!).
  • + Also improved the tabs' background graphics (if you use themes) and insertion point icon (when dragging tabs to new position).
  • + Configuration Interface Colors: Added option "Apply box color to list". When checked, the list background color will adapt to the current tree boxed branch color.
  • + Info Panel Find Files Excluded Folders: Now the "Add Current" button will add the current path (as before), OR (new!) the path of the currently focused list item if different. That way you can quickly exclude folders right from a search results listing.
  • ! Info Panel Find Files Excluded Folders: Did not correctly remember folders with UNICODE characters in the name. Fixed.
  • ! CKS: "Find Files: Excluded Folders..." appeared twice, and "Find Files: Name..." was missing. Fixed.
  • ! Did not handle shortcuts to special system items (e.g. control panel items) correctly. Fixed.

Wednesday, January 23, 2008

v6.80.0032 - 2008-01-23 10:38

  • + Menu File: Added command "Swap Names" (Ctrl+Shift+F2). Swaps the names of two selected List items. Is identical to the scripting command ::swapnames.
  • + Configuration | Advanced: Added option "Default items only in shell context menu". Check to have a clean context menu without all those funky shell extensions. For purists only.
  • + Scripting got a new command:
    - SortBy
      Syntax: sortby [column name], |a|d
      - column name: first partial match from left wins, so e.g. "m" will be enough to identify the "Modified" column.
      - |a|d = toggle/default|ascending|descending
      toggle/default is the exact behavior when you'd click on that column header: reverses the order if the column is already sorted, otherwise sets the default order for that column.
      Examples:
        ::sortby        sorts by Name, toggle/default
        ::sortby n      ~
        ::sortby , a    sorts by Name, ascending
        ::sortby m, d   sorts by Modified, descending
        ::sortby MOD, d ~
  • * Catalog: Now, the Caption property of an item can be left empty and will NOT be hard-set to the Data property (the field below) automatically anymore. Instead the displayed caption of such an item will softly adjust to any changes in the Data property. That was probably a bad explanation but the change is good.
  • ! Raw View: Wrong line parsing with files that were mixed DOS/UNIX. Fixed.

Tuesday, January 22, 2008

v6.80.0031 - 2008-01-22 11:59

  • + Scripting got new commands:

    - MoveTo
      Syntax: moveto [location]
      Examples (use Go To dialog to test!):
         ::moveto D:\Archives\<dyyyy-mm-dd>

    - CopyTo
      Syntax: copyto [location]
      Examples (use Go To dialog to test!):
         ::copyto D:\Archives\<dyyyy-mm-dd>

    - BackupTo
      Syntax: backupto [location]
      Examples (use Go To dialog to test!):
         ::backupto D:\Archives\<dyyyy-mm-dd>

    - Rename
      Syntax: rename bat|re|sr|kc|ext, [pattern], |p
      - bat|re|sr|kc|ext =
        batch|regexp|search&replace|keepchars|extension
      - |p = no preview|preview
        (simply omit the argument to skip preview)
      Examples:
         ::rename bat, *-<myyyymmdd>, p
         ::rename bat, *-<myyyymmdd>
         ::rename , *-<myyyymmdd>
         ::rename re, \.html$>.htm, p
         ::rename sr, ü/ue
         ::rename kc, 0123456789, p
         ::rename ext, htm
    Note that the third example is a batch rename since "bat" is the first (=default) value for this option field.
  • * Scripting: when processing scripts stepwise, you now are presented a preparsed version of your script in the form:
      Command Name
      Arg1
      Arg2
      ...
    Helps you to immediately see if the parsing went alright.
  • + Scripting command "Goto". Addendum: while XYplorer accepts scripts in all places where a location to go to is expected (Address Bar, Catalog, Favorites, Goto UDC, etc...) the "Goto" scripting command is, of course, an exception! This will NOT work
      ::goto ::#222
    and is totally superfluous anyway because if it would work it would be identical to
      ::#222
  • + Free Keyboard Shortcuts dialog: Added keyboard support. You press your desired key (incl. Ctrl, Shift, Alt combos) and if it is in the list, it will be focused. Otherwise, if at least your key (without Ctrl, Shift, Alt) exists, its first occurrence will be focused. The Enter, ESC, and cursor keys are excluded from this service to keep the dialog efficiently usable for keyboarders.
  • + Info Panel Properties: Type and Location now support UNICODE.

Monday, January 21, 2008

v6.80.0030 - 2008-01-21 14:44

  • +++ Scripting: I took some time to decide about the scripting syntax to have it maximally easy, efficient and robust at the same time. Here's what I came up with.

    General Rules
    ~~~~~~~~~~~~~
    - A script begins with "::". Scripts can be concatenated to script batches:
      ::script::script::script ...
    - A script consists of a command name plus a couple of arguments separated by a separator. The separator is by default a comma (,) that MUST be followed by a blank. While the number of arguments varies between commands (some have even none), the general form of a script looks like this:
      ::command arg1, arg2, arg3
    Example:
      ::goto C:\
    Abundant blanks are okay. The following line works identical as the one above.
      ::command arg1 , arg2 , arg3
    - The order of arguments is fixed and given in each command definition. Any arguments can be left out in which case the default is taken.
      ::command arg1, , arg3 'arg2 are set to the default
      ::command arg1         'arg2 and arg3 ~ ~ ~ ~ ~ ~ ~
    - If one of your arguments happens to contain the argument separator + blank, parsing would fail. In this case you have to redefine the separator by the following command:
      ::sep [new separator]
    Example:
      ::sep ;::new a, b.txt; ; <curitem>
      creates a copy of the current item and calls it "a, b.txt"
    The redefined separator is valid until you redefine it again, or until the current script batch ends. IOW, it is automatically reset to comma if you call another script or script batch.
    - All predefined keywords in scripting ignore case, so A=a.
    - All arguments have leading and trailing blanks trimmed off.
    Abundant blanks are okay. The following two lines are equivalent
      ::command arg1, arg2, arg3
      ::command   arg1   ,   arg2   ,     arg3

    New Commands
    ~~~~~~~~~~~~
    Now, let's add some flesh to the bones! A couple of important commands are now available through scripting: Goto, Open, Openwith, and New! All four work identical to the corresponding UDC categories, so you can think of them as the UDC GUI rolled out into a line of characters.
    To test the examples paste them into the address bar and Enter.

    - Goto
      Syntax: goto [target location]
      Examples:
         ::goto C:\
         ::goto %temp%
    - Open
      Syntax: open [item to open]
      Examples:
         ::open "winzip32" -min
         ::open firefox
         ::open C:\Programme\Mozilla Firefox\firefox.exe
      Note that locations containing blanks do not have to be quoted.
    - OpenWith
      Syntax: openwith [application], s|m {= single|multi instance}
      Examples:
         ::openwith UEdit32
         ::openwith UEdit32, s
         ::openwith UEdit32, m
      Note that "s|m" means you have the option between s and m. The first option in such kind of arguments is always the default. So in this case, passing nothing is equivalent to passing s.
    - New
      Syntax: new [name], file|dir, [source]
      Examples:
         ::new new file.txt
         ::new NewFolder, dir
         ::new <dyyyy-mm-dd>.txt
         ::new <curbase>_<curver>.<curext>, , XYplorer.exe
  • ! Renaming files while they are previewed. Some heavy apps like Word and Acrobat Reader did not get enough time by XY to release their documents to let them be renamed. Fixed.

Sunday, January 20, 2008

v6.80.0029 - 2008-01-20 13:43

  • + Scripting: New command "swapnames". Will swap the names of the (first) two selected list items. Usage:
      ::swapnames
    This is the first "real" scripting-only command (more will follow soon), i.e. its functionality is only accessible via scripts. For a one-click interface use the Catalog, for one-stroke access create a Goto UDC with a custom keyboard shortcut (a new UDC category "Script" will come soon).
  • * Now, you see Command ID related information only when scripting is enabled. Keeps it tidy for the "illiterate".
  • + CKS dialog | Options button: Added two commands that help you getting those Command IDs up to the clipboard:
      Copy Command ID
      Copy-Append Command ID
    I also included the "::" scripting marker since it's very likely that youÄll want it there as well. So you find something like this ready for pasting:
      ::#1001::#1002::#1003 [...]

Friday, January 18, 2008

v6.80.0028 - 2008-01-18 12:39

  • ! Issue with Japanese (and probably other DBCS systems) when writing and reading non-ASCII characters to/from the INI. Might be fixed.
  • + Configuration | File Info Tips: added yet another extra field to the bottom of the list: "Junction Target". Shows, what a surprise, the target of NTFS junctions.

Thursday, January 17, 2008

v6.80.0027 - 2008-01-17 11:25

  • * Changed handling of UNICODE strings in the INI file. Might solve a related problem under some Windows locales.
  • * CKS dialog | menu captions: replaced " » " by ", " (as symbol for the TAB character) because upper ASCII characters are not correctly displayed in all Windows locales.
  • * Now, each finding (Search results) tab stores and remembers the path it was pointing to before it was turned into a finding tab (i.e. the current path in the moment you press F3). Now, when you Refresh (F5) an unlocked finding tab, this stored path will be used as current path when the tab returns to browsing mode.
    Note that this change will be rarely notable when "Synchronize tree with search location" (Config/General) is OFF. The differences will surface, however, when the search location was entered via the location combo (and differed from the current path at that moment). The "Synchronize..." setting will point the tree to the search location (or the *first* location in case of a multi-location search), whereas F5 will point the tree to the current path at the moment of the search.
    I admit this is a bit confusing... it might be better to always use the (first) search location and forget about the old current path at all... time will show...
  • * Now, the default in MRU-based auto-completion of drop-downs is "MatchAnywhere", before it was "MatchFromBeginning". Accordingly I reversed the logic/semantic of the INI Tweak:
  • + New INI Tweak. In the INI you'll find a new key:
      [Settings]
      AutoCompleteMatchFromBeginning=0
    Set it to 1 to only count a match from the beginning (left end) of the recently used strings. Else matching is counted anywhere in the string.
  • ! Could crash when pressing F5 on a search results tab while the mouse hovered the path column header. Fixed.