| 
 
 | 
Kexi 1.0: Detailed Changes
(since 0.9 version)
 
See also: 1.0 Beta 1 Announcement.
 
 
Core Library
^ toc fixed possible crash when an object has beed saved with a different name than proposed
 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
 applications/x-kexi-connectiondata MIME type defined
 internal BLOB storage framework added
 Fixed autogenerating object names (e.g. tables, queries) based on caption: latin1 base name can be now chosen by translator
 Plugins: added servicetype property: X-Kexi-SupportsDataExport (boolean); true for tables and queries
 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
 custom "Identifier" property type and editor added (allows only entering identifiers); used in Table/Form/Report Designers
 possibility of adding non-db-aware windows/tabs in Kexi
 
Table Designer
^ toc fix for 'subType' combo box
 avoid possible infinite recursion
 selecting non-integer type group using 'type combo' clears PKEY flag, if set
 fixed retrieving field captions and descriptions
 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
 avoid asking twice for saving changes to the design on window closing
 find unique name for autogenerated primary key fields
 
Query Designer
^ toc a few bugs for relationships creation fixed
 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 the Property Pane; the combo now reacts on deleting/creating/renaming of table or query
 fixed redrawing (in an unoptimized way)
 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
 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
 fixed possible crash when switching back from SQL View to Design View
 fixed displaying criteria if WHERE section contains '('
 tables' positions are preserved if possible when relations view updating is needed
 
Form Designer
^ toc "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
 fixed crash when there're missing widgets
 record is properly fetched on subsequent switching to Data View mode, specially after data source changes
 data aware 'text editor' widget added
 we're not creating additional (blue) resize handle set, but just change color    of existing set thus resizing works well even if we're during inline editing
 copy 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 to its 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
 Data source tab in the Property Pane implemented
 fixed switching property buffers when switching between child windows
 record navigator is now hidden if there's no data source assigned for a form
 fixed i18n for property captions
 fixed filling enum values
 better handling multiple widget selection; fixes for widget info label
 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
 inline editing enabled for checkbox widget
 width of inserted widgets' size hint increased a bit to for better usability
 better support for Auto Fields, including drag&drop
 editor inside Auto Field is visible at design time
 version information is loaded/saved within form's UI string
 field editor's default focus policy is now inherited from internal editor
 autocaption is set properly for field editor on design time
 field editor's labelCaption is no longer needed
 avoid adding accelerators
 properties like "iconText" are properly hidden
 when a widget is deleted or cut, its parent container become selected
 added possibility of inserting autofields using 'Insert fields' button from Data Source tab
 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
 "other widgets" toolbar popup added for clarity
 data-aware image box widget": "insertFromFile", "saveAs", "cut", "copy", "paste", "delete", "properties" popup actions added
 "readOnly" property added for image, spinboxes and dbfield widgets
 widget's look&feel can differ depending on the view mode
 support for static and data-aware images boxes; properties implemented: scaling (aspect ration can be kept), horizontal/vertical alignment
 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.
 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.
 handle Kexi-specific property editor items
 accessibility: allow changing the tab order of widgets in the Edit Tab Order dialog using keyboard
 AutoField widget: update label for font/palette change, display "Unbounded Auto Field" text when no data source is set (in design time, like for image box); 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 frame widget "KexiFrame", will provide more features; backward compatible with QFrame
 do not allow to move top-level widget's position using arrow keys
 memory for data is now properly freed before closing a form
 infinite loop removed when updating multiple selection
 "Assign Action" dialog cleaned
 versioning added for widget library plugins; this can also avoid conflicts between plugins as we've just renamed them
 Data source pane: disable widget's data source combo box when there is no form's data source is defined
 
Report Designer
(none)
^ toc 
Script Editor
^ toc Open, edit, save and execute scripting code.
 Catch stdout and stderr and display them. On exceptions jump to the line of code where it got thrown.
 Switch between supported interpreter bindings via propertyeditor.
 Configure interpreter-dependend options via property editor.
 
Scripting Library (KROSS)
^ toc Framework: Let everything, interpreters and wrappers, be a plugin.
 Framework: Load plugins only on demand.
 Framework: Call scripting functions from within native code.
 Framework: Callback of native functionality from within scripting code.
 Framework: Integrate handling of classes and instances.
 Embedding: Wrap KexiDB to access the whole database-functionality Kexi provides.
 Embedding: Wrap the Kexi application to access Kexi runtime-stuff like the KexiMainWindow . Embedding: Support QObject, signals and slots and Q_PROPERTY's.
 Extending: Enable using of GUI-toolkits like TKinter or PyQt.
 Extending: Add some example scripts to demonstrate how scripting could be used to extend Kexi.
 Security: Integrate Zope RestrictedPython to provide a restricted python environment to execute python scripting code in a secure sandbox.
 Interpreter: implement Python binding
 
Data and Project Migration
^ toc
Data and Project Migration Wizard
^ toc 'back' button works well on "dest. type" page when file-based driver is used
 user is warned when no source filename was specified
 usability: after successful import, the project is opened
 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
 Implemented moving kexi projects from database servers to database files. 'kexi_ _objects' table contents are properly copied if existed in source database, so queries, forms etc. are properly imported.
 GUI improvements
 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.
 "All Supported Files" filter added to Kexi file dialogs
 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
 added "Always use this encoding in similar situations" option to "Advanced options" dialog (saved to Kexi config file).
 if a destination for imported project is a server, it is also opened after import, if user wanted this
 hide Kexi file extensions in source connection file dialog's filter
 
