[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