| 1 |
See the Subversion log for all the details. |
|---|
| 2 |
|
|---|
| 3 |
Dabo 0.8.3 (2007-12-11) Revision 3793): |
|---|
| 4 |
=============================================================================== |
|---|
| 5 |
Field types in the data layer are now covered better (previously only non- |
|---|
| 6 |
joined fields were massaged). |
|---|
| 7 |
|
|---|
| 8 |
Transaction tokens are now per-connection, not per-bizobj. Thanks Uwe Grauer |
|---|
| 9 |
for the nudge. |
|---|
| 10 |
|
|---|
| 11 |
dGrid performs better when changing rows. |
|---|
| 12 |
|
|---|
| 13 |
Fixed check/radio menu items to work under GTK and Windows. |
|---|
| 14 |
|
|---|
| 15 |
Fixed display problems with word-wrapped labels in dDialog. |
|---|
| 16 |
|
|---|
| 17 |
Fixed some report writer xml conversion problems. |
|---|
| 18 |
|
|---|
| 19 |
Enabled setting report writer's OutputFile property to a file-like object, and |
|---|
| 20 |
not strictly a file object. |
|---|
| 21 |
|
|---|
| 22 |
Fixed unicode-xml saving/loading in ReportDesigner. |
|---|
| 23 |
|
|---|
| 24 |
Added default size and position for forms (they tended to be much too small |
|---|
| 25 |
before). |
|---|
| 26 |
|
|---|
| 27 |
Web update fit and finish. |
|---|
| 28 |
|
|---|
| 29 |
Added defensive code to dBizobj when running without primary keys. |
|---|
| 30 |
|
|---|
| 31 |
Added dabo.ui.getDisplaySize() |
|---|
| 32 |
|
|---|
| 33 |
Fixed sending Enabled property to dToolbar constructor. |
|---|
| 34 |
|
|---|
| 35 |
Refactored masked functionality out of dTextBox into dMaskedTextBox. |
|---|
| 36 |
|
|---|
| 37 |
Improved Class Designer and Property Sheet. |
|---|
| 38 |
|
|---|
| 39 |
Experimental replacement for dSpinner added: dSpinnerX. |
|---|
| 40 |
|
|---|
| 41 |
Fixed relative pathing problem in .cdxml files. |
|---|
| 42 |
|
|---|
| 43 |
Fixed dEditor to gracefully handle cases where we don't have read/write |
|---|
| 44 |
permissions on the file. |
|---|
| 45 |
|
|---|
| 46 |
Added getDisplayLocker(), which gracefully handles unlocking the display |
|---|
| 47 |
when it goes out of scope. |
|---|
| 48 |
|
|---|
| 49 |
AppWizard-generated apps running in Python 2.4 and earlier could fail due |
|---|
| 50 |
to recent changes in dApp. Fixed. |
|---|
| 51 |
|
|---|
| 52 |
Fixed several bugs in the handling of compound cursor.KeyField values. |
|---|
| 53 |
|
|---|
| 54 |
Can now set dColumn.Resizable, not just dGrid.ResizableColumns. |
|---|
| 55 |
|
|---|
| 56 |
Tickets fixed: |
|---|
| 57 |
#1070 |
|---|
| 58 |
#1072 |
|---|
| 59 |
#1108 |
|---|
| 60 |
#1109 |
|---|
| 61 |
#1110 |
|---|
| 62 |
#1117 |
|---|
| 63 |
#1121 |
|---|
| 64 |
#1123 |
|---|
| 65 |
|
|---|
| 66 |
Thanks to suggestions, patches, and contributions from: |
|---|
| 67 |
Carl Karsten |
|---|
| 68 |
Uwe Grauer |
|---|
| 69 |
Pedro Vale de Gato |
|---|
| 70 |
Orcun Avsar |
|---|
| 71 |
Heling Yao |
|---|
| 72 |
Nate Lowrie |
|---|
| 73 |
Lukasz Szybalski |
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 |
=============================================================================== |
|---|
| 77 |
Dabo 0.8.2 (2007-10-24) (Revision 3580): |
|---|
| 78 |
|
|---|
| 79 |
Most Notable Things: |
|---|
| 80 |
+ The dabodemo and daboide repositories are now inside the main dabo repository. |
|---|
| 81 |
|
|---|
| 82 |
+ We no longer maintain separate stable branch; point releases are snapshots of |
|---|
| 83 |
the development branch instead of merely backported bugfixes. |
|---|
| 84 |
|
|---|
| 85 |
+ Web Update is available; after downloading and installing this version of |
|---|
| 86 |
Dabo, you can turn Web Update on in the new Edit|Preferences window and |
|---|
| 87 |
be notified when updates are available. Dabo will then update itself if you wish. |
|---|
| 88 |
|
|---|
| 89 |
|
|---|
| 90 |
UI: |
|---|
| 91 |
+ Added masking ability to dTextBox and dEditBox, via the Mask and |
|---|
| 92 |
MaskedValue properties. |
|---|
| 93 |
|
|---|
| 94 |
+ Added dRadioMenuItem |
|---|
| 95 |
|
|---|
| 96 |
+ dEditor now formats lots of languages, not just python. Thanks Nate! |
|---|
| 97 |
|
|---|
| 98 |
+ Improved the code completion logic of dEditor to not just blindly execute code, |
|---|
| 99 |
which is slow and dangerous. |
|---|
| 100 |
|
|---|
| 101 |
+ Added dEvents.InteractiveChange, |
|---|
| 102 |
|
|---|
| 103 |
+ dLinePlot added thanks to Nate. |
|---|
| 104 |
|
|---|
| 105 |
+ Fixed ShowBox property in dRadioList (#1093). |
|---|
| 106 |
|
|---|
| 107 |
+ Fixed Enter not firing Hit in dComboBox (#1061). |
|---|
| 108 |
|
|---|
| 109 |
+ Fixed dEditor bug if a def statement was the last line in the file. (#1031). |
|---|
| 110 |
|
|---|
| 111 |
+ Fixed problem in dGrid where a column sizing operation would sometimes start |
|---|
| 112 |
a sort operation. Thanks Larry! |
|---|
| 113 |
|
|---|
| 114 |
+ Put in Kevin Edward's solution for replacing deprecated calls in dGridSizer.py. |
|---|
| 115 |
Thanks Kevin! |
|---|
| 116 |
|
|---|
| 117 |
+ Grid selection wasn't updating correctly when navigating with the keyboard. Thanks |
|---|
| 118 |
Simen for reporting and helping to fix the problem. |
|---|
| 119 |
|
|---|
| 120 |
+ Added FrameCount and PictureIndex properties to dImage to deal with multi-image |
|---|
| 121 |
files. |
|---|
| 122 |
|
|---|
| 123 |
+ Added PreferenceDialog class, a central place for putting application preferences. |
|---|
| 124 |
|
|---|
| 125 |
+ Added the HotKey property to dMenuItem, allowing for setting the hotkeys separately |
|---|
| 126 |
from the Caption. Added ui.dialogs.HotKeyEditor, for use by the user in the new |
|---|
| 127 |
PreferenceDialog to remap hotkeys. |
|---|
| 128 |
|
|---|
| 129 |
+ Enhanced dPageList to be better behaved when resizing. |
|---|
| 130 |
|
|---|
| 131 |
+ Added Transparency property to forms. 255 is totally opaque; 0 is totally transparent. |
|---|
| 132 |
|
|---|
| 133 |
+ Disabled the calendar and shortcut keys in dDateTextBox when ReadOnly=True. (#1103). |
|---|
| 134 |
|
|---|
| 135 |
+ The RowNumChanged event now passes the old and new row numbers, and the bizobj |
|---|
| 136 |
that changed rows. |
|---|
| 137 |
|
|---|
| 138 |
+ Improved performance of refreshes for dLabel with WordWrap=True. (#1105). |
|---|
| 139 |
|
|---|
| 140 |
+ Fixed dHtmlBox to find inline images on Windows. |
|---|
| 141 |
|
|---|
| 142 |
+ Corrected a problem with text controls losing their selection information when they |
|---|
| 143 |
lose focus. (#1104). |
|---|
| 144 |
|
|---|
| 145 |
|
|---|
| 146 |
db: |
|---|
| 147 |
+ Improved the firebird code to get the pk of the table. Thanks Uwe! |
|---|
| 148 |
|
|---|
| 149 |
+ John made improvements to dbPostgres.py |
|---|
| 150 |
|
|---|
| 151 |
+ Fixed problem in determining NonUpdateFields. |
|---|
| 152 |
|
|---|
| 153 |
|
|---|
| 154 |
biz: |
|---|
| 155 |
+ Found and fixed bugs related to parent/child relationships |
|---|
| 156 |
|
|---|
| 157 |
+ Major improvements to transaction handling. |
|---|
| 158 |
|
|---|
| 159 |
|
|---|
| 160 |
General Framework: |
|---|
| 161 |
+ dLocalize now converts strings into the given language. Set your language |
|---|
| 162 |
using dApp.setLanguage(). The locales have been added to Launchpad, and we'll |
|---|
| 163 |
regularly sync up with LP for our translations. |
|---|
| 164 |
|
|---|
| 165 |
+ Fixed case mismatch in dLocalize (#1086). |
|---|
| 166 |
|
|---|
| 167 |
+ Added dApp.makeDaboDirectories() and quickStart(), which set up a structure for |
|---|
| 168 |
dabo-based applications. |
|---|
| 169 |
|
|---|
| 170 |
|
|---|
| 171 |
Reporting: |
|---|
| 172 |
+ Fixed the Show property to evaluate correctly at runtime. |
|---|
| 173 |
|
|---|
| 174 |
+ BarGraph added, thanks to Gary. |
|---|
| 175 |
|
|---|
| 176 |
+ Fixed a traceback when trying to start ReportDesigner. (#1106). |
|---|
| 177 |
|
|---|
| 178 |
|
|---|
| 179 |
=============================================================================== |
|---|
| 180 |
Dabo 0.8.1 (2007-07-13) (Revision 3251): |
|---|
| 181 |
|
|---|
| 182 |
+ Added ScanRestorePosition property to dBizobj. Added optional parameter |
|---|
| 183 |
scanReverse to scan(). This fixes the fact that previously user code |
|---|
| 184 |
didn't have access to the __scanRestorePosition and __scanReverse |
|---|
| 185 |
attributes. |
|---|
| 186 |
|
|---|
| 187 |
+ Refactored/fixed the case of an exception happening during scan: previously, |
|---|
| 188 |
another exception would happen because we tried to restore the row number |
|---|
| 189 |
even if we saved the PK value instead. (Ticket #1064) |
|---|
| 190 |
|
|---|
| 191 |
+ The "Preferences" menu item in dBaseMenuBar's Edit menu used a hotkey of "P", |
|---|
| 192 |
which conflicted with Paste. Checked around and other apps use the "e" for |
|---|
| 193 |
the hotkey instead. Fixed in trunk and stable. |
|---|
| 194 |
|
|---|
| 195 |
+ Fixed a problem where textboxes would lose their selection when moving |
|---|
| 196 |
focus. |
|---|
| 197 |
|
|---|
| 198 |
+ Fixed a KeyError in dTreeView's makeDirTree() function, thanks to a fix |
|---|
| 199 |
by hraban in ticket #1076. |
|---|
| 200 |
|
|---|
| 201 |
+ Fixed some unicode issues in paths in 3 places in the framework, thanks to |
|---|
| 202 |
Wolfram Hinderer in ticket #1083. |
|---|
| 203 |
|
|---|
| 204 |
+ Fixed copy/paste in dShell. Ticket #1039. |
|---|
| 205 |
|
|---|
| 206 |
|
|---|
| 207 |
=============================================================================== |
|---|
| 208 |
Dabo 0.8 (2007-05-09) (Revision 3111): |
|---|
| 209 |
|
|---|
| 210 |
Enhancements: |
|---|
| 211 |
|
|---|
| 212 |
===== General Stuff ===== |
|---|
| 213 |
+ Improved a lot of the handling of paths. It is now possible to correctly |
|---|
| 214 |
resolve a relative path when the source file and the contained file are in |
|---|
| 215 |
different directories, while the app is running from a third directory. |
|---|
| 216 |
|
|---|
| 217 |
+ Added datanav2; deprecated datanav. datanav2 no longer supports fieldSpecs, |
|---|
| 218 |
relationSpecs, and other things. The general theme is that the generated |
|---|
| 219 |
code is meant to be taken as boilerplate to be edited by the developer to |
|---|
| 220 |
achieve the desired results. |
|---|
| 221 |
|
|---|
| 222 |
+ Began work on new unit testing harness, with Nate Lowrie at the helm. |
|---|
| 223 |
|
|---|
| 224 |
+ Added/enhanced unit tests for dCursor, dBizobj, dTextBox, and dForm. |
|---|
| 225 |
|
|---|
| 226 |
+ Big fixes and enhancements, as always, to runtime cdxml instantiation, |
|---|
| 227 |
including much better inheritance of properties. |
|---|
| 228 |
|
|---|
| 229 |
+ General move away from accepting specific keyword arguments to class |
|---|
| 230 |
constructors, in favor of accepting property values instead. |
|---|
| 231 |
|
|---|
| 232 |
===== UI Tier ===== |
|---|
| 233 |
+ Began work getting grid cell properties set up. IOW, being able to set the |
|---|
| 234 |
ForeColor of a specific row in a column (a single cell), including |
|---|
| 235 |
dynamic cell properties. Currently, it works, but the only property |
|---|
| 236 |
I've added yet is CellForeColor and DynamicCellForeColor. |
|---|
| 237 |
|
|---|
| 238 |
+ Removed the requirement that objects used as DataSources have to inherit |
|---|
| 239 |
from dObject. Thanks Carl for pointing out the limitation. |
|---|
| 240 |
|
|---|
| 241 |
+ Added dDockForm to the main trunk, which is Dabo's wrapper for wxAUI. |
|---|
| 242 |
|
|---|
| 243 |
+ Added the option of passing complex filter expressions to setAll(). This |
|---|
| 244 |
function now accepts a tuple of filter expressions of the format |
|---|
| 245 |
'att comp val', which will be eval'd with the child objects inn order to |
|---|
| 246 |
determine if the filter applies. Each expression in the tuple is ANDed |
|---|
| 247 |
with the others; all the tuple elements must evaluate to True for the |
|---|
| 248 |
value to be set. |
|---|
| 249 |
|
|---|
| 250 |
+ Added the dHtmlBox.HtmlLinkClicked event. |
|---|
| 251 |
|
|---|
| 252 |
+ Added the HatchStyle property to draw objects. This gives you the option |
|---|
| 253 |
of specifying that the fill for drawn objects can be one of the following |
|---|
| 254 |
hatch patterns: |
|---|
| 255 |
|
|---|
| 256 |
Solid (default) |
|---|
| 257 |
Transparent |
|---|
| 258 |
Cross |
|---|
| 259 |
Horizontal |
|---|
| 260 |
Vertical |
|---|
| 261 |
Diagonal |
|---|
| 262 |
ReverseDiagonal |
|---|
| 263 |
CrossDiagonal |
|---|
| 264 |
|
|---|
| 265 |
+ EasyDialogBuilder - minor improvements by Nate Lowrie. |
|---|
| 266 |
|
|---|
| 267 |
+ Added ensureLineVisible() method in dEditor, which even unfolds if needed. |
|---|
| 268 |
|
|---|
| 269 |
+ Added WordWrap to dGrid columns while in edit mode. |
|---|
| 270 |
|
|---|
| 271 |
+ Enhanced dShell to have Dabo property access, including Font properties. |
|---|
| 272 |
|
|---|
| 273 |
+ Improved dDateTextBox. |
|---|
| 274 |
|
|---|
| 275 |
+ Coerce dMessageBox messages into strings, which is convenient. |
|---|
| 276 |
|
|---|
| 277 |
+ dGrid's navigation now traps and responds to business rule violations, with |
|---|
| 278 |
mediation by the form if possible. |
|---|
| 279 |
|
|---|
| 280 |
+ dTreeView supported in ClassDesigner-designed files. |
|---|
| 281 |
|
|---|
| 282 |
+ Added Icon property to dApp, which will become the default Icon for all |
|---|
| 283 |
forms and dialogs, if not overridden at the form level. |
|---|
| 284 |
|
|---|
| 285 |
+ Simplified drag/drop in dabo.ui. |
|---|
| 286 |
|
|---|
| 287 |
+ Added dabo.ui.getChoice() and getChoices(), which present a list of choices |
|---|
| 288 |
to the user, and return the user's selection(s). |
|---|
| 289 |
|
|---|
| 290 |
+ Added TextLength property to dTextBox, to limit the number of characters |
|---|
| 291 |
that can be typed in by the user. Courtesy Nate Lowrie. |
|---|
| 292 |
|
|---|
| 293 |
+ Improved font zooming. Improved handling of resizing fonts for different |
|---|
| 294 |
platforms (Mac), so that you have cross-platform consistency. Thanks to |
|---|
| 295 |
Dj Gilcrease for help in working this out. |
|---|
| 296 |
|
|---|
| 297 |
+ Added Continuous property to dSlider, which determines whether Hit is |
|---|
| 298 |
raised while the slider is being changed, or only after the user has |
|---|
| 299 |
finished sliding. |
|---|
| 300 |
|
|---|
| 301 |
+ Improved autocompletion in dEditor. |
|---|
| 302 |
|
|---|
| 303 |
+ Added AutoAutoCompletion option to dEditor. |
|---|
| 304 |
|
|---|
| 305 |
+ Added methods to dabo.ui: isMouseLeftDown(), isMouseRightDown(), |
|---|
| 306 |
and isMouseMiddleDown(). |
|---|
| 307 |
|
|---|
| 308 |
+ Added tango icon theme and changed our toolbars/menus to reference the new |
|---|
| 309 |
icons. (Ticket # 1037) |
|---|
| 310 |
|
|---|
| 311 |
+ Added Modal property to dForm, settable only by sending the property to the |
|---|
| 312 |
constructor. When Modal, a dialog instead of a form will be instantiated. |
|---|
| 313 |
|
|---|
| 314 |
+ dEditor now properly syntax-colors dabo-based xml files such as .cdxml |
|---|
| 315 |
and .rfxml. Previously, it displayed these files using Python coloring. |
|---|
| 316 |
|
|---|
| 317 |
+ Removed IconBundle property from dFormMixin. Added the ability to set Form.Icon |
|---|
| 318 |
to a sequence of filenames which Dabo will convert to a wx.IconBundle |
|---|
| 319 |
automatically. |
|---|
| 320 |
|
|---|
| 321 |
+ Added property WordWrap to dEditBox. Default is True. |
|---|
| 322 |
|
|---|
| 323 |
===== Data Tier ===== |
|---|
| 324 |
+ Added the option of passing additional keyword arguments to db.dConnection. |
|---|
| 325 |
Thanks Uwe for noting the limitation. |
|---|
| 326 |
|
|---|
| 327 |
+ dbFirebird - Minor improvements by Uwe Grauer. |
|---|
| 328 |
|
|---|
| 329 |
+ dbPostgreSQL - Improvements by John Fabiani, including some missing data |
|---|
| 330 |
types and support for schemas. |
|---|
| 331 |
|
|---|
| 332 |
+ Added support for SQL-JOIN clauses in the sql builder. |
|---|
| 333 |
|
|---|
| 334 |
+ Added database logging, an optional feature. |
|---|
| 335 |
|
|---|
| 336 |
+ Improved SQLite by providing DictCursors. |
|---|
| 337 |
|
|---|
| 338 |
+ Added enclosing of table, field, and other names in the appropriate quote |
|---|
| 339 |
character for the database backend in use. This allows for cases such as |
|---|
| 340 |
spaces in field names. Control whether quoting happens automatically using |
|---|
| 341 |
the dBizobj.AutoQuoteNames property. |
|---|
| 342 |
|
|---|
| 343 |
===== Bizobj Tier ===== |
|---|
| 344 |
+ Added the concept of VirtualFields to dBizobj, which provides a simple, |
|---|
| 345 |
flexible interface to reference calculated fields on the fly. |
|---|
| 346 |
|
|---|
| 347 |
+ Added the 'SaveNewUnchanged' property to dBizobj. When this is True, new |
|---|
| 348 |
records that have not been modified from their defaults are saved; the |
|---|
| 349 |
default remains to not insert such records. |
|---|
| 350 |
|
|---|
| 351 |
+ Improved data binding to bizobjs on a parent form. |
|---|
| 352 |
|
|---|
| 353 |
+ Added dBizobj.deleteAllChildren() |
|---|
| 354 |
|
|---|
| 355 |
+ Added ability to set parameters to pass to default values in dBizobj. |
|---|
| 356 |
|
|---|
| 357 |
+ Added oldVal() method to dBizobj, which takes a field name and returns the |
|---|
| 358 |
value of the field at the time of the last requery. |
|---|
| 359 |
|
|---|
| 360 |
+ Added moveToPK() method in dBizobj |
|---|
| 361 |
|
|---|
| 362 |
|
|---|
| 363 |
Bug Fixes: |
|---|
| 364 |
+ dRadioList.ButtonSpacing wasn't able to be set from initProperties() or |
|---|
| 365 |
as an argument to the constructor. Fixed. |
|---|
| 366 |
|
|---|
| 367 |
+ Starting in wxPython 2.7, our dialogs weren't giving focus to the first |
|---|
| 368 |
control. Fixed. |
|---|
| 369 |
|
|---|
| 370 |
+ More wxPython 2.8 bugfixes in dMenu, dPageFrame |
|---|
| 371 |
|
|---|
| 372 |
+ Fixed dConnection and dConnectInfo to raise exceptions if improper |
|---|
| 373 |
arguments are passed. Ditto for dSizer*. |
|---|
| 374 |
|
|---|
| 375 |
+ Fixed dBorderSizer's box to stay in back of the controls contained within it. |
|---|
| 376 |
|
|---|
| 377 |
+ Fixed ForeColor to work immediately on Gtk. |
|---|
| 378 |
|
|---|
| 379 |
+ Controls were flushing their value, and raising ValueChanged events, too |
|---|
| 380 |
many times. Fixed. |
|---|
| 381 |
|
|---|
| 382 |
+ Dialogs and forms weren't able to set things like whether they have a |
|---|
| 383 |
close box, from within initProperties. Fixed. |
|---|
| 384 |
|
|---|
| 385 |
+ Message dialogs invoked like dabo.ui.areYouSure() weren't getting attached |
|---|
| 386 |
to the appropriate parent form, so that the message displayed wouldn't |
|---|
| 387 |
activate the form that it applied to first. Fixed. |
|---|
| 388 |
|
|---|
| 389 |
+ Fixed rapid flashing in a sorted dGrid when an editable column was selected. |
|---|
| 390 |
|
|---|
| 391 |
+ Fixed bug that prevented adding new records when child bizobjs existed. |
|---|
| 392 |
(Ticket #1027). Thanks to Larry Long and John Fabiani for continued |
|---|
| 393 |
assistance in tracking these problems down. |
|---|
| 394 |
|
|---|
| 395 |
+ setWhereClause() method missing in dBizobj. Fixed. |
|---|
| 396 |
|
|---|
| 397 |
+ Fixed dCursor.getChangedRows() to not take into account new records that |
|---|
| 398 |
have no changes. |
|---|
| 399 |
|
|---|
| 400 |
+ Fixed the dBizobj.save() process to not scan all child bizobj's repeatedly. |
|---|
| 401 |
This fixes some problems, and speeds up save() considerably. |
|---|
| 402 |
|
|---|
| 403 |
+ Fixed a problem where canceling a bizobj that had no records caused an |
|---|
| 404 |
exception that was being displayed with notifyUser(). Normally, a bizobj |
|---|
| 405 |
with no records does not need canceling, so raising such an error is not |
|---|
| 406 |
appropriate. You can still have the old behavior by calling cancel() with |
|---|
| 407 |
'ignoreNoRecords = False'. |
|---|
| 408 |
|
|---|
| 409 |
+ Fixed a bug reported by Larry Long and John Fabiani that involved requerying |
|---|
| 410 |
one bizobj resulted in checking for pending changes in other bizobjs that |
|---|
| 411 |
were not involved in the requery. |
|---|
| 412 |
|
|---|
| 413 |
+ Descending sorts created infinite loop with duplicate values. Fixed. |
|---|
| 414 |
(Ticket #1041). Thanks Jussi. |
|---|
| 415 |
|
|---|
| 416 |
+ Fixed status text to clear the old field validation failed message when the |
|---|
| 417 |
user fixes the value and the field now passes validation. |
|---|
| 418 |
|
|---|
| 419 |
+ Fixed the geometry persistence to only restore the size of the form from |
|---|
| 420 |
user settings if BorderResizable is set to True. |
|---|
| 421 |
|
|---|
| 422 |
+ Fixed dGrid's AlternateRowColoring to be settable from the constructor |
|---|
| 423 |
or initProperties (previously, it was only settable in afterInit() or |
|---|
| 424 |
later). |
|---|
| 425 |
|
|---|
| 426 |
+ Dynamic props on dColumn were not working: fixed. |
|---|
| 427 |
|
|---|
| 428 |
+ Fixed a bug that confused the string 'None' with the null value None when |
|---|
| 429 |
setting BorderStyle from a cdxml. Thanks to Miguel for catching this one. |
|---|
| 430 |
|
|---|
| 431 |
+ Fixed a couple of bugs related to the dSizer.BorderSides property. |
|---|
| 432 |
Previously it was not retrieving that property correctly from the internal |
|---|
| 433 |
wx flag. |
|---|
| 434 |
|
|---|
| 435 |
|
|---|
| 436 |
=============================================================================== |
|---|
| 437 |
Dabo 0.7.2 (2007-01-18) (Revision 2716): |
|---|
| 438 |
|
|---|
| 439 |
Additions, all minor, backported to stable only to keep compatibility with the |
|---|
| 440 |
stable versions of daboide and/or dabodemo: |
|---|
| 441 |
+ Enhanced the getImagePath() function to work better with Windows pathing. |
|---|
| 442 |
+ Refactored dPanel into a common mixin class. |
|---|
| 443 |
+ Added getBaseNodeClass() function to dTreeView. |
|---|
| 444 |
|
|---|
| 445 |
Bug Fixes: |
|---|
| 446 |
+ Fixed the stable branch to work with wxPython 2.7 and 2.8, which was a fairly |
|---|
| 447 |
large backport of relevant changes from the development trunk. |
|---|
| 448 |
+ Fixed a form activation problem that would happen in some cases on Windows, |
|---|
| 449 |
particularly with the Class Designer. |
|---|
| 450 |
+ Fixed incremental search in dGrid, which was broken by earlier unicode fixes. |
|---|
| 451 |
+ dBizobj.onSaveNew() user hook never being called. Fixed. |
|---|
| 452 |
+ Fixed but in dUserSettingProvider if setting/retrieving nested settings. |
|---|
| 453 |
+ dForm not updating field values after a save(), which is sometimes needed. |
|---|
| 454 |
Fixed. |
|---|
| 455 |
+ Fixed dForm to explicitly cancel bizobj changes if the user answers "no" to |
|---|
| 456 |
the "do you wish to save?" message. Otherwise, the application would never |
|---|
| 457 |
finish. |
|---|
| 458 |
+ Fixed dGrid and dImage's attProperties. |
|---|
| 459 |
+ Fixed bug in dGrid.HeaderHeight resulting in a traceback if you tried to set |
|---|
| 460 |
it in initProperties() or as a kwarg to the constructor. |
|---|
| 461 |
+ Fixed dabo.ui.busyInfo() to actually show the specified text instead of just |
|---|
| 462 |
an ugly grey box on Gtk. |
|---|
| 463 |
+ Fixed a bug in dbFirebird that was caused by initializing more than once. |
|---|
| 464 |
+ Fixed a problem with the date textbox in the datanav select page adding 1 |
|---|
| 465 |
to each month, resulting in an incorrect select statement. |
|---|
| 466 |
+ Fixed some minor wording and behavior problems with the Quick Report option |
|---|
| 467 |
in AppWizard apps, thanks to Ted Roche. |
|---|
| 468 |
+ Fixed htmlAbout to not return the html tags to the clipboard. |
|---|
| 469 |
+ Fixed dToggleButton to always flush its data, not just on LostFocus. |
|---|
| 470 |
|
|---|
| 471 |
|
|---|
| 472 |
=============================================================================== |
|---|
| 473 |
Dabo 0.7.1 (2006-11-21) (Revision 2490): |
|---|
| 474 |
|
|---|
| 475 |
Bugfixes: |
|---|
| 476 |
+ Segfault in dSplitter when dragging the sash. Fixed. |
|---|
| 477 |
+ __init__() of the wx classes happening twice. Fixed. |
|---|
| 478 |
+ Setting Caption sometimes required a subsequent refresh(). Fixed. |
|---|
| 479 |
|
|---|
| 480 |
|
|---|
| 481 |
=============================================================================== |
|---|
| 482 |
Dabo 0.7 (2006-11-16) (Revision 2464): |
|---|
| 483 |
|
|---|
| 484 |
It has sure been a while, but we haven't been resting. Lots of new stuff |
|---|
| 485 |
as we move one step forward to Dabo 1.0. Here are the most important |
|---|
| 486 |
things to mention. |
|---|
| 487 |
|
|---|
| 488 |
Notable things: |
|---|
| 489 |
+ SQLite is now required. |
|---|
| 490 |
+ wxPython 2.7 and 2.8 DO NOT WORK yet, but will soon, so stick with 2.6 |
|---|
| 491 |
for now. |
|---|
| 492 |
+ Dabo preferences are no longer saved in .ini files, but as sqlite databases. |
|---|
| 493 |
+ The old shortcut of referencing fields in bizobjs like: |
|---|
| 494 |
fname = biz.first_name |
|---|
| 495 |
no longer works. You need to change all such code to read: |
|---|
| 496 |
fname = biz.Record.first_name |
|---|
| 497 |
|
|---|
| 498 |
Known Issues: |
|---|
| 499 |
+ FireBird Requery problem (see http://dabodev.com/tracker/0229) |
|---|
| 500 |
|
|---|
| 501 |
|
|---|
| 502 |
Bug Fixes: |
|---|
| 503 |
+ Replace function in dTextBox and dEditBox causing traceback. Fixed. |
|---|
| 504 |
+ Incremental search in dGrid now works with unicode data. |
|---|
| 505 |
+ Double select page on Mac and Win. Fixed. |
|---|
| 506 |
+ Datanav select page scrollbar doesn't show. Fixed. |
|---|
| 507 |
+ Ignore Tab and Shift+Tab in grid searching, so they can navigate. |
|---|
| 508 |
+ Setting AutoPopulatePK on the bizobj doesn't propagate to cursor. Fixed. |
|---|
| 509 |
+ Entering a unicode character in a dTextBox set up with a str value doesn't |
|---|
| 510 |
stick. Fixed. |
|---|
| 511 |
+ Fixed unicode problems in dEditor. |
|---|
| 512 |
+ Fixed problem where fast cpu's could generate non-unique object names. |
|---|
| 513 |
+ Fixed showModal() to reactivate previously deactivated windows accordingly. |
|---|
| 514 |
+ dCursor's initProperties() called twice. Fixed. |
|---|
| 515 |
+ Spacers not working correctly in class designer generated files. Fixed. |
|---|
| 516 |
+ Fixed dabo.ui.getMouseObject() to always return the dabo object, not the |
|---|
| 517 |
wx one. This would happen with grids, for example. |
|---|
| 518 |
+ Border sizer caption not showing. Fixed. |
|---|
| 519 |
+ Connection information not properly escaped in default.cnxml. Fixed. |
|---|
| 520 |
+ Fixed layout of nested sizers. |
|---|
| 521 |
+ Fixed running class-within-a-class (class designer generated). |
|---|
| 522 |
+ Fixed paged controls to work when generated from the Class Designer. |
|---|
| 523 |
+ Grid mouse events duplicated. Fixed. |
|---|
| 524 |
+ Can't set RegID from within initProperties(). Fixed. |
|---|
| 525 |
+ stderr and stdout not restored if intellisense processing caused exception. |
|---|
| 526 |
Fixed. |
|---|
| 527 |
+ Fixed login form to look okay at low resolutions. |
|---|
| 528 |
+ Removed old, lingering requirement for mx.DateTime. |
|---|
| 529 |
+ dSpinner doesn't work correctly unless initialized to '0'. Fixed. |
|---|
| 530 |
+ dForm.ActiveControl would return controls in other forms, if they were the |
|---|
| 531 |
current active control with keyboard focus, when clearly we want the active |
|---|
| 532 |
control of *this* form. Fixed. |
|---|
| 533 |
+ Fixed function in dbSQLite to find and set the pk field. |
|---|
| 534 |
+ Fixed __version__.py to work outside the expected directory naming |
|---|
| 535 |
structure. |
|---|
| 536 |
+ Report writer wasn't initializing report variables before starting the |
|---|
| 537 |
iteration of the cursor, resulting in errors if you referred to the |
|---|
| 538 |
variables from inside the page header, for example. Fixed. |
|---|
| 539 |
+ Setting the Value of a data-bound control programatically wasn't propagating |
|---|
| 540 |
to the underlying bizobj. Fixed. |
|---|
| 541 |
+ New reportlab can only handle utf-8, causing errors otherwise. Added a |
|---|
| 542 |
friendly message in case this happens to you when running the Quick Report |
|---|
| 543 |
option in AppWizard-generated apps. |
|---|
| 544 |
|
|---|
| 545 |
Enhancements: |
|---|
| 546 |
+ Added Visible property to grid dColumns. |
|---|
| 547 |
+ Added column information to the EventData of grid events. |
|---|
| 548 |
+ Removed RequeryOnLoad property from datanav.Form to dabo.ui.dForm. |
|---|
| 549 |
+ Can now send kwargs to grid.addColumn(), which get sent to the column's |
|---|
| 550 |
constructor. |
|---|
| 551 |
+ Added self.super() to replace cls.doDefault, thanks to Timothy Delaney. |
|---|
| 552 |
+ Added exception handling to requerying. If exception happens, the |
|---|
| 553 |
transaction will be rolled back. |
|---|
| 554 |
+ Enhanced the process used to determine field types. In addition to better |
|---|
| 555 |
automatic deduction of types, you can now explicitly set the DataStructure |
|---|
| 556 |
property of dBizobj and Dabo will respect that. |
|---|
| 557 |
+ Added Alt+Up and Alt+Down to AppWizard Apps, which bring you to first and |
|---|
| 558 |
last records, respectively. |
|---|
| 559 |
+ Added properties for getting/setting the selection and insertion point for |
|---|
| 560 |
text controls. These are InsertionPosition, SelectedText, SelectionEnd, |
|---|
| 561 |
SelectionLength, and SelectionStart. |
|---|
| 562 |
+ Compound primary keys can now be used. |
|---|
| 563 |
+ Dabo icon now has an alpha channel and looks much better. Thanks to Kenneth |
|---|
| 564 |
Ismert for doing a great job of this. |
|---|
| 565 |
+ Added Expanded property for treeview nodes. |
|---|
| 566 |
+ Can now set PageClass property of dPageFrame to a cdxml file. |
|---|
| 567 |
+ Added dRadioList to replace dRadioGroup. Pure Dabo control. |
|---|
| 568 |
+ Added ability to set a bizobj LinkField property to a table.field reference. |
|---|
| 569 |
+ Added RequeryWithParent property to dBizobj, True by default. Allows for |
|---|
| 570 |
user code to determine when to requery the child, for performance reasons. |
|---|
| 571 |
+ Added Selection property to dGrid, which returns the list of selected rows |
|---|
| 572 |
or columns. |
|---|
| 573 |
+ Added AutoBizobj, thanks to Echo. |
|---|
| 574 |
+ Added Count property to dMenu, to return the number of child menus. |
|---|
| 575 |
+ Changed most initial dEditor settings into configurable properties. |
|---|
| 576 |
+ Drag/Drop for tree nodes begun. |
|---|
| 577 |
+ Added getCurrentRecord() that returns the actual record data. |
|---|
| 578 |
+ Added dPref for managing application preferences, and switched the default |
|---|
| 579 |
way to save/restore settings to use this class. Your application can define |
|---|
| 580 |
whatever hierarchy you see fit. See also the new BasePrefKey and |
|---|
| 581 |
PreferenceManager properties of dObject. |
|---|
| 582 |
+ Added ForceCase property to dTextBox and dEditBox. Forces to upper, lower, |
|---|
| 583 |
or title case as the user types. |
|---|
| 584 |
+ Added getTempCursor() to facilitate ad-hoc data queries. |
|---|
| 585 |
+ Added dApp.Encoding property, a single place to get the unicode encoding. To |
|---|
| 586 |
set the default encoding, use dabo.defaultEncoding = "latin-1", for example. |
|---|
| 587 |
+ Added clear() method to sizers, to remove all items from the sizer, and to |
|---|
| 588 |
optionally destroy the items as well. |
|---|
| 589 |
+ Added Precision property to dColumn, which specifies the number of places to |
|---|
| 590 |
show for float columns. |
|---|
| 591 |
+ Added preliminary support for BLOB fields. Works at least with MySQL. |
|---|
| 592 |
+ Added GridBeforeSort and GridAfterSort events. |
|---|
| 593 |
+ Added itemNode entry to the eventData for Tree events. |
|---|
| 594 |
+ dToggleButton now uses GenBitmapTextToggleButton, allowing for text and |
|---|
| 595 |
images. |
|---|
| 596 |
+ Added some filtering functions to dDataSet, for selecting which records |
|---|
| 597 |
to return. |
|---|
| 598 |
+ Added transparency and drawGradient to drawing objects. Thanks to Andrea |
|---|
| 599 |
Galvana for the gradient code. |
|---|
| 600 |
+ Added WordWrap property to dColumn, which will wrap the text appropriately. |
|---|
| 601 |
+ Added cut/copy/paste hooks at the grid level. |
|---|
| 602 |
+ Added dabo.ui.getFormMousePosition (position relative to active form) |
|---|
| 603 |
+ Added DrawMode property, the logical function to use for draw operations. |
|---|
| 604 |
+ Added ability for About dialog subclasses to add their own version info. |
|---|
| 605 |
+ Added helper functions to dabo.ui: isControlDown(), isShiftDown(), |
|---|
| 606 |
isAltDown(), and isCommandDown() which will return True/False depending |
|---|
| 607 |
on whether the key is down while the call is made. |
|---|
| 608 |
+ Added containerCoordinates() and formCoordinates() method, to get the |
|---|
| 609 |
current mouse position relative to the container or form. |
|---|
| 610 |
+ Added objectCoordinates(), which is relative to the object. |
|---|
| 611 |
+ Made dForm.ActiveForm settable as well as gettable. |
|---|
| 612 |
+ Added isContainedBy() function, returning True if the object is contained |
|---|
| 613 |
inside the passed container. |
|---|
| 614 |
+ Made dEditor a data-aware control (cool!) |
|---|
| 615 |
+ Added Encoding property to dDataSet. Thanks to Simen Haugen. |
|---|
| 616 |
+ Can now send extra keyword args to bindKey(), which will get included in |
|---|
| 617 |
the eventData dictionary, just like it works with bindEvent(). |
|---|
| 618 |
+ Added Dabo data type code "L" for blobs, "G" for longs, and "F" for floats. |
|---|
| 619 |
+ Added 'sort none' option to dGrid. Now, the third mouse click on the header |
|---|
| 620 |
will be 'no sort'. |
|---|
| 621 |
+ Added accelerator keys to the datanav Actions menu. Added Select All to the |
|---|
| 622 |
Edit menu. |
|---|
| 623 |
+ Added dabo/ui/uiwx/concordance.py, which shows a listing of all the Dabo |
|---|
| 624 |
ui classes, and the wx Class from which they descend. Then, it shows the |
|---|
| 625 |
wx classes, and the list of Dabo classes that descend from it. Should help |
|---|
| 626 |
people with questions like "where is wx.TextCtrl in Dabo? (dTextBox). |
|---|
| 627 |
+ Added MultipleSelection property to dGrid. |
|---|
| 628 |
+ Improved dPageList, allowing setting the spacing of the list items with |
|---|
| 629 |
ListSpacing, and catching right-clicks smartly (the correct item gets |
|---|
| 630 |
referenced). |
|---|
| 631 |
+ Added function dabo.lib.getRandomUUID(). Thanks to Ka-Ping Yee. |
|---|
| 632 |
+ Added method afterInitAll(), which gets called after all child objects have |
|---|
| 633 |
been initialized and are live. |
|---|
| 634 |
+ Added helpful treeFromStructure() method to dTreeView, which takes a |
|---|
| 635 |
hierarchy (in list or tuple form) and constructs the tree nodes accordingly. |
|---|
| 636 |
+ Added ability to send sequences of 3-sequences to the ok/cancel dialog to |
|---|
| 637 |
automatically construct labels and controls on the dialog. |
|---|
| 638 |
+ Couldn't use the same RegID for objects, even if the prior object was |
|---|
| 639 |
destroyed. Relaxed the requirements to allow for this. |
|---|
| 640 |
+ Added dHtmlBox, which wraps wx.html.HtmlWindow, for displaying formatted |
|---|
| 641 |
text simply. Thanks to Nate Lowrie. |
|---|
| 642 |
+ Added showContainingPage() method to all ui controls, which will recursively |
|---|
| 643 |
show any pages in any pageframes that contain this control. |
|---|
| 644 |
+ Added showCurrentLine() to dEditor. Does what it says. |
|---|
| 645 |
+ Datanav forms (AppWizard-generated) now look better as they have a bigger |
|---|
| 646 |
default size. Thanks to Bill Anderson for bringing up lots of such issues. |
|---|
| 647 |
+ Added AddChildEditPages property to datanav apps. Set it to False and you |
|---|
| 648 |
stop getting the annoying edit pages for the child bizobjs. |
|---|
| 649 |
+ Previously, you could only set page sizes in reports to strings like |
|---|
| 650 |
"letter", "a4", etc. Now, you can also set explicit sizes such as |
|---|
| 651 |
(100, 75) or ("1.75 in", "1 in"). |
|---|
| 652 |
+ Added preliminary support for Microsoft SQL Server. This isn't usable yet |
|---|
| 653 |
for any but the most tenacious developers, and likely quite buggy. If you |
|---|
| 654 |
want to try it out or help develop it, please post a message to the dabo |
|---|
| 655 |
developer's list (dabo-dev@leafe.com). |
|---|
| 656 |
|
|---|
| 657 |
|
|---|
| 658 |
=============================================================================== |
|---|
| 659 |
Dabo 0.6 (2006-03-27) (Revision 2043): |
|---|
| 660 |
|
|---|
| 661 |
+ Fixed a problem when switching to the Browse page of the datanav grid without |
|---|
| 662 |
first running a query. Also, there was an error being thrown if a previous |
|---|
| 663 |
query had results, and a subsequent query had no results. |
|---|
| 664 |
|
|---|
| 665 |
+ Modified the code in _setCurrentRow() of dGrid so that it wasn't calling |
|---|
| 666 |
SetGridCursor() unless the position had actually changed. I had recorded up to |
|---|
| 667 |
10 calls to this function, all with the exact same values each time I switched |
|---|
| 668 |
to the Browse page. |
|---|
| 669 |
|
|---|
| 670 |
+ Removed the code that lower-cased field names, as it was preventing the code |
|---|
| 671 |
from working with case-sensitive backends and columns containing capital |
|---|
| 672 |
letters. |
|---|
| 673 |
|
|---|
| 674 |
Fixed a problem where str values were not able to be properly converted to |
|---|
| 675 |
unicode. |
|---|
| 676 |
|
|---|
| 677 |
+ Added a parameter to the promptForFileName() method to specify the default |
|---|
| 678 |
path for the dialog. |
|---|
| 679 |
|
|---|
| 680 |
+ Added the TreeItemContextMenu event. This differs from the normal |
|---|
| 681 |
ContextMenuEvent in that it returns the itemID of the node that was |
|---|
| 682 |
right-clicked. |
|---|
| 683 |
|
|---|
| 684 |
+ Added code in the event data gathering code to store the tree item ID for |
|---|
| 685 |
these events in EventData.itemID. |
|---|
| 686 |
|
|---|
| 687 |
+ Changed all the names '_id' in the dTreeView.py file to the clearer 'itemID'. |
|---|
| 688 |
|
|---|
| 689 |
+ Fixed an oversight in the dSizerMixin that didn't remove the Box for a |
|---|
| 690 |
dBorderSizer when the sizer was released. |
|---|
| 691 |
|
|---|
| 692 |
+ The double-Activate on Windows is really getting in the way. I haven't heard |
|---|
| 693 |
anything from my bug report yet, so I added workaround code to ignore the |
|---|
| 694 |
first Activate. |
|---|
| 695 |
|
|---|
| 696 |
+ Cleaned up the order of releasing child objects for sizers. Also fixed problem |
|---|
| 697 |
with releasing the box for border sizers. |
|---|
| 698 |
|
|---|
| 699 |
+ Added getFunctionList() method to return a list of all 'class' and 'def' |
|---|
| 700 |
statements in the current file. |
|---|
| 701 |
|
|---|
| 702 |
+ First pass at integrating the dTable class into the dabo.db framework. Right |
|---|
| 703 |
now, if this works at all, it only works for SQLite. |
|---|
| 704 |
|
|---|
| 705 |
+ Fixed a bug wherein multiply-nested sizers might not release all of their |
|---|
| 706 |
content when release(True) is called. |
|---|
| 707 |
|
|---|
| 708 |
+ Added a 'setInactive()' method that will hide the auto-complete popup if one |
|---|
| 709 |
is visible. |
|---|
| 710 |
|
|---|
| 711 |
+ Disabled the fillGrid()'s setting of focus to the grid, as it causes problems |
|---|
| 712 |
with stealing focus away from another active form, at least on Windows. Also, |
|---|
| 713 |
it seems that such code really doesn't belong inside the function to build the |
|---|
| 714 |
grid, but perhaps we'll find it belongs somewhere else. |
|---|
| 715 |
|
|---|
| 716 |
+ The xml header wasn't being converted to native line endings. Fixed. |
|---|
| 717 |
|
|---|
| 718 |
+ No need to explicitly do the unicode conversion in the report fields, as that |
|---|
| 719 |
is done in the report writer. |
|---|
| 720 |
|
|---|
| 721 |
+ Added a Refresh event. This is raised when dForm.refresh() is called. All |
|---|
| 722 |
dPemMixin classes will receive it, and fire their refresh() hook method. |
|---|
| 723 |
|
|---|
| 724 |
+ Added dynamic properties to most normal static properties. Example: given a |
|---|
| 725 |
label and a function 'currTime()' in a form that returns the current time, |
|---|
| 726 |
issuing the following: |
|---|
| 727 |
label.DynamicCaption = label.Form.currTime |
|---|
| 728 |
will result in the label's Caption property being updated every time |
|---|
| 729 |
label.Form.refresh() is called. |
|---|
| 730 |
|
|---|
| 731 |
+ Added two methods to dabo.ui for converting image data back to bitmaps and |
|---|
| 732 |
images. These were necessary because I noticed that when Editor.py was called |
|---|
| 733 |
from locations other than its own directory, the image file for the function |
|---|
| 734 |
button was not found. The solution was to convert the .png file to a data |
|---|
| 735 |
stream using wx.tools.img2py.py, and store that in Editor.py. |
|---|
| 736 |
|
|---|
| 737 |
+ Can now set dApp.UI=None, and setup() won't try to load a UI. You have to do |
|---|
| 738 |
it explicitly, though, such as: |
|---|
| 739 |
app = dabo.dApp() |
|---|
| 740 |
app.UI = None |
|---|
| 741 |
app.setup() |
|---|
| 742 |
--or-- |
|---|
| 743 |
app = dabo.dApp(UI=None) |
|---|
| 744 |
app.setup() |
|---|
| 745 |
|
|---|
| 746 |
+ First crack at creating a double-buffered drawing surface. The new class, |
|---|
| 747 |
'dDrawPanel', is a subclass of dPanel, but has its repainting handled through |
|---|
| 748 |
the double-buffer techniques outlined on the wxPython wiki. |
|---|
| 749 |
|
|---|
| 750 |
+ Bookmarks in dEditor now persist when you save the file. If you re-open a |
|---|
| 751 |
saved file with bookmarks, they are restored. |
|---|
| 752 |
|
|---|
| 753 |
+ Refactored dUserSettingProvider a little bit. Fixed a bug in |
|---|
| 754 |
getUserSettingKeys() that resulted in it always returning an empty list. Added |
|---|
| 755 |
deleteUserSetting() and deleteAllUserSettings(); these do just what you think |
|---|
| 756 |
they would. |
|---|
| 757 |
|
|---|
| 758 |
+ Changed a couple exec() calls to setattr() calls instead, which may be safer |
|---|
| 759 |
if not faster, but definitely more explicit and easier to understand. |
|---|
| 760 |
|
|---|
| 761 |
+ Implemented the handling of RowSpan/ColSpan for grid sizers. Added a |
|---|
| 762 |
GridSizerSpanException class that is raised if an attempt to set the span to a |
|---|
| 763 |
location that is already occupied. |
|---|
| 764 |
|
|---|
| 765 |
+ Revamped the entire flow for transactions. These changes have been tested on |
|---|
| 766 |
MySQL and SQLite, but still need to be tested with Firebird and PostgreSQL. |
|---|
| 767 |
|
|---|
| 768 |
+ Changed the default for bizobjs, cursors, etc., to not autocommit. The |
|---|
| 769 |
AutoCommit property of the bizobj is simply a pass-through to the cursor's |
|---|
| 770 |
AutoCommit property. |
|---|
| 771 |
|
|---|
| 772 |
+ Also cleaned up some inconsistent spacing and method ordering. |
|---|
| 773 |
|
|---|
| 774 |
+ Modified datanav to allow for manual setups that don't use fieldSpecs or |
|---|
| 775 |
relationSpecs. I'll be committing a change to the AppWizard that allows |
|---|
| 776 |
for this option soon. |
|---|
| 777 |
|
|---|
| 778 |
+ Moved SelectPageClass, BrowsePageClass, and EditPageClass from PageFrame |
|---|
| 779 |
to Form, since that is a better central location for these properties. |
|---|
| 780 |
|
|---|
| 781 |
+ Added a splash screen to the Dabo app startup. This is based on Andrea |
|---|
| 782 |
Gavana's AdvancedSplash class, and allows for cool shaped windows, etc. |
|---|
| 783 |
|
|---|
| 784 |
+ Added the ability to set the DataSource to an object, rather than just a |
|---|
| 785 |
string that can be eval'd to an object. |
|---|
| 786 |
|
|---|
| 787 |
+ Changed the 'getMaxRow/Col' methods to 'getHighRow/Col' in order to avoid |
|---|
| 788 |
confusion with the MaxRows/Cols props in dGridSizer. |
|---|
| 789 |
|
|---|
| 790 |
+ Modified both sizer classes to accept windows and not just SizerItems when |
|---|
| 791 |
setting/getting prop values. |
|---|
| 792 |
|
|---|
| 793 |
+ Added the movePage() method, which takes either a page reference or a page |
|---|
| 794 |
index, and moves the page to the specified position. The page is then |
|---|
| 795 |
selected, unless the third parameter 'selecting' is False. |
|---|
| 796 |
|
|---|
| 797 |
+ Added a getInt() method to dabo.ui.uiwx. |
|---|
| 798 |
|
|---|
| 799 |
+ Fixed the splashscreen display on Windows. |
|---|
| 800 |
|
|---|
| 801 |
+ Added the ability to set the font face and size for the editor. |
|---|
| 802 |
|
|---|
| 803 |
+ Added the setCheck() method to dMenu. Given a caption, it will check any menus |
|---|
| 804 |
whose captions match. By default it will uncheck any that don't match; you can |
|---|
| 805 |
pass False as the second argument and leave non-matchers alone. Also added |
|---|
| 806 |
clearChecks() to uncheck all menu items in a menu. |
|---|
| 807 |
|
|---|
| 808 |
+ Exposed the FileName and FilePath properties in dEditor. |
|---|
| 809 |
|
|---|
| 810 |
+ Added some syntax sugar for referring to fields and variables in reports. |
|---|
| 811 |
Where you used to have to refer to self.Record["clientname"], you can now do |
|---|
| 812 |
self.clientname. Same with self.Variables. |
|---|
| 813 |
|
|---|
| 814 |
+ Added the 'callEvery' function to dabo.ui. This function accepts an interval |
|---|
| 815 |
(in milliseconds), and callable reference, and optional arguments to that |
|---|
| 816 |
callable. It then creates a timer that fires the callable every <interval> |
|---|
| 817 |
milliseconds, passing along any optionally included arguments. The timer |
|---|
| 818 |
reference is then returned, where it can be controlled by calling stop(), |
|---|
| 819 |
start() or release(). This is based on the dCallEvery class that Brandon |
|---|
| 820 |
Singer proposed. I made it a function in dabo.ui because I felt it was more |
|---|
| 821 |
consistent with the existing functions callAfter() and callAfterInterval(). |
|---|
| 822 |
|
|---|
| 823 |
+ Changed the default for forms to not automatically show "Record 1 of 0" or |
|---|
| 824 |
similar meaningless database information in the status bar. Set it back to |
|---|
| 825 |
True for the datanav Form class, so all datanav apps should remain unchanged. |
|---|
| 826 |
All of the apps in the demo and IDE directories that don't query data, though, |
|---|
| 827 |
no longer show that message. |
|---|
| 828 |
|
|---|
| 829 |
+ Creating an instance of dApp doesn't automatically create an instance of |
|---|
| 830 |
uiApp. Instead, it now asks dabo.ui to get it a reference, and dabo.ui either |
|---|
| 831 |
returns the current instance if one already exists, or creates one if not. |
|---|
| 832 |
This allows you to run wxPython apps from within wxPython apps. |
|---|
| 833 |
|
|---|
| 834 |
+ Added some rudimentary support for file drag/drop. Right now, you can call |
|---|
| 835 |
'createFileDropTarget' on an object to make it able to respond to files |
|---|
| 836 |
dropped on it. Pass in an optional handler object reference; otherwise, the |
|---|
| 837 |
handler is set to the object itself. The drop event is passed on to the |
|---|
| 838 |
handler by calling its 'processDroppedFiles' method, which should be |
|---|
| 839 |
overridden in the handler object to do the specific processing of the files. |
|---|
| 840 |
|
|---|
| 841 |
+ Added a 'Column' property to dEditor; this represents the column position in |
|---|
| 842 |
the current line, and can be changed to move the cursor within the line. |
|---|
| 843 |
|
|---|
| 844 |
+ Added option in getItemByRowCol() to return the sizer item in the given |
|---|
| 845 |
position instead of the object managed by that sizer item. |
|---|
| 846 |
|
|---|
| 847 |
+ Added method 'isItemChecked()' to allow you to determine the checked status of |
|---|
| 848 |
any menu item. |
|---|
| 849 |
|
|---|
| 850 |
+ Added dabo.ui.getMousePosition(), which returns the position of the mouse |
|---|
| 851 |
on the screen. This is in contrast to dPemMixin.getMousePosition(), which |
|---|
| 852 |
gets the position of the mouse inside the client window. |
|---|
| 853 |
|
|---|
| 854 |
+ Update to allow execution of SQL statements without affecting the current data |
|---|
| 855 |
set. The bizobj has a new pass-through method named 'execute()', which takes a |
|---|
| 856 |
statement understood by the backend database and passes it to its cursor's |
|---|
| 857 |
execute method. |
|---|
| 858 |
|
|---|
| 859 |
+ The cursor class has been modified to run all statements that don't begin with |
|---|
| 860 |
'select' through its auxiliary cursor, thereby preserving its data set. |
|---|
| 861 |
Preliminary tests that I've run have confirmed that these are working |
|---|
| 862 |
correctly, but there should be a lot more testing done before I am confident |
|---|
| 863 |
that these changes are truly sound and can handle whatever we can toss at them. |
|---|
| 864 |
|
|---|
| 865 |
+ You can now set the DataSource to an actual object, instead of having to set |
|---|
| 866 |
it to a string that could be resolved to an object. |
|---|
| 867 |
|
|---|
| 868 |
+ Added basic support for storing lists/tuples in the user settings. |
|---|
| 869 |
|
|---|
| 870 |
+ Added a simple way of persisting MRU lists in applications. A new dApp |
|---|
| 871 |
property, '_persistentMRUs' is a dict that contains the name of the menu as |
|---|
| 872 |
the key for the entry, and the function to bind the items to as the value. The |
|---|
| 873 |
framework will then handle saving and restoring MRU lists upon app startup and |
|---|
| 874 |
closing. |
|---|
| 875 |
|
|---|
| 876 |
+ Modified the uiApp to accept just the menu caption as an identifier instead of |
|---|
| 877 |
requiring the actual menu. This is necessary to create MRU lists for context |
|---|
| 878 |
menus, or for restoring menus at app startup. |
|---|
| 879 |
|
|---|
| 880 |
+ Updated the requirement that a bizobj be found for all data sources. Since |
|---|
| 881 |
that was written, Dabo's use of data binding has expanded to lots of |
|---|
| 882 |
non-bizobj uses. |
|---|
| 883 |
|
|---|
| 884 |
+ Completed the majority of the work needed to implement saved classes that can |
|---|
| 885 |
be used in other class designs; it was working from the Designer, but not when |
|---|
| 886 |
you ran the form. These changes implement the whole inheritance structure so |
|---|
| 887 |
that if you change the underlying class, any changes not explicitly overridden |
|---|
| 888 |
in the design that uses that class are reflected. This works for both property |
|---|
| 889 |
changes as well as code changes. |
|---|
| 890 |
|
|---|
| 891 |
+ Switched the default order of arguments in callAfterInterval(). It makes more |
|---|
| 892 |
sense to specify the interval first, followed by the function and its |
|---|
| 893 |
arguments. Sticking the interval between the function and its arguments seems |
|---|
| 894 |
very awkward. I added code to callAfterInterval() to check if it received a |
|---|
| 895 |
call in which the interval is the second argument (i.e., the original style) |
|---|
| 896 |
and switch them around in that event. |
|---|
| 897 |
|
|---|
| 898 |
+ Removed dDrawPanel as a class. Turns out that adding double-buffering to |
|---|
| 899 |
panels doesn't affect their performance noticeably, so it made sense to turn |
|---|
| 900 |
this on for all dPanel objects by default. However, if you run into a |
|---|
| 901 |
situation where this adversely affects your app, there is a new property named |
|---|
| 902 |
'Buffered' that will turn this behavior off (i.e., make it work like it used |
|---|
| 903 |
to) when set to False. |
|---|
| 904 |
|
|---|
| 905 |
*IF YOU USED dDrawPanel IN YOUR CODE, THIS WILL BREAK IT!* You must update by |
|---|
| 906 |
changing all references to dDrawPanel to simply dPanel. |
|---|
| 907 |
|
|---|
| 908 |
+ Removed the old syntax for begin/commit/rollbackTransaction. The default for |
|---|
| 909 |
these actions in dBackendObject is to call the appropriate method on the |
|---|
| 910 |
connection, not to execute a command on the cursor. |
|---|
| 911 |
|
|---|
| 912 |
+ Removed the call to cursor.connection.begin() in the beginTransaction() |
|---|
| 913 |
method. This does not seem to be needed for most backends; in fact, it is |
|---|
| 914 |
typically used to override autocommit to create temporary explicit |
|---|
| 915 |
transactions. |
|---|
| 916 |
|
|---|
| 917 |
+ Table creation now works for MySQL also. The class dAutoBizobj is a bizobj |
|---|
| 918 |
that has a dTable. The function AutoCreateTables() will try to create all the |
|---|
| 919 |
tables that have been setup with dAutoBizobj objects. If it can't create the |
|---|
| 920 |
tables, a message pops up for the user and the db admin. The db admin can |
|---|
| 921 |
enter the username and password for access to create tables or the db admin |
|---|
| 922 |
can manualy execute the queries in the queries.sql. |
|---|
| 923 |
|
|---|
| 924 |
+ Converted the dTimer from a bitmap to a non-visible control based directly on |
|---|
| 925 |
wx.Timer. This makes it fit in much better with dabo.ui.callEvery(), which is |
|---|
| 926 |
much more convenient to use in many cases. |
|---|
| 927 |
|
|---|
| 928 |
+ Began coding for the Hover property, which will allow for easier visual coding |
|---|
| 929 |
of MouseOver events. It isn't fully implemented yet, so don't try working with |
|---|
| 930 |
it. |
|---|
| 931 |
|
|---|
| 932 |
+ Implemented the Hover property in dPemMixin. The reason for this rather than |
|---|
| 933 |
relying on MouseLeave to terminate the effect is that there are many time when |
|---|
| 934 |
it seems that the mouse leaves the area without triggering the MouseLeave |
|---|
| 935 |
event. The Hover mechanism employs a timer to check for mouse position, and |
|---|
| 936 |
fire the MouseLeave code if it detects that the mouse position is outside of |
|---|
| 937 |
the control. |
|---|
| 938 |
|
|---|
| 939 |
+ Added a CustomSQL property to the datanav form. If set, the settings in the |
|---|
| 940 |
select page will be ignored and the contents of CustomSQL used instead. |
|---|
| 941 |
|
|---|
| 942 |
+ Added defaults to dGrid.getValue(). If no row or col is specified, it defaults |
|---|
| 943 |
to the current row/column, respectively. |
|---|
| 944 |
|
|---|
| 945 |
+ Added fontMetricFromDrawObject() to dabo.ui. This enables simple calculation |
|---|
| 946 |
of the width/height of a drawn text object. |
|---|
| 947 |
|
|---|
| 948 |
+ Added a fitToSizer() method to dPemMixin. This will resize the object to fit |
|---|
| 949 |
the size required by the sizer represented in its Sizer property. You can also |
|---|
| 950 |
pass in extraWidth and extraHeight values to adjust the size further. |
|---|
| 951 |
|
|---|
| 952 |
+ Added 'Alignment' to the pre-init properties of dCheckBox. Cleaned up the |
|---|
| 953 |
property methods and definitions to make them alphabetized, and to make the |
|---|
| 954 |
strings localized. Also relaxed the values accepted for the Alignment |
|---|
| 955 |
property. |
|---|
| 956 |
|
|---|
| 957 |
+ Added an option to dEditor.changeFontSize() to accept strings in the format |
|---|
| 958 |
"+n" or "-n". These will increment or decrement the font size by 'n' points. |
|---|
| 959 |
|
|---|
| 960 |
+ Moved the _addCode() method out of dFormMixin, since it really is more generic |
|---|
| 961 |
than that. It now lives in dObject._addCodeAsMethod(), which takes a dict of |
|---|
| 962 |
method name/code pairs and adds them as methods of the object. dPemMixin now |
|---|
| 963 |
looks for a keyword argument called 'srcCode', and if found, adds it to the |
|---|
| 964 |
object. |
|---|
| 965 |
|
|---|
| 966 |
+ You can now call addObject() and pass a cdxml file instead of a Dabo class |
|---|
| 967 |
reference, and the class defined in the cdxml will be added to the parent. |
|---|
| 968 |
|
|---|
| 969 |
+ Cleaned up the dynamic code creation routines in dObject and |
|---|
| 970 |
DesignerXmlConverter. |
|---|
| 971 |
|
|---|
| 972 |
+ Modified xmltodict to handle property declarations. |
|---|
| 973 |
|
|---|
| 974 |
+ Added setAfter() and setAfterInterval() to dabo.ui. These work the same as |
|---|
| 975 |
callAfter() and callAfterInterval(), except you use them to set properties to |
|---|
| 976 |
particular values. |
|---|
| 977 |
|
|---|
| 978 |
+ Added the following properties to dGrid: MovableColumns, ResizableColumns, and |
|---|
| 979 |
ResizableRows. When any of these are set to False, the user cannot move/resize |
|---|
| 980 |
the column or row. |
|---|
| 981 |
|
|---|
| 982 |
+ Changed the keyboard datanav navigation from Ctrl+, and Ctrl+. to Ctrl+LEFT |
|---|
| 983 |
and Ctrl+RIGHT on Mac, and Alt+LEFT and Alt+RIGHT on Linux and Windows. I've |
|---|
| 984 |
The original configuration, in addition to being nonintuitive, didn't work on |
|---|
| 985 |
Windows. |
|---|
| 986 |
|
|---|
| 987 |
+ Added the ability to save screenshots in one of several graphics formats. |
|---|
| 988 |
While this was part of the Bubblet demo originally, it could have uses |
|---|
| 989 |
elsewhere. For example, combining this with dabo.ui.callAfterInterval() would |
|---|
| 990 |
enable timed screen shots. |
|---|
| 991 |
|
|---|
| 992 |
+ Hacked a bit to get getCaptureBitmap() to work well on GTTK, but it's still |
|---|
| 993 |
a bit of a mess. GTK doesn't capture the title bar, menu bar or frame |
|---|
| 994 |
decorations of a window, and I tried to compensate the sizing accordingly. |
|---|
| 995 |
Individual controls don't seem to work at all. I don't have more time to |
|---|
| 996 |
play around with this now, but this is hardly a show-stopper for release. |
|---|
| 997 |
|
|---|
| 998 |
|
|---|
| 999 |
=============================================================================== |
|---|
| 1000 |
Dabo 0.5.1 (2006-01-25) (Revision 1860): |
|---|
| 1001 |
|
|---|
| 1002 |
+ Additional MDI/SDI improvements and fixes. By default, dForm on Windows will |
|---|
| 1003 |
be a MDI child, which is what most Windows users will expect. |
|---|
| 1004 |
|
|---|
| 1005 |
+ Fixed PageFrame background color to take the background color from the form, |
|---|
| 1006 |
not unconditional white. Only on Windows - Gtk and Mac do the right thing by |
|---|
| 1007 |
default. |
|---|
| 1008 |
|
|---|
| 1009 |
+ Fixed various issues with getting icon files and converting them to bitmaps. |
|---|
| 1010 |
|
|---|
| 1011 |
+ Set the default grid font to Arial,9 on Windows, as the wx-default was just |
|---|
| 1012 |
plain ugly. |
|---|
| 1013 |
|
|---|
| 1014 |
+ Added getPositionInSizer() method to sizers, since they may also be contained |
|---|
| 1015 |
within sizers. |
|---|
| 1016 |
|
|---|
| 1017 |
+ Reworked dShell. Now it appears as a split window, with the standard command |
|---|
| 1018 |
area on the top, and the output in the lower pane. |
|---|
| 1019 |
|
|---|
| 1020 |
+ Changed dGridSizer to raise an exception if the insert method is called |
|---|
| 1021 |
instead of just returning False. |
|---|
| 1022 |
|
|---|
| 1023 |
+ Added SashPositionChanged event. Updated dSplitter to raise this event when |
|---|
| 1024 |
the sash position changes. |
|---|
| 1025 |
|
|---|
| 1026 |
+ Added scrollToBeginning() and scrollToEnd() methods to dEditBox. |
|---|
| 1027 |
|
|---|
| 1028 |
+ Added pass-through properties for dSplitForm's splitter's panels. |
|---|
| 1029 |
|
|---|
| 1030 |
+ Added the property 'SplitState' to the dShell class. By right-clicking on the |
|---|
| 1031 |
shell, you can toggle between the new split behavior and the "traditional" |
|---|
| 1032 |
single pane behavior. |
|---|
| 1033 |
|
|---|
| 1034 |
+ Added a right-click menu to the output pane. Right now all it can do is clear |
|---|
| 1035 |
itself, but we could add other stuff such as font selection, etc. |
|---|
| 1036 |
|
|---|
| 1037 |
+ Fixed a bug in uiApp that prevented Cut(), Copy() and Paste() from working in |
|---|
| 1038 |
the shell (and other non-Daboized controls that only have wx versions of these |
|---|
| 1039 |
methods). |
|---|
| 1040 |
|
|---|
| 1041 |
+ Added a menu command to the shell to clear the output window using |
|---|
| 1042 |
Ctrl-Backspace. |
|---|
| 1043 |
|
|---|
| 1044 |
+ Added the MenuOpen event to dEvents. This allows us to create dynamic menus by |
|---|
| 1045 |
intercepting this event and updating the prompts of the menu items as needed. |
|---|
| 1046 |
Added the event data code to save the prompt and menu object that triggered |
|---|
| 1047 |
the event. |
|---|
| 1048 |
|
|---|
| 1049 |
+ Added 'deadObjectException' as an alias to wx._core.PyDeadObjectError to the |
|---|
| 1050 |
dabo.ui.uiwx module. This will enable Dabo code to handle this condition |
|---|
| 1051 |
without having to use wx code. |
|---|
| 1052 |
|
|---|
| 1053 |
+ Added a bunch on internationalization to the dShell script. |
|---|
| 1054 |
|
|---|
| 1055 |
+ Made the dMessageBox titles come from Application.getAppInfo(appName) by |
|---|
| 1056 |
default. |
|---|
| 1057 |
|
|---|
| 1058 |
+ Added handling for situations where a bizobj is used with a data connection. |
|---|
| 1059 |
|
|---|
| 1060 |
+ Added a sizeToColumns() method. This will set the width of the grid equal to |
|---|
| 1061 |
that of its component Columns. |
|---|
| 1062 |
|
|---|
| 1063 |
+ Fixed copy to clipboard in about.py to use CRLF on Windows. |
|---|
| 1064 |
|
|---|
| 1065 |
+ Added new properties to grid: |
|---|
| 1066 |
HorizontalScrolling |
|---|
| 1067 |
VerticalScrolling |
|---|
| 1068 |
ShowColumnLables |
|---|
| 1069 |
ShowCellBorders |
|---|
| 1070 |
The scrolling properties are booleans, and will hide/show the scrollbars. |
|---|
| 1071 |
|
|---|
| 1072 |
+ Fixed some problems with setting the column's Width. For a number of reasons, |
|---|
| 1073 |
when you created a grid from scratch and then added columns using addColumn, |
|---|
| 1074 |
the columns widths you'd specify weren't being respected. Fixed. |
|---|
| 1075 |
|
|---|
| 1076 |
+ Moved the code for the dEditor class from ide/dEditor.py into its own |
|---|
| 1077 |
uiwx-level class. This will allow other apps (I'm thinking Designer here!) to |
|---|
| 1078 |
instantiate code editors where they need. |
|---|
| 1079 |
|
|---|
| 1080 |
+ Revamped the layout of the dOkCancelDialog class to create the panel and sizer |
|---|
| 1081 |
that is needed in addControls(). |
|---|
| 1082 |
|
|---|
| 1083 |
+ Cleaned up some of the default spacing so that with AutoSize=True, the form |
|---|
| 1084 |
still looks OK. |
|---|
| 1085 |
|
|---|
| 1086 |
+ Removed the split sash code from the dEditor. That stuff belongs in the form |
|---|
| 1087 |
the editor is located, not in the editor itself. |
|---|
| 1088 |
|
|---|
| 1089 |
+ Fixed a bug in dGrid that only seemed to pop up when the grid was located on a |
|---|
| 1090 |
form with a bizobj but that wasn't a dForm. The presets dialog in minesweeper |
|---|
| 1091 |
fit that description, and it was throwing errors when you navigated through |
|---|
| 1092 |
the grid. |
|---|
| 1093 |
|
|---|
| 1094 |
+ Added methods for getting/setting the back color of individual items. |
|---|
| 1095 |
|
|---|
| 1096 |
+ Added property CellHighlightWidth to dGrid, and used that property in the |
|---|
| 1097 |
about dialog. |
|---|
| 1098 |
|
|---|
| 1099 |
+ Made dPanel.addControls() better behaved. |
|---|
| 1100 |
|
|---|
| 1101 |
+ Reworked/improved the Quick Report dialog in datanav. |
|---|
| 1102 |
|
|---|
| 1103 |
+ Updated dPageFrameNoTabs to raise the same events as the 'tabbed' versions do. |
|---|
| 1104 |
Added a 'getPageNumber()' method. |
|---|
| 1105 |
|
|---|
| 1106 |
+ Added PNG files for rotating images clockwise and counter-clockwise. |
|---|
| 1107 |
|
|---|
| 1108 |
+ Improved dImage to support 90 degree rotation in either direction. Added |
|---|
| 1109 |
rotation to the the demo. |
|---|
| 1110 |
|
|---|
| 1111 |
+ Fixed a bug in dListControl's StringValue prop, and any other place where the |
|---|
| 1112 |
framework was trying to call the control's GetString() method, since it |
|---|
| 1113 |
doesn't have one. |
|---|
| 1114 |
|
|---|
| 1115 |
+ Added SearchDelay property to dApp, which becomes the default SearchDelay for |
|---|
| 1116 |
dGrid. The dGrid SearchDelay can get set to any int but that won't override |
|---|
| 1117 |
the dApp setting. If dGrid.SearchDelay is set to None (the default), that is |
|---|
| 1118 |
when the dApp setting gets used. Set the default SearchDelay to 300 - better |
|---|
| 1119 |
than the previous 600 IMO but still not too fast. Eventually, when we provide |
|---|
| 1120 |
a default system preference screen, we should expose this property for the |
|---|
| 1121 |
user to tweak how they like. |
|---|
| 1122 |
|
|---|
| 1123 |
+ Cleaned up and consolidated lots of stuff in dGrid, which shouldn't have any |
|---|
| 1124 |
effect on runtime performance. Made SameSizeRows into an actual property. |
|---|
| 1125 |
|
|---|
| 1126 |
+ Using the standard button sizer in the okay/cancel dialog is good, because it |
|---|
| 1127 |
lets wx handle the platform-convention rules. However, even though it handles |
|---|
| 1128 |
rearranging the order of the buttons as needed, it doesn't rearrange tab |
|---|
| 1129 |
order. So I added code to do that. |
|---|
| 1130 |
|
|---|
| 1131 |
+ Reworked the login dialog to subclass from dOkCancelDialog. |
|---|
| 1132 |
|
|---|
| 1133 |
+ Reworked dGrid to sync the rowcount in refresh() calls. Fixed bug in syncing |
|---|
| 1134 |
of column counts. |
|---|
| 1135 |
|
|---|
| 1136 |
+ The entire populate() cycle was happening every time you entered the browse |
|---|
| 1137 |
page in datanav apps, when in reality the only thing you need to do in current |
|---|
| 1138 |
dGrids when the dataset has been requeried is a simple refresh(). |
|---|
| 1139 |
|
|---|
| 1140 |
+ Added an initial call to _clearDocument(), which is where all the defaults are |
|---|
| 1141 |
set for the editor. The DesignerEditor would not indent properly without this. |
|---|
| 1142 |
|
|---|
| 1143 |
+ Added moveToBeginning() and moveToEnd() methods to position the pointer at the |
|---|
| 1144 |
beginning and end of the document, respectively. |
|---|
| 1145 |
|
|---|
| 1146 |
+ Added functions to dBizobj, dCursor, and dBackend to get the data structure |
|---|
| 1147 |
from the cursor description, instead of querying the backend based on a table |
|---|
| 1148 |
name. This is more likely to contain correct information, but will need work |
|---|
| 1149 |
for other backends besides MySQL. Also, getting the pkid is still problematic |
|---|
| 1150 |
- but IMO it isn't a big deal to just have the user tell us which field to use |
|---|
| 1151 |
as the PK. |
|---|
| 1152 |
|
|---|
| 1153 |
+ Fixed dGrid's buildFromDataSet() to use the new function so it will work even |
|---|
| 1154 |
if the bizobj has no records at the time of creation. |
|---|
| 1155 |
|
|---|
| 1156 |
+ Fixed dGrid.sort() to not care if sort is done on an empty bizobj. Added the |
|---|
| 1157 |
logic to restore code saved in the Designer so that it functions properly in |
|---|
| 1158 |
the re-created form. |
|---|
| 1159 |
|
|---|
| 1160 |
+ This is big - really big. For the first time, you can create a form in the |
|---|
| 1161 |
Designer, add code to be bound to events, or create custom methods, and that |
|---|
| 1162 |
code will work in the form created from the .cdxml file exactly the same as if |
|---|
| 1163 |
you had written those methods in a regular .py script. |
|---|
| 1164 |
|
|---|
| 1165 |
+ Improved the card deck pictures. |
|---|
| 1166 |
|
|---|
| 1167 |
+ Fixed some problems in the Icon setter that would cause errors if None was |
|---|
| 1168 |
passed, or if the icon path didn't exist, as would be the case if you were |
|---|
| 1169 |
running with py2exe and didn't include the icon files as resources. |
|---|
| 1170 |
|
|---|
| 1171 |
+ Added a significant change to eventMixin.py's auto event binding logic. The |
|---|
| 1172 |
code now first looks at the object itself before looking up its family tree. |
|---|
| 1173 |
This is critical for the event binding when running a cdxml file, where |
|---|
| 1174 |
methods are added to the object at runtime, and are not present in the class |
|---|
| 1175 |
definition. |
|---|