on xenial help sign in
Changed Preview::actions() to return QVariant, which is the QList<QObject *> and contains action objects; this works as a model in QML.
commitf649207beebf4088424d1d5f15c6006d8b495979 authorPawel Stolowski <pawel.stolowski@canonical.com> dateWed 26 Jun 2013, 18:06 (13 years ago) parent1e5f741
4 files changed+8−19
plugins/Unity/preview.cpp+5−6 plugins/Unity/preview.h+3−4 plugins/Unity/previewaction.cpp−4 plugins/Unity/previewaction.h−5
plugins/Unity/preview.cpp+5−6
@@ -69,21 +69,20 @@ QString Preview::subtitle () const
6969 return "";
7070}
7171
72−QVariantList Preview::actions()
72+QVariant Preview::actions()
7373{
74− QVariantList alist;
74+ QList<QObject *> alist;
7575 if (m_unityPreview) {
7676 for (auto unityAction: m_unityPreview->GetActions()) {
7777 auto action = new PreviewAction(this); // preview is the owner of actions
7878 action->setUnityAction(unityAction);
79− QVariant v;
80− v.setValue(action);
81− alist.append(v);
79+ alist.append(action);
8280 }
8381 } else {
8482 qWarning() << "Preview not set";
8583 }
86− return alist;
84+
85+ return QVariant::fromValue(alist);
8786}
8887
8988Preview* Preview::newFromUnityPreview(unity::dash::Preview::Ptr unityPreview)
plugins/Unity/preview.h+3−4
@@ -38,7 +38,7 @@ class Preview : public QObject
3838 Q_PROPERTY(QString rendererName READ rendererName NOTIFY rendererNameChanged)
3939 Q_PROPERTY(QString title READ title NOTIFY titleChanged)
4040 Q_PROPERTY(QString subtitle READ subtitle NOTIFY subtitleChanged)
41− Q_PROPERTY(QVariantList actions READ actions NOTIFY actionsChanged)
41+ Q_PROPERTY(QVariant actions READ actions NOTIFY actionsChanged)
4242
4343public:
4444 explicit Preview(QObject *parent = 0);
@@ -47,10 +47,9 @@ public:
4747 QString rendererName() const;
4848 QString title() const;
4949 QString subtitle () const;
50− QVariantList actions();
50+ QVariant actions();
5151
52−public Q_SLOTS:
53− void execute(const QString& actionId, const QHash<QString, QVariant>& hints);
52+ Q_INVOKABLE void execute(const QString& actionId, const QHash<QString, QVariant>& hints);
5453
5554Q_SIGNALS:
5655 void rendererNameChanged();
plugins/Unity/previewaction.cpp−4
@@ -70,7 +70,3 @@ LayoutHint PreviewAction::layoutHint() const
7070 return static_cast<LayoutHint>(m_unityAction->layout_hint);
7171 return LayoutHint::None;
7272}
73−
74−void PreviewAction::execute(const QHash<QString, QVariant>& hints)
75−{
76−}
plugins/Unity/previewaction.h−5
@@ -58,16 +58,11 @@ public:
5858 QString activationUri() const;
5959 LayoutHint layoutHint() const;
6060
61−public Q_SLOTS:
62− void execute(const QHash<QString, QVariant>& hints);
63−
6461private:
6562 unity::dash::Preview::ActionPtr m_unityAction;
6663};
6764
68−//typedef QList<PreviewAction *> PreviewActionList;
6965Q_DECLARE_METATYPE(PreviewAction *)
70−//Q_DECLARE_METATYPE(PreviewActionList *)
7166Q_DECLARE_METATYPE(LayoutHint)
7267
7368#endif