----------------------------------------------------------------------------- Kexi Development CHANGELOG Document From jstaniek's Point of View Copyright (C) 2003-2007 Jaroslaw Staniek js at iidea.pl / OpenOffice Polska Kexi home page: http://www.kexi-project.org/ ----------------------------------------------------------------------------- For most important commits use: CCMAIL:kexi-devel@kde.org For interesting commits use: FEATURE: CCMAIL:danny@commit-digest.org For bugfixes use CCMAIL:###-done@bugs.kde.org Legend: = -a fix for recently introduced bug or a minor/too technical fix not worth mentioning in the public changelog TODO: fix displaying default values in comboboxes (form and tableview) TODO: use KCompletionBox in (editable/noneditable) comboboxes 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 KOffice 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; 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 KOffice 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 KOffice 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 KOffice 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 ⪚ - use 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 KOffice 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 KOffice 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: " : " - 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 KOffice 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 KOffice 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 KOffice 1.5) ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ 1.0 rc1 (with KOffice 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 KOffice 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 KOffice 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 " 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 KOffice 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 KOffice 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 KOffice 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#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 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 - 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 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 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 () LIMIT 1" statement is executed * Connection::resultCount() added: "SELECT COUNT() FROM ()" 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) : 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. 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 [:] 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 trinity.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_' 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 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 " CLI option added: "Start new object design of 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: - '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) - 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 trinity.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 koffice - 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 KOffice 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 - 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 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, 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//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 koffice_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 koffice/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 kofficecore): 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! - line removed from koffice_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/koffice/kexi/?rev=162554