A new version of the library packed with lots of bug fixes and a fair share of new features.
download: wt-3.1.9.tar.gz (C++) / jwt-3.1.9.zip (Java)
The highlights of this release are:
Both of these form elements have been refactored to allow support for the native HTML5 controls, where available. The spinbox also received a number of improvements for formatting and validation, and now comes in an integer and double variant.
As already discussed in a previous post, Wt now uses the HTML5 History API where available (that is currently Firefox 4, Chrome and Safari) to use the same URLs in sessions with or without JavaScript.
Text rendering support in WPdfImage and WRasterImage suffered from poor (or nonexistent) support for unicode text. With this release, both rendering devices received first-class support for unicode text rendering. In both cases, font selection may be assisted by libpango, so that for a given unicode string, one or more fonts are selected based on their coverage of unicode characters.
To enable unicode support in WPdfImage, we contributed a number of patches to libharu, to include full unicode support and to properly use a wider variety of TrueType fonts. Pending integration in libharu, you should use this Unicode fork of libharu.
While in English and many other languages a noun has only two forms (singular and plural), in many other languages the grammar is more complicated. We implemented WString::trn() which is given an amount, and which uses expressions, like those supported by ngettext(), to chose a particular plural form depending on the amount.
Taking locks in a multi-threaded application is usually needed to allow safe access to a resource, and an application lock is provided to safely access an application session from outside the event loop. Yet, locking introduces the danger of dead-locks, and use of SyncLock is a (complicated) mitigation for this. We now added a simple alternative to to post an event to a session. This method is dead-lock free and properly takes into account the possibility that the session may no longer exist or is being terminated. We ported the examples (simplechat and codeview) over to this for event delivery to other sessions.