Feature wishlist¶
- Feature wishlist
- Widgets
- Database
- Development Tools
- Configuration
- Integrated Features
- Foreign language bindings
- Deployment
- Localization
- Community
- Example Application
This is the current community wishlist for features in the Wt library.
Feel free to suggest features you feel are lacking now, or comment on existing wishes. Wt developers will use this list to prioritize development (instead of simply working on their favourite thing), and also to indicate how particular features will be shaped.
Widgets¶
Add here widgets you would like to see implemented in Wt.
Detail what it should do, your wishes for the API if you have any, and perhaps pointers to an equivalent widget in other toolkits.
- Tab (Seems available in 2.2.1)
- Layout Manager (Seems available in 2.2.1, VBOX, HBOX & GRID)
- Toolbar & Components (http://demo.qooxdoo.org/current/demobrowser/#widget~ToolBar.html) (available: Ext::ToolBar)
- Menus (http://demo.qooxdoo.org/current/demobrowser/#widget~Menu.html) (could deprecate to combobox) (available: Ext::Menu)
- Buttons with both text and simple to set icons (http://demo.qooxdoo.org/current/demobrowser/#widget~Button.html) (available: Ext::Button)
- Lists (http://demo.qooxdoo.org/current/demobrowser/#widget~List.html) (available: WSelectionBox)
- Clicked signal to WImage class. (available: http://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c )
- Spinner (http://demo.qooxdoo.org/current/demobrowser/#widget~Spinner.html) (could deprecate to combobox)
- Slider (http://demo.qooxdoo.org/current/demobrowser/#widget~Slider.html) (could deprecate to combobox)
- Tabs with both text and simple to set icons (http://demo.qooxdoo.org/current/demobrowser/#widget~TabView.html) (think browser tabs showing relevant page icon)
- Simple animations for widgets (http://demo.qooxdoo.org/current/demobrowser/#animation~Showcase.html) (suggest using jQuery or equivalent)
- Iframe (http://demo.qooxdoo.org/current/demobrowser/#widget~Iframe.html) (should be really simple...)
- Windows (http://demo.qooxdoo.org/current/demobrowser/#widget~Window.html) (simply decorated, drag able divs...)
Window system like the one used by Google Wave. The windows can have user-defined docking behavior and there is also a docking bar like MS-Windows taskbar for docking minimized windows. - Flash - Detection and Widget to attach swf to (automatically inform user of upgrade route if no flash detected)
- Loading Progress Bar & Widget - Nice to be able to insert controllable progress bar into a page also, as we have what data needs to be sent for all actions providing a loading bar instead of the generic ajax "loading..." would be rather nice!
- If possible, for WImage component , try returning some kind of info whether image loaded successfully. I don't mean on "loaded" signal, but rather on something which returns the value immediately , for example, you can set "WImage::setImageRef" to return false ( instead of void ) if image for given URI doesn't exist etc.
- Accept C++ functors as ApplicationCreator used in WServer::addEntryPoint and WRun to support passing extra options to applications.
Database¶
- Connection Pool
An efficient and scalable connection pool implementation for sessions to communicate with the database ( mentioned in Wt::Dbo Tutorial ). The scalability is critical for the case of deployment into clusters or clouds.
Development Tools¶
- GUI designer
Could be similar to the Qt Designer. Or able to create classes from the same .ui files the designer is generating (reuse of existing tools).
Configuration¶
allow runtime configuration for widget tree structure and bindings
Integrated Features¶
- Basic login system (users & roles) - Should allow for simple standard logins to be performed (used heavily for almost all web-apps)
- JS & HTML Compression - Not sure if this is already done?
- CSS Minimising - CSS can become highly messy with lots of overloading, identifying overloads and pruning unused elements will help with consistency & reduce bandwidth
Foreign language bindings¶
- With python bindings it would be possible to use Wt as an intelligent page generator inside other web framework (Django, etc... ).
It will also be possible to use python to achieve the prototypes and faster release applications.
This is also a recurring request on the mailing list. It would make a lot of sense to have a high quality set of bindings (including native documentation, full support for inheritance), which would result in a high-performance solution for creating web applications in scripting languages. Such a solution is likely to be high performance since most of the complexity lies in the rendering and not in the widget construction/manipulation and event handling. The rendering will still be native C++.
We are currently looking at how we can best tackle this so that we can keep the bindings in sync with the latest release of Wt... Any suggestions are welcome.- See SWIG
- A wrapper for Qt, supporting Qt signals/slots and types, etc
Deployment¶
Load Balancer, Incremental Deployment
Because sessions are node-bound, a load balancer should be provided which keeps track of sessions bound to a specific node. This same load balancer could also be used to migrate new users to a new application instance, while keeping existing users on a previous applications instance, in this way facilitating incremental deployment of new application versions.
For Unix like systems there is already Pound!
Scalability, Cluster Computing
Perhaps at a future date it would be possible to implement support for cluster computing with wt. That would make load balancing easier, and it would especially address the issue of scalability.
Session Scalability
Ability to pass session to a database/server so that if system currently running the session dies the user can be re-directed to other machine (through load balancing/fallover) and new instance can reload users session and continue
Localization¶
PO-based localization
Built-in PO-based localization support for Wt could make work of translators so much easier, because there exist many tools for PO files (e.g. Pootle).
Wt developers opinion: we will probably not implement this soon, since the current approach with the XML files has the benefit (for web applications) of helping in supporting large chunks of XHTML-formatted text, and general purpose editor support for unicode (UTF8-encoded) text.
Community¶
3rd Party/Sandbox directory
Create a sandbox directory where 3rdParty / contributed code would be placed . Removes the headache of copyrighting
SoC
Ideas for Google SoC, 2009
Example Application¶
Quick Starter
Create a stand alone project where you can download a single tarball and begin working on wt. Ideally everything will be local to the project and there is zero install. By zero install, I mean no wt, boost, or cmake installs. Make it really easy. Everything should be simple and already configured. Something in the spirit of Instant Rails.