This release comes with many new features and improvements besides a large number of bugfixes.
qooxdoo's GUI toolkit for feature-rich applications has become much more lightweight.
While keeping most of its sophisticated feature set, every desktop widget now consists of just one DOM element (from 2-5 before) and corresponding JavaScript object representation. So a typical desktop application now comes with less than 50% of elements, a fact that improved UI performance on all devices tested.
Illustrating the reduced DOM elements: previous qooxdoo (left) vs. qooxdoo 3.0 (right)
The optimizations were only possible by revisiting the browser support: We took further advantage of native features built into modern browsers. At the same time we implemented graceful degradation in older browsers (like IE8) and discontinued support for some legacy browsers (like IE6 and IE7). Moreover, this release already embraces future browsers (like IE11 Preview).
Chances are good you won't have to change anything in your existing qx.Desktop application. See the documentation if your application needs some manual adjustment (e.g. if you created a custom theme).
We have been able to achieve a good user experience in running qx.Desktop apps on touch devices. For instance, on hybrid devices (like Windows 8 convertibles) or tablet devices like the iPad. To further support the latter scenario, we introduced a new setting for you to opt-in to mouse event emulation on touch devices. This further increases subjective performance when using your fingers to interact with desktop apps.
Go ahead and give the widget browser or feedreader a try on the iPad.
qx.io.rest.Resource
there exists now also qx.bom.rest.Resource
which brings REST to qx.Website (exposed as q.rest.Resource
) in company with a FakeServer (q.fakeServer
) for testing purposes.q-core-3.0.min.js
, q-animation-3.0.min.js
, …) which are freely combinable.See this detailed list of issues resolved for qooxdoo 3.0, which includes the fixes of the accompanying qooxdoo 2.1.2 patch release. Besides fixes for defects, many enhancements made it into qooxdoo 3.0. See here for a detailed list of issues that were resolved for 3.0 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.1.2, the corresponding patch release.
this.base(arguments, varargs)
) from qx.Class
also for qx.Bootstrap
classes (#7404)build-module-all
and build-module-all-min
jobs which build module tailored qxWeb js-files (#6849)q.rest.resource
module (#7332)q.dev.fakeServer
module (#7331)renderToNode()
method to template module (#7300)empty()
: fixed destroying of child elems in IE (#7323)replaceClass()
: only adds a class as replacement (#7265)`=`
in front of an excluded class will now remove also all classes required by this class from the build.Manifest.json
validation via JSON Schema (#6674)config.json
validation via JSON Schema (#5426)`#`
compiler hints are deprecated; use `@`
hints in JSDoc comments instead. This affects all of #asset, #require, #use, #ignore
and #cldr
. See the migration guide.`@lint ignoreUndefined`
is deprecated; use `@ignore`
instead.setTextColor
in the class qx.ui.embed.HtmlArea
has been renamed to setTextForegroundColor
. The method still exists but is inherited from the widget API. So ode won't break but does not work as expected anymore if not updated.added
and removed
each holding an array of items. The items
property is therefore deprecated. (#6207)