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.
f649207Pawel Stolowski
plugins/Unity/preview.cpp+5−6
@@ -69,21 +69,20 @@ QString Preview::subtitle () const
69 return "";
69 return "";
70}
70}
71
71
72−QVariantList Preview::actions()
72+QVariant Preview::actions()
73{
73{
74− QVariantList alist;
74+ QList<QObject *> alist;
75 if (m_unityPreview) {
75 if (m_unityPreview) {
76 for (auto unityAction: m_unityPreview->GetActions()) {
76 for (auto unityAction: m_unityPreview->GetActions()) {
77 auto action = new PreviewAction(this); // preview is the owner of actions
77 auto action = new PreviewAction(this); // preview is the owner of actions
78 action->setUnityAction(unityAction);
78 action->setUnityAction(unityAction);
79− QVariant v;
80− v.setValue(action);
81− alist.append(v);
79+ alist.append(action);
82 }
80 }
83 } else {
81 } else {
84 qWarning() << "Preview not set";
82 qWarning() << "Preview not set";
85 }
83 }
84+
86− return alist;
85+ return QVariant::fromValue(alist);
87}
86}
88
87
89Preview* Preview::newFromUnityPreview(unity::dash::Preview::Ptr unityPreview)
88Preview* Preview::newFromUnityPreview(unity::dash::Preview::Ptr unityPreview)
plugins/Unity/preview.h+3−4
@@ -38,7 +38,7 @@ class Preview : public QObject
38 Q_PROPERTY(QString rendererName READ rendererName NOTIFY rendererNameChanged)
38 Q_PROPERTY(QString rendererName READ rendererName NOTIFY rendererNameChanged)
39 Q_PROPERTY(QString title READ title NOTIFY titleChanged)
39 Q_PROPERTY(QString title READ title NOTIFY titleChanged)
40 Q_PROPERTY(QString subtitle READ subtitle NOTIFY subtitleChanged)
40 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)
42
42
43public:
43public:
44 explicit Preview(QObject *parent = 0);
44 explicit Preview(QObject *parent = 0);
@@ -47,10 +47,9 @@ public:
47 QString rendererName() const;
47 QString rendererName() const;
48 QString title() const;
48 QString title() const;
49 QString subtitle () const;
49 QString subtitle () const;
50− QVariantList actions();
50+ QVariant actions();
51
51
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);
54
53
55Q_SIGNALS:
54Q_SIGNALS:
56 void rendererNameChanged();
55 void rendererNameChanged();
plugins/Unity/previewaction.cpp−4
@@ -70,7 +70,3 @@ LayoutHint PreviewAction::layoutHint() const
70 return static_cast<LayoutHint>(m_unityAction->layout_hint);
70 return static_cast<LayoutHint>(m_unityAction->layout_hint);
71 return LayoutHint::None;
71 return LayoutHint::None;
72}
72}
73−
74−void PreviewAction::execute(const QHash<QString, QVariant>& hints)
75−{
76−}
plugins/Unity/previewaction.h−5
@@ -58,16 +58,11 @@ public:
58 QString activationUri() const;
58 QString activationUri() const;
59 LayoutHint layoutHint() const;
59 LayoutHint layoutHint() const;
60
60
61−public Q_SLOTS:
62− void execute(const QHash<QString, QVariant>& hints);
63−
64private:
61private:
65 unity::dash::Preview::ActionPtr m_unityAction;
62 unity::dash::Preview::ActionPtr m_unityAction;
66};
63};
67
64
68−//typedef QList<PreviewAction *> PreviewActionList;
69Q_DECLARE_METATYPE(PreviewAction *)
65Q_DECLARE_METATYPE(PreviewAction *)
70−//Q_DECLARE_METATYPE(PreviewActionList *)
71Q_DECLARE_METATYPE(LayoutHint)
66Q_DECLARE_METATYPE(LayoutHint)
72
67
73#endif
68#endif