Document Information

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

qooxdoo 1.2 (2010-08-04)

Summary

This is a regular minor release, thus it not only includes many bugfixes but also many new features and improvements.

Despite being a minor release, no manual migration steps seem to be needed for upgrading from the previous 1.1.x releases. There might be some typical deprecation warnings in the development version, but that shouldn't affect the production version of your app. If you need a bugfix-only drop-in replacement, you might want to check-out qooxdoo 1.1.1, the corresponding patch release.

Highlights

  • The entire manual is now in SVN, using reStructuredText as markup. It is delivered with the SDK as HTML and also as a PDF document for offline reading (about 400 pages).
  • A new virtual List was added, which can handle really large numbers of items. It takes full advantage of qooxdoo's data binding layer, so another demo shows how you can create an extended list with custom renderers. The virtual List is marked as experimental, and we look forward to include user feedback as we continue with the development of additional virtual widgets.
  • As another preview we added a Selenium window to the cross-browser Inspector to aid in developing automated GUI tests for qooxdoo applications.
  • The API Viewer now allows you to open distinct tabs for any class or package description. Just press “shift” or “ctrl” when mouse-clicking on a reference.
  • Many handy features made it into the release to support your work as app developers, e.g. generating API doc files for dedicated classes by a single command, including child control info with the API reference, several optimizations in the toolchain, more configuration options for the generator, experimental Jython support, real-time logging in the Playground, and so on.
  • More than 200 bugfixes and enhancements over the previous release.

Bugfixes & Enhancements

See this detailed list of issues resolved for qooxdoo 1.2, which includes the fixes of the accompanying 1.1.1 patch release. A detailed list for those issues that were resolved for 1.2 exclusively, see here.

Framework

Core

  • Fixed the getKeys implementation which was not compatible with ECMAScript 5 (3503).
  • General fixes in the OO system (3709).
  • Fixed the startup of qooxdoo applications which don't include the main application class with their boot part (3793).
  • Removed all deprecated code introduced in earlier releases (3642).
  • Deprecated the second parameter of the method dispatch of class qx.event.message.Bus in order to get a more explicit API. This method now only accepts one parameter: an instance of qx.event.message.Message. Additionally a convenience method called dispatchByName was introduced. This method does accept a string as a first parameter and variable data as a second, and creates an instance of qx.event.message.Message on-the-fly.
  • Deprecated the non-standard serialization of Date objects in qx.util.Json. This behavior can be controlled by setting the qx.util.Json.CONVERT_DATES flag. (3335)

Browser Support

  • Fixed qx.bom.Document.getHeight(), which could return wrong values in IE8 (3719).

Transport

  • Improved the disposal of the transport layer (3812).

Low-level

  • Fixed bug in qx.bom.Collection when chaining two selectors. If the first selector does not match any element the result is now correctly an empty collection. The former behavior of using the document as an input to the second selector was removed.

GUI Toolkit

UI Core

  • Changing the scaling of unmanaged images is now working.
  • Unmanaged images in IE no longer show a broken image thumbnail above them.
  • qx.ui.basic.Image now features events for successfully loaded or loading failed (3585).
  • Blocker handling was improved, as before it was possible that an internal blocker could be negative. (3720).
  • Added a new keepBlockerActive property on qx.ui.core.Blocker. This can be used to tell the blocker to receive all key events.
  • Minor fixes in the mouse cursor handling (3715).
  • Adjusted the mouse wheel speed for webkit (again) (3749).
  • Changed the selection behavior of disabled widgets to make it consistent. Disabled widgets can be selected programmatically by API, but not interactively by the user (3344).

Data Binding

  • The YQL data store now supports the https protocol.
  • Minor fixes in the data array (3594, 3667).
  • Fixed the ignorance of converters in the target chain binding (3760).
  • General improvements of the list controller (3404).
  • Added proper listener removal to the tree controller (3566).
  • General improvements of the tree controller (3860).
  • Added the destructor for object and form controller (3879).
  • Form controller can now handle any type of label as a name (3747).
  • JSON marshaller now skips qooxdoo objects (3883).
  • The JSON marshaller can now include validation rules (2854).
  • The changeLength event of the data array is now a data event, which makes it bindable (3722).

Form

  • Disabled spell-checking by default in every browser (3665).
  • Improved the wrap property of labels (3732).
  • Fixed a misbehavior in combination with keyboard selection and model selection (3748).
  • Prevent the form controller from resetting the selection, if selection-aware widgets are in the form (3541).
  • Model property added to RadioGroupBox and CheckGroupBox (3891).
  • Added the possibility to supply a context to the form validators (3672).
  • Added an optional date format to all qooxdoo serializers (3562).
  • General improvements in the form renderer (3577).
  • Added a property holding an individual invalid message for required form elements (3675).
  • The tree widget now implements the form interface, thus can be used in a form (3677).

Layouts

  • Minor bugfixes in layout calculation (3279).

Widgets

  • Minor fixes in the select box (3691).
  • Added a new scrollbar property on qx.ui.embed.Iframe to hide native scrollbars.
  • General fixes and improvements in the table widget (3493, 3850, 3286).
  • Tooltips can now be globally enabled/disabled. When qx.ui.tooltip.Manager.showToolTips is set to false, all application tooltips (except error tooltips) are disabled.
  • Windows now come with an alwaysOnTop property.

Virtual Widgets

  • Added a prototype implementation for the new Virtual List. The List leverages the existing virtual infrastructure, which makes it possible to handle a huge amounts of items. Note that the current implementation is a prototype, so the implementation is quite stable, but the API can change. Have a look at the List demo to see that the new List has the same behavior as the non-virtual list. The ExtendList sample demonstrates how to use your own renderer.

Theming

  • Minor fixed in the state handling (3707).

Applications

Inspector

  • Added the Selenium window, a tool to aid in developing GUI tests for qooxdoo applications.

Playground

  • General bugfixes (3674).
  • The log window is being updated in real time, and now comes with a "Clear" button.

Feedreader

  • Feed loading and parsing is now done via YQL (3634).
  • "Add Feed" window now uses qooxdoo's build in form and validation (3300).
  • Feedreader showcases the use of I18N parts (3697).
  • In the "Add Feed" dialog, <RET> now acts like pressing the "Ok" button.
  • Minor improvements to have feed items display correctly (3743).
  • Full coverage in terms of API documentation (3299).

API Viewer

  • Added a tab view feature to the API Viewer. Now you can open a distinct tab for every class or package description if you like, and switch between those tabs. To open a class/package description in a new tab use Shift + mouse click or Ctrl + mouse click. Regular left mouse clicks will still offer the default behavior, i.e. the hyperlinks are opened in the currently active tab, which is perfect for following cross-referenced information.
  • Class documentation now includes child controls, which is important when using and theming composite widgets (2134).
  • It is now possible to generate API doc files for dedicated classes, using generate.py api-data <my.class.Name>. This helps in developing API doc quickly, but you need to run a normal generate.py api at least once, to have the Apiviewer application ready to view the class docs. Then, just reload.

Test Runner

  • The "Auto Reload" option now remains off by default. Its state is saved in a cookie (3741)

Skeletons

  • Improved the look of the skeleton for Inline applications (3637).

Tooling

  • Stand-alone log jobs are now working.
  • Using contrib:// libraries in an application had to be adapted to changes in Sourceforge's ViewVC interface. Unfortunately, older qooxdoo versions will break due to this change, but there is an easy patch with the bug, which everybody running into this issue and not being able to upgrade should be able to apply. 3769
  • Fixed command line interface to ImageMagick (3673).
  • The generator seems to work now with Jython 2.5. While Jython is not officially supported for qooxdoo tooling, it might be interesting for all people who look for a close integration with Java-based environments. Feedback welcome.
  • Added dot output support to used-by dependency logging, which allows for generating graphs easily.

Generation

  • Cross-library combined images now work (3108).
  • The library scanner now follows directory symlinks to find source and translation files (2824).
  • #ignore compiler hints are now honored again.
  • Progress indication for the dependency analysis has been re-added (printing a . for each class analysed).

Configuration

  • shell/command now accepts a list of commands to run (3557).
  • Rarely used config key log/dependencies/using/phase changed to log/dependencies/phase.
  • New config key translate/pofile-with-metadata that allows to omit the meta data section at the beginning of a new .po file.
  • New config key compile-options/uris/add-nocache-param to add a ?nocache=<random> URL parameter when loading scripts in the source version.

Optimization

  • New implementation of the source code tokenizer, using a low-level scanner and a non-recursive second-level tokenizer on top of it (this was for instance a major obstacle to using Jython).
  • Various smaller improvements on the parser frontend.
  • New #cldr compiler hint allows the inclusion of CLDR data only for classes actually using one of the qx.locale.* framework classes.
  • Analysing combined images upfront during generation avoids multiple scans of the same image.

Internationalization

  • this.tr() and friends now allow an expression as their key argument, not just a string literal. You still have to provide the literals somewhere in your code, otherwise they will not make it into .po files.

Documentation

  • The entire manual is now in SVN, using reStructuredText as markup, and is delivered with the SDK as HTML and PDF formats. Of course, it is still nicely integrated into the homepage like the previous editions.
  • Descriptions for the standard applications (Feedreader, Demobrowser, …) have been added to the manual.
  • Updated the qooxdoo app tutorial due to a change in the twitter API (3841).
  • Updated the memory management documentation (3867).

Migration

Known Issues

  • Support for IE9, still only available as an early preview, was deferred to subsequent releases.
  • While Cygwin is not an officially supported environment for qooxdoo tooling, here's a know issue with Windows 7: Using the generator with Cygwin on Windows 7 can throw an error like died waiting for dll loading. This issue sometimes occurs when a process is being forked. We recommend using Active Python for all Windows platforms including Windows 7.

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.