root/tags/dabo-0.5/ChangeLog

Revision 1610, 16.5 kB (checked in by paul, 3 years ago)

Edited some hard-returns in the Changelog, and incremented to the milestone
version of 0.5!

Line 
1 See the Subversion log for all the details.
2
3 Dabo-0.5 (2005-11-30) (Revision 1610):
4
5 Added a new class, DataSet, which lets you issue sql queries against local
6 Dabo data, not just against the backend. You can query, sort, and update
7 individual DataSets, and even join multiple DataSets - all without making a
8 call to the backend database server.
9
10 Began the work of making an embedded, internal, database engine (SQLite).
11 Starting with future releases, SQLite will be an integral part of Dabo.
12
13 Improved the autoBindEvents() to bind to matching methods in all parent
14 containers, not just the form. Auto-binding of events now works so well that
15 it is the default; you no longer have to manually call it. This is now
16 *really cool*.
17
18 Added a basic framework for drawing shapes on any window. Once created, the
19 shapes are accessible with an object reference. This should make dealing with
20 DC's a thing of the past for most uses. Way cool!
21
22 Sorted out MDI/SDI issues. By default, dForm on Windows MDI children and
23 dFormMain on Windows will be MDI parents. On other platforms, both dForm and
24 dFormMain will be SDI by default. The above statement is true for datanav
25 applications (ones generated by the AppWizard). The pure-Dabo default is for
26 SDI forms. In any case, you may change this by setting dabo.MDI.
27
28 Improved the datanav Quick Report feature, which can print a list of the
29 current records, mimicing the browse page, or a whole page of information on
30 one record, mimicing the edit page. Added the ability for the user to save
31 the generated report form for editing with the Report Designer or editing the
32 rfxml directly.
33
34 Improved showContextMenu(), and sorted out the difference between
35 MouseRightClick and ContextMenu events.
36
37 Fixed bug in Find dialog which would segfault on Windows and Mac. Added
38 replace functionality.
39
40 dCheckBox now supports 3 state mode, (True, False and None).
41
42 Fixed bug in dbMySQL that would interpret longtext or longblob fields as
43 ints.
44
45 Fixed dBackend to properly send Python None values as NULLs.
46
47 dForms now know how to read in cdxml files, created by the upcoming UI
48 Designer.
49
50 Fixed a bug in colorTupleFromString() that failed to return the correct
51 value.
52
53 Fixed some encoding issues with dReportWriter.
54
55 Added some handling for broken database connections.
56
57 Added some useful properties to dTreeView that improve its display and
58 editability.
59
60 Fixed some problems with the Hit event and dSpinner.
61
62 Improved report writer's paragraph handling.
63
64 Further removed user code from direct wx access in a few places. User code
65 can still get at the wx structures though, just not quite as easily.
66
67 Fixed mixed indentation problems, made some code cleaner, and added/edited
68 lots of docstrings.
69
70 Added some useful functions to dMenu to remove items and get references to
71 menu items.
72
73 Added a DynamicEnabled property to dMenuItem. Set this to a function which
74 will get run when the parent menu is shown to determine whether the menu
75 item is enabled or not.
76
77 Menu.Children will now contain object references to Dabo menus and menu
78 items.
79
80 Improved dToolbar somewhat, in anticipation of fully objectifying the
81 individual toolbar items. The ultimate goal is for the interface to
82 a dToolbar to be similar to that of dMenu.
83
84 Fixed some problems in dBizobj that make working with multi-table select
85 statements more sane.
86
87 Fixed a bug in dGrid which resulted in very slow deletion of rows, for
88 instance
89 after requerying the recordset and getting fewer rows that were in the grid
90 before.
91
92 Added properties ShowInTaskBar and FloatOnParent to dForm, and actually
93 made the following properties work: ShowMinButton, ShowMaxButton,
94 ShowCloseButton, ShowSystemMenu, TinyTitleBar.
95
96 Added a picklist mode to datanav Forms, showing only the select and browse
97 pages for a user to pick a record. The form dismisses on escape, and returns
98 the selected row's pk on enter.
99
100 Handling of None values in many UI controls, the bizobj, and the database is
101 much improved.
102
103 Added middle button and scroll mouse events.
104
105 Added some hooks to datanav.Form that allow developers to control the
106 select options for given fields. This would allow you to put, for example,
107 a radiogroup with a few choices instead of the default textbox.
108
109 Added connection manager to dApp, which maintains a set of open database
110 connections that your forms can reference by name. Added Connection property
111 to dForm.
112
113 Fixed bugs in and improved dSplitter, dListControl, dControlItemMixin, and
114 dListBox.
115
116 Phwew! All that in 7 weeks.
117
118
119
120 Dabo-0.4.2 (2005-10-07) (Revision 1418):
121 Added PrimaryBizobj property to dForm, which can replace calls to getPrimaryBizobj().
122
123 Added Accepted property to dOkCancelDialog, which gets set automatically if the
124 user pressed "OK".
125
126 Added AutoSQL, UserSQL, CurrentSQL, LastSQL properties to dCursor and dBizobj.
127 When time to requery, the SQL will come from UserSQL if set, or AutoSQL will
128 be regenerated.
129
130 Fixed a bug that kept changes to a new record from getting committed.
131
132 Added DefaultValues property to bizobj.
133
134 Added ListSelection and ListDeselection events to dListControl. Added properties
135 MultipleSelect, HitIndex, LastSelectedIndex, HeaderVisible, HorizontalRules,
136 and VerticalRules. Changed the behavior of both dListControl and dListBox so that merely selecting an item doesn't raise the Hit event; instead, it raises a ListSelection event, and if another item had been previously selected, it raises a ListDeselection event. Hit is only raised from double-clicking on an item, or by pressing Enter.
137
138 Added new property to dTextBox: StrictDateEntry. Changed the code for
139 interpreting dates entered by the user to allow for some less explicit
140 formats (YYYYMMDD, YYMMDD, and MMDD). If StrictDateEntry is False (the
141 default), these other formats will be used when interpreting dates
142 entered by the user.
143
144 Added field-level validation to the framework.
145
146 Improved support for decimal.Decimal, both at the database level and in
147 dTextBox.
148
149 Added new auto event binding, which automatically binds events based on any
150 defined callback functions. For example, if you have a method onMouseEnter()
151 defined, the dEvents.MouseEnter will automatically be bound to that method.
152 Inspired by PythonCard.
153
154 Added RegID property to forms, that allows for object registration
155 with the form. Not all objects require RegIDs, but if they have one,
156 they must be unique among all objects in a form. A reference to that
157 object can then be gotten from any other object by calling
158 'self.Form.getObjectByRegID(<regid>)'.
159
160 Linked RegID to the auto event binding, so that if a form has a method
161 of onHit_cmdOK(), and has a button with a RegID of 'cmdOK', the
162 cmdOk's Hit will get bound to the form's callback, automatically.
163
164 Improved dGrid and dColumn. Many properties added, and you are now in much
165 finer control over the display of grid column headers, grid cell attributes,
166 grid cell editors and renderers, and the grid itself.
167
168 Began work of allowing case-insensitive property values for properties that
169 take string values, and for properties that take a limited number of values
170 where the first letter is unique, you can set the property by just using the
171 first letter. dTextBox.Alignment = "c" sets the property to "Center", for
172 example.
173
174 Modified dBizobj, dCursorMixin, and dBackend so that the user can specify
175 the Unicode Encoding to use. Changed the default encoding from latin-1 to
176 utf-8.
177
178 Added feature to optionally draw sizer outlines on any form that uses dSizers.
179 This is currently accessible via an option in the View menu when the base
180 menu bar is in use, or you can turn it on/off programatically.
181
182 Grids now remember the column that is sorted, and resort when next instantiated.
183
184 Added support in dReportWriter for report groups and report variables, and
185 dynamic band heights (based on the height of contained objects). Added showExpr,
186 which is an expression that evaluates at runtime and if true, shows the object
187 in the report, and not if false.
188
189 Improved the automatic print preview report format in datanav. It now:
190
191     + prints column headers
192
193     + mirrors the font size, column width, cell vertical and horizontal
194       alignment, and column height of the grid
195
196     + mirrors the font size, header height, vertical and horizontal
197       alignment of the grid headers
198
199     + automatically reorients to landscape if the detail flows beyond the width
200       of portrait
201
202     + stops printing more columns if doing so would result in overflowing the
203       right margin
204
205 Key bindings are now case-insensitive.
206
207 Improved docstrings and API documentation.
208
209
210 Dabo-0.4.1 (2005-08-30) (Revision 1226):
211
212 Improved test framework for uiwx. Now you can run ui/uiwx/test.py and get
213 almost all of the dabo controls in one form, and they are the same tests
214 that you get when you run an individual control directly.
215
216 Factored out the saving/restoring of user settings out of dApp into
217 the separate dUserSettingProvider class, which can be subclassed or
218 overridded by the developers. Added properties UserSettingProvider
219 and UserSettingProviderClass to dApp.
220
221 Dabo user settings are no longer saved to .userSettings.ini in the app
222 directory, but are saved to the user's home directory (in ~.dabo/) or
223 if on Windows, in <User Profile>/Application Data/Dabo/.
224
225 Support for SQLite added. As of this moment, Dabo supports several major
226 open-source database backends: MySQL, PostgreSQL, Firebird, and SQLite.
227 Next on the list should be Oracle, Sybase, and MS-SQL.
228
229 Started work implementing a Quick Report in the datanav library, which
230 replaces the old HTML Print Preview. This uses the fledgling Dabo Report
231 Writer to create a PDF rendition of the dataset.
232
233 Added new property for all controls: StatusText. When set, and when the
234 form has a status bar, that text will show in the form's status bar when
235 the mouse enters the control.
236
237 Expanded the dabo.ui.strToBmp() function to accept an optional scale factor
238 or width/height values. If they are passed, the returned bitmap image is
239 sized to those values.
240
241 Added an optional parameter to the bizobj and cursor's getDataSet() method.
242 If you send a list of field names, only those fields are returned.
243
244 Fixed some lingering bugs in the dabo.ui.uiwx package and the datanav
245 lib. dWizard works better now. Improved dGauge, dLine, dBox, dRadioBox,
246 dListBox, dToolBar, and dSizers.
247
248 Added simple decimal support to dTextBox.
249
250 Work continues on dGrid, specifically dColumn is now better worked
251 into the "Dabo Way".
252
253 Added dabo.trace() function, that will drop you into pdb.
254
255 dConnectInfo reworked to have better property names.
256
257 Removed dependency on PIL and reportlab from Dabo. These are dependencies
258 still, but only if you try to run a report.
259
260 Added dabo.lib.StopWatch.StopWatch class, which is a light Python
261 stopwatch with start(), stop(), reset() methods and Value property.
262
263 This is a partial list. Both Ed and Paul have been very busy with Dabo
264 since 0.4 a few weeks ago. Lots of bugfixes and enhancements were made,
265 and we encourage everyone to upgrade.
266
267
268 Dabo-0.4 (2005-08-08) (Revision 1132):
269
270 Cleaned up the initialization of properties. No more initStyleProperties();
271 user code just puts their props in initProperties() or sends them to the
272 constructor in the properties arg or as separate named arguments. The
273 framework sorts out when the properties need to be set in the object
274 construction cycle.
275
276 Improved sizers by separating out the Halign and Valign properties,
277 eliminating the need to use the 'alignment' flags parameter. Added the
278 'Parent' property, making it easy to reference the control that 'owns'
279 the sizer. Also added the convenience method 'append1x(item)', which is
280 shorthand for writing 'append(item, 1, "expand")', since it is used so
281 frequently. The grid sizers now have 'isRowGrowable()' and 'isColGrowable()'
282 methods for checking the status of any row/column.
283
284 New dGrid, with dColumn and Header objects available for reference.
285
286 Lots of convenience functions written, such as those designed for simplified
287 access to common dialogs, are now built into the dabo.ui module. Examples:
288 getFile(), getColor(), getBitmap(), and the getString() functions, which all
289 create, show and destroy the required dialog window, and then return the
290 result. So, to present the user with a font selection dialog, just call
291 dabo.ui.getFont(), and the selected font will be returned (or None if they
292 canceled). Similarly, to show a common messagebox and get the response,
293 just use dabo.ui.info(), dabo.ui.stop(), or dabo.ui.areYouSure().
294
295 doDefault() much faster now (thanks to Alex Martelli)
296
297 Support for decimal.Decimal.
298
299 New classes: dColorDialog, dToolBar.
300
301 Work on the report writer and report designer progresses. The report designer
302 is now in the daboide project, not here in dabo anymore.
303
304 We finally have distutils support. To install Dabo, do the standard
305 "python setup.py install". Thanks to limodou for submitting the patch.
306
307
308 Dabo-0.3.2 (2005-03-21) (Revision 959):
309
310 Work continued on the Dabo report writer and report designer. The
311 writer will now read and write the rfxml file format, and will do some
312 simple reports. The designer will edit the rfxml files, again, with simple
313 formats. This isn't ready to use yet but the foundation is in place.
314
315 cursorToXML() added.
316
317 Encoding property added to databases.
318
319 dBitmap introduced.
320 dWizard introduced.
321 dTreeView introduced.
322
323 dGrid is being refactored, and is almost done. For a short time, it can
324 be found as dGridX.
325
326 We worked hard trying to get window closing not to segfault on Windows,
327 to get icons to display correctly on Mac, and to optimize Dabo in some key
328 bottleneck areas. We've greatly improved Dabo's performance on all platforms,
329 and Dabo now behaves less differently on each platform.
330
331 Improved data binding: controls don't need to bind to a bizobj, but to any
332 object expression.
333
334 Improved Firebird and PostgreSQL support.
335
336 Lots of improvements and bug fixes, in all three tiers.
337
338
339 Dabo-0.3.1 (2005-02-16) (Revision 802):
340
341 Separated creation of dCursor from dBizobj.
342 Added option to automatically create a dPanel in dForm.
343 Further Daboized dListControl.
344 Fixed display of a few of our icons on Mac.
345 Added bindKey() method, which binds a keycombo like "Ctrl+D" to a function.
346 Daboized dMenu, dMenuItem, and dMenuBar.
347 Minimal Tkinter (dCheckbox) working again (testing only).
348 Added ActiveControl property to dForm.
349 Various dSizer improvements were made.
350 We moved various things to better places in the source tree.
351 Connection info now saved in XML format.
352 Localization framework added. Courtesy Vladimir Sekissov.
353 Added Children property, which contains a list of a container's children.
354 dCommandButton is now known as dButton.
355
356
357 Dabo-0.3 (2005-01-10):
358
359 New UI controls added:
360     dFileDialog.py
361     dListBox.py
362     dListControl.py
363     dSplitForm.py
364     dSplitter.py
365
366 GridSizer added. Method calls to all sizers greatly simplified.
367
368 Menus simplified, removing wx-specific calls.
369
370 My favorite UI debugging tool: getMouseObject()
371
372 Framework classes now consistently use the standard initialization
373 methods: initProperties, initEvents, etc.
374
375 Child requeries and transaction support added to bizobj
376
377 Bizobjs now support the relationSpecs.rsxml format for adding child
378 relations.
379
380 Support for fulltext-type searches by word added.
381
382 Auxiliary (one-shot) cursors added to main cursors for better support
383 of different backends.
384
385 Improved unicode support in cursors.
386
387 Added support for PostgreSQL. Added template to ease creation of new
388 backend support scripts.
389
390 appWizard: added support for parent/child/grandchild/... relationships;
391 improved FieldSpecEditor.
392
393 appWizard/dDataNav* classes:
394     changed all wx.Sizers to dSizers
395     added "-ignore-" to visually indicate search criteria that will not be used
396     added save/restore of values on search page.
397     added 'Matches Words' option for fulltext searches
398     fixed bugs with searches for boolean values
399
400 Controls:
401     Now auto-name themselves. Unique name enforcement added.
402     Added _IsContainer attribute to distinguish controls that can add other controls to themselves.
403     Added support for setting colors by name instead of RGB tuple.
404     Fixed resizing bug that would not allow a resized object to be made smaller.
405
406
407 Dabo-0.2 (2004-09-20):
408
409 Continued improving FireBird database support, improved MySQL support. Added
410 preliminary SQLite support.
411
412 Save passwords encrypted.
413
414 Added logger objects to send program output to, instead of directly to stdout.
415
416 Began abstraction of Tkinter at purely an experimental level.
417
418 Added some new controls, such as a better date control and a combo box.
419
420 Brought in some Foxpro string functions from the openfox project.
421
422 New event model, greatly simplifying the binding of events, the raising of events,
423 and the subclassing of events to define new events.
424
425 Added preliminary unicode support to the cursor level.
426    
427
428 Dabo-0.1.1 (2004-06-13):
429
430 Dabo-0.1 (2004-05-10):
Note: See TracBrowser for help on using the browser.