WARNING! This file is no longer used. Please refer to the ReleaseNotes for major changes, and the git log for more fine-grained information on changes. 28-11-2013: * WRasterImage: now also support skia as backend. Cmake option ENABLE_GM is replaced by WT_RASTERIMAGE_IMPLEMENTATION, which has to be set to none, GraphicsMagick, or skia. 10-07-2013: * WSignal: Due to boost 1.54 complaining on boost.signals being deprecated, namespace Wt::Signals was created. This namespace contains the boost signals implementation that is optimal for your boost: for boost < 1.54 it will be signals, for boost > 1.54 it will be signals2. 15-05-2013: * WStandardItem, WStandardItemModel: before: checkboxes are rendered in enabled state when ItemIsUserCheckable flag is set. Now: checkboxes are rendered when CheckStateRole is present. If ItemIsUserCheckable is set, the checkbox will be editable. If ItemIsUserCheckable is not set, the checkbox will be uneditable. setCheckable(true) will add a CheckStateRole of false when no CheckStateRole was present on the element. 05-04-2013: * Client SSL certificates can be queried from (static) WResources 26-02-2013: * Fixed bugs #1711, #1712, #1713, #1714, #1715 * Wt-3.3.0-rc3 19-02-2013: * Fixed bugs #1689, #1698, #1687 (from Starius) * Implemented features #1675 (from Thomas Saquet) * Wt-3.3.0-rc2 18-02-2013: * Fixed regression in resource continations 15-02-2013: * Fixed bugs #1699, #1697, #1696, #1695, #1677, #1676 * Fixed WPopupMenu::triggered() behaviour change from 3.2.3 12-02-2013: * Wt-3.3.0-rc1 25-01-2013: * Merged in bootstrap branch, with many additions, changes and above all addition of support for Twitter's Bootstrap framework as a new theme 12-12-2012: * Added binary WebGL VBO buffers, contributed by Tassilo Glander 01-11-2012: * Wt-3.2.3 05-10-2012: * Layouts: various bug fixes and improvements * Render: added support for repeating table headers * WApplication: added some tentative methods for 404 generation in response to internal paths 13-09-2012: * Render: added support for explicit page breaks and % widths * layouts: fix popup widgets confusing preferred size calculations (tentatively) 13-08-2012: * Payment: new API for payment processing, with an implementation for PayPal 10-08-2012: * layouts: fix various issues * WTextEdit: fix behaviour inside a WPanel * Render: code reorganizations for java port 03-08-2012: * QueryModel: added stableResultRow() method which has more guarantees of consistently returning the same result regardless of database changes 27-07-2012: * Dbo/Exception: add support for SQLSTATE code information * Mail/Client: log configuration that will be used on first use * WAnchor: use tag even if no link has been provided (#1348) * WDoubleSpinBox: fix formatting (#1358) * WSlider: add more hooks for custom styles 25-07-2012: * Layouts: fix error in switching to contents determining layout size * Wt-3.2.2-p1 23-07-2012: * WebController: workaround filesystem runtime problem for boost 1.50 * Wt-3.2.2 16-07-2012: * Wt: fix compile issues with boost 1.50 * WPieChart: support TooltipRole data * WGridLayout, WBoxLayout: fix dynamic add/remove behaviour, fix behaviour in WGroupBox, and honor minimum size settings on container * Wt-3.2.2-rc2 04-07-2012: * Wt-3.2.2-rc1 28-06-2012: * WAbstractSpinBox: fix (server-side) validate() * WComboBox: handle current index when deleting rows * WTreeView: use hasChildren() do determine need for expand icon * layout: properly constrain minimum sizes in the application root 23-05-2012: * dbo: add One-to-One relations, using Wt::Dbo::weak_ptr<> * dbo: check relations are soundly defined instead of generating wrong SQL * dbo: collection::clear() method added * Utils::base64Encode(): added option to omit CRLFs from generated base64 stream * WGridLayout, WBoxLayout: more fixes to be backwards compatible with previous version * http/WtReply: fix memory leak when too-large files are uploaded leaving stale temporary files * WebSession: clean-up session-id file for FastCGI (regression) * WApplication::setInternalPath(): make it work properly when used without JavaScript 15-05-2012: * feature/dbo/tutorial9 example added: splits the classes over several files * WCartesianChart: add support for custom markers, and custom axis padding * WGridLayout, WBoxLayout: several bug fixes 14-05-2012: * WInteractWidget::setMouseOverDelay() configures a delay before the mouse over signal is fired * WInteractWidget::doubleClicked() has been reimplemented using mouseClicked() so that not both will fire in case both have events attached 09-05-2012: * WGridLayout, WBoxLayout: new implementation, which should get rid of misfeatures and annoyances * WebRenderer: do not generate double '//' when loading theme CSS * WebSession: do not wait for 'load' signal if not using ajax puzzle * WFileUpload: fix behaviour in MS HTA mode 05-04-2012: * StdGridLayoutImpl.js: unbreak layout in WGroupBox behaviour * Dbo/QueryModel: fix Firefox not showing header problem (LevelRole error) 03-04-2012: * WGlobal: add more forwards * WTreeView: relax fix for behaviour in layout manager * Dbo::QueryModel: make const methods const 30-03-2012: * Wt 3.2.1 (final) released 03-01-2012: * Wt/Utils: new header with utility functions that implement commonly used hash functions and encoding/decoding * WAxis: fix Date and DateTime scale rendering, to take into acount labelInterval() and better choice of label values 28-12-2011: * Dbo/Transaction: do not require a commit() to commit a transaction (but preserve behaviour to rollback in case of an exception) 27-12-2011: * Auth/: reorganisation, more model/widget separation 26-12-2011: * WSlider: implement disabled rendering 22-12-2011: * hangman example: add Russian translation 19-12-2011: * Render/: optimize table rendering 07-12-2011: * WGoogleMap: unify loading for v2 and v3, fixes bugs in loading a second v3 google map 01-12-2011: * Wt.js, WtReply: more robust handling of flaky WebSocket connections * hangman example: misc editorial changes * WReadOnlyProxyModel: a simple proxy model that allows sharing of source model between different sessions (but read-only) * Dbo: added belongsTo() and hasMany() overloads which infers the foreign key names from the foreign table * Dbo: added session() method to actions * WStringStream: optimization for string literals which avoids strlen() * WDialog: fix positionAt() * wtfcgi: fix regression (data corruption) when built with DEBUG=ON 29-11-2011: * Released: 3.2.0 21-11-2011: * Wt/Dbo/backend/Firebird: merged Firebird backend contributed by Lukasz Matuszewski from Technical University of Gdansk. * Wt/WLogger: the library now uses macros that wrap around Wt::log() by default for internal logging, but this could be adapted to use another logging system of your choice. We also abide the third law of logging libraries: that they will expand their features until they become unusable: we added configurations options to enable or disable specific logging. * WServer: support catching SIGHUP (on unix-like) systems to reread the configuration file. * httpd: implement newer (and newest) WebSocket drafts (protocol versions 7, 8 and 13) * all: closed several bugs and feature requests (#956, #1015, #1018, #1064) 18-11-2011: * WString: we now store arguments as WString so they are also properly i18n-ed (#1059). 07-11-2011: * WException: new, public exception class (was previously an internal one) * WIOService: new, public service class for async I/O, and its thread pool * WStringStream: new, public fast stringstream implementation (was previously an internal class) * Wt/Auth: new, authentication module * Wt/Json: new, JSON library * Wt/Mail: new, mail client * Wt/Http/Client: new, http client (former Client renamed to WtClient) * Wt/Test/WTestEnvironment: has moved to a "wttest" pseudo-connector library * WFormWidget: added a valueText() that returns the textual representation of the current value * WApplication: added deferRendering() and resumeRendering() API, useful for asynchronous client operations * Wt::log(): global logging method, similar to but more useful than WApplication::log() * WTemplate: added support for functions, and two standard functions id() and tr() * WTemplate: implemented arguments parsing and use ("class") * WebSession: added DoS meausures: ajax puzzle and plain session rate limitation 19-10-2011: * WAbstractItemView: reimplemented and simplified header item rendering * Wt.js: workaround browser bugs in scrollLeft reading in RTL mode, fixing WAbstractItemView column resizing in RTL layouts. 12-10-2011: * WRectF: fix isEmpty() to be more restrictive: only a rect with width = 0 and height = 0 is now empty 11-10-2011: * WPopupMenuItem: fix crash with re-showing hidden popup * WDialog: add setClosable() which adds a close icon to the title bar * WAbstractItemView: more flexible API for header height and vertical alignment 05-10-2011 * WMediaPlayer: make sure that relative URLs resolve against deployment path (#1007) 03-10-2011 * Dbo: added dialect option for 'rows ? to ?' (Firebird database). 23-09-2011 * Wt 3.1.11 released 19-09-2011 * WAnchor, RefEncoder: added indirection to strip session ID from the referrer before navigating to an external URL (#607) * wthttp: stabilized WebSockets handling 13-09-2011 * WConfig: added a check to detect header/library version mismatches * Chart/WAxis.C: a fix from Joe Garcia, crash with log scaling * WItemDelegate: set target new window for WLink data when it references a resource * WMenu: fix hiding of a menu item to hide the entire item, not just the contents (label) 05-09-2011 * WResource, Http/ResponseContinuation: added API to suspend a response while waiting for more data, and resuming later 31-08-2011: * WResource: use suggestedFilename() also when set during handleRequest() (#920) 22-08-2011: * Dbo/DbAction: fix missing actId() in FromAnyAction triggered by QueryModel with natural ids * WAbstractServer, WebMain, WebSession: added support for scheduling events, used to timeout bootstyle response to avoid problems on IE(9) ? * WCssDecorationStyle: fix border() segfault 10-08-2011: * WContainerWidget, WScrollArea, DomElement: use overflow-x and overflow-y CSS style since now well cross-browser supported (#830) * Dbo/Session: add forceReread parameter to load() * WLength: throw exception when unit is corrupt * WTreeTable: throw exception on contract abuse * examples/wt-homepage: Russian translation contributed by Dmitriy Igrishin 09-08-2011: * Wt.js: fix z-index for drag widget (#927) * WTreeView.js: fix column 0 resizing with total treeview regression * WFormWidget.C: do not allow editing when isReadOnly() * Dbo/ptr: fix ptr operator bool() loading the object (#909) * Dbo/CMakeLists.txt: support building and installing Wt::Dbo independently from Wt (#907) 05-08-2011: * WApplication: added a docRoot() method which returns the webserver document root 03-08-2011: * WMediaPlayer: new cross-browser, flexible, audio/video player widget * WHTML5Video, WHTML5Audio, WHTML5Media: renamed to WVideo, WAudio, WAbstractMedia * WSound, SoundManager: reimplemented using WMediaPlayer * WPopupMenu: new method setAutoHide() for automatic hide when the mouse leaves * WLink, ...: new utility class that abstracts a link destination (be it a URL, a WResource or an internal path) * WPopupMenuItem: new methods setLink() and setLinkTarget() associate a link with the popup menu 25-07-2011: * WPopupMenu, WPopupMenuItem: improved triggered() signal API and added setSelectable() signals 18-07-2011: * WMenuItem: fix takeContents() (#897) * WMenu, WMenuItem, WSubMenuItem: simplifiy internal path handling with submenus 15-07-2011: * examples/feature/broadcast: add an example that illustrates server push, WServer::post() and synchronizing a shared resource across sessions 14-07-2011: * fix min-width being ignored in layout managers * WDialog: implement setResiable() (#612) 12-07-2011: * collection: implemented count() method for relational collections (#882) 11-07-2011: * WFileUpload, WApplication: fix maximum request size and fileTooLarge() bugs (#794) * WTestEnvironment: add methods to test reentrant eventloops (#711) 08-07-2011: * Wt 3.1.10 ! 07-07-2011: * Dbo: allow foreign key constraints to be passed to a primary key (that is also a foreing key) * Dbo: implement ostream<< for a ptr. 06-07-2011: * Wt.js: fix HTML5 history spec weirdness with null state * WFileUpload: fix second upload() crash (#888). 04-07-2011: * WWebWidget: added childrenChanged() signal and use this in WMenu to track contents stack updates 29-06-2011: * WWidget: show/hide animations also work on FF5 now * WMenu: better handling of internal path changes to use best match (when components include more than one level) * WMenu: fix stateless slot learning issue with submenu items 28-06-2011: * Dbo/ptr: let modify() return a proxy mutator object which marks dirty from its constructor and destructor, ensuring that modifications are not lost in the case the session is flushed amidst a modification. 27-06-2011: * Dbo/collection: implement insert() and erase() for ManyToOne collections 24-06-2011: * WApplication: implemented changeSessionId() method, useful to mitigate session fixation attacks * WApplication: added removeMetaHeader() method * WFontMetrics: solve pango font-based metrics for cursive fonts * WTableCell, WTableRow, WTableColumn: add more convenience methods for navigating the row, column 23-06-2011: * WApplication: button img style to keep HTML4 behaviour of centering the icon vertically in the button * WWidget, WWebWidget, js/ToolTip: implement an XHTML tooltip using JavaScript * WTableView: fix setHeaderRowHeight() in plain HTML mode, other plain HTML style consistency improvements 19-06-2011: * collection: implement copy constructor which is needed for relational collections 14-06-2011: * WTemplate, WText: implement setInternalPathEncoding() method which encodes anchors with internal path references * WAnchor, ... resolve relative paths correctly when HTML5 History internal path implementations are used 30-05-2011: * WAbstractItemView, WTreeView: fix browser memory leaks of inline stylesheet definitions (#834) 27-05-2011: * WebRenderer, WebSession: better detection of IE9 and workaround its bugs (box-sizeing border-box) * WWebWidget: do not set an offset auto for IE (gets confused) 23-05-2011: * WTextEdit: implement missing toolBar() method * WCssDecorationStyle: fix operator= behaviour and unset properties (#816) 20-05-2011: * WServer, http: remove singleton objects to allow multiple WServer instances * WAbstractSpinBox: fix behaviour on IE * Wt.js: fix button up registration 19-05-2011: * WTextEdit: make all things configurable per instance (#801). 13-05-2011: * WebSession: relax needs for setting baseURL. Looks good ! * WWidget, WAnimation: added animation options for setHidden(), and new methods animateShow() and animateHide() * WStackedWidget: added support for a transition animation * WDialog: added animation support for the dialog cover as well, and improved centering on IE (at least it seems to me ?) 06-05-2011: * WebSession: fix baseURL property usage and internal path inconsistencies * WObject: fixed memory leak (signal destroyed was never deleted) * WTreeTable: fixed progressive bootstrap behaviour * WTableView: pageSize is minimally 1 * http/Connection: fix HTTP1.0 + continuations error (#810) * WTestEnvironment: fix reading from server_ = 0 bug 27-04-2011: * backend/Postgres: use actual autogenerated id field name instead of "id" 26-04-2011: * http/Connection: fix a leak in websocket sockets (file descriptors) * WLayout: added a clear() method which removes all contents * WDataSeries: fix setLabelColor() being ignored * Dbo/backend/Postgres: set client encoding to UTF8 * WTable: added moveRow() and moveColumn() methods * WTableView: fix setColumnHidden() with headerColumns() * WebSession: use baseURL property for self-referencing URLs * WServer: post() with optional fallbackFunction that is called when the targeted session is dead (by Gaetano Mendola) 14-04-2011: * WAbstractArea: fix anchor not being deleted 13-04-2011: * WebSession: fix setting cookies when using websockets * WApplication: fix unload() interfering with session reload when reload-is-new-session is set to false * sqlite3: bump to version 3.7.6 12-04-2011: * WebSession, WebRenderer: handle WidgetSet session reloading 11-04-2011: * http/Configuration.C: fix missing --docroot segfault problem * web/WebRenderer: option to allow splitting skeleton file in an invariant and variant part (useful if refreshing frequently) * WGoogleMap: fix rendering in layout manager on webkit * WStreamResource: refactored WFileResource, contributed by Dmitriy Igrishin 07-04-2011: * 3.1.9: release time ! 05-04-2011: * target/android, target/osx: starting to support these mobile targets * Ext/Calendar: set selected date on render 01-04-2011: * Chart/WChart2DRenderer.C: avoid clipping with WRasterImage backend of labels, titles by rendering in a wider box * WServer::post(): for lock-free event delivery to a session, instead of taking the WApplication::UpdateLock. Simplechat and codeview exapmles were adapted to use this approach. 29-03-2011: * WAbstractItemView: fix API usage when not rendered * WDate: patches from Gaetano Mendola w.r.t. invalid dates after month/year operations + isLeapYear() implementation 25-03-2011: * FontSupportPango: store leaky pango_font_map in thread local memory * WRasterImage: fix clipping problem with text rendering * W*Slider: fix 0 value and readonly attribute behaviour (#748, #749) * Wt.js: fitToWindow() when object is wider/taller than window (#766) * WebSession: support cookies in CORS (withCredentials flag) * Wt/WAxis: setResolution() implementation, contributed by Gaetano Mendola 23-03-2011: * target/osx: Add script to generate an OSX Framework for iPad/iPhone * Dbo/Query: fix limit_ and offset_ not being copied in copy constructor * Chart/WCartesianChart: allow custom color for a single bar in a bar series using BarPenColorRole and BarBrushColorRole data roles 21-03-2011: * Dbo/QueryModel: honour original limit() and offset() 25-02-2011: * WSpinBox, WDoubleSpinBox: separated integer from double spinbox, rewrite to take into account #737, #727, #721. Note that the API changed in several ways. 23-02-2011: * WRasterImage: implement drawImage() and improved text rendering, using libpango as font selector and glyph shaper, if available. * WPdfImage: use libpango for selecting (truetype) fonts, if available. 15-02-2011: * WebSession: support HTML5 History API for internal paths * wthttpd: a value for docroot like .:/css,/resources,/style is interpreted as defaulting to a deployed app except for the given paths, allowing deployment without ugly URLs (?_=) 12-02-2011: * WSubMenuItem: behave more consistently w.r.t selection (#694) 11-02-2011: * WString, WMessageResourceBundle: added i18n support for plural forms * WSlider: provide better CSS-ability and support for HTML5 input range native control 10-02-2011: * WRun(), WServer::addEntryPoint(): uses a boost::function for the application creator callback, so that you can bind additional arguments * WServer::initializeThread() a virtual method which can be used to initialize thread in a specialized WServer class (only for built-in httpd) 09-02-2011: * WTableView, WTreeView: renamed (and implemented for WTableView) setColumn1Fixed to setRowHeaderCount() 04-02-2011: * Released 3.1.8 28-01-2011: * Dbo: belongsTo() and hasMany(/* ManyToMany */) can now be passed foreign key constraints such as NotNull and OnDeleteCascade. 27-01-2011: * StdGridLayout: collapse paddings of empty items (affects all non-Ext layout managers) 25-01-2011: * Wt/Text/Renderer: warn but proceed when minimum render width exceeds page width * Wt/WPaintDevice: solve inconsistencies w.r.t. clear() * WebRenderer, WebSession, Boot.html: wait for stylesheets to load before loading widget tree in default bootstrap mode * WApplication: initial work for RTL layout, set using setLayoutDirection() 19-01-2011: * Wt/WPdfImage: add true type font support (libharu patch pending) * Wt/WApplication.C: fix #693 (sloppy WApplication::internalPathMatches()) * Wt/WBoostAny.C: add support for bool types (#690) * Boot.html, Hybrid.html: fix IE8 unreliable startup (occasional blank screen) 13-01-2011: * Wt/Chart/WCartesianChart: implement legend location, alignment, and styling options * Wt/Chart/WDataSeries: add setXSeriesColumn() to allow for individual X series per Y series in a scatter plot. 11-01-2011: * Wt/WAbstractItemView: implement setHeaderItemDelegate() and defer rendering of header cells to the item delegate; also added WStandardItemModel::setHeaderFlags() to allow configuration of header flags. 07-01-2011: * Wt/WAbstractItemView: implement scrollTo() * Wt/Dbo: support for bool types 06-01-2011: * Render/WTextRenderer, Render/WPdfRenderer: XHtml-to-(PDF) renderer. * Wt/WFontMetrics: font metrics info * Wt/WPaintDevice: add methods for font metrics * WLength: add a string-based constructors which parses a CSS length declaration like "50%" * WFont: the string-based constructor now parses #aabbcc and rgb(a,b,c) values into rgb components. * WWidget: added setHeight() and setWidth() methods 21-12-2010: * WAbstractItemView, WTableView, WTreeView: persist editors through model changes and avoid closing editors when something changes * WAbstractItemModel: clarify (and narrow down) usage of internal data in a model index so that views can keep their relaxed take on stale indexes. 16-12-2010: * WEvent: add eventType() method * wt-homepage, simplechat examples: show-case widget set mode * blog example: add archive * libwtwithqt: simplify implementation since notify() is now used more consistently by Wt * WObject: object ids are now seeded by a random start value, to allow mixing of several wt applications * WRasterImage: implemented a getPixel() method 08-12-2010: * WApplication: fix unload event interfering with session refresh * WebSession: handle session quit() during a websocket message * WRandom: moved high-entropy random generator to public API, and a utility method to create a random id * wt-homepage example: illustrate use of a cookie to persist logins across sessions 02-12-2010: * WebSession, WApplication, ...: support CORS (Cross-Origin Resource Sharing including IE's XDomainRequest and WebSockets), deprecated WApplication::setAjaxMethod() which is now chosen automatically and support request pref-flighting using OPTIONS. 01-12-2010: * WApplication, examples/wtwithqt/DispatchThread: attach the Qt thread only during event handling * Dbo/Session: add rereadAll() option to reread single table * WFileUpload: correctly handle non-ascii tokens in suggestFileName() 30-11-2010: * fixed a regression in layout managers, released as 3.1.7a 27-11-2010: * js/StdGridLayout.js: implement rowspan handling 26-11-2010: * released 3.1.7 24-11-2010: * WAbstractItemView: added support for column hiding 23-11-2010: * Chart/WCartesianChart: support ToolTipRole data using WAbstractArea areas 15-11-2010: * Dbo/Sesion: add rereadAll() * Wt.js: fix IE6-8 history management regression 10-11-2010: * QueryModel: setData() now converts the incoming type to the database field type (if possible), and also uses a transaction to persist the result (if not nested in another transaction) 08-11-2010: * WebSession: landed Web Sockets support, must be enabled in the configuration file 05-11-2010: * Wt.js: fix opera script loading indicating failure when loading from cache 02-11-2010: * WebSession: initialize() in first notify() * WStringUtil: fix a bug in widen() when the underlying conversion gives an error * build: fixes suggested by Pau 29-10-2010: * Wt 3.1.6 released 28-10-2010: * WebSession: use sequence instead of random numbers for resources * WebRenderer: be resilient to multiple GET requests for the main script * WApplication: unload() does not quite() when reload-is-new-session is disabled * WebRenderer: fix regression where timers are stopped by refreshing a session when reload-is-new-session is disabled 27-10-2010: * examples/feature/dbo: added examples from the Wt::Dbo tutorial * WPushButton: added setRef() and setResource() APIs to make a button behave like an anchor * WString::widen() and WString::narrow(): fix broken implementation 26-10-2010: * WMessageResourceBundle: better preservation of white-space when parsing the XML resource bundle 25-10-2010: * WFileUpload: added setMultiple() which alows multiple files to be uploaded at once (and demonstrate in composer example) * Http/Request: changed UploadedFileMap typedef from std::map to std::multimap * WAbstractItemView: added methods sortColumn() and sortOrder() 22-10-2010: * WFileUpload, WResource: support upload progress tracking (currently only with wthttpd) 21-10-2010: * various: support IE9 in IE9 document mode, enabling HTML5 features like canvas and disabling workarounds no longer needed -- hooray ! 19-10-2010: * WPopupMenu: fix recycling of popup menu 18-10-2010: * WSignal: EventSignal::connect(): added an overload which accepts a JavaScript function, as a short-cut for JSlot when connection management is not needed * WSpinBox: a spin box is in the making * WApplication: deprecated getUpdateLock() in favour of the more conventional RIIA UpdateLock(WApplication *app) constructor * WebSession: do not access WebSession shared_ptr during ~WebSession but allow acquiring the update lock to fail instead when an application is slated for destruction (#564) * SyncLock: an adaptor for a Boost Mutex lock which avoids dead-locks when used while holding an application lock 15-10-2010: * WApplication: addMetaHeader() allows now to set http-equiv meta headers and override the X-UA-Compatible meta header 14-10-2010: * WWebWidget: reimplemented buggy clear() optimisation. 12-10-2010: * WBoostAny: added registerType() method to register new types for boost::any support by standard item views. 11-10-2010: * Dbo/WtSqlTraits, Dbo/backends: added support for WTime * Dbo/QueryModel: added support for customized header data, and option for setQuery() to keep the current columns. * js/StdGridLayoutImpl: use parent node geometry for detecting need for relayout, fixes IE7+ behaviour 07-10-2010: * WTableView, WTreeView, *ProxyModel: shift model indexes only after the source model has inserted or removed rows, see bug #546 * WProgressBar: added valueChanged() and progressCompleted() signals, from Omer Katz. 05-10-2010: * CMakeLists.txt: patch for gentoo, make many things optional which can be enabled or disabled explicitly regardless of whether the libraries and header files for it are found 01-10-2010: * WebController, WebSession: use shared_ptr for WebSession to resolve concurrency bug #544 * Wt::Dbo: use a spirit based parser for sql queries to handle more complex queries like 'WITH ... SELECT ...' syntax, but also with complex aggregate functions in the SELECT clause. 28-09-2010: * WDatePicker: add setGlobalPopup() method which can be used to avoid clipping problems on a date picker * WDatePicker: add setPopupVisible() method * Http/Request: add getRanges(), parsing the HTTP 1.1 Ranges header * Http/Response: add setContentLength() allowing you to specify the content length. * WFileResource: support ranges to return partial file contents. 27-09-2010: * WMenuItem: destructor now cleans up properly * all connectors: consider appRoot as the location for the wt_config.xml file and provide ways to configure appRoot for wthttp and fastcgi connectors. 22-09-2010: * WProgressBar: based on a contribution by Thomas Suckow. 21-09-2010: * WRegExpValidator, WSortFilterProxyModel: support case-insensitive regular expressions * WSuggestionPopup: optimized behaviour w.r.t server-side and client-side filtering 20-09-2010: * WApplication: added makeAbsoluteUrl() method. * WPopupMenuItem: support setDisabled(). 16-09-2010: * WPaintDevice: remove paintFlags() method; PaintUpdate is a property of the painted widget, and no longer something which has to do with WPainter. In this we revert to the old behaviour of supporting multiple WPainters on a single paint device in turn. 14-09-2010: * Wt.js: fix JavaScript memory leak after learning about the surprising JavaScript scoping rules * WApplication: add unload() and setConfirmCloseMessage() to handle the event of the user closing the window respectively have a confirmation * WInteractWidget, WMouseEvent: add mouseWheel() event * WTabWidget: fixed polished style close icon, and wrapping to next line if having many tabs * WFormWidget: implement hasFocus() * WLineEdit, WTextArea: implements methods for retrieving cursor position and current selection 08-09-2010: * WCheckBox: better tri-state support, using opacity: 0.5 as workaround instead of an image 07-09-2010: * WBoxLayout, WGridLayout: improved client-side performance by selectively doing relayout * WDate, WCalendar, WDatePicker, ...: support i18n through built-in message resource bundle and get rid of ugly i18n bool in API 23-08-2010: * fcgi: fix connector when using WDialog::exec() or server push (this is broken in 3.1.4!) * WSocketNotifier: finally (!) this beast works as advertised 10-08-2010: * isapi: various improvements * WSignal: SLOT/slots macro can be disabled using -DWT_NO_SLOT_MACROS * examples: cleanups to use appRoot() and no longer use SLOT() macro 02-08-2010: * WBatchEditProxyModel: a model that caches editing until submitted in batch (or reverted) * Dbo/QueryModel: remove edit strategy, this is now handled by WBatchEditProxyModel * WModelIndex: clarify usage when model rows/columns shift, implement in-place toRaw/fromRaw conversion * WDialog: add titleBar() to access the title bar 30-07-2010: * Dbo/Query: support 'select distinct/all' syntax, and case-insenstive query parsing 29-07-2010: * WSuggestionPopup: misc improvements to server-side filtering, fixing rendering glitches * examples/feature/suggestionpopup: example demonstrating WSuggestionPopup features 27-07-2010: * WRasterImage: Graphicsmagick backend implementation for WPaintDevice, sponsorted by Eurofer, can be used for PNG, GIF, etc... output 22-07-2010: * WPdfImage: PDF backend implementation for WPaintDevice, sponsored by Eurofer. * http/Reply.C: enable compression for image/svg+xml mime-type. * WInteractWidget: suppress click and double click mouse events when disabled 20-07-2010: * Wt/WTreeNode: added insertChildNode(), as suggested by Aleksey Chirkin 19-07-2010: * isapi: added a (first implementation) of an ISAPI connector, which provides native support in Microsft IIS. * WebSession: fix one possible race condition, and one possible dead-lock when grabbing the session lock * Dbo/QueryModel: implement write support (setData(), insertRows(), and removeRows()) 15-07-2010: * Wt::Dbo: adds support for natural keys, including composite keys, custom id and version field names, and foreign key constraint definition that is compatible with mysql's broken sql. * Wt::Dbo: Dbo base class is now changed to Dbo template class to take into account customizable id type. 14-07-2010: * resizable layout managers: reset total width percentage of all remaining columns to 100 * WCanvasPaintDevice: fix transformation bug 07-07-2010: * examples/feature/serverPush: fix WIN32 build problem * Chart/WCartesianChart: fix clipping margin glitch * Dbo/QueryModel: fix missing implementation fields() method * WAbstractToggleButton: fix disabled/readonly properties #423 * WApplication: useStyleSheet(): allow media to be specified * WCanvasPaintDevice: fix font rendering glitch * WTableView: improved keyboard navigation through editors 30-06-2010: * WTabWidget, WMenu: support for closing, hiding and disabing items, contributed by Dmitriy Igrishin * Wt::Dbo: fix boost::optional support * WAbstractItemView: build fix for MSVC in non-Latin locales * WAbstractItemModel: copyData() does first nullify existing data * WSuggestionPopup: fix bug in handling of model row removal * WWebWidget, WebRenderer: fix statelss slot learning bug when a stubbed widget is affected (see treelist example) * WWebWidget: fix addStyleClass(), removeStyleClass() implementations with force=true (from Dmitriy Igrishin) * WTableView: improved handling of arrow keys for navigating editors 10-06-2010: * WTableView, WTreeView: workaround IE bug w.r.t. white-space: nowrap * Chart/WCartesianChart: added createLegendItemWidget() to paint the legend item outside the chart * WItemDelegate, WAbstractItemView: add support for validation * WBorderLayout: add missing setSpacing() method to control internal spacing * WWidget: addStyleClass() and removeStyleClass() (finally!) * WContainerWidget: workaround scrolling bug in IE caused by position: relative * WEnvironment: agent() and agentIsXXX() methods * WSvgImage: give in to inkscape's CSS font needs * WHTML5Video, WHTML5Audio: HTML5 video and audio support * WSuggestionPopup: implement explicit trigger (icon, key down) * WTreeNode: support selection by click on whole row * WWebWidget: added doJavaScript() * examples/blog: improved support for MSVC builds, new feature allowing profile editing * examples/feature/serverpush: simple example illustrating use of server push 20-05-2010: * build: added support for cygwin 19-05-2010: * WMenu: fix first selection not emitting internal path change (dmitry) * WTableView: properly react to model changes * WItemDelegate: explicit focus support 18-05-2010: * Chart/WChart2DRenderer: fix rendering glitch when rendering grids 13-05-2010: * WInteractWidget: added mouseDragged() * WApplication: added addMetaHeader() 10-05-2010: * WTableView: now supports (almost) same API as WTreeView, with the similar style, but better performance for tabular data. * WTableView, WTreeView, WAbstractItemView: support non-AJAX rendering using a paging bar. * WAbstractItemDelegate, WItemDelegate, WAbstractItemView: supports editing * Dbo/QueryModel: a Wt model for viewing data from a Dbo::Query result (a first version). * Dbo/SqlTraits: sql_result_traits was renamed to query_result_traits, and its API updated to allow more robust query creation and result interpretation as a list of boost::any's * Signal: SignalBase and EventSignalBase are now documented API * WFlashObject: reimplemented: no longer relies on JavaScript to load the flash movie. WFlashObject no longer uses SwfObject.js. The objects will also be resized when inserted in a layout manager. * WHTML5Video: HTML-5 video implementation, will become part of generic video support later * http/Reply.C, http/StaticReply.C: support for http range header and partial content * web/CgiParser.C: fix parsing logic error for multi-part/formdata 28-04-2010: * WTimer: implement singleShot(f) with f a function object variant 21-04-2010: * WMenu: support usage without contentsStack_ * rapidxml.hpp: fix bug #344 (some special entity characters not being handled properly) * examples/planner: new example illustrating simple dbo usage 20-04-2010: * Dbo/SqlConnectionPool, Dbo/FixedSqlConnectionPool: connection pool implementations * Dbo/Query: support for several bind strategies, including a new DynamicBinding strategy which supports incremental query specification * Dbo/Session: add execute() method for executing SQL that does not return results 08-04-2010: * Http/Request: added headerValue() 07-04-2010: * WSuggestionPopup: add setFilterLength() and filterModel() methods which allow for server-side filtering based on initial input. Also support setMaxSize() to specifiy maximum height of the popup and scrolling through the list of suggestions 30-03-2010: * WPanel: make titleBarWidget() public 26-03-2010: * Wt/WShadow, Wt/WPainter: add support for drop shadows * Wt/Chart/WDataSeries, Wt/Chart/WChart2DRenderer: add support for shadows 25-03-2010: * Wt/Dbo/backend: provide generic properties() and API clean-ups 24-03-2010: * Wt/Dbo/Query: also support queries without 'from' or 'select' * Wt/Dbo/DbAction.C: create indexes on join table for each referenced table id * Wt/Dbo: support schema-qualified tables 23-03-2010: * Wt/Dbo/Postgres, Wt/Dbo/Sqlite3: add proper support for dates, time stamps, binary blobs, var chars 19-03-2010: * WCheckBox, WRadioButton: fix inconsistencies when setting style attributes and they have a non-empty label 15-03-2010: * Dbo/backend/Postgres: a PostgreSQL backend, contributed by Hilary Cheng 12-03-2010: * EscapeOStream, WSvgImage: a host of performance improvements by tossing away stringstream in favour of a simple SStream * WWidget: add setLayoutSizeAware() and layoutSizeChanged() methods 08-03-2010: * WResource: add setInternalPath() to deploy a resource at a deterministic URL 05-03-2010: * WebSession: add support for http PUT/DELETE methods. * src/Http/Request: add method() to access request method * src/Http/Response: add setStatus() to set the response status 03-03-2010: * WCalendar: add HorizontalHeaderFormat enum (long day name support), currentPageChanged signal, clicked signal, activated signal, SelectionMode enum (NoSelection mode support), renderCell() virtual method 01-03-2010: * WGridLayout, WBoxLayout: add support for user resizing ('splitter') functionality * WTreeView, WGridLayout: externalize JS 25-02-2010: * src/Wt/WString: fix narrow() and widen() character encoding conversions * http connector: spool large POSTs to a temporary file instead of in-memory, and avoid extra copies * web/CgiParser.C: skip large file uploads entirely (instead of erroneously buffering them to memory) 22-02-2010: * Dbo/StdSqlTraits: support float and double * WApplication: missing initialization messes up refresh() by reload * WPainter: now has defined behavior when missing horizontal or vertical alignment flags in drawText() 18-02-2010: * web/EscapeOStream.C: fix build error on MSVC * Wt 3.1.1 released 12-02-2010: * mxml: replace mxml with an (adapted) rapidxml browser. 28-01-2010: * Ext/Container.C, WStackedWidget.C: fixed behavior in combination with layout managers 25-01-2010: * WTreeView.C: simplified column resize handling code 22-01-2010: * WCanvasPaintDevice: Use HTML5 native canvas text when available 21-01-2010: * WSuggestionPopup, WTree, WTreeNode, & co: make CSS themed 18-01-2010: * Dbo: additional optional parameter to hasMany() allows the definition of the joinId in the joinTable (you need this if you are doing Many-to-Many between the same table). * WDateTime, WTime: fix AM/PM parsing problem * Dbo/SqlStatement: explicit null binding, since SQLite3 does not reset bindings on reset() * WTreeView: fix ite column 0 changing 12-01-2010: * WTemplate: do not rerender bound widgets when rerendering the template if the widget was already rendered 11-01-2010: * themes/polished: several improvements * WPanel, WCalendar, WDatePicker, WDialog: improved theme support * WTreeView: several bug fixes and improved IE bug workaround support 05-01-2010: * Chart/WAxis: added setLabelFont(), labelFont() methods * WTreeNode: fix selection handling when removing and readding a node * Boot.html, Hybrid.html: fix an XSS vulnerability arising from the internal path 04-01-2010: * Wt.js, CommAjax.js, CommScript.js: support communication problems by retrying with exponential back-off 31-12-2009: * Dbo: quote all identifiers * WContainerWidget: support resetting a layout manager 29-12-2009: * Release 3.1.0, after some more bug fixes 22-12-2009: * Ext/FormWidget: add changed(), blurred() and focussed() signals 21-12-2009: * WTemplate: add handleUnresolvedVariable() from Maurice Gittens * WMenu: sanitize internal path handling * documentation: integrate asciidoc and doxygen in CMake (target 'doc'), and improve Wt::Dbo documentation 18-12-2009: * WTreeView: fix treeview column add/remove glitches with column 1 fixed 17-12-2009: * WSlider: correct upside down behavior of WSlider, use more accurate position handling 15-12-2009: * Wt/Dbo: new C++ ORM layer * test/: automated test suite (for non-GUI features) * src/Wt/WTemplate: new XHTML template-based widget * examples/blog: new example that implements a blog using Wt and Wt::Dbo * src/Wt/WDateTime, src/Wt/WTime: date time and time classes 15-12-2009: * CMakeLists.txt: add XML_FEATURES option which can be used to disable the (mini-)XML library 11-12-2009: * WPaintedWidget, Ext::Container: properly react to resizes within a Wt layout manager, both width and height * StdGridLayoutItem.C, Ext::Widget: concatenate html and body style classes to not have interference 09-12-2009: * WDataSeries: added setHidden(bool) and isHidden() * WCartesianChart: added renderLegendIcon() * WTextEdit: fix updating of contents 07-12-2009: * WWidget: added isRendered(), let widgets keep track of being rendered * WSignal: added connect(Function& f) method 04-12-2009: * src/web/skeleton/Wt.js: added getSelectionRange and setSelectionRange utility functions for line edits and text areas 30-11-2009: * src/mxml: updated to an unmodified mxml-2.6 (which includes our bug UTF-8 bug fixes) 25-11-2009: * all: added support for CSS-based themes. * WAbstractItemModel, WAggregateProxyModel, WTreeView: addded support for drilling down through treeview columns * WSlider: added sliderMoved() signal * Chart/WAxis: added setAutoLimits() and autoLimits() methods, and have maximum() and minimum() return computed values * Chart/WCartesianChart: use MarkerPenColorRole and MarkerBrushColorRole to override colors for markers per data point * WCanvasPaintDevice: several improvements for outputting more concise JavaScript rendering statements * WWidget: add find() method to find a widget with a particular objectName() * WFileUpload: fileTooLarge() signal now propagates within the event loop 10-11-2009: * Chart/WCartesianChart, Chart/WDataSeries: added mapFromDevice() and mapToDevice() methods. 03-11-2009: * WTreeView: fix for adding a first row to an otherwise empty model (from Guy De Leeuw) 03-11-2009: * 3.0.0: released! 21-10-2009: * WMenu: set correct internal path before loading a menu item 09-10-2009: * WAxis: add TimeDateScale to AxisScale enum 28-09-2009: * WCartesianChart: seriesIndexOf() is now private * WebRenderer: several small fixes for the hybrid bootstrap 23-09-2009: * WTableView: table_ is now private and a protected getter table() was added 18-09-2009 * Wt.js: cancelEvent() includes an option to only include cancelling propagation or the default action * WResource: add setChanged() and url() methods which are more useful than the generateUrl() method * http/RequestParser: fix possible shared_ptr corruption issue reported by David Galicia * WCssDecorationStyle: add method for WResource as background image * JSlot: fix internal consistency problem when connecting same JSlot to same signal twice * JSlot::exec() now takes parameters for object and event * WTreeView: fix vertical scrolling showing mis-aligned columns when column 1 is fixed 15-09-2009: * WWidget: move WFormWidget::setEnabled() to WWidget::setDisabled(), allowing all widgets to be set enabled or disabled. * WWidget: isVisible() and isEnabled() reflect the computed visibility respectively being enabled taking int account ancestors settings * WWidget: added setHiddenKeepsGeometry(), which uses css visibility for setHidden() 03-09-2009: * WDialog, Ext::Dialog, and related: allow for multiple modal dialogs and nested exec() calls. * Boot.html, Hybrid.html: add a loadScript() method to defer loading of user JavaScript 01-09-2009 * WDatePicker: Use 'positionAtWidget' to make sure the widget is rendered visible even if at bottom of page (folds up instead of down) * WDialog: Fix JavaScript positioning for IE6 * WFileUpload: Fix empty file regression (#53) 31-08-2009 * Wt.js: fix server push mayhem * WTreeView: fix autoJavaScript performance * Wt.js: fix mouse capture on IE, fix mouse capture of mouse up when dragging outside the window * Wt.js: fix synchronisation issue with 'load' request and loading of JS libraries * Wt.js, DomElement: use setExpression() to set a CSS expression (for min/max-width) * WApplication: fix conditional stylesheet condition parse error with 'gte' expression 26-08-2009 * Wt.js: attach mouse grab events to body using DOM event capture * HybridBoot.html, WebSession, WebRenderer: assimilate new bootstrap method with a refactoring, make it all a bit less stateful * WApplication: notify() can now be used as a generic request handling point where you grab and free request-specific resources 22-08-2009 * fcgi/Sever.C: make multi-threaded, using the number of threads 19-08-2009 * ProgressiveBoot.html, WebSession, WebRenderer: a new bootstrap method has been added which implements the principle of "progressive enhancement" * WebSession, Boot.html: avoid one extra round-trip when redirecting to the canonical URL. * Plain.html: better SEO: do not render the form to a spider engine 18-08-2009 * WWidget: add boxPadding() and boxBorder() methods, which are used by the layout managers to correct for built-in borders and paddings of form widgets * WComboBox: listen to layoutChanged() 06-08-2009 * WGoogleMap: add setCenter() method without zoom argument, change myHtml argument to WString 01-08-2009 * WLineEdit: work around IE's inability to change type attribute * DomElement, WebRenderer, EscapeOStream: use IE alternative createElement() which also sets all attribute values, and thus saves JavaScript calls * StdGridLayoutImpl, StdWidgetItemImpl: fix IE glitches in layout managers 31-07-2009 * WCssDecorationStyle: add custom cursor image functionality 23-07-2009 * WApplication: simplified the semantics of internal path API signal internalPathChanged(). You may still use the old behavior by defining the property oldInternalPathAPI. 20-07-2009: * WAxis: fix crash when dealing with negative values and a logscale axis 17-07-2009: * WServer, WGlobal: move WServer::Application and WServer::WidgetSet to global enum * WAbstractToggleButton.C: put label inside a so that it works as expected when used within a layout manager * Test/WTestEnvironment: test environment, for instantiating WApplication instances usable for (unit) tests 06-07-2009: * WGridLayout, WBoxLayout, WTabWidget: better documentation that discusses how to set contents with 100% height. 29-06-2009: * JSlot: fix exec() call as suggested by Adrian Sutherland 25-06-2009: * WCanvasPaintDevice, WSvgImage, WVmlImage: string -> stringstream optimizations * WTableCell: fix vertical component of content alignment * WModelIndex: fix operator== to not use memcmp() since this gets into trouble with struct padding bytes 19-06-2009: * Chart/WAbstractChart: react well to modelReset() and modelLayoutChanged() * WCheckbox, WRadioButton: internal cleanup and simplifications * WButtonGroup: added checkedChanged() signal * WIntValidator: allow entry of +/- signs 15-06-2009: * WGlobal: fix Horizontals = Left | Right and Verticals = Top | Bottom * WPanel: clear the title bar * DomElement: fix an unstubbing regression with ExtJS widgets * Wt.js: fix server push + JSignal.emit() * WGlobal: fix doxygen for WFlags masks * http/Server.C: avoid http/https accept() to abort on Win32 * WResource, WFileResource: fix continuation + suggested filename data corruption, and implement WFileResource::setBufferSize() 10-06-2009: * WRectF: added isEmpty() method, removed isNull() method 09-06-2009: * WEnvironment: added headerValue method 08-06-2009: * WPoint, WPointF, WLineF: removed obsolete isNull methods 02-06-2009: * WAbstractItemDelegate, WItemDelegate: new classes to which the rendering of a model item is delegated. * WTreeView: use WAbstractItemDelegate and WItemDelegates, and API to customize the used item delegate class. * WWidget: add setSelectable() method which can enable or disable the rendering of the browser's default text selection handling 29-05-2009: * fcgi/Server.C: build fixes for FreeBSD and OpenSolaris * fcgi/Server.C: implement a (mostly stub) WServer implementation * Http/Response: add continuation() method to get a continuation created for the response. 28-05-2009: * WMenu: show vertical scrollbar when needed * WGridLayout: support row stretch value of -1, like 0, but indicates that height of cell contents for that row still needs to be managed * DomElement.C: fix IE6 min/max-width workaround bugs * WStackedWidget: make behave well in layout managers * WPainter::Image: add constructor that fetches image dimensions from file (from Daniel Derr) * DomElement.C: fix style.float -> style.cssFloat or style.styleFloat property 26-05-2009: * WebRenderer, Configuration, WebSession, http/WServer: add support for a favicon per EntryPoint, and in general for a favicon not in "/favicon.ico" 18-05-2009: * WAbstractItemModel: add reset() method and modelReset() signal, which are used to invalidate the whole model. Adjusted the views to listen to this signal, and make WStandardItemModel::clear() call reset() * Ext/ToolBar: implement addStretch() * WPaintedWidget, WPaintDevice: support PaintUpdate flag which does not erase the painting but merely adds to it * WTreeView: fix setColumnWidth() for column 0 bug, setSortingEnabled() when no model yet set bug, column removal behavior bug, JavaScript error when no column sort/resize handles * StdGridLayoutImpl, WStackedWidget: make WStackedWidget manage children height actively when in a layout manager * WebSession: make server push survive refresh(), and fix cookie support detection regression * WApplication.C: fix expose logic for widgets removed from the widget tree * WCssDecorationStyle: WBorder::None is not always default 11-05-2009 * WDate: refactor modifiedJulianDate() to toJulianDate(), replaced modifiedJulianDate constructor to static fromJulianDate function 05-05-2009 * WebSession: fix WApplication::attachThread(), simplify use of thread specific storage 04-05-2009 * WString: do not assume a message resource bundle as localized strings * Wt.js: fix empty line edit regression * WCalendar: setSingleClickSelect() * WEnvironment: getDeploymentPath() 23-04-2009: * WCheckBox, WAbstractToggleButton: tri-state checkboxes * WAbstractItemModel, WModelIndex, WStandardItem: support tri-state checkboxes (ItemIsTriState ItemFlag) 22-04-2009: * WebRenderer: keep iterating the update map as long as render() calls add new widgets to it 21-04-2009: * WFormWidget: add setReadOnly(), isReadOnly() methods * WTimer.C: fix multiple signals firing when stopping and restarting, and use client-side repetition if the signal is not exposed * WFileUpload: deprecated isUploaded(), new method canUpload() 16-04-2009: * WApplication, WDialog: simplify dialog rendering, allow (multiple) non-modal dialogs (WDialog::setModal(false)), allow dialogs to be moved around by dragging in the title bar * WWebWidget: saner handling of z-index, only apply IE6 shim to DIVs * WPaintedWidget: fix use of WImage for WAbstractArea's * WImage, Wt.js: fix position reporting in mouse events from WAbstractArea's in non-compliant browsers (all except for Firefox) 07-04-2009: * Ext/FormField: add setFocus() method 30-03-2009: * WEnvironment.C, WebSession.C, wt_config.xml: allow configuration of AJAX-capable user agents and bots in configuration file * Configuration.C, wt_config.xml: synchronize configuration defaults. WARNING: default settings have changed! (see wt_config.xml what the default values are) * WTabWidget.C: use a layout manager to manage vertical height * WLabel.C: fix bug with placement of image and add option to place image to left or right of label text * WDatePicker.C: implement setEnabled() * WT_SERIES, WT_MAJOR, WT_MINOR, WT_VERSION: change to hexadecimal format for preprocessor defines * Ext/TableView.C: fix access to null dataStore_ 26-03-2009: * Fixed cookie handling. Cookie parser is now less strict, and cookie values are URL encoded, similar to PHP. Fixed setting multiple cookies. 24-02-2009: * WWebWidget: implement a real propagateRenderOk() that does not cause render() of children widgets of stubbed widgets * WTreeView: move JavaScript around that assumes jsRef() exists * WGoogleMap: fix require() dependency * install: do not overwrite existing configuration file wt_config.xml 20-03-2009: * WFormWidget: refuse to give focus to a disabled widget * Wt.js: make sure updated autoJavaScript() is executed by onresize handler 19-03-2009: * WGoogleMap: fix require() to depend on google.load * filetostring: removed in favor of a CMAke-only solution * simplechat: improve its behaviour * WebSession/WebRenderer: update the form object list after each event since it may contain stale objects 17-03-2009: * Fixes for cookie parser * Send along form values and hash in each 'update', and keep JavaScript updates around until acknowledged by the browser (avoids loss of updates especially for server push situations) 16-03-2009: * fixed build errors and warnings on Sun Studio and Visual Studio * WSignal: remove EventSignal specialization, use EventSignal<> everywhere * add WT_NO_BOOST_INTRUSIVE compile option to use std::list instead of boost::intrusive::list (needed for Sun Studio) * WTableColumn, WTableRow: support for custom id's with setId() * WViewWidget: fix interference problem with stateless slot learning * WWebWidget: complement quickPropagateRenderOk() with a clean rerender of itself * Configuration.C: add option inline-css useful to disable inline CSS stylesheets, in case you prefer all of them in an external style sheet * WTableCell, WDomElement: support colspan/rowspan as properties * WTable.C: fix rendering problem for th/td reordering * WebRenderer: WLoadingIndicator: fix rendering and stateless slot learning interference * WebSession: avoid superfluous 'none' request 11-03-2009: * WPushButton: allow line breaks in text using ('\n') * WebController: fix widget set mode (default entry path parsing) * CMakeLists.txt: also install Http/ directory * XSSFilter: refactored * WAbstractTableModel: new abstract model class * WebSession: simplify session locking (and fix reentrant event loop memory corrouption) 06-03-2009: * win32: fix build problems * WMemoryResource: change API to unsigned char 03-03-2009: * WFileUpload.C: emit uploaded() signal in event loop. 27-02-2009: * WApplication.C, WebSession.C, Wt.js: finally a robust and simple server-push implementation instead of orbited * WMenu.C, WTabWidget.C: simplify CSS (better IE workaround) * WCssDecorationStyle, WGlobal, WText, Ext/TableView: remove deprecated enums and methods * WButtonGroup: make API more complete * WDatePicker: provide default constructor * fcgi/FCGIStream.C: make FCGI connector work again in new branch * lots of documentation updates 24-02-2009: * WOverlayLoadingIndicator.C: fixes for IE8 and opera 23-02-2009: * WAbstractItemModel.C, Wt.js: fix IE date propagation problem * WLineEdit.C, WTextArea.C: do not set style classes when no validator is configured * WSocketNotifier.C: fixes for boost >= 1.36 (does not work yet for win32) 02-02-2009: * fix konqueror show stopper bug 28-01-2009: * fix bug causing mouseup being called twice at end of drag (for example confused mandlebrot example) * WApplication.C: found cause for long standing IE6 mystery 19px offset * WDate.C: require 2 digits for 'dd' or 'MM' format entries * WFormWidget.C: auto-validate when contents changes * WebRenderer.C, Wt.js: fix several widgetset mode problems for IE. * Wt.js: do not block when getting an AJAX error 26-01-2009: * 2.2.3 released. 23-01-2009: * examples: misc improvements, update homepage * src/Wt/WAbstractItemModel: support for const char * data in boost::any() * src/Wt/WTreeView: better support for non-JavaScript situations * WDialog: fix layout regression 21-01-2009: * WRectF: normalized() returns a rectangle without negative width or height, and is used within WPainter to normalize rectangle arguments * WebRenderer.C: fix embedded mode 16-01-2009: * new example 'gitmodel': demonstrates how to create a custom model class, to be used in conjunction with WTreeView. * WGridLayout, WBoxLayout, WBorderLayout: when used in conjuction with WContainerWidget, there is now the possibility to hint an alternative implementation for managing space horizontally, which uses the 'table-layout: fixed' CSS property. * WCssStyleSheet: fix JavaScript error on IE * WTreeView: fixes for when the treeview is not immediately shown 15-01-2009: * WCanvasPaintDevice.C: fix arc drawing in singular case (width or height == 0), and for very skewed arcs (widht / height <<< 1 or >>> 1) 08-01-2009: * WTreeView: react to column insertion and removal, and fix WTreeNode::load() unintentionally overriding WWidget::load() * WAbstractProxyModel: implement toRawIndex() and fromRawIndex() so that WTreeView does not lose selection or expanded index list when resorting (or partial refiltering) 07-01-2009: * WDialog: add setTitleBarEnabled() to disable the title bar 06-01-2009: * WTreeView: setColumnBorder() allows setting the color for a border line between columns, setColumnResizeEnabled() for disabling the resize handles, and the content in each column is now rendered with some padding (3px to the left and right). 05-01-2009: * WAbstractTobbleButton.C: fix inserting label into widget tree when parent is not passed in constructor * Ext/Widget.C: fix hide() and show() to consistently use Ext methods * Wt.js, WebRenderer.C, WApplication.C: fix IE CSS loading ? 24-12-2008: * WTreeView: setColumn1Fixed() allows fixing of the first column while scrolling through the other columns in a large model. 22-12-2008: * WMenu, WTabWidget: implement removeItem() and removeTab() * WebRenderer.C: fix internal path issue when starting with a path, AJAX is available, and deployment ends on a / * WDialog: fix usage of layout managers in contents area * WJavaScript, WSignal: scope ::_1 in global scope * WOverlayIndicator: allow style class customization (Goetz Babin-Ebell) * CgiParser: cleanup when using GNU regexp API (Goetz Babin-Ebell) * Ext/PagingToolBar.C: fix adding multiple additional toolbar items. 10-12-2008: * WCompositeWidget.C: fix implementation not being load()ed * Boot.html, Wt.js: do not create a new stylesheet but add rules to existing inline stylesheet (for ordering consistency) * Wt.js: fix regression for widget coordinates 06-12-2008: * hello-widgetset: do not build with fcgi connector (Guy Deleeuw) * global: do not use (unsigned) long long but use (u)int64_t (Goetz Babin-Ebell and Pau) * DomElement.C: convert to instead of wrapping it in a button, when JavaScript is not available (Anthony aka roja) 04-12-2008: * treeview-dragdrop: new example, demonstrating Drag&Drop operations between treeviews, WSortFilterProxyModel usage, and context popup menus. 02-12-2008: * WWidget: remove parent_ member, use WObject::parent() instead 27-11-2008: * WPopupMenu, WPopupMenuItem: implementation of a popup menu * WAbstractProxyModel, WSortFilterProxyModel: proxy model classes for WAbstractItemModel, that provide filtered and sortered views of a source model * StdGridLayoutImpl.C: more consistent layout rendering, now using JavaScript on all browsers, and using relative positioning of contents to avoid overflow the layout when the child manages its size using JavaScript (like WTreeView) * WButtonGroup: add count() method (from Torsten Schulz) * WComboBox: add findText() method. * WDialog.C: avoid applying css rules to contained tables. * WDropEvent: add mouseEvent() to access causing mouse event details * JSignal: support passing original event too using Wt.createEventCall() * WTreeView: add expandToDepth() method, and pass mouse event in item clicked, doubleClicked and mouseWentDown signals. * WTreeView: better support for item drag&drop. 19-11-2008: * StaticReply.C: do not bwarf when we cannot determine file size (i.e. for a pipe, reported by Michael Sorensen) * WMenuItem.C, DomElement.C: do not prevent default action for anchor click, by default, (reported by Bin tan) 18-11-2008: * WTreeNode.C: apply width to TD only for IE * WTreeTable.C: fix scrollbar issues for IE6 and IE7 * TabWidget.C: fix offsets hiding problem 17-11-2008: * Boot.html, examples/hello-widgetset/hello.html: fix race condition for IE7/6 with ExtJS loading (thanks to Guy Deleeuw for help in debugging) * Ext/Dialog.C: make sure dialog is not centered on too small window. 14-11-2008: * WOverlayLoadingIndicator: a more obvious loading indicator 13-11-2008: * WApplication.C: fix miscalculation of exposed signals * WMenu.C: make Horizontal menus really behave horizontal * WLoadingIndicator, WDefaultLoadingIndicator: interface and default implementation for loading the indicator 12-11-2008: * Boot.hml: typo oops indicated by Anthony Roger Buck * WApplication, WDialog, Ext::Dialog, Ext::MessageBox: more generic way of preventing signals hidden by a modal dialog * WTreeView: more accurate column widths * CgiParser: fix handling of plain POSTs (indicated by Jim Koornneef) * WebSession: fix handling of recursive event loop when JavaScript is disabled * Configuration.C, Wt.js: add configuration option for strict event serialization, dropping events that happen while a response is pending (off by default). * WTreeTable.C, WTree.C, WTreeNode.C: backport IE fixes from WTreeView to WTreeTable 07-11-2008: * Boot.html: fix issue with IE7 and extkitchen loading (do not apply same fix as for IE6) * WTreeView: support multi line headers, and rework layout management for header row (revert to old style since it didn't work for IE7) 06-11-2008: * examples/extkitchen: use a WTreeView as another MVC-model when demonstrating Ext::TableView * WAbstractItemModel, WItemSelectionModel, WTreeView, Wt.js: support for drag of item selections, and drop of item selections or other events * WTreeView: several bug fixes for incrementally handling row insert and removals, and cosmetic improvements 04-11-2008: * WTreeView.C: allow setColumnWidth() and setContentAlignment for column 0 too. * WebRenderer.C, WContainerWidget.C: brush up WidgetSet mode * examples/hello-widgetset: WidgetSet mode example 03-11-2008: * examples/treeview, examples/widgetgallery: new examples * WSubMenuItem.C: a menu item that can contain a sub menu * WGridLayout.C: do not attempt to layout when hidden since measurements will fail * WGridLayout.C: apply width rules to every row since first row may contain overspanned cells * WAnchor.C: support configurable word-wrap * WTextArea: allow default Wt-invalid class for also for textarea * WCssStyleSheet: implement assignment operator, and reimplement addRule with WCssDecorationStyle, returns a WCssTemplateRule now. * WMenu: allow multiple menus to use a single WStackedWidget (useful for menus with submenus) * WSuggestionPopup.C: pop up after widget itself * WTable.C: fix memory leak introduced by incremental row rendering * WTransform.C: fix double rounding error bug leading to NaNs * WTreeView: add setHeaderHeight() and setColumnAlignment() methods, and many rendering misc. * Ext/Widget.C: apply correct style classes to body if Ext is not loaded during initial page render * WApplication.C, Boot.html, Wt.js: url encoding and decoding for internal paths * Boot.html, Wt.js: avoid race condition with IE when loading application * Wt 2.2.1 released 27-10-2008: * WAnchor.C: no clicked connect when setting internal paths * WWidget, WWebWidget, WCompositeWidget: add setLineHeight() API * WCssStyleSheet: WCssTemplateRule copies CSS properties from a template widget * WModelIndex: allow for SHA-1 internal Id's for on-disk models * WTreeView, WModelIndex, WStandardItem: add UrlRole and InternalPathRole 23-10-2008: * WAppliation.C: be more accurate about when to absolutelify relative URLs * WContainerWidget.C: use sorted vector instead of set to figure out child insertions * WResource.C: use Content-Disposition to trick IE to get the name right (in addition to an internal path) * WTable, DomElement.C: use table DOM API, and present row additions incrementally * RequestHandler.C: fix url decoding 13-10-2008: * WTreeView.C: loading indicator in spacer * WTree.C: fix propagation of events inside table rows 11-10-2008: * src/WebSession.C: do not use relative Urls when JavaScript is disabled since we cannot redirect to the canonical url (Bin Tan) * WDate.C: bugfix in JS date parsing * WServer.C: added new --config parameter to specify the location of the wt_config.xml file * WApplication.C: style Wt-invalid applies to all objects, not only input * Configuration.C: look for configuration file path in environment variable WT_CONFIG_XML. This is overridden by program option --config in wthttpd. 11-10-2008: * src/WebSession.C: do not use relative Urls when JavaScript is disabled since we cannot redirect to the canonical url (Bin Tan) * src/WTreeView[.C]: implement selection, make sorting controls optional 10-10-2008: * WDateValidator.C: better client-side date validation 09-10-2008: * fcgi/Server.C: pass parent environment to children (suggested by misi e) * WBorderLayout[.C]: implement methods to retrieve widgets or layout items set for a position. * WAbstractItemModel[.C], WModelIndex[.C], WStandardItemModel[.C]: add support for hierarchical models * WAbstractItemModel[.C]: new abstract base class for one-dimensional list models * WAbstractToggleButton.C: do not generate no-op click handlers * WApplication: update outdated documentation (rsh not longer needed, and internal paths work for all major browsers since 2.2.0) * WApplication.C: improve consistency for CSS + XHTML * WComboBox.C, Ext/ComboBox.C: use WStringListModel instead of WStandardItemModel by default * WContainerWidget[.C]: add scrolled event signal * WContainerWidget[.C], WWebWidget[.C]: implement different way of handling insertChild() that fixes a bug with removing a child that was just inserted but not yet rendered * WCssDecorationStyle[.C]: support dynamic updates to style sheet rules * WCssStyleSheet[.C], Wt.js, WebRenderer.C: support dynamic addition and removal of stylesheet rules * Wt.js, WEvent, WebController.C: pipeline multiple events, queueing events while a reply is pending. * WEvent: add a WScrollEvent * WLabel[.C]: add methods to configure and inspect word wrapping. * WStandardItem[.C]: new class for implementing the hierarchical WStandardItemModel * WStringListModel[.C]: new model that implements a simple string list * WTableRow[.C]: add setHidden() and related methods * WTreeView[.C]: new view widget for displaying trees or tree tables * Chart/WAbstractChart[.C], Chart/WCartesianChart[.C], Chart/WPieChart[.C], Ext/ComboBox[.C], Ext/TableView[.C]: update model listeners to use new hierarchical WAbstractItemModel API * DomElement.C: generate more compact code by using more aggressively innerHtml 02-10-2008: * Ext/TableView.C: shift selected rows when rows are inserted/deleted * WebController.C: do not send anything when the page script is requested outside the Bootstrap. 01-10-2008: * WebController.C: fix refresh() regression, simplify, prevent CSRF, and remove unnecessary code 30-09-2008: * Connection.C: catch exceptions thrown by remote_endpoint() (reported by kal sason) 28-09-2008: * WContainerWidget.C: do not stub TDs for IE 21-09-2008: * DomElement.C: do not use innerHTML on IE6 for select element (fixes WComboBox error reported by Sergey Bryukov) 19-09-2008: * WApplication.C: do not block timers when dialog is active (Billy Muma) 18-09-2008: * various places: do not generate DOM ids when serving to a bot, in the hope that this improves the way the bot indexes the page since it should always look the same * Configuration.C: add configuration option for FastCGI deployments, to allow usage of reentrant event loops, as used by (W)Dialog::exec() methods when using shared session process deployments. 10-09-2008: * WLocalizedStrings: add an abstract class to localized WString, which is by default implemented using WMessageResourceBundle, but may be customized (as suggested by Lars Hamren) * several files: fixes for RubyWt (Richard Dale) * WTabWidget: CSS fix for IE7 21-08-2008: * all: build fixes for Sun Studio 12, and boost 1.36 * various places: better use of STL containers 19-08-2008: * src/web/WebSession.h: build fix for boost 1.36 * examples/wt-homepage: add Chinese translation (by Zhimin Song) * various places: fixes suggested by Richard Dale and Pau 18-08-2008: * CMakeFile.txt: default is now boost 1.35 13-08-2008: * StdGridLayoutImpl.C: deal with padding in widgets correctly, always fit item heights (this may cause rows to get stuck at a particular height, but gives more consistent behaviour..., handle UL children * WApplication: simplify internalPath stuff * WebController: propagate form values before touching the widget tree 11-08-2008: * WMenu: add setInternalBasePath(), do not specify display: inline for a horizontal menu item, instead, should be handled by programmer CSS * WMenuItem: do not erronously delete contents in destructor, if it was already loaded. 08-08-2008: * Bejing: olympics started! gogo Kim Gevaert! * WApplication: more internal path small fixes * Connection.C: build fixes for MSVC and Visual Age 07-08-2008: * WApplication: fix old behaviour of applicationName(), deprecate it * WebSession.C, WebController.C, WebRenderer.C: improved url and internal path handling: handle redirecting to a new internal path, properly initialize application with an initial internal path, more flexible internal paths (do not enforce trailing '/') * WMenu: properly restore application internal path when doing stateless slot learning 06-08-2008: * cmake/WtFindSsl.txt: removed redundant code * src/web/skeleton/Wt.js: fix widget position bug when nested in scrolled DOM elements or page on Safari/Opera/IE * all: merged in prettyurls branch - no longer use frameset in bootstrap page, load instead ajax script. Remove all code that dealt with the frame, and Ajax skeleton page - switch to own implementation of history management, remove really simple history framework code - add internal path API: see WApplication::setInternalPath(), WAnchor::setRefInternalPath() - remove internal iframes to deal with file uploads, found a workaround for IE problem - make JavaScript skeleton files compressable with YUI JS compressor - WMenu and WMenuItems: API changes to work with internal path API - improved marking of deprecated methods in API * wt_config.xml: add new setting used in anchor for redirecting to non-JavaScript version 05-08-2008: * web/Configuration.C: remove cppfileno mess 04-08-2008: * WFormWidget.C: fix crash when calling setBuddy() twice (or only once in case of WAbstractToggleButton) * WTreeTable.C: fix problem when height is not explicitly set 02-08-2008: * WVMLImage.C: fix bounding box calculation for arc rendering in path when rotated. It is still broken for non-uniform scale + rotation * TableView.C: fix cellSelected signal when used together with a PagingToolBar to not propagate the correct model indexes 01-08-2008: * src/http/StaticReply.C, src/http/StockReply.C: transmit response only when all POST'ed data was received * src/http/StaticReply.C: call stream_.clear() to recover from error state 29-07-2008: * WEnvironment.C, src/web/WebController.C, src/web/WebRenderer.C: fix cookie setting and cookie parsing * WMenuItem: move itemWidget() from protected to public scope. 25-07-2008: * WTextEdit[.C]: implement an XHTML rich text editor wrapping the TinyMCE javascript library * CMakeListst.txt: install resources/ folder to share/Wt/resources * WText[.C]: deprecated WText::Formatting enum, WText::setFormatting() and WText::formatting() for Wt::TextFormat enum, WText::setTextFormat() and textFormat(). Add a constructor that accepts the format as an argument, and update examples * http/Reply.C, http/StaticReply.C: serve a .gz version of a file with gzip content-encoding if possible and available, fix a problem with logging when the reply is relayed 22-07-2008: * WAbstractArea, WRectArea, WCircleArea, WPolygonArea: new classes that implement interactive areas on WImage and WPaintedWidget. * WImage, WPaintedWidget: add methods for defining interactive areas * StdGridLayoutImpl.C: fix alignment margin glitch * WApplication.C: default stylesheet: add border: 0px for images, which are rendered using a border when adding a map. * WMemoryResource: add constructors and methods for using C-style array data. * WLogger.C: fix error in ~WLogEntry * all: misc build fixes for win32 15-07-2008: * src/wt: renamed to src/Wt * src/Ext: renamed to src/Wt/Ext * src/Chart: renamed to src/Wt/Chart * src: upgrade to new include file locations * cmake/FindWt.cmake: update to new new include file locations, and add some documentation for cmake newbies * src/wt/StdLayoutImpl.C: fix itemAt() problem * src/Wt/WMessageResource*, src/wt/WString[.C]: make literal WString work properly with argument substitution (reported by Micahel Ivanov) * src/web/Configuration.C: setup loggers even if no wt_config.xml file (reported by Goetz Babin-Ebell) 14-07-2008: * src/wt/WComboBox[.C], src/Ext/ComboBox[.C]: fix problem with setModel wrongly deleting the previous model (reported by Michael Ivanov). * src/wt/WApplication, examples/composer/ComposeExample.C, src/wt/WMessageResourceBundle: document and contrast expected location for relative URLs or relative paths (suggested by Pau Garcia) * doc/main: improved Inroduction to include logging and error handling, and related configuration options * src/Chart/WChart2DRenderer.C: fix regression with stacked bars, introduced by WAxis::setBreak() implementation * */CMakeListst.txt: install header files in Wt/ subdirectory to not clobber the main include directory. You should make sure that ${CMAKE_INSTALL_PREFIX}/include/Wt is searched for these headers! 13-07-2008: * src/wt/WLogger[.C], src/wt/WApplication: logging API, new method WApplication::log() * src/web/Configuration.[Ch], src/wt/Configuration.[Ch]: add configuration options for accesslog and application logging * src/wt/WText[.C], src/wt/WWebWidget[.C]: allow to detect XML parse errors when using XHTMLFormatting * allover: code cleanups to use logging instead of std::cerr, to throw exceptions for fatal errors * src/wt/WLayout[.C]: change contract of count() and itemAt() to allow for '0' layout items, fix crash with WGridLayout (reported by bvh). 10-07-2008: * src/Ext/Widget.C: propagate CSS style class and inline style to the Ext widget through the config. * src/web/WtRandom.C: fix integer overflow compile warning (Pau Garcia) 09-07-2008: * src/Chart/WAxis[.C]: add setBreak() to support a "broken" axis that omits a part of the entire value range. 07-07-2008: * src/wt/WContainerWidget.C: implement clear() to also delete any layout manager that was set, and support creation of a layout manager in an existing widget * examples/simplechat/SimpleChat.C: use clear() in conjunction with layout managers * src/web/DomElement.C: make sure style attribute is rendered as JavaScript * src/wt/WApplication.C: do not apply 19px IE6 offset bug to IE7 or later * src/wt/WGridLayout.C: use default spacing of 6px instead of 9px * src/wt/WContainerWidget.C: setLayout() replace two bools fitWidth and fitHeight with an alignment option * examples/painting/PaintExample.C: use WGridLayout 03-07-2008: * src/web/skeletons/*, src/web/DomElement.C, src/web/WebRenderer.C: make sure Wt homepage validates as proper HTML or XHTML. * src/wt/WText.C: autodetect common block-style XHTHML content and call setInline(false) for block elements (helps in producing valid XHTML). * src/Ext/Widget.C: fix for Ext date picker and calendar with Firefox 3 * src/web/WebRenderer.C: fix JavaScript to reload an old session (again!) 02-07-2008: * src/wt/WAppliation.C: block events from widgets under the modal dialog cover 01-06-2008: * src/wt/WServer[.C]: API to start and stop the embedded http server programatically. * src/Ext/TextEdit.C: fix forgotten string literal bug (Michael Ivanov) * src/wt/WApplication.C: add auto-centering for WDialog using JavaScript (Michael Ivanov) 30-06-2008: * src/wt/WGridLayout.C, src/wt/StdGridLayoutImpl.C: unify cross-browser handling, fix alignment bugs, border handling 27-06-2008: * src/Ext/Widget.C: eliminate client-side memory leak of ExtW array * src/wt/StdGridLayoutImpl.C: fix minimum row height calculation bug, and some clean up + internal doc improvements * src/Ext/Container.C: fix interference bugs between Ext and Wt layout managers * src/wt/WBoxLayout, src/wt/WGridLayout: implement alignment 25-06-2008: * src/wt/WBoxLayout[.C], src/wt/WGridLayout[.C], src/wt/WBorderLayout[.C], src/wt/WContainerWidget[.C]: implemented layout management for WContainerWidgets * examples/chat: simplified by using layout managers instead of absolute CSS layout. * src/wt/WApplication.C: reset padding to 0 for the body. Add padding to the WApplication::root() if you want to have it back. * src/web/DomElement.C: change cancelEvent() signature, and add emulate IE support for setMinimumSize() (using CSS expressions), add support for CSS property white-space * src/web/skeleton/Wt.js: add pixel calculation routines * src/wt/WApplication.C: define declared functions as soon as possible * src/wt/WText[.C]: add setWordWrap() method * src/wt/WLabel.C: use setWordWrap(false) for the text * src/wt/WMenuItem.C: do not set margin-right for horizontal items (Billy Muma) 18-06-2008: * CMakeLists.txt: fixed CONFIGDIR issues * src/http/Reply.[Ch]: fixed non-multi threaded build * src/wt/WTabWidget[C], src/wt/WMenu[C]: reimplement currentChanged signal 17-06-2008: * src/wt/WContainerWidget.C: fix bug caused by not searching child list before inserting child, triggered when using insertBefore() * src/Ext/Dialog.C, src/Ext/MessageBox.C: workaround for missing cursor problem in FireFox 1.5 and 2 16-06-2008: * CMakeLists.txt: CONFIGDIR variable (from Pau Garcia i Quiles) * src/CMakeLists.txt: use a macro for FileToString * examples/wtwithqt: new example and library for interopability between Wt and Qt4. 13-06-2008: * LICENSE: Clarified that GPL Wt is only licensed under the second version of the GNU GPL (requested by debian folks) * src/wt/WWebWidget.C: performance improvement, do not search child list before inserting child because we know for sure that it isn't there * src/Ext/Dialog.C: do not use display:none since this may cause problems with certain Ext widgets that need hide-with-offsets * src/Chart/WAxis[.C]: add support for axis titles with custom font 12-06-2008: * src/Ext/WWidgetItemImpl: do not use display:none since this may cause problems with certain Ext widgets that need hide-with-offsets 11-06-2008: * add WEnvironment::pathInfo() 10-06-2008: * refactoring to simplify WWebWidget implementations * preliminary support for AJAX on IE Mobile. Things that do not yet work include WFileUpload, WTimer, and there are many rendering layout glitches (such as in the tree list stuff). * src/web/DomElement.C, src/web/WebController.C: fix handling multiple buttons when JavaScript is not available * src/Ext/TableView.C: clearSelection() fix (Archimedes Cortes) * src/wt/WFormWidget, src/wt/WValidator: add an inputFilter() method which allows filtering input characters against a regular expression. * src/wt/WTree.C: let selection only on the label, so that other interactive widgets may be present in other columns * src/web/DomElement.C: support return value, note this may break existing behaviour of JavaScript slots, since they really need to return properly! Better cross-platform event handling. 30-05-2008: * src/http/Server.[Ch]: fix potential thread safety issue on shutdown (Max M) 28-05-2008: * src/Ext/LineEdit[.C]: add setMaxLength() * src/wt/WAnchor.C: fix targetChanged_ is uninitialized bug 27-05-2008: * src/fcgi/Server.C, src/web/Configuration.C: support valgrind arguments * src/web/Configuration.C: fix close(-1) valgrind warning, and read 'valgrind-path' from fcgi-configuration 26-05-2008: * charts example: better support without JavaScript * src/Ext/NumberField: fix undefined reference: setDecimalPrecision() * src/Ext/TableView: add setColumnAlignment() method * src/web/DomElement.C: better support for anchor onclick events: use browser default when used with a modifier, otherwise prevent browser default * src/web/WebSession, src/web/WebController: propagate initial history as a history event after application construction * various places: documentation improvements 21-05-2008: * src/web/WWebWidget.C: allow disabling the stubbing of small widgets (added setLoadLaterVisible() method) * src/wt/WWidget: add htmlText() method to public API 20-05-2008: * src/wt/WTreeNode.C, src/wt/WIconPair.C: performance improvements * src/wt/WTree.C: suppress browser text selection when selection is enabled * src/web/skeleton/Ajax.html: support for IE 8 beta * various places: documentation improvements * src/wt/WApplication[.C]: added WApplication::applicationName(), from Goetz Babin-Ebell. * src/wt/WWebWidget.C: optimize widget destruction 15-05-2008: * src/web/WebSession.C: fix build problem when threading is disabled * src/wt/WVmlImage.C, Wt.js: fix selection problem on IE 14-05-2008: * src/wt/WInteractWidget.C: block changed signal after enterPressed when the enterPressed signal is connected to get same behaviour across all browsers * src/wt/WLenghtValidator.C: fix bug in constructor * src/wt/WLineEdit[.C]: add setMaxLength() * src/wt/WWidget.C: disable the fixed JavaScript implementation for hide() and show() and revert to stateless slot learning by default to take into account reimplement setHidden() methods. This is now overridden only in WTreeNode. * src/web/CgiParser.C: open spoolfile in binary mode, fixes wrong behaviour with binary files on Windows platforms * src/wt/WApplication: revert behaviour change for url() to return the entire application path * src/wt/WSlider.C: avoid compile warning with gcc 4.2 13-05-2008: * src/wt/WValidator[.C], src/wt/WIntValidator[.C], src/wt/WDoubleValidator[.C], src/wt/WDateValidator[.C], src/wt/WRegExpValidator[.C]. src/wt/WLengthValidator[.C], src/wt/WFormWidget[.C]: add javaScriptValidate() for client-side validation * src/wt/WDate[.C]: small cleanup and add conversion to perl regular expression for client-side validation * put Wt stateless client-side routines in a version-dependent namespace WT_CLASS * src/wt/WMessageResources.C: preserve white space and new lines for message resources 11-05-2008: * src/wt/WSignal[.C]: reduce memory for unused event signals, and add support for preventing the default handler (untested) * src/wt/WInteractWidget: better keyboard event documetation * src/wt/WTree[.C]: support for standard behaviour of Control and Shift modifiers in extended selection mode 10-05-2008: * src/web/DomElement.C, src/web/skeleton/Wt.js, src/wt/WEvent[.C]: improved keyboard and mouse event information * src/wt/WInteractWidget: better keyboard event documetation * src/wt/WTree[.C]: support for standard behaviour of Control and Shift modifiers in extended selection mode 08-05-2008: * cmake/WtFindBoost.txt, src/web/random_device.cpp: add support for MacOS X * src/wt/WAbstractItemModel: add asString(const boost::any&) and asNumber(const boost::any&), and add warnings when trying to read or write data outside the bounds * src/wt/WAbstractToggleButton.C, src/wt/WFormWidget.C: avoid double changed event propagation (needs exception for bug in IE6 and IE7). * src/wt/WCanvasPaintDevice.C: improve text rendering, optimize path rendering, and fix bug with clipping and transformations * src/wt/WColor: documentation improvements, and specify default colors numerically * src/wt/WComboBox: documentation improvements * src/wt/WComboBox.C: do not emit changed() event when changing the values using setCurrentIndex() * src/wt/WDate: add support for conversion to integers using julian day calculation, and add methods addDays(), addMonths(), and addYears(), and fix string parse bug s/1900/2000 * src/wt/WDoubleValidator: fix default argument to real -inf * src/wt/WPainter, src/wt/WVmlImage: add support for rectangle clipping to VML renderer * src/wt/WPainterPath: add support for bounding box calculations, fix inverted angle calculation in getArcPosition() * src/wt/WRectF: add intersection test and united() method * src/wt/WResource: add write(std::ostream&) method to serialize a resource (e.g. to a file) * src/wt/WSvgImage: optimize paths even when transformations change (only translations), fix clipPath definition so that it works with inkscape and opera, and make drawText() more accurate * src/wt/WVmlImage: optimize paths through transformations, and use multiple parallel paths to avoid overlap artefacts, and add full text support (including rotations and scales) * src/wt/WWebWidget: fix bug with double processing of new siblings * src/wt/WWidget: move enums to Wt:: scope (with full backwards compatible support) * src/Chart/: first release of the Wt charting library * examples/charts/: example demonstrating the Wt charting library * src/wt/WPanel: new widget (will evolve to support many standard options you want for a panel) 29-04-2008: * src/wt/WLength: Added multiplication operator, and toPixels() method * src/wt/WFont: Fixed equality operator: fixed sizes are now also compared * src/wt/WVmlImage.C, src/web/WebController.C, src/wt/WEnvironment, src/web/skeleton/Boot.html: Fixed rendering on high density displays (DPI scaling) 25-04-2008: * CMakeLists.txt: Dynamic/static boost build fix 24-04-2008: * CMakeLists.txt: FindWt.cmake is now installed in /usr/share/... instead of /usr/usr/share/... * src/wt/WCssDecorationStyle.C: bugfix for setting background colors 19-04-2008: * src/web/WWebWidget.C: also update form objects in addChild() and removeChild (could be optimized later) 18-04-2008: * CMakeLists.txt: LIB_INSTALL_DIR fixes. LIB_INSTALL_DIR must now be a relative path. * src/web/WebController.C: reroute all methods that may call user code through WApplication::notify() (including rendering and application refresh()) * src/wt/WApplication[.C], src/web/WebSession[.C]: allow post-construction and pre-destruction application initialization and finalization * src/wt/WApplication[.C], src/web/WebSession[.C]: attachThread() attaches an auxiliary thread to an application context * src/http/Connection.C: use graceful connection shutdown on timeout, to avoid the occasional 502 proxy errors 17-04-2008: * src/http/Connection.C. src/http/Reply.C: fix race condition on shutdown, protect connection_ with a mutex, and illegal access to dead connection's request in the logging * src/http/HTTPRequest.[Ch]: keep a shared pointer (ReplyPtr) instead of raw pointer for the WtReply * src/web/WebController.C: remove killed sessions from sessions map from sessions map in forceShutDown() so that they do not get illegally accessed from expireSessions(). * src/web/WebSession: do not call finalize() on 0 app_ * src/wt/WResource: setRequest() flushes a previous request if there is already one * src/wt/WMenuItem.C: fix memory leak with LazyLoading * various places: make build work on gcc 3.4.0 (thanks to Petr Cerny) 14-04-2008: * src/web/DomElement.C: do not use innerHTML in xhtml (opera doesn't like it with inline SVG) * src/wt/WPaintedWidget.C: prefer InlineSVG on Opera * src/wt/WPaintDevice.C, src/wt/WVmlImage.C: scale pen widths with transform * src/web/skeletons/Wt.js: import XML nodes with correct namespace into DOM * revert commit 4e7766d105888ae898ca6a8d7446d2188ae09846, since IE cannot handle special tokens in DOM element id's * release 2.1.2 13-04-2008: * src/wt/WPainter[.C], src/wt/WCanvasPaintDevice[.C], src/wt/WVmlImage[.C], src/wt/WSvgImage[.C]: add drawImage() methods * src/wt/WRectF.C: fix setX() and setY() incorrect width adaptation * src/wt/WSvgImage.C: fix regression in drawLine * src/wt/WTransform.C: fix double comparison in SVD decomposition * src/wt/WVmlImage.C: fix drawArc() wrong transformation problem 12-04-2008: * src/web/DomElement.C, src/web/skeleton/Wt.js: capture() mouse down so that all subsequent mouse events are received by the same element/widget * src/web/WebRenderer.C: use JS reload(true) to force reload, and disallow caching of bootstrap HTML * src/web/WebRenderer.C, src/wt/WVmlImage.C: use VML in standards compliant rendering mode * src/web/skeleton/Wt.js: make private functions really sit within "Wt" closure * src/wt/WJavaScriptSlot.C: fix wrong JavaScript code when JSlot is not owned by a WWidget, and thus not using function declaration, and define JavaScript functions before loading * src/wt/WPaintedWidget[.C]: update() on resize() * src/wt/WSlider[.C]: initial implementation of a slider control (rendered using WPaintedWidget) * src/Ext/TabWidget[.C]: make sure currentIndex() is updated before propagating the signal * src/wt/WVmlImage.C: correct -1 vertical offset problem * src/wt/WTreeTableNode.C: fix seg fault of calling virtual method addChildNode() from WTreeNode constructor * src/wt/WTree.C: fix seg fault on consecutive calls of setTreeRoot() * src/wt/WTreeNode[.C]: rename expanded() to isExpanded() and add two signals, expanded and collapsed * src/wt/WSignal: allow late binding of a relay signal to EventSignal * src/wt/WTableTreeNode: change incorrect protected scope of addChildNode() to public 11-04-2008: * src/wt/WPainter[.C]: expand API with setViewPort() and setWindow() methods * src/wt/WTransform.C: fix reflexion bug in WTransform's SVD * src/wt/WPen[.C]: define 0 width as cosmetic pen of width 1 pixel, independent of transformation matrix * Boost 1.35 support * CMakeLists.txt: The static version of Wt is now default built on Windows 10-04-2008: * src/wt/WApplication[.C]: fix regression in WApplication::processEvents() * src/wt/WPainter[.C]: add WPainter::save() and WPainter::restore() methods * src/wt/WTransform.C: handle reflexions correctly in the singular value decomposition * Released 2.1.1 09-04-2008: * src/wt/WLineF, WPointF, WRectF, WPaintDevice, WPainter, WPen, WBrush, WPainterPath, WVmlImage, WSVGImage, WCanvasPaintDevice: complete implementation and documentation * src/wt/WString: improve documentation 07-04-2008: * src/wt/WTreeNode[.C]: add virtual expandable() method which returns whether a node is expandable (even when not populated) * src/Ext/TabWidget.C: addTab(WWidget *, const WString&) checks if the widget is a Panel, and only creates a Panel if not. * src/wt/WJavaScriptSlot[.C], WObject[.C], add implementPrelearned() to directly specify the JavaScript behavior for a method. Add support to switch the implementation of a method between implementStateless() and implementJavaScript(). * src/wt/WTreeNode[.C]: add setChildCountPolicy() to enable the child count next to the label, which now by default is disabled * src/wt/WWidget.C, src/wt/WWebWidget.C: performance optimization: change implementation of hide() and show() from stateless to prelearned * src/wt/WTreeTable[.C]: use offsetHeight instead of clientHeight and offsetTop to solve layout problem ? * src/wt/WObject[.C]: use a simple 64-bit encoding for a valid JavaScript identifier id 02-04-2008: * src/Ext/*.C: performance improvement: change config generation to use streaming instead of string concatenation * src/Ext/*.C: performance improvement: do not use addUpdateJS when not yet rendered 01-04-2008: * src/wt/WApplication: support dynamic loading of scripts, internal stylesheet changes, and external stylesheets. This fixes the problem with using Ext widgets only later in the application. * src/wt/WTableRow[.C], src/wt/WTableColumn[.C]: add support in public API * src/wt/WApplication.C: move default CSS for widgets to the widget constructors * src/wt/Ext/Widget.C, src/wt/WJavaScriptSlot.C: fix bugs when using setId() to override the auto-generated id's. * src/wt/WEnvironment[.C]: make hostName() and clientAddress() robust to proxies at either the client or server side, add urlScheme() method. * src/fcgi/Server.C, src/http/PosixMain.C, src/web/WebController.C: add support for multiple entry points * src/http/Configuration.C: add --servername option to override the DNS name as default host name * src/http/Configuration.C: fix -1 error when removing trailing '/' from directories. * src/web/CgiParser.C: use GNU regex when HAVE_GNU_REGEX is defined. * src/web/Configuration.C: add behind-reverse-proxy boolean configuration option, and separate general from FastCGI specific settings * src/web/DomElement.C, src/web/EscapeOStream.C, src/web/WebRenderer.C: more rendering performance improvements * src/web/WebController.C: use GNU regex when HAVE_GNU_REGEX is defined. * src/web/WebController.C, src/web/WebRenderer.C, src/web/WebSession.C: preliminary support for embedded application mode, cross-domain AJAX using dynamic script tags, and automatic conversion from relative to absolute URLs * src/web/skeletons/: reorganisation to have modular javascript, and encapsulation in JavaScript "classes" to allow multiple applications in a single page (in the future) * src/wt/WApplication.C: make "Loading" feedback work properly on all browsers * src/wt/WCssDecorationStyle.C: do not generate no-op JavaScript * src/wt/WCssStyleSheet[.C]: add functionality to check whether a particular rule has already been added * src/wt/WMessageResources.C: do not read the same XML file twice when locale is empty * src/wt/WPushButton.C: do not generated no-op JavaScript * src/wt/WResource: change suggestFilename to suggestFileName, add addHeader() method * src/wt/WSignal.C: fix double removal of a user event signal from the exposed signals list 18-03-2008: * src/wt/WStackedWidget[.C]: fix bug when trying to add a composite widget to a stack (cannot yet call hide()) through parent passing, reported by Michael Ivanov 17-03-2008: * src/web/DomElement.C: fix regression introduced 04-03-2008 with alternate hiding method interfering with setPositionScheme() * src/Ext/ComboBox.C: use modelColumn when indexing into model. * src/web/DomElement.C: various performance improvements (const char * for string literals) * src/web/EscapeOStream[.C]: performance improvements * src/web/FileServe.C: performance improvement: avoid char-based I/O * src/web/WebRenderer.C: performance improvements: do not use formName(), instead use pointer, do not propagateRenderOk() before initial render, do stateless slot learning in JavaScript update * src/wt/WObject.C: performance improvement: use sprintf() in formName() * src/wt/WSignal.C: performance improvements: use local info to track whether a signal was exposed instead of the expensive call to WApplication * src/wt/WWebWidget.C: performance improvements * src/wt/WTreeNode[.C]: virtual method displayedChildCount() * src/web/skeleton/Ajax.html: fix offset problem in coordinate calculations * src/wt/TableView[.C]: use SelectionBehavior instead of SelectionUnit, which is now deprecated * src/wt/WSelectionBox[.C]: add support for multiple selection * src/web/DomElement.C: fix button wrap when using IE6 with JavaScript disabled * all: various documentation cleanups 13-03-2008: * wthttpd: make build without thread support really work without linking to a thread library * src/mxml/mxml-file.c: fix unicode encoding to not encode twice, bug that was triggered on linux-arm platforms * src/mxml: merge with latest official release 2.5 * src/wt/WDate.C, src/http/Request.C: fix non-cost string literals * src/web/CgiParser.C: fix a regression to detect content-type 12-03-2008: * src/wt/WPainterPath: complete API, largely untested 10-03-2008: * src/wt/WPainterPath and devices: implement painter path arcTo() 06-03-2008: * examples/wt-homepage/: updated to emweb design * src/wt/WApplication.C: disable state system for WebKit, since it does not work at all * src/wt/WMessageResources.C, src/wt/WWebWidget.C, src/web/DomElement.C: do not let mxml self-close non-self-closing tags (gives problems in IE) 05-03-2008: * src/wt/WMenu[.C]: added method setRenderAsList() which allows the menu to be rendered as an HTML list * src/wt/WContainerWidget[.C]: added methods setList(), isList(), isOrderedList(), isUnorderedList(), that allow the container to be used to render HTML
    and
      lists. 04-03-2008: * src/wt/WTable.C: correctly participate in slot learning when stubbed * src/wt/WWebWidget[.C]: allow alternate method for hiding, which propagates to parents. methods does not use display: none * src/Ext/ComboBox.C, src/Ext/DateField.C: use alternate method for hiding 03-03-2008: * examples/extkitchen/ExtKitchenExample.C: modify example to use a WTable for layout 02-03-2008: * src/wt/WSignal: connect new signals at_front, since it seems that boost signals will call slots being appended to the signal during slot invocation -- contrary to the documentation * src/wt/W[.*]Image: add support for VML rendering * src/wt/WVmlImage.C: make text alignment work properly 01-03-2008: * src/wt/WMenu[Item][.C]: make itemSelected signal normal signal, instead of being called from within stateless slot * src/web/WebRenderer.C: do not show 'ignore' for updates to widgets not inserted into the widget hierarchy * src/wt/WObject.C: do not show internal error when (no)FormData is called * src/http/WinMain.C: adapted for non-boost asio * src/wt/WWebWidget.C: Allow widget reparenting. setParent() for a widget who has already a parent used to be a no-op; now it reparents the widget. * */CMakelists.txt: added 'd' suffix to debug libraries; added FindWt.cmake (from Pau Garcia i Quiles) * Released 2.1.0 29-02-2008: * */CMakeList.txt: Restructured the cmake files * wthttp: made zlib dependency optional * wthttp: asio_error becomes asio_error_code and asio_system_error * src/Ext/Widget.C: make setHidden() behave properly also when not yet rendered 25-02-2008: * documentation updates 23-02-2008: * several fixes for JavaScript handling after a reload of the same session 22-02-2008: * src/wt/WTreeTable.C: fix layout bug when using a border for the header 16-02-2008: * src/wt/WAnchor[.C]: allow referencing to dynamically generated documents 15-02-2008: * src/Ext/TableView.C: implement enableColumnHiding() methods * src/, src/http: move to boost-1.34.1 and (boost/non-boost) asio 0.3.9 * src/Ext/Dialog.C: implement setSizeGripEnabled(bool) method * src/Ext/Panel[.C]: add collapse(), expand() methods and fix setCollapsed() implementation * src/Ext/TableView.C: fix setAutoExpandColumn min and max widths 14-02-2008: * src/Ext/PagingToolBar.C: render other buttons that were added, as suggested by Michael Ivanov, 08-01-2008 * src/wt/WLabel[.C]: add setBuddy(Ext::FormField *) as suggested by Pau Garcia i Quiles, 16-01-2008 * src/wt/WAnchor[.C]: add setTarget() method 13-02-2008: * src/Ext/MessageBox.[Ch]: fix delete from buttonClicked crash, reported by Alex, 05-01-2008 * src/wt/WAnchor[.C]: fix anchor implementation problem reported by Lasse Karkkainen, 15-01-2008. Note that the API has changed, since we no longer use a WLabel (which caused the problem). Unless your code relied on the fact that it was implemented using a label there should be no problem in adapting to the new API. * src/web/WebController.C: fix IE6 history problem reported by Joe Croft, 28-01-2008 * src/web/WebRender.C: fix synchronization problem of form objects, bug and patch by Goetz Babin-Ebell * src/wt/WContainerWidget.C: syntax fix, by Goetz Babin-Ebell * src/wt/WString and related: use UTF8 internally, as suggested by Goetz Babin-Ebell 02-01-2008: * src/wt/WTreeTable[.C]: scroll content while keeping headers fixed * src/wt/WTreeNode[.C]: add support for an invisible root node * src/Ext/LayoutImpl.C: trigget layout recalculation after adding a panel * src/Ext/Button.C: fix bug not showing initial enabled/disabled state * src/Ext/WWidgetItemImpl.C: wrap non-Container Widgets also, so that their style is not lost * src/Wt/WPainter: drawLine methods * src/web/skeleton/Ajax.html: fix mouse position calculations in presence of scrolled widgets 01-01-2008: * src/web/WebController.[Ch], src/http/HTTPStream.[Ch]: addSocketNotifier and removeSocketNotifier as virtual methods in WebStream instead of callbacks from wt lib to connector lib 30-12-2007: * src/wt/WRectF[.C], src/wt/WCanvasPaintDevice[.C], ...: further improvements to painting infrastructure * src/wt/WSignalMapper: API changes to be able to build on MSVC * src/wt/WEnvironment: allow reading content type, and raw CGI environment variables * src/web/Configuration.C: switch back to default to HTML mime type 29-12-2007: * src/http/PosixMain.C: use asio::thread by default * src/wt/WContainerWidget.C: fix bug to use delete[] instead of delete on overflow_ array * src/wt/WApplication: add notify(const WEvent& e) method to allow custom event exception handling. * src/wt/WEnvironment: add cgiValue() method to inspect any CGI environment variable 18-12-2007: * various places: pass string by reference where it makes sense * Ext/*: upgrade from Ext 1.x to Ext 2.x series, main addition is a full layout management system 12-12-2007: * src/web/WebRenderer.C, src/web/DomElement.C, ...: serve XHTML content-type if the browser accepts it, and if it is not disabled in the config.xml file * resources/orbited.js: produce valid XHTML (no document.write()) * resources/rsh.js: produce valid XHMTL (except for IE) * src/wt/WApplication[.C]: split javascript in javascript that needs to be run before starting the DOM (which is rendered everytime the page is reloaded), and javascript that is run to manipulate the DOM (which is the default) * src/web/DomElement.C: fix button wrap layout that was adding extra padding in non-javascript support rendering * src/wt/WApplication.C: use lowercase CSS element selectors! you will need to change your style sheets accordingly! * src/wt/WBrush[.C], src/wt/WPaintDevice[.C], src/wt/WPaintedWidget[.C], src/wt/WPainter[.C], src/wt/WPen[.C], src/wt/WPointF[.C], src/wt/WVectorImageResource[.C]: initial check-in of incomplete painting infrastructure 10-12-2007: * src/web/WebController.C: keep the server push connection alive when receiving a heart-beat * src/web/skeleton/Ajax.html: preliminary WinCE IE support * src/wt/WImage[.C]: add loaded event 02-12-2007: * examples/simplechat: added a chat example (replaces previous stupid serverpush example) * src/web/WServerPushResource.C, resources/orbited.js: several improvements to make server-push work * src/web/WebSession.C: allow updating another session from within an existing session * src/wt/WContainerWidget: add setOverflow() method for easier scrollbars * src/wt/WString: add operator< to be able to put them in std::set<> 01-12-2007: * src/mxml: updated to mxml-2.4 * resources/rhs.js, resources/json2005.js, src/wt/WApplication.C, src/web/WebController.C: upgraded to RSH 0.6 RC1 (works now in IE, Firefox and Opera) * examples/hello/hello.C: make example more interesting * examples/serverpush/serverpush.C: adapted to test intermixing event server and client events * src/Ext/TableView.C: disconnect connections when changing model * src/fcgi/FCGIStream.[Ch]: add socket notifier stubs * src/http/Server.[Ch], src/web/WebController.[Ch]: implement socket notification * src/http/WtReply.[Ch]: robust handling of server shutdown and connection closing * src/web/WServerPushResource.C: adapted for orbited.js for as server-push library * src/web/WebController.C: no longer add --Quited to application title when quiting an application 27-11-2007: * src/Ext/MessageBox.C: fix setting prompt value * src/Ext/DataStore[.C], src/Ext/ComboBox[.C], src/Ext/TableView[.C]: bundle model changes leading to significant reduction in generated JS for model changes. * src/Ext/DataStore[.C], src/Ext/TableView[.C]: support resetting the model, and process row removals in reverse order * src/wt/WAbstractToggleButton.C: use click signal instead of change to make checked/unChecked signals work in IE. * src/wt/WSignal.C: reorder emission of stateless and dynamic slots, to avoid processing on a signal that has been deleted (which should not happen in a stateless slot). 23-11-2007: * src/wt/WButtonGroup, src/Ext/RadioButton.C: add support for Ext::RadioButton in WButtonGroup 23-11-2007: * CMakeLists.txt, src/CMakeLists.txt: add build option to disable thread (in wthttpd) altogether 22-11-2007: * src/Ext/DataStore.C: fix use of DataStore when removing rows 15-11-2007: * src/Ext/DataStore.C: fix regression bug when inserting rows * src/Ext/ComboBox.[Ch]: add activated signal * src/Ext/DataStore.C: fix use of DataStore when inserting rows 12-11-2007: * src/Ext/ProgressDialog.C: don't show by default (unlike Qt) 26-10-2007: * src/Ext/TableView.C: add missing method implementations 21-10-2007: * src/Ext/DataStore.[Ch], src/Ext/TableView.[Ch]: support multiple row selection, and be robust to sorting by using ids instead of row indexes * src/Ext/TabWidget[.C]: fix bug where children were not inserted into the widget tree, and thus could not implement event handling * src/wt/WTreeTableNode.C: fix konqueror/IE6 rendering problems 18-10-2007: * src/Ext/TableView[.C]: add methods for modifying and inspecting the current selection 17-10-2007: * src/wt/WMessageResources.C: remove the trailing '\n' that was being added to every WString in a resourcefile by mxml 10-10-2007: * examples/extkitchen/ExtKitchenExample.[Ch]: add a password prompt dialog example * src/wt/WAbstractToggletButton.[C], src/wt/WCheckBox.[Ch], src/wt/WRadioButton.[C]: fix reversion caused by constructor with bool as first argument resulting in missing label text * src/wt/WFormWidget.[C]: add setFocus() method * src/wt/WInPlaceEdit.C: focus line edit using setFocus() stateless slot * src/wt/WScrollArea.[C]: add vertical scrollbar stuff 01-10-2007: * src/web/skeleton/*.html: Reorder inline and external stylesheets so that Wt's default rules can be overridden by applications * src/wt/WAnchor: Inherit from WContainerWidget so that other stuff can be added to it 27-09-2007: * src/CMakeLists.txt: integrate mxml sources directly in libwt.so (to avoid the static non-PIC .a in dynamic .so problem with CMake) 24-09-2007: * resources/dhtml_dhtmlHistory.js, src/web/WebController.C: use dynamically generated blank image * src/wt/WApplication.C: use dhtml_dhtmlHistory.js in directory specified using resourcesURL property * src/web/skeleton/Ajax.html: fix Loading... CSS for Internet Explorer 21-09-2007: * src/wt/WMenuItem.C: fix segfault when container stack is deleted before menu. * src/mxml/*: supply a version of mxml(patched 2.3) which is used by default instead of a system-installed mxml. 11-09-2007: * src/wt/WSignal: fixed EventSignal.emit() to also emit stateless slots. 08-09-2007: * src/wt/WMenuItem, src/wt/WMenuItem.C: decouple render widget from activate signal, move margin for horizontal items from WMenu.C * src/wt/WObject, src/wt/WSignal: use WObject::Method typedef * src/examples/wt/RoundedWidget.C: implement missing method, add enabledRoundedCorners method for changing color in stateless slot functions. * src/wt/WTabWidget, src/wt/WTabWidget.C, others: implement WTabWidget with doxygen look, based on WMenu.C 07-09-2007: * src/Ext/SplitterHandle.C, src/Ext/Splitter.C: implemented full awareness of configured minimum and maximum sizes. * src/Ext/TableView.C, src/wt/WAbstractItemModel.C: added full support for other data types in models with respect to rendering and editing 04-09-2007: * src/CMakeLists.txt: added -DBOOST_SPIRIT_THREADSAFE, fixes thread safety problem (Max M) * src/http/Reply.C: implemented If-Modified-Since, Last-Modified, and 304 Not Modified response codes * *CMakeLists.txt: add soversioning * src/wt/WDllDefs: added WT_VERSION define (4gsystems) * src/wt/WTimer: WTimer memory leak patch (4gsystems) 03-09-2007: * all: Released 2.0.5. Didn't keep track of ChangeLog, intending to improve on that, using GNU Changelog guidelines. 12-05-2007: * Haven't kept track of things in ChangeLog.. Sorry. 18-02-2007: * various transient and widget memory improvements sample of sizeof() before and after: WObject: 48 40 WResource: 84 60 WWidget: 92 68 WWebWidget: 592 108 WInteractWidget: 1356 300 WText: 1384 328 WTable: 1376 320 16-02-2007: * New widget: WTreeTable and example File Browser. 18-12-2006: * Use Boost.Signals instead of home-brew signal/slots * Drag&Drop seems to work with firefox/konqueror, probably needs more testing * valgrind checked, no warnings no errors ! * adopt wide string array 05-12-2006: * Solaris patches by Patrick Mauritz * Drag&Drop, initial implementation (not yet complete) * Drag&Drop example 01-12-2006: * Happy birthday, Wt. * many changes not documented in the Changelog. 07-09-2006: * Support for cookies for session management (when available) instead of URL rewriting * Support for reading and setting cookies (in respectively WEnvironment and WApplication) 04-09-2006: * Starting to finalize event handling: WMouseEvent and WKeyEvent * working on a new example and a new widget: WVirtualImage 02-09-2006: * Added WTreeNode and WIconPair widgets, derived from the treelist example with different loading policies, and OO overloading capabilities. * Corrected API bug: hide() and show() are non-virtual but setHidden() is the virtual one that you should reimplement * Remove WCssDecorationStyle from WWebWidget header, and do not allocated it until needed. Saves alot on memory usage when using many widgets. 01-09-2006: * Moved Menu from the homepage example to become WMenu. Provides now different loading policies for the items, and customizable WMenuItem look (through OO inheritance). * Fixed a nasty bug in stateless slot learning. 30-08-2006: * implemented WJavascriptSlot (abdiel) for pure client-side event handling * implemented WSuggestionPopup * use two-phase rendering for all updates, and configuration option to change the threshold * separated examples in their own doxygen documentation * added ContactSuggestions widget to the composer example * various documentation improvements * fix a bug with deleting a signal while emitting the slots (abdiel) * avoid (?) race condition in blur() and click() handler in WSuggestionPopup.C 24-08-2006: * mindfully implemented all quoting stuff * change behaviour at quit(): simply render the last changes, but add -- Quited. to the title, and avoid receiving new events. * fix non-javascript look for the wrap buttons. 22-08-2006: * add WWidget::isVisible() * workaround for Firefox keeping 'Transferring data from:' * yet another WFileUpload implementation -- the final one ? * misc improvements to Composer example * add support for external stylesheets * fix stateless slots discarding changes after serving resource * allow caching of WWidget resources 21-08-2006: * Added the composer example * Fixed bug not quoting href attribute in DemoTreeList * CgiParser: revert old behaviour, parsing through big requests * move helper function escape and replace to DomElement * WFileUpload::fileTooLarge in addition to WAppliation::requestTooLarge * isLoaded is broken because of WCompositeWidget..., but not needed anyway * add WEnvironment::getArgument, by Tomek Mazurek * WFileUpload: looks much better (konqueror, opera & firefox). * WFileUpload: added alternative firefox implementation that is even better (but is not used now) * WFileUpload: add isUploaded to check if calling upload() will do anything * WLineEdit: bugfix: escape preset text * WText: bugfix: replace newlines with
      in plainFormatting * WTextArea: bugfix: now set preset text correctly * WWebWidget, WCompositeWidget: bugfix: fix destructor javascript code * WWebWidget: bugfix: do not propagate renderOk in stubbed widgets * WWebWidget: bugfix: escapeText returns the escaped text * WWidget: bugfix: resourceMimeType: escape " in javascript code. 18-08-2006: * Documentation improvements * Fixed WFileUpload and FileUpload example (one bug remains) * Add propagateRenderOk() instead of creating the complete DOM structure * prevent XSS attacks at the heart by filtering user supplied XHTML. * Do not parse CGI input if too big anyway -- simply discard. 17-08-2006: * Documentation improvements, also doxygenified some reusable classes in the examples. 16-08-2006: * improved look on non-javascript version, konqueror renders wt-homepage now ok, but Firefox keeps adding padding inside the button... 14-08-2006: * parse locale from browser and use it as start-up locale and other things in WEnvironment * release 1.1.5 11-08-2006: * performance improvement: keep track of widgets that need to be repainted, and only process these when finding changes in the DOM. 10-08-2006: * many new features, not kept track off in ChangeLog (bad habit) * release 1.1.4 13-07-2006: * adopted cmake, an autoconf/tool/make alternative. 26-04-2006: * new: WContainerWidget::insert(WWidget *w, WWidget *before) * WCssDecorationStyle background image may be positioned * Added a Style example 24-04-2006: * Patch for gcc 4 compile errors (Alan Ezust). * chased any remaining memory leaks in all examples, reworked WCompositeWidget implementation -- you will need to update any code * WFileUpload improvements: looks better, works better Added a changed signal which allows capturing file selection on some browsers * WApplication: limit post-size API * CgiParser: make buffer static 22-04-2006: * fix session behaviour with multiple fastcgi servers for high performance settings * added WDoubleValidator and WRegExpValidator and example of a custom validator -- DateValidator 20-04-2006: * kick buggy cgi_util.c in favour of C++ CgiParser * rewrote WFileUpload -- works well but looks ugly (most of the time) * fixed some memory-leaks indicated by valgrind 14-04-2006: * many changes in the last months that were not recorded in the Changelog. 16-01-2006: * add new example hangman, contributed by Wim Dumon * add new example hello-word, contributed by Wim Dumon * fixed contentAlignment() on non-inline children * moved HorizontAlignment to WWidget (that was ugly!) * add support for valgrind, and fixed dito bugs * remove excess zeros in object ids * release 1.0.14 03-01-2006: * add WSignalMapper class, suggested by Wim Dumon * fix gcc 4 compile error, thanks to Costantino Giuliodori and Udo Kreckel. * release 1.0.13 * add WContainerWidget::clear() * add WLineEdit::echoMode (Normal/Password) 29-12-2005: * add javascript but non-ajax code. But does not work with netscape 4, because of 'onclick' not working ? * release 1.0.12 28-12-2005: * make WWidget an abstract interface * create WWebWidget * create WCompositeWidget * fixed a bug not initializing margin and padding * add non-javascript support * add message resource bundles, and support for localization to most WWebWidgets * add refresh() in WApplication and WWidget, and in wt-homepage example. 22-12-2005: * fix (hack?) for browser going back to Wt page bug * added side specific margin and padding, moved padding to WContainerWidget * More documented members in WWidget * release 1.0.11 21-12-2005: * added WFont, and use in the wt-homepage example (for the navigation menu) * discovered, but not fixed, the reason why going back to the Wt page does not work: when going backward, the page replays the same stuff as if it was unloaded. So, we probably want our first keep-alive message to be 'load', which should find out which things were stubbed, and retransmit these -- are easier just trigger a reload 20-12-2005: * some bug fixes in WStackedWidget * converted homepage to Wt (as new example) * add support for WApplication.title() * release 1.0.10 19-12-2005: * started doing ChangeLog * read XHTML tutorial at w3org, now properly generate xhtml, no more problems caused by closing non-empty tags (such as