qooxdoo 0.8-rc1 (2008-08-21)
Project
- API Viewer, Test Runner and Skeletons were moved to “components” as these are no applications in the classical sense.
- RPC backend code has been moved to qooxdoo-contrib.
Framework
Widgets
- Ported
ColorSelectorandColorPopupfrom 0.7.x - Improved styling of
DataChooserin Modern theme. - Added full keyboard support to
DateFieldandDateChooser. - Improved drag&drop support with better API documentation and slight API adjustments.
- Corrected auto-sizing of popups opened by SelectBox and ComboBox.
- Major improvements to GroupBox styling. Improved example.
- Fixed Spinner support for mousewheel event.
- Improved behavior of
SelectBoxandComboBox. - Fixed positioning of Menu in toolbar’s
SplitButton(Modern theme only). - Fixed tab focus support for
ComboBoxandSpinners. - Stopped
doubleclickevents inAbstractSliderandButtonwidget to prevent these widgets to let this event bubble. - Fixed
Resizerwidget. - Fixed disabled icon display in Trees (was not grayed out previously).
Table
- Many
Tableissues were fixed. Some of them were backported to legacy (0.7.x) as well. Still one open IE rendering bug. - Fixed a few CSS quirks of the
Tablewidget. - Fixed missing base call in constructor of table’s Abstract cell renderer
TreeVirtual
- The
TreeVirtualwidget has been ported from 0.7. - The appearance of a tree is much more tightly aligned with the theme than previously, including which icons are used for the open/close buttons.
- Use of “tree lines” can now be controlled by the theme as well as programatically, i.e. themes can choose whether tree lines are appropriate in that theme. Currently, the
Classictheme provides tree lines. TheModerntheme, which uses right-facing and downward-facing arrows for the open/close buttons instead of the traditional plus/minus icons, does not.
Progressive
- The
Progressivewidget has been ported from 0.7. This widget is appropriate for any task in which small portions of the task should be executed at a time, progressively, until the complete set of task portions has been executed. Integrated renderers include the Progressive Table (which supports variable row height), and Progressive Loader (to not only indicate percentage of loading complete, but allow the user to watch the loading progress). Other renderers can be easily added by the user. - The Progressive Table renderer now uses appearance themes, and defaults to an appearance nearly identical to the Table widget.
- The variable row height capability of the Progressive Table is demonstrated in conjunction with ascertaining the dimensions of images placed into the table. The height of a row is established by the height of the image placed in a cell in that row.
Toolkit
- Support for styleable widget shadows for top level widgets like windows or tool tips.
- Full support for alpha transparent PNGs in IE6 in decorators and icons
- Images in qooxdoo can now be scaled to the size given explicitly. This auto-scaling is disabled by default, but can easily be enabled with the boolean property “scale”.
- Added support for centering
Atoms. For instance this is used by buttons that center the label when more space is available (e.g. typical “OK” buttons) - Moved widget specific layout managers from qx.ui.layout to more specific namespaces (e.g. menu, splitpane, ...)
- Fixed typo in
isActive()andisFocused()ofFocusHandler - Fixed Safari/Webkit issue with shadows being dragged around when trying to resize qooxdoo Windows.
- Added support for spacing in
Toolbarsand toolbarParts. - The
contentPaddingproperty is now supported by the mixinMContentPaddingwhich also allows CSS shorthand values for padding e.g.[3, 5] - Added support for
autovalue for scrollbars inMNativeOverflow. - Improved handling of enable/disable connected
CommandsandWidgets - Improved
Atomto better support empty regions (e.g. images which could not be loaded) - Fixed major memory leak issue in
Labelwhich kept a connection to the locale manager.
Theming
Modern
- Major improvements for TabView, the Toolbar and all panes
- Unified outer border of
Tree,Table,List,Popup,Menuetc. to match the theme mockup. - Major cleanup of colors and decorators included in this theme. Improved naming conventions.
- A lot of decoration images of the “Modern” theme are now combined for better application performance and reduced latency at load time.
- Improved font theme in
Modernto make use of fonts available natively - Added
monospacefont for convenience (not used by the appearance)
Classic
- Some tweaks are planned for after the release candidate to follow up with the improvements of the
Moderntheme. - Added
monospacefont for convenience (not used by the appearance)
Decorators
- Decorators are now fully compatible to both box models and therefore are independent of the doctype.
- New
Backgrounddecorator for decorations without borders which is even simpler than Uniform. - Cleaned up theme managers from old ballast (theme switch, theme titles, ...).
- Slightly improved decorator API.
- Added constructors to all decorators.
- Improved decorator checks and hints for wrong use cases e.g. Double decorator without inner border, Single decorator without any border at all, etc.
Core
- Protected and private member fields in qooxdoo classes are a problem since authors of derived classes may use fields with the same names, which can easily break things. To solve this problem we now have the policy to use private fields where possible, and to list all member fileds explicitly in the data section. This way it is easier to understand which field names are used and we can report warning and errors if a protected field is redeclared in a sub class. The “ecmalint” tool has been modified to report code where these rules are violated. This policy is now in place in most parts of the framework.
- Added a lot of missing destructors, still in progress until final release.
- API documentation is more complete, particularly by adding a lot of new class descriptions which were missing previously.
- Performance and memory usage tweaks for
Widgetandqx.html.Element, being core components of any qooxdoo GUI application. - Refactored and cleaned up static resources of qooxdoo, now only including
blank.gifandblank.html, which are theme-independent and used by more than one class. - Property inheritance has been modified a bit to convert the “inherit” value automatically to “null”. Previously applied routines and getters may have received a string value “inherit”, which caused some problems and made code more complex than needed in some cases.
- Improved disposers and checks to correctly support
Decorators,FontsandBaseString - Changed support for properties checking for
Color. Native color names likewindowormenuare not respected anymore as they may conflict with themes or even worse may be used without the knowledge that these are not themed but OS dependent. - Added option to
scrollIntoViewto omit direct execution which is needed by theTabViewfor example.
Low-Level
- New low-level class to create images for decoration purposes with support for combined images (a.k.a image slices), alpha transparent PNGs, various new repeat modes like
scale-xorscale-yetc. - Fixed drag and drop bug in portal application
- Added hints when using images which qualify as good candidates for being combined. Another smart helper to support the developer to create low-latency applications.
- Fixed
Style.compileto ignore properties with “null” values. - Fixed issue with
enctypeattribute which was camel-cased, but does seem to work only in lower-case in IE.
Migration
- Fixed migration to 0.8-rc1
- Added/Moved legacy resources
- Changed legacy theme to match resources
Components
API Viewer
- Now opens first namespace of all root folder trees
- Major improvement of appearance (more modeled after originals screens by the designer of the Modern theme)
- The documentation warnings are now stricter. It now warns for missing constructor parameters and missing class documentation as well.
- Reduced local data; full framework API documentation now under
framework/api
Test Runner
- Minor adjustments of appearance to match Feed Reader and API Viewer
- Now shows the application under test in a separate pane. Before it was loaded into an hidden Iframe.
- Changed all HTML files to be XHTML instead.
- Reduced local data; full framework tests now under
framework/test
Applications
Demo Browser
- Ported demo browser animation demos
- Many widget demos have got a lot of love. Code should be more concise, functionality be fixed where needed.
Feed Reader
- Make use of toolbar parts to unify with API Viewer styling.
- Improved styling of article content. Better font.
- Improved handling of bad feeds (invalid format). These are now disabled in the tree instead of being removed from the tree.
Quick Start
The “quickstart” application was removed. The new build process (especially for Windows users not requiring Cygwin any longer) should be so convenient that starting to develop a application the wrong (but easy) way first is not regarded a good option for GUI development. A pre-built package is planned for a future release, though, that will be an alternative to other low-level libraries like Prototype or jQuery.
Tool Chain
Create Applications
The framework now features a script called “create-application.py”, which makes it easy to create new qooxdoo applications. The script needs only an application name and optionally the name of the top level namespace to create a fully configured qooxdoo skeleton application. The script is able to create different kind of applications. The default is a qooxdoo GUI application. Other supported skeleton types are low level BOM, a GUI application which includes a contrib project and finally a skeleton, which can be used as basis for a migration from 0.7.
News
- Added
test/test-sourcejobs, to create application-specific Testrunner environments - Added
migrationjob for applications - Removed dependency from external
rmcommand (forcleanjobs)
Fixes & Improvements
- Improved locales handling, with independent
translatejob to re-create .po files, and alocalesarray honored insource/buildjobs; ‘localize’ config key (superseded bylocalesubkey in compile actions) has been removed - More robust handling of combined images
- Significant speed-up for
cleanjobs - Version check for downloaded contrib libraries is active again (so unchanged contribs will not be downloaded repeatedly)
- Various bug fixes, especially around path/uri handling
Distribution
Number of release kits cut down to one! Starting with this release, the only released kit will be the SDK. “build” and “quickstart” kits are gone. The SDK kit also contains no further zip archives, the skeleton is provided as a normal component in source tree form.
Changes
- New folder structure (
backendgone,frontend/*lifted, application split intoapplicationandcomponent, newindex.html) - Contains pre-build Apiviewer
- New wizard
tool/bin/create-application.py component/skeletonreduced to hold template subdirectories for various application scenarios, used by ‘create-application.py’

