[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-panel-devel
Subject: Re: QActions in QML
From: Kevin Krammer <krammer () kde ! org>
Date: 2012-10-30 15:35:14
Message-ID: 201210301635.22776.krammer () kde ! org
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
On Tuesday, 2012-10-30, Sebastian Kügler wrote:
> On Tuesday, October 30, 2012 16:01:37 Kevin Krammer wrote:
> > In any case, I am curious what the use case of triggering a UI action is?
> > I mean any imperative portion of the QML could just invoke the script
> > function the action's onTriggered is calling, no?
>
> In Plasma Desktop, we have pluggable actions, which exist as QActions for
> example in Corona (think of "Lock widgets", "Add Widgets", "Activities",
> etc.).
>
> In order to do a fully functional containment (and toolbox) in QML, we need
> access to these actions, and we need to be able to trigger them. So,
> basically a QML button receives an action object from the C++ side and is
> able to call trigger on it when the button is clicked. The trigger()
> function in this case is not scripted, but lives "somewhere else".
Ah, now it makes sense :)
Just like plugging an action into a QMenu, QToolBar or setting it as a default
action on a QToolButton.
Since trigger() is a slot, the QML runtime should not need anymore information
than the thing being a QObject instance.
E.g. if you make any QObject available to the QML runtime by calling
setContextProperty() on a declarative context, the QML code can invoke any of
the object's slots no matter which subclass it is.
So the same thing should apply here as well I think.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
["signature.asc" (application/pgp-signature)]
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic