Document Information

Last modified:
2011/02/22 12:31 (external edit)

qooxdoo 1.0 (2009-12-17)

The following release notes detail the changes after the latest stable release qooxdoo 0.8.3, therefore including the changes of the pre-release qooxdoo 1.0-beta1.

For more info about the many features and highlights of qooxdoo 1.0, please see the following:

People coming from older versions of qooxdoo and upgrading to 1.0 will have to migrate their existing applications.

Framework

Performance

  • Disposing of objects takes less time.
  • Assertions are faster now.
  • qx.html.element.Style.setStyles has been improved.
  • Improved qx.lang.String.pad.

Event System

  • #2891 Mouse capturing now works even if the user leaves the browser view port.
  • #2919 Mouse Capturing: Captured events are now bubbling.
  • #2795 All native events can now be cloned without breaking any of the public API.
  • #2856 Drag and drop events are now bubbling.
  • qx.event.Command has been split up into two different classes. One, qx.bom.Shortcut, handles the shortcut functionality. The other, qx.ui.core.Command is the high level command.

Core

  • All legacy code has been removed.
  • Improved browser detection and added qx.bom.client.Browser which can be used to get the browser name and version number. Thanks to Sebastian Werner for contribution.
  • Added detection for Windows 7 to qx.bom.client.System.
  • Fixed some issues with the size calculation on qx.bom.Viewport and qx.bom.Document.
  • Safari 3 always returned the wrong value for isStandardMode on qx.bom.Document, this is now fixed.
  • Fixed an iframe issue in Firefox. Whenever the iframe got a new parent element Firefox did load the wrong source under certain circumstance.
  • Prevent inline root from growing endlessly if the height of the element is implicit (=defined by the content).
  • New method qx.util.DisposeUtil.disposeTriggeredBy().
  • Corrected several destructors.
  • Fixed wrong format and size return values in qx.io.ImageLoader.
  • Added serializer util class qx.util.Serializer that produces a native JavaScript object.
  • Removed almost all dependencies from qx.core.Assert which can lead to a smaller footprint of qooxdoo.
  • Fixed loading/startup issue in IE whenever qx was loaded within a frame.
  • Types of fired custom events are now validated against the declared types in the class map.

Browser Support

  • Firefox 1.5 is working again.
  • #2230 For Internet Explorer 8, fixed unreachable TextField when a TextField is lying over an image.
  • Fixed mouse events in iPhone.

Transport

  • qx.io.remote.RequestQueue stopped sending when too many requestHandler throw an exception. Applied a patch that places the request handler in a try/catch block to prevent a program crash upon exception. If an exception is thrown, an "aborted" message is now issued to the application.
  • Fixed a timeout issue at the new HttpRequest implementation (qx.io.HttpRequest). Thanks to Sebastian Werner for the contribution.

Low-level

  • The History Manager has been refactored. It now supports the native hashchange event and IE support has been improved. Additionally the state is now available as a property which makes it bindable.
  • Fixed loading issue in BOM libraries in IE.
  • Improved low-level blocker class.
  • The global error handling is disabled for the BOM skeleton. In this scenario every error is handled by the browser directly (and not catched by the framework).
  • Low-level XMLHttp implementation received a major overhaul. Thanks to Sebastian Werner for the patches.
  • Added support for modal native window.
  • Testing an element for event support is now supported.

GUI Toolkit

UI Core

  • #3075 Fixed size hint calculation for some edge cases.
  • Removed the color grey as valid color, because this is not a valid color for IE6 and IE7.
  • Added property wrap to qx.ui.basic.Label, to allow or deny line breaks. But this feature only works with rich labels.
  • Added property blockToolTip to qx.ui.core.Widget to disable a tool tip.
  • Removed limitation of not being able to change the scaling mode and/or the source of a qx.ui.basic.Image widget during runtime.
  • Fixed alpha PNG issue at decoration utility class.
  • AlphaImageLoader is now used for all IE browsers. The reson is documented in Bug #3253.
  • getSelectionStart and getSelectionEnd are supported by the TextField and TextArea widget.
  • Bugfix in Element queue. Thanks to Derrell Lipman for the patch.
  • Use the CSS3 pointer-events property to optimize shadow rendering.

Layouts

  • Fixed a bug in the box layouts which caused some wrong flex values.
  • Fix HBox and VBox decorators for IE quirks mode.
  • Add public API to the Grid layout to read the number of rows and columns.

Data Binding

  • The data binding is no longer experimental.
  • Added two new data stores.
    • JSONP data store.
    • YQL data store.
  • Two new delegate methods for the data stores.
    • Added the possibility to change settings on the created request.
    • Added the possibility to manipulate the data returned from the request.
  • Improvements to the form controller concerning init values and binding options.
  • Improvements to the selection handling of the controller.
  • Improved the single value binding in cases of binding property chains on the target.
  • Minor improvements in the tree and list controller.
  • Introduced a reverse binding possibility in the list and tree controller.
  • Improvements to the data binding selection handling.

Forms

  • Form validation is no longer experimental.
  • The placeholder now also supports password fields.
  • Minor improvements to the resetter.
  • The model selection array for RadioGroup's, RadioButtonGroup's, List's, SelectBox'es and Trees has been changed from a native JavaScript array to a qooxdoo data binding array.
  • Fixed some problems with executions on check boxes and radio buttons.

Widgets

  • #730 Large menus are no longer cut off at browser window.
  • #2847 Option to use native browser scroll bars in all widgets.
  • Changed unblock and unblockConten behavior from our Blocker. Both methods take now care of the number of block and blockContent calls, before the Blocker is removed. To force a unblock, two new methods are added forceUnblock and forceUnblockContent.
  • Adjust the Table to the Selection API and renamed the clearSelection method to resetSelection.
  • Table column model has a new method setColumnsOrder(), the remote table model new setters for attributes sortColumnIndex and sortAscending.
  • The getPreviousSiblingOf() method of Tree has new param allowing search to be restricted to current nest level.
  • Progressive: removed experimental indications. The Progressive interface is now considered reasonably stable. Contributed and maintained by Derrell Lipman.
  • RadioButtons and CheckBoxs are not updated when using a shortcut from a command. This bug #3037 is fixed.
  • Fixed drag selection issue on qx.ui.tree.Tree bug #3208.
  • Added the HtmlArea as low- and UI-level widget. Two demos were also added to the demobrowser to show the widget in action.
  • Setting decorators and paddings on root widgets is now prevented because it will break the positioning of popups.
  • Add support for dynamic locale switching to the DateField widget.
Table
  • The table pane now sends an event after it has modified the DOM.

Theming

  • The default theme for applications is now qx.theme.Modern.

Applications

Showcase

  • New Showcase application that highlights some of qooxdoo's features.

Inspector

  • The auto completion now works with the key word this and you can type the tab key without having a valid sub key like qx..
  • Done some improvements on the property window do make it more reliable for internal exceptions.
  • Done some improvements basically minor bug fixes.

Demobrowser

  • Demobrowser GUI and demos are now generated jointly in one generator process.
  • A search field has been added to the demo browser which makes it possible to search for the names of demos.
  • General improvements to the filter capability.
  • Added a welcome page and links to other interesting qooxdoo apps.
  • The code of most of the demos can now be send to the playground for live testing.

Playground

  • New table demo.
  • New a YQL demo.
  • New tree demo.
  • #2772 Fixed issue with hash value in IE.

API Viewer

  • We improved the user interface of the API Viewer: property methods are shown now by default and we switched from a menu toolbar to simple radio buttons to allow faster access.
  • #1649 throw information will now be displayed for every method which can throw errors.
  • #1780 You can now include API doc for all used libraries of the application, using the API_INCLUDE config macro.
  • The viewer will also scroll correctly to the selected entry now.

Test Runner

  • #2907 Generator jobs "test" and "test-source" now honor the "libraries" job, so that additional libraries used in the application are also considered for the test application.

Skeletons

  • [BUG #2488] New native application template, for low-level applications with full qooxdoo OO and event support but no widget layer.
  • The migration application template has been withdrawn (as there is no longer the qx.legacy.* infrastructure.

Tooling

  • A new bash COMPSPEC file allows tab-completion of generator jobs (tool/bin/generator_compspec.bash).

Generation

  • The generator now only prints stack traces when invoked with the -s command line option.
  • #2376 Dependency checking is more accurate now, also after library changes; unknown global symbols are warned about.
  • #2800 New experimental option to split off I18N data in separate files, using config key packages/i18n-with-boot = false. There is no automatic loading of these files, this is currently up to the application.
  • #2129 Resource information is now maintained on the package level, not globally in the loader script, which greatly reduces loader script sizes; using this with the new packages/<part>/no-merge-private-package key allows theme-specific packages to retain their own resource info.
  • #2879 Add facility to hook JS code into qx.$$loader.decodeUris(), using compile-options/code/decode-uris-plug.
  • Parts are now being verified after package collapsing, to make sure they contain all required classes.
  • The compile cache will be auto-cleared by default when a cache-affecting change in the tool chain was made (controlled by the cache/invalidate-on-tool-change config key); the cache directory now maintains a .cache_check_file to check cache freshness.
  • Speed up in the generation of .po files.
  • #ignore compiler hints in class code are functional again.
  • The clean-files action key now allows Python-style file globs.
  • Improved logging when checking/downloading contribs.
  • Various parser bug fixes.
  • #3031 If create-application.py is invoked with both namespace and application name parameters, only the namespace will be modified to only contain valid JavaScript identifier characters.
  • #2038 New generator job info: Prints some basic environment information for debugging.
  • #2220 The copy-files job will now overwrite target files that are write-protected.

Configuration

  • The compile-source and compile-dist config keys have been deprecated in favour of compile-options and compile. The old keys are still accepted, but if you have extended or overridden standard build jobs (source-script or build-script) in your own config, migrate to the new keys.
  • #2868 Set translate/poentry-with-occurrences = false, to disable the generation of location comments in .po files.
  • New add-script config key allows inclusion of arbitrary Javascript files.
  • The loader template for the source/build versions is now configurable (compile-options/paths/loader-template); see tool/data/generator/loader.tmpl.js for a sample.
  • A new generator option -m/--macro allows specification of let macros on the command line.
  • extend and run config keys now allow the use of macros; bear in mind that these keys are evaluated very early, so the referenced macros should usually be defined within the same file to take effect.

Internationalization

  • Various updates to the translation handling module (polib).

Code Formatting

  • #2886 Compiler hints (#require, #asset, …) now allow leading whitespace.

Migration

People developing with older versions of qooxdoo and upgrading to 1.0 have to migrate their existing applications. Here are a few related notes. For more info about the semi-automatic migration support, and to migrate existing applications, please see the migration guide.

API Changes

  • qx.util.ColorUtil.hsbToRgb now returns the RGB value as array instead of a map.
  • The qx.io2.* namespace is moved to qx.io.*.

Missing Features

  • Part handling is still experimental.
  • Active support for Python 2.4 has been dropped.
  • HtmlArea won't start correctly in Opera 9.6.x and below under Linux. This issue is documented at Bug report #3257.

Information

Last modified:
2011/02/22 12:31 (external edit)

Account

 
 
A book on qooxdoo RIAs, authored  by community members
JS Tutorial, JavaScript Tutorial, JavaScript Guide, Learn JavaScript JS, How To Learn JS, Learning JavaScript
 

Bad Behavior has blocked 0 potential spam attempts in the last 7 days.