This release comes with many new features and improvements besides a large number of bugfixes.
- qooxdoo's website-oriented features have been around as a pre-built library, typically called "q" due to its top-level namespace. To avoid conflicts with your environment, you may now also use the alternative identifier qxWeb.
- Animations also make it into the desktop widget set: fade in, fade out or scroll animations can easily be applied to those rich interfaces.
- The toolchain is an integral and powerful part of the qooxdoo SDK. For many typical usecases it is now faster and more robust. The new JS parser, introduced with 2.0, has been extended to take over more use cases from the old one.
- Writing API documentation can be error-prone. Now developers benefit from a stricter parsing and analysis of JSDoc comments, including checks for parameter types, return values and other possible inconsistencies.
- When working in a team of developers, or when incorporating code from several sources, a consistent coding style is beneficial. The pretty-print feature was revamped and includes some handy features for reformatting code, such as limiting the length of code lines.
See this detailed list of issues resolved for qooxdoo 2.1, which includes the fixes of the accompanying qooxdoo 2.0.3 patch release. Besides fixes for defects, many enhancements made it into qooxdoo 2.1. See here for a detailed list of issues that were resolved for 2.1 exclusively.
Some manual migration steps might be necessary when upgrading from the previous releases, see the Migration guide. Deprecation warnings in the development ("source") version shouldn't negatively affect your app in production ("build"), but it is recommended to get rid of those warnings. A bugfix-only replacement is available as qooxdoo 2.0.3, the corresponding patch release.
- qx.log.Logger now includes the stack trace when serializing error objects.
- Fixed source loading of huge applications for IE.
- Fixed removeListener for listeners added with addListenerOnce.
- Make sure to return the right value in application routing.
- Updated the cursor implementation.
- In class handling removed the setting of overflow styles (not needed nowadays). (#6618)
- Added the possibility to tell the JSON marshaler which parts to ignore during marshaling. (#6580)
- Fixed CSS border-image feature detection for Firefox 15+.
- Fixed transform detection for IE10.
- Fixed chrome bug which caused ellipsis in most labels. (#6799)
- qx.io.rest.Resource is production ready now.
- "poll" method of "qx.io.rest.Resource" should not start immediately. (#6642).
- New method
qx.application.Routing.getStatereturns the history hash of the navigation handler.
qx.application.Routing.inittakes an optional default route as argument.
qx.uitable.model.Remote.reloadDatanow clears its data only when new data arrives from another request.
qx.bom.element.Style.compilenow uses vendor-prefixed CSS property names if necessary.
- Fixed bug in the templating where plain text instead of a text node has been returned.
- Fixed memory leak in the event emitter.
- Added missing methods.
- Added a storage module.
- Added a placeholder module.
- Added a core module.
- Added iteration / start event to the animation layer.
- Added possibility to delay animations.
- Animation module now supports animated scrolling.
- Animation keep frame will be calculated right for reversed animations.
- Added a isPaused method for animations.
- Added a cross browser wrapper for 'requestAnmiationFrame'
- Added scroll animation support. (#6702)
- Enhanced the polyfill module.
- The filenames now contain the version number.
- Bug fixes in the IO module.
- Updated mustach.js to version 0.7.0.
- Updated sizzle to version 1.8.2.
- Support for noConflict mode added. (#6766)
- Use the native placeholder for Firefox.
- Fixed placeholder wrap behavior.
- Fixed a missing input event for input fields.
- Make sure to reset the input value on input fields to ensure the firing of input events.
- Exposed the redefineItem method of the resetter in the form.
qx.ui.tree.VirtualTreenow supports sorting and filtering (via a delegate).
- Fixed web font rendering for safari.
- Fixed shadow resizing / positioning when shadow objects are changed during runtime.
- Fixed usage of box shadow and linear gradients in IE.
- Fixed date chooser appearance of the simple theme.
- Color themes can now contain self references. (#6705)
- Added documentation on how to use the Widgetbrowser for custom theme development. (#5261)
- Added null state and placeholder to qx.Mobile SelectBox. (#6729)
- iOS6 support for qx.Mobile. (#6893)
- Android 2.3 Form Field Fix (iScroll) is only used till Android 4.1. (#6896)
- Fixed wrong positioning of Dialogs. (#6885)
- Atom should be able to change its image after initialization. (#6806)
- Added qx.ui.mobile.embed.Canvas. (#6900)
- Added transform/scale/rotate methods to
- Implemented fallback for mobile widgets transform: translate3d() to translate() if "css.transform.3d" environment variable returns false.
- Prevent mobile showcase from loading desktop icon set.
- Added a picker widget
qx.ui.mobile.list.List: Improved rendering performance. (#5185)
- "Soft Keyboard" - don't hide after textField input on ios mobile environment. (#6775)
- "changeSelection" event should be fired by
- Support for Ripple Emulator. (#6686)
qx.ui.mobile.page.NavigationPageshould provide full screen mode. (#6550)
- Allow reverse direction in
qx.ui.mobile.form.Groupfor improved layouting. (#4906)
- Updated qx.Mobile Event Showcase.
- Fixed Android form input field bug. (#6646)
- Handle visibility on form rows. (#6829)
- Mobile Carousel should allow page scrolling. (#6911)
- Make qx.Mobile support Internet Explorer 10. (#6929)
event.mspointerenvironment variable, which checks for IE10 MSPointer events. (#6929)
- Fixed Inspector for working with qx.Mobile Apps. (#6480)
- Added the environment key 'runtime.name'.
- Added the version number to the NPM package description's main key.
- Made Inline applications mobile-ready. (#6652)
- Used the routing class for navigation.
- Added a animation timing compare demo.
- Updated ACE to version 1.0.
- Newly added application for live tutorials.
- The website view is based on qx.Website aka q.
- Complete rewrite based on qx.Website.
- The Test Requirements feature is now compatible with DOMless environments (node.js, Rhino).
- Added a mobile view and corresponding test-mobile job (mobile skeleton).
- HTML view: Improved test selection speed in older browsers.
- Widget view: Added a 'clear results on run' option.
- Feature Configuration Editor works on mobile devices. (#6588)
- The create-application.py scaffolding helper is now available in the SDK root directory.
- Using an alternative Json parsing module allows JS-style comments in all .json files, e.g. Manifest.json, better error reporting, and a command-line Json checker
- Added -I as short for –no-progress-indicator to the generator command-line options.
- Faster library scans with cold cache, through selective class parsing.
- Made library scanning more lenient, so that all library assets (classes, resources, translations) are optional.
- New log/translations key.
- New locals cs, pt in framework and apps.
- Upgraded polib module to version 1.0.1.
- With the new module, escaping of embedded double quotes is now mandatory (e.g.
msgid "foo \" bar").
- New implementation of warning module unifies warning output of compile and lint jobs. (#4615)
- Lint job now takes the compile libraries into account so that their symbols are recognize as known.
- New lint JSDoc keys to suppress certain warnings: environmentNonLiteralKey when warning about non-literal first arguments in calls to e.g. qx.core.Environment.get; ignoreNoLoopBlock when warning about loop bodies (if, while, for) not being a block statement.
- The 'lint-check' config key is now generally declarative (i.e. does nothing) if the subkey lint-check/run is not set to true.
- Besides that there are multiple new 'lint-check' config sub-keys, to control source code checking on the global level, like ignore-multiple-mapkeys, ignore-catch-param, etc.
- New pretty-printing implementation.
- New pretty-printing option pretty-print/general/text-width, to limit the length of source code lines.
api-verifyjob can now check the documented types of function parameters and return values for validity.
- qx.Website: Added polyfill documentation to API Viewer.
- Added an manual page about events in the data binding context.
- The tutorials use
- The SDK's manual (under documentation/) is now offline-capable, e.g. containing all required style sheets and fonts.
- New implementation of the JSDoc parser; syntax of JSDoc comments is now treated more strictly.
- Deprecated unused qx.util.format.DateFormat.LOGGING_DATE_TIME__format.
- Moved the RingBuffer class from qx.lang to qx.util.
- A bug in the inset calculation of the shadow decorators changed the insets handling. (#6684)