-----------------------------------------------------------------------------
 Kexi Development CHANGELOG Document
 Proposed by jstaniek

 Copyright (C) 2003-2007 Jaroslaw Staniek @ OpenOffice Polska
 Copyright (C) 2008-2012 Jaroslaw Staniek (staniek at kde.org)
 Kexi home page: http://www.kexi-project.org/
-----------------------------------------------------------------------------

TIP: For most important commits use: CCMAIL:kexi-devel@kde.org
TIP: For interesting commits use
FEATURE: <description>
CCMAIL:danny@commit-digest.org
TIP: For bugfixes use CCMAIL:###-done@bugs.kde.org
TIP: Use "QT_FLUSH_PAINT=10 kexi" (or "set QT_FLUSH_PAINT=10; kexi" on Windows) to debug painting.

TODO KoProperty:
- mising border below the last item when its editor is visible
- when started to change the editor's value:
-- "revert" button should appear
-- if the property has parent, the item for the parent should be repainted
- (??) fix or reimplement spin box widgets: look bad with oxygen and probably other styles
- fix setting font values: in form designer we need to leave and reenter the item to apply the changes
- SetPrivate::m_visiblePropertiesCount should be altered also when Property::setVisible() is called on added property

TODO:
- crash in keximainwindow...... create > script > select the interpreter property, and change it from python to qtscript
  http://websvn.kde.org/trunk/calligra/kexi/koproperty2/koproperty/EditorView.cpp?r1=883465&r2=910657&pathrev=910657
- (the same?) Create a database -> enter the table schema editor -> add a field -> try to change the field type -> crash
http://rafb.net/p/R4QIBR13.html
- general: use KPluginInfo for any kind of plugins, what would allow for creating main window
           (esp. the project navigator) without loading any plugins in advance
- use semantic API for any i18n string, e.g. i18n("Do you want to clear the contents of table %1?", tableName)

Forms TODO
TODO Form editor:
 - FormManager::FormManager: register factory (port to koproperty2)
 - port KFDPixmapEdit, PropertyFactory
 - add translation and simplify "textInteractionFlags" for QTextEdit and QLabel
 - clicking too many time on undo CRASHES
 - fix syncing form geometry with properties in the propeditor
 - show Spring element and autofield widget
 - disable 'assign action' when no button is selected
 - port 'assign action' dialog to QColumnView
 - disable mouse-over highlighting effect for buttons and check boxes
 
TODO: (Windows-only?) when right-clicking again after context menu has been displayed, update selection, otherwise the context menu items won't be adequate to the selection
 - setting alignment property (e.g. for text box) does not work because it is numeric now
TODO: clearing widget's dataSource property sets datasource to "" in XML instead of clrearing it completely; the same for form's dataSource and dataSourcePartClass properties
TODO: make label display data source name
TODO: use data-source-pkey-tag icon for fields with pkey [>k]
TODO: use data-source-index-tag icon for fields with index [>/]
TODO: image box widgets: support transparency in clipboard (Windows)
TODO: image box widgets: changing aspect or scale properties should repaint the widget immediately
TODO: replace KexiDataItemChangesListener::handleAction(const QString& actionName) with signal/slot connections
TODO: wrap passwordMode property for line edit widget in design mode, otherwise data source is displayed using *
TODO: use KRichTextWidget or KRichTextEdit instead of KTextEdit
TODO: text editor: autofill disabled because this makes the widget disappear entirely; now fix the background color because it is getting transparent on mouse out in design mode
Main Window TODO
*View menu still disabled as showing hiding would be implemented as side bars; use this view for something else
TableView TODO
*mouse move over large tables scrolls the table!
KexiDB
*edited table orders by adding pkey....message popped up saying 'queries are open based on table, do you want to close them' i clicked 'close windows' ....boom http://pastebin.ca/1773394
Reports
*batch mode: generates output from data and design or shows report in data mode with minimal gui; add appropriate startup options and alter main window
*add support for mysql embedded
*fix KDE's FindMySQL.cmake to support mysql embedded;see https://bugs.kde.org/show_bug.cgi?id=234941 and http://gitorious.org/amarok/amarok/blobs/history/master/cmake/modules/FindMySQLAmarok.cmake

Display object data using sqlite:
<sql>
.hea on
.mode column
select ob.o_id, o_sub_id, o_type, o_name, substr(o_data, 0, 40) from kexi__objectdata, kexi__objects ob where kexi__objectdata.o_id=ob.o_id order by ob.o_type, ob.o_id;
</sql>

Git hints: http://blog.nuclearsquid.com/writings/git-new-workdir.html

TODO: fix https://bugs.kde.org/show_bug.cgi?id=241144

TODO: port formeditor/kexiactionselectiondialog.cpp to Qt4

TODO: implement KexiUtils::BoolBloker like QBoolBloker (http://www.koders.com/cpp/fid005249EAAF7BE50E0DF5B02243622557BCE5A466.aspx) and use for any recursion guard

TODO: remove color utils from KexiUtils, use KColorUtils directly
TODO: remove contrasting-color creation code from KexiUtils, and use KColorScheme::shade() instead

TODO: support 'kexi http://foobar.com/db.kexi' commands (and for other protocols)

Tabbed toolbar TODOS:
*add tab hiding to the API
**can be used e.g. when there's no project opened in Kexi to hide Create, Data, External Data tabs
*should we remove the accelerators from the tabs?

TODO:
Startup
*show mysql/pgsql logos for icons fetched & cached at runtime, e.g. from wiki commons, details: http://how-to.wikia.com/wiki/How_to_download_all_image_files_in_a_Wikimedia_Commons_page_or_directory

i18n TODO:
"Save to Words" -> "Save as Text Document"
i18nc("Note: do not translate 'Tables'", "Save to Spreadsheet") -> i18n("Save as Spreadsheet")
i18nc("Note: do not translate 'Tables'", "Failed to open %1 in Tables application.", cxt.destinationUrl.prettyUrl()) , i18n("Opening in Tables application failed"));
->
i18nc("Note: do not translate 'Tables'", "Failed to open %1 in Calligra Tables.", cxt.destinationUrl.prettyUrl()) , i18n("Note: do not translate 'Tables'", "Opening in Calligra Tables"));

i18nc("Note: do not translate 'Words'", "Failed to save %1 to Words applications", cxt.destinationUrl.prettyUrl()) , i18n("Saving to Words application failed"));
->
i18n("Failed to save %1 as text document", cxt.destinationUrl.prettyUrl()) , i18n("Saving as text document failed"));

CSV Import TODO:
*add "Skip empty rows" option
*add "Skip empty columns" option

===================== Kexi 2.4  =====================

TODO:
*Add Return shortcut to opening in data mode from navigator
*Add Ctrl+Return shortcut to opening in design mode from navigator
*Add Ctrl+Shift+Return shortcut to opening in texts mode from navigator

TODO:
Startup
*before opening check if database has been already opened and if so, activate the window instead of opening second instance; D-Bus iface needed
*inform other instances of Kexi that database was opened so they can update last-modified property of the Recently opened projects; D-Bus iface needed

TODO: go with FF implementation:
http://www.conetrees.com/2009/03/blog/usability-spotter-4-usability-issue-google-chrome-tab-selection-through-the-mouse/
TODO: use right-hand tab button for window list as in FF


TODO: remove 'KoReportDesigner designer(0);' from KoReportPluginManager::actions()


TODO: Widgets [code] fix memory leak introduced in KexiFieldComboBox::setTableOrQuery()

