enthought/pyface — pull request #44 by agrawalprash (2012-09-24 14:38:56+00:00)
Title: WIP: New Split Tab Manager

This PR adds a new tab manager intended to replace the previous AdvancedEditorAreaPane. The new tab manager's basic entity is a QTabWidget (which implements multiple tabs in a single editor area) and each tabwidget can be split/collapsed to generate an arbitrary layout.

Features include:
* Option to split any tabwidget horizontally and vertically by context menu. This can be done upto arbitrary levels.
* Option to collapse splits, if it is possible as per the layout. A collapse basically merges the tabs of one tabwidget to the tabwidget it is collapsing with.
* Dragging/dropping of tabs from one tabwidget to another, to support arbitrary reordering. This also supports tab movement within the same tabwidget.
* Dropping of third-party file drops whose extensions are supported. Note that file drops originating from the file browser pane are not supported yet, this might need some change in file browser code.
* Key bindings to scroll through tabs.

Features not included yet/known issues:
* Moving tabs within the same tabwidget doesn't provide that nice animation which Qt boasts. Using Qt's `setTabsMovable` gives flickers when tearing off tabs.
* 'Restore previous session' doesn't work since get_layout, set_layout are not implemented.

Features not planned to be included as of now:
* Arbitrary docking of tabs based on QRubberBand.

Note that this is still a work in progress, and is not ready to merge yet. Please try it out and report bugs, if any.