[Development] Request for sandbox area: QQSM

Volker Krause volker.krause at kdab.com
Mon Jun 23 13:24:05 CEST 2014


Hi,

On Monday 23 June 2014 09:30:23 Turunen Tuukka wrote:
> The CLA is now in place and you are able to proceed with the contributions.

great news!

> Based on the discussions at QtCS and the mailing lists, what was seen as the
> best approach for the repositories? A new playground project for both QQSM
> and Replicant?

Based on the suggestions we got at QtCS we would like to try to get QQSM 
directly into qtdeclarative. It's a fairly small plugin as it's basically just 
QML API for the existing QStateMachine classes, and we are further reducing it
by improving the Q_PROPERTY interface of QStateMachine in QtCore directly 
(three patches for that are on Gerrit already, awaiting review).

regards,
Volker



> From: Tuukka Turunen
> <tuukka.turunen at digia.com<mailto:tuukka.turunen at digia.com>> Date: Monday 2
> June 2014 09:55
> To: "Stottlemyer, Brett (B.S.)"
> <bstottle at ford.com<mailto:bstottle at ford.com>>,
> "development at qt-project.org<mailto:development at qt-project.org>"
> <development at qt-project.org<mailto:development at qt-project.org>> Subject:
> Re: [Development] Request for sandbox area: QQSM
> 
> 
> Hi Brett,
> 
> Thank you for the initiative. I also think there is indeed a lot of
> unleashed potential in the Qt State Machine Framework for such applications
> that benefit from having a solid state machine based development approach.
> Qt State Machine Framework  is not yet hooked into the Qt Quick world, so
> also from that viewpoint your proposal looks good. Whether it is the right
> approach to hook into Qt Quick will be found out when the detailed
> discussions and reviews are done.
> 
> Making a playground project for QQSM would be a good first step. However,
> the CLA needs to be signed prior to you being able to contribute the code.
> You can find the Corporate CLA, accepted by other companies contributing to
> Qt, at:
> https://qt-project.org/legal/Corporate_QtContributionLicenseAgreement.pdf.
> If you can get it signed before  the Qt Contributor Summit, it would make
> it easier to discuss the details about QQSM.
> 
> Looking forward in seeing you in Berlin.
> 
> Yours,
> 
> --
> 
> Tuukka Turunen
> Director, R&D
> Digia, Qt
> 
> Address: Piippukatu 11, 40100 Jyväskylä, FINLAND
> Email: tuukka.turunen at digia.com<mailto:tuukka.turunen at digia.com>
> Mobile: + 358 40 7655 800
> 
> Qt Website: http://qt.digia.com<http://qt.digia.com/>
> Qt Blog: http://blog.qt.digia.com<http://blog.qt.digia.com/>
> Qt Project: http://www.qt-project.org<http://www.qt-project.org/>
> 
> ------------------------------------------------------------------
> PRIVACY AND CONFIDENTIALITY NOTICE
> This message and any attachments are intended only for use by the named
> addressee and may contain privileged and/or confidential information. If
> you are not the named addressee you should not disseminate, copy or take
> any action in reliance on it. If you have received this message in error,
> please contact the sender immediately and delete the message and any
> attachments accompanying it. Digia Plc does not accept liability for any
> corruption, interception, amendment, tampering or viruses occurring to this
> message. ------------------------------------------------------------------
> 
> From: <Stottlemyer>, "Brett (B.S.)"
> <bstottle at ford.com<mailto:bstottle at ford.com>> Date: Saturday 31 May 2014
> 01:14
> To: "development at qt-project.org<mailto:development at qt-project.org>"
> <development at qt-project.org<mailto:development at qt-project.org>> Subject:
> [Development] Request for sandbox area: QQSM
> 
> Hi list,
> 
> My name is Brett Stottlemyer.  I work for Ford Motor Company, and Ford has
> graciously agreed to let us contribute some of the cool stuff we’ve
> developed back to Qt.  We aren’t quite done with everything yet (still
> waiting on the Corporate CLA), but I will be at Qt Contributors Summit in a
> week and a half to discuss this and a 2nd project, and answer (hopefully a
> bunch) of good questions.
> 
> I’d like to officially request a sandbox for: QQSM
> 
> What is it?
> QQSM is the Qt QML State Machine.  Simply put, it is a QML module to allow
> you to create Qt State Machine Framework instances via the QML engine.
> 
> What need does this module solve?
> QQSM makes it a lot easier to create state machines.  You get all of the
> benefits of the maturity of Qt's State Machine Framework, the ability to
> introspect/debug the machine with tools like gammaray, but with a
> simplified syntax and QML's runtime bindings.  An example of the
> simplification?  A guard condition for a transition can use QML/javascript
> and use signal parameters in deciding whether to trigger a transition –
> entirely in QML markup.
> 
> Detailed description
> QQSM is basically a Domain Specific Language (in QML) for simplified
> descriptions of State Machines.  While the C++ State Machine Framework is
> complete, it requires a lot of boilerplate code.  The examples I've seen
> have created numerous QSignalTransition derived classes, one for each
> boolean condition required to test for a transition.
> 
> While QML already has a State type, this is not a complete, deterministic
> state machine.  This is an overly simplified state machine, in that it
> provides little in terms of error checking or nested states.
> 
> The proposed QQSM module, on the other hand, provides BasicState (to not
> conflict with existing State type), HistoryState and FinalState, plus
> StateMachine, SignalTransition and TimeoutTransition types.  The benefit of
> QML for State Machines is much more than just having to write less code,
> though.  Two features of the QML engine are runtime processing of scripted
> code, and dynamic Signal/Slot connections.  Since all SignalTransition
> classes provide a boolean result for eventTest(), a single C++
> implementation was created that uses a boolean property ("guard") for the
> eventTest result.  This allows any QML/Javascript expression that resolves
> to a boolean to be used.  The dynamic connections make is easy to bind
> onEntry and onExit signals to non-state machine QObjects.
> 
> The end result is an environment that allows State Machines to be developed
> rapidly and succinctly.
> 
> Hope you like the idea, and approve the sandbox area.
> 
> Looking forward to your thoughts!
> 
> Sincerely,
> Brett Stottlemyer
> Ford Motor Company

-- 
Volker Krause | volker.krause at kdab.com | Senior Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4840 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20140623/71339f54/attachment.bin>


More information about the Development mailing list