Dual Pane - Formal Proposal Thread
Posted: 01 Apr 2008 15:54
For those of you who have been following this thread: http://www.xyplorer.com/xyfc/viewtopic.php?t=1979
...Don has been kind enough and generous enough to agree to implement Dual Pane into XYplorer 8.0, providing that the users interested in DP can agree on a clear and simple concept.
I started this thread for the purpose of having a clean place to discuss this. This first post will contain the DP parameters that are currently on the table, and I will update them to reflect the results of our discussion.
I'll start this off with the initial list of requirements that I posted in the other thread, and update as needed.
Dual Pane Proposal - v1.22
Last updated - 2008-11-24
Main Features
Quick to turn on and quick to turn off
XY should be able to switch quickly and cleanly from single pane to dual pane and vice versa. It also needs to be able to do this via keyboard shortcuts.
Resizeable panes
Self explanatory, you should be able to drag the boundry where you need it, and have an easy way to reset it to the default halfway point (such as double-clicking the boundry point).
Seperate trees for each pane
Each pane needs to have it's own tree, for various reasons of efficiency (see original thread, referenced above).
However, as some people prefer a single shared tree, XY should give users the choice of single or seperate trees.
Last used Tabs for the second pane
There should be a general configuration option for XY to behave in one of two ways:
Option 1 - Restore the exact tabs that were last used with the second pane. If one of the directories doesn't exist, XY can behave as it currently does (just don't generate a dialog box error).
Option 2 - Always open the second pane with a single tab, and allow users to configure which directory this tab should always start in. If this directory can't be found, XY can behave as it currently does (just don't generate a dialog box error).
Methods of differentiating which pane is active
Even if you have a seperate tree for each pane, you still need to always have one pane set as the active pane. This is necessary to account for many actions that could be executed - KB shortcuts, for example. However, personally, I find it extremely annoying when the entire background of the pane changes color to indicate this. As I said in an earlier post, I feel like I'm about to have an epileptic seizure when I'm constantly switching from one pane to the other.
PowerDesk Pro has a good implementation of this - it has a single header bar for each pane which lists the path of the directory that's active in that pane. The active pane has that bar shaded in gray. This way, it's easy to tell which pane is active, but it's a subtle change when you switch from one to the other.
With XY's use of tabs, it may not be necessary to indicate which pane is active - only which Tab is active. If this approach is taken, one idea is to allow users to configure the color of the tab stripe of the active tab.
Some users would prefer to configure the background colors of the active and inactive panes. As XY already allows you to customize many of the colors, including the pane color, it should be easy to add both of these options.
Proper integration with the file manager's features
Simply put, anything you can do while in single pane mode, you should be able to do in dual pane mode - with respect to the active pane. This is how the Address Bar, Toolbar, etc... would work. The file manager should never need to be crippled when working in dual pane mode, and each pane should be treated seperately. Additional actions can be implemented that will affect both panes, but this should not take away the default actions that work on a per-pane basis.
For example: As it pertains to XY, Shift-/ closes all branches except the active one. If you're in dual pane mode, Shift-/ should only work on the active pane. If it's desired, an additional KB shortcut can be implemented that will do this in both panes simultaneously - but not at the expense of the default option of acting on only the active pane.
Synchronized Scrolling
This feature is one that would be turned on or off as needed. The base function of this feature, when enabled, will allow the dual panes to scroll in synch. If the two panes have a different number of files, the scrolling on the inactive pane will be proportional (i.e. when you've scrolled to the halfway point of the active pane, the inactive pane will also be at the halfway point).
If you select a file/folder in one pane, and the same item exists in the other - the inactive pane will move the focus to the matching item, and automatically scrolls as necessary to put the matching item in view.
If you select multiple items, each matching item in the inactive pane will also be marked, and the inactive window will autoscroll to the most recently matched item.
If you subsequently click in the inactive pane, without cancelling your selection in the first, the inactive pane becomes active and all the marked items retain their selections so that you can act on those files.
Although items may be simultaneously selected in both panes, any actions taken (such as deleting files) will only affect the active pane, unless a special command is created specifically designed to work in both.
Visual Comparison Filter
This feature would let you select which criteria (or combination of criteria) to use as a comparison of the two panes, and you would have the following choices:
1. Show only matching items, based on the criteria selected.
2. Hide matching items, based on the criteria selected.
Criteria (Suggestions requested for other important criteria):
1. File name (Text box - entries of "*", "*.*", or leaving it blank will only match file names that are completely identical. However, this field should have the same functionality as the current "Set Visual Filter" feature, which means that pattern matching with wildcards and RegEx would also be supported.
2. Modification Dates
This is really just an extention and enhancement of the current "Set Visual Filter" feature. To be honest, it can use the exact same style dialog box, as long as support is added for the "AND" boolean, as well as extended items (i.e. Modification Dates, Attributes, etc...).
Keyboard Shortcut Actions
Adding appropriate actions that can be assignable to keyboard shortcuts, such as "Copy to other pane" and "Move to other pane". These commands would be based on files/folders selected in the active pane, and would copy/move to the inactive pane. However, if Don should be ambitious enough to add the ability to have three panes, good luck figuring out how these commands should be targeted.
Also, the action of switching which pane is the active one.
Scripting Support
Appropriate support within scripting to reference specific panes, if desired.
Special Details
Status Bar
There are good arguments for both a shared or dual Status Bar. The dual Status Bar gives the most information, however, it takes up additional space when using DP in top-bottom mode, and the available width is halved in left-right mode. Therefore, this will need to be a user-configurable option.
Tab Implementation
Each pane would support tabs independently. Features such as Home Location, Locking, Iconify, etc... that are designed to work on a per-tab basis will continue to work in that way. The Default Tab feature has a limit of one tab - but it makes sense for this to be set independently for each pane. Search Result tabs could exist on either pane and would be based on the active pane at the time the search is run.
Catalog
For simplicity's sake, there will be only one Catalog (insofar as its contents), unless Don changes this in general for XY. For simplicity's sake, we can retain the current implementation of a single Catalog pane, which would work as it currently does, and act on whichever Tab is active (regardless of which pane it's in).
It will show up as it does now - as a docked pane that pops up at the bottom of the tree pane. In top-bottom DP, it would show up in the bottom of the bottom tree (if using seperate trees), and in left-right DP it would show up in the bottom of the left tree
Info Panel
There should be a user-configurable option for either a single shared Info Panel, or dual Info Panels, as there will be significant variation in people's preferences here.
Scroll Wheels
Currently, XY scrolls whichever pane the mouse cursor is hovering over (e.g. the file list pane or the tree). This behavior should remain consistent with the addition of the second pane, so that the cursor location determines which pane (or the tree) is scrolled when a scroll wheel is used.
----------------------------------------------------
Version History
1.0 - 2008-04-01 - Mesh's original list
1.1 - 2008-04-01 - Added sections on Status Bar and Tab Implementation. Edited Tab Implementation.
1.11 - 2008-04-01 - Modified and renamed "Last used directory for the second pane" to account for each pane supporting Tabs
1.12 - 2008-04-01 - Removed "Remembered configuration for the second pane" section - it was no longer necessary, given the new "Last used Tabs for the second pane" section.
1.13 - 2008-04-01 - Restructured proposal to seperate core features, and the details of how DP would integrate into XY's current UI and feature set. Added "Catalog" section. Modified "Methods of differentiating which pane is active" section.
1.14 - 2008-04-01 - Added "Info Panel" section.
1.15 - 2008-04-03 - Minor changes to "Methods of differentiating which pane is active" section.
1.16 - 2008-04-03 - Added sections - "Synchronized Scrolling" and "Visual Comparison Filter"
1.17 - 2008-04-03 - Minor changes to the "Visual Comparison Filter" section.
1.18 - 2008-04-08 - Minor changes to "Synchronized Scrolling" section, to make it clear that this feature can be toggled, and is not always on.
1.19 - 2008-04-14 - Changes made to "Last used Tabs for the second pane", "Status Bar", "Tab Implementation", "Catalog", and "Info Panel" sections.
1.20 - 2008-06-12 - Added section - "Scroll Wheels".
1.21 - 2008-11-23 - Added section - "Keyboard Shortcut Actions".
1.22 - 2008-11-24 - Added section - "Scripting Support". Modified "Keyboard Shortcut Actions" section.
...Don has been kind enough and generous enough to agree to implement Dual Pane into XYplorer 8.0, providing that the users interested in DP can agree on a clear and simple concept.
I started this thread for the purpose of having a clean place to discuss this. This first post will contain the DP parameters that are currently on the table, and I will update them to reflect the results of our discussion.
I'll start this off with the initial list of requirements that I posted in the other thread, and update as needed.
Dual Pane Proposal - v1.22
Last updated - 2008-11-24
Main Features
Quick to turn on and quick to turn off
XY should be able to switch quickly and cleanly from single pane to dual pane and vice versa. It also needs to be able to do this via keyboard shortcuts.
Resizeable panes
Self explanatory, you should be able to drag the boundry where you need it, and have an easy way to reset it to the default halfway point (such as double-clicking the boundry point).
Seperate trees for each pane
Each pane needs to have it's own tree, for various reasons of efficiency (see original thread, referenced above).
However, as some people prefer a single shared tree, XY should give users the choice of single or seperate trees.
Last used Tabs for the second pane
There should be a general configuration option for XY to behave in one of two ways:
Option 1 - Restore the exact tabs that were last used with the second pane. If one of the directories doesn't exist, XY can behave as it currently does (just don't generate a dialog box error).
Option 2 - Always open the second pane with a single tab, and allow users to configure which directory this tab should always start in. If this directory can't be found, XY can behave as it currently does (just don't generate a dialog box error).
Methods of differentiating which pane is active
Even if you have a seperate tree for each pane, you still need to always have one pane set as the active pane. This is necessary to account for many actions that could be executed - KB shortcuts, for example. However, personally, I find it extremely annoying when the entire background of the pane changes color to indicate this. As I said in an earlier post, I feel like I'm about to have an epileptic seizure when I'm constantly switching from one pane to the other.
PowerDesk Pro has a good implementation of this - it has a single header bar for each pane which lists the path of the directory that's active in that pane. The active pane has that bar shaded in gray. This way, it's easy to tell which pane is active, but it's a subtle change when you switch from one to the other.
With XY's use of tabs, it may not be necessary to indicate which pane is active - only which Tab is active. If this approach is taken, one idea is to allow users to configure the color of the tab stripe of the active tab.
Some users would prefer to configure the background colors of the active and inactive panes. As XY already allows you to customize many of the colors, including the pane color, it should be easy to add both of these options.
Proper integration with the file manager's features
Simply put, anything you can do while in single pane mode, you should be able to do in dual pane mode - with respect to the active pane. This is how the Address Bar, Toolbar, etc... would work. The file manager should never need to be crippled when working in dual pane mode, and each pane should be treated seperately. Additional actions can be implemented that will affect both panes, but this should not take away the default actions that work on a per-pane basis.
For example: As it pertains to XY, Shift-/ closes all branches except the active one. If you're in dual pane mode, Shift-/ should only work on the active pane. If it's desired, an additional KB shortcut can be implemented that will do this in both panes simultaneously - but not at the expense of the default option of acting on only the active pane.
Synchronized Scrolling
This feature is one that would be turned on or off as needed. The base function of this feature, when enabled, will allow the dual panes to scroll in synch. If the two panes have a different number of files, the scrolling on the inactive pane will be proportional (i.e. when you've scrolled to the halfway point of the active pane, the inactive pane will also be at the halfway point).
If you select a file/folder in one pane, and the same item exists in the other - the inactive pane will move the focus to the matching item, and automatically scrolls as necessary to put the matching item in view.
If you select multiple items, each matching item in the inactive pane will also be marked, and the inactive window will autoscroll to the most recently matched item.
If you subsequently click in the inactive pane, without cancelling your selection in the first, the inactive pane becomes active and all the marked items retain their selections so that you can act on those files.
Although items may be simultaneously selected in both panes, any actions taken (such as deleting files) will only affect the active pane, unless a special command is created specifically designed to work in both.
Visual Comparison Filter
This feature would let you select which criteria (or combination of criteria) to use as a comparison of the two panes, and you would have the following choices:
1. Show only matching items, based on the criteria selected.
2. Hide matching items, based on the criteria selected.
Criteria (Suggestions requested for other important criteria):
1. File name (Text box - entries of "*", "*.*", or leaving it blank will only match file names that are completely identical. However, this field should have the same functionality as the current "Set Visual Filter" feature, which means that pattern matching with wildcards and RegEx would also be supported.
2. Modification Dates
This is really just an extention and enhancement of the current "Set Visual Filter" feature. To be honest, it can use the exact same style dialog box, as long as support is added for the "AND" boolean, as well as extended items (i.e. Modification Dates, Attributes, etc...).
Keyboard Shortcut Actions
Adding appropriate actions that can be assignable to keyboard shortcuts, such as "Copy to other pane" and "Move to other pane". These commands would be based on files/folders selected in the active pane, and would copy/move to the inactive pane. However, if Don should be ambitious enough to add the ability to have three panes, good luck figuring out how these commands should be targeted.
Scripting Support
Appropriate support within scripting to reference specific panes, if desired.
Special Details
Status Bar
There are good arguments for both a shared or dual Status Bar. The dual Status Bar gives the most information, however, it takes up additional space when using DP in top-bottom mode, and the available width is halved in left-right mode. Therefore, this will need to be a user-configurable option.
Tab Implementation
Each pane would support tabs independently. Features such as Home Location, Locking, Iconify, etc... that are designed to work on a per-tab basis will continue to work in that way. The Default Tab feature has a limit of one tab - but it makes sense for this to be set independently for each pane. Search Result tabs could exist on either pane and would be based on the active pane at the time the search is run.
Catalog
For simplicity's sake, there will be only one Catalog (insofar as its contents), unless Don changes this in general for XY. For simplicity's sake, we can retain the current implementation of a single Catalog pane, which would work as it currently does, and act on whichever Tab is active (regardless of which pane it's in).
It will show up as it does now - as a docked pane that pops up at the bottom of the tree pane. In top-bottom DP, it would show up in the bottom of the bottom tree (if using seperate trees), and in left-right DP it would show up in the bottom of the left tree
Info Panel
There should be a user-configurable option for either a single shared Info Panel, or dual Info Panels, as there will be significant variation in people's preferences here.
Scroll Wheels
Currently, XY scrolls whichever pane the mouse cursor is hovering over (e.g. the file list pane or the tree). This behavior should remain consistent with the addition of the second pane, so that the cursor location determines which pane (or the tree) is scrolled when a scroll wheel is used.
----------------------------------------------------
Version History
1.0 - 2008-04-01 - Mesh's original list
1.1 - 2008-04-01 - Added sections on Status Bar and Tab Implementation. Edited Tab Implementation.
1.11 - 2008-04-01 - Modified and renamed "Last used directory for the second pane" to account for each pane supporting Tabs
1.12 - 2008-04-01 - Removed "Remembered configuration for the second pane" section - it was no longer necessary, given the new "Last used Tabs for the second pane" section.
1.13 - 2008-04-01 - Restructured proposal to seperate core features, and the details of how DP would integrate into XY's current UI and feature set. Added "Catalog" section. Modified "Methods of differentiating which pane is active" section.
1.14 - 2008-04-01 - Added "Info Panel" section.
1.15 - 2008-04-03 - Minor changes to "Methods of differentiating which pane is active" section.
1.16 - 2008-04-03 - Added sections - "Synchronized Scrolling" and "Visual Comparison Filter"
1.17 - 2008-04-03 - Minor changes to the "Visual Comparison Filter" section.
1.18 - 2008-04-08 - Minor changes to "Synchronized Scrolling" section, to make it clear that this feature can be toggled, and is not always on.
1.19 - 2008-04-14 - Changes made to "Last used Tabs for the second pane", "Status Bar", "Tab Implementation", "Catalog", and "Info Panel" sections.
1.20 - 2008-06-12 - Added section - "Scroll Wheels".
1.21 - 2008-11-23 - Added section - "Keyboard Shortcut Actions".
1.22 - 2008-11-24 - Added section - "Scripting Support". Modified "Keyboard Shortcut Actions" section.