TODO: kexidb collation: Add Alphanum collation (code at http://www.davekoelle.com/alphanum.html)
TODO: kexidb collation: use ICU or Qt5+ICU, ICU is 30x faster than QString::localeAwareCompare; http://labs.qt.nokia.com/2011/06/14/string-collation-with-locales/
*ICU enabled in libsqlite3 on debian in 3.6.11-1 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=494987 but then disabled in 3.6.14.2-1

TODO:
[01:02] <diggy> jstaniek: Kexi's crashing when quiting, after opening a table in design view and opening lookup column page in property editor
[01:02] <diggy> but I'm too tired to look into it now
[01:02] <diggy> It seems some problem in d pointer destructor

~~~~~~~~~~~~~~~~ 2.5.0 ~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~ 2.5 Alpha 1 (2.4.71) ~~~~~~~~~~~~~~~~

2012-03-03
Main Window
*User feedback: added anti-DOS protection when updating feedback ui
*User feedback: added checking format of the .list files to avoid erroneous HTTP requests

~~~~~~~~~~~~~~~~ 2.4.0 ~~~~~~~~~~~~~~~~

2012-04-04
KoProperty
*When property set is cleared, clear model(s) for associated views
**This fixes random crashes in Property Editor
Forms
*Fixed saving "Enabled" property
BUG:278424

2012-03-28
KexiDB
*fixed functions returning field's type group name and type group string; they were completely broken but probably only GUI was affected
**merged with Predicate
Forms
*Fixed bug: Setting a text box as Read Only allows changes to be made nevertheles
BUG:278419 
*Properly updated context menu when read-only flag is set for line edits and text boxes
*Setting a text box or text editor to Read Only mode changes the look to a bit dimmed (as in disabled widget) to indicate the mode

TODO: read-only data widgets: in data mode display a small read-only tooltip during editing or as a label on the right hand
TODO: read-only data widgets: in design mode display a small read-only icon/text

2012-03-22
Tables
*Fixed bug: Details of lookup column not visible
BUG:296528

2012-03-19
KexiDB
*SQLite Driver
**Fix exporting required symbols of kexidb_sqlite3_icu library for the sqlite3 interface. Also fix the filename extension when loading on different platforms.
***by Andrius da Costa Ribas
***+some fixes for gcc/linux
CCMAIL:andriusmao@gmail.com

2012-03-18
Reports
*Fixed bug: Data source property in report field do not show proper list of fields

TODO: crash
#5  0xb73f3657 in QHash<QString, KexiDB::TableSchema*>::value (this=0x54, akey=...) at /usr/include/QtCore/qhash.h:607
#6  0xb73f23fb in KexiDB::ConnectionPrivate::table (this=0x0, name=...) at /home/jarek/kde4/sources/calligra-master2/kexi/kexidb/connection.cpp:126
#7  0xb73ea4b2 in KexiDB::Connection::tableSchema (this=0x83da3e0, tableName=...) at /home/jarek/kde4/sources/calligra-master2/kexi/kexidb/connection.cpp:2938
#8  0xae83f0b9 in KexiDBReportData::getSchema (this=0x853c7a8) at /home/jarek/kde4/sources/calligra-master2/kexi/plugins/reports/kexidbreportdata.cpp:113
#9  0xae83ea25 in KexiDBReportData::KexiDBReportData (this=0x853c7a8, qstrSQL=..., pDb=0x83da3e0) at /home/jarek/kde4/sources/calligra-master2/kexi/plugins/reports/kexidbreportdata.cpp:30
#10 0xae843301 in KexiSourceSelector::sourceData (this=0x85439a0) at /home/jarek/kde4/sources/calligra-master2/kexi/plugins/reports/kexisourceselector.cpp:148
#11 0xae842eeb in KexiSourceSelector::setConnectionData (this=0x85439a0, c=...) at /home/jarek/kde4/sources/calligra-master2/kexi/plugins/reports/kexisourceselector.cpp:105
#12 0xae83e507 in KexiReportDesignView::afterSwitchFrom (this=0x866c3f0, mode=Kexi::DataViewMode) at /home/jarek/kde4/sources/calligra-master2/kexi/plugins/reports/kexireportdesignview.cpp:159
#13 0xb7203c0f in KexiWindow::switchToViewMode (this=0x83f8510, newViewMode=Kexi::DesignViewMode, staticObjectArgs=0x0, proposeOpeningInTextViewModeBecauseOfProblems=@0xbfce3bef)
    at /home/jarek/kde4/sources/calligra-master2/kexi/core/KexiWindow.cpp:664

2012-03-17
KexiDB
*Properly deep-copy query asterisks when cloning query objects
**This fixes crash for reports based on queries
CCBUG:246928
CCBUG:281737

2012-03-13
KexiDB
*Fix deep copying of query schema and ORDER BY structures
**This removes crashes related, e.g. in reports based on queries with joins
BUG:246928
BUG:281737

2012-03-12
Reports
*Fixed bug: setting a field's data source to a calculated value, results international characters not displaying correctly
BUG:277731

2012-03-07
KexiDB
*SQLite Driver
**Fixed crashes when compacting database fails
**Fixed error when attempting to compact database opened from recent lists
TODO: port to Predicate
*MySQL Driver
**fixed crash in prepared statement execution for inserting data when number of items to insert is smaller than expected; this case could be found when importing CSV data in Kexi with fewer columns specified than expected
CCBUG:279980
CCBUG:254068
TODO: port to Predicate
*PostgreSQL Driver
**fixed crash in prepared statement execution for inserting data when number of items to insert is smaller than expected; this case could be found when importing CSV data in Kexi with fewer columns specified than expected
CCBUG:279980
CCBUG:254068
TODO: port to Predicate
Reports
*Fix crash in assigning data source that uses reserved words as field names
**Tables/queries with reserved words still do not work in reports though
CCBUG:278052

2012-03-06
Main Window
*User feedback: added home page and forum links

2012-03-05
Main Window
*User feedback: set anonymous identification as mandatory, needed even for basic statistics

2012-03-03
Main Window
*make sure that after closing project, and then opening tabbed toolbar activates its first tab
*do not hide all tabs after project closing, this make it consistent with the appearance of tabs after starting kexi without specifying any project

~~~~~~~~~~~~~~~~ 2.4 RC1 (2.3.91) ~~~~~~~~~~~~~~~~

2012-03-01
KexiDB
*SQLite Driver
**Ported database compacting code to the new Kexi that uses system SQLite version
BUG:293548
TODO: port to Predicate

TODO: after db creating and opening the main menu is invisible

2012-02-27
CSV Import
*Update the progress bar less frequently

2012-02-26
KexiDB
*SQLite Driver
**fixed crash in prepared statement execution for inserting data when number of items to insert is smaller than expected; this case could be found when importing CSV data in Kexi with fewer columns specified than expected
CCBUG:279980
TODO: port to Predicate
CSV Import
*Fixed bug: crash while importing CSV rows that start with empty cells (only delimiters)
**Example row: ,,,"a"
BUG:279980
CSV Import
*Fixed bug: encoding selection misbehaves when importing a CSV file
**encoding selection was not retained between first and another displaying of the CSV Import Options dialog
**encoding selection made in the CSV Import Options dialog was not applied to the importing preview and process
BUG:294636

2012-02-22
Main Window
*allow to anchor context message position to given widget on parent resizes
*allow to resize context message position on parent resizes
*welcome status bar: fetch the GUI updates from the server if available, every 60 minutes

2012-02-19
Main Window
*User feedback: fixed grammar and typos
*Fix cropped "Share usage info" message of the User feedback
*User feedback: After clicking "Share usage info", "Details" or "Help" and the message is visible, minimizing+restoring hides the message

2012-02-18
Widgets
*context message widget can contain arbitrary QWidget content
*buttons in context message widget can be left-aligned, useful for Help button
*context message widget now displays more modern callout
*context message widget now has internal widgets colorized using the view theme
*context message widget now uses the view theme
*context message widget now uses clean [x] button
Main Window
*added access to the feedback via KexiMainWindow::userFeedbackAgent()
*feedback agent now supports selection of areas
*feedback agent now handles retrieving redirect URL
*status bar: HTML replaced with .ui files loaded by quitools and external Qt resources

TODO: implement updating .ui files from network
TODO: clicking on page title should close the message widget too

2012-02-14
Widgets
*kmessagewidget: improve shapes of callouts

2012-02-13
Main Window
*feedback format set to 1.2: added os_release, os_machine, screen_count
General
*Added stable version information: for 2.3.1 returns 2.3.1, for 2.5.70 returns 2.6.0, for 2.9.70 returns 3.0.0

2012-02-12
Startup
*Fixed crash when clicking on "Welcome" action while 'confirm database overwriting' question is displayed
Widgets
*kmessagewidget: fix geometry when updating callout pointer
*kmessagewidget: extend API to support custom widget embedding

~~~~~~~~~~~~~~~~ 2.4 Beta 7 (2.3.87) ~~~~~~~~~~~~~~~~

2012-01-12
Startup
*Make the recent database entries of the Welcome Page resize when the window resizes

2012-01-10..11
Main Window
*fix possible crash when opening Form or Report design
*prototype of welcome status bar
*feedback format++: added JSON-compatible character escaping; added uid
Widgets
*Further simpify the gui: added flat icon-based button without background that behaves like a link; use it in all Assistant pages instead of Cancel links

~~~~~~~~~~~~~~~~ 2.4 Beta 6 (2.3.86) ~~~~~~~~~~~~~~~~

2012-01-05
Main Window
*Simple User Feedback Agent introduced
TODO: disable by default, inform and ask user for help
TODO: add Qt version, SQLite version, driver usage stats, migration/import/export stats
      add git revision with exact date+time if compiled using git checkout
      project stats: # of objects, size (MB, records), types of objects, data types usage
      system/architecture (32/64) - /proc/version, /proc/cpuinfo
      occurence of crashes, sending crash reports
      length of session
      KDE settings: font size
      Desktop Manager/WM: KDE/GNOME/other
      Size of Kexi window used if not maximized
      functions usage (frequence by function, by function category)
TODO: Idea: based on functions usage inform about unused functions in the "Did you know?" box

See sample code at http://lxr.kde.org/source/kde/kde-runtime/drkonqi/bugzillalib.cpp
See sample code at http://lxr.kde.org/source/extragear/network/choqok/microblogs/twitter/twittermicroblog.cpp

2012-01-03..04
CSV Import
*Fixed bug: import to table in Kexi ignores "Ignore multiple delimiters" setting
BUG:160237
*Fixed bug: ignore any trailing delimiters if "Ignore multiple delimiters" option is on, so empty extra column is not added
BUG:290645
*Ask for opening the imported table
TODO 2.5: add message box title "Successfull import"
TODO 2.5: change standard "Open" btn to "Open Imported Table"

2012-01-01
KexiDB
*Query SQL generated in the Query Designer should be of KEXISQL type
BUG:290354
TODO: port to Predicate

2011-12-26..28
Forms
*Fixed bug: Image box does not store image pasted to it in design time
BUG:289545
*Fixed bug: Changing Horizontal Alignment in image box has no effect unless user resizes it or reopens the form
BUG:289544
*Fixed bug: Invalid image geometry within the Image Box form widget when frame properties change
BUG:289990

TODO: add int margin property to the Image Box
TODO: add qreal rotation property to the Image Box
TODO: add scale rotation property to the Image Box
TODO: add int transparency property to the Image Box
TODO: add effect property to the Image Box, see QGraphicsEffects

2011-12-16..20
KexiDB
*Use ICU (http://icu-project.org) for high quality collating in unicode text columns using SQLite extension.
BUG:278411
TODO: port to Predicate

2011-12-14
General
*Fix crash when loading kexi part information without main window
**detected by tests/newapi
Core
*remove memory leak in code opening project
KexiDB
*avoid 'invalid read' in code for inserting records into tables
TODO: port to Predicate

2011-12-10..11
General
*[code] fix KexiUtils::replaceColors()
Table View
*Make Kexi obey color scheme selection for KDE
**Table view color support improved for dark schemes
CCBUG:279694
Main Window
*Add Calligra branding to the Kexi Menu
**Clicking on the logo opens the calligra.org web site
*Make menu and logo look OK for black color schemes
Forms
*Do not create inline editing command when inserting, this fixes possible crash in undo/redo
*[code] Fix connection to inlineEditorDeleted()
TODO: clicking on form should exit from inline editing mode

~~~~~~~~~~~~~~~~ 2.4 Beta 5 (2.3.85) ~~~~~~~~~~~~~~~~

2011-12-07
General
*[code] properly delete Kexi's "about data" structure, simplify the API, remove CUSTOM version ifdefs
Query Designer
*Fix crash when selecting sort order in a query field
**[code] Properly update current row pointer after row insert
*Fix crash when selecting sort order without query field specified
BUG:255304
*[code] Split KexiQueryDesignerGuiEditor::slotBeforeCellChanged to functions per column

2011-12-02
General
*fix build with gcc 4.2.1 under OpenBSD
BUG:288085

2011-11-30
Reports
*Fix bug: no indication of selected toolbox action for report element
BUG:283888
*After inserting element, respective toolbox action is deselected

2011-11-30
Reports
*Fix bug: no indication of selected toolbox action for report element
BUG:285583
*After inserting element, respective toolbox action is deselected

2011-11-27..29
Main Window
*set close buttons on view tabs always visible
*remove main area borders for cleaner GUI
*remove MainWindow.HoverCloseButtonForTabs setting
*[code] remove old code related to KDE3's KMDI
*[code] removed custom version macros like KEXI_ADD_CUSTOM_OBJECT_CREATION

2011-11-26
Startup
*Do not display connection dialog when opening .kexis file that define database name
*Welcome view: when clicked on a database open it in a new Kexi instance if another database is already opened in the current instance

2011-11-23..24
Startup
*Remove duplicated entries of recent files at startup so the newest entry for given database is displayed
Main Window
BUG:282651
*fix build of search line edit for msvc

~~~~~~~~~~~~~~~~ 2.4 Beta 4 (2.3.84) ~~~~~~~~~~~~~~~~

2011-11-16
Widgets
*QCommandLinkButton have fonts size hardcoded what breaks accessibility
**Reported at https://bugreports.qt.nokia.com/browse/QTBUG-3255 but still not fixed
**Resolved by forking the class because no workaround is possible

2011-11-02..06
Forms
*Context Menu for container widgets appears misplaced
BUG:283568
Main Window
*Fixed crash on startup because of conflicts with Qt completion APIs
**Renamed symbols from Q to Kexi prefix
BUG:285583

2011-10-21..24
Widgets
*[code]substringCompletion property added to QCompleter, false by default
Main Window
*Make global search "full text"
*Clear contents on activation, update on pressing Delete
*Make Escape, Tab, Backtab keys set focus back to previously focused widget in Global Search
*On activating global search box, select all previous text
*Clear highlighting for objects in global search when needed
*Matching substrings are highlighted in completion list of global search
*Make behaviour of global search box more intuitive
**go back to completing when popup is closed and F4/Down pressed
**hide popup if F4 pressed
**single item on the completion list => select it automatically
**more than one item on completion list=>find exact match, if ok, accept
**there is no matching text => go back to completing

~~~~~~~~~~~~~~~~ 2.4 Beta 3 (2.3.83) ~~~~~~~~~~~~~~~~

2011-10-19
Main Window
*Added minimal global search implementation with completion list, now just searches within Project objects
**after pressing Enter - select object name in Project Navigator
**on highlighting in completion list, highlights the object name
**[code]QCompleter which cannot do substring matching (https://bugreports.qt.nokia.com/browse/QTBUG-3414)
**[code]KCompletion is not better
**[code]Forked QCompleter and related classes and put in KexiUtils
**[code]Commented at https://bugreports.qt.nokia.com/browse/QTBUG-7830?focusedCommentId=166309#comment-166309

2011-10-18
Forms
*Changed Form Design Toolbar icons order and set to have text under icon
**first commit by Dimitrios Tanis
Documentation
*Official Kexi handbook is now at http://userbase.kde.org/Kexi/Handbook

2011-10-12
Main Window
*Simplified background below menu to make it flicker less

2011-10-12
Main Window
*Simplified background below menu to make it flicker less

2011-10-11
Code
*[code] Moved kexi/migration/spreadsheet/ plugin to plugins/kexi/ as it also depends on Tables
*[code] Moved kexi/shapes/ to kexi/plugins/shapes/ to simplify dir structure

2011-10-05
Code
*[code] Moved general purpose code from main/ to widget/ with some renames
Main Window
*Select first item in Project Navigator when focused if there's no selection
*Simple support for global search box in Kexi
*Global search box accessible using Ctrl+K
*Fixed setup of global shortcuts

2011-10-02
CSV Import
*Fixed crash for larger CSV data
BUG:282936

~~~~~~~~~~~~~~~~ 2.4 Beta 2 (2.3.82) ~~~~~~~~~~~~~~~~

2011-09-29
CSV Export
*When copying CSV data to clipboard use native line endings, force \r\n only in files
Main Window
*Added "Import, Export or Send" menu item and assistant
*Rearranged Kexi menu items for usability
*Settings menu item disabled for now
*"Open Recent" page becomes more generic "Welcome" page

2011-09-28
Startup
*Improve info for recent entries
**text now skips filename if there is caption for file-based entries
**tooltips show server type or full filename path
Forms
*Move icons from global directory to web/map plugins so these can be part of plugin packages
Reports
*Move icons from global kexi or report lib directories to map/web/shape/barcode plugins so these can be part of plugin packages
*Install icons for reporting plugins into calligra/ icons directory to make the plugins independent of Kexi
General
*Rename icons so they do not use '-' character in names to avoid problems with 'report' prefix
*Updated translated messages retrieving, translations splitted for plugins

2011-09-27
Core
*Avoid overlapping current plugin declarations by old-style plugin declarations
**Without this new report items were not visible if uk.co.piggz.report class was used before
*Fix loading recent entries for server databases
KexiDB
*Make DriverInfo.name lowercse to avoid mistakes when comparing strings

2011-09-26
Reports
*Web Report Element by Shreya Pandit
**fixed all issues noted in review, cleaned up code using astyle

2011-09-23
*Fix: properly show server-based items on the Recent Projects list
BUG:282651

2011-09-22
Forms
*Revert disabling "Save Record" action for editing cancelling
Main Window
*Hide Project Navigator pane completely when closing project
*Update availability of "Import Tables" action when closing project

2011-09-21
General
*Fixes in date, time and date/time validating code, little refactoring, simplifing API

2011-09-20
Main Window
*Fixed regression: Prevent renaming objects to invalid identifiers in Project Navigator
BUG:282444
General
*Do not load and show objects with invalid metadata in project navigator. Such invalid objects include: objects with id <= 0, objects with name reserved for internal use, objects with name not being valid identifier.
BUG:282445

2011-09-17
Table View
*Fixed input mask for date, time and date/time data fields in table views
BUG:272994

~~~~~~~~~~~~~~~~ 2.4 Beta 1 (2.3.81) ~~~~~~~~~~~~~~~~

2011-09-09
Forms
*Display widget's data source after selecting source
BUG:278298

2011-09-05
Main Window
*Set sane default size for the first run, for <=1024 maximize the window

2011-08-28
Table View
*fix posible crashes because of running 'process events' in table view data's destructor

2011-08-26
Table View
*fix regression in displaying record editing indicators

~~~~~~~~~~~~~~~~ 2.4 Alpha 4 (2.3.74) ~~~~~~~~~~~~~~~~

2011-08-04
General
*Cleanups in API of the data-aware view
*Disable "Save Record Changes" action when user cancels editing or reverts edited text to the original value. "Cancel Record Changes" action is not disabled though, so user is still able to exit from record editing mode.
*Ask for confirmation when going to Design View and have pending record changes in Data View of table or form
BUG:278417

2011-07-25
General
*Replaced term "row" with "record" in visible places
BUG:278418

~~~~~~~~~~~~~~~~ 2.4 Alpha 3 (2.3.73) ~~~~~~~~~~~~~~~~

2011-06-21
Startup
*items in "Recent Projects" sort by date descending

2011-06-15
Main
*Main window starts smoother

2011-06-09..14
Core, Startup
*Shortcut files
**bumped version to v3: "name" for shortcuts to file-based databases is a full file path now. If the file is within the user's home directory, the dir is replaced with $HOME, e.g. name=$HOME/mydb.kexi. Not compatible with earlier versions but in these versions only filename was stored so the file was generally inaccessible anyway. "lastOpened" field added of type date/time (ISO format).
**saving and loading code moved to KexiProjectData
*Information about recent projects now saved, loaded and displayed properly
*Show "Recent files" screen as welcome screen, disable old welcome dialog

TODO: make KexiProjectData not derived from QObject
TODO: security: for saved server-based recent project add [Connection] group and name=<connectionfile> in it; then saved password can be found in connection data if any, and recent data would not save passwords at all
TODO: "recent projects view": improve look of items; group by date, type/server...

~~~~~~~~~~~~~~~~ 2.4 Alpha 2 (2.3.72) ~~~~~~~~~~~~~~~~

2011-06-08
Core
*Fix regression added with the delayed loading of plugins: "Create" toolbar works now
Startup
*initial functionality for "Recent Projects" assistant

2011-06-06..07
Startup
*"Recent Projects" assistant

2011-06-05
Main
*Fix opening projects in new process: start the process in detached mode
*use delayed deletion of Kexi menu to avoid crashes

2011-06-02
Startup
*"Open Project" assistant: opening files works

2011-06-01
Startup
*Message Widget: fixes for positioning callout pointer
*"Open Project" assistant added

TODO: display db connection error properly

2011-05-27..31
Startup
*Message Widget: added KexiLinkWidget for better supported 'link' buttons with proper colors in active and disabled modes

2011-05-26
Startup
*Message Widget: add positioning of the callout pointer at specified point to the API
*New Project assistant: warning about connection error is now positioned properly

2011-05-25
Startup
*Message Widget: improve layouts and introduce API for setting direction for callout pointer

2011-05-18
Startup
*New Project assistant: display connection errors as inline messages

2011-05-12
Startup
*New Project assistant: ask for overwriting existing databases

2011-05-11
Core
*Delayed loading of plugins, improves startup times

~~~~~~~~~~~~~~~~ 2.4 Alpha 1 (2.3.71) ~~~~~~~~~~~~~~~~

2011-05-09
Forms
*fixed possible crash in context menus
**backported to 2.3.x
**backported to 2.2.x
Examples
*make forms andreport in "Simple Database" example look a bit more modern
*remove auto tabs to avoid focus
TODO: fix auto tabs!

2011-05-06
Examples
*updated examples generation scripts to use system sqlite3 instead of old ksqlite command
Forms
*fixed possible crash in tab ordering code
**backported to 2.3.x
**backported to 2.2.x

2011-05-05
*New Project assistant: server-based project creation works

2011-05-04
Startup
*New Project assistant: initial port of server-based project creation pages
*project selector and connection selector ported to Qt4

2011-05-03
Startup
*"Database Connection" page added to the New Project assistant

2011-05-02
Startup
*Message Widget: merged with kdelibs changes, fixed problem with margins and arrow painting
*New database properly created using the new assistant

2011-04-29
Startup
*Assistants: Cancel button added

2011-04-27..28
Startup
*Assistants:
**proper painting of context arrow
**fixed crash in event loop
**merged with agateau/kmessagewidget
**KexiContextMessage* API extended
**two remaining error messages of 'DB Title Page' ported to KexiContextMessage* API
**Fixed focusing widget after message is closed

2011-04-14..26
Startup
*Assistant Framework added for the Modern Menu
*"New blank database" assistant implemented; reused previous code
*KexiAnimatedLayout introduced, used in the modern assistant
*KexiContextMessage introduced and KexiContextMessageWidget, extends KMessageWidget to remove modal KMessageBox use in assistant dialogs
**the message widget is displayed inline within the layout, context sensitive
**current page is displayed as disabled when the message widget is displayed
**it's first use in the DB Title Page of "New Project" assistant


TODO: add operationMode property to KUrlRequester: enum OperationMode { Other = 0, Opening, Saving }

2011-04-11..13
Main Window
*Modern Menu
**Escape key closes the contents area, then second press closes the main menu
**enable Alt+F as accelerator for the main menu
**menu is focused after opening and first menu item is highlighted
**set contents area Window brush to Base and WindowText brush to Text
***this web-like style harmonizes the with some white pages like 'open recent' (http://community.kde.org/File:Calligra_startup_words_simplified_menu_mockup_jstaniek.png)
*Tabbed toolbar
**focusing removed to fix usability with the main menu (arrows)
*Help menu added to drop-down button
*"Search" entry added

2011-04-10
Main Window
*Modern Menu
**All actions in main menu have at least a placeholder
**Only hide menu if clicked outside

2011-04-08..09
Main Window
*Modern Menu
**display lighter gradient, make clicking on persistent items possible only once per item
**improve gradient, make empty menu mostly transparent
**make shortcuts work - menu is displayed and contents appear
**added fades when switching between contents
**proper selecting/deselecting persistent items
TODO: still conflicts when menu is visible

2011-03-29
Main Window
*Initial implementation of the Modern Menu
TODO: fix keyboard-support

2011-03-28
KexiDB
*fix possible crash when handling queries with lookup columns
**backported to 2.3.x
Forms
*fix possible crash in the "assign action" feature
**backported to 2.3.x
**backported to 2.2.x

2011-03-10
Forms
*added --hide-menu command line option: Hides the main menu (the tabbed toolbar) completely.
 A number of commands from the main menu is always visible. This option is useful in User Mode.
BUG:268001

2011-03-08
Forms
*re-add foreground and background color properties for widgets; undo/redo works too
BUG:267671
**backported to 2.3.x
**backported to 2.2.x

2011-03-05
Forms
*"Show Form UI Code" dialog is now not cached, what fixes issues with memory ownership

2011-03-03
Tables
*fix inserting row when field has "required" attribute set
BUG:267311
**backported to 2.3.x
**backported to 2.2.x

2011-03-02
General
*define KEXI_NO_QUICK_PRINTING and disable no longer available simple printing features
 in navigator and form acitons; may be later re-enabled
Main Window
*Improve user-visible names for actions in the Navigator

2011-03-01
KoProperty
*disable moving of the columns
Forms
*add some missing translations to property names
*hide the pixmapId property of the picture box

2011-02-04
KexiDB
*Fix Solaris build of kexidb 
**BUG:265349
**backported to 2.3.x

2011-01-09
KexiDB
*MySQL driver: add /var/run/mysql/mysql.sock to list of possible local socket paths
*MySQL driver: mark "information_schema" as system database

2011-01-03
KexiDB
*fix memory leak in multiargument expressions of any type
**merged with Predicate
*fix memory leak in query schema
**merged with Predicate
*fix memory leak (lexer was not released)
**merged with Predicate

2010-12-12
Migration
*fix saving recently visited directories for source and destination database in the migration wizard

~~~~~~~~~~~~~~~~ 2.3 rc 1 ~~~~~~~~~~~~~~~~

2010-12-09
Migration
*Fix for MS Access import (did not honor encoding); this fixes using ICONV
*a small fix for 'advanced options' button possition in the import wizard
**BUG:259259

2010-12-01
Core
*fix memory leak in KexiActionProxy
Table View
*unset style in header earlier to avoid reading of uninitialized memory reported by valgrind
KoReports
*make KRDetailSectionData, KRSectionData, KoReportReportData, KoReportPreRenderer owned by parent QObect, this fixes memory leaks

2010-11-30
KexiDB
*fix memory leak in RowEditBuffer
**merged with Predicate's RecordEditBuffer

2010-11-28
KoReports
*fix conditional jump depending on uninitialised value in KRDetailSectionData
*fix conditional jump depending on uninitialised value in KoReportDesignerItemRectBase
*fix memory leak in KexiReportView
*fix memory leak in KoReportItemField::render
KoProperty
*fix conditional jump depending on uninitialised value in combobox
Query Designer
*fix conditional jump depending on uninitialised value in SQL History widget
KexiDB
*fix memory leak in Connection: for table schema listeners and obsolete queries
**merged with Predicate

2010-11-27
Widgets
*fix memory leak in table view header
CSV Import Dialog
*fix two memory leaks
KoReports
*properly pass parent to ReportScene and ReportSceneView superclass, this also fixes one memory leak
Main Window
*fix memory leak in project model item

2010-11-24
KoProperty
*fix memory leak: make subproperties owned by parent property
*fix memory leak: delete old composed property before setting new
Core
*fix memory leak: set ownership of SchemaData objects to KexiWindow if plain schema data was created (always the case except for Tables and Queries)
*fix memory leak: project item dictionaries
Main Window
*fix memory leak: delete old root item from project model when setting data
*fix memory leak: delete model on closing project navigator
*fix memory leak: project data used for startup
*fix memory leak: dummy objects used for porting
Reports
*fix memory leak: delete section data in report designer
*fix memory leak: set parent for report actions in KoReportDesigner
*make KoReportPluginManager::self() use K_GLOBAL_STATIC and return pointer rather than ref (by tradition)
*fix memory leaks in KRSectionData
Forms
*removed redundant (and leaking) layout from the form view
KexiDB
*fix memory leak: delete redundant column info structures
*fix memory leak: delete dummy primary key when setting new
Widgets
*fix memory leak of the row edit buffer

2010-11-19
KexiDB
*fix memory leak in the MySQL driver

~~~~~~~~~~~~~~~~ 2.3 beta 4 ~~~~~~~~~~~~~~~~

2010-10-20
Core
*remove dependency on Q3Signal

2010-10-20
KexiDB
*add sanity checks to assignment operators

2010-10-11
KexiDB
*SQLite 3.7.3 is recommended now

2010-10-09
Table View
*fix displaying rows in combo boxes: last row was invisible; this fixes form combo boxes too

2010-10-06
Forms
*clearing form data source selection in the combo box properly resets assignment, so selecting the same datasource later works properly
Table View
*fix crash when not matching entering text into the combo box line edit

2010-09-29
Main Window
*unclutter: remove extra borders from the side pane (http://www.kdedevelopers.org/node/4327)

~~~~~~~~~~~~~~~~ 2.3 beta 1 ~~~~~~~~~~~~~~~~

2010-09-08..27
Forms
*Widgets Tree:
**display items
**items are sorted
**root is not decorated
**fixed possible crash when form becomes null
**display icons for widget items
**fixed position of context menu
**do not clear selection when switching between forms
**make individual tabs not selectable and display custom names for them; properly sort items for tabs
**select tab widget instead when clicking tab items
**tab icon added for tab items
**context menu has the same strategy as clicking tabs
**select related item when widget is clicked on the form
**right-clicking area of tab displays context menu of tab widget
**adding and deleting widgets properly presented
**tab page icons and names look as disabled
**clicking on tab tab page items switched to them
**clicking on child of a tab tab page switches to this tab
**updating after widget renaming fixed
**double clicking no longer expands/colapses items
**indentation level reduced by 50%
**fixed adding item when tab page is added
**fix sorting
**fix delete widget action in context menu
TODO: when undoing removing tab page, restore contents recursively
TODO: make "Assign Action" undoable/redoable

*tab widget
**removing page is now separate undoable/redoable command
**make removed tab page appear on undo at proper index
**make tree widget item have proper name, not basic container
TODO:?? when adding tab page, ask for name

*fix infinite recursion in line edits because of using style proxies (bug #247183)

~~~~~~~~~~~~~~~~ 2.3 alpha 1 ~~~~~~~~~~~~~~~~

Core
*for --help fix warnings "Tag '....' is neither semantic nor HTML in message"

2010-09-03
Main Window
*Object tabs
**now movable
**contain only names/captions of objects (this is shorter)
**have tooltip and "what's this" information
**have context menu with "Close Tab" action

2010-09-02
Forms
*Widgets Tree tab ported

2010-09-01
Forms
*ObjectTreeView/ObjectTreeViewItem renamed to WidgetTreeWidget/WidgetTreeWidgetItem and ported to QTreeWidget/QTreeWidgetItem

2010-08-30
Core
*Clarify error message: when non-kexi SQLite file is opened, display "Database project '...' does not appear to have been created using Kexi and cannot be opened. It is an SQLite file created using other tools."

2010-08-29
CSV Export
*fix layout of the CSV Export dialog
*fixed regression: make "Export Data to File" action enabled when opening object

2010-07-18
KexiDB
*SQLite Driver
**remove all sqlite_* macros, use sqlite3_* functions directly since we only support version 3
**use sqlite3_close() on sqlite3 structure instead of free(3)
***possible fix of crash in bug #245030
Migration
*support multipage (large up to 65535 bytes) memo values
BUG:244420
TODO: support up to 1GB of data too (requires changes in mdbtools API)
TODO: The display routines of table view are not optimized for such large text values. Optimize that!

2010-07-07
KexiDB
*proper copy constructor for LookupFieldSchema::RowSource
**merged with Predicate

2010-06-13
Forms
*display title in the drop-down menu for image boxes; regression in 2.x; also fixes image boxes in table view
** backported to 2.2.1

2010-06-11
Main Window
*fix autoopening (--open) for User Mode
** backported to 2.2.1
*fix possible crash on exit
** backported to 2.2.1
Forms
*fix "open object by name" action assignment for buttons
** backported to 2.2.1

2010-06-03
Migration
*When source filename is preselected (e.g. when opening mdb file with Kexi), do not display the source name selection page
** backported to 2.2.1
*Append proper extension if not present, e.g. .kexi (regression in 2.x)
** backported to 2.2.1

2010-05-24
Forms
*Image Box widget:
**added new property "Smoothing". When "Scaled Contents" is on, image is scaled smoothly. On by default.
**cache scaled pixmap between paint events
*** backported to 2.2.1

**** TODO: setting "enabled" property to false does not work

===================== Kexi 2.2  =====================
~~~~~~~~~~~~~~~~ 2.2 rc 1 ~~~~~~~~~~~~~~~~

2010-05-18
KexiDB
*SQLite: recommended version is 3.6.23 for security reasons (secure-delete feature is available there)

2010-05-16
Table View
*When non-empty table view(s) are opened, it's possible to encounter a crash due to QApplication::processEvent() calls from destructor. Avoid that by checking qApp->closingDown().
BUG:237796
**merged with trunk
Widgets
*Use Qt::WA_WindowPropagation and Qt::WA_X11NetWmWindowTypeCombo attributes on combo box popups for X11 for better behaviour
Forms
*Fix Kexi combo box widgets in forms (did not display values and were non-functional)
**Workaround used by adding KexiComboBoxBase::m_setReinstantiatePopupOnShow and recreating popups from scratch
BUG:235964
TODO: fix creating popup for forms instead; remove KexiComboBoxBase::m_setReinstantiatePopupOnShow
*do not display grid on ContainerWidget (e.g. inside of tab widget) becasue it's already done at higher level
*fixed crash in setting enabled property in property editor
*ported tab widget, and inserting/renaming/removing tabs

2010-05-10
KexiDB
*[security] SQLite: Set the secure-delete on, so SQLite overwrites deleted content with zeros. Works with 3.6.23. Earlier versions just ignore this pragma. See http://www.sqlite.org/pragma.html#pragma_secure_delete
TODO: add connection flags to the driver and global setting to control the "secure delete" pragma

2010-05-08
Table View
*Optimize display of scaled image entries in table grid by caching
**Images are now more smoothly scaled
BUG:234347
TODO: optimize: keep the checksum for pixmap in context of data itself
TODO: optimize: for now 100 items are cached; set proper cache size, e.g. based on the number of blob items visible on screen

2010-05-04
Forms
*do not display grid on ContainerWidget (e.g. inside of tab widget) becasue it's already done at higher level
TODO: instead of this skip displaying grid at higher level

2010-05-03
Forms
*fix inserting group boxes, they now properly act as containers
*avoid loading widgets with the same name more than once
*tab widget properly acts as container now
TODO: fix adding/removing tabs

2010-05-02
Reports
*mising or poorly selected icons fixed: barcode, checkbox (copies of the newest oxygen), label, line (copies from kexi forms)
*added missing i18n
Forms
*Fix default size of group box

2010-04-26
KexiDB
*MySQL Driver: Fix "DB created but cannot open" error appearing on creating a new database for mysql backend.
 See http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html (complex!) for logic of otherwise simple thing.
 The solution is to execute SHOW VARIABLES LIKE 'lower_case_table_name' to get the flag and make the table and database names lowercase if needed.
BUG:235507
*******TODO: port to Predicate

2010-04-25
KexiDB
*fix crash or freeze for testing database connection on error or timeout
BUG:124959
CCBUG:234536

2010-04-24
KexiDB
*fixed crash in connection data handling
BUG:234536
*fix crash when testing database connection and debug gui is enabled (related to using gui in different thread)
CCBUG:234194

~~~~~~~~~~~~~~~~ 2.2 beta 2 ~~~~~~~~~~~~~~~~

2010-04-19
KexiDB
*fix possible crash when adding two or more new columns to a table at once
BUG:234194

Table View
*BUG:234192 Workaroud for possible Oxygen bug

2010-04-06
Table View
*fix possible crash in tooltips handling
Forms
*fix display of comboboxes
TODO: further improve it  (r1121616)

2010-04-05
Forms
*availability of selection-sensitive actions (like "Assign action") is properly updated
**also use internal manager's action collection when searching for actions: this allows access to "assign action" action
**look at internal action also when !activeFormViewWidget()
*make the form's toolbar take less space - most buttons have no labels

2010-04-03
KoProperty
*skip items unacceptable by selector also after changing the sort order
**this fixes the visibility issues in kexi's propeditor

2010-04-02
*remove bundled, unused sqlite2 and 3
Forms
*make the Spring element transparent and like antialiased
*hide Spring element and autofield widget (will be back in 2.3)
*hide the Object Tree tab (will be back in 2.3)
*"Assign action" feature ported
*make group box widget show properties

~~~~~~~~~~~~~~~~ 2.2 beta 1 ~~~~~~~~~~~~~~~~

2010-03-30
Reports
*We're using term "item" instead of "control" in reports. So change report:control-source to report:item-data-source.
Forms
*Update info label when selected object's name changes
TODO: properly reset name when renaming to "" fails

~~~~~~~~~~~~~~~~ 2.2 alpha 1 ~~~~~~~~~~~~~~~~
2010-03-07
Utils
*Simplified build of the transliteration table. Backported from libpredicate.

2010-03-06
Buildsystem
*add SHOULD_BUILD_KOREPORT for completness
*do not touch BUILD_koreport, it's set by macro_optional_add_subdirectory()
*make kexi reports depend on BUILD_koreport and SHOULD_BUILD_KOREPORT, not on their dependencies
*define dependencies of koreport (i.e. kchart) at toplevel

2010-02-26
*KexiDB
**SQLite version handling improvements: added private copy of FindSqlite (kdelibs do not provide new enough, kde 4.4.1 probably will)
**system SQLite is used for now
TODO: look for features and WARN at the build time and runtime if someting is missing
TODO: provide an sqlite patch in 3rdparty
TODO: disable progress bar for compacting when sqlite is not patched
TODO: fix sqlite includes and libs lookup for Windows

2010-02-25
KoProperty
*moved to Calligra libs

2010-02-20
Reports
*add constness
*replace boolean attribute with enums in KRPos and KRSize
*remove warnings
*add missing translation to properties
*'''old 1.x reports code removed'''
*make projects created when "uk.co.piggz.report" class was used still work and use the new class name

2010-02-16
Reports
*fixed crash when clicking report tools but report window is not the current one
*harmonize the look and name of data source tab with form designer

2010-02-12
Reports
*Font properties are saved to ODF-like attributes instead of single qtFont value

2010-02-02
Forms
*fixed disappearing properties of renamed widgets (regression in 2.x)
*update header of the data source pane when widget is renamed
*renamed reportspgz to reports, it's now official reports implementation in Kexi

2010-01-30
*KexiDB
**SQLite version handling improvements (FindSqlite macro)
*kexisql updated to 3.6.22
**we're still embedding sqlite in Kexi because of many options that are not set in distros, e.g. SECURE DELETE should be on by default http://sqlite.org/compile.html#secure_delete
**moved to amalgamation version for efficiency http://sqlite.org/amalgamation.html - makes it run faster
**moved directly to sqlite driver - even more efficiency
**SQLite: make readonly flag work again
**SQlite: "use database" operation no longer attempts to create new database if missing
** (Predicate updated)

2010-01-27
KexiDB
*fixed memory ownership issues with data structures for ORDER BY in select queries
**this fixes generation of ORDER BY section of SQL statements
*improved debug of ORDER BY columns
** (Predicate updated)
TODO: Query Designer: switching from design to SQL view still can crash

2010-01-23
Main Window
*Added tabbar for the property editor pane
*Make property editor pane's tabbar show properly when switching between windows being in design/view modes, make is also behave properly when propery pane is collapsed

2010-01-19
Forms
*fixed possible crash when setting readonly flag for line edits
TODO: fix setting readonly flag for line edits

2010-01-18
Main Window
*Added tabbar for the project navigator
TODO: make it work also when the pane on the right/top/bottom
TODO: support propeditor

2010-01-17
Main Window
*Added view menu to the statusbar (but disabled for now)
**added "show project navigator" and "show property editor" to the view menu

2010-01-16
Main Window
*hide not working items in the Project tab
*added "cut" action to the "data" tab
*improve name for "copy special" and "paste special" actions
*moved "copy special" action to project navigator's context menu
*moved "import tables" action from "tools" to "external data" tab

2010-01-15
KoProperty
*ported the line style editor

2010-01-12
KoProperty
*color editor ported, improved: oxygen colors displayed
TODO: enable transparency selection
TODO: add transparency option
TODO: reimplement view using KColorCells
TODO: line style editor: copy from plugins/dockers/LineStyleSelector.h
Forms
TODO: add support for paletteForegroundColor and paletteBackgroundColor properties of Kexi 1.x (add special case on load/save)

2010-01-10
Forms
*Only add dashed frames for widgets with no frames
TODO: compress actions for QUndo
TODO: renaming widgets using name property do not work
TODO: port KexiCustomPropertyFactory
      - image box widget and name property needs it; see wi->setCustomTypeForProperty("pixmapId", KexiCustomPropertyFactory::PixmapId);
KoProperty
*Do not repaint item when value was changed by inline editor in the same item
*boolean, int-spin-box, double-spin-box, font editors commit value changes directly now (no need to move to another item)
TODO: add commitData(this) to more editors...

2010-01-04
Table View
*fix coordinate for painting focus frame, this also makes more elegant fix compared to the yesterdays patch

2010-01-02..03
Tests
*make kexidbtest create kexi-compliant databases (i.e. using KexiProject class)
KexiDB
Core
*simplify assignment operators
Table View
*improve left/right margins of text editor
*fix disappearing bottom border of the grid when scrollbars re-appearing
*fix repainting on scrolling horizontally to the right
*fix: small geometries contents were moved 1/2 of row height up
Main Window
*re-display project navigator pane after reopening project
BUG:220686

2009-12-25..29
KoProperty
*use buddy so clicking on item names show and activate the editor
  (why does it work ok now? it was disabled in r944261)
*double spin box: do not keep Property context, instead read unit in advance
*use the "step" property option when comparing values of double type

2009-12-05
Reports
*Qt-ify: remove get prefix form some accessort
*add more constness (a lot more needed)
*remove abbreviations like head and foot
**TODO: let's remove these from the file format ("head", "foot")?
*showGroupHeader -> setGroupVisible, etc.

2009-11-24
Table View
*fix painting drop down button for combobox editor
*fix painting drop down button for blob editor
*remove delay for the blob editor's popup
TODO: use tableview's appearance parameters for color
TODO: fix painting for styles like windows, cleanlooks...

2009-11-14..15
Query Designer
*disable horizontal scrollbars in table containers
Table View
*fixed geometry of combo box popup

2009-11-11
Table View
*fix row deleting (typo)
*do not display context menu title - most actions are related to a single cell (Cut, Copy..) and others to entire row (Delete Row)
*display "Save Row" and "Cancel Row Changes" buttons on the context toolbar (appears also in forms)

KexiDB
*make detailed description of database operation's error more compact
*SQLite: show server result name, e.g. "SQLITE_CONSTRAINT"

2009-11-10
KoProperty
*fix implementation of copy constructor of the Set class (possible crashes, appearing e.g. on saving in Table Designer)
*fix propety groups handling in Set

2009-11-09
Forms
*allow to override selectAllOnFocusIfNeeded()
*text editor widget:
**do nothing for selectAllOnFocusIfNeeded()
*checkbox widget
**better minimum size
**better inline editing

2009-11-06
Forms
*text editor widget:
**disabled inline editing when data source is assigned
**disabled inline editing for newly inserted widget
**assigned data source name is displayed
**"data source tag" icon is displayed to indicate there is data source assigned

2009-11-05
Forms
*line edit widget:
**display "data source tag" properly for RTL mode

2009-11-03..04
Forms
*line edit widget:
**"data source tag" icon is displayed to indicate there is data source assigned
**disabled inline editing when data source is assigned
**disabled inline editing for newly inserted widget
*API improvements:
**setInternalProperty()/internalProperty() added to WidgetInfo
**internal property values are now QVariants
*image box widget:
**displaying images ported to Qt 4
**display frame for frameless boxes in design mode (like for the label)
**fix missing icons for the context menu
**make frame always null by default
**display data source tag icon for bound widgets

2009-10-28..31
Forms
*fix setting data source: use QUndo's merging rather than extra code
*API: WidgetInfo
**moved to a separate file, public headers are now installed to kexi/forms/ (but it's not yet really public)
**add setAutoSaveProperties() to WidgetInfo and remove WidgetFactory::autoSaveProperties(); this works better for class inheritance, e.g. fixes missing autosaveproperty for kexidblabel widgets
*restore focus to the recently focused widget after clicking on the record navigator
*select widget contents (usually text) after moving to other record or moving to other field using tab/backtab
*set focus policy to "no" for forms themselves and the record navigator widget
*fix cursor handling in data and design modes

2009-10-27
General
*versioning in par with calligra again

2009-10-05..07
Forms
* Use KPluginLoader for widget factory plugins
Plugins
* Use KPluginLoader for Kexi plugins
CSV Import Dialog
* Improve layout
* Fix updating "start row" widget when there is only single row of data or no rows at all
* Fix crash when importing just single \n character as data

~~~~~~~~~~~~~~~~ 2.0 alpha 13 ~~~~~~~~~~~~~~~~

2009-10-26
Forms
*Before executing "Show Form UI Code" action, accept widget inserting/editing

2009-10-22..23
Forms
* fix painting selection rectangle: before it sometimes cleared the grid vertically
* fix painting insertion rectangle
* fix setting/unsetting cursor
* improve align-to-grid (now it is aligning to the closest grid); this especially fixes setting default widget sizes

2009-10-18..20
Forms
* added FormWidgetInterface: adds common designMode attribute to widgets what enables display customization depending on the mode (e.g. displaying frames)
* draw frame for frameless widgets like label in design mode
* use semitransparent background when editing text for labels
* make grid simpler
* added editingMode attribute to FormWidgetInterface, and used it to alter paining of the widget while the inline editing is active
TODO: add option to switch it off
Main Window
* fix updating shared actions availability after switching to a new tab

2009-10-12
Utils
* fix functions related to property introspections
Forms
* fix properties of type 'flags' handling, e.g. alignment is saved and restored properly

2009-09-22
KoProperty
* add option for out-of-kexi builds with altered lib name and version
* make dependency on kolibs optional

2009-09-19
Migration
* Use KPluginLoader for migration plugins

2009-09-15
General
* remove obsolete icons

2009-09-13
Migration
* use the imported db file name provided at startup after opening external format, e.g. from command line "kexi mydb.mdb"
* fix typo in date/time formatting string, this fixes importing Northwind.mdb on windows (assertion in strftime())
** backported to 1.1.3

2009-09-07
KexiDB
* Use KPluginLoader for drivers

2009-09-06
KoProperty2
* KoProperty1 eventually obsoleted and removed from svn; KoProperty2 renamed to KoProperty

2009-09-03
Utils
* Added Setter helper that sets given variable to specified value on destruction. Object of type Setter are supposed to be created on the stack.
Table View
* removed crash on adding new row (invalid iterator value)

2009-08-31
Forms
* remove kdevelop plugin and test (kformdesigner); this code is no longer compatible with the current API; maybe one day...

2009-08-30
Forms
* removed possible crashes in the auto-tab-order routine
Table Designer
* replace three extra "clear" buttons with the clear icon available within the KLineEdit objects

2009-08-29
Main Window
* improved saving/restoring of sizes and areas for project navigator and property editor

2009-08-28
Table View
* record navigator: (hopefully) improved and simplified the geometry 
* record navigator: use standard icons
Main Window
* remove hardcoded minimum width of the project navigator and re-add saving of the main window state

2009-08-26
Table View
* if context menu event has no position defined, only handle it if the type is keyboard
** (this fixes a problem with popups showing when right clicking on any outer area of the table view)

2009-08-23
Widgets
* fix appearance of the number field of the record navigator

2009-08-22
Main
* Fix delayed show of actions on the "create" toolbar
Table View
* fixed moving cursor to and from the 'insert item' (also fixes this in forms)
* fixed painting the 'intert row' when the mouse pointer leaves the area to the south or west

2009-08-19
Startup
* Fix opening local file from file dialog (windows)

2009-08-07
KexiDB
* SQLITE 2.8 support removed from the code

2009-06-17
Forms
* image box: fix painting semitransparent icon for unbound widgets

2009-06-07
Forms
* std & container factories: fix setting object names; this fixes widgets that are not reimplemented by kexidbfactory
KoProperty
* only change parent properties of composed properties (e.g. "geometry" for width); e.g. in case of forms child properties are read-only
Core
* BLOB buffer: fixed loading pixmaps (checking mime type)

2009-05-13
Forms
* [API] "Data Source" tab: rename some memebers for clarity
Widgets
* moved KexiPropertyPaneViewBase and KexiObjectInfoLabel to separate files

2009-05-11..12
Forms
* On loading properties, treat "name" property as "objectName" (1.x compatibility)
* Set invisible properties in the property editor, but still add them to the set (needed e.g. for "dataSource" property)
* "Data Source" tab
** set object class/name in the header also on form loading
** use the clear buttons of KLineEdit instead of additional buttons in the form data source and field data source combo boxes
** fixed assigning data source for forms and widgets
Widgets
* KexiDataSourceComboBox: use object classes like "org.kexi-project.table", not mime types
KexiDB
* [API] renamed KexiDB::ObjectTypes to KexiDB::ObjectType
** (Predicate updated)
Core
* [API] renamed KexiPart::ObjectTypes to KexiPart::ObjectType

2009-04-25..2009-05-10
Forms
* WidgetFactory refactored
** the main change is that we do not keep pointer to a currently handled container/widget/inline-editor in per-factory manner, this is kept per-form, so WidgetFactory::editor(), setEditor(), widget(), setWidget() have been removed
** added:
*** InlineEditorCreationArgument class - arguments used by Form::createInlineEditor() and WidgetFactory::startInlineEditing()
** renamed:
*** virtual bool startEditing(const QByteArray &classname, QWidget *w, Container *container) = 0 to virtual bool startInlineEditing(InlineEditorCreationArguments& args) = 0
*** resizeEditor() made public
*** virtual bool changeText(const QString &newText) renamed to virtual bool changeInlineText(Form *form, QWidget *widget, const QString& text);
*** void changeProperty(const char *name, const QVariant &value, Form *form) renamed to void changeProperty(Form *form, QWidget *widget, const char *name, const QVariant &value);
** moved:
*** void createEditor(const QByteArray &classname, const QString &text, QWidget *w, Container *container, QRect geometry, Qt::Alignment alignment, bool useFrame = false, bool multiLine = false, Qt::BackgroundMode background = Qt::NoBackground) moved to void Form::createInlineEditor(const KFormDesigner::WidgetFactory::InlineEditorCreationArguments& args);
*** contents of disableFilter() moved to Form
*** eventFilter() moved to Form::eventFilter()
*** resetEditor() moved to Form::resetInlineEditor()
*** disableFilter() moved to Form::disableFilter()
*** changeInlineTextInternal() moved to Form::changeInlineTextInternal()
**** now uses InlineTextEditingCommand
***  inlineEditorDeleted() moved to 
*** slotTextChanged() moved to Form::slotInlineTextChanged()
*** editorDeleted() moved to Form::editorDeleted()
*** widgetDestroyed() moved to Form::widgetDestroyed()
*** editorText() moved to Form::inlineEditorText()
*** setEditorText() moved to Form::setInlineEditorText()
***  m_editedWidgetClass moved to Form::Private::editedWidgetClass
***  m_firstText moved to Form::Private::originalInlineText
***  m_editor moved to Form::Private::inlineEditor
***  m_container moved to Form::Private::inlineEditorContainer;
** removed:
*** void setEditor(QWidget *widget, QWidget *editor);
*** QWidget *editor(QWidget *widget) const;
*** void setWidget(QWidget *widget, Container *container);
*** QWidget *widget() const;
*** QPointer<ResizeHandleSet> m_handles;
*** QPointer<QWidget> m_widget;
* ContainerFactory:
** addTabPage() moved to internal AddTabAction, so context (container, widget) is no longer kept globally
** similarly, renameTabPage() moved to internal RenameTabAction
** similarly, removeTabPage() moved to internal RemoveTabAction
** similarly, addStackPage() moved to internal AddStackPageAction
** similarly, removeStackPage() moved to internal RemoveStackPageAction
** similarly, nextStackPage() and prevStackPage() moved to internal GoToStackPageAction
* ResizeHandleSet:
** added Form* form() const
*Commands:
* use InlineTextEditingCommand in Form::changeInlineTextInternal() to get undo/redo functionality for inline editing
*KexiDBFactory updated for the new API

2009-04-20..24
Forms
- fixed undo/redo for inline widget's text editing

- moved from K3Command to QUndo framework
-- CommandGroup removed, Command can be used as a command group
-- PropertyCommandGroup added as a group for PropertyCommand objects,
   CommandGroup::copyPropertyValuesFrom() code is now in PropertyCommandGroup::mergeWith()
-- Form::commandHistoryDocumentSaved() renamed to Form::setUndoStackClean()
-- Form::clearCommandHistory() renamed to Form::clearUndoStack(), what clears the undo/redo stack
-- Form::slotCommandExecuted() removed

TODO: port undo/redo for moving multiple widgets
TODO: look if KexiFormManager::slotHistoryCommandExecuted() is now called properly
TODO: inline editing should merge multiple commands of character entering into a single command
TODO: when e.g. changing widget's width using the 'width' property item in the propeditor, first a PropertyCommand for geometry property is added and then another for the width property; the latter should not be created

2009-04-16..19
Forms
- added undo/redo actions for moving widgets (one or more)
- on moving widget: just change the value of "geometry" property, to avoid multiple PropertyCommands that only differ by value
= PropertyCommand::property() -> PropertyCommand::propertyName()
= added operator<< for kDebug() for *Command classes

2009-04-15
Forms
- design mode: fix random dragging of the selected widget(s) when click+dragging
  the mouse outside of the popup menu (at least on Windows)

2009-04-12
Main Window
= remove undo/redo actions from the global toolbar
  (these will be placed on individual local toolbars)
Forms
- add undo and redo actions to the local toolbar

2009-04-09
Core
- make predefined order of parts based on classes
- make reportspgz temporarily jump in the place of "reports"

~~~~~~~~~~~~~~~~ 2.0 alpha 12 ~~~~~~~~~~~~~~~~

2009-03-29..2009-04-08
KoProperty
- added kDebug() stream operators for Property and Set
- added Set::AlphabeticalByName option for Set::Iterator::setOrder()
- removed error-prone Property::operator bool() const
= EditorDataModel: update index cache when order is changed
- added ExpandChildItems option added to EditorView::SetOptions,
  if true, child property items are expanded 
- added Set::PropertySelector::clone() so PropertySelectors 
  can be used via const reference
- added uint Set::count(const PropertySelector& selector) const
- added bool Set::hasVisibleProperties() const
- added bool Set::hasProperties(const PropertySelector& selector) const
Forms
- widget resizing now creates undoable command
- property values (x, y, w, h) are visually updated
  on widget resizing using handles
-- even if the properties are sorted alphabetically
Main Window
- make complex properties (e.g. QRect) expanded by default

2009-03-23..24
KoProperty
- paint background and alter pen color for selected items before 
  ValuePainterInterface is used for painting
- better handling of mouse clicks on items
- font editor now displays font sample and font name
- simpified code of font and pixmap editors
- fix style of up/down buttons of spin boxes
- added subproperties for QSizePolicy editor
- no need to update subproperty values in *ComposedProperty ctors, 
  because Property::setValue() is called in Property ctor anyway
  what in turn calls ComposedProperty::setValue()
= test: added --font-size option
- improved boolean editor's painting
- improved position of spin box arrows and style
- font face/size now follows the view's font in editors

2009-03-21..22
Main Window
- fix forced property set reloading
Forms
- make some more methods const
- Property Editor: do not show properties that are nonreadable or nonwritable
- Property Editor: do not even create advanced properties
- Property Editor: do not create top-level properties that are displayed 
  as subproperties, e.g. "x" which is already available as "geometry.x"
  (this is performed by skipping nonwritable properties)
- "name" property replaced with compatible with Qt 4 "objectName"
- "objectName" is still stored/loaded as "name" for backward compatibility
- advanced properties renamed in Qt 4: "accel" -> "shortcut", "icon" -> "windowIcon"
   "iconText" -> "windowIconText", "caption" -> "windowTitle"
- new advanced properties in Qt 4: "accessibleDescription", "accessibleName", 
   "autoFillBackground", "contextMenuPolicy", "locale", "statusTip", "windowModality",
   "documentTitle"
- line edit's "echoMode" property replaced with KDE's "passwordMode"
- translations for new properties, e.g. "squeezedTextEnabled"
- new properties of QWidgets: "styleSheet", "whatsThis", "toolTip", "layoutDirection", "iconSize"

- widgets: replace Q_OVERRIDE with Q_PROPERTY, plus appropriate changes in signatures;
           leave DESIGNABLE only if it is false bacuse DESIGNABLE is true by default
KoProperty
- added convenient method
  QVariant Set::propertyValue(const QByteArray &name, const QVariant& defaultValue = QVariant())

2009-03-19
Core
= better sanity check: fix crash when more than one object
  with Part ID == -1 is encountered in kexi__objects table
= show error when no KexiWindowData is returned by the current plugin
Reports
= missing setInternalPropertyValue("instanceName",...) for reports
- sanity check: avoid crash when details definition XML string is empty

2009-03-18
Main Window
- properly hide the property editor pane when switching 
  between views and tabs
Forms
- fix initialization of forms in data view (possible crash)
- fixed misbehaviour when clicking another widget item on the widget toolbar

2009-03-11..13
KoProperty
- properties are kept in order of insertion
- made one or two methods const, and inline
- added Set::Iterator::setOrder(Order order) so alphabetical order
  is also available
- 'sorting key' attribute removed from Property
Core
- added KexiView::setSortedProperties(bool)
Forms
- properties are sorted alphabetically, at least for now

2009-03-09
General
- use global Oxygen icon: database -> server-database
Forms
- right-click cancels widget inserting mode

2009-03-08
Forms
- fixed tab/backtab handling

2009-03-07
Forms
- highlighting icons on mouse-over or on focusing (e.g. for buttons in Oxygen style) 
  has been disabled in design mode
  (by adjusting QStyleOptions)
- data view mode started to work

2009-03-05
Forms
- don't select already selected widget again
= disabled painting code in KexiDBForm
TODO: port what's remaining

2009-03-03
Forms
= fixed crash in label widget
TODO: port shadows using Qt 4 facilities

2009-03-02
Forms
- disable resizing resize handles using anything but left mouse button
- activating "edit_pointer" action aborts "widget inserting" mode
- fix selecting multiple using rectangular areas
- fix positions of multiple widgets pasted from clipboard position:
  subtracting the original offset and adding the new one

2009-03-02
Forms
- show properties for form widgets (that was broken by mistake)
- we are sharing the same KoProperty::Set object so use propertySetReloaded() 
  instead of propertySetSwitched(), otherwise the property editor would 
  not refresh
TODO: use QObject's "objectName" property instead of nonexiting "name"

2009-03-01
Forms
- context menu appears at proper position also when executed for child widgets
- resize handles are properly displayed again
- widgets inserted with single click have size aligned to grid if necessary
- fixed inserting widgets by specifying the geometry using mouse
- fix drawing rectangle while inserting widgets by specifying the geometry 
TODO: perhaps draw the rectangle differently
- selection rectangle is now painted over widgets too
- only minimal needed region is repainted when selection/insertion rectangle changes
TODO: it is possible to optimize this even more by painting only areas near borders
= code simplified:
  added utility function alignValueToGrid() for use instead of copy/pasted code

2009-02-28
Forms
- do not align selection rectangle to grid

2009-02-27
Forms
= make the actions from widget-action-group accessible for the Form object
- the above allows to switch back to the edit_pointer toggle action after 
  inserting a new widget
TODO: remove usage of KFormDesigner::ActionGroup when the two libraries are merged

2009-02-26
Forms
= fixed resizing widgets with taking grid into account

2009-02-25
Forms
= reenabled form's debugger window

2009-02-24
Forms
- fixed copy/paste for widgets, including position of the duplicated widget
- fixed painting of the grid when scrolling vertically
TODO: optimize scrolling
= replaced usage of QDomNode::namedItem().toElement() with QDomNode::firstChildElement()

2009-02-23
Forms
- optimized painting grid: only required rectangle is painted; 
  this makes moving or resizing widgets smoother
TODO: optimize more; there are 2 events when widget is moved
[5496] kexi(5496)/kexi (general) bool __thiscall KFormDesigner::Container::eventFilter(class QObject *,class QEvent *): QRect(457,367 41x35)
[5496] kexi(5496)/kexi (general) bool __thiscall KFormDesigner::Container::eventFilter(class QObject *,class QEvent *): QRect(0,0 35x19)
                                                                                                                              ^^^^^^^^^
- tab widgets can be dragged by clicking on the container
- QStackedWidget replaces QWidgetStack in a few more places in the code

2009-02-22
Forms
- added temporarily hardcoded "Form Design" tab in the main toolbar
- inserting, selecting, moving andresizing form widets works

2009-02-21
Main Window
- delayed loading of the "create" toolbar
- possibility of adding actions to toolbars e.g. by kexi parts
Widgets
= scroll view: remove confusing "Outer area" text, the visual hint based 
  on border should be enough for users to recognize boundary of the form

2009-02-20
Forms
- now at least empty form appears again
- context menu: avoid displaying it twice; fix crash

2009-01-12..2009-02-18
Forms
- Forms Refactoring
-First phase of Kexi Forms Module refactoring. The main reason is to
  simplify the codebase and prepare it to future enchancements like 
  subforms, reports integration, and tabbed main window design.
-Detailed reasons for refactoring:
--The process of instantiating a form (the Form class) is very 
   complicated now what makes it very hard to properly implement subforms
--The code full of interdependencies and thus is fragile when adding new
   functionality or fixing bugs
--The FormManager class centralizes a number of operations that shall 
   belong to Form itself
--The naming of methods and classes can be improved, 
   e.g. Form -> FormController
--The ObjectTree* classes introduce redundancy as we already have 
   QWidget hierarchy, and extensible property system; this complicates 
   the code
-Details:
-Form and FormManager:
--FormManager removed. Most facilities of FormManager merged into Form.
   Thus we are no longer track 'active form' on switching between forms;
   instead each Form object keeps necessary information.
--void FormManager::insertWidget(const QByteArray &classname) moved
--void FormManager::stopInsert() moved as abortWidgetInserting()
--void FormManager::enterConnectingState() moved as enterConnectingState()
--void FormManager::stopCreatingConnection() moved 
   as abortCreatingConnection()
--void FormManager::slotPointerClicked() moved
   as enterWidgetSelectingState()
--Form::State enum defined instead of multiple boolean attributes
   of FormManager
--FormManager::isInserting() and FormManager::isCreatingConnection()
   removed, Form::state() is used instead
--Design or View mode is expressed using Mode enum value, not boolean flag
--Form::setSelectedWidget(QWidget *w, bool add, bool dontRaise, 
   bool moreWillBeSelected) replaced with 
   Form::selectWidget(QWidget *w, Form::WidgetSelectionFlags)
--Form::deSelectWidget(QWidget*) replaced with 
   Form::deselectWidget(QWidget*)
--bool FormManager::isTopLevel(QWidget*) moved
   to Form::isTopLevelWidget(QWidget*)
--FormManager::selectedClass() removed
--WidgetLibrary* FormManager::createWidgetLibrary(FormManager* m, const 
   QStringList& supportedFactoryGroups) removed, WidgetLibrary 
   is instantiated directly by KexiFormPart
--FormManager::dirty(KFormDesigner::Form *form, bool isDirty = true) 
   signal moved to Form::modified() signal
--FormManager::showFormUICode() moved to KexiFormManager
--FormManager::m_emitSelectionSignalsUpdatesPropertySet removed since 
   we're not using windowChanged() (??)
--void FormManager::setObjectTreeView(ObjectTreeView *treeview) 
   moved to KexiFormManager::init()
-WidgetPropertySet
--removed, its code moved to Form
--emitWidgetPropertyChanged() removed
-Added #ifdef KFD_SIGSLOTS to disable code related to visual handling 
  signal/slots connection
-FormWidget
--code moved to FormWidget.h and FormWidget.cpp
--clearForm() removed (let's hopw QWidget update() is enough)
-Commands:
--Paste/Cut/Copy commands use QApplication::clipboard() now instead 
  of FormManager::self()->m_domDoc, which has been removed
-Container:
--void setSelectedWidget(QWidget *selected, bool add, 
   bool dontRaise = false, bool moreWillBeSelected = false) 
   -> selectWidget(QWidget *w, Form::WidgetSelectionFlags flags 
   = Form::DefaultWidgetSelectionFlags)
--LayoutType enum moved to Form
--setLayout() -> setLayoutType()
-KexiFormPart
--slotPropertyChanged() moved to Form::handleWidgetPropertyChanged(),
   so Form::widgetPropertyChanged() signal can be now removed
--slotAutoTabStopsSet()'s code moved to Form::editTabOrder() itself
--KexiFormPart::static_formsLibrary moved to KexiFormManger
--slotWidgetCreatedByFormsLibrary(QWidget*) moved to KexiFormManger
--WidgetLibrary* KexiFormPart::library() moved to KexiFormManager
--assignAction() moved to KexiFormManager
-KexiFormManger
--added static self()
--is initialized by KexiFormPart
-See Also:
 http://wiki.calligra.org/index.php?title=Kexi/Porting#Forms_Refactoring

2009-01-11
KexiDB
- Connection::objectIds() and Connection::objectNames() now return results 
   sorted by IDs
- Connection::objectIds() now works as expected for object 
   type == KexiDB::AnyObjectType
(ported to Predicate too)

2009-01-03
Main Window
- do not query again about closing unsaved window when cancel was pressed

2008-12-30
Forms
= set default window color for the main db form widget

2008-12-15..25
Forms
- removed most of Qt 3 deps

2008-12-14
Forms
- paint grid and selection rectangle using alpha blending

2008-12-12
Forms
- use QRubberBand for displaying selection (and soon: insertion?) rectangles
= name() --> objectName(), className() --> metaObject()->className()
= some porting of QColor use
= Spring: use QSizePolicy's enums

2008-12-10
Main
- do not display property editor for !design mode even
  if part's X-Kexi-PropertyEditorAlwaysVisibleInDesignMode property is true

2008-12-09
Table View
- fixed offset while painting after horizontal scrolling
- fixed possible crash when scrolling vertically within a limited viewport
TODO: fix painting the last columns or rows when scrolling back 
       to x= or y=0 position

2008-12-08
Widgets
- ported Kexi*Formatter classes, reenabled their use in KexiTableView and forms;
  this fixes entering of the first character in table view cells

2008-12-07
Table View
- delay the 1st call to 'ensure cell visible' routine to avoid invalid 
  vertical scroll position on table view creation

2008-12-04
Widgets
- set "word wrap" by default in kexi editors (e.g. used in the SQL editor)

TODO: any idea how to use KTextEditor::Document::setText() without touching 
      the undo buffer? For now we're allowing user to execute "undo" action
      what just clears the editor's contents.

2008-12-03
Kexi
= added more detailed debug areas for Kexi: 
    44019        kexi (main)
    44021        kexi (plugins)
    44022        kexi (property)
    44023        kexi (widgets)
    44024        kexi (utils)

2008-12-02
Table View
- use QRubberBand instead of painting with XOR in the drag indication

2008-12-01
Core
= KexiFieldDrag: encoding drag data in Qt 3.1 format no longer needed
Table View
- fixed drag&drop items as table rows for Qt 4 
  (used e.g. in the Query Designer)

2008-11-21
Core
- make default value of X-Kexi-PropertyEditorAlwaysVisibleInDesignMode 
  flag for kexi parts == true by default
- remove crash on creation of a new part item that is first of its class 
  within a given project; e.g. when the first query is created
  (introduced after moving towards "part classes")

2008-11-19
Main Window
- property editor pane now is displayed when user clicks "new table"
  action (there's no property set yet, but we want to display the pane 
  in advance)
Table View
- fixed crash on mouse move in "what's this mode" over the table view:
  when "column under mouse" is -1
- clicking vertical header changes current row
- mouse move over vertival header updates table view row highlighting

2008-11-18
Table View
- fixed the table view's vertical header paint routine;
  moreover, the icons are now displayed using the current 
  foreground color

2008-11-16
Widgets
= vertical header: use brush instead of just color, 
  and paint the background prior to using QStyle
  (this still isn't proper fix)

2008-11-15
Kexi
= ported uses of setPaletteBackgroundColor() 
  and setPaletteForegroundColor() to Qt 4

2008-11-14
Tables
- fixed bug in table removing code, introduced in r671303
Core
- in general: we're no longer using part IDs, we have switched 
  to Java-like part class names e.g. org.kexi-project.table;
  this allows for easier development of custom 3rdparty plugins
- Plugins: removed X-Kexi-TypeMime property (of values like kexi/query)
  and added X-Kexi-Class, e.g. org.kexi-project.query
- KexiPart::Manager::partForMimeType() replaced 
  by KexiPart::Manager::partForClass()
- KexiPart::Manager::infoForMimeType() replaced
  by to KexiPart::Manager::infoForClass()
- KexiProject::itemsForMimeType() replaced
  by KexiProject::itemsForClass()
- KexiProject::getSortedItemsForMimeType() replaced 
  by KexiProject::getSortedItemsForClass()
- KexiProject::itemForMimeType() replaced 
  by KexiProject::itemForClass()
-  KexiProject::items(): retrieve info about all objects instead 
  of running queries separately for each class
Kexi
= add {} to one-line foreach to avoid unreadable code by astyle

2008-11-13
Property Pane
- fixed layout, refactored object info label as KexiPropertyPaneViewBase
  for use in custom tabs: KexiPropertyEditorView, KexiDataSourcePage
= remove some Qt3 dependencies
= fix layout margins
Widgets
= further fixes for small toolbar button width on Windows
Table View
= fix layout margins of the editor
- Use QToolTip for displaying tooltip with "Row: ..."
  information for the vertical slider
Utils
- added KexiUtils::setStandardMarginsAndSpacing()

2008-11-12
KoProperty2
- unset the current property set (that is about to be deleted) from the editor
  (fixes possible crash)
Main Window
- display property editor after entering into the design view directly
- tabbar: "Project" tab is active by default
- fix placement of the statusbar
Widgets
- small tool button: fix width for the Windows style and substyles
Project Navigator
- add a popup menu to the group items, with "Create new" action 

2008-11-09..11
KoProperty2
- do not display invisible properties (Property::isVisible()==false)
- removed obsolete widget.{h|cpp}
- added overloaded ctor of Set::Iterator accepting functor
- removed unnecessary koproperty{warn|dbg} macros 
  as we use own KDE_DEFAULT_DEBUG_AREA
- added Set::PropertySelector for easy iterating over selected properties
- Set is now based on QHash<QByteArray, Property*>
- Set::Iterator is now based on QHash<QByteArray, Property*>::ConstIterator,
  not on an ascii dict iterator from Qt3. 
- optimized removing properties from the set and thus destructing sets

2008-11-08
Kexi
- use KoProperty2 in Kexi (this breaks many functions now)
KexiDB
- MySQL driver: fixed problem with creating a new database 
  when the name contains uppercase characters
  (MySQL's "SHOW DATABASES LIKE .." does not work unless 
  we convert the argument to lowecase.
= make a few statements uppercase
- use QString::arg() and escapeIdentifier() for building 
  statements (security..)
Predicate: ported

2008-11-07
KoProperty2
= re-added GroupContainer (a dependency of kfd)
= fixed painting pixmap delegate

2008-11-06
KoProperty2
- pixmap editor ported

2008-11-04
KoProperty2
- int spin box editor now handles uint type as well
- rect and size types: width and height properties are now of type uint

Widgets
- KexiCustomPropertyFactory ported to KoProperty2

2008-11-01..03
KoProperty2
- custom property API replaced with 'composed'; implementation of subproperties moved
  to factory itself (size/rect/point types already ported to this API)
- propertytest app: added '-property' option for testing of a single property type

2008-10-30
KoProperty2
- drawing gray grid lines and altering style sheets for grids moved to a common routine
- 3-state bool editor properly works and is painted
- fixed painting recently implemented editors for composed types (rect, point, size)

2008-10-26
KoProperty2
- editor widgets ported to the new API: point, int, double, cursor
- combo editor: added possibility of displaying icons
- cursor editor displays icons

2008-10-25
KoProperty2
- factories refactored using convenient interfaces
- editor widgets ported to the new API: string, rect, size, combo, bool
- improvements in the model and view classes

2008-09-23
KoProperty2
- 'revert to defaults' works
- line edit now uses KLineEdit and has clear button enabled
- added tooltip for 'revert to defaults' button

2008-09-11..21
KoProperty2
--EditorDataModel: use buddy() so we can show editor widget even when 1st column's cell was clicked
--EditorView: test StringEdit editor and a test factory created
--ItemDelegate: paint full-line borders, like in Designer and many other propeditors (there's no way 
to paint [+] without branch lines in Qt4's QStyle anyway); 
- modified properties are displayed in bold
- 'revert to defaults' button reintroduced
- parts of Editor class API ported to EditorView

2008-09-10
KoProperty, KoProperty2
- libkoproperty 1 & 2 moved to kexi/

2008-09-09
KoProperty2
- koproperty2 improved

~~~~~~~~~~~~~~~~ 2.0 alpha 11 ~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ 2.0 alpha 10 ~~~~~~~~~~~~~~~~

2008-07-12
Simple Printouts
(still not compiled in though, ported from 1.3, implemented on 2007-11-21)
- a single record is no longer limited to one page
  CCBUG:150167
CSV Import Dialog
(ported from 1.3, implemented on 2008-05-27)
- added support for boolean (1, 0, yes, no, true, false) and floating-point data types
- fixed all dates after 2000 appearing after import wrongly as being 
  of the 20th century i.e. 1901 or 1902 instead of 2001 or 2002;
  to implement this, added config value MinimumYearFor100YearSlidingWindow, 
  by default 1930, range of years that defines where any year expressed as two digits falls. 
  For date window from 1930 to 2029, two-digit years between 0 and 29 fall in the 2000s, 
  and two-digit years between 30 and 99 fall in the 1900s. 
CCBUG:151478

~~~~~~~~~~~~~~~~ 2.0 alpha 9 ~~~~~~~~~~~~~~~~

2008-07-07
Core, Main Window
- avoid infinite recursion on closing window with never saved data
- avoid repeated call of KexiWindow::switchToViewModeInternal(mode) when previous call did not succeed

~~~~~~~~~~~~~~~~ 2.0 alpha 8 ~~~~~~~~~~~~~~~~

2008-05-09
CSV Import Dialog
- fix setting data types for columns, previously text type was used instead
- fix autodetecting and importing of floating-point values in "E scientific notation"
- output null values to fields if value coversion failed (e.g. text-to-date);
  without this subsequent values are written into the wrong columns
- added "Date format" import option with possible values: auto, DMY, YMD, MDY
Ported from 1.0: r805884
BUG:147809
BUG:151478

~~~~~~~~~~~~~~~~ 2.0 alpha 7 ~~~~~~~~~~~~~~~~

2008-05-05
Main Window
- execute 'copy to clipboard' instead of 'copy to file' in 'edit->copy special' menu
1.x: merged

2008-01-17
Table View
- A fix for data editing bug #155899. 
  When a default value is specified for an field with 'required' flag,
  it was not only applied when a new row is created,
  but also when an existing row is edited,
  thus overwriting the existing value.

2008-01-10
KexiDB
- Fix the bug #146818: handling expressions containing
 binary operators like *, /, -, + where both arguments are of
 floating-point type (with single or double precision).
 Previously the result was marked as boolean, now it is
 floating-point.

2007-12-09
KexiDB
- make optimization with LIMIT driver-dependent

~~~~~~~~~~~~~~~~ 2.0 alpha 6 ~~~~~~~~~~~~~~~~

2007-11-19
Startup
- minor GUI fixes (description box)

~~~~~~~~~~~~~~~~ 2.0 alpha 5 ~~~~~~~~~~~~~~~~

2007-10-18..19
Table View
- fixed highlighting current table column
- fixed regression: a crash when could not find item using "Find" dialog
Main Window
= do not display property editor initially
Core
- KexiStandardAction introduced, usable when putting local, nonshared actions into individual panes/windows
- fixed behaviour of switching between views
Query Designer
- fixed layout and painting for sql history (incomplete)

2007-10-16
Main Window
- tabbed toolbar now honours menuFont and toolBarFont KDE settings as well as reacts to changes of these
- hide property editor if there is no project opened
Query Designer
- fixed regression in loading condition info

2007-10-15
KexiDB
- a fix for possible compiler problem (see http://bugs.kde.org/show_bug.cgi?id=150388)

2007-10-05
Query Designer
- fixed SQL View
General
- updated icon names and set up installation of application-x-kexiproject-sqlite* icons
KexiDB
- removed crash on closing db connection
- mimetype-related API improvements
GUI
- local toolbars now entirely belong to KexiViews, not to KexiWindows, for smoother GUI updates
- flow layout: it is now possible to set vertical/horizontal alignment of items

2007-09-17
- Fixes for BUG #149906

2007-08-28..2007-09-03
Main Window
- fixed creating new objects
= windows are now deleted on close
Query Designer
- fixed layout and appearance
- relationship lines are now antialiased
- autoscroll implemented
TODO: ^^^^ only to right for now!
- added "Append Field(s)" action for table containers
General
= Qt3 containers with autodeletion replaced with Qt4 equivalents

2007-08-21
Table View
- fixed appearance of record navigator
- removed unnecessary Qt3 double buffering
- fixed appearance of horizontal and vertical headers
- fixed placement of context menu title, and added one for data view
Table Designer
- show field name in property editor instead of field caption 
  if the latter is not available
Main Window
- fixed presentation of "dirty" state for designed object
- "save" button added

2007-08-20
Core
- "switch to view mode" toggle buttons moved down to windows
Main Window
- Property Editor is now visible only when there are properties to edit
  (i.e not in Data View)
- fixed switching between context of current tab (window), 
  so e.g. Property Editor and Find window are properly updated
- Tabbed Toolbar gets Kexi menu and help area
- support for User Mode reintroduced

2007-08-17
Main Window
- tabbed toolbar: delayed tab switching on mouse hover (0.5 sec)
- standard actions work
= fixed "close window" button

2007-07-26
Main Window
- prototype tabbed toolbar

2007-07-19
KexiDB
= removed possible crash on application quit

2007-07-16
Core, Main
= fixed creating shared actions
= fixed switching between view modes and tabs
= fixed possible crash in compacting function (CID 3905)
KexiDB
= fixed possible double deletion of cursors

2007-07-13
General
- some crashes removed

2007-07-08
General
- removed some of the Qt3support usage

2007-07-06
Build
= never use global static QObjects (problem on Windows), use K_GLOBAL_STATIC instead
Main Window
- tabs can now be closed

2007-07-05
Table View, Main Window
- Table View works, tables can be opened in the navigator

2007-06-26
- Kexi compiles under win32
= KStaticDeleter replaced with K_GLOBAL_STATIC

2007-06-22
- msvc: added #warning substitute: #pragma WARNING(Your message)
- win32 compilation started
Build System
- #pragma WARNING() added for msvc as a substitute for #warning
- dropped unportable gcc's -include option

2007-06-18
KexiDB
- fixed SQLiteConnection::isReadOnly() on Linux
Main Window
- fixes for Project Navigator

2007-06-13
Main Window
- display Project Navigator
- display tabs for windows as central widget
Core
= widely use Kexi::ViewMode enums instead of int
= a fix for loading Kexi Parts

2007-06-13
Startup
- use KFileWidget in startup dialogs
= fixed behaviour of the open file dialog

2007-06-11
Kexi 2.0
- * Kexi source code compiles with Qt4 *
- ported plugins: forms/, relations/, migration/, importexport/, queries/
- updated widget/, formeditor/, main/
  More info at http://kexi-project.org/wiki/wikiview/index.php@Porting%20to%20Qt4.html
- mimetype icons moved to KDE4-compatible hicolor

~~~~~~~~~~~~~~~~ 1.1.3 bugfix release (with Calligra 1.6.3)  ~~~~~~~~~~~~~~~~

2007-05-29
Core
- added "No Kexi/Handler service type installed" error message 
  to avoid crashes when installation is broken.

2007-04-26
Fixed pgsql driver build

TODO: compile in rel mode, reupload
TODO: forms are not imported well from pgsql to sqlite (e.g. New_database)
TODO: importing from pgsql to pgsql does not work
TODO: query sql view: fix & in 'SQL Query History'

2007-05-14
Kexi 2.0
- widget/* largely ported and compiles
- removed many warnings
- update for current kdelibs

2007-04-23
KexiDB, Project Migration
- remove usage of older API function (from Debian, thanks)
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=420477
- fixed a bug because of error in pqxx docs:
  pqxx::sqlesc() is not the same as pqxx::Quote()

2007-04-20
Main Window
- fixed a bug in "Do you want to permanently delete..." message
CCMAIL:144436-done@bugs.kde.org

Kexi 2.0
- updates for kexicore/, kexiutils/, formeditor/
- main/ compiles (older main window mostly ifdef'd)
- widget/utils ported, compiles
- many things widget/ compiles
- widget/tableview compiles

2007-04-11
Forms
- forms having parameter query as data source now ask for parameters
2.0: merged

2007-03-21, 22
Table Designer
- clear command history after successful saving of the design
- on switching to data view, do not warn about removing data, 
  if the data will stay untouched
2.0: merged
Query Designer
- removed possible crash in data view
2.0: merged

2007-03-16
Query Designer
- fixed table sizes in the Design View
- fixed displaying relation connection lines when connected field is not visible
- fixed mouse drop position when target points on a field of table with 
  scrolled-down contents
- do not show internal relationships for visible lookup fields (JOINs) in SQL view
2.0: merged
Table View
- make column readonly if query-based data source itself is stored (i.e. has connection) 
   and lookup column is defined
2.0: merged

2007-03-15
KexiDB
- SQL parser can work recursively now (needed when multiple parsers are used 
  in the same thread, removed possible crash)
2.0: merged

2007-03-12..14
Main Window
- main window is activated after closing "Insert image" file dialog 
= "find" action: restart searching from start for "Search all rows" mode if:
== user has changed the value to find since previous searching, or
== user has recently changed direction to "Search all rows"
- searching is performed within lookup values as well
Simple Printouts
- fixed problem with records printed between page boundaries
- fixed problem with updating print preview's page navigator when number of pages differs 
   compared to previous preview
2.0: merged

Table View
- usability: within cells of type "Image" pressing Tab, Shift+Tab, Left
  or Right keys now closes the popup and moves the cursor
2.0: merged

2007-03-07
Simple Printouts
- fixed refreshing print preview after table data or query results changed
2.0: merged

2007-03-02
Simple Printouts
- added support for printing and previewing images
- improved previewing quality
- fixed landscape mode
2.0: merged

2007-02-27
Forms
- hide popup in combo box or image box as soon as it loses focus
- changes made to combo box selection is cancelled if the popup 
   loses focus without accepting
- hide popup in combo box or image box as soon as user moves 
   to other record (usually with a shortcut)
- fixed handling page down/page up keys within combo box popups
  (previously it moved to other record)
2.0: merged

2007-02-23
Forms
- for buttons, left/up and right/down keys act like tab/backtab
2.0: merged

2007-02-19
Forms
- fixed displaying margin for image boxes
- fixed assigning static images to image boxes without saving form's design;
  the images can now be saved also in data view mode
- fixed handling tab key for image boxes
- automatic tab order:
-- fixed ordering for widgets within containers (e.g. a group box)
-- widgets within tab widget pages are ordered by page number
-- widgets inside tab widget that are not visible are skipped when moving 
   focus using Tab/Shift+Tab key
- Ctrl+Tab shortcut (for switching between tabs) works on windows
  if multiline text editor is focused
2.0: merged

2007-02-12
Forms
- fields dragging & dropping works for containers (tab widgets, frames and group boxes)
2.0: merged

2007-02-09..14
Main Window
- Edit->Find action added, works within table, query and form views as a global, 
  context-dependent tool window.
2.0: merged

~~~~~~~~~~~~~~~~ 1.1.2 bugfix release (with Calligra 1.6.2)  ~~~~~~~~~~~~~~~~

2007-02-09
Table View
- added more actions to the context menu in data view

2007-02-08
Tools
- added "Delete column" tool for deleting table columns without removing data;
  translation enabled; with GUI wrapper
- fixes for "Add column" tool
2.0: merged

2007-02-07
KexiDB
= fixed possible crash when running a query without primary key included
   (encountered e.g. when a form contains static images)
2.0: merged
Tools
- added GUI version of "Add column" tool (with translation enabled)
- the tool is now installed
2.0: merged

2007-02-06
KexiDB
- queries are supported as row source for lookup fields
- sort query results by primary key fields if there is no explicit sorting specified
  (especially useful when there are complex joins)
2.0: merged

2007-02-05
Query Designer
- fixed crash if column being removed has sorting set up
2.0: merged

2007-01-26..2007-02-05
Table Designer
- added support for multiple visible columns in the combo box editor
   (the same for forms)
- on altering table, remove old lookup field schema objects;
   make sure you do not save empty type/name fields to XML
- fixed updating "lookup column" tab's contents
2.0: merged

2007-01-24..25
Table Designer
- fixed altering table schema when lookup column has been changed
2.0: merged
Forms
- align autofield's label to left if it is on the top
- do not show popup after clicking on combo box
- fixed popup position of combo boxes inside a container
- fixed saving property values of type "enum" for subwidgets
2.0: merged

2007-01-23
Table Designer
- fixed crash on saving design with lookup columns defined
2.0: merged
Forms
- fixed handling "align" property for image boxes when scaling is off
2.0: merged

2007-01-09
Table Designer
- some changes do not require table removing now: 
  e.g. field's caption, description, text width, defaultValue,
  visibleDecimalPlaces
- fixed updating default value when field type changes
2.0: merged
Forms
- floating point values:
-- values are now formatted in the same way as in table view, 
  so "decimal places" property of the field is honoured
-- locale-dependent decimal symbol can be entered instead of '.'
2.0: merged

2007-01-08
Build system
= fixed generating examples when Kexi binaries are not installed
  (it's the case for fresh compilation)
2.0: merged
General
- Fixed crash related to QtCurve widget style.
2.0: merged

2007-01-03
Kexi
- use transliteration table generated by a shell script 
  to generate identifiers out of unicode characters;
  plus some adjustments made by hand
BUG: 133170
2.0: merged

2007-01-02
Startup
- Command line option "--show-navigator" added - shows the Project Navigator
  side pane even if Kexi runs in User Mode.
2.0: merged
Kexi
= Example files are generated usign a standard automake rule and are installed
to the Kexi's data dir (so packagers can ship it).
2.0: merged

2006-12-21..28
Kexi 2.0
= formeditor lib ported to KDE4 (not tested)
Startup, Main Window
- "User Mode" implemented; command line option --final-mode replaced with --user-mode
  as described at http://kexi-project.org/wiki/wikiview/index.php@UserMode.html
  all actions related to design are hidden as well as property editor and navigator panes
2.0: merged
General
= removed usage of KEXI_SERVER_SUPPORT macro
2.0: merged

2006-12-18..20
Forms
- "Assign Action" dialog:
-- added 'create new' and 'close view' actions with a given context
-- "Current form" actions category added with actions like 
   "go to next record", "go to new record"
-- more design actions like 'undo' moved to the global category
2.0: merged
Main Window
- action tooltips made generic (not only for tables), 
   e.g. "Save changes made to the current row"
2.0: merged

2006-12-13..15
Startup
= do not recreate kexi__blobs table when connection is readonly;
- projects created with older Kexi versions can be now opened 
  in readonly mode too
2.0: merged
Project Migration
- fixed copying existing objects to the destination database
- MySQL and PostgreSQL
-- fixed importing unicode text and static images if present in the source database (BLOBs)
-- data types are better handled for import
2.0: merged
Forms
- action selection dialog:
-- the list of menu commands now contains tooltips instead of action texts to improve 
   readability and is displayed with full width
-- actions are now categorized, so actions that have no practical use are hidden
2.0: merged

General
= typos fixed in API docs
BUG:138542
2.0: merged

2006-12-07
Tools
- added 'add column' utility:
  This script adds a new empty column to a table in a .kexi (SQLite 3)
  database file without removing data from the table.
2.0: merged

2006-12-06..12
Forms
- action selection dialog:
-- moved "Macros" and "Scripts" to "category" list,
    which also supports opening tables/queries/forms, running macros/scripts
-- added "Action type" column so it is possible to assign printing 
    and opening in objects design view
-- added "Execute form's action" category
2.0: merged
Main Window
- Project Navigator:
== widget moved to widgets/ for reuse
-- double/single clicking on executable objects (macro, script) executes them
2.0: merged

2006-12-05
General
- missing i18n()
2.0: merged
Query Designer
- display "(All Columns)" near the "*"
- SQL editor on Unix: initially, clear undo/redo buffer
  (otherwise Ctrl+Z clears the contents)
2.0: merged
KexiDB
- fixed problem with constructing SQL statements: 
  for multi-table queries "ORDER BY column" prepends "table" only if "column" 
  is not a name of alias
2.0: merged

~~~~~~~~~~~~~~~~ 2007 (OOPL) ~~~~~~~~~~~~~~~~

2006-11-28..29
Examples
- added parametrized query 'Owners by age'
= update the parameter query: remove joins because there's still one related bug
2.0: merged

2006-11-27
Examples
- "Simple Database" example updated: added "Ownership" form and a macro 
- "Simple Database": added "write_simple_text_report" Python script
2.0: merged

2006-11-21
Table View
- fixed crash when combo box drop down button is clicked but bound column
  is not defined for lookup field
2.0: merged
Forms
- fixed possible crash when auto field is used for field with lookup 
  column defined
- sane icon for the Auto Field widget and Label, improved button icon
2.0: merged

2006-11-17
CSV Export
- export visible values for lookup columns instead of internal values
Simple Printouts
- print visible values for lookup columns instead of internal values
2.0: merged
KexiDB
- generate aliases for lookup table names to avoid errors because 
 of ambiguous table names when the same lookup table is used more than once;
 For example, use persons1 and persons1 aliases here:
 SELECT service.id, service.emploee, service.service_man, persons1.surname, 
 persons2.surname, service.OID FROM service 
 LEFT OUTER JOIN persons AS persons1 ON service.emploee=persons1.id 
 LEFT OUTER JOIN persons AS persons2 ON service.service_man=persons2.id;
2.0: merged

~~~~~~~~~~~~~~~~ 1.1.1 bugfix release (with Calligra 1.6.1)  ~~~~~~~~~~~~~~~~
Query Designer
- propery initialize newly appended rows
2.0: merged

2006-11-16
Table View
- fixed updating contents of the combobox's internal text editor after 
   pressing F2 or Enter key 
- fixed possible crash on application's close
- fixed copying/pasting values from the combo box (visible text is now copied/pasted)
2.0: merged

2006-11-15
Query Designer
- fixed setting up sorting in the design view
- fixed setting up string constants as criteria
2.0: merged
Table View
- fixed copying time and date/time values to clipboard
- fixed pasting time, date and date/time values from clipboard
2.0: merged

2006-11-14
Forms
- fixed displaying Date/Time values
- fixed crash when "Esc" key is pressed to "cancel row changes" 
  and a combobox widget is focused
- fixed handling Ctrl+Delete key for "Delete current row" action
- fixed crash when an autofield's subwidget is painted but the parent 
  is about to be deleted
2.0: merged
Table View
- fixed displaying visible values (usually a text) for lookup columns
  when there's a default value defined in the referenced table
- visible values of types other than text or numbers are properly 
  displayed (including images)
2.0: merged
Queries
- fixed retrieving parameters of type Text
2.0: merged

2006-11-07..13
Main Window
- switch contents of custom property tabs after switching the current tab/window
  (needed for Table Designer's tab)
- added a warning message box with "Errors encountered during loading plugins" 
  message, controled by dontShowWarningsRelatedToPluginsLoading configuration setting.
- groups and items for nonexisting plugins are not visible now
2.0: merged
Query Designer
- show more error messages on opening query in design view 
  (e.g. for unsupported column expressions)
- fixed saving relationships: removed too strict checking for datatypes when creating 
  relationships (signedness)
2.0: merged
KexiDB
- Parser: improved types evaluation for expressions
- kexi__objectdata.o_data field type changed from BLOB to LongText (backward compatible)
  to improve human-readability
2.0: merged
Forms
- fixed problem with setting "invalid" flag for fields with invalid data source
2.0: merged
Core
= fixed possible crash on application exit when data changes listener is removed
2.0: merged
General
- Simple_Database.kexi example updated: combo boxes are now used; example data looks better
2.0: merged

~~~~~~~~~~~~~~~~ 1.1.1-pre ~~~~~~~~~~~~~~~~

2006-10-30..2006-11-06
Table View
- better displaying tooltips for columns with lookup data
- sorting columns with lookup data works
= various improvements for combo boxes
2.0: merged
Forms
- database-aware combo box form widget works, improved data displaying, 
  mouse and keyboard handling
- fixed bug #136688 - displaying dates (e.g. with dd.mm.yyyy format)
= do not block Escape key if there are no data changes to cancel;
  do not block shortcuts like Shift+Left arrow
2.0: merged

2006-10-27
Forms
- display proper record when a new row was saved and user moved to previous record
= fixed possible crash inside the row buffer
2.0: merged
Table View
= fixed handling data in lookup fields and cursor moving
= fixed adjusting width of column containing lookup field
2.0: merged

2006-10-24..26
Query Designer
- New: Added support for parameter queries in design and SQL view. 
  User is asked for entering value of a parameter in a dialog window. 
  Paramers can be of any type except Object.
  (see also: MSA 2002 Bible, p. 767)
2.0: merged
Table Designer
- Byte datatype is always set to unsigned now
- "Double precision" datatype is now the default for the floating point 
  type group instead of Float (so we get better precision by default)
2.0: merged
Table View
- fixed validating Big Integer numbers
2.0: merged
Forms
- fixed validating Big Integer numbers
2.0: merged

2006-10-20
Forms
= fixed default size of combo box widgets
= removed crash when a combobox without a data source was clicked
2.0: merged
Main Window
- accessibility: property editor can be focused using an accelerator key;
  moreover, Alt+2 now focuses main area and Alt+3 focuses Property Editor
2.0: merged
Table Designer
- "combo" icon is displayed near the field name that have lookup column defined
2.0: merged

2006-10-16
Query Designer
- refresh design view after a sequence of switches: 
   text view -> data view -> design view
2.0: merged
KexiDB
= saving "lookup column" metadata supported
2.0: merged

2006-10-12
Forms
- fixed displaying contents "Data Source" property for multiple selections;
  unnecessary updates removed (GUI is updated only after adding 
  the last widget to the selection)
2.0: merged
Table Designer
- "Lookup column" property tab added to the property pane
2.0: merged

2006-10-11
KFormDesigner
- removed crash on close and problems with displaying properties
2.0: merged
Forms
- do not update the property editor for every form (only one is active anyway)
2.0: merged

2006-10-09..10
Table View
- fixed drawing selection highlighting for the horizontal header immediately after
  scrolling the table
2.0: merged
Query Designer
- column sorting is also supported for columns with cleared "visible" flag
- SQL view's section header now provides an accelerator
2.0: merged

~~~~~~~~~~~~~~~~ 1.1 stable (with Calligra 1.6)  ~~~~~~~~~~~~~~~~

2006-10-06
KexiDB
= fixed constructing ORDER BY part of SQL statements (ambiguous fields)
= when creating "columns by name" cache, also remeber "table.alias" identifiers
= QuerySchema: retrieving infromation about columns much improved
  (needed by the parser and designer)
2.0: merged
Query Designer
= fixes for handling ordering information in design mode when there're asterisks
  in the query
2.0: merged
Forms
- fixed bug #134976: Yes/No field default value does not work properly
  (for required field: if you add a checkbox that points to a Yes/No 
  field that has a default value the default value is not accepted)
2.0: merged
Table View
- fixed problem with editing floating-point values when there's default 
   value set to 0.0
2.0: merged

2006-10-04, 05
Table View
= fixed displaying values for combobox fields
= it is now possible to have empty combobox item: selecting it clears 
  the value of combobox
2.0: merged
Query Designer
- invalid input (e.g. criteria or sorting) now displays a message box with 
  "Correct" and "Discard Changes" buttons
- added support for setting order of columns in Design and SQL views (ORDER BY)
- fields were sometimes added twice
2.0: merged
KexiDB
= fixed handling information about columns ordering
2.0: ported
KoProperty
= Property: added a method for clearing "modified" flag
2.0: ported

2006-10-03
Forms
- solution for bug #134773: hide "Editor type" property for auto fields
  Kexi 2.0 will have it unhidden.
2.0: ported
- fixed updating property values of enum type
2.0: merged
Core
- fixed bug #134977: enabling/disabling of actions in query editor
2.0: merged
Main Window
- fixed bug #134975: "Data actions do not appear on first open"
  workaround used before Kexi 2.0: the Data toolbar is always visible
2.0: merged

~ ~ ~ ~ End of aKademy 2006, Dublin ~ ~ ~ ~

2006-09-30
KexiDB
= support for ORDER BY while generating SQL statements
2.0: ported

2006-09-29
Form
- fixed bug #134504 "Several glitches in Kexi GUI"
2.0: ported
Docs
- fixed bug #134503 "Typos in several Kexi docs"

2006-09-28
KexiDB
= use COUNT(*), not COUNT() -- fixes MySQL support
= missing ORDER BY usage while generating SQL statements
2.0: ported
2.0: 'parser' target added

2006-09-25
Forms
- The first widget of a given kind should be named "widget" by default,
  the second - "widget2" and so on. (thanks to Natalie)
2.0: ported

2006-09-21..27
KexiDB
- added support for ORDER BY clause
2.0: ported

~ ~ ~ ~ aKademy 2006, Dublin ~ ~ ~ ~

2006-09-19
Forms
- double clicking items of "Available fields" list inserts a new auto field
- fixed form's selecting data source via the data source pane
2.0: merged
KexiDB
= fixed retrieving autonumber data
2.0: merged

~~~~~~~~~~~~ 1.1 RC1 release (with Calligra 1.6 RC1)  ~~~~~~~~~~~~

2006-09-14
KoProperty
- property is not changed when new and old value are both null
- spin boxes for integer and double values: deleting the contents
  now sets null value
= consider unsigner long long and long long values as compatible
2.0: merged
KexiDB
- do not try to insert default values into a column with unique 
  flag declared (or even PK) 
2.0: merged
Table View
- Fixed repainting after "Edit->Clear Table Contents" action
= display question mark for null values in boolean column even 
   if it has to be "notNull"
2.0: merged
Table Designer
- set "false" as default value for columns with Yes/No types
- when column type changes, default value is updated to match the new type
  (e.g. casted from integer to text; incompatible values are removed)
2.0: merged

2006-09-11..13
KoProperty
= fixed group widget's height
2.0: merged
Table View
= fixed drawing drop-down arrow for styles like ThinKeramik
2.0: merged
- more shortcuts added, shortcuts are now usable and a bit MSA-like
-- CTRL+End now moves to the last field in the last record 
    (previously: the last record)
-- CTRL+Home now moves to the first field in the first record 
    (previously: the first record)
-- CTRL+PgDown now moves to the next record
-- CTRL+PgUp now moves to the previous record
-- CTRL+Plus or CTRL+= now moves to the new record
= some common code moved to KexiDataAwareObjectInterface from KexiTableView,
  thus allowing to reuse it in forms
2.0: merged
Forms
- fixed tab/backtab key handling
- fixed displaying custom label text when "Auto Label" property is off
- handling of global shortcuts like CTRL+PgDown is now shared with 
   Table View (accesibility: it is now possible to move to next/previous 
   record using keyboard)
- moving to new row sets the focus in the first data-aware widget 
   (in tab order)
- fixed leaving from "editing" state on "accept row changes" or moving 
   to other record
2.0: merged

2006-09-08
Table Designer
- fixed inserting fields of type "Object"
= "subType" has no longer a special meaning for BLOB types, 
  "objectType" is used for this purpose
2.0: merged
KexiDB
= fixed saving custom property values
2.0: merged
	
2006-09-07
Forms
- custom widget factories can be now loaded properly
= X-KFormDesigner-XMLGUIFileName variable added 
  to the KFormDesigner/WidgetFactory service type, so it's now
  possible to specify XMLGUI file for defining toolbar actions
  for custom widget factories
2.0: merged
KexiDB
= Added SimpleCommandLineApp class - an utility for writing small 
  command line programs and tests that support database connections
  out of the box and provide required arguments.
= debug areas fixed
2.0: merged

2006-09-04
Kexi docs
- things like 'e.g.' moved to &eg;
- use <procedure> where appropriate
- a chapter about forms translated to english
i18n
= Stephan Binner's fixes #579553 and #579330 ported to 2.0
Forms
- hide QRadioButton widget - current implementation is no-op

~~~~~~~~~~~~ 1.1 beta 1 release (with Calligra 1.6 beta 1)  ~~~~~~~~~~~~

2006-09-01
Forms
= added KEXI_DB_COMBOBOX_WIDGET define required 
  to add support for combobox form widget (disabled by default for beta 1)
2.0: merged
KexiDB
= dependency on newer (>=4.1) client library removed:
  MySQL driver now uses 'SELECT @@version' SQL statement instead of dedicated 
  API function
= added possibility for switching off "LIMIT 1" optmization 
  for methods like Connection::querySingleString() 
  (e.g. needed for 'SELECT @@version')
2.0: merged

2006-08-29
General
- Added unicode->latin1 mappings for Czech characters
2.0: merged

2006-08-25
Table View
= tooltips are displayed also for "insert" row, if needed
Forms
= fixed displaying widget names for unbound auto fields 
  and image boxes while in design mode
= fixed setting data source for auto field
- initial version of the combo box widget (will be disabled for beta 1)
2.0: merged

2006-08-24
Table View
= displaying cell's selection background fixed for nonstandard font
2.0: merged

2006-08-22..23
Forms
- display default values in the new row; 
  default text is displayed with a special style (italic blue) as in table view;
  cancelling changes in a widget reverts its contents to default value 
  (if available); the special style is removed as soon as the editing starts
- "redo" action removed from the data-aware widgets' context menu 
  (to avoid problems with data handling)
2.0: merged
Table Designer
= fixed setting subtype by user
2.0: merged

2006-08-21
CSV Import Dialog
= fixed delimiter change using the combo box (introduced by the prev commit)
= unnecessary rows are removed after delimiter changes
2.0: merged
Table View
- do not display default values for autonumbered fields
- do not fill default values for already filled fields
= boolean editor in tristate mode: fixed switching between true/false/NULL values
- display default boolean values in blue
- display tooltip with row number when the vertical scrollbar is dragged
= fixed displaying tooltips for default values in the "insert" row
2.0: merged

2006-08-17
Table View
- tooltips are displayed for cells with too large contents
2.0: merged
CSV Import Dialog
- delimiter detection is now even more clever, allowing to import more complex data: 
  characters outside quotes have higher priority; additional algorithm counting 
  number of candidates for delimiters is used.
2.0: merged

2006-08-14
Table View
- default values are displayed and work properly with editing
- current row and column are marked as selection on the vertical 
   and horizontal header sections
2.0: merged
KexiDB
= improved table name altering
= row edit buffer now handles default values
2.0: merged

2006-08-11
KoProperty
= "3rdState" option for boolean types now uses a combo box with 3 items
= removed unmaintained QT_ONLY code
2.0: merged
= 2.0: some dependency on Qt3 removed

CSV Export
= fixed crash on exporting to clipboard
- time and object values: fixed exporting or copying to clipboard
2.0: merged
Main Window
= "copy special" action is available after switching back to table data view
2.0: merged

2006-08-09
KoProperty
= "3rdState" option added for BoolEdit - i18n'd QString, if not empty, 
  the the editor's button accept third "null" state with name equal to this string. 
  When this value is selected, Widget::value() returns null QVariant. 
  This option is used for example in the "defaultValue" property for a field 
  of type boolean (in Kexi Table Designer). Third, "null" value of the property 
  means there is no "defaultValue" specified.
Table Designer
- Added "defaultValue" property to the designer
= Alter Table Test Suite: added "i" variable support (including operator++), 
  closeWindow command, quit command, and optional "clipboard" flag 
  for showSchema, showActions, showTableData. Improved showTableData command.
  Added "defaultvalues" test.
2.0: merged
KexiDB
= added BLOB-encoding/decoding-related functions
= improved storing and retrieving "defaultValue" property of table field
2.0: merged

2006-08-08
General
= operator tristate::bool() removed (unsafe, comparison with false was broken)
2.0: merged
Table Designer, KexiDB
- fields of type yes/no have default value set to false (by default)
= schema editing improved; on table altering, default values are inserted 
  and not-empty values are used is there's no default
2.0: merged

2006-08-07
KexiDB
= improved version-related parts of the API
= server version information is retrieved
2.0: merged

2006-08-03
KexiDB
= PostgreSQL: use TIMESTAMP, not DATETIME for date/time data type
2.0: merged

2006-08-02
CSV Export
= GUI-less exporting is supported in the API (usable for tests)
2.0: merged
General
- "skip-startup-dialog" command line option added
2.0: merged
KexiDB
= Field::typeForString() and Field::typeGroupForString() are now case-insensitive.
= added missing support for "indexed" and "type" properties for functions 
  like KexiDB::setFieldProperty()
2.0: merged
KoProperty
= Property::oldValue() should not return value() if no value is available.
2.0: merged
Table Designer
= fixed setting types and subtypes
= fixed a crash when there are more than 50 "alter table" actions 
2.0: merged

2006-08-01
Table Designer
= A test suite added for table altering
2.0: merged

~~~~~~~~~~~~ 1.1 alpha 1 release (with Calligra 1.6 alpha 1)  ~~~~~~~~~~~~

2006-07-31
KexiDB
= custom properties can be set for Field objects
2.0: merged
Table View
- deleting cell contents containing Yes/No values
- do not display drop-down buttons for read-only data
2.0: merged
Query Designer
- possible crash fixed when new design is saved in the data view: 
  only rebuild schema if it has not been rebuilt previously
1.0/2.0: ported

2006-07-28
Table Designer
- fields of Yes/No type have "not null" set by default
- fixed clearing "not null" property
2.0: merged
Table View
- boolean "not null" field displays "false" instead of null in the new row
= fixed column width adjustment
= unused code removed
2.0: merged

2006-07-26..27
Property Editor
- fixed image scaling in the image editor
2.0: merged
Forms
- image box: (in data view) do not allow to show context menu using keyboard 
  for static image (i.e. if no data source is assigned); 
  such a widget also ignores focus events (effective focus policy is NoFocus then);
  focus frame is painted when needed
2.0: merged

2006-07-24
Main Window
- fixed setting focus after switching between views
2.0: merged

2006-07-18..2006-07-25
KexiDB
- added support for db-aware lookup fields
2.0: merged
Table View
- added support for db-aware combobox fields
- displaying values in combo box popup fixed
2.0: merged
CSV Import Dialog
- leading 0xFEFF "BOM" unicode character is skipped
   (http://www.unicode.org/charts/PDF/UFFF0.pdf)
- added "Strip leading and trailing blanks off of text values" option
- fixed changing options
2.0: merged

2006-07-17
Forms
- fixed maintaining focus when menu has been clicked
- fixed tab/backtab for button widget (non-db-aware widgets in general)
2.0: merged

2006-07-10..14
Forms
- context menus now have consistent title: "<objectname> : <objecttype>"
- cut/copy/paste shared actions work for form widgets in data view
2.0: merged
Table View
- context menu from image box reused in the Table View's cell editor
- cut/copy/paste/clear actions work for the image cells, including shortcuts
- cut/copy/paste/clear actions work for text/number/boolean cells
- fractional character ("," or ".") can be entered as the first character for
  floating-point data types, what means 0.xxxxx
- fixed updating row number info in the record navigator and updating the current 
  cell after column sorting
- BLOB data is sorted by size
2.0: merged
KexiDB
- SQLite driver: read only connections work again
2.0: merged

2006-07-07
Forms
- AutoField, Image Box: fixed setting background color; 
  drop-down button keeps its default color
2.0: merged
Table View
- added drop down button as image cell editor
2.0: merged

~~~~~~~~~~~~~~~~ 1.0.2 bugfix release (with Calligra 1.5.2)  ~~~~~~~~~~~~~~~~
~ Now, as 1.0.x is closed for changes, all the changes are merged into 2.0 only ~~

2006-07-06
Forms
- Data Source tab of the Property Pane: fixed entering field or table/query 
  name by hand: pressing return accepts selection; focus-out accepts selection;
  entering in-progress clears previous selection
2.0: merged
- displaying images optimized: no background is cached or painted
2.0: merged
- text box widget now displays text aligned to the left after loosing the focus
2.0: merged
- possible crash removed when changing property of enum type
1.0/2.0: ported
Table View
- Image cell editor: appearance improved, tooltip with a thumbnail added, 
  dropdown button with context menu added (the same as in Image Box form widget)
2.0: merged
KoProperty
- fixed handling groups
(1.0.2)
Forms
- improvements related to data editing within forms backported from 1.1 
(1.0.2)

2006-07-05
Forms
- AutoField: fixed handling foreground and background colors; 
  added "foregroundLabelColor" and "backgroundLabelColor" properties;
  subproperties coming from super classes are now visible;
  better handling internal layout depending on label's position
2.0: merged
- "tristate" property for check box widget redefined:
  supports DefaultTristate, TristateYes, TristateNo values. 
  Thus, for bound widgets null values can be set
  and for unbound widgets only Yes or No values can be set (by default).
2.0: merged
- fixed creating modified property objects of enum type
2.0: merged
KoProperty
- fixed possible crash when clicking "undo" button causing 
  the full property set's reload (it was the case for "Editor Type" 
  property of the AutoField widget)
1.0/2.0: ported

2006-07-04
KexiDB
- fixed copying index and table objects
1.0/2.0: ported

2006-07-03
Forms
- AutoField: focus label's associated widget (editor) 
  when user clicked the label
2.0: merged
- AutoField: update data source and values for subproperties on form loading 
  also when we're switching from design to data view
1.0/2.0: ported
- AutoField: removed crash when table field has been renamed in the data source
1.0/2.0: ported

2006-06-28
KexiDB
- SQLite 3.2: fixed opening databases with non-latin1 pathnames
2.0: merged
CSV Import Dialog
- parsing data improved: values without leading zeros, like 1/2/2006 work;
 Since apps like MS Access in the USA creates csv files with date 
 format month/day/year, (and without leading zeros), text with "/" 
 inside is assumed to be in this format.
1.0/2.0: ported

2006-06-27
Forms
- Image Box widget: now supports saving data in the database!
  Fixed filling duplicated data widgets; fixed editing;
  "Drop-Down Button Visible" property added.
2.0: merged

2006-06-26
Forms
- AutoField widget: changing value of "Widget Type" property reloads the entire 
  property set, so new properties can appear and unused properties can be hidden 
  in the Property Editor.
2.0: merged
KoProperty
- delayed deleting of editors on setting a new property set
1.0/2.0: ported
- added additional, internal "property change" signal so it will be always emitted 
  _before_ the public one; thus e.g. it is legal to reload the property set within 
  the "property change" handler
2.0: merged

2006-06-19..23
Forms
- ImageBox widget: drop-down button moved to bottom-right, usability improved 
  (e.g. keyboard handling for popup), db-awareness added, 
  frame-related properties added, tab/backtab handling fixed,
  fixed updating position of image when the frame changes
2.0: merged
- AutoField widget: added support for Image (Object) type,
  fixed handling color properties, internal editor's properties are 
  automatically inherited by the AutoField widget as so-called subproperties
2.0: merged
- removed flickering of the Property Pane after dropping a new field 
  onto the form
2.0: merged

2006-06-06
CSV Import Dialog
- fixed recursion when importing clipboard data 
1.0/2.0: ported
- allow to change the delimiter when importing clipboard data 
1.0/2.0: ported
Migration
- improved usability for selecting type of destination database
  (no mention of SQLite for now)
2.0: merged
KexiDB
- renaming table fields works, table schema is recreated when needed,
  and just altered in-place when it's enough to do so
2.0: merged
Table View
- cell editor: the contents are marked as changed only when the original 
  value differs from the current
1.0/2.0: ported
Table Designer
- changing field's description is supported by undo/redo commands 
  and by alter table actions.
2.0: merged
- Internal Debugger: added "Real alter table" button, 
  for convenience, "save" action now uses the old alter table code
2.0: merged

2006-06-05
KoProperty
- clear all properties and group names when using operator =
1.0/2.0: ported
KexiDB
- SQLite library upgraded from 3.0.7 to 3.2.8 (backward compatible),
  to get "table renaming" function.
2.0: merged
- optimization: "rename table" action now uses "ALTER TABLE RENAME TO" 
  SQL statement, O(1).
2.0: merged
- X-Kexi-DoNotAllowProjectImportingTo KexiDB driver property added, false by defaut
2.0: merged

2006-06-02
KexiDB
- fixed setting database filename when relative path has been provided
1.0/2.0: ported
- minor utilities added usable for altering
2.0: merged
- table altering improved for SQLite: changing data types will be possible soon
2.0: merged

2006-05-31
KoProperty
- methods in Set::Iterator are now const
2.0: merged
- added propertyValues(const Set& set) utility function
2.0: merged

2006-05-30
Table View
- spreadsheet mode: fixed inserting empty rows and deleting rows
1.0/2.0: ported
Table Designer
- improved undo/redo actions: deleting and redoing actions fixed
2.0: merged
- added title to the context menu
2.0: merged
KexiDB
- improved alter table machinery; now fields are identified by UIDs 
  to avoid problems with multiple fields sharing the same name
2.0: merged

2006-05-29
KoProperty
- animate clicking on the group title's area
2.0: merged
- added a container widget that can be used to split information into hideable sections 
2.0: merged
Form Designer
- data source pane splitted vertically into two sections for clarity
2.0: merged
Table Designer
- clear PK when selecting non-integer type
2.0: merged

2006-05-27
KoProperty
- Possible fix for crash. Not sure this is the definitive fix for bug 124917.
  Thanks to Jaime Torres
2.0: merged
- group items now have rather pretty appearance styled with KDE style
2.0: merged
- fixed groups order, API changed: now it's possible to get order of groups
2.0: merged
- sorting disabled when groups are present
2.0: merged
- icons can be defined and displayed within the group items
2.0: merged

2006-05-26
KexiDB
- improved handling extended table schema information
- improved alter table
2.0: merged
Table Designer
- improved undo/redo actions; prepared for reuse
  in the table-altering machinery of KexiDB
2.0: merged

2006-05-25
Forms
- set the data source readonly if it comes from query
1.0/2.0: ported
- "Read only" property is now supported by all data-aware widgets, 
  and form itself
2.0: merged
- background color of the line edit in read-only mode is blended with white
  to get lighter gray
2.0: merged
- accessibility+usability: read only line edit widget now shows the caret
2.0: merged
- display field caption as title for editor's context menu
2.0: merged

~~~~~~~~~~~~~~~~ 2006.1.1 (OOPL, bugfix) ~~~~~~~~~~~~~~~~

2006-05-18
Table Designer
- improved support Undo/Redo actions
2.0: merged
Forms
- fixed saving data changes for db-aware checkboxes
  (fixed by setting StrongFocus policy as default)
1.0/2.0: ported

~~~~~~~~~~~~~~~~ 1.0.1 bugfix release (with Calligra 1.5.1)  ~~~~~~~~~~~~~~~~

2006-05-17
Main Window
- Project Navigator: remove Enter and CTRL+Enter accels, 
  as these blocks other actions
- Project Navigator: fix setting focus
1.0/2.0: ported

2006-05-16
Migration
- display error for not found import/export driver
1.0/2.0: ported
Startup
- (temporary) do not propose importing broken SQLite databases files
  as there is no import driver implemented yet; display error message instead
1.0/2.0: ported
Table Designer
- fixed saving boolean types for table design
1.0/2.0: ported

2006-05-15
General
- -execute command line option added; useful for executing macros, scripts, etc.
2.0: merged
Table View
- small API and source code improvements (s/buf/set)
2.0: merged
KoProperty
- fixed making a deep copy of Set object containing custom properties
- deep copy of Set object now maintains the original order
- fixed possible crash on deleting Set object created by copy constructor
1.0/2.0: ported

2006-05-09
KoProperty
- API changed: a few methods are now const; optimization
2.0: merged

2006-05-08
KexiDB
- fixed converting floating-point values to SQL-compatible strings when the number 
  was provided as string QVariant
1.0/2.0: ported
Forms
- fixed entering floating-point values for locales where ',', not '.' is the fractional point
1.0/2.0: ported
Query Designer
- show error message when switching to other view failed (i18n-safe)
- just show empty editor when opening a design in text view and there is no sql 
  statement found in the backend
1.0/2.0: ported
MDB Import
- fixed importing decimal (numeric) values 
  (by fixing setting fractional point's position and adding negative sign when needed)
1.0: ported

2006-05-05
Table Designer
- Undo/Redo actions added and integrated with table altering 
Internal
- "AlterTable" tab added to the "Kexi Internal Debugger" window

~~~~~~~~~~~~~~~~ 2006.1 (OOPL) ~~~~~~~~~~~~~~~~

2006-05-04
Main Window
- fixed crash when double (or single, depending on the settings) clicking 
  on the empty area of the Project Browser
1.0/2.0: ported
Query Designer
- fix saving design changes while in Data View
1.0/2.0: ported

2006-05-02
CSV Import Dialog
- fixed importing floating-point values where there are integer 
  and floating-point values mixed
1.0/2.0: ported
MDB Import
- fixed importing floating-point or decimal values (there is still a bug in mdbtools 
  with fetching decimal values)
KexiDB
- fixed building SQL INSERT statements for "prepared statement"
1.0/2.0: ported

2006-05-01
KexiDB
- ported to Qt4; tests/newapi works

2006-04-28
KexiDB
- SQLite3 driver: report error when closing database failed
1.0/2.0: ported
Core
- KexiProject: report error when closing database failed
Query Data View
- properly destroy cursor on view removing; this also fixes the problem
  with compacting Kexi database when it cannot be reopened read/write when 
  there was opened view with query data because of db cursor blocking the database
- properly close as soon as the data is fetched (temporary solution)
General
- "Kexi Internal Debugger" introduced to help in Kexi development; 
  "showKexiDBDebuger" in [General] should be set to true and KEXI_DEBUG_GUI defined
  to use this.
Form Designer
- fixed possible crash on closing form
1.0/2.0: ported

2006-04-27
KexiDB
- "visibleDecimalPlaces" property added for table fields of type floating point 
  (will be added for decimal and currency too); "Auto" state is supported 
  as default so only meaningful fractional digits are be displayed
Table Designer
- "visibleDecimalPlaces" property supported for floating point types
Table View
- "visibleDecimalPlaces" property supported when displaying and editing 
  floating point values
MDB Import
- on importing table rows: report failure when inserting row failed

2006-04-25
CSV Import
- simplify whitespace of text in cells (for preview only)
- fixed delimiter detecting
- priority in delimiter detection changed: now ";" has priority over ","
1.0/2.0: ported
Form Designer
- hide minimumSize and maximumSize widget properties
1.0/2.0: ported

2006-04-13
Kexi 2.0
- merged changes since revision 523723
KexiDB
- fixed loading length of text fields within table schema
0.9/1.0/2.0: ported

2006-04-12
CSV Import
- fixed problem with importing data with more than 100 columns (for default settings)
1.0/2.0: ported
- only the first 10KiB of data is loaded for the preview by default; can be adjusted 
  by setting ImportExport/MaximumBytesForPreviewInImportDialog option in kexirc
1.0/2.0: ported
- display rows number on the top of the window
2.0: merged

2006-04-11
Forms Designer
- fixed prossible crash while clearing "data source" field name; 
  now setting the autofield to unbound state works

2006-04-10
KexiDB
- QuerySchema(TableSchema* tableSchema) ctor:
  To avoid problems (e.g. with fields added outside of Kexi using ALTER TABLE) 
  we do not use "all-tables query asterisk" (see QueryAsterisk) item 
  but instead we add all the fields explicity. 
0.9/1.0/2.0: ported
- PostgreSQL driver: fixed crash when a new field has been added to existing 
  table outside of Kexi
0.9/1.0/2.0: ported
Table Designer
- More intrusive warning when altering table design
1.0: ported (except the message)
2.0: merged
Forms Designer
- fixed possible crash when switching to data view mode unbound autofield widgets
- while in data mode, do not display "(unbound)" text for unbound autofield widgets

2006-04-08
KexiDB
- use SQL-compliant TRUE and FALSE constants for PostgreSQL 
  (1 and 0 are unsupported)
0.9/1.0/2.0: ported

2006-04-07
Table View & Form View
- "invalid data warning" tool tip improved and reused in Kexi forms
- many fixes related to handling date, time and date/time values

2006-04-05
Form Designer
- KexiDBDoubleSpinBox and KexiDBIntSpinBox replaced line edit with validator because
  of problems with handling null data and signalling changes. 
  (there's no backward compatibility problems as these two widgets were used internally 
  in the AutoField data widget)
- fixed saving data changes made within auto field widgets
- fixed support for tab/backtab key within auto field widgets
- fixed problem when sometimes form was not filled with data after change of the design
1.0/2.0: ported

2006-04-04
CSV Import
- possible crash fixed after switching character encoding
1.0/2.0: ported
Main Window
- "Compact Database": now closing the current project is required; 
  if there's no project is opened, user is asked for picking one
Property Editor
- possible crash fixed when bool editor's state is quickly switched
1.0/2.0: ported

2006-03-29
Main Window
- "Compact Database" admin action added
KexiDB
- API version increased to 1.8
- "Compact Database" implemented for SQLite3 databases

2006-03-28
Startup
- --readonly command line option added
TableView
- boolean editor: only accept clicking on the [x] rect
1.0/2.0: ported

TODO: merge trunk with revision 523723

~~~~~~~~~~~~~~~~ 1.0 stable (with Calligra 1.5)  ~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ 1.0 rc1 (with Calligra 1.5 rc1) ~~~~~~~~~~~~~~~~

2006-03-20
KexiDB
- use local sockets by default for local server connections, if possible

2006-03-16
KexiDB
- added simple encryption for stored passwords
- allow to save empty password in .kexis and .kexic files
Startup
- ask for password (without storing it) for connection data without stored password

~~~~~~~~~~~~~~~~ 1.0 beta 2 (with Calligra 1.5) ~~~~~~~~~~~~~~~~

2006-02-28, 03-03
PostgreSQL driver
- fix for displaying unicode error messages
- fixed escaping binary data (octal values are used for special characters)
- fixed loading and saving BLOB data (images within forms work now)

~~~~~~~~~~~~~~~~ 2006 (OOPL) ~~~~~~~~~~~~~~~~

2006-02-22
CSV Import Dialog
- fixed updating "primary key" checkbox

2006-02-21
Table View
- row highlighting fixed for combo box popup, now it's used for any table view

2006-02-20
Project Import Wizard
- do not ask about overwriting file if server-based destination has been selected

2006-02-17
Query Designer
- fixed crash on saving new query design
Main Window
- disabled complex and redundant action 'View -> Tool Docks' menu.
  This comes from KMDI, not Kexi itself and will be completely removed 
  in KDE4 version. IIRC, we could not hide it now as this may cause crashes.

Form Designer
- text label widgets: "word wrap" is turned on by default
- fixed update "word wrap" property for label widgets
- fixed random cursor setting for the form surface
- fixed problems with inserting widgets in a random position 
  and random rectangles painting problems 
  (all this due to MouseButtonRelease event coming BEFORE MouseButtonPress event)

2006-02-16
Query Designer
- Row editing within the "Columns" area is accepted before saving.
  If the editing cannot be accepted, saving is aborted. 
Table Designer
- set property editor to read-only mode for read-only database connections
Data Table
- disable combobox editor's dropdown button for read-only database connections
Property Editor
- fix for read-only mode: support it also globally at property set level
- disable editing for read-only widgets
- fix for displaying double values for current locale

2006-02-15
General
- when query design has been changed and saved, subsequent openings of a form using 
  it will reload its definition. The same for 'page setup' dialogs, etc.
- fixed crash when 'page setup' dialog is opened, closed, and opened again for 
  the same data object

2006-02-10, 14
Main Window
- closing dialog is now marked as 'pending job', the same as for opening
- When there are pending jobs, 'quit' and 'close project' actions are
  delayed and executed after last pending job finishes. This removed possible 
  crashes when user closed application's main window (or closed project) 
  when there are pending jobs.

2006-02-03,07
Forms
- fixed painting "geometry" rectangle when inserting new widget
- update tab stops information before displaying "Tab Stops" dialog
- fixed invalid resizing for widget's inline editor
- 'edit->tab order' action is available also when form design is not focused

2006-02-01
KexiDB
- MySQL: added temporary (unoptimized) implementation of Prepared Statement
- MySQL, SQLite: fixed inserting BLOB data (without Prepared Statements)
- MySQL: fixed fetching BLOB data (without Prepared Statements)
- MySQL, PostgreSQL: fixed entering strings containing characters like ' \ "
- most debug lines commented out
CSV Import Dialog
- fixed importing for MySQL backend
Form Designer
- fixed saving images (binary data) to MySQL backend

2006-01-31
CSV Export Wizard
- When data is copied to clipboard, default delimiter is tabulator
  and options are hidden.

2006-01-30
Form Designer
- fixed saving new forms for MySQL databases
CSV Import Dialog
- fixed crash when importing CSV files smaller than 200 bytes

2006-01-25,26
KexiDB
- SQLite3 driver & kexisql3: fixes for read-only opening
Main Window
- fixed usability: read-only flag of the db connection is now visible
  in the statusbar
- added question about opening db file as read-only when it is already opened
- disable actions that require write access to the db if it's opened as readonly
Startup
- fixed support for "-print-preview" command line option
Simple Printing
- enlarge default zoom
Property Editor
- fixed editor refreshing after contents loading
Table View
- 'inserting enabled' flag is always false for read-only objects

2006-01-24
KexiDB
- Unicode support fixed for MySQL

2006-01-23
Table View
- fixed acceping am/pm for entering time values
- various fixes for entering date, time and date/time values
- time can be entered without seconds
- small passive warning box is displayed when entered value is invalid
  (currently for date, time and date/time types)

~~~~~~~~~~~~~~~~ 1.0 beta 1 (with Calligra 1.5) ~~~~~~~~~~~~~~~~

Main Window
- 'single click opens' is mode is off by default, can be turned on
Table Designer
- Object type hidden for beta1
Table View
- date, time and date/time values are displayed using KDE settings

2006-01-20
General
- examples/ directory in the source code tree now contains 
  example database(s)
Form Designer
- Data source pane: disable widget's data source combo box 
  when there is no form's data source defined
- temporary disable AutoField
- temporary disable cursor property
Query Designer
- fixed displaying criteria if WHERE section contains '('
- tables positions are preserved if possible when 
  relations view updating is needed

2006-01-18, 19
Form Designer
- widget library naming made more verbose to avoid potential 
  conflicts between packages
- versioning added for widget library plugins; this can also 
  avoid conflicts between plugins as we've just renamed them
Query Designer
- fixed displaying criteria for table view rows when 'visible' 
  column is set to false
- all-tables-asterisk is also hidden when last table is hidden
- temporary data member isolated; fixed possible crash when 
  switching back from SQL View to Design View

2006-01-17
KexiDB
- even more verbose error messages for failed SQL statement execution
CSV Import Dialog
- tabulator is default field delimiter for clipboard data
- delimiter detection improved
General
- "Dangerous" flag set for potentially destructive dialogs
- a few redundant i18n strings removed
Table View
- data for large table view is destroyed without blocking GUI

2006-01-16
Project Import Wizard
- hide Kexi file extensions in source connection file dialog's filter
Main Window
- fixed saving Project Navigator Side Panel's visibility
- do not allow to open the same dialog twice - it was possible 
  for slowly loading dialogs with large data (e.g. a table view with 10^4 rows);
  pending 'open' actions are now known
Simple Printing
- do not paint invalid values of type time, date or date/time
Table Designer
- fixed selecting subtypes
KexiDB
- SQLite driver: missing {} in PreparedStatement
- testing connection executes "USE DATABASE" if needed (e.g. for PostgreSQL)

2006-01-12
Table View
- Usability: Date, Date/Time and Time cell editors reimplemented

2006-01-11
Migration
- fixed opening project after import if user wanted this

2006-01-09
Form Designer
- infinite loop removed when updating multiple selection
0.9: backported
0.8: backported
- "Assign Action" dialog cleaned
KexiDB
- generate cleaner query statements:
  if there's single table in query schema, skip "table." prefix in resulting 
  SQL string, e.g. build "SELECT a, b FROM t" instead of "SELECT t.a, t.b from t".
Query Designer
- "Totals" column hidden as it is not implemented

2006-01-05..6, 10
CSV Import Dialog
- optimalization for large data: only about 100 rows are loaded for preview
- progress dialog added on dialog creation (opening can be cancelled)
- layout fixes
- missing column with primary key is added if user wants it
- optimized importing large (many thousands of rows) tables: 
  GUI is not used to store entire table before importing;
  only current record is kept in memory buffer
- progress dialog added on importing (importing can be cancelled)

2006-01-02..04
Startup
- "--skip-dialog" command line option added. 
  Skips displaying connection dialog\n"
  and connects directly. Available when opening .kexic 
  or .kexis shortcut files.
- opening server-based projects works in File->Open when 
  there's already project opened.
- "--connection <shortcut_filename>" command line option added. 
  Specifies a database connection shortcut .kexic file containing 
  connection data. Can be used with --createdb or --create-opendb
  for convenience instead of using options like --user, --host 
  or --port. Note: Options like --user, --host have precedence 
  over settings defined in the shortcut file.
- creating server-based projects works in File->New when 
  there's already project opened.
Migration
- Project Migration Wizard is proposed if a server-based database
  is incompatible with Kexi and cannot be opened
- if a destination for imported project is a server, it is also 
  opened after import, if user wanted this

2005-12-23, 29
General
- (data forms, table view): fixed entering row number in the row navigator
- win32: fixed saving recently displayed directories in file dialogs
KexiDB
- SQLite: opened files are now locked for read/write by default;
  related error messages improved
Simple Printouts
- pages to print can be selected
- number of copies can be entered
- pages collation switch on or off (i.e. 1-2..n; 1-2..n.... for collation
   and 1-1-...1; 2-2..2; .. for "no collation")
- page count is properly computed and printed on the footer as "Page x of y"
- "Page Setup" action added; 
   now it's window is only presented when user really wants this
- text of the page title properly updated

2005-12-12..22
Simple Printouts
- added Simple Printouts window with print preview and settings
Table View
- failed accepting of row editing now cancels window closing
- fixes for updating row data (this was sometimes visible in Table Designer)
Table Designer
- avoid asking twice for saving changes to the design on window closing
- find unique name for autogenerated primary key fields
Kexi Core 
- possibility of adding non-db-aware windows/tabs in Kexi
General
- added --print and --print-preview command line options
- (temporary) mini-kolibs added to get print settings stuff and remain 
  independent on kolibs

2005-12-09
Forms
- memory for data is now properly freed before closing a form
0.9: backported
0.8: backported
CSV Export
- CRLF characters are used as in RFC 4180
- fixed gcc compiler-specific crash
- quote characters are escaped inside strings
- date/time values are exported without "T" inside (from ISO format)
CSV Import
- fixed handling line endings inside strings
- time and date/time types import and detection added

2005-12-05..08
Property Editor
- repaint fixes when column width changes or when persistent selection is set
- Property::captionForDisplaying() added: beter support for multiline property captions
- method names improved in Factory
- do not steal focus when selection is preserved
- possible crashes fixed when property values are changed in an instant reaction 
  on changing a property value in the editor; this is the case e.g. in Kexi Table Designer
- API docs updated
General
- custom "Identifier" property type and editor added (allows only entering identifiers); 
  used in Table/Form/Report Designers
Table Designer
- Field captions can be now entered by users instead of names. 
  Field names are then automatically generated.
- fixed problem with undo button for subtype combo box
- support for BLOB (Object) type; "Image" is now the only subtype of this type
- "unique" and "indexed" properties hidden for BLOB type
Table View
- clearing text removes value in combo box field for "enum" mode

2005-12-02
Main Window
- usability: for IDEAl mode tabs are also visible when one window is opened
  (otherwise user could not know what the window's caption is)
- usability: added "close" button to the tab widget for IDEAl mode
- 'hover close button' is now turned off by default for IDEAl mode
  (added HoverCloseButtonForTabs setting to kexirc for changing this)

2005-11-29..12-01
General
- file dialog's filters now contain only filters that make sense, 
  e.g. there's no "mdb" filter when we're writing to a file.
- usability: file dialogs now store recent directory paths 
  in the config file, and this is now used everywhere in Kexi
- default extension is properly added when there's multiple filters set
  in the file dialog
Startup Dialog
- check for existence of a file user has selected to open
CSV Files Export
- CSV Export dialog added (also for copying to clipboard)
  with storable export options
CSV Files Import
- usability: integer spin box used for "Start at line" option instead 
  of a combo box

2005-11-28
Main Window
- "File->Export->Data Table" and "Edit->Copy Special->As Data Table" 
  actions added
Parts
- X-Kexi-PartVersion increased to 2
- added boolean servicetype property: X-Kexi-SupportsDataExport; 
  true for tables and queries
CSV Import
- space saved: radio buttons replaced by combo boxes
- added "Always use this encoding when importing CSV data files" option 
  to "CSV Import Options" dialog (saved to Kexi config file).

2005-11-26
Project Migration
- added "Always use this encoding in similar situations" option 
  to "Advanced options" dialog (saved to Kexi config file).

2005-11-25
Project Migration
(API CHANGED)
- Added versioning for migration drivers (current one is 1.1)
- Added properties support for migration drivers
- All error messages are displayed on the last "Failure" page
- Added "Advanced options" button and dialog, currently with "Encoding" parameter 
  for source database. Currently used by MDB driver for MSJet3 files.
General
- KexiCharacterEncodingComboBox added - a combobox widget providing 
  a list of possible character encodings

2005-11-22..23
Project Migration
- "All Supported Files" filter added to Kexi file dialogs
- Files like MS Access .mdb can be now clicked and then Import Wizard will pop up 
  with preselected parameters. This also works using command line.
- Import Wizard's GUI: improved messages, added real Finish page
- No need to select source driver, it's enought to select a filename or db connection
Startup
- Better usablity of 'Open Existing' tab page
- Better usablity of 'New project wizard'

General
- compile fix for some compilers
0.9: backported
0.8: backported

2005-11-15
Forms
- AutoField widget: update m_label for font/palette change
- AutoField widget: display "Unbounded Auto Field" text when 
  no data source is set (in design time, like for image box)

2005-11-09..14
Forms
- AutoField widget: improved behaviour in design time 
  (setting caption/type/label position)
- frameColor property added for widgets like text label or frame: 
  behaves well also for "raised" frame shapes
- new widget KexiFrame, will provide more features; backward compatible 
  with QFrame
- do not allow to move top-level widget's position using arrow keys
Property Editor
- fix entering text into string-type editors with 'autoSync' flag

2005-11-07
Startup
- When opening connection (most often using .kexic file), connection dialog is shown
  so user can adjust connetion parameters, (optionally save them) and finally perform
  the connection to see available databases. If connection failed, connection dialog 
  is popping up again.

2005-11-02..04
2005-10-31
Project Migration
- call KexiProject is used to create destination database instead of KexiDB::Connection
  because tables like kexi__parts and kexi__blobs have to be created.
- Moving kexi projects from database servers to database files works.
  kexi__objects table contents are properly copied if existed in source database,
  so queries, forms etc. are properly imported
- Wizard's GUI improvements
KexiDB
- More verbose error messages: 
  Error messages and result numbers can be now inherited by using
  Object::setError( KexiDB::Object *obj, const QString& prependMessage ),
  so less information will be lost while displaying message e.g. 
  on failed cursor opening.
- mysql/pgsql/sqlite/mdb drivers updated for the current API

- Tables: fixed retrieving field captions and descriptions
  0.9: backported
  0.8: backported

2005-10-27
KexiDB
- kexi__parts internal table is now created within KexiProject, 
   not KexiDB::Connection
- kexi__useractions and kexi__final are no longer created
Project Migration
- speedup: table creation and data copying is performed within transactions
- Added possibility of migrating Kexi projects from one backend to another
  (e.g. from MySql server to SQLite file) internal kexi__ tables are properly recreated; 
  data, e.g. for kexi__parts and kexi__blobs is properly copied

2005-10-24..26
Forms
- Property editor widget for pixmaps now uses KexiBLOBBuffer
- forms manager turned into singleton, 
  and two widget libraries are now created: one for forms and one for reports
Property Editor
- show preview box in visible area
KexiDB
- DatabaseProperties utility class added to API
Table View
- Fixed ugly bug for switching sorting order (thanks Aaron)
  0.9: backported
  0.8: backported
- Better sorting: 
-- NULL values are smaller than everything else
-- Special sorting for data/time/datetime/bin integers/floating point numbers
  0.9: backported
  0.8: backported

2005-10-19
Forms
- image box doesn't provide popup in data view mode when 
  no data source is assigned
- Kexi Form widgets code splitted

2005-10-18
KexiDB
- Connection::querySingleRecord() improved
- QuerySchema::addToWhereExpression() added
- SQLite driver: fixed BLOBs retrieval

2005-10-15
Table View
- crash fixed in combo box
  CCBUG: 114697
  0.9: backported
  0.8: backported
- alt+down shortcut can be used to drop down combo box (previously only F4 worked)
  0.9: backported
  0.8: backported
- combo box editor's popup: 
  row repainting fixed after current highlighted row has changed
  0.9: backported
  0.8: backported
Table Designer
- avoid possible infinite recursion
- selecting non-integer type group using 'type combo' clears PKEY flagm, if set

2005-10-14
Forms
- It was not possible to change the tab order of
widgets in the Edit Tab Order dialog with keyboard.

2005-10-12
Project Import Wizard
- usability++: after successful import, the project is opened

Query Designer
- conditions: ambiguous expressions fixed: 
  "t1.id > 100" is used instead of "id > 100" in queries like
  SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.id > 100
- fixed possible crash when invalid query design is loaded in design view
- fixed switching to design mode after invalid query was opened directly in text mode 
- eat parentheses on criteria loading, in WHERE conditions like (a.id = value)
- also accept tableName.fieldName on criteria loading, not only tableName
- also accept e.g. "2 = variable" as condition, not only "variable = 2"
- graphical representation of joins is generated back from SQL statement not only 
  based on explicit query schema's relations but are also retrieved 
  from "[t1.]f1 = [t2.]f2" expressions within WHERE section

TODO: joins are not visible when switching from design to text mode (and conversely) 
  when there are no columns selected in FROM section, eg. "select from a, b"

2005-10-06
KexiCore
- Fixed autogenerating object names (e.g. tables, queries) based on caption: 
  latin1 base name can be now chosen by translator
BUG: 104858

2005-10-05
KexiDB
- PreparedStatement introduced
- mysql, sqlite drivers: avoid double freeing data member in ConnectionInternal implementations

2005-09-27..29
Forms
- Images are stored in memory in original form, converting to QPixmap is only performed
  for displayoing purposes. Such original pixmap can be saved back to file. 
  Original file name is also kept. KexiImageBox handles pixmap data with QByteArray member
- KexiBLOBBuffer introduced: Application-wide buffer for local (static) BLOB data like pixmaps.
  For now only pixmaps are supported. Used on design time before objects are stored.
  This allows to copy multimegabyte pixmaps within Kexi without unnecessary memory loss.
- KexiCustomPropertyFactory introduced: handles Kexi-specific property editor items

2005-09-26
KoProperty lib
- Editor: possible crash fixed
- Property: guarded ptrs are used to store pointers to Set objects
 to avoid dangling pointers

2005-09-24
General
- KEXI_STANDALONE compile time definition added
- description in 'about data' mentions whether it is a standalone or 'bundled' 
  Kexi version
- .po files are now prefixed with "standalone_" for standalone versions
  to avoid conflicts with Calligra installations
- yes, 1.0 is marked as standalone version
- custom defines cleaned up

2005-09-21..22
MDB Driver
- all strings are now properly decoded (object names and data):
  MDB(UCS2)->MDBTOOLS(UTF8, using libiconv)->KEXI_MDB(QString)
- non latin1 filenames handling fixed
- fixed date, date/time types handling (including Y2k problem for years >=1930)
- fixed currency handling (double type is assumed for now)
Table View; Data Interface
- fixed possible crashes for comboboxes within non-db-aware table views
Table Designer
- fixed 'subtype' combo refreshing within property editor
KexiDB
- DriverManager: to avoid conflicts with other copies of KexiDB, 
  eg. in ShowImg application, "kexidb_" prefix is required for KexiDB 
  driver files (KDE modules)
- some docs and above information added for Doxygen

2005-09-17..20
KexiProject
- createInternalStructures() added; semi-internal (not well suited for kexidb itself) 
  structures like kexi__blobs table are created now if not yet exist
- internal kexi__blobs table introduced: for BLOB storage
General
- some i18n strings fixed
- KEXI_NO_AUTOFIELD_WIDGET, KEXI_NO_IMAGEBOX_WIDGET temp. compile time options added

2005-09-16
Forms
- FormIO: some fixes in method's naming
KexiDB
- tristate type is used in some more methods, so it's now possible 
  to catch "no data" cases, not only "server errors"
- InternalTableSchema class added (to avoid polluting TableSchema/Conenction APIs)

2005-09-15
Kexi supports static and data-aware images boxes
- properties implemented: scaling (aspect ration can be kept), 
  horizontal/vertical alignment
Project Migration
- cleaned up the code a bit
- 'back' button works well on "dest. type" page when file-based driver is used
- user is warned when no source filename was specified
Forms
- view mode (design/preview) is now also passed as option 
  to WidgetFactory::createWidget() so widget's look&feel can differ depending 
  on the view mode

2005-09-14
Property Editor
- PixmapEditor improved displaying, and value changes support
- Editor's widgets have proper geometry set a bit earlier

2005-09-06 (aKademy)
2005-09-08..13
Forms
- data-aware image box widget 
(partial implementation started during flight back from Girona to Warsaw)
-- "insertFromFile", "saveAs", "cut", "copy", "paste", "delete", "properties" 
   popup actions added
- "readOnly" property added for image, spinboxes and dbfield widgets

2005-09-03 (aKademy)
Relations view
- fixed redrawing (in an unoptimized way)
Property Editor
- updating combobox items after change of list data
TableView
- combo box popup behaves more like a normal combo (highlighting, selecting)
- added "what's this" support for table columns

2005-08-27
Forms
- a fix for 'value changed' flag and datachangeslistener in autofields

2005-08-19
Startup
- "-type connection" command line arg added 
  (i.e. support for applications/x-kexi-connectiondata mime type)
Main Window
- project navigator visibility flag is now stored in config file (usable  for IDEAl)

2005-08-16..18
Main Window
- Toplevel (buggy) and Tabbed (redundant) KMDI modes hidden in Window menu;
  Changing MDI mode now requires application restart (the lesser of two evils)
- 'Create' menu renamed to more typical 'Insert'; 'Data' menuu moved after 'Format'
- project navigator: usability fixes
Widgets
- KexiSmallToolButton helper class added
- fixes for KexiFlowLayout
Forms
- "other widgets" toolbar popup added for clarity

2005-08-12
Form Designer
- possible crashes fixed

2005-08-10, 11
Form Designer
- added possibility of inserting autofields using 'Insert fields' button 
  from Data Source tab
- CommandGroup usability improved: it's now possible to addCommand() 
  with flag telling that it will not be executed on CommandGroup::execute()
- above CommandGroup's feature is used to make a single command 
  out of 'inserting multiple autoFields' task
- top-level form surface is resized when inserted autoField(s) couldn't fit
- inserting autofields is atomic command supporting undo/redo
General
- applications/x-kexi-connectiondata MIME type defined

2005-08-09
Form Designer
- data source tab: usability improved for field list
Widgets
- KexiFieldListView is now displaying unique fields list for queries
KexiDB
- 'bool unique' arg supported for QuerySchema::fieldsExpanded()
  and TableOrQuerySchema::columns()
Query Designer
- fixes for recent API change of KexiFieldListView

2005-08-08
Main
- better readibility: new project type selector uses listview, not icon view

2005-08-05
Property Editor
- '-flat' arg added for test app
- painting improved for both flat and groupped mode

2005-07-29..2005-08-02
Form Designer
- field editor's types list reuses KexiDB::fieldName() for i18n
- autocaption is set properly for field editor on design time
- field editor's labelCaption is no longer needed
- propeditor: preserve "changed" flags (marked with BOLD) between property set switching
- KAcceleratorManager::setNoAccel(QWidget*) is used for widgets in design mode 
  to avoid adding accelerators (for FormIO and for new widgets inserting)
- factories: isPropertyVisibleInternal() is now called for superclass when needed
  (thus, properties like "iconText" are properly hidden)
- when a widget is deleted or cut, its parent container become selected
KoProperty library
- fix for spin box editor's width
- better display for composed editors for types like Rect
- fixed undo button's size in Editor
- font editor fixed
- Editor: expand/collapse boxes painted using styles; whitespace added on the left hand
- Editor: editor widget's focusing fixed
Table Designer
- a fix for 'subType' combo
Main Window
- Navigator: when items renaming, treat "*" ("changed" flag) as a special character, 
  not a part of the item's name

2005-07-28
Form Designer
- field editor's default focus policy is now inherited from internal editor

2005-07-25..27
Form Designer
- better support for Auto Fields, including drag&drop
- DesignTimeDynamicChildWidgetHandler added - interface for adding 
  dynamically created (at design time) widget to event eater
- editor inside KexiDBFieldEdit is visible at design time
- KexiDataItemInterface::field() changed to columnInfo() 
  -> more information can be now reused for visual field (i.e. query alias)
- dbwidgets moved to libformutils as we're reusing many 
  of them outside of dbwidgets factory
- version information is loaded/saved within form's UI string

2005-07-23
Core
- management related to Part's ID improved; fixed related bug

2005-07-22
KexiDB
- support for PostgreSQL on win32
- PostgreSQL driver's transactions handling improved

2005-07-21
Form Designer
- checkbox inline editing enabled
- width of inserted widgets' size hint increased a bit to for better usability

2005-07-13..20
General
- @internal added for private classes to make api docs more readable
Startup / Server Support
- connection data editor improved
- connection data is now storable
- added support for adding/deleting/editing connection data
KexiDB
- BIC CHANGE (witin v1.7): bool ConnectionData::savePassword flag added
- KexiDB::connectionTestDialog() added for performing test connections

TODO:::::::
-fix shared actions availability for ideal mode! (reported by ccpasteur)
-fix "edit tab order" action: not working when prj browser is focused...

TODO: koproperty: us ListData-like struct instead of QMap, because data combo boxes should be sorted

2005-07-10
KexiDB
- BIC CHANGE TO v1.7: (portability fix) pkeyfieldsorder and fieldsorder mapping 
  now use int instead of uint

2005-07-08
KoProperty
- 'list data' introduced to clearly define 'keys' and 'strings' for combobox-like editors
- cursor editor fixed
- other minor fixes

2005-07-05..07
Form Designer
- Data source fields can be dragged from Data Source Pane 
  and dropped on the form's surface to create data-aware line edit widgets
- on new form empty creation, undo/redo history is cleared 
  and undo/redo actions are not available
- on design time, 'dataSource' properties for forms and dataaware widgets 
  are synced with data source  combo boxes 

2005-07-04
Property Editor
- properties now have 'sortingKey', so the order of properies is maintained
- fixed bug in Set::clear()
Form Designer's Property Editor
- better handling multiple widget selection
- fixes for widget info label

2005-07-02
Form Designer
- fixed i18n for property captions
- fixed filling enum values

2005-06-20..30
- * KexiProperty library made more generic as KoProperty *
- Kexi now uses KoProperty

Form Designer
- Data source tab in the Property Pane implemented
- 'dataSourceMimeType' property added for data-aware widgets, so it can be explicity 
  defined whether an object pointed by 'dataSource' property is a table of query. 
  This change is backward compatible.
- fixed switching property buffers when switching between child windows
- record navigator is now hidden if there's no data source assigned for a form
Query Designer
- object combo box now also contain queries (supporting queries is not implemented yet though)
  the list within the combo is property sorted and grouped; it's reused in 'Data source' tab 
  of Prop. Pane; the combo now reacts on deleting/creating/renaming of table or query
KexiDB
- TableOrQuerySchema helper class added
Main Window
- crash fixed in 'detach window' action
Core
- Field draging: API improved, now both query and table fields/columns can be dragged;
  added support for multiple fields dragging
- added 'higlight object' action for KexiProject (available from property pane)
- improved API for reaction on object creation/deletion/renaming
General
- small icons cleaned up; added better query/form/report/script icons
- 'X-Kexi-GroupIcon' property no longer used; such icons are too hard to design and recognize
- KexiFieldListView and KexiFieldComboBox added
- "kfd:customHeader" element added for inserting custom information like kexiformdesigner's version
- Number of currently selected tab of the Property Pane is preserved when switching back 
  to dialog for a particular part (in design mode). So if a user have looked at "data source" tab, 
	it's no longer necessary to click this tab again.

2005-06-10..16
General 
- more utility functions and clases moved to kexiutils library
Form Designer
- data aware 'text editor' widget added
- inline editor pointer is now being kept only within parent factory
- we're not creating additional (blue) resize handle set, but just changes color 
  of existing set thus resizing works well even if we're during inline editing
- inconsistences with storing pointers to currently edited widget removed 
  (m_widget, m_editor members are now private)
- we're copying common properties from an editing widget to an inline editor 
  (e.g. "margin")
- fixed resetting cursor after editing
- on creating a new spring, splitter and line widget, orientation is set according 
  its to aspect ratio; if the ratio is undefined, popup menu with vertical/horizontal/cancel 
  options is displayed
- fixed crash when pressing Tab key on form surface in design mode
- added 2 custom tabs to property pane: Data Source (mockup for now), Widgets
Property Pane
- widget class is displayed above property editor
- blinking reduced on property buffer switching

2005-06-08
KexiDB
- fixed crash for SQLite2 driver
CSV Import Dialog
- deadlock removed when importing CSV text like ","
Form Designer
- (all branches) temp. fix: QTabWidget used instead of KTabWidget ('&' bug)

2005-06-01
General
- (all branches) missing icons added
KexiDB
- (all branches) field names converted to lowercase in memory to avoid problems with comparisons

2005-05-31
Core
- editor within property panel is accepted before buffer switching
Form Designer
- record is properly fetched on subsequent switching to Data View mode, 
  especially after data source changes

2005-05-25
2005-05-27
Form Designer
- fixed crash when there're missing widgets
Query Designer
- bug for relationships creation fixed

2005-05-23
CSV Import Dialog
- "Start at line" parameter in now better updated

2005-05-13, 14
Form Designer
- "vAlign" property is now invisible for lineedit widgets (it's noop there)
- "(autonumber)" label is (identical to the one in tableview) is displayed 
  in lineedit and label widgets assigned to autonumbered fields
- shadow in label widgets is properly set for altered indenting, margins and alignment
- double focusing of text field fixed
- "format_font" action added; it's now possible setting font for one or multiple widget's 
  standard using font dialog
Core
- fixed possible crash when an object has beed saved with a different name than proposed
TODO:
- in "kexi" mode, "font" property is not visible e.g. for top-level form widget,
  and other widgets that doesn't display text
- fix data src updating in the data view when it has been changed in design view
CSV Import Dialog
- support for setting primary key (including autodetection)
- support for 'first row contains column names' flag (including autodetection)
- column types are autodetected
- import is performed within a single transaction
- characted encoding fixes; different encoding can be selected
- delimiting character is autodetected
- clipboard support re-added
- floating-point values are properly parsed
- empty cells are supported
- new table name is based on provided filename
Main Window
- 'close all' works well if there are more than one yes/no/cancel dialogs required to show

~~~~~~~~~~~~~~~~ 0.9 ~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ 0.8 (excluding updated i18n; with Calligra 1.4) ~~~~~~~~~~~~~~~~

2005-05-10
Project Migration
- MS Access filename filter added for convenience (it's autoselected when needed)
- SQLite3 type is selected as default for destination engine type (for convenience)

2005-05-09
Forms
- fixed crash because main window didn't notice property buffer change
  form's property buffer is shared (ObjPropertyBuffer instance) 
- setting and clearing 'formName' property value for subform fixed
- fixed problems with data in subforms: data provider only sets data 
  for own items, not inside subforms (data-awarness is disabled in subforms for now)

2005-05-06
Core, Property Editor, Form Designer
- powerfull "property options" added to kexi properties: 
  can change behaviour of property editor's items
- properties: for integer types it's now possible to set "min", "max", and "minValueText"
   options; "minValueText", if available, is properly displayed: 
   e.g. see:"indent" property of Kexi's label widget
Form Designer
- shadow doesn't blink; properly refreshed on 'indent' property change
KexiDB
- inserting rows with autoinc values > than 0x7fffffff supported

2005-05-05
Form Designer
- basic data type validating added to lineedit widget
- spring drawing improved

TODO: fix KIntValidator::validate()?

2005-05-04
Form Designer
- row deleting and inserting implemented
- when started new row editing, 'next' btn is enabled (code shared with table view)
- "+ button" code shared with table view

2005-05-02
KexiDB
- we're handling application/x-sqlite2 and application/x-sqlite3
(those mime types are defined within kexi but we'll also add them for another KDE
release)

2005-04-30
KexiDB
- magic data is now defined for application/x-sqliteX, not for
  application/x-kexiproject-sqliteX (X == 2 or 3)
- file-based drivers can now define a list of supported mimetypes, not just
  one mime type (added all known mimetypes thee, including Knoda's mimes, for
  compatibility)

2005-04-29
Form Designer
- fixed many crashes appearing when a widget name was changed
- setting duplicated or invalid widget name is now impossible

2005-04-28
Form Designer
- all known property and enum names are translated; names are simplified
- more properties turned to advanced set and thus made invisible in Kexi
- kexiproperty object is created only once for on propbuffer creation 
  for every QWidget's property. This fixes problems like 
  'toggleButton' property being added twice to propeditor
- looking for i18n'd property description or enum value description: 
  on failure, we're also asking parent widget factory for this, if one exists

~~~~~~~~~~~~~~~~ 0.8 beta 1 (with Calligra 1.4) ~~~~~~~~~~~~~~~~

2005-04-27
Form Designer
- KexiGradientWidget ifdef'd out for 0.1 release 
  (using KEXI_USE_GRADIENT_WIDGET macro) due to problems with performance 
  and child widget's palettes
- added possibility of forcing particular class to be hidden 
  (eg. because it's not ready to use yet or makes no sense in current context)
- fixed creating KexiProperties for enum values
- property buffer: sometimes enums are remembered as casted to ints, 
  sometimes as string representations...
- a few properties are now hidded due to inmaturity or senseless

2005-04-25
Main Window
- fixed possible crash of the property editor on detached window closing
KexiDB/SQL Parser
- SQL Parser now accepts unicode characters for identifiers and strings
Project Migration
- drop existing database before if user configmed overwriting
- close connection on failures
- fixes for mdb driver


2005-04-22..23
Table View
- Ctrl+Delete (delete row) shortcut also works inside cell's lineedit editor 
  (default shortcut is overriden)
Table Designer
- on switching to design mode, row buffers are initialized after old buffers 
  are cleared, not before (this fixes bug with disappearing property buffer)
Form Designer
- fix for setting background (gradient widget cleared background color value)

2005-04-21
Main Window
- 'edit > select all' global shared action added
Core
- Active window can be found even if it's detached (as in KMDI).
  This fixes shared actions availability for detached windows.
Form Designer, Report Designer
- KexiFormManager reused for reporting
- we can now assign any kexi action to a button, not only shared one..

2005-04-20
Form Designer
- we're not plugging to data-related actions for design view mode

2005-04-19
Project Wizard
- 'finish' button disabled on 'select project type' page
Form Designer
- 'delete' key removes selected widget(s); except for top level form widget
- 'menu' key works
- avoid redundancy in action-creation code
- better context menu
- actions can interoperate with shared actions
TableView
- 'menu' key code taken from global settings
Main Window
- on startup propeditor is hidden if no project is opened
Startup
- Connection Selector: added information how to create connections

2005-04-18
Core
- KexiProperty::setValue(): QCString type is now compatible with QString type
Form Designer
- assigning predefined Kexi actions to buttons
- WidgetLibrary::setAdvancedPropertiesVisible() added, so advanced properties 
  can be hidden in Kexi.
- WidgetLibrary::isPropertyVisible() improved
- 'edit pixmap collection' and 'edit connections' 
  disabled for current version of Kexi Forms
- using QString changed to QCString in maaany places

2005-04-15..16
Main
- Navigator: double clicking on item which has no data view mode available,
  opens it in design mode; Unavailable actions for given object types 
  are hidden in popup menu.
- main window: navigator's layout management fixes, again...
Form Designer
- initial version of 'assigning actions to push buttons'
- resizing main form widget is undoable and considered in setting dirty flag
- initial size of form surface fixed
- various fixes for form surface resizing and "Outer Area" text
Core
- Dialogs: new objects are not dirty by default but this is changed for forms

2005-04-13
Form Designer
- On loading, top level form widgets with negative X or Y are moved to 0 
  to avoid weird behaviour.

2005-04-12
KexiDB
- Scale property added for floating-point field types. 
  Now types like NUMERIC(precision,scale) are possible to declare.
Core
- String "Design of object \"%1\" has been modified." made well translatable 
  at plugins level.

2005-04-11
Form Designer
- it's now possible to inherit features of a widget class from a different factory

2005-04-07
Query Designer
- properies for rows were not cleared on switching back to design view 
  when statement changed


2005-04-01..04
* Many improvements added for Kexi Forms, 
  including editable query results. *
KexiDB
- BIC CHANGE:
-- FieldList: field(const QString&) added
-- QuerySchema: field(const QString&) added; 
   insertField() and fieldsExpanded() improved;  
- documentation improved
Forms
- setting (predefined) queries as form's dataSource works
- editing data for _editable_ queries works (but not rows adding or removing)
- setting "tablename.fieldname" for data-aware widget's dataSource works
- setting "queryname.fieldname" for data-aware widget's dataSource works
- when a table is set as form's data source, all primary key's fields 
  are always fetched (so editing works well with autonumbers)
- autoSync set to false for dataSource properties (using KexiDataAwareWidgetInfo)
- improved support for invalid dataSource property
- data-aware widgets with invalid dataSource property are now removed from tab-focus cycle
  (setInvalidState() now implies setting ClickFocus flag)
- on form opening: first data-aware widget with TabFocus is focused (if available)
- void KexiFormDataProvider::fillDuplicatedDataItems() works well 
  also if there are data sources like "tablename.fieldname"
Forms Library
- autoSync flag can be overriden independently within every widget factory 
  for every single class, using WidgetInfo::setAutoSyncForProperty()
- when deselecting a widget with autoSync set to false property value is now set properly
Main
- KexiBrowser: pressing Enter key to accept item renaming won't execute "open" action


2005-03-30
Forms
- setting form's background color property fixed
KexiDB
- BIC CHANGE: a few dtors made virtual
- Connection: data inserting/updating/deleting:
-- more error messages and codes added
-- we're checking if master table's primary key is available
- QuerySchema: pkeyFieldsOrder() improved, pkeyFieldsCount() added.
- FieldList::indexOf() added

2005-03-29
Main Window
- dock windows' width is managed for TabPageMode in the same way as for ChildframeMode
- hiding property editor's dock when not needed
Table/Form Views
- database cursor deleted when not needed
Forms
- writing data changes implemented

2005-03-25
Forms
- "cancel cell editing" and "cancel row editing" implemented

2005-03-10..24
Forms, TableViews
- APIs for Forms and TableViews more integrated: 
-- KexiTableEdit now inherits KexiDataItemInterface
-- KexiDataItemInterface is now used in KexiDataAwareObjectInterface, 
   not KexiTableEdit
-- KexiFormScrollView and KexiDBForm now uses KexiDataAwareObjectInterface API
   for dealing with r/w data
- data-aware widgets with duplicated data source are updated concurently 
  on editing one of them
- within forms, "column" term is now related not to column within data model,
  but to order of data-aware widget. This "column" value is translated to
  column number within data model when needed. This allows to duplicate data 
  widgets, hide them, change their ordering, etc. For example, tab order 
  (and visual order) of data-aware widgets is independant of column ordering 
  within data model.
KexiDB
- BIC CHANGE: QuerySchema::parentTable() renamed to masterTable()
- QuerySchema::masterTable() now tries to return a table 
  if there's only one defined
- Connection::createTable() - on error, existing table schema object 
  is not destroyed (i.e. it is still available e.g. 
  using within Connection::tableSchema(const QString& ), 
  even if the table was physically dropped. 
  This fixes crash for "alter table dialog" when recreating table failed
  (the dialog expects that old table schema won't be destroyed).
- Connection::resultExists() avoid appending optimizing "LIMIT 1" suffix when
  the query statement is not "SELECT".
- Connection::createTableStatement(): length parameter is now only used 
  for text and not long text field types.
Alter Table Dialog
- changing subType to LongText hides "length" property;
  changing subType to Text shows "length" property. 

2005-03-04
KexiDataAwareObjectInterface (TableView)
- fixed setting cursor position (and iterator) when changing selected 
  row after row editing

2005-03-03
- doc/dev/compile_time_options.txt document added
KexiDB
- API CHANGED - version 1.5
- KexiMessageHandler moved to KexiDB::MessageHandler, KexiDB::Title added 
  as public available, KexiDB::Object now uses MessageHandler.
KexiProject
- KexiProject now uses recent KexiDB additions
Migration (Import Project Wizard)
- fixed accepting entered target db filename
- user is asked for confirming overwrites
Main
- KEXI_CUSTOM_HARDCODED_CONNDATA temp. compile-time option added,
   see doc/dev/compile_time_options.txt
KexiStartupFileDialog
- Esc key is filtered-out so it's not hidden and 
  dialogs using this widget can bahave properly

2005-02-27
KexiDB
- mysql/sqlite drivers: fixed problem with xxxxConnection::value(int)
  when we're using raw sql statements (so expanded field list is empty)
- MySQL Driver: a hack to enable local connections without using 
  a local socket file: if user doesn't want to use local socket file,
  host name is automatically set (internally) to "127.0.0.1" 
  before connecting. This is especially usable when we're using SSH tunneling.

2005-02-26
Widgets
- KexiTableRM moved to KexiRecordMarker in libguiutils
Forms
- "pen" icon is displayed on editing within a standard form, see:
 www.kexi-project.org/wiki/wikiview/index.php@Forms%20embedded%20inside%20Kexi.html#3.5._
- fixed Tab/BackTab ordering when there're widgets without TabFocus focus policy set
- TabOrder dialog: "dirty" flag is always set to the curent form when the dialog is accepted
KexiDB
- Connection::dropTable(): be sure that we handle the correct TableSchema object
- Connection::storeObjectSchemaData() if we already have stored a schema data 
  with the same name and type - just update it's properties as it would be existing object

KexiRecordMarker
2005-02-23..25
Forms
- fixed Tab/BackTab ordering within form's fields, including cycles 
  and problems after detaching/attaching windows for Child Frame Mode.
  QApplication::sendEvent() used instead setFocus() for more realistic 
  (especially for QLineEdits) focusing effects when tabulator is pressed.
- QLabel and KexiPixmapLabel available again in KFD
Main
- useful Statusbar debug info about focused widget added 
  (enable this using KEXI_STATUSBAR_DEBUG compile-time macro)

2005-02-21
Kexi Startup
- "useLocalSocketFile" option for .kexis file implemented
Forms
- "autoTabStops" property added. 
   It is synced with changed made by TabStopDialog's checkbox.

2005-02-11...2005-02-20
Kexi Startup
- Support for ".kexis" shortcut files added. You can now easily create 
  a shortcut file once, and connect to your remote database server with 
  just one click :)
- "-type" command line option added 
  (specifies a type of a file provided as argument)
- opened file types are additionally checked by name extension 
  (if mimetype was not detected) -- this is useful for shortcut files
- KexiDBShortcutFile class added
- database/connection dialog reimplemented
- KexiDBDriverComboBox added: a combo box for selecting a database driver

2005-02-17
Forms
- Avoid errors and handle invalid dataSource property values within forms
- show errors as "#NAME?" in line edits and other data-aware widgets

2005-02-04
KexiDB
- DateTime values: back to ISO 8601 datetime format: 
 http://www.w3.org/TR/NOTE-datetime
 (ie. "1994-11-05T13:15:30" not "1994-11-05 13:15:30")
 --backward compatible

2005-02-02
Tables/Forms
- navigating within rows optimized by using iterators
Forms
- navigating readded (still read-only)


2005-01-29..31
Forms
- KexiGradientWidget introduced: 
  new special effects within form surface;
  Shadow Labels introduced
  (by Christian Nitschkowski; segfault_ii at web.de)
- "show ui xml code" debug function added to forms
- 1st attempt to port Forms to updated data-awarness API

2005-01-27..29
Widgets
- fixed several blind slot-signal connections
Forms
- fixed slots/signals signatures with namespaces
- better resizing new forms contents

2005-01-26
Widgets
- fixed focusing-out record navigator's line edit

2005-01-20
Core
- On failed plugins loading, proper error message is associated with KexiPart::Info 
	and available later; instead of only assigning it globally to KexiPart::Manager.

2005-01-17
SQL Editor
- focus is correctly to editor widget
API, Utils
- KexiDataAwareView, KexiDataAwareObjectInterface introduced
- API and GUI Consistency highly improved:
  KexiTableView and subclasses use the same api 
  as KexiFormView and all friends

2005-01-14
General
- KEXI_REPORTS_SUPPORT compile-time define added
Core
- new Part Item added after saving to KexiProject object's structure
  and removed from temporary list of unsaved items.

2005-01-10
Forms
- KexiDataItemChangesListener added to allow signaling changes 
  from widgets implementing KexiDataItemInterface 

2005-01-08
KexiDB
- TableSchema: table names should be lower case to ease comparisons
- we're using "lower(o_name)='givenobjname'" comparison in kexi__objects table
  to avoid problems even if somebody hacked this table with upper case letters;
  thanks to Martin Ellis for mentioning the problem
Kexi Data-aware Widgets
- KexiRecordNavigatorHandler interface introduced -handles requests 
  generated by KexiRecordNavigator
Forms
- Database-aware forms finally introduced
Core
- KexiDataItemInterface: An interface for declaring 
  widgets to be data-aware

2005-01-06
MainWindow
- maximized child window (dialog) state is preserved
  (a fix after recent KMDI behaviour changed)

2005-01-04
PropertyEditor
- prevent scrolling to previously selected item on mouse click

2004-12-22
Reports
- data view mode: record navigator is now "page navigator"
  (it has also [+] button hidden)

2004-12-21
Core
- KexiProperty - added 'fixed' flag for 'list' types
 (the flag is used in Property Editor in most cases)
- KexiPart::ObjectTypes introduced
- KexiProperty: 
  property is unchanged if we're moving from null value to a null pixmap, etc.
Form Designer
- some fixes for efficiency
- WidgetFactory can now define custom i18n'd:
  -property descriptions
  -property value descriptions

2004-12-20
SQLite Drivers (2 and 3)
*DATABSE FORMAT CHANGED to 1.4* 
- date-time data type is now stored as "YYYY-MM-DD HH:MM:SS", not as
 "YYYY-MM-DDTHH:MM:SS". This is compatible with SQLite format
 http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions
 The change is backward compatible.
 (thanks for reporting: Richard Groult)
KexiDB
- Connection: queryStringList() convenience function added
- information about "possible problems" is displayed in details sections
  of error message on failed loading db driver
Migration
- wizard fixed a bit
- kexi__* tables are not copied on high-level
- MySQL Migration driver, contributed by Martin Ellis <m.a.ellis@ncl.ac.uk> 
KexiDB Drivers
- MySQL driver better splitted to internal and public part, 
  so migration driver can easier use it


2004-12-18
Forms
- WidgetLibrary: check for duplicated factories added
- factory groups introduced
- factories loading splitted for lookup/loading stages
- added 'override' flag for alternate widget class names
- minor optimizations
Form Plugin
- fixed showing form's property right after form's window loading
- record navigator added in data view

2004-12-17
KPropertyEditor
- fixed editor positioning
- bool editor height fixed
- test: more property types

2004-12-14
Form Plugin
- handling form's boundaries improved
- after switching to/from form in data view mode, its contents position is preserved
- fixed form's size setting in data view mode
- two form's resize modes introduced, see 
  http://www.kexi-project.org/wiki/wikiview/index.php@Forms#Form_Resize_Modes_for_form_windows_inside_Kexi.html
- in data view mode, scrollview is properly resized to avoid showing 
   outer area and without scrollbars flickering
General
- version info moved to kexi_version.h; kexi_global.h is auto-included

2004-12-13
Widgets
- libkexiguiutils added (KexiDB-independent widgets)
- KexiRecordNavigator widget added (the old one was unused)
Core
- Part::openInstance(): dlg->registerDialog() moved after successful dialog opening
  to avoid focusing non-exisitng dialog and/or flickering 
  in a case of obj. loading errors

2004-12-02
KexiDB
- version field added to kexidb driver's service files

2004-11-29
Plugins
- Migration plugin added (this removed main<->migration circular dependency)
Kexi Internal Parts
- API improved

~~~~ 2004 LT ~~~~

2004-11-24
Main
- unix: fixed problem with SIGPIPE on running another Kexi process
  (stdin/err/out is closed now)

2004-11-22
I18N
- pl translation updated
Main
- disabling forms support fixed
KexiDB
- fixed setting relationships within query
Query Designer
- criteria handling fixed
- information syncing fixed a bit more

2004-11-20
KexiDB
- TableSchemaChangeListenerInterface added to signal changes 
  in tableschema set
Query Designer
- registers usage of table schema
- fixes in GUI editor
- more checks for schema changes
Main
- on table schema altering or removing, user if now asked 
  for closing windows using this table
win32 File Dialog
- make 'My Documents' folder as default
Query Designer, SQL Parser
- fixed invalid parsing string constants

2004-11-19
Query Designer
- clearing "PK" flag is not needed in few cases
- it's now possible to enter "alias_name: simple_expression" 
   in the column #1 
Table View
- fixed repainting visible rows below a deleted row 
  (required if no confirmation box is displayed)
- record navigator's rec # indicator field:
-- fixed value validation on number entering
-- fixed focus out
- added support for editable comboboxes
Main
- always ask for removing objects
Property Editor
- do not steal Key_Home and Key_End key presses from editor item
- Key_Tab and Key_BackTab work like down/up keys

2004-11-17
Startup dialogs
- win32: fixed problem with changing directory for a new db file
Kexi Utils
- string2Identifier() : non-latin1 characters converted to latin1
  eg. 'oacute' to 'o'

2004-11-16
Relations Widget
- fixed updating tables combo box on table adding
- on new table creation, combo box is updated with a new item
Main Window
- fixed setting non-latin1 characters (e.g. db name) for the title

2004-11-15
Main Window
- close_project action's shortcut removed 
  (to avoid conflict with KMDI's 'close current child window')
- CTRL+F4 key closes child window on win32
Table View
- KexiComboBoxPopup: selection is changed on mouse release event, 
  not on press, to avoid weird effect when selection is dragged
- dropdown button placement fixed after clicking for KexiComboBoxTableEdit
- fixed race condition in GUI on fast row inserting 
  (due to QApplication::precessEvents())
- fixed vheader offset on row inserting
Query Designer
- user is warned about empty 'column' item while 'table' item is not empty
- simple criterias are loaded to GUI
KexiDB
- expression classes optimized for space and speed (NArgExpr is not used)

2004-11-13
Property Editor
- fixed moving selection (esp. using Home key) 
Query Designer
- never ending story: fixed actions availability os switching back to design more
- setting column aliases available using GUI
- "caption" property hidden for KEXI_NO_UNFINISHED
- wait cursor enabled for query executing
Kexi Browser
- CTRL+Enter shortcut handling fixed
Main Window
- property editor is shown before opening dialog (not after) 
  to allow initialize proper size inside the dialog. 
  E.g. this fixes column widths in query designer's view.
Table View
- sorting settings are cleared on setData()

2004-11-12
Kexi
- 2 icons fixed
KexiDB
- Support for Generic SQL Keywords Escaping
  contributed by Martin Ellis <m.a.ellis@ncl.ac.uk> 

2004-11-11, 12
Property Editor
- 'undo changes' button improved (icon, tooltip)
- Esc key now properly undoes changes using KexiProperty::resetValue()
- setWidget() usage fixed for spin box editors, and similar: this fixes problems with
 key press event filtering for these editors
- Home and End keys now moves to first/last row, also for nested properties
- moving selection using keyboard now ensures an item is visible
Properties
- KexiProperty::resetValue() does nothing if property is unchanged

2004-11-10
Property Editor
- on focus
--previously focused editor is activated;
--first visible item is activated if no item was active
- fixed buffer switching (focus is not set)
- focusing for combo box (list) editor fixed
- focus is set again if was set before
Table View Prop. Buffer
- fixed memory leak and possible crash
Table Designer
- switching from design view to data view: it's now posible to discard changes
- typo in prop name fixed
Main
- Key_F6/F7/F8 added for data/design/text modes

2004-11-09
Main
- fix conflict of CTRL+Tab with tabbed/ideal mode on win32
Query Designer
- 'check query' action is now avaialble under Key_F9 (was CTRL+Key_Enter) 
   to avoid conflict with editor

2004-11-08
Main
- a fix for saving main windows settings (now mdimode is saved to proper
  section)
- window_next, window_previous actions added
KexiDB
- DriverBehaviour::AUTO_INCREMENT_TYPE added

2004-11-05
Main
- fixes for actions

2004-11-04
Migration
- fixed compilation (problems due to curcular libs dependencies)
KexiDB
- alterTableName()
--works better with already started transactions
--finally works even for SQLite!
- lowlevel Connection: drv_containsTable(), drv_getTablesList() added; 
  impelemnted for all 3 drivers
- Connection::dropTable(): No error is raised if the table does not exist physically 
   -its schema is removed even in this case.
Core
- Kexi::setWaitCursor(), Kexi::removeWaitCursor() do nothing for non-GUI-aware apps.
- KexiGUIMessageHandler now calls Kexi::removeWaitCursor()
- If an object could not be opened in design/data view, 
  user is asked to let it to be opened in text mode (if available)
- KexiDialogBase: temp data handling improved
Main
- "Open in Text View" added to the Browser
Query Designer
- SQL Editor is now able to open also invalid SQL statements,
  so user can now open (and probably fix) statements.

2004-11-03
KexiSQLite 2, 3
- crashes fixed for architectures where sizeof(char*) != 4
Core
- Property, PropertyBuffer: some methods made explicity inline
- warnings added when trying to set a value to a null property 
  or when property not found. Setting value to null property disabled)
TableView
- in KexiTableView::acceptEditor():
	there might be called cancelEditor() in updateRowEditBuffer() handler,
	if this is true, d->pEditor is NULL. So we're checking
	d->pEditor and calling startEditCurrentCell() only if it's present
- Empty row is appended on row deletion when 'spreadsheet mode' is on.
- fixed setting row numbers in record navigator for empty data sets
- fixed editing large FP numbers (removed scientific mode)
SQL Parser
- added Date/DateTime/Time types support to ConstExpr 
  (parser does not operate on these constants yet)
Query Designer
- added support for Date/DateTime/Time criterias
Table Designer
- some properties are hidden for KEXI_NO_UNFINISHED
Main
- BUG: 89381 proposed fix, please test
- Browser: added override for Key_Delete (items removing)
KexiDB
- DriverBehaviour: QString AUTO_INCREMENT_PK_FIELD_OPTION and 
  bool AUTO_INCREMENT_REQUIRES_PK added. This fixes problem with 
  pgsql sequences.
- Connection:
--fixed generationg 'create table' statements.
--added drv_dropTable(), drv_alterTableName().

2004-11-02
Main
- fixes for kexi__parts
Query Designer
- fixed adding fields by entering column names by hand
- entering (simple) criteria now is working
KexiDB
- DriverBehaviour: SELECT_1_SUBQUERY_SUPPORTED added, 
  used in Connection::resultExists()
Forms
- on failed saving new form's data, all saving is rolled back
- fixed saving form data for mysql (and probably pgsql)

2004-10-29
Query Designer
- fixed focusing
Table View
- fixes for combo box

===================== Kexi 0.1 Beta 5 "Halloween" =====================

2004-10-27
Kexi
- a little speedup: QValueList::Iterator changed to QValueList::ConstIterator
TableView
- never-ending-story: fixed repaint of "insert row" for empty tables;
  fixed setting contents size based on tableSize() on table view creation
  (delayed slotUpdate() is used)
- setBottomMarginInternal() added e.g. for popups
- Appearance class introduced: defines table view's detailed appearance settings
- "row highlighting" option added, comboboxpopup uses it
- fixed doubled empty row inserting (edit_insert_empty_row action)
- ensureCellVisible() fixed when record navigator is hidden
- many improvements in combo box editor and popup
Query Designer
- "*" are better handled on schema building

2004-10-25..26
- defines moved from Makefile.global
- minor compile fixes and some warnings removed
I18N
- pl translation updated
Forms
- fixed crash in connection editor
TableView
- datatimeedit hack disabled for !win32
- "edit_clear_table" action added
- KexiTableViewDataBase made protected in KexiTableViewData for safety
- on row inserting, enable "next" button
- record navigator
-- now takes full width, painting fixed
-- update width when number of digits in rows counter changes
Main
- preferences and configureToolbars actions ifdefed using KEXI_SHOW_UNIMPLEMENTED
Plugins
- Default implementation of Part::remove() added again. 
  This is enough eg. for Form plugin.
- table and query plugin: Connection::eemoveObject() is called even 
  if object's could not be loaded, what allows to remove invalid objects.

2004-10-22
TableView
- KexiDateTimeTableEdit, KexiTimeTableEdit implemented
Table Designer
- BLOB types ifdefed using KEXI_SHOW_UNIMPLEMENTED
KexiDB
- DriverManager does not list derver-based projects 
  when KEXI_SERVER_SUPPORT is undefined
Startup
- added error message when explicity provided db driver name not found

2004-10-21
Core
- shared action's "enabler" introduced
Startup
- KexiStartupFileDialog: filename handling fixed for win32; fixed focusing
- avoid asking for conversion when '--dbdriver sqlite2' 
  or '--createdb' CL option is present
TableView
- highlighting for int and float types fixed
- fixed initializing for date picker
- added 'datetime' and 'time' types support
- adding empty rows when possible also for db-aware table views
  (ie. RowEditoBuffer can be empty on insert)
- it's now allowed to click "+" button in record navigator to insert rows 
  (current editing is accepted)
- on failed row insert/update, user is informed 
  about "data_cancel_row_changes" action availability
- on invalid value entered in a cell (after a msg box is closed),
  the cell's editor is focused again
Compile-time switches
- KEXI_STARTUP_SHOW_TEMPLATES, KEXI_STARTUP_SHOW_RECENT,
  KEXI_SERVER_SUPPORT, KEXI_FORMS_SUPPORT added (currently all enabled by default)
Main
- copy/paste/cut on navigator items enabled only for KEXI_SHOW_UNIMPLEMENTED
- toolbars redesigned: now "design" toolbar is for kexipart's design view
  and "data" is for data view. This avoids toolbars duplication.
- propeditor dock window is hidden when a window in data view mode is active 
  (or no window is present). This feature is partially disabled 
  (using PROPEDITOR_VISIBILITY_CHANGES), though,
  --REENABLE when blinking and dock width changes will be removed in KMDI
- "data_cancel_row_changes" action added
KexiDB
- FORMAT CHANGED: SQLite Driver: 'date', 'datetime' and 'time' 
  types support fixed: Qt::ISODate format is used
- FieldList: simple methods made inline; fixed bug in hasField()
- findRef() instead of find() used in few places for speedup
- a hack needed because QVariant(QTime) has broken isNull():
  Internally: null time value is now null QDateTime(), not-null time value
  is now QDateTime(QDate(0,1,2),time); This allows to store 00:00:00 times.
  See also stringToHackedQTime(const QString& s).
Table Designer
- "tablepart_toggle_pkey" action temporary removed from toolbar
  (will be re-added after shared toggle actions fix);
- "tablepart_toggle_pkey" action added to popup menu and to Edit menu


2004-10-20
Main
- "file_open" and "file_new" actions now start a new process 
	for creating/opening database, if needed.
- KEXI_SHOW_UNIMPLEMENTED macro added
KexiDB Parser
- fixed handling large integer constants 
Table Designer
- primary-key-fields: BigInteger type is enforced; subtypes are hidden
Kexi Properties
- KexiPropertyEditor::setBuffer() can be now safely called even from 
  KexiPropertyBuffer::propertyChanged() signal handlers (refreshing is delayed).
Core
- KexiViewBase::propertyBufferReloaded(): bool preservePrevSelection added

2004-10-19
Main
- "delete_row" action shortcut is now CTRL+Delete, to avoid conflict with edit_cut (Shift Delete)
- fixes for KexiBrowser
TableView
- KexiComboBoxTableEdit improved
- KexiTableViewColumn: try harder to get a column name
Startup
- --password option removed
- --create-opendb CL option added

2004-10-18
KexiDB Parser, KexiDB
- Field::Type type() introduced for expression classes
- type(): integer subtypes (Integer, BigInteger, ..) 
   are detected for int constants; the same for strings
- Field::type(): If there's expression assigned,
  type of the expression is returned instead.
- Field::Type::Null added
Query View
- Expressions are now displayed, with header names
Core
- KexiDialogBase::activate() -another focus-related fix

2004-10-16
Core
- KexiSharedActionConnector introduced
SQL Editor
- double clicking on a history item selects it for editing

2004-10-15
- small speedup for Kexi global objects on startup
- fixes for KexiStartupFileDialog 
- tests/newapi is compield by default. Other tests disabled.
Core, Plugins
- SPEEDUP OF STARTUP: 
  Part::initActions() splitted to Part::initPartActions() (default one)
  and Part::initInstanceActions() (lazy one)
Kexi
- name argument is now passed to KGenericFactory to avoid runtime warnings
KexiDB Parser, KexiDB
- Expression: 
-- former type renamed to token
-- 'type' member added; typechecks added to validate()
- more SQL statements are supported

2004-10-14
Kexi
- more debug areas added
- KexiStartupFileDialog wrapped for win32 again
TODO: move some things to kdeui/win32
KexiDB Parser, KexiDB
- WHERE expression is supported
- operators like "IS SIMILAR TO" and "IS NOT NULL" better supported
- brackets better supported
- both <> and != supported

2004-10-11
Parser:
- ER004 supported

2004-10-09
Kexi Startup
- ksqlite2to3 script added for unices. It's used instead of two QProcesses.
- ksqlite2:  -verbose-dump added for ksqlite2to3

2004-10-06
3rd Party
- kexisql migrated to SQLite 3.0.7 (new kexisql3/ directory added);
  former libkexisql is now libkexisql2 (updated to 2.8.15, by the way)
KexiDB Drivers
- "SQLite3" driver introduced. "SQLite" driver is now removed; 
  use "SQLite2" driver for comaptibility.
KexiDB
- static QString Driver::defaultFileBasedDriverMimeType()
  and static QString Driver::defaultFileBasedDriverName() added,
	so let's don't compare driver names against "sqlite" string when looking for default.
Startup
- sqlite version is now autodetected on startup
- sqlite2 to sqlite3 format autoconversion added (with progress dialog)

2004-10-04
- command line options added: --user (-u), --port, 
   --host (-h), --password, --local-socket
- password can be now entered using dialog, if it's a server-based conn.

2004-10-01..02
Kexi Startup
- server-based (mysql, postgresql) projects are now available from command line 
  (usable since gui is not yet ready): 
  --createdb, --dropdb, --dbdriver command line options added
- db creation and dropping from command line works without starting entire gui
  see http://www.kexi-project.org/wiki/wikiview/index.php@CommandLineOptions.html
Core
- KexiMessageHandler introduced: receives messages e.g. from KexiProject
- KexiGUIMessageHandler added
KexiDB
- improved error handling
MySQL Driver
- MySqlConnectionInternal added (like for SQLite)
General
- KMessageBox::warning**() used instead of question**() for dangerous messages.
- 'tristate' helper class introduced. This reduces a need for adding 
   bool& cancelled parameters.
- tristate class used where possible instead of 'bool& cancel' params

2004-09-29
2004-09-30
SQL Parser highly improved
- reduce/reduce conflicts solved: operators in expressions have now 9 valid precedence levels
- expressions are now parsed quite well: e.g. identifier checking is recursive
- better debugging
- ParseInfo introduced: Data used on parsing
- invalid use of reserver keywords are now detected: 
  '"KEYWORD" is reserved keyword: identifier was expected' message is now returned
  instead of dumb "syntax error"
KexiDB
- Field: expressions are better supported
- Connection: expressions are visible in selectStatement()

2004-09-28
KexiDB
- Field: documentation added
Kexi
- ConstIterators used where possible

2004-09-27
SQL Parser
- ER102, ER103, OK104 SQL Issues resolved (see statements.txt)
- several bugfixes

2004-09-17
KexiDB 
- Connection::selectStatement(): alias is used insetead of table name, 
  if available
- QuerySchema: 'index' term replaced by 'position' ; insertField(), addField() 
   overloads added allowing tables binding by position; addTable() now allows 
	 to specify table alias; tablePositionForAlias(), tablePositions() added;
	 many docs and examples added
SQL Parser
- many improvements and checks:
	-- ERR: there's no "persons" table in this query (alias "p" covers it)
	select persons.id from persons p;
	-- alias "p" for table "persons" is used
	select p.id from persons p;
	-- multiple aliases for the same table
	select persons.id from persons, persons p, persons p2


2004-09-15..16
SQL Parser
- select statements are now parser in more functional way, instead
  of using global pointers. This enables nested statements in the future.
- field alias support fixed
- table alias support added
KexiDB 
- (API CHANGED) QuerySchema: 
--"Field" in isFieldVisible(), setFieldVisible() renamed to "Column"
--alias() renamed to columnAlias(), and so on
--Table aliases are now supported: tableAlias() added, and so on
--QueryFieldInfo class renamed to QueryColumnInfo

2004-09-14
TableView
- hack added for KDownArrowPushButton for drawing with thinkeramik style. 
- convenient ctor added for KexiTableViewData
KexiDB
- Driver::escapeIdentifier() : "" are only added if there is a space inside the name.
  This keeps SQL statements more readable, especially in SQL View.
-	DriverBehaviour::QUOTATION_MARKS_FOR_IDENTIFIER added
- Driver::drv_escapeIdentifier() added:
	This method is used by escapeIdentifier().
	Implement escaping for any character like " or ' as your 
	database engine requires. Do not append or prepend any quotation 
	marks characters - it is automatically done by escapeIdentifier() using
	DriverBehaviour::QUOTATION_MARKS_FOR_IDENTIFIER.
Parser
- tokens like '123abc' are now reported as invalid by lexer to parser


2004-08-25
Core
- KexiSharedActionHost::invalidateSharedActions(QObject *o)
	if o is not KexiDialogBase or its child,
	only invalidate actions if these come from mainwindow's KActionCollection
	(thus part-actions are untouched when the focus is e.g. in the Property Editor.
- KexiViewBase::setDirty() -do not signal 'dirty' flag's changes if no change
- ObjectStatus now also stores related KexiDB::Obeject's, for more verbose errors
KexiDB
- Field::isAutoIncrementEnabled() added + some checks for 'autoincrement' flag
- fixed saving SQL statements for possible later error messages. 
  Object class now also better handles previous server error messages and numbers.
- KexiDB::getHTMLErrorMesage() improved, it's more verbose in certain cases
- Driver::escapeIdentifier() added; used in Connection in every place 
  where SQL statements are generated. Thanks to Martin Ellis.
CC_MAIL: m.a.ellis@ncl.ac.uk
TableView
- "yes" button for "do you want to delete row?" dlg has "Delete row" text 
  (as KDE HIG requires)
- cell-cursor's is position not reset after initDataContents() on show()
  if it was set before KexiTableView widget showing.
Table Designer
- many validations added related to primary key and autonumber properties
- On table creation (or altering), if there is no primary key, user is asked 
  if it should be added (automatically). 
  Useful setting "dont show this again" added for this as well.


2004-08-24
Table View
- redraw fixed -very special case: If you're during editing a new row, and click 
 on last (empty) row, and your newly entered row has no data in its cells,
 (what ends up with cancelRowEdit()), cursor is now moved one line up.
- unknown, non-printable key events are not ignored now, but passed to superclass;
  this e.g. fixes blocking ESC key in dialogs
- fixed setting cursor on row removing
Kexi Properties, Property Editor
- icon added as optional property member
Form Designer
- Connection editor implementation cleaned a bit (bug #44)
Table Designer
- "autonumber" property is now visible
- icons added to propertybuffer
Form Module
- kexidbwidgets.so ported to win32

2004-08-23
Table Designer
- fixed code because of new column has been prepended
KexiDB
- KexiDB::Field::Type defaultTypeForGroup(KexiDB::Field::TypeGroup typeGroup)
  added and used in Table Designer.
- KexiDB::idForObjectName() convenience function added
Table View
- fixed methods for 'visible' flag in KexiTableViewColumn

2004-08-21
Table View
- Key_Left, Key_Right now by default behaves like Key_BackTab, Key_Tab
- KexiTableViewData::deleteRows(): refresh is requested only 
  if at least one row has been removed. This also magically fixed 
  a bug with missing vheaders in the Query Designer :)
Main Window
- opening object: if object is already opened but in other view, 
  its activated and switchToViewMode() is simply called. 
  This fixes switching GUIClient for "design" action called from the Navigator.
- Kexi::ViewMode is repaced with int type in most places 
  to ease future extensibility.

2004-08-20
KexiDB, Table View
- Kexi now supports and shows autonumber (sequences) column, see
  http://www.iidea.pl/~js/kexi/shots/beta5/unicode_chars_and_autonumber.png
Table View
- autoincremented field can be omitted (left as null or empty)
  if we're inserting a new row
- fixed displaying "autonumber" cell on row inserting
- row editing is accepted on sorting
- on failed sorting, sort indicator is reverted
- Key_Tab, Key_BackTab work again; 
  skipping to next/previous row added
- when the user doubleclicks on the edge (handle) 
   of horizontal header's section, column's width 
   is adjusted to widest cell size
Table Designer
- before switching to design view, row editing is accepted 
Main
- PropertyEditor/FontSize setting is now stored

2004-08-19
KexiDB
- DriverPrivate added to avoid binary incompatibilities
- driver (QCString keys, QVariant values) properties added
  (some prdefined properties added as well)
Table View
- optimizations in KexiTableViewData::saveRow()
New API Tests
- "dr_prop" test added
SQLITE Driver
- Kexi file driver now supports UTF8 storage for text fields
Shared Actions
- data_sort_az, data_sort_za, data_filter actions are now shared & volatile,
 KexiTableView and KexiDataTable now use these

2004-08-17..18
Core
- added KexiViewBase::setAvailable() overload. This one and sharedAction()
  now call parent's method, when needed.
- Shared actions: some fixes for plugging/unplugging
KexiBrowser
- "rename" action is now shared as "edit_edititem" action
KexiTableView
- "start edit" action (for F2/Enter key) is now shared 
  as "edit_edititem" action
- KexiKIconTableEdit introduced: Cell editor for displaying kde icon 
  (using icon name provided as string).
- TableViewHeader (inherits QHeader) introduced: supports tooltips 
  when needed (for column description of if column is not wide enough)
KexiTableView ComboBox
- QStyle primitives are better used for drawing combo button
- button is depressed after popup hidding
Table Designer
- "tablepart_toggle_pkey" shared action added for design view
- "Not empty" field's property is now called "Allow Zero Size" 
  (and has opposite meaning)
- 1st column with "key" icon (for pkey) added (using KexiKIconTableEdit)
KexiDB
- QString Field::subType() added
- QuerySchema::autoIncrementFields() fixed (caused crash sometimes)

2004-08-06
Table Designer
- some rules added: e.g. setting 'indexed' property to false clears 'primaryKey';
  setting 'primaryKey' to true sets 'indexed', 'unique', etc. to true
Core
- KexiProperty, KexiPropertyBuffer: some operators added, operator [QCString] now
  returns KexiProperty, convenient operator = (QVariant) added; KexiProperty::null added
TODO: KexiProperty: add support for positive integers, "Auto" values e.g. for integer ==0
 like defined in QSpinBox. Reuse this in PropIntSpinBox.

2004-08-05
PropertyEditor
- Bool Editor: toggle button has now without ugly focus (space key still works)
- KexiPropertySubEditor:setWidget() focus proxy is set only if the widget has 
  non-zero focus policy.
- [+][-] branch box is better positioned; treeStepSize is now narrower
- font size is decreased to a reasonable minimum
Core
- generateIconSetWithStar() not used, static icons added insted (icon cache was confused)
MainWindow
- right dock width is now stored in config file

2004-08-04
MySQL Driver
- introduced again! thanks to Martin Ellis
CC_MAIL: m.a.ellis@ncl.ac.uk
KexiDB
- alterTable() added (now only drops and recreates table)
- createTable() 'zombie' rows from 'kexi__fields' table is removed for safety 
- Connection::storeObjectSchemaData() identifier is not obtained if 
  it's already provided
- DriverManagerInternal::aboutDelete() added: called from Driver dtor
  (because sometimes KLibrary is destroyed before DriverManagerInternal)
- DriverBehaviour::ROW_ID_FIELD_RETURNS_LAST_AUTOINCREMENTED_VALUE added
	 True if the value (fetched from field (or function) 
	 defined by ROW_ID_FIELD_NAME member) is EXACTLY the value if autoincremented field,
	 not just an implicit (internal) row number. Default value is false.
	 --used in Connection::lastInsertedAutoIncValue()
Table Designer
- saving changes to tables works now (data is just dropped, though);
  user is warned about this, when needed
- DataTable view is updated after saving table's design
- temporary data added; KexiAlterTable_DataView implemented
  (this fixes lack of updating datatable view after schema changes)

2004-07-28..2004-08-03
KexiDB
- ProjectDB FORMAT CHANGED (remains backward compatible):
- kexi__query* tables removed (to complicated, not needed since we 
  are primarily using kexi__objectdata and xml)
- Driver::IgnoreTransactions flag added: transactions are silently bypassed,
  (temporary, useful for current mysql driver implementation)
- Query Schema: QueryFieldInfo introduced:
  "select a as one, a as two from table" is now possible
  (two different aliases for the same field); 
  this also maintains field visibility.
- Most needed expression classes added (BaseExpr-derived)
- most debugs removed
- more debugString() methods added for few classes
- FieldList: removeField(), insertField() (at position) implemented
	addField() now uses insertField()
KexiDB/parser
- 'bison -dv' used instead of yacc
- single-char tokens are now used as chars: symbols are dropped for better 
	code readability
- more safe and readable code: $$ is now used instead of changing global variables
- realType added
- loadDataBlock(), storeDataBlock(), removeDataBlock() moved to Connection class
- Connection::querySchema() methods now use parser
- Connection::createTable() now also allows table replacing
- Connection::storeObjectSchemaData() now reuses schema's id if > 0
NEWAPI Test
- now KCmdLineOptions are used, see README
- "parser" test added
KexiTableView
- KexiTableViewPropertyBuffer: a fix for maintaining `dirty' flag
- updates for QueryFieldInfo
- compiler warnings removed
Core, Widget, Plugins
- updates for QueryFieldInfo
- compiler warnings removed

2004-07-24
Form Designer
- added icons for ajust/align icons

2004-07-23
Core
- KexiViewBase::removeDataBlock() and KexiDialogBase::removeDataBlock() added.
- more error messages added
Main
- Startup dialog re-enabled
KexiDB
- Utils: most smaller functions are now inline
- optimizations:
  * Connection::querySingleRecord(), querySingleString():
    " LIMIT 1" is added to the statement
  * Connection::resultExists(): "SELECT 1 FROM (<statement>) LIMIT 1" 
     statement is executed
  * Connection::resultCount() added: "SELECT COUNT() FROM (<statement>)" 
     statement is executed
- Cursor::open(): sets error message when needed
Query Designer
- KexiQueryView: shows error on failed execution

2004-07-22
Main
- Kexi Browser: "create new" action added to browser's mini-toolbar;
  icons for particular "create" actions are generated in a funny way
- "project_new" and "project_open" actions removed from the main toolbar

2004-07-20..21
Kexi Browser
- "rename object" action added (inline editor uses IdentifierValidator)
- popup menu for group nodes now have a title
Core
- KexiProject, KexiPart supports object renaming
- KexiProject::removeObject() and KexiProject::renameObject() 
  now operate within transaction.
- KexiProject: more error mesages added.
KexiDB
- Connection::drv_executeSQL() is now protected. Connection::executeSQL() public
  method added which remembers last executed sql statement for better error handling.
Main
- KexiBrowser: After item's successful rename, it's resorted, 
  and if it's dialog is opened, it's caption is updated as well.

2004-07-19
Kexi
- We've now --final-mode and --design-mode CL-options for completness.
KexiCore, KexiMain
- KexiStartupHandler introduced: handles startup actions, that 
 are new performed independently from Main Window's stuff. 
 We're now prepared to having 'startup mode' 
 database's property, which can be overriden by --final-* CL-options.
Form Designer
- A small fix to reduce widget flickering on resizing: 
  when we're dragging left, top-left or top
  handle, both size and position of widget changes. We're now hiding 
  the widget and showing it again after transformation.

2004-07-16
Form Designer
- some strings fixed

===================== Kexi 0.1 Beta 4 "FireDuck" =====================

2004-07-15
Forms
- form's initial sizeHint is now hardcoded to (400,300), will be fixed later
Query Designer
- saving existing queries work in SQL View
Core
- after successful storeData() or storeNewData(): 'dirty' flag is cleared 
  for _every_ dialog's view

2004-07-14
Kexi
- polish translation updated (also for KFormDesigner)
Core
- "current mode" member is now reverted if afterSwitchFrom() failed
- removed one (I hope unnecessary?) shared-action invalidation
- storeNewData() and storeData() new have 'bool &cancel' parameter
Query Designer
- storing and mode switching fixed
- KexiQueryDesignerSQLView::storeNewData():
    we won't store query layout: it is recreated 'by hand' in GUI Query Editor
Table Designer
- temporary behaviour: altering data is cancelled
- fixed switching between Data and Design view

2004-07-12..13
KexiDB
- Connection: selectStatement(): "SELECT FROM ..." queries (ie. without columns) 
  are allowed (needed for desiger); omitting "FROM" allowed
KexiDB/Parser
- "SELECT FROM " rule added
Core
- KexiPart::Part::openInstance(): now virtual KexiDialogBase::loadSchemaData() is called
 what allows to reimplement stored schema data loading (reimpelemnted for queries)
- KexiDialogBase::dirty() now is true if any view is dirty
KexiTableView
- If ensureCellVisible() is called before table view is visible, it's (col,row) arguments are
 stored and ensureCellVisible() is called just after show event. This fixes invalid scrolling.
Query editor, Table Editor
- storage/ loading/ view switching/ dirty flag updating - improved

2004-07-10
TableView
- "edit_delete" action is disabled for read-only tables

2004-07-09
KexiDB
- It's possible to define relationships for QuerySchema 
  (with Relationship objects)
- Connection: optimization: QString::reserve() used 
   before generationg SQL statements
- Connection::selectStatement() now generates joining rules 
  (i.e. relationships using WHERE)
Query Designer
- joins defined by GUI are now visible in SQL View

2004-07-08
Query Designer
- switching between design modes improved
- on generating sql from GUI: "*" added if no fields are picked
KexiMainWindow
- neverending-story: actions availability updating fixed
TableView
- KexiTableViewPropertyBuffer: all buffers are cleared when view's 
   data is cleared (using clear())
Relation Widget
- view clearing supported
Core
- KexiViewBase: 'dirty' flag is now better signaled to a dialog
KexiDB/SQL Parser
- lexer: USER_DEFINED_NAME now accepts also [0-9] (after 1st char)
- optional ';' is allowed at the end of top level statement
- dummy table is removed from query after parsing

2004-07-07
Core
- KexiDialogBase: Never Ending Story: Shared actions are invalidated on activate()
- ObjectStatus general purpose class introduced. KexiDialogBase now uses this 
  to indicate errors.
- KexiPart::Part: if newly opened dialog (KexiDialogBase) cannot display 1st view, it's closed 
 (via close()) and error message is set up
- KexiPart, KexiProject: 
  const Kexi::ObjectStatus& lastOperationStatus() added for not-kexidb errors
KexiMainWindow
- formpart is now available by default; menu for switching it off is hidden
- more errors taken from KexiProject are friendly displayed :)
Query GUI Editor
- saved layout (etc.) is loaded in afterSwitchFrom() for mode==Kexi::NoViewMode, 
  instead of doing it in the ctor
SQL View
- switching to other views improved: msgbox is displayed for invalid sql texts
- Intelligence Built In: we're doing our best to avoid regenerate the same 
query from almost unchanged sql text

2004-07-02..05
XMLGUI
- Tools menu added
- undo/redo global actions added
- tolbar setup consistent with ui_standards.rc and incoming katepart
Main Window
- hack: `window' menu moved right before settings menu
Widgets
- KexiSectionHeader: adding buttons connected to actions allowed on the right hand
- Relation View: saved table widgets' geometries are better setup on loading 
  (fix for differences between font sizes on differens computers)
- SQL Editor: better integration with katepart's actions using new shared action's API
Core
- KexiDialogBase now has activate(), deactivate() handlers, 
  KexiViewBase::updateActions(bool activated) is called for a current view
- Workaround found for integrating katepart's actions with Kexi's shared actions:
   - katepart KXMLGUIClient's KActions are now pluggable to KexiActionProxy
   - KXMLGUIClient's KAction::enabled(bool) signals are now automatically mapped 
      to KexiActionProxy::setAvailable(bool)
<TODO>: introduce KexiSharedXMLGUIClient class: 
  ctor: KexiSharedXMLGUIClient(KexiSharedActionHost *host, KXMLGUIClient *client).
  A single instance is created for particular xml file (eg. katepartui.rc) and inserted
  int KexiMainWindow's internal dictionary. This GUI client will be attached when needed 
  (ie. when given KexiViewBase object that is activated asks for this) and detached 
  when not needed. 
  showOnlyActions(QCStringList) - declares custom action list that will only be available
  In any time, no KActions will be created if these already are available globally 
  within KexiMainWindow.
</TODO>
SQL View
- history behaviour reverted to previous
- added "clear history" and "select this query text" buttons in KexiSectionHeader
- added popup menu with above actions

2004-07-01
SQL View
- kate part now better integrates its actions with kexi menus/toolbars
TODO fix it: actions, shortcuts
- 'Tools' menu added, 'Window' menu is now repositioned before 'settings' menu

2004-06-30
SQL View
- fully implemented history/status mode switching
- both modes work with "check SQL" action
Core
- KexiViewBase::updateActions() virt. method added for convenience

2004-06-28
KexiCore
- KexiViewBase now knows own view mode
SQL Parser, SQL View
- fixed error handling (syntax error is only set when no detailed error is known)
- on error: fixed jumping to proper character (even where are more lines and tabulators)
- status label's height is properly increased, when needed
- jumping to proper character impelmented also for QT_ONLY_SQL_EDITOR
- fixed crash for parsing empty SQL string
Main Window
- removed redundant MDI Mode option from View menu
Core
- some docs added
- KexiSharedActionHost::createSharedAction() : subclassName arg added

2004-06-25
KexiCore
- fixed switching for other mode 
  (formpart behaviour was really weird because of that)

2004-06-24
KexiCore
- Some doxygen docs added.
- Fixed activeView() when we're just switched to other view in KexiDialogBase
Widgets
- SQL Editor: now properly emits signal about text changes.
- SQL Editor: now has QT_ONLY_SQL_EDITOR compile-time option (both modes works on win32)
Utils
- Kexi::setWaitCursor(), Kexi::removeWaitCursor() -for delayed cursors added (eg. user on view opening)
KexiMain
- --edittext [<object_type>:]<object_name> C.L. option added:
  like --open, but the object will\nbe opened in Text Mode
KexiDB
- Parser::query() public function added; select() is now internal
SQL Editor
- CTRL+Return shortcut; added information what to do to validate query text

2004-06-23
KexiCore
- Fixed focusing previously selected dialog after Kexi main window's activation
- KatePart is working on win32 as well

2004-06-21
KexiActionProxy
- activateSharedAction(), isAvailable() now have alsoCheckInChildren arg.
KexiDialogBase
- actions availability is invalidated on view switching
KexiPart::Part
- proper integration with SharedActionHost
- actions creating simplified with Part::createSharedAction()
- finally: initPartActions() and initInstanceActions() 
   replaced with single call of initActions(). 
   createSharedPartAction() and createSharedAction() added
Parts
- all parts code updated for API changes

2004-06-19
KexiTableView
- added checks if column is >=0 (this avoid crashes)
FormDesigner
- TabStopDialog: 
  * was badly implemented: exec() in ctor. exec() moved from ctor to 
    TabStopDialog::exec(Form*) method
  * fixed crash: QVBoxLayout was added twice! 1st via ctor, 2nd view QLayout::addLayout()
    --removed 1st
Query Designer
- kexiquerypartinstui.rc added and some actions
Core
- sql parser is now allocated in KexiProject
KexiDB
- docs greatly improved, thx Martin!
- UNSIGNED INT -> INT UNSIGNED

2004-06-18
Query Designer
- SQL Editor: added KexiSectionHeader
- KexiQueryDesignerSQLView -> KexiQueryDesignerSQL
- KexiQueryDesignerSQLEditor: now inherits KexiViewBase
- Double clicking on table's field in Relation View allows to auto-add this field
- KexiQueryDocument no longer used, similar KexiQueryPart::TempData is used
- switching to SQL View working again
- added warning when switching to dataview with empty design
KexiTableView
- Editor's focus position is updated (moved down) 
  when new row is inserted above current row
KexiDialogBase
- returning without failure when KexiViewBase::beforeSwitchTo() 
  returned cancel==true and success==false

2004-06-17
KexiTableView
- Combobox's button is now in "toggle" mode; popping up is now better hidden/shown
KexiViewBase
- storeNewData(), storeDataBlock() simplified; parts code updated for this change
Query Designer
- relations widget: geometries for tables and connection lines are now stored
- 'dirty' flag better updated


2004-06-15
2004-06-16
TableView, Alter Table
- Table Cell Editor's Focus is cleared on slotRefreshRequested()
- fixed columns recreating on data resetting for a table
TableView
- fixed inserting row (empty or dropped)
- dropping indicator line is now painted with XOR mode
- more intuitive dragging and dropping rows: dropping on bottom 1/3 row's area means 
  dropping below this row
- dropping after the last row is now possible
- KexiTableViewData and KexiTableViewPropertyBuffer now supports multiple 
  rows deletion with cost O(n). KexiTableView is updated properly for this action.
Alter Table
- afted hiding table, rows (and prop. buffers) that are connected with it are deleted

2004-06-14
Core/Parts
- For all parts: Instance GUI Clients are now splitted for per-view 
  GUI clients (switched on view switching) and common GUI client 
  (not switched within given dialog).

2004-06-10
2004-06-12
KFormDesigner
- rectangle on widget inserting, resize handles and grid's dots:
   are now painted in white XORed color on top of all other widgets
- fixed widget raising to top on clicking: also container members 
   are raised (eg. for tab widget)
- more guarded ptrs added; fixed crash on ObjectTree destruction
- selection rectangle is drawn unclipped now, on top of all widgets

2004-06-09
KexiTableViewPropertyBuffer:
- slots' connections fixed
KFormDesigner, Kexi Forms
- "pointer" action: better icon added (from Karbon); action moved to "widgets" toolbar/menu
- all "widgets" actions and "pointer" action are mutually exclusive


2004-05-15
KexiDB:
- fixed bug: Connection::resultExists() now properly closes temp. cursor

===================== Kexi 0.1 Beta 3 "United Europe" =====================

2004-05-08
Form Designer: Extra widgets
- fixes for kde3.1 compatibility
- implicit deleting is cleaner than explicit

2004-05-06
Main Window
- Messages are displayed on failed switching to othe view.
Lucijan's stuff
- Compile fixes, will be backported

2004-05-03
Kexi Main Window
- Dialog dictionary is properly cleared on project close (fixed possible crash)
- Not stored dialogs are properly removed from a dictionary
Kexi Startup
- fixed possible crash due to deleting not owned connection data, deep copy is now performed

2004-05-01
KexiDB
- QuerySchema: 'visible' field's property is now assigned to possition, not to field pointer,
   because the same field can be added more than one time to a query
- Connection::selectStatement(): only visible fields are shown
Query Designer
- executing (switching to data view mode) is working again!

2004-04-30
TableView:
- dropdown button position properly updated when scrollview's x-offset is non-0
Kexi Forms
- toolbar moved from 'part-wide' area to 'part-instance' area
Reationships/Query Editor
- master/detail sides of the realtionship are swapped when correction is needed
KexiViewBase
- added possibility of disable data storing on view switching; for some cases

[INFOSYSTEM 2004]

~~~~~~~~~~~~~~~~ beta3 pre2 ~~~~~~~~~~~~~~~~

2004-04-16
Kexi Core
- introduced KexiDialogTempData
TODO: make KexiQueryDocument inherit KexiDialogTempData
- added 'Settings->Other->Enable Forms' menu switch (off by default)
Global
- version: beta3 pre2
- updated readme_en
- Kexi backported to KDE3.1 and Qt3.1.1
KexiDB
- setting length is only available for Text fields
Kexi Alter Table
- 'length' property is set to 0 on changing type from Text to any other, and set to default (200)
   otherwise

2004-04-15
Kexi Main
- KexiNameWidget, KexiNameDialog: caption is now not required; geometry fixed
- Ugly bug fixed: active window sometimes changed to 
   other on menu clicking or leaving dialog's focus (because KexiTableView had NoFocus policy)

2004-04-14..15
Table Views
- insertEmptyRow() improved
- KexiTableViewPropertyBuffer introduced
- cell editors that have no editor widgets: current internal value is now displayed
- KexiDataTableView: fixed columns double initializing
Cell Editors
- Boolean cells are now treated as other types: validation and edit buffering works
- Boolean cell editor moved to separate KexiBoolTableEdit class
- Enter key also toggles boolean editor's value
- clickedOnContents() added -allows to toggle value without using 
   editor widget (used in boolean cells)
- hasFocusableWidget() added -allows cell editors that have no editor widgets (e.g. boolean type)
Query Designer
- many functional improvements
- property editor is now used, like in Alter Table Dialog (with KexiTableViewPropertyBuffer)
KexiDB
- Connection::useDatabase(): fix for non-sqlite dbases:
   we're not checking for database inconsistencies when using temporary database.
- SQLite cursor: added decoding for boolean values
TODO: move this decoding somewhere to generic functions
- Connection::useDatabase() : kexiCompatible param. added to allow using native dbases

2004-04-13
Forms
- linkage fixes for win32
- some null-checks added
- widget deletion is now delayed (because of problems with qt/win32 events)
Table Views
- KexiTableView::maximizeColumnsWidth() added
Relations Editor
- Combo box is updated on table hidding
- popup menu titles added 
Query Designer
- columns' data is better updated

2004-04-06..08
KexiDB
	- Reference class renamed to Relationship, documentation improved
	- QuerySchema: added 'field visibility' flag
Table Views
	- added 'column visibility' flag, inherited from QuerySchema's 'field visibility'
	- many sanity checks added usable when data is destroyed
	- added possibility of disabling vertical scrollbar's tooltip
	- table can be refreshed if data model changed outside of this table
Combobox Table Columns
	- key-based related data in columns added as an option (still of Field::Enum type)
	- flickering removed when popping up for the first time
Query Designer
	- table of fields ('field' and 'table' columns) is updated a bit on table adding;
	  not finished though

2004-04-05
Kexi Alter Table
	- fixed possible crash when the view is initialized with no table schema specified 
	  (ie. for designing a new table)
	- a pointer to table schema is updated after creating a new table
	- compilter warnings removed
KexiDB
	- names and docs in Reference class improved
	- Connection: major versions of database and kexidb is are compared on useDatabase(): 
	  errors are presented if needed

2004-04-02
KexiDialogBase
	- beforeSwitchTo(int mode, bool &cancelled) is called also on newly created view

2004-03-29..2004-04-01
Kexi Query Designer Editor
	- KexiSectionHeader class introduced
	- section's size hind fixed
Relations widget
	- asterisks added to table boxes
	- asterisks are not drag&drop enabled
	- hiding tables implemented (connections are removable as well)
Table View
	- Temporary FIX: BLOB editors are disabled 
	 (in KexiBlobEditorFactoryItem::createEditor()) because of unstability.
TODO: reenable this
	- setData(): when the same data object is passed, tableview is just refreshed
	- setDropsAtRowEnabled() added; row-droping-indicator implemented
	- KexiTableView::editor(): only if ignoreMissingEditor is false (the default),
	 and editor cannot be instantiated, current row editing (if present) is cancelled.
	 Thus: Now it's possible to edit data for tables where there are cells 
	 that have no valid editors (yet?), such as BLOB now.
	- paintCell(): if there is no editor defined, just a focus box is displayed,
	  filled with additional grayed diagonal pattern
Table View Editors
	- clicking on date table popup selects current date
	- QScrollView is passed on editors creation instead of QWidget
	- QScrollView::moveChild() is used for moving external widgets, instead of QWidget::move()
	- fixed uninitialized leftMargin value for FP-Number editor (on win32)
Alter Table Dialog
	- Temporary: 'defaultValue' property hidden- we'll show this after we 
	  get properly working editor for QVariant
Kexi
	- Welcome screen now uses html 'welcome_<locale>' fiels.
	  These are Temporary! Do Not Translate!
Kexi Core
	- KexiPartManager is now KexiDB::Object-derived; error texts are set now
	- Action Proxies: child focus is better handled 
	- KexiViewBase: focus change tracking and actions updating improved

2004-03-27
Form Editor
	- buggy deleting fixed: ResizeHandleSet::Dict defined, we're using that instead 
	  of not-fully-defined QDict<ResizeHandleSet>
Kexi
	- added 'Welcome' screen with hot informations for our users

~~~~~~~~~~~~~~~~ beta3 pre1 ~~~~~~~~~~~~~~~~

2004-03-26
	- pl translate updated
	- some I18N_NOOP turned to i18n
	- fixed crash on Relationships window closing due to lack of Part Item
KexiTableView
	- "dontAskBeforeDeleteRow" config key is better
	- after removing a row, all rows below are updated
	- repaint of bottom few pixels (empty) area fixed when scrolling and resizing
Kexi
	- "-new <object_type>" CLI option added: "Start new object design of type <object_type>"
	   (also convenient for everyday tests)
Main Window
	- MDI mode is now stored and restored
	- fixed problems with property dock window when using IDEAl mode
KMDI
	- Fixed memory leak & crash: 
	  Tab/IDEAl mode: mdiview was never destroyed but just moved out of the tab widget
	- KMdiChildFrm: Mouse button press filtering is checked against every client's child, 
	  not just client
TODO: backport this to qextmdi???


2004-03-25
KexiTableView
	- adjustColumnWidthToContents(-1) now mean that all columns' width is adjusted
	- after calling adjustColumnWidthToContents(), editor width is updated, if needed
	- setSpreadsheetMode() added
KexiQueryDesignerGuiEditor
	- spreadsheet-like mode set
	- more columns added: totals & sum

2004-03-24
Main Window
	- Wrong behaviour fixed:
	 after switching to other MDI mode, pointer to current dialog needs to be updated
	 (property editor was empty)
	- previous 'view mode' toggle action is checked back properly after cancelled switch
Table View
	- fixed editing initializing with 'removeOld' mode
Alter Table Dialog
	- Temporary workaround:
	 if data is dirty and table schema was saved before --user is asked 
	 for discarding changes.
	- switching to Data Mode is cancelled if current design is empty (never saved and !dirty)
KexiDialogBase
	- switchToViewMode() has now option for cancelling switching 
	 (if user is able to cancel in any case)
	- switchToViewMode() calls saveObject() on main window before switching, if needed
	- KexiViewBase::afterSwitchFrom() and beforeSwitchTo() have now bool &cancelled
		 parameter that allows to gently cancel switching 
		 (probably after showing some info messages)

2004-03-23
2004-03-24
Core, Main Window
	- Volatile Actions introduced
	- Menu updating and focusing fixed
Kexi TableView, Kexi Table Data
	- Empty row inserting implemented
Kexi Alter Table
	- Empty row inserting action added

2004-03-22
Main Window
	- when toggling to other view mode (using radio action) failed, action for 
	  previous mode is toggled back.

2004-03-19
2004-03-20
KEXIDB:
	<KEXIDB FORMAT CHANGED TO 1.2>
	- 'kexi__objectdata' table introduced: contains object's data, such as form's xml def
		SCHEMA: table kexi__objectdata
			o_id integer REFERENCES kexi__objects(o_id),
			o_data BLOB,
			o_sub_id varchar(200)
	</KEXIDB FORMAT CHANGED TO 1.2>

	- Field::typeForString(typeString) Field::typeGroupForString(typeGroupString) added
	- Connection::querySingleString() and Connection::resultExists() added
	- KexiDB::sqlWhere() utility function added
Alter Table Dialog
	- Saving field types FIXED
CORE:
	- KexiDialogBase::storeDataBlock() added
Table View
	- fixed row's painting for empty table that have only row "for inserting"
	- vertical record marker: fixed painting during inserting 1st row
	- function for inserting an empty row above the cursor added (not finished yet)
CORE:
	- Shared Actions: unplugSharedAction(action_name, widget) added
Main window:
	- "Insert empty row" shared action added
	- Shared actions are updated on switching between dialog view modes

2004-03-17
	-KexiProperty: fix for fix :) changes from null string to "" string (or vice-versa) are ignored
	-Kexi Property editor receives signal KexiPropertyBuffer::propertyReset()
	 (called from KexiProperty::resetValue()) so property is property visually reseted 
	 even on calling resetValue() either by clicking "reset" button or by hand.

2004-03-13
	-KexiProperty: changes from null string to "" string (or vice-versa) are ignored

2004-03-12
Table View
	-Combo box editor: cursorAtEnd() and cursorAtStart() are just used 
	 from KexiInputTableEdit
	-Some debug disabled
	-setColumnWidth() added
Alter Table Dialog
	-now KexiDataTable is inherited instead of using KexiTableView internally.
	 Thus we have actions like 'row deleting' available.
	-on table schema saving: checking for duplicated field names is now case insensitive
	-convenient width set for 'type' column
Kexi Data Table widget
	-Added ctor for not-db-aware version; docs updated
Kexi Core
	-string2identifier(): fixed bug for strings started from not alphanumeric char
	-New validator added: KexiDBObjectNameValidator for checking 
	 for 'kexi__' name violations
	-KexiMultiValidator added
Main Window
	-KexiNameWidget now uses multivalidator, so it's easy to add additional validations
	-above is used with KexiDBObjectNameValidator to check for violating 'kexidb__' names
KexiDB
	-Driver::isKexiDBSystemObjectName() static function added; isSystemObjectName() 
	 uses this now by default

2004-03-11
Main Window
	-fix: object's name and caption entered by user is used to create this object
	-brand new objects have changed part item id --this is updated in main window's
	  structs as well
	-in removeObject(): if object's dialog is opened -it's quietly closed before removing
	-added check/hack to avoid inf. recursion between removeObject() and closeDialog()
	-crash fixed: on dialog closing, it's properly removed from dictionary.
Kexi Dialogs
	-'neverSaved' flag is cleared on first successful saving
	-active view is 0 on its parent dialog destruction
	-Dialog's docID is not just id, and inherits part item's (KexiPart::Item) identifier
Alter Table Dialog
	-'name' and 'description' properties are updated on change
	-on table schema saving, user is warned about: 1) duplicated field names
	  2) not added fields at all; 3) fields without names
Table View:
	-'removeOld' flag is passed from TV to initializer, so given editor's implementation 
	 can decide what to do

2004-03-10
Table View
	-Combo box editor: after new row selecting (not hightlighting) editing is accepted
	-setFilteringEnabled() added
KexiDB::Field
	-forgotten: Byte is numeric type, of course
Alter Table Dialog
	-anyway, subtype property is always created (may be needed later)
	-subtype is properly opdated on type (group) changing
Properties
	-fixed possible crash
	-KexiProperty: now it's possible to change a list of values (in case 
	 of property of type 'list')
KexiViewBase
	-propertyBufferReloaded() added -called whenever current 
	 property buffer is changed that few properties are now visible 
	 and/or few other are invisible
	
2004-03-09
Main Window : some top level polishing
	-most tooltips/what's this  added for actions
	-'save' action now works int the current dialog context
	-message about more not impelmented features added
	-proper quitting and project closing
	-KMainWindow::queryExit() and queryClose() impelmented instad of closeEvent()
	-"Create" menu is disabled when no project is loaded
	-On last dialog closing, guiclient is removed (so dead toolbar are hidden now)
	-Main Window: dock windows are disabled on project closing, for sanity
	-some fixes for mime data (QString -> QCString)
	-part manager's part lookup can be called only once now 
	  (refreshing will be impl. one day)
	-dock windows (navigator and propeditor) are properly handled on closing/reopening projects
	-opening project after closing fixed
	-caption is updated on dialog data saving; after saving brand new data, 
	 item is added to the navigator
Property Editor
	-fixed crash on changing invisible properties
Alter Table Dialog
	-creating new tables works partially

2004-03-08
Table View
	-'acceptsRowEditAfterCellAccepting' flag added
Main Window
	-closeDialog(), saveObject(), closeProject() methods have now 'cancelled'
	 parameter, so they can tell you if user just cancelled operation or there was 
	 rather a real error.
	-Duplicate names are checked on new object saving; user is prompted for unique name.
	-On dialog closing: 'Dirty' flag is cleared when user discards dialog saving
KexiDB::Field
	-Connection::findObjectSchemaData() added for looking for objects by type and name
	-INDEXED flag added to KexiDB::Field (now you can declare field to be indexed 
	 even without any constraint)
	-More implied rules added for methods like setPrimaryKey()
	-More docs added
Alter Table Dialog
	-most missing field properties are now visible in property editor
	-Creating new table: table schema is (almost) created using current buffers' state

2004-03-06
2004-03-05
KexiDB
	-'helpText' for SchemaData and Field members renamed to 'description'
	-KEXIDB METADATA FORMAT CHANGED (to 1.1): 
	  helpText renamed to description in kexi__objects table
	-Connection::storeObjectSchemaData() added -can be reused mostly for object storage 
Core
	-string2Identifier(): now created identifier is forced to lowercase
Kexi Parts
	-part item's and part info's 'mime' is now of QCString type
	-structures like items dicts are now case insensitive QAsciiDict
Kexi Dialogs
	-storeData() and storeNewData() methods added
	-currently used KexiDB::SchemaData object is pointed by KexiDialogBase 
	 (useful for data saving)
Kexi Views
	-storeData() and storeNewData() methods added; called by parent dialog
Kexi Project
	-now keeps a list of never-stored part items (on 1st saving, a given 
	 item is moved to a list of regular part items)
	-createObject() -generic method for initiating object creation on the backend; 
	 updates item's data when necessary, etc.
Kexi Properties
	-QCString is used for property name instead of QString
	-structure like properties dict (in the buffer) is now case insensitive QAsciiDict
KexiMainWindow
	-saveObject() added, KexiNameDialog is used for prompting for object name and caption
	-user is asked for object saving on dialog closing (and thus on app closing as well)
Kexi Alter Table
	-storeNewObject() and storeObject() implementation started
Main
	-KexiNameWidget and KexiNameDialog utility classes 
	 (for entering both names and caption names) implemented

2004-03-04
Main Window
	-Both on window close and application close: User is prompted for saving 
	 unsaved data for each "dirty" dialog. Pressing "Cancel" 
	 -cancels application closing.
	-only stored objects are added to the Navigator
	-few methods move to protected
	-graphical notification about 'dirty'==unsaved data ("*" sign at the right hand) 
	 added to the names on captions, taskbar and navigator
	-API for saving kexi dialog's data added, plugged to the main window
Kexi Dialogs
	-currently not only dialog is activated when focus come to any of its children,
	 but also when any children is clicked.
	-KexiViews have now 'dirty' flag and parent KexiDialog reuses that

2004-03-03
2004-03-02
Kexi Dialog / View 
	-fixed internal view's focusing: on click on a view, dialog is activated
	-focus cell is now grayed for disabled table views, not for unfocused
KexiDB
	-"kexi__parts" table is now filled with default (required) parts info
	  automatically in Connection::createDatabase(), not somewhere outside
TODO: add version info?
Main Window
	-Part type name removed MDI Taskbar buttons' captions, to save some space
	-User is now asked for saving object data on dialog closing (if it's dirty)
	-Not stored objects are removed from memory and gui completely, 
	 if user won't let to save them
	-Not stored objects (part instances) have now identifiers < than -1
Kexi Views/Dialogs
	-"dirty" and "neverSaved" flags added
Parts / Kexi Project
	-so-called "unstoredItems" introduced, so they can initially exist in memory only 
	 and user may want to give up, not saving them
Table View
	-Fixed focus-stealing from editor problem

2004-02-27
Kexi Property Editor, Kexi Property Framework
	-propertyChanged() signal is received from assigned property buffer, 
	 and values are visually updated (including children)
	-changeProperty() code (for checking for changes)
	 moved from buffer to property setValue to avoid mistakes in class usage
	-property editor class now has a dict of all items, based on its names
	-each KexiProperty now has a pointer to its buffer, ans uses it to emit 
	 signals on value changes
	-fixed crash on moveEditor() when called from ctor
	-KexiPropertyEditor is safely updated right before PropertyBuffer destroying
Kexi Validator
	-allows to define whether empty values are ok or not
Alter Table Dialog:
	-'name' and 'type' columns can be empty now (that just means the row is empty)
	-buffer and 'type' column is cleared when 'name' column is cleared
	-row deleting works (buffer is destroyed as well)
Table View's Data
	-aboutToDeleteRow() signal is emited before row deleting and rowDeleted() -after
Table View
	-contents size is updated after row deleting
	

2004-02-26
Kexi Property Editor
	-leaveTheSpaceForRevertButton introduced for subeditor class.
	 This removes confucion when user clicks on a spinbox arrow and it suddenly
	 moves left.
	-parent item is updated on children updates
	-editor position is updated when user collapses or expands a property node
	-resetting composed property value also resets all children
Kexi Property Framework
	-testiong for property change: for date and datetime types we're now comparing 
	 values using strings, because there can be miliseconds difference in a time;
	 strings comparison fixed for null strings
	-resetValue() added to KexiProperty for convenience
	-for composed properties (like Rect):
	  * changing property child updates parent value
	  * setting property unchanged (eg. on resetting) updates parent's 'changed' flag
	-QSizePolicy-type property helper improved
	-setValue() renamed to setChildValue() to remove messy overload

2004-02-24
Table View:
	-KexiTableViewData is now QObject-derived
	-signals like aboutToChangeCell() or rowChanged() moved from KexiTableView
	 to KexiTableViewData, so it'll be easier to reuse KexiTableViewData 
	 with a forms, and easier to share common data object between views.
	-It's now allowed to call acceptRowEdit() from inside of cell-accept handlers
		e.g.: KexiTableViewData::aboutToChangeCell() signal
	 (no infinite recursion is preformed but instead: the row is saved after
		cell's acception).
KexiDB:
	-ResultInfo introduced
	-getHTMLErrorMesage() utility method introduced
	-Cursor: now pointer to connection is guarded
	-Connection, Cursor: error status is cleared before performing update/delete/insert
	-Connection::recentSQLString() added (useful for debugging and on-screen 
		error messages
	-Connection: further error message fixes
Alter Table Dialog:
	-after 'name' field is entered, 'type' column as automatically filled
	-"newrow" property is added for each new buffer to indicate for later processing
	 that these buffers are for newly added fields
Properties are now indexed using case insensitive names.

2004-02-22
KexiDB:
-copy constructors added for classes: table schema, field list, index schema, field 
Alter Table Dialog:
-all changes are made to the deep copy of the table, not to the original

TODO: KEXIDB: copy constructors: also copy references of the index schema

2004-02-21
Main Window:
	-buffer in the property editor is properly cleared when current dialog is changed 
	 or there is no dialog
Table View:
	-clearSelection() and field(int) methods added
	-on row deleting: cursor is moved up only if we're deleted the last row 
		and row-inserting is not enabled
	-fixed selecting row after no row was selected
	-messagees are displayed on failed row updating/inserting
	-CONSTRAINTS: illegal null/empty fields are checked on updating/inserting
	(msg boxes are used if required)
	-the cursor is moved to faulty cell's value on record update/insert error
Combo box editor:
	-selection on the popup table view is cleared then no test is entered
	-up/down/left/right key presing leaves the lineedit if there is no 
		line selected on the popup table
	-improved editing convenience
KexiDB:
	-isEmptyValue() generic function added for checking if a value of QVariant 
	is empty but not null
Alter Table Dialog:
	-"data type" column declared as NOT EMPTY


2004-02-20
KexiDB::Field:
-setNonEmpty() fixed
-NOT EMPTY constraint is now implied by PRIMARY KEY constraint
Table View:
-on a table cell edit accepting: violating of the following:
--NOT NULL or NOT EMPTY constraints
--validation rules (using attached KexiValidator)
 so LATER this may be also used for forms
--from-editor value getting errors (d->pEditor->value())
..is now signaled using message box
Alter Table Dialog:
-"field name" field acts like a primary key

2004-02-19
KFormEditor lib: 
-ported to win32
-some sanity checks added

2004-02-18
KexiPropertyEditor: 
-font editor item: description text moved to kexiproperty::format(); added weight & italic info
-new method of column sorting: instead ascending - default order,
 instead descending - alpha order
- "revert to original value" button is automatically shown when property value is changed 
 and becames hidden when the value is reverted to original value
KexiTableView: added new signals: 
-for checking validity of curent cell, before changing
-for checking validity of curent row, before updating
-for checking validity of a new row, before inserting
In a case when checking for validity failed, row edititing/inserting 
(or cell updating) is cancelled --> editor is not removed
- KexiPropertyBuffer: clear() reimplemented for proper clearing the data
- KexiValidator class introduced
KexiTableView: 
-acceptEditor() returns bool, so now it's checked if we can proceed with cursor moving, etc.
-KexiValidator is used to check whether cell editing should be accepted or not.
Alter Table Dialog:
-hidden "name" property added, ident. validator is now used
-added KexiDB::RowEditBuffer* argument to aboutToUpdate and aboutToInsert signals

2004-02-17
- KexiDB::typeStringsForGroup() ustility function added
- KexiDB::Field: array of field type names fixed
Kexi Property Framework improved:
- properties can be nested, e.g. for Rect type there are automatically 
   created two properties: x and y
- pointer to a parent property is kept, if present
- all data is stored in KexiProperty and KexiPropertyBuffer, not just in GUI objects
- editoritem text for composed values (like Rectangle) now displayed properly
- reverting to default works properly for properties of type 'list' 
- By default, sorting is disabled (properties are in order of insert time)
- KexiPropertyEditor: fixed value changes for prop. children

2004-02-12
- typeName() added to KexiPropertyBuffer
- typeString(), typeGroupString() added to KexiDB::Field
- KexiDB Utils: typeNamesForGroup() and typesForGroup() utility functions added
- KexiPropertyEditorList crash fixed for StringList type

2004-02-10
- Property editor is now used globally in Kexi (property buffer's change comes from active KexiView)
- Alter Table Dialog connected to global property editor
- Kexi Main Window: removed unused code
- Action for Focusing Property editor (alt+2) added
- KexiProperty and KexiPropertyBuffer classes moved to core/ 
   from widget/propertyeditor
- KexiProperty has now oldValue() and changed() methods -- usable 
   since we've global property editor

2004-02-09
--design command-line option added, especially useful for developers
main window:
- dock/layout/geometries settings are stored/restored (a bit better, not complete though)
- table view: update width of a combobox popup on editor's resizing

2004-02-08
- libkeximain introduced (by splitting libkexicore)
Main Window settings:
- main window size stored and restored before showing
- "maximized childframes" setting stored/restored

2004-02-04
Table view:
  -Generic Cell Editor Framework introduced
  -selection background painting moved to editor's implementation
  -for row-selection mode: Home/End keys always move to the 1st/last row
  -page up/page down actions added as methods

ComboBox Editor improoved:

-we're completely dropping use of regular combobox
-new layout: a lineedit + dropdown button + popup tableview, when needed
-methods used (and few added) for tableview to enable adjusting 
  it for use it as dropdown tv:
--hidden vtoolbar
--hidden header (on user demand, and automatically, when only one 
  column is visible in the dropdown tv
--hidden the context menu
--hidden the record navigator
--added and used a method for selecting entire row, not just a cell
--tv's recordset made readonly, disable inserting
--sorting disabled


Property Editor: 
  pointer to current editor is now guarded, fixed crash (on sorting) 
  due to uninitialized member

2004-01-29
-KexiDB: crash fixed for records buffering, when a value is NULL 
(for some targets strdup crashes on NULLs)
-KexiDB: i18n'd names for datatype groups added, just like datatype names.
 This will be used eg. in Alter Table Dialog

2004-01-28
- Main Window: toggle actions are checked off before disabling

- Table View: 
  -fixed size of Vertical header's item (record marker) used in Table View 
   (now also works ok with Windows style)
  -don't paint contents of edited cell - painted editor is enough
  -methods added for showing/hiding vertical and horizontal header
  -framework for showing cell's focus depending on editor type added to cell 
   editor (eg. dropdown btn for combobox)

- Main Window:
	Fixed problem with autoincremented identifier in kexi__object
	table on ObjectCreation for some backends
	lucijan: what about using kexiDB API, not hardcoding?

2004-01-27
- Combo box editor
  -key events fixed

2004-01-26
- Table View:
	-KexiCellEditorFactory and KexiCellEditorFactoryItem introduced for generalized cell 
	 editor creation and cell painting
	-now, we don't try to recreate cell editors but store one editor instance for every
	 column and just show/hide/move it when needed
	-column width is now adjustable with adjustColumnWidthToContents() and stretchable with
	  setColumnStretchEnabled()


===================== Kexi 0.1 Beta 2 "Warsaw By Night" =====================

2004-01-20
- kmdi captions fix backported to kexi_compat
- kexistartupfiledialog: we're using paths unstead urls now for better compat.

2004-01-19
RESIZING HELL RESOLVED
- KexiDialogBase resizing fixed for maximize state: only resize a dialog if it is in normal state
- KexiMainWindow: for dialogs in normal state: decrease dialog's height if it exceeds area contents
- KexiViewBase: 
   -preferred size hint introduced;
   -parentDialog() convenience method added for getting view's dialog parent.

- KexiDB::Connection:
  -tableNames() return only tables that have valid names
  -the same for any other objects
- actions in 'Create' menu work
- PropertyEditor has cell borders' color like this used in table view
- closing() signal added to KexiViewBase - it works like in KexiDialogBase.
  Effect: table view's data is saved on closing if editing is in progress

- table view, kexidb: after row inserting, autoincremented fields have displayed values
- query removing works
- KexiMainWindow: shared actions are disabled when no proxy is available

2004-01-17
- KexiDialogBase: minimum height fixed: added height of its caption
- KexiTableView: repainting of bottom contents FINALLY FIXED
- ALTER TABLE Dialog impl. started
- query part: crashes removed when no sql string defined for query; by default "visible" column is true
- relation view: 
   -for global db relations -all tables are shown (will be customized later)
   -open table/design table actions fixed
- bool Kexi::isIdentifier(QString) added for convenience
- KexiDB: Tables and queries with invalid names (that are not valid identifiers) are skipped on lookup
- KexiProject: The same for any objects and KexiProject level

2004-01-14
CORE API CHANGED:
- Kexi Dialogs : view modes functionality added -- KexiViewBase, and integrated with KexiMainWindow 
   and KexiDialogBase
- KexiDockBase removed because if KexiViewBase existence
- If a dialog is already opened in given mode and user have dbl-clicked on the Navigator, 
  the dialog is not switched to other mode

- InternalParts and dialogs without multiple modes FIXED
- KexiTableView: when cursor is moved down and navigator covers the cursor's area, 
 area is scrolled up.

2004-01-13
KexiActionProxy:
 -	isSupported(const char* action_name) added -returns true, if action is supported by the proxy
 -	isAvailable() now lookups also in the childrens actions, if actual action proxy does 
  	 not support a given action
- Relation View:
	some action availability updates

- more icon sizes added: state_sql, table; state_text added for future "text view" mode

- KexiMainWindow: actions are invalidated more accurate on dialogs switching/closing
- KexiDialogBase: added flags t ocheck if given dialog's implementation accepts given view mode
  (data/design/sql modes)
- Kexi::ViewMode introduced - view modes for kexi dialogs (i.e. data/design/sql)

2004-01-12
- Relation View:
  - tables focusing fixed
  - actions 'remove table', 'remove relation' work (not impl)
  - "relation view" widget extracted and moved from relations/ plugin to widget/relations/
   (because it's used also in queries)
  - KexiRelationDialog renamed to KexiRelationWidget to avoid mistakes
  - actions moved from KexiRelationView up to KexiRelationDialog (simplicity)
  - added new actions: "open table", "design table"
- KexiActionProxy:
	new plugSharedAction() overload added for easy creating alternative action names. 

2004-01-10
- KexiDB::Field::isIntegerType() added. Now It's easier to detect if a field is integer.
- Fixed loading and saving values of type Float or Double in database tables.
- Row updating/inserting: Fixed converting decimal symbol from locale back to db backend format

2004-01-09
- PartManager: Parts are sorted using definition stored in kexirc 
  (code taken from the old API)
- .ui files can be now translated

2004-01-08
- KexiInternalPart introduced (as generalized KexiRelationPart): 
  produces internal Kexi dialogs and widgets ON DEMAND
  (so: KexiRelationPart is removed)
- Kexi Relations (widget and dialog) is now produced by KexiInternalPart
- Tables in relation view: sizes fixed

2004-01-07
- Build fixes for gcc2.95 on kde3.1
- Relations View: connection and viewtable focusing fixed and some actions added

2004-01-06
- KexiTableView: 
  -rowEditStarted(int) signal is emitted when row editing is started
    (for updating or inserting)
  -rowEditTerminated(int) emmited when row editing is terminated 
    (no matter if accepted or not)
  -proper availability updates for "edit_delete_row" (disabled when tv is
   readonly) and "data_save_row" (enabled only on row editing)
- KexiDialogBase/KexiPart : fixed caption icons setting for dialogs created by
  parts
- Shared Actions:
  - KexiSharedActionHost introduced - it's "action sharing" functionality   extracted from KexiMainWindow.
  - global default KexiSharedActionHost added for convenience
  - KexiActionProxy now uses KexiSharedActionHost as it's host instead of explicity pointed KexiMainWindow
  - on destruction, KexiSharedAction object is taken out of its KexiSharedActionHost 
  - int KexiMainWindow::generatePrivateDocID() added, so we can use this when we want to get unique doc id 
e.g. for KexiDialogBase.
  - generatePrivateDocID() is used in Relations dialog

- KexiMainWindow: fixed bug in virtual function
- KexiSharedActionHost: fixed behaviour on destruction

-KMDI:
  -caption's icon is resized on setIcon() when needed
  -default icon changed to SmallIcon("filenew"), 
   if not found - filenew.xpm is used

2004-01-05
- QueryAsterisk: 
  -setTable() added - a must for parser to work
  -debug improoved
- Connection: dropTable() added
- Query Part ported to win32
- KexiBrowser: nice title added for popup under part item
- KexiTableView: 
  -navigator showing/hiding implemented
  -cursor setting a bit fixed for empty view
  -cell's text has now proper color for read-only column
- KMDI: fixed bad QWidget filter lookup and unsafe identifier hiding in childview's eventfilter
- kexipropertyeditor ported to win32, kexiproperty and kexipropertybuffer moved from core

2004-01-04
- KexiActionProxy: "action" term in methods substituted by more readable: "sharedAction"
- some actions (in browser) marked as KEXI_UNFINISHED
- KexiMainWindow: KStdActions are now also acceptable as shared actions
- copy/cut/paste actions are shared now; added to edit menu
- "relations" action reintroduced
- closing() convenient signal added to KexiDialogBase
- on Table closing - any edits that are in progress are accepted (thx to lucijan for report)
- KexiTableView: 
  -fixed crash while counting minimum size for columnless tableview
  -preventing from crash when no data is set before constructing is finished
- KexiProject: openObject() and removeObject() added so we will be able to catch kexidb errors

- KexiPart items are now removable! (both from GUI and db backend)
- Kexi Browser is items are removed if required
- KexiDialog: now has itemIcon() possible for reimpl. and Kexi Relation View reimpl this, since 
  it has no KexiPart
- Kexi Relation View: small crash fixed

2004-01-03
- KexiDB, core:
	-ConnectionData and KexiProjectData now inherit QObject 
	 (useful for QGuardedPtr, sharing and for notifications about changes)
	-project_caption, project_desc properties are now created and stored in projects
	-some utility functions added in kexidb/utils.cpp
- KexiMainWindow: application's caption now also contain current project's caption (or name)
  (this also works ok for maximized windows)
- mysql driver reenabled (may not work correctly)

- ConnectionData
  -conflict with QObject fixed
  -"name" member is now: "connName"

2004-01-02
- table view:
	-in key event - we give up with executing actions that are shared with main window, because
	these actions are executed at main window's level. These actions are declared using 
plugSharedAction().
	-row deleting works
	-rows number is updated in tv navigator after row deletion
- actions: MSA-like "Delete Record" substituted by "Delete Row"

TODO: show posible errors (as well as for INSERTs and UPDATEs)!!!


2003-12-30
** Many cleanups and behavioral fixes
- KexiMainWindow: 
  -focusing fixed again (now menubar doesn't grab move focus from navigator)
  -shared action set is now simplified, generalized
  -getlogin() used at least on win32, cause lack of KUser :)
- KexiDockBase added as a base for docked widgets hat offer shared actions. 
  Now it is a pair with KexiDialogBase class (both inherit KexiActionProxy).
- "Data" menu entry introduced
- KexiTableView:
  -added action for current cell removing
  -added popup menu
  -cell focus-marker is not grayed when popup menu is executed
  -Key_Space pressing fixed
  -added possibility for plugging shared actions to table view (using plugSharedAction()),
   e.g. "data_save_row" action, so shortcuts are properly handled
  -deleting row while new row is edited just cancels editing
  -vscrollbar tooltip is not visible when corliing is dont using keyboard instead of a mouse
  -stranger's key events (e.g. pressing up arrow in navigator's line edit) 
   aren't processed by table view (in keyPressEvent())

2003-12-22
- KexiTableView most keyboard events are now only accesible without key modifiers (eg. CTRL+Key_Up now 
doesn't work)

2003-12-21
- KexiActionProxy introduced
- New terms introduced: part's gui client and part instance's gui client. 
  The latter is removed from main window's guifactory when part instance is deactivated 
  e.g. "Filter" action of tablepart is hidden when needed),
  while the former is premanent in main window (e.g. "New Table" action is always visible).

- KexiMainWindow: 
  -dockwidgets' (like e.g. browser) focusing on main window's activate/deactivate 
   and on menu bar popups - fixed.
  -removed toolbar item's fileckering when we're closing one kexidialog and another kexidialog 
   of the same type (guiclient) has to be activated (solution: guiclients are removed not 
   on kexidialog closing but before activating another, it new activated dialog has different client.

- Global Action availability updates: 1) KexiMainWindow updates its actions on dialog switching, 
  or even on focusing dockwidget, like e.g. browser; 2) from dialog point of view - when required, 
  action availiability (true/false) is signalled from currently focused dialog to main window
- Browser: popup menu re-added, (there is also example how to plug 
  both custom and global actions to the popup)
- Opening part instances in design mode prepared (openInstance())

2003-12-20
- KexiDialogBase remembers its creator (a KexiPart::Part object)
- KMdiChildFrm's icon is scaled when needed (e.g. when detached/attached)

- KexiPart's classes: some methods are now protected
- Toolbar buttons are now flicker-free, because gui clients are now attached 
   to parts instead of part instances


2003-12-19
- KexiDB::Field:
  -many properties of type int are now of type uint
  -WIDTH property added
  -NOTEMPTY property added
  -canBeEmpty(), typeGroup(), isDateTimeType() added

- KexiDBTableViewColumn merged with KexiTableViewColumn, now column properties are always reused 
  from KexiDB::Field's properties

- KexiTableView: full handling of NULL or EMPTY values on editor accepting, e.g.:
   * cells are displayed as empty EVEN for numeric types, if null values are allowed
   * cell value is forced to NULL if empty values are not allowed (e.g.: for numeric types)

- Updating with NULL values fixed, and it's done only when needed.
- KexiTableView editors: pressing "left arrow" key at begginning of cell's text moves 
  to cell on the left hand; the same for end of text+right arrow key

- Finally: new row inserting works (no data integrity checking or warnings added though).

- KexiTableView: cells: fixed displaying of text (and text selection) longer than cell's width
- KexiDB: 
	-escapeString() and valueToSQL() moved from Connection to Driver
	-escaping ' and " chars fixed

2003-12-18
2003-12-17
2003-12-16
2003-12-15
- tableview: changes in keys behaviour: 
  -Ctrl+home moves to 1st row, Ctrl+end - to last row,
   Home -to 1st col., End -to last col.
   Ctrl+Shift+home moves to 1st row and col, Ctrl+Shift+end - to last row and col,
  -Key_BackTab is also used to navigate cells
  -row editing improoved: buffer containing changes for current 
    edited row introduced (KexiDB::RowEditBuffer)
- tableview cell editors / items:
  -KexiTableItem simply inherits from KexiDB::RowData
  -Tab and Shift+tab, Up, Down, Home, End, etc. keys work also when cell editor is visible
- FINALLY: row editing fully working: data is updated @ the backend using KexiDB

- keximainwindow:
  -Tab key pressed on navigator activates current child window
  -Mainwindow's caption now contains (for Childframe Mode) child window's caption 
   as the prefix if the child is attached and maximized. This works well with attaching/detaching 
   and deactivating child windows.

- KMdiChildArea: 2x crash fix for childframe mode
  -when KMdiChildArea::setTopChild(0) is called and m_pZ is empty, pMaximizedChild is 0
  -in KMdiChildArea::manageChild(), first - we need to take old references to childwindow 
   that is added to m_pZ (crash reproduction: detach one childwindow, attach it, detach again)

-KexiDB:
 -IndexSchema's pkey retrieving for loaded project -fixed
 -RowEditBuffer class introduced
 -Object::debugError() shows more error info
 -Connection::updateRow() and Cursor::updateRow() inttroduced for row updating
 -some metods goes inline
 -expanded list (obtained from QuerySchema::fieldsExpanded()) 
    of Cursor's all query fields is cached within cursor
 -FieldList - fields lookup is now case insensitive
 -results of QuerySchema::fieldsExpanded() is cached inside QuerySchema
 -QuerySchema::pkeyFieldsOrder(), QuerySchema::fieldsOrder() methods introduced (results are cached)

-Drivers:
 -SQLite driver updated for current API
 -MySQL driver just compiles


2003-12-13
- browser: focusing fixed: doesn't lose focus when clicked

2003-12-12
- added caching to KexiProject::items() and KexiPartInfo
- objects lookup-and-opening functionality moved from navigator (KexiBrowser) to keximainwindow
- "-open" CLO reintroduced
- KexiMainWindow: error messaging generalized a bit
- KexiTableView - editors API and behaviour improoved

- KexiPart::Part objects are cached
- pointers to KexiPart::Item are used instead of values
- KexiStartupFileDialog's file selection works on win32


2003-12-11
- Cursor::movePrev() impl. updated
- DriverManager: result names are available for KParts::ComponentFactory::ComponentLoadingError errors

- Detached KexiDialogBase windows now have proper icons
- KexiTableView:
  - size hint and minimum size hint fixed
	- better widths for text fields in navigator
	- cell redrawing & colors fixed
- KexiDataTable: size hint and minimum size hint is reused from KexiTableView
- Some fixes for KMDI taskbar
- KexiInputTableEdit:
	- fixed adding first char on starting edit
	- numeric field == 0 is cleared on edit
- KexiDialogBase, KexiPart::Part: creating part instances and registering generalized
- KexiMainWindow: foxusing improoved, added action for focusing navigator
- KexiMainWindow: members moved to d-pointer
- KexiPart::GUIClient is created by KexiPart on demand, if GUI window available

2003-12-10
- KexiMainWindow: 
  * "show navigator" action is auto-handled by kmdi
  * fixed : pointer to current xmlgui is now cleared before closing kexidialog
- KexiTableView::paintRow() fixed crash when col number was ==-1

2003-12-08
- Kexi MainWindows' settings are now stored and restored:
  - toolbars, docks positions
  - MDI mode
  - added workaround for TaskBar positioning problem

2003-12-06
- sources synced with win32 target, again
- Kexi:: singletons are now accessed via functions, eg. Kexi::connset()

2003-12-03
- KMDI modes enabled
- KexiStatusBar introduced

2003-11-30
- KexiDB::Field::isFPNumericType() added
- KexiTableView now entirely uses KexiDB::Field::Type for types checking, not QVariant
- KexiTableView::paintCell() simplified

2003-11-28
- KexiStartupDialog: existing file opening fixed (problem with autocompletion);
   "accept" aborting when no filename entered
- some minor fixes and TODOs
   
2003-11-25
Finally commited again
General:
- PostgreSQL-based projects: tables are now visible in Kexi
- KexiProjectSelectorWidget for "projectopen" action reused with KexiProjectSelectorDialog
- most KexiDB errors are connected to message boxes, even driver loading failures

- after unsuccessfull Cursor::moveFirst() eof() and bof() now return true
- '..' substituted with ".." for message strings

- pqxx driver: 
  - cursor's internal transaction is now destroyed on error in drv_open()
  - cursor's internal transaction has an unique name for easy debugging
 
- Kexi::detectProjectData() added for detecting file type both on startup and after
    filename is selected in Kexi's file dialog
- KexiPart::Manager is now shared between project sessions
- KexiPart:: classes' implementation a bit refreshed
- QValidator and helper functions for identifiers added

- Main Window:
  - "Open Existing Project" action works both for file- and server-based projects
  - "New Project" action works both for file- and server-based projects
  - above actions now work also after startup, from toolbar

- KexiPart::dbAvailable signal not needed since openProject() function returns boolean

- KexiStartupDialog:
  - KexiConnSelectorWidget reused
  - if single page is configured, no tabs are visible, 
    so KexiStartupDialog is reused for projectopen and projectnew actions

- KexiStartupFileDialog introduced as embeddable widget, 
    reusable for different file types (e.g. .kexi and .kexis)
- KexiNewProjectWizard introduced for creating empty projects (both file and server based)
    it will be also reused for "project templates wizards"
  
2003-11-24
2003-11-23
- KexiDB: Connection::databaseExists() now works correctly with file-based drivers
	- just file existence is checked

- KexiDB::Connection 
   - creating or dropping system database is not permitted
   - databaseExists(): full file paths are compared for file-based drivers
- KexiDB::Driver i18n fix, thanks for Malcolm Hunter
CCMAIL: malcolm.hunter@gmx.co.uk

- KexiPart::Manager is now shared
- KexiPart::  classes' implementation a bit refreshed

TODO: keep ownership properly in KexiPart namespace!!!!!!


2003-11-22
2003-11-21
- drivermanager cleanup hack
- some improovements in kexidb clases
- KexiDB:
  - Driver::isSystemDatabaseName() added
  - some methods converted to const
  - Connection::databaseNames() now has parameter for skipping system database names
  - Driver::isValid()
    - now checks driver's major version and compares against kexidb library major version
    - now is called on createConnection() instead of Connection::connect() so errors 
	  can be catch earlier
  - KEXIDB_DRIVER (like Q_OBJECT) in driver.h and KEXIDB_DRIVER_INFO in driver_p.h macros 
    introduced for ease driver development and decrease error count
  

2003-11-19
- KexiNewProjectWizard added
- KexiStartupFileDialog convenient KFileDialog subclass added/reused
   
2003-11-17
- KexiDB: buffered cursors: the first record was shown 2 times
- KexiDB::Connection: some internal query fixes
- newapi tests: -buffered-cursors switch added, non-internal cursor for all tests
   are now unbuffered by default; fixed buggy behaviour on nonsuccessful t.v. test
   
2003-11-15
- small compiler issues fixed in pqxxconnection
   
2003-11-14
- Field: inlines fixed for newer compilers
- DriverManagerInternal::slotAppQuits() used to destroy all drivers
  on QApplication quit, so even if there are DriverManager's static
  instances that are destroyed on program "static destruction", 
  drivers are not kept after QApplication death.

2003-11-12
2003-11-13
- Kexi startup procedure for both files and db connections introduced
- startup dialog integrated
- projectdata redesigned
- menu items improoved, polished; e.g. Changed "File" menu entry to "Database"
- ConnectionData:
  -added id for connectiondata
  -some const added

2003-11-10
- added global kexi version info, like in calligra
- configure.in.in: added checking for qextmdi if required

2003-11-07
2003-11-06
2003-11-05
- KexiTableView: 
 - Navigation bar added
 - cell's focus indicator frame is now also visible after focusout
 - before entering to  edit mode, we ensure that current cell is visible
 - vscrollbar tooltip added
- Cursor: some members made private or protected
- Cursor: m_beforeFirst is probably not needed anymore; m_at==0 is enough
- Field: isNumericType(), isTextType() added, etc.;  
   type names are now i18n'd in an array;
   some methods inlined

TODO: void KexiTableView::cancelRowEdit() still dont repaint properly!!
TODO: update on lostfocus

- SQLiteConnection:: sqlite_freemem() used to free error message when needed;
	do the same for SQLiteCursor
- serverResult(), etc. methods aded also to Cursor class, so finer grained error 
  info is available

  
2003-11-04
- Documentation added for few newer and older methods.

2003-10-31
- KexiDB::Cursor: many code like drv_getNextRecord() moved from SQLiteCursor down 
  to Cursor class

2003-10-29
2003-10-30
- KexiStartupDialog added. Now, although it is project-and-connection-oriented, 
   it is designed to be still consistent with conventional document-driver startup 
   dialogs used for other Calligra apps.
- KexiProjectSelectorWidget introduced
- KexiProjectData structure added
- KexiProjectSet structure added
- Test for new KexiStartupDialog. Code written here will be reused for
  "fileopen" and "filenew" Kexi actions.

2003-10-28
- KexiStartupDialog introduced
- KexiDB::ConnectionData: now offers (optional) driverName info
- KexiDB::Driver::Info (short usefull structure) is now offered by DriverManager
- ConnectionData::localSocketFileName optional attribute added
 
2003-10-23
- new icons for few kexi-specific contexts;
- most icons are installed into Kexi app dir

2003-10-22
- KexiTableView: 
 - sorting works again
 - before sorting, row editing is cancelled
 - better "ensure visible" code when scrolling on small area
 - inserting rows code completed
 - vheader repaint fixed

2003-10-21
- tests/newapi : Now all test types accept <db_name>
- KexiTableView: 
 - page down key also move cursor to "insert row" if one is present
 - double clicking on cell (opening cell editor) fixed
 - fixed cell's repaint when autoscroll is performed after clicking cell at different row
 - sorting by column enabled, full set of methods added for this
 - new feature: empty row is appended right after start of editing new row (like in MSA), 
 to allow user to move to a next row
- KexiDB driver services' properties updated:
   - X-Kexi-DriverType=[File|Network]
   - and X-Kexi-FileDBDriverMime (for file-based drivers only; 
      for sqlite it is: application/x-sqlite)
   -MimeType property removed
- startup speed improoved: drivers lookup in KexiDB::DriverManager is now on demand.
- Driver name now reuses QObject::name()
- Connection::lastInsertedAutoIncValue() introduced

2003-10-19
- Connection::useTemporaryDatabaseIfNeeded() now is also reused 
  for databaseExists() and databaseNames(), so these methods work when engine 
  needs used any database before asking for info
- ConnectionPrivate::m_skip_databaseExists_check_in_useDatabase used
	to avoid endless recursion between useDatabase() and databaseExists()
	when useTemporaryDatabaseIfNeeded() is working
- Connection::setupKexiDBSystemSchema() added check to prevent creating 
 system tables schema more that once per connection

- Connection: reomved default values from useDatabase() and createDatabase()
	because this might be confusing to use first-found database name here; (thanks piggz!)
- FieldList: cached string == comma-separated list of fields added
- Connection: valueToSQL() overload added, insertRecord() overload added so we can omit 
	some fields from inserting; this is also internally used when kexi__* tables are 
	filled what improoves backward compatibility
- FieldList now offers lookup by field name, list of field names, it can create 
  subLists, usable to define list of fields for data inserting
- fixed compiler-dependent bug in insertRecord()

2003-10-18  
- Connection:
  - useTemporaryDatabaseIfNeeded() added - Because some engines need to have
   opened any database before executing administrative sql statements 
   like "create database" or "drop database",
   this method is used to use appropriate, existing database for this connection.
  - above method is now used in createDatabase() and dropDatabase() if needed.
  - QString anyAvailableDatabaseName() - returns name of any (e.g. first found) 
   database for this connection, eg. "template1" for PostgreSQL.
  - DriverBehaviour::ALWAYS_AVAILABLE_DATABASE_NAME added when hardcoded value 
   for above is enough.
  - setAvailableDatabaseName(const QString& dbName) - This is option that e.g. 
   application that make use of KexiDB library can set to tune connection 
   behaviour when it need to temporary connect to any database
   in the server to do some work (e.g. DROP DATABASE).
 - Connection cleaning up bug fixed a bit.
 - Naming Conventions document added
 - drv_isDatabaseUsed() introduced for additional state-checks

2003-10-17
- Driver developers should not change values of several important Connection
  class members, so these are now private.

2003-10-16
- KexiTableView:
 - maany repainting, updating, resizing improoved, code simplifications
 - editing row session introduced: edits for the same row is not accepted until move to another row
  This allows multiple fields editing before row editing accept.

2003-10-15
- missing QuerySchema::addAsterisk(QueryAsterisk *asterisk) added
- KexiTableView headers and cells repainting improoved
- for mysql driver: beh->ROW_ID_FIELD_NAME="_ROWID", is this ok?

2003-10-14
- DriverBehaviour::ROW_ID_FIELD_NAME added
- bool Driver::isValid() invented, it is so clever that obsolete or bad driver 
 can not be easily harmfull for application.
- KexiTableView and KexiDataTableView reimplemented for new KexiDB API.
- few classes renamed, e.g. KexiTableViewData is here now instead KexiTableList
- KexiTableViewData is now mostly data structure, special rows like "inserter" will be handled 
 by KexiTableView code. 
- KexiDataTableView now uses Cursor (a bit not efficient yet).

2003-10-13
- Cursor has now two ways for definition: 1) use raw statement 2) use QuerySchema
- Conenction: prepareQuery() accepting QuerySchema overload added 
- TableSchema::query() convenience function added
- tableview: QuerySchema is now used a bit
- QuerySchema(TableSchema* tableSchema) is created by defining 
 "all-tables query asterisk" (see QueryAsterisk) item. 
- Connection: implemented and selectStatement() replaced queryStatement() because 
 not only "select" queries will be implemented.
- QuerySchema::fieldsExpanded() convenient function added to expand query asterisks
- KexiDataTableView uses QuerySchema even smarter
- kexi/kexidb/tests moved to kexi/ to avoid curcular deps

2003-10-12
- Connection::isDatabaseUsed() fixed
- Connection: isConnected() is substituted with isDatabaseUsed() in some cases
	and checkIsDatabaseUsed() is substituted with checkConnected() in many cases.
- kexidb/tests/newapi tableview now uses KexiDataTableView
- Connection:: many overloads like queryStatement( KexiDB::QuerySchema& querySchema ) or
   executeQuery( QuerySchema& query, uint cursor_options = 0 ) added
- KexiDataTableView: simplified: setDataSet() -> setData(); record -> cursor

2003-10-11
- Transaction::isNull() fixed 
- now tables creation seems to be ok ('tests/newapi sqlite tables' works)
- sources synced again with win32 target
- kexidb/parser and kexidb/tests/parser ported to win32
- KexiDB::Expression introduced
- isSystemObjectName() now checks for "kexi__" prefixes
- checks on create table: if name is not system, if table is not empty, if fields are not system
- KexiDB::Reference introduced
- KexiDB::IndexSchema now contains informations about multiple related Reference objects
- kexidb/tests/newapi : now tests are functions, so can be called as subtests if needed;
   gui tests group added; tableview gui test introduced

2003-10-10
- FIX: creating kexidb system tables schema objects on useDatabase()
- KexiDB::Object::debugError() added for convenience
- Object: serverErrorMsg(), serverResult(), serverResultName(),
	drv_clearServerResult() added
- virtual Q_ULLONG Connection::drv_lastInsertRowID() added - returns unique
   identifier of last inserted row. 
- DriverBehaviour::AUTO_INCREMENT_FIELD_OPTION added; autoinc field's option is now 
	used in "CREATE TABLE" statement building; bool SPECIAL_AUTO_INCREMENT_DEF added
- fixed crash on mass transactions closing during closeDatabase()
- added tables creation subtest to kexidb/tests/newapi
- SQLite* classes: last operation's result is now stored for later checking

2003-10-09
KexiDB::Connection: 
- "select * from ..." substituted by "select <field name(s)> from ..."
  where possible, so after future kexi_* tables change it will still work.
- list of internally used kexi__* tables available with new static method
- bool TableSchema::isKexiDBSystem() added for tables that are internal for KexiDB
- bool SchemaData::isNative() added for objects that are native, ie. not contain additional
   metadata information.

- Connection::destroy() instead of Connection::disconnect() should be called 
  from xxxxConnection subclasses.
- ~TableSchema calls Connection::removeMe() so it is removed from tables list if needed
- ordering in Field object added
- quite hacky and thus effective insertRecord() overloads added
- some schema is added to kexi__* tables on createTable()
  
2003-10-07
- KexiDB::QueryAsterisk class introduced to define select queries with asterisks, like
 "staff.*" in "SELECT staff.*, cars.model from staff, cars WHERE staff.car = cars.number"
 (1st ttype) or "*" in "SELECT * from staff, cars WHERE staff.car = cars.number" (2nd type)
- Query schemas storage added
- using include path returned by 'mysql_config --mysql_config' as 
  is instead of eating mysql suffix
- Transaction::null and isNull() added
- Connection: Simulated AutoCommit feature implemented,
   createTable() added - it uses autocommit if enabled.
- Driver: DriverBehaviour member added - Detailed definition 
  of driver's default behaviour.

2003-10-06
-KexiDB::QuerySchema: 
 - field aliases added and checking if there is alias
 - list of tables used in query added
 - debug() updated

2003-10-05
-KexiDB:: 
 - fields() now offered by fieldlist
 - Field::Field( ) args order fixed (compiler didn't complain..)
 - TableSchema: primary idx setting added
 - TableSchema: autogenerated indices are added implicity on addField()
 - IndexSchema: unique flag added, primary flag is now dependend on this

2003-10-04
-KexiDB:: addedd better access to creating schemas

2003-10-03
-KexiDB:: API extended for db transactions
 - Transaction is now implicity shared container for storing transaction handle,
    TransactionData is used as internal driver-dependent storage
 - former Transaction class is now TransactionGuard
 - "default transaction" added to Conenction
 - SingleTransactions, MultipleTransactions and NestedTransactions added to KexiDB::Driver::Features
 - autoCommit option added to Connection (can use both driver-specific feature ans simulate),
    (not fully implemented yet)
 - active transactions are rolled back on database close
 - heavily commented :)
 - index.* moved to indexschema.*
 
2003-10-02
-KexiDB::
 - IndexSchema now inherits also from SchemaData (its additional 
    properties will be used at least in gui)
 - IndexSchema now points to a table that contains it, not connection
 - fixed owning rules for FieldList: not only TableSchema owns its fileds,
 	while QuerySchema, IndexSchema not
 - more methods moved to const 
 - QueryData offers now information about its parent table 

 - some record inserting introduced in Connection
 - yet more methods moved to const 
 - KexiDB version info added (both as functions and defines)
 - global definitions file added

2003-10-01
-KexiDB::
 - Table and query schemas now can be looked up using its id or name using Connection::tableSchema()
	and Connection::querySchema()
 - Connection::querySingleRecord() added for easy retrieval single (first) record 
	from query's result set
 - Cursor::storeCurrentRecord(RecordData &data) added: Puts current record's data into data
 	(makes a deep copy).
 - update after moving query.*, table.* file to queryschema.*, tableschema.*
 - Cursor buffering-related members moved from SQLiteCursor to Cursor
 - Cursor::moveFirst() fixed for buffered cursors - reopen() is now not needed
 - SQLiteCursor::drv_getNextRecord() we don't try to fetch records when 
    we know that buffer is already fully loaded.
- Uff, It is first time since ~3 moths I can see kexi main window after kexiDB change

2003-09-28
- KexiDB:
  - Table, Query and Index classes renamed to TableSchema, QuerySchema and IndexSchema
  - query schemas storage introduced
  - kexi__table 'system table' renamed to kexi__objects and for it now will be used for 
  storing also other types of objects, eg. queries. Some properties added to this table.
  - kexi__querydata added for query schemas
  - kexi__db added for storing database properties, e.g. kexidb version

2003-09-26
- new kexidb/newapi test added: dbcreation
- KexiDB::Connection::databaseExists() has now arg. that allows ignoring error messages (deflt)
- params for createDatabase() and useDatabase() are now optional for more convenient 
   use file-based drivers

2003-09-24
bool buffering_completed added to SQLiteCursor: true if we have already all
 records stored in the buffer

2003-09-18
- Buffered KexiDB::Cursor type introduced, for this type KexiDB::Cursor::isBuferred() is true;
	this is "test" implementation for SQLiteConnection only [INCOMPLETE]. 
	Cursor options introduced (Cursor::options()). Cursor's buffered flag if one these options.
	Options are now optional parameters both for protected Coursor's constructor and for 
	Conenction::executeQuery() and Conenction::prepareQuery()
- virtual bool Connection::drv_databaseExists( const QString &dbName ) added for optional 
	reimplementation. It is a pair with drv_getDatabasesList(), both are used in databaseExists() now.
	See comments for details.
- Connection::useDatabase(dbName) now do not allows dbName that do not exists, 
	while for single-db-per-connection-engines (eg. file-based engines) Connection::databaseExists()
	returns true only for single db name (eventually URL).
- for file drivers: file existence checks moved to databaseExists()
- in Conenction::useDatabase(dbName): closeDatabase() is called before other database should be used, 
	if there already was opened database.
- Connection::drv_getDatabasesList() has now default implementation that returns empty list.
- sources in drivers/mySQL/ updated just to work with kexidb API changes
- Connection::drv_databaseExists(dbName) is now by default just checking if dbName 
	is on the db names list
- Some code for bufering added - forward moving with buffered cursors looks
	better.

2003-09-17
- KexiDB::Query introduced: Table::name() and Query::name() moved to FieldList.
- Field::ListIterator FieldList::fieldsIterator(), Field::FieldList::debug() and clear() added
- ERR_CURSOR_RECORD_FETCHING added

TODO: add 
-static cursor types
-scrollable cursor types

2003-09-16
- KexiDB::DriverManager: driver names accepted by KexiDB::DriverManager::driver(name) 
   and KexiDB::DriverManager::serviceInfo(name) methods are now case insensitive.
- 3rdparty/kexisql: added files needed by win32 target
- removed kexidb/drivers/sqlite/driver directory: now we include sqlite.h from 3rdparty/kexisql/src/
- MySqlDriver's service name is "kexidb_mysqldriver", export macro is KEXIDB_MYSQL_DRIVER_EXPORT;
  win32 compilation fixed.

2003-09-15
- KexiDB::Cursor:
  - movePrev(), bof() added;
  - drv_getRecord() splitted to drv_getNextRecord(), drv_getPrevRecord()
  - fieldCount() added, not fully works yet
  - on open() we have always bof()==true and eof()==false
  - simplification: now bof() is computed as m_at==0
  - we are internally counting records from 1 and externally from 0
     (what is visible using at()).
  - m_at and thus at() has now Q_LLONG type

2003-09-14
- KexiDB::Object::setErrorMsg renamed to setError
- KexiDB::DriverManager is now just a container for one reference 
  to Internal Library's Driver Manager, so all you are expected to do is to remember
  about deleting KexiDB::DriverManager instance in your app.
  You can create many KexiDB::DriverManager objects.
- KexiDB lib now handles automatic deletion of drivers after last 
  KexiDB::DriverManager object deletion (thus refcount==0).
- tests/newapi now looks more simply at the end of main.cpp file :)
TODO: do the same with DriverManager as Driver
- KexiDB::Connection::tableSchema() updated for new KexiDB::Connection::executeQuery() semantic.
- DriverManager::self() no longer needed
TODO: add fieldCount() to Cursor

2003-09-13
KexiDB:
- Connection::prepareQuery() added for creating not opened cursors.
- Connection::executeQuery() now automatically opens the query with created cursor.
- Connection::destroy() convenient method added for obligatory use 
  in Conenction subclasses' dctors. destroy() just disconnets() and takes the Connection 
  object out of parent (Driver).
- SQLiteConnection updated for above requirements
- cursors and tabledefs are now deleted not in ~Connection but 
   on every Connection::disconnect().
- kexidb/tests/newapi also compiles with qmake and runs on unix
TODO: add auto removing Drivers on DriverManager deletion.

2003-09-12
Great day for KexiDB in cvs:
- Old KexiDB moved with actual Kexi version to non-default old_db_api branch.
- Current (HEAD) now contains new kexidb/ dir for with API
- kexidb/tests/ added to cvs with one 'newapi' test

2003-09-11
- Index::List and Field::List are now QPrrList<Field>, so Field objects are now stored as a pointers, 
	no as a values. These are owned by Table objects.

2003-09-10
- Html Doxygen-generated docs for KexiDB module configured
- KexiDB::Index introduced - definition of single table index (1 or multi-field)
- KexiDB::FieldList introduced - list of fields; base class for KexiDB::Index, KexiDB::Table
TODO: add KexiDB::Query and use this object eg. as argument for Cursor* Connection::executeQuery()

2003-09-09
kexidb:
- Every Connection object stores cursors opened with it. On Connection destruction, 
	cursors are deleted automatically. The same with table schemas within Connection object.
	QPtrDict is used for storing cursor objects.
- Every Driver object stores connection using QPtrDict, not QPtrList.
- Driver::isSystemObjectName(), Driver::isSystemFieldName() are case insensitive.

TODO: PROPOSAL: add compile-time option for kexidb to be kde-independent. 
	This could be quite easy.

2003-09-08
kexidb:
- QStringList Driver::systemNames() is now bool Driver isSystemObjectName() 
		-- Checks system object names, 
		eg. build-in system tables that cannot be used by user,
		and in most cases user even shouldn't see these. Specific for 
		a given driver implementation.
		For SQLITE driver system object names are these with prefix "sqlite_"
- QStringList isSystemFieldName( n ) added: return true if n is a system field names, 
		build-in system fields that cannot be used by user,
		and in most cases user even shouldn't see this. Specific for 
		a given driver implementation. 
		For SQLITE driver this has one system field name: "_ROWID_" (see CHANGELOG-Kexi-SQLITE).
- QString Connection::valueToSQL( const Field::Type ftype, QVariant& v )
		added for encoding values for sql queries
- Connection::createTableStatement(): unique, default and not null flags are now added.

TODO: also fields with UNIQUE flags should cause KexiDB::Table to have appropriate KexiDB::Index

2003-09-06
- new KexiDB is stored in "kexidb" subdir, old api in "kexiDB", on win32 in "kexidb_old"
-	virtual QString escapeString(const QString& str)
	virtual QCString escapeString(const QCString& str) added for Connection
- Field::setDefaultValue(const QCString& d) added. Default values are stored in 'f_default Text'
	field of kexi__fields table and are string-encoded there.

2003-09-04
- kexidb CHANGES FROM JOWENN: No ; after namespac, some d Pointers,
		littlebit different includes, littlebit modified destructors 

2003-09-01
	KexiDB::
	-	Cursor:: moveFirst(), moveLast(), moveNext(), eof(), at(), QVariant value(int i)
TODO: Cursor::value(int i) should use schema information to convert types of values
			(now all values are strings)
	-	Connection::tableSchema() - returns schema of given table retrieved 
			using connection's system kexi__* tables
	-	Connection::deleteCursor()
	-	Driver::sqlTypeName(int id_t) - returns sql type name for given driver
	-	static QString Driver::defaultSQLTypeName(int id_t) - returns sql type name for given 
driver
			(usable when we do not have Driver instance yet)
	-	Table::debug()
TODO: add default value storage

2003-08-29
- KexiDB::Cursor class, Cursor* KexiDB::Connection::executeQuery(statement) creates cursor
- KexiDB::Connection::drv_executeSQL(): executes query \a statement, but without returning resulting 
		rows (used mostly for functional queries).

2003-08-28
- KexiDB::Transaction helper class introduced, transaction-related methods added for KexiDB::Connection.
- drv_createTable() and createTableStatement() moved up to KexiDB::Connection

2003-08-27
- KexiDB::Table, KexiDB::Field classes introduced. 
	New DB-storage design started: kexi__table, kexi__fields system tables 
	(for db schema storage).

2003-07-28
- KexiDataTableView::tableSize() removed (wasn't this unnecessary?)

2003-07-26
- KexiRelationViewTableContainer: width is now based on maximum width of
the field name or header name. 
- KexiDataTable do not stores members  like KexiDB or KexiDBRecordSet bu
uses these from KexiDataTableView.

2003-07-25
- KexiDialogBase now also inherits from KXMLGUIClient for easy actions management.
	Do not make KXMLGUIClient subclass but just call setXMLFile() in KexiDialogBase:: subclasses' ctor
	and add actions to KexiDialogBase::actionColection().
- KexiRelationDialog:
	- now uses KXMLGUIClient to better utilize its actions
	- right-click context menus fully works
	- 'hide selected table', 'open selected table' actions added (unimpl.), kexirelationsview.rc 
added.
- Main Kexi menu bar little more standarized: 'Edit' menu added, 'View' menu moved just after Edit menu.
TODO: implement selected table hiding
TODO: implement selected table opening
TODO: add drag from browser

2003-07-24
- --open command line option added for automatic opening objects at startup, this will help in our 
	testing (see 'kexi --help' or main.cpp for details).
- KexiDialogBase got sizeHint() now that make it fit to qworkspace if it is a in-workspace window.
- virtual QString KexiProjectHandler::groupName() added that offers store plurar form of part name,
	while name() offers singular form.
- KexiRelationViewTable: 
	- list items (fields) without icons are aligned using transparent icons;
	- moving TableViews back from outside of scroll view area automatically shrinks scroll view's 
	area to smallest possible size
	- field that we drag over now is highlighted
TODO: fix KListView::viewportPaintEvent() like in KexiRelationViewTable::drawItemHighlighter()
      and commit to cvs (kdeui)
- KexiRelationViewTableContainer got now focus/unfocus/z-order functionality. Colors of table headers 
	are consistent with focusing and OS settings
TODO: fix connection lines painting

2003-07-23
- KexiTableView:
	- KexiTableViewPrivate d-pointer added with "kexitableview_p.h", "kexitableview_p.cpp"
	- Fixed repainting empty areas (background) in KexiTableView: QColorGroup::Base color is used.
	- editableOnDoubleClick(), setEmptyAreaColor() added
	- For Qt::Key_Menu key, context menu is show below the current cell, if available.
- KexiDialogBase reorganized. Now it offers more generic properties and functionality, 
	so subclasses can be more cleanly written and consistent with API and behaviour.
- Relations window is registered with 'kexi/relations' id, 
	while relations window embedded in query designer has id 'kexi/query/<query_name>/relations'
TODO: implement sizeHint() for KexiDialogBase subclasses
TODO: make open, create, delete and edit functions in KexiProjectHandlerProxy subclasses more generic

2003-07-22
- scrollbars enabled in KexiWorkspaceMDI

2003-07-21
- Kexi project 'kexi_doc' icon added, on win32 it is added to kexi.exe resources (id=1) and registered for 
	.kexi extension on installation.
TODO: add "New document" (empty or from template) command-line option, so it can be registered 
	as "shell/new" in HKCR registry key on win32.
TODO: like above: "Print" and "Print to"

2003-07-18
- " " prepended to Project Browsers' list items' texts for better look (maybe add this feature 
	to KListView or make its generic subclass?)
- Some fixes with text positioning in tableview cells: float and date type y-offset, 
	date type editor frames removed
TODO: maybe optionally use KDateWidget (this needs to extend and improve this class)?
	QDateEdit is good enough (but this need to follow date format for locale or settings 
	using QDateEdit::Order, etc.).
TODO: fix KDatePicker (in kdeui): accepting with Return key or dblclick, and setting focus.
- KexiTableEdit has now QColorGroup::Base (usually: white) background
- KexiInputTableEdit has now some space on the left, so strings look better.
TODO: add default hint for columns widths, based on type of field 

2003-07-17
- actions for Form, Kugar, Relations, Script Parts updated using KexiPartItemAction,
	KexiProjectHandlerProxy::groupContextMenu() and itemContextMenu()
	like in Tables and Queries' Parts
- kexikugarhandlerui.rc moved to kexi/data/
- 'Other Licenses' submenu made in 'Help' menu, 'Report Generator Licensing' 
	entry moved here from Kugar Part's popup menu
TODO: move this submenu after 'Error report' Entry (requires changes to calligra_shell.rc).
- kexirc added
- added option for KexiBrowserItem to be sorted in FIFO order (top level items - by default,
	others are sorted in alpha order). Visible Parts' order is now specified (by library name)
	in the Kexi's main config file "kexirc" ([Parts]/Order), because KTrader sorts parts 
	by name in aplha order. Unspecified Parts are appended at the end of list.
	This order setting is loaded and used on parts loading (KexiProject::loadHandlers()).

2003-07-16
- fixed registering (registerAs) for query designer's windows, 
	query from project browser removing fixed
- project browser's groups items (tables, queries,..) are now non-selectable 
	as these are rather special constant containers
- added convenient hidden(), shown() signals to KexiDialogBase
- added KexiDialogBase::plugToggleAction(KToggleAction *toggle_action) for syncing window
	visibility with toggle action's state

2003-07-15
- Kexi/win32 synced with cvs again after plugins/ rearrangement.
- New Kexi icon updated for win32
- menubar and popupmenu entries in Query Part merged using KexiPartItemAction (new KAction subclass);
  The same for Tables Part. KexiPartPopupMenu now collaborates with KexiPartItemAction to reuse its
	action's information (avoid redundancy).
TODO: add delete_item action icon (equal "button_cancel" in crystalsvg) to the calligra/actions icons
TODO: like above, add "script" icon to kexi/actions ("moc_src" is used)

2003-07-01
- Some table view text positions painting fixes for x11, for dbl and int type, editor's position fixed.
TODO: add left margin for cells' text (at least for x11)

2003-06-28
- Project Wizard: fixed align for big picture, some widgets availability fixes, 
big picture moved to KexiCreateProjectPage superclass.
- KEXI_ADD_EXAMPLE_ENGINES compile-time option added: if set, example engines will be added 
	to the drivers list in the Project wizard

2003-06-22
- Alter Table Window: info about not implemented rows removal added for KEXI_NO_UNFINISHED option
  Redundant label with table name removed from top of the window.
  Double click in KexiTableView reenabled.
  PropertyEditor and KexiTableView size hints little fixed.
- KexiTableView: now clicking outside of a grid do not activates any cell;
   (crash fixed) sorting disabled while in-cell editor is visible
- "Project properties" function disabled for KEXI_NO_UNFINISHED option

2003-06-21
- automatically set focus inside Alter Table Window and show cursor
- fixed crash on entering data in 2nd, 3rd, etc. columns in table added during current session
  (table def struct wasn't created for new table)

2003-06-17
([JK] - fix proposed by Jakub Kubica)
[JK]- (in calligracore): KoMainWindow::KoMainWindow: KStdAction::configureToolbars disabled:
TODO: enable this when configure window will work
[JK]- "Settings>Configure Kexi" action temporary disabled for KEXI_NO_UNFINISHED option
TODO: reenable this!
[JK]- "Save password" in authorization page of the Project wizard removed for KEXI_NO_UNFINISHED option
TODO: reenable this!
- <ActionList name="toolbarlist"> line removed from calligra_shell.rc (this removed redundant actions)
[JK]- now, after failed db connection Project wizard do not allow moving to DB selection page
- now it's not allowed to close alter table window for a table that do not contain fields
  (message box is displayed then). The same is when user try to delete table (without fields) 
	that is currently opened 
TODO: allow the user to give up and delete this table


2003-06-15
- when KEXI_NO_UNFINISHED option is set, msgbox information is presented for unimplemented actions
- kexidb: added information about if database (given by name) is considered as system db
- projectwizard: only non-system databases are visible on the db list; db icon added
- propertyeditor in altertable window has narrower 2nd column

2003-06-14
- inserting queries into list fixed
- added KEXI_NO_FILTER_DLG compile-time option for incomplete filter dialog in query editor
- added KEXI_NO_UNFINISHED compile-time option for disabling unfinished features
- KexiTableView::DeletionPolicy is now (mostly) used for choose KexiTableView deletion method
TODO: KexiTableView::AskDelete flag is not implemented
TODO: do the same with KexiTableView::AdditionPolicy 
- auto popup menu is added for KexiTableView when KexiTableView::DeletionPolicy != NoDelete
	or the same is for KexiTableView::AdditionPolicy, so no more external (e.g. in KexiDataTable)
	popup menu creation is required for just addition and deletion actions.
- fixed row deletion in query designer's table view
- fixed subwindows sizes: now these are resized to the workspace size
- tableview's cells text positioning fixed, synced with editors, cells size fixed,
  numeric cells' editors are now right-aligned

2003-06-13
- Fixed crash on altering newly created table
- (temporary fix) MySqlRecord is now always set to r-w mode
TODO: MySqlRecord: get readonly flag from the database
TODO: IMPORTANT: Kaxi must automatically add primary key it is not added by user,
  or at least propose this for user before saving altered table. If given table does not conatin
	a PK, then it will be readonly.(or at least removing given row wont be possible if this row 
	is duplicated)
	CURRENT STATE: removing rows works only for table having PK
- data table window's caption fixed
- Control+Delete shortcut added for current record removing
- fixed removing vertical header item after current record removing
- KexiTableEdit now uses layout for proper displaying its Editor
TODO: KexiTableEdit shouldnt have subwidget like KLineEdit but its subclasses should
	inherit also from given editor widget (eg. from KLineEdit)
TODO: KexiTableView's vertical header isn't updated after several actions
- windows now have icons == KexiProjectHandler::itemPixmap()
- normal size for relations dialog's combobox 
TODO: change method for adding tables to relations
- KexiDialogBase subclasses now registers to view with 
	identifier == KexiProjectHandlerItem::fullIdentifier(), not caption or title
- KexiRelationDialog is now registered to view as "kexi/relations", 
	so relations window is unique per view
TODO: disable altering when the same table is opened for data viewing
- avoid opening both alter view and data view for the same table
- avoid creating multiple tables with the same name
TODO: other objects too: move this to common method
TODO: avoid creating/altering table with no fields
	
2003-06-12
- Table View Editor keyboard actions fixed, double type validating fixed,
	fixed Enter, Delete keys, added F2 key, disabled non-printable unused keys
TODO: use QValidator everywhere here!
- after opening KexiDataTable focus is set inside automatically

2003-06-11
- Kexi objects have now titles - user-visible text instead low-level names

2003-06-09
- calling KexiView::finalizeInit() moved to KexiProject, actions for toggling
dock windows visiblity fixed, simplified code
- some icons, actions fixed
- KexiProjectHandlerItem redesign

2003-06-05
- relation view's fixes and redesign

2003-06-04
- projectWizard: double click on dbases list opens selected db
- navigator: KEXI_NO_MULTI_TABS option added for disable showing redundant tabs

2003-05-28
- fixed problem with project window's increased width while clicking on the
  tabs; multitabbar fonts improvements; code cleanups

2003-05-27
- i18n-pl finished for ui and servicenames
- kexi can load and save documents

2003-05-17
- kexi has icon on win32
- kexi installer

2003-05-08
- kexi cvs merge:
  KPath removed (qt/win32 will be patched instead)
- libkexifilters added
- core/kexisettings, core/kexiworkspaceSDI kexiDB/kexidbupdaterecord ported

2003-04-28
- fresh cvs and win32 version merge
- kexifilter added

2003-04-22
- partial (example) polish l18n for GUI

2003-04-15
- keximysqlinterface lib. ported
- updated servicetypes/kexidbdriver.desktop installed
- mysqlinterface.desktop removed: valid is keximysqlinterface.desktop

2003-04-12
- libraries ported: kexipart kexihandler_form kexihandler_query kexihandler_relation
    kexihandler_table kexiprojectwizard

- Kexi running with projectwizard (no db avaliable although)

2003-04-07
- now Kexi has visible menu, toolbar and 'welcome' dialog

2003-04-02
- application's start process is simply hacked inside main() instead of inside KoApplication::start()
  so, Kexi application running on screen for the first time on win32

2003-04-01
- kexi runs but is invisible

2003-03-31
- KEXI_NO_PRINT=1 (temporary) disables printing functionality
- kexiDB/kexidb.h: KexiDBDriver *m_currentDriver moved from public slots section to private
- kexicore and kexidb libs ported
- kexi at least now compiles (but crashes)

2003-03-28
- first touch on Kexi sources for porting

2002-06-23, Sunday, 00:20:36 (Lucijan)
- First Kexi commit, SVN revision #162554
  details: http://websvn.kde.org/trunk/calligra/kexi/?rev=162554
