Dabo News RSS

Feb 16, 2010

Web Update revision 5694 Posted

- POTENTIAL BREAKAGE: Revamped the handling of pathing. If you have file path references in your cdxml or cnxml files, this could break your old files. Pathing is now relative to the HomeDirectory of your app, instead of the location of the tool that created the file.
- POTENTIAL BREAKAGE: Updated the internal encryption code to support the use of DES3 cryptography if you have the PyCrypto package installed. There is also a write-only property of dApp called 'CryptoKey': when you set that property, if you have PyCrypto installed, it will create a new SimpleCrypt instance that uses DES3 encryption, with that value as the encryption key. And to avoid having to pass a plain-text value to the app creation, you can set this property at any time, passing either a string or any callable. By passing a callable, you can more effectively hide the way your key is stored; the actual key never has to appear in your code at all. If you have cnxml files created with the old code, they may no longer work. Simple re-run the CxnEditor to re-save them with the new encryption.
- Added the UIAppClass property to dApp. It can be set to a custom subclass of dabo.ui.uiApp, to enable developers to add ui toolkit-specific behaviors.
- Fixed an issue with the cursor's _mementos attribute getting inadvertantly altered by record cloning. Trac #1316
- Overrode the removeAll() method of this control to work properly with the underlying wx control. Trac #1308
- Added some code to ensure a minimal wx version.
- Fixed the problem described by Jacek in dabo-users today where the cursor won't save a new unchanged record even if the bizobj is set to SaveNewUnchanged.
- Fixed a problem in the seek() method when called from the bizobj when the table has a compound pk. Also improved the algorithm for matching and near-matching. Trac issue #1330.
- Major fix to how resizing is handled for panels. Previously, there were cases where panels would get "stuck" at a large size and were not able to be resized smaller. This should fix that problem. Also added the 'Square' property. When set to True, the panel will confine itself to a square shape.
- If a dBizobj.filter() call filters out all records, a NoRecordsException was being raised. This is generally not necessary, so this is now caught. Trac #1331
- Added code to handle the case in dGrid where a case-insensitive search is being done on a string type column with null values.
- Corrects a problem identified by Jacek Kałucki in which some columns that don't have defined data types only get their type corrected the first time a query is run.
- Fixed a bug that only happened if you called the layout() method of the StatusBar. The attribute '_platformIsWindows' had been previously defined in dPanel, but dStatusBar no longer inherits from that.
- Fixed getCaptureBitmap() to use a WindowDC for panels and dialogs instead of the parent's ClientDC.
- Added the StatusBarClass property, which will allow a form to create any status bar subclass that is needed. Defaults to the standard dStatusBar.
- Fixed a problem when using direct object references as the DataSource, discovered by Jacek Kałucki.
- Added biz.hasPK() method. It answers the question "is this PK value present in the dataset?" It doesn't move the pointer or have any side-effects, and is optimized to return the answer to this question as fast as possible.
- Fixed a bug in cdxml rendering: if it contained a boolean value False, it was stored as the word 'False'. But when the attProperties were being read back in, we were doing bool(val) to convert it back, and bool("False") is True.
- Added a bit of verbosity to quickStart(). Also changed it so that it requires an app name.
- Deprecated ShowColumnLabels; added ShowHeaders. Fixed ShowHeaders and HeaderHeight to not have side-effects on each other.
- Fixed some display issues when the grid has at least one column with Expand=True.
- Made history searches in the Command Window case-insensitive.
- Fixed an issue when opening up the preferences dialog for the first time: since no update frequency preference had been set, an error was raised when the frequency radio list was bound to that pref.
- Changed the order in which we import the app subdirectory modules. This is necessary when using a customized uiApp subclass, which would typically be added as a class in the ui module, and then used by overriding the app creation line: app = App(SourceURL=remotehost, UIAppClass=ui.MyCustomUIClass)
- Fixed a typo that caused an exception when pressing when a report object was selected. Now it brings up the default property in the property sheet like was intended.
- Corrected an error when saving/running a non-sizer-based form.
- Enhanced copy/paste in the report designer: if objects from multiple bands are selected when copied, paste them into the same bands instead of the currently selected band. Allows for copy/pasting a header and a detail item, for example.
- The recent change to make dImage a data-aware control had an unintended effect in the Class Designer: saving an image resulted in not only saving the path, but also the complete byte stream of that image in the Value property. This fixes that oversight.
- Added build scripts for Linux to AppWizard. Now you can 'buildwin', 'buildmac' *and* 'buildlin'.

posted at: 15:00 | path: /Announcements | permalink

 

Dabo is the easy to use, cross-platform, 3-tier, open source desktop database development framework.
©2004-2006 Paul McNett, Ed Leafe, et al.
Site Designed by: Wavelength Media Inc.