XYZCommander changelog
----------------------

Version 0.0.4
=============

Overview
--------
* Tabs in navigation panels
* Auto-completion subsystem
* VFS caching
* New piece of documentation: XYZCommander overview
  (http://xyzcmd.syhpoon.name/static/doc/overview.pdf)

Configuration
-------------
* New variable cache_time (integer) in section vfs.
  Variable sets number of seconds during which VFS cache obsoletes.
  Default 60.

Skins
-----
* New attribute for selected buttons - button_active.
* New attribute for tab bar - tabbar
* New attribute for active tab - tabact

Events
------
* New event event:sys:panel:before_switch_tab.
  Fires before switching to another tab.

* New event event:sys:panel:switch_tab.
  Fires when switching to another tab.

* New event event:sys:panel:new_tab.
  Fires when new tab is added.

* New event event:sys:panel:del_tab.
  Fires when tab is deleted.

VFS
---
* Fixed bug when permission bits where ignored in recursive copying
* Implemented VFS objects caching. This highly improves non-local VFS
  handlers working speed.
* Implemented copy() method for tar VFS handler. That is it is now possible
  to copy objects from inside tar archives to local filesystem.

Plugins
-------
* New plugin - :core:complete.
  Plugin provides ability to auto-complete provided text in different domains.
  Currently three domains implemented: 
  * binpath - searches through directories defined in $PATH variable
  * fs - searches through filesystem hierarchy
  * service - searches through services in /etc/init.d

  Auto-completion function bound to META-Tab by default.

* New method :sys:cmd:get()
  Method retrieves current cmd contents.

* New method :sys:cmd:append()
  Method append string to the end of cmd.

* New method :sys:panel:new_tab().
  Create new tab.
  Bound to Ctrl-c c to create tab in active panel and to
  Ctrl-c C to create tab in inactive one.

* New method :sys:panel:del_tab().
  Delete tab.
  Bound to Ctrl-c d to delete tab in active panel and to
  Ctrl-c D to delete tab in inactive one.

* New method :sys:panel:switch_tab().
  Switch to particular tab.
  Bound to Ctrl-c [0-9] to switch to tab with provided index in active panel
  and to Ctrl-c SHIFT-[0-9] to switch to tab in inactive one.

* New method :sys:panel:next_tab().
  Switch to the next tab.
  Bound to Ctrl-c n to switch to the next tab in active panel and to
  Ctrl-c N to switch to the next tab in inactive one.

* New method :sys:panel:prev_tab().
  Switch to the previous tab.
  Bound to Ctrl-c p to switch to the previous tab in active panel and to
  Ctrl-c P to switch to the previous tab in inactive one.

* New method :sys:cmd:get().
  Method allows to get current command line contents.

* New method :sys:panel:get_tabs().
  Return list of tabs in format (path, selected_entry_name).

* New method :sys:panel:active_tab().
  Return index of currently active tab.

* Plugin :misc:where is extended to save/restore tabs as well

Version 0.0.3
=============

Overview
--------
* Python2.4 support
* Permanents filters
* Custom sorting
* High-color mode support with urwid >= 0.9.9
* New command line options: -c colors and -s skin
* XYZCommander's system prefix can be set using XYZCMD_PREFIX environment
  variable in case of custom installation, by default it is equal
  to sys.prefix.

Configuration
-------------
* New internal cmd "alias" is used to print all xyzcmd's aliases.

* New DSL method - section().
  Return whole configuration section contents as a dictionary or None.

* New DSL method - fsrule().
  Return libxyz.core.FSRule instance from string.

* New DSL method - palette().
  Create internal palette object.

* New DSL method - skin().
  Make and register new skin.

* New option 'term_colors' in main.xyz. It defines color mode.
  Valid values are: 1, 16 (default), 88 and 256. It also can be defined
  using -c command line flag.

Plugins
-------
* New method :sys:panel:get_untagged()
  Method returns list of not tagged VFSObject instances.

* New method :core:shell:echo()
  Method allows to show any custom string similar to command output.

* Added two hooks to :sys:cmd plugin to save command history on
  exit and to restore its contents upon startup.

* :core:shell receives a 'wait' configuration flag, indicating
  whether to wait for user input after command executed.

* :core:shell receives a 'setup_shell' configuration flag,
  indicating whether to run system shell-specific initialization.

* :sys:panel receives five new filter-related variables:
  filters_enable - enables object filtering
  filters_policy - dtermines filtering policy
  fitlers - list of FSRules to be sequentially applied on objects
  sorting_policy - Active sorting policy name or None
  sorting - Defined sorting policies. Each key corresponds to a policy
            name and value is either a function with two arguments (VFSObject)
            behaving like cmp() or a list of those functions.
            If value is a list, each function applied sequentially.

* New method :sys:panel:filter
  Method takes a list of VFSObject objects and filters out entries according to
  filters defined in plugin configuration.

* New method :sys:panel:sort
  Method takes a list of VFSObject objects and sorts entries according to
  sorting policy defined in plugin configuration.

UI
--
* New shortcut - (META-=) to quickly change directory in active panel
  to the same as in the inactive one.

Skins
-----
* Skins were completely reworked. Now skin file uses python syntax and
  DSL helper functions: skin and palette to define new skin

* High-color mode now supported with urwid version >= 0.9.9.

* New high-color mode skin added - lighty.

Version 0.0.2
=============

Core
----
* New events and hooks mechanism.
  It is now possible to set own hooks on all events.

Plugins
-------
* New method :vfs:vfsutils:remove()
  Method shows a dialog for [recursively] deleting VFSObjects.
  Bound to F8.

* New method :vfs:vfsutils:copy()
  Method shows a dialog for [recursively] copying VFSObjects.
  Bound to F5.

* New method :vfs:vfsutils:move()
  Method shows a dialog for [recursively] moving VFSObjects.
  Bound to F6.

* New plugin :misc:where.
  Plugin provides an ability to load/restore path locations on both panels

* New plugin :fsrules:magic.
  Plugin adds an ability to match files based on magic database.

UI
--
* New box widget: ButtonBox.
  Widget shows a dialog box with custom buttons.

* New method :sys:panel:get_active()
  Method returns list of tagged VFSObject instances or list of single selected
  object if none tagged.

* New method :sys:panel:get_current().
  Method returns VFSObject instance of current directory.

* New method :sys:panel:vfs_driver().
  Method returns vfs driver used by current object

* New method :sys:cmd:put().
  Method allows to put arbitrary string to command line.

* New method :sys:panel:search_cycle().
  Method allows to search objects in current
  working directory in direction downwards-from up to selected file.
  Set this method as default binding for META-S.

Skins
-----
* New box rule attribute - input.
  It is used for any text input widgets

VFS
---
* Implemented Tar VFS module. Default actions set to use it on
  *.tar, *.tar.gz and *.tar.bz2 named files.