CSV Data Import and Export
^ toc 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
 floating-point values are properly parsed
 empty cells are supported
 new table name is based on provided filename
 deadlock removed when importing CSV text like ","
 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).
 usability: integer spin box used for "Start at line" option instead of a combo box
 CSV Export dialog added (also for copying to clipboard) with storable export options
 fixed handling line endings inside strings
 importing and detection of time and date/time types added
 Export: CRLF characters are used as in RFC 4180
 Export: quote characters are escaped inside strings
 Export: date/time values are exported without "T" inside (from ISO format)
 optimalization for large data: only about 100 rows are loaded for preview
 import dialog's layout fixed
 missing column with primary key is added if user wants it
 optimized importing large (many thousands of rows) tables: Table GUI is not used to store entire table before importing; only current record is kept in memory buffer
 progress dialog added on importing large data; importing can be cancelled
 tabulator is default field delimiter for clipboard data
 
MS Access Database Import
^ toc 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)
 
MySQL Database Import
(none)
^ toc 
Advanced Widgets
^ toc
Data Table Widget
^ toc update combobox items after change of list data
 combo box popup behaves more like a normal combo (highlighting, selecting)
 added "what's this" support for table columns
 fixed possible crashes for comboboxes within non-db-aware table views
 row repainting fixed when currently highlighted row has changed
 Alt+Down shortcut can be used to drop down combo box (previously only F4 worked)
 Bug #114697: crash fixed in combo box
 Fixed bug for switching sort order
 better sorting: NULL values are smaller than everything else; special sorting for date, time, date/time, boolean, integer and floating-point data types
 clearing text removes value in combo box field for "enum" mode
 failed accepting of row editing now cancels window closing
 fixes for updating row data (this was sometimes visible in Table Designer)
 fixed entering row number in the row navigator (the same within forms)
 Usability: Date, Date/Time and Time cell editors completely reimplemented
 data for large table view is destroyed without blocking GUI (the same within forms)
 date, time and date/time values are displayed using KDE settings
 
Property Editor Pane and Property Library
^ toc KexiProperty library moved to more generic KoProperty widget class is displayed above property editor
 blinking reduced on property buffer switching
 added 2 custom tabs: Data Source, Widgets
 editor within property panel is accepted before buffer switching
 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.
 properties now have 'sortingKey', so the order of properies is maintained
 'list data' introduced to clearly define 'keys' and 'strings' for combobox-like editors
 cursor editor fixed
 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
 Editor: possible crashes fixed
 show preview box in visible area
 fixed entering text into string-type editors with 'autoSync' flag
 repaint fixes when column width changes or when persistent selection is set
 better 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
 preserve "changed" flags (marked with BOLD) between property set switching
 
Main Window
^ toc 'close all' works well if there are more than one yes/no/cancel dialogs required to show
 missing icons added: small icons cleaned up; added better query/form/report/script icons
 crash fixed in 'detach window' action (Childframe mode)
 Navigator: when items renaming, treat "*" ("changed" flag) as a special character, not a part of the item's name
 better readibility: new project type selector uses listview, not icon view
 Toplevel (buggy) and Tabbed (redundant) KMDI modes hidden in Window menu; Changing MDI mode now requires application restart
 'Create' menu renamed to more typical 'Insert'; 'Data' menu moved after 'Format'
 project navigator: usability fixes
 project navigator visibility flag is now stored in config file (usable  for IDEAl mode)
 many i18n'd messages fixed
 "File->Export->Data Table" and "Edit->Copy Special->As Data Table" actions added
 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 appriopriate setting to kexirc for changing this)
 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
 "Dangerous" flag set for potentially destructive dialogs
 'single click opens' mode is off by default, can be turned on
 
Simple Printouts
^ toc added Simple Printouts with Print Preview and Page Setup windows
 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 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
 do not paint invalid values of type time, date or date/time
 
KexiDB (Database Support Library)
^ toc field names converted to lowercase in memory to avoid problems with comparisons
 TableOrQuerySchema helper class added
 Database Properties utility class added to API
 More verbose error messages: Error messages and result numbers can be now inherited, so less information will be lost while displaying message e.g. on failed cursor opening.
 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".
 testing connection executes "USE DATABASE" if needed (e.g. for PostgreSQL)
 
SQL Parser
(none)
^ toc 
Database Drivers
General
 
^ toc MySQL, SQLite drivers: avoid double memory freeing.
 
SQLite Drivers
^ toc fixed crash for SQLite2 driver
 Update for the current KexiDB API.
 
MySQL Driver
^ toc Update for the current KexiDB API.
 
Application Startup
^ toc connection data editor improved; connection data is now storable; added support for adding/deleting/editing connection data
 "-type connection" command line arg added (i.e. support for applications/x-kexi-connectiondata mime type)
 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.
 Better usablity of 'Open Existing' tab page and 'New Project' wizard
 Files like MS Access .mdb can be clicked and then Import Wizard will pop up with preselected parameters. This also works using the command line options.
 check for existence of a file user has selected to open
 added --print and --print-preview command line options
 Project Migration Wizard is proposed if a server-based database is incompatible with Kexi and cannot be opened
 "--skip-dialog" command line option added. Skips displaying connection dialog 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.
 
MS Windows-Specific
 opened files are now locked for writing by default; related error messages improved
 
 |