Post 2.4.0:

*
Move static geometry management into QLayout-derived class under
KBGeometry, similar to KBGridLayout. Modify tabbers and stacks to
use special geometry managers. This should separate out the
property logic from the actual geometry management (and make stuff
like size-hinting work properly).

	1. Merge KBDispScroller/KBDispWidget onto KBDisplay
	   as abstract base plus derived classes.
	2. Separate out KBGeometry into KBGeometry, KBGridLayout
	   and KBStaticLayout.
	3. Merge KBGeometry into KBDisplay.
	4. Split KBCtrlXXX classes into KBCtrlXXX and implementation
	   wrappers around widget classes.
	5. Add support to pass QLayoutItem's through to KBDisplay.
	6. Merge KBCtrlLayout into KBControl, based on QLayoutItem.
	7. Can then reimplement morphing as widget creation/destruction
	   rather than show/hide.

	* Done bar the shouting. Using the opportunity to refactor and
	  rationalise a shed load of code. 

	* Later. Move KBDispScroller functionality into KBDispWidget
	  as our own code. Can then further simplify geometry
	  management.

*
Rework morphing logic back to earlier where widgets are created and
destroyed rather than shown or hidden. This should make displaying
tables where there are large numbers of columns much faster.

	* See above, in progress.
	* Done. It is faster!

*
Introduce plugin menu to allow plugins to appear in menus. Related,
extent XML menu stuff so that UI files contain icons, action codes,
etc., rather than kb_gui.cpp (and others). Should implement on-demand
loading of the extensions. Separate out database dumper/loader as
an first instance.

	* Part done. Plugins support implemented; menu merging
	  to be done.

*
Implement scripting "grep" as a plugin above.

	* Done

*
Add stretch-to-fill option on geometry setting if geometry is static
and either direction is stretched.

	* Done

*
Skins. Add skinnable attributes as needed.

	* Mostly done. Need an API.

*
Use editable combo in form/report script/import dialogs. Populate with
script modules, plus maybe some commonly used Python modules (or make
it dynamic).

	* Done


--------------------------------------------------------------------

*
KJS Debugger. Break out base debugged logic from Python, construct
KJS debugger based on this, then merge back into Python.

*
Report leader and trailer pages. Probably need to add tabs to
report designer for these and the main data page.

*
Relationship editor. This can be based on the table linking code in
the query designer.

*
Polish up KBEditListView. Sort out focus issues in the same way as
QTable. Will be used properly again when adding string table support.


*
Remember position and design geometry in forms and reports.

*
Add common cases selection in field masks and validator expressions.

*
Framwork for translating wizards, etc.

*
Icons on popup menus. Eye candy in general.

	* Lots done.

*
Export-to-web to support "export" inside the database using a new
table __RekallWeb to house the objects. Will need a
means to check and delete (for instance, via "objects" dialog with
no-update design mode). RekallWeb extended to access such objects.

*
Migrate base base of KBSelect to KBBaseSelect in libs/common. Use these
KBBaseXXXXX classes everywhere. Extend drivers to take KBBaseXXX classes
as well as SQL strings.

	* Can then move getNewKey logic completely into drivers
	  by adding a "addNewKey" flag to the KBBaseInsert class.

*
Once KBDispXXX are merged, implement a tabular layout. Replace KBGrid
with this and provide a design mechanism around it. Can use this to
replace the generated HTML in the ServiceTracker app.

*
Add author and comments saved in XML in the __RekallObjects "description"
field. Generally improve KBLocation to keep data.

*
Ditch KParts derived stuff, merge based on ports/qt3 into a RKWindow
class which creates a QWidget child of QWorkspace for MDI Mode, or
RKMainWindow on SDI mode (in MDI mode, main window is RKMainWindow
derived). Can then grossly simplify menu management. Derive KBViewer
from RKWindow and merge in code that is currently in KBObjBase. Then
reimplement TKAction around QAction.

*
Add KIO slave support.
