Kexi/Releases/1.0.0 Changes: Difference between revisions

From KDE Community Wiki
< Kexi‎ | Releases
No edit summary
No edit summary
Line 162: Line 162:
****Security: Integrate Zope RestrictedPython to provide a restricted python environment to execute python scripting code in a secure sandbox.
****Security: Integrate Zope RestrictedPython to provide a restricted python environment to execute python scripting code in a secure sandbox.
****Interpreter: implement Python binding
****Interpreter: implement Python binding
***Data and Project Migration Wizard
****'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
****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
****Aall 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)

Revision as of 22:33, 31 August 2023

KEXI is a visual database apps builder, developed since 2002.

Changes in KEXI

Highlight:

  • Codenamed "Black Mamba"
  • Improved data-aware forms.
  • Form Designer's Data Source Pane for assigning data source to forms and widgets. Object tree view for easier navigating within widgets hierarchy.
  • Import from CSV files and pasting tabular data from clipboard. Export data to CSV files and copying tabular data to clipboard. Automatic detection of delimiters and column types.
  • Improved server connection dialog. Stored connection data.
  • Support for images in forms (stored as BLOBs).
  • New form widget: multiline editor.
  • Improved MS Access (mdb/mde) file import (optional plugin).
  • Improved import of server databases to a file-based projects. Entire Kexi projects (not only tables) can be imported too.
  • Scripting plugin (Python and Ruby) to extend functionality, including example script for HTML export.
  • Simple printouts, print settings and print preview for table and query data.
  • Handbook added (incomplete).
  • More than two hundreds of overall improvements and bug fixes.
  • Kexi 1.0 has been produced by Kexi Team - an international group of independent developers, with assistance and workforce (sponsoring) coming from the OpenOffice Polska company.

Details:

  • 1.0.0 Alpha 1
    • Initial Alpha, released on 2005-12-21, together with KOffice 1.5 Alpha 1
  • 1.0.0 Beta 1
    • Released on 2006-01-31, together with KOffice 1.5 Beta 1
    • Kexi binary packages provided by some Linux/UNIX vendors are available within KOffice release. Testing Facilities with klik are also available.
    • MS Windows installation package from OpenOffice Polska is available.
    • Full Kexi source code ready to compile can be obtained with instructions here.
  • 1.0.0 Beta 2
    • Released on 2006-03-14, together with KOffice 1.5 Beta 2
    • Changes since Beta 1
    • Forms
      • Fixed saving images within forms for MySQL and PostgreSQL databases.
    • Database Drivers
      • MySQL: non-latin1 text data (UTF8 encoded) was not properly retrieved.
      • MySQL, PostgreSQL: entering special characters like ', \, ", \n did not work.
    • CSV Import Dialog
      • Fixed crash when importing CSV files smaller than 200 bytes.
      • Fixed CSV importing for MySQL and PostgreSQL databases.
    • Command-line Options
      • Fixed support for -print-preview option.
  • 1.0.0 Release Candidate
    • Released on 2006-03-29, together with KOffice 1.5 Release Candidate
  • 1.0.0
    • Released on 2006-04-11, together with KOffice 1.5.0
      • Core Library
        • 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(external) (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
        • 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
        • 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
        • "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)
      • Script Editor
        • 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)
        • 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(external).
        • 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 Wizard
        • '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
        • 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
        • Aall 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)