qooxdoo 0.7.3 (2008-01-15)
Summary
qooxdoo 0.7.3 is a maintenance release which includes many bug fixes and improvements.
Framework
Object-Orientation
Major changes
- Fixed multiple issues with non-inheritable properties which use the same name as an inheritable property in another class.
- Fixed major issue in mixin declaration code. Each entry in the members section of a mixin gets added a reference to the mixin itself. This does not work well for primitive types like strings, numbers or booleans. As this reference is only needed for methods the new code only applies the mixin reference to functions of the members section.
Minor changes
qx.Classgot a new detection for overwritten “private” members, which may have caused unnoticed issues in earlier versions of qooxdoo.__addMemberswas improved which slightly improves the performance of class declaration as well. Redundant member names are now detected.- Added check to property system to prevent declaration of themed property groups which contain non-themable properties.
- Properties are now automatically disposed, too, when the
checkrefers to a qooxdoo interface. - Minor tweaks to improve error handling of properties in gecko-based clients.
- Locale classes are now stored into the regular namespace hierarchy again.
Core Classes
Major changes
- Fixed keyboard event support in recent versions of Opera.
- Added support for variants and settings with deeper namespaces e.g.
qx.cool.debuggingEnabled qx.core.Logis now based on Firebug Lite. It was modified to print the output to a separate window instead of an inline positioned DIV element, as this was a lot more stable in the qooxdoo applications tested. Some other code improvements and changes to match qooxdoo coding style.- Removed warning for old-style application (before 0.7) which did not call the superclass method
main()from the custom application class. This reduces code size and the general overhead needed for those checks.
Minor changes
- Added new class
qx.core.Packageto manage the loading of packages created by the experimental generator2. All features of the next-generation build tool generator2 are still alpha. Preliminary documentation is available here. - Changed defaults of
qx.allowUrlSettingsandqx.allowUrlVariantstofalse. This could have been a security issue in previous versions. - Changed behavior of variant and settings system regarding default values. A default value is not required anymore as long as a value is defined. This allows variants/settings which are dynamically added using the generator without being defined in the JavaScript code.
- New static method
equals()inqx.lang.Arraycompares the contents of two arrays. - The window appender was improved regarding some issues detected on slower systems. The window opening should be more reliable now.
- Added missing disposer entries in some log appenders.
- Improved logging code of dispose implementation in
qx.core.Object. - Added two functions in
qx.lang.String:getAlternateQuotationStart()andgetAlternateQuotationEnd().
IO Classes
Major changes
- Fixed memory leak detected in XmlHttp support. This was already presented as a hotfix to users of 0.7.2.
- Fixed typo in
IframeTransportwhich made the HTML transport using this layer not working correctly.
Minor changes
- Added more documentation to
Rpcclass (transport API). - Minor fix to
RequestQueueto be sure that the timer is really stopped when the queue is empty. - Major improvement of documentation of the whole IO system (especially the overview pages were improved).
- Fixed global pollution in
ScriptTransportclass.
Widget System
Major changes
- Removed a legacy-gecko (gecko 1.6, ...) workaround in qooxdoo drag&drop support (
DragAndDropHandler). This brings an extreme performance push for newer geckos. - Added support for controlling the CSS value of
backgroundRepeat. There is a new themeable property with the same name available for all widgets now. - Fixed
zIndexissue with drap&drop feedback widget. Sometimes the widget was hidden by other content. - Workaround added for some low-level
NS_DOMerrors in gecko-based clients when modifying a running application, so that a widget was removed and added in one single flush. - Greatly improved Ext appearance.
- Improved default look of table (for example the cell paddings were increased).
- Removed
table-rowappearance as this was not a consistent solution. Simple color names are really enough in this case. Please have a look at your color theme and adjust the colors starting withtable-row-. - Major refactoring of
basesupport in appearance themes. The system now works a lot more reliable when using mixins at theme level.
Minor changes
- Fixed background image cache control for IE6 and disabled it for IE7, because it is not needed there.
- Minor improvements for client document blocker (previous implementation had issues with non-application layouts).
- Added support to apply dynamically generated IDs to every widget. Useful for functional testing with Selenium (see qooxdoo-contrib/Simulator). Disabled by default.
- Added missing dispose flag for property
dropDataTypesinWidget. - Minor tweaks in font selection of
ExtandDefaulttheme. - Removed support of pane focus states in
Tablecode. The following color names were removed from qooxdoo themes:table-focus-indicator-active,focused-selected-blur,table-row-background-focused-blur,table-row-background-selected-blur. Unfortunately, the previous usage and implementation was regarded as too problematic and inconsistent. It needs to be re-implemented in a more generic way. An improved table focus handling is expected for the 0.8 release cycle.
Table Widget
Major changes
- Added string, number and date cell renderers. Thanks to Gaetan de Menten for his contribution.
- Added filtered table model by Dan Hummon. Thanks alot for your contribution.
- Added support for case sensitive sorting to the simple table model (which is used by default).
- Greatly improved caching of remote table model.
- The statusbar text is now created by the localization manager, and therefore can easily be translated.
- Fix for table selection incorporated, kudos to Tino Butz.
- Major refactoring of color handling in default row renderer.
Minor changes
- Improved performance of
_updateRowStylesto apply row styles to the table pane content. - Increased default row height from 18 to 20.
- Improved overall appearance.
- Improved event dispatching for cases where the selection has not been changed (e.g. double clicking on a row)
- Fixed global pollution in default and replace cell renderers.
- API documentation of a few cell renderers and other classes were improved.
- Minor fixes and additions to the resize behavior to allow the user a better control.
- Fixed superclass definition of default row renderer.
Tree Virtual
- Property
alwaysShowOpenCloseSymbolwas ignored in IE. This fixes bug #684. - Tree lines were not handled properly for empty top-level branches. Fixed.
- Gaetan de Menten provided a patch which added a
getRowFromNodeId()method inSimpleTreeDataModelto remove dependence on specifics of the underlying implementation - Gaetan de Menten provided a patch which fixed a bug in
SelectionManagerwhensetFocusCellOnMouseMove()was false. The bug caused an exception to be thrown when pressing the space bar to select a row. - Fixed variable pollution in
treevirtual.CheckBoxTree. - Removed obsolete and broken calls to
setRowColors(). Formerly, row colors were defined internally, but other recent changes have moved that into the theme.
Other Widgets
Major changes
MenuButtonnow uses new location code instead of the old buggy one. This fixes issues of menus in applications with scrollbars.- The popup system does not support the settings
qx.restrictToPageLeft,qx.restrictToPageRight,qx.restrictToPageTopandqx.restrictToPageBottomanymore. Please use the appropriate properties instead, which allow individual restrictions on a per-widget base. - The
Iframeclass got a new propertyscrollingwhich is identical to the property in HTML. - The
reload/setSourcemethods ofIframehave got some reworks. They should work more stable now. There were some issues in combination with the Firefox extension AdBlock Plus which are fixed now as well. - The “Spinner” widget has got a lot of new API documentation. It also gained support for floating numbers.
Minor changes
- Fixed issue of
IframeManagerwhen blocked iframes got hidden. This is fixed now and should be much more reliable. - Minor fixes in
ComboBoxEx,TextField,ButtonandList. - Fixed
zIndexissue ofSplitPaneSplitter. - Fixed selection issue of tree when the selected item is removed or new items are added.
- Minor fixes for
getHierarchy()inTreeclass. - Applied fix to
InputCheckSymbol. This fixes the possibility to disable checkboxes and radiobuttons.
Other Classes
Major changes
Rangenow supports floating-point numbers.- Fixed XPath issues in IE in implementation of class
qx.xml.Element.
Minor changes
- Fixed global variable pollution in
FlowLayoutImpl,FiniteStateMachine,Debug,Tokenizer - Fixed wrong API docs in
DateFormat - Added initial support for timezones (by the variables
zandZ) inDateFormat - Fixed minor issues in
Stacktrace. - Added missing copyright information in
qx.xml.Namespace. - Fixed global pollution issue in
qx.xml.Document. - Improved documentation of classes in
qx.xmlnamespace.
Tool chain
- Added new module
ecmalintwhich adds support for JavaScript code validation, similar to JSLint. make lintMakefile target for code validation of any skeleton-based application.
Applications
- More adjustments for changes in event API (ChangeEvent:
getData()⇒getValue()).
Quickstart
- Added missing locale information to Makefile. This fixes issues when trying to use the localization support in the pre-built quickstart download.
Feed reader
- The feed reader demo application was improved. Code was structured into more classes. Now the feed reader is a fine showcase for a typical qooxdoo application.
- The feed reader now works better with feeds and is prepared for further development of features like adding/removing feeds etc.
Demo browser
- Usage of global variables in the Makefiles of included applications was improved.
- Corrected some examples for improvements in the transport API. (Response object became an event instance in recent versions.)
- Fixed some minor issues in demobrowser examples. Some examples were updated to use the new form of application declaration (no more legacy usage of
defineMain())
Build tool
- Re-worked directory structure, both in the
buildtoolapplication hierarchy as well as for themake buildtoolapp target, to better match general ‘tool’ app environment and development of buildtool.
