[Development] QAction-like API for QML

André Somers andre at familiesomers.nl
Wed Dec 12 09:44:10 CET 2012


Op 11-12-2012 21:59, Alan Alpert schreef:
> On Tue, Dec 11, 2012 at 10:49 AM, Shawn Rutledge
> <shawn.rutledge at digia.com> wrote:
>> On Tue, Dec 11, 2012 at 09:48:22AM -0800, Alan Alpert wrote:
>>> Why can't this be QML-only? For the set of controls exposed in
>>> C++-only we have a C++-only Action API. When we add a set of controls
>>> exposed in QML-only we can have a QML-only Action API. We don't
>> Because it seems likely that the business logic of an application would
>> be written in C++, so why not export the actions that the logic can
>> support at the same time?
> The way I see it, the actions are UI logic, not business logic, and
> belong on the QML side of the divide (although they are right on the
> edge).
I disagree here. The core of the action - the abstraction of the action 
method itself and its availability in the current state - is business 
logic IMO. The same goes for any value the action may have: checked, or 
perhaps some other value. The action logically bundles state (the 
availability of an action) with the action itself.

The decoration around it - the user visible strings, icons and whatnot - 
is indeed UI logic. That's why I think that perhaps we conceptually need 
something like a CoreAction and a UiAction. The UiAction would 
'decorate' a CoreAction with the stuff that is needed to represent it in 
a UI. The implementation of the UiAction part would be different for QML 
and Widgets, I think.

Actions are a very powerful piece of glue between business and UI logic 
if used this way.

André



More information about the Development mailing list