on xenial help sign in
MenuItemFactory: activate item on calendar selection change

This informs the indicator-datetime to update the list of the upcoming events (LP: #1541125) Approved by: Lukáš Tinkl

commit323634e6ea1af868fd6ea6acf1c9f92f492e90e5 authorMarco Trevisan (Treviño) <mail@3v1n0.net> dateThu 27 Oct 2016, 12:31 (10 years ago) parentbc584a734c242e
4 files changed+31−8
debian/control+3−3 plugins/Unity/Indicators/modelprinter.cpp+19−4 plugins/Unity/Indicators/modelprinter.h+2−1 qml/Panel/Indicators/MenuItemFactory.qml+7
debian/control+3−3
@@ -28,7 +28,7 @@ Build-Depends: cmake,
2828 libpam0g-dev,
2929 libpay2-dev,
3030 libpulse-dev,
31− libqmenumodel-dev (>= 0.2.9),
31+ libqmenumodel-dev (>= 0.2.10),
3232 libqt5svg5-dev,
3333 libqt5xmlpatterns5-dev,
3434 libsystemsettings-dev,
@@ -79,7 +79,7 @@ X-Ubuntu-Use-Langpack: yes
7979
8080Package: indicators-client
8181Architecture: any
82−Depends: qmenumodel-qml (>= 0.2.9),
82+Depends: qmenumodel-qml (>= 0.2.10),
8383 qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
8484 unity8 (= ${binary:Version}),
8585 ${misc:Depends},
@@ -118,7 +118,7 @@ Depends: dmz-cursor-theme,
118118 gsettings-desktop-schemas,
119119 libcap2-bin,
120120 libglib2.0-bin,
121− qmenumodel-qml (>= 0.2.9),
121+ qmenumodel-qml (>= 0.2.10),
122122 qml-module-biometryd,
123123 qml-module-qt-labs-folderlistmodel,
124124 qml-module-qtquick-xmllistmodel,
plugins/Unity/Indicators/modelprinter.cpp+19−4
@@ -105,12 +105,25 @@ QString ModelPrinter::getRowSring(UnityMenuModel* sourceModel, int row, int dept
105105
106106 Q_FOREACH(int role, roles) {
107107 const QByteArray& roleName = roleNames[role];
108− stream << tabify(depth) << getVariantString(roleName, sourceModel->get(row, roleName));
108+ stream << getVariantString(roleName, sourceModel->get(row, roleName), depth);
109109 }
110110 return str;
111111}
112112
113−QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &vData) const
113+QString ModelPrinter::getVariantString(const QVariant& vData) const
114+{
115+ if (vData.type() == QVariant::List) {
116+ QStringList strList;
117+ for (const auto& v : vData.toList())
118+ strList.append(getVariantString(v));
119+
120+ return '[' + strList.join(", ") + ']';
121+ }
122+
123+ return vData.toString();
124+}
125+
126+QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &vData, int depth) const
114127{
115128 QString str;
116129 QTextStream stream(&str);
@@ -119,18 +132,20 @@ QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &
119132 QMapIterator<QString, QVariant> iter(vData.toMap());
120133 while (iter.hasNext()) {
121134 iter.next();
135+ stream << tabify(depth);
122136 stream << roleName
123137 << "."
124138 << iter.key()
125139 << ": "
126− << iter.value().toString()
140+ << getVariantString(iter.value())
127141 << endl;
128142 }
129143 }
130144 else {
145+ stream << tabify(depth);
131146 stream << roleName
132147 << ": "
133− << vData.toString()
148+ << getVariantString(vData)
134149 << endl;
135150 }
136151 return str;
plugins/Unity/Indicators/modelprinter.h+2−1
@@ -46,7 +46,8 @@ Q_SIGNALS:
4646private:
4747 QString getModelDataString(UnityMenuModel* sourceModel, int level);
4848 QString getRowSring(UnityMenuModel* sourceModel, int index, int depth) const;
49− QString getVariantString(const QString& roleName, const QVariant &vData) const;
49+ QString getVariantString(const QString& roleName, const QVariant &vData, int depth) const;
50+ QString getVariantString(const QVariant&) const;
5051
5152 UnityMenuModel* m_model;
5253 QList<UnityMenuModel*> m_children;
qml/Panel/Indicators/MenuItemFactory.qml+7
@@ -508,6 +508,13 @@ Item {
508508 objectName: "calendarMenu"
509509 highlightWhenPressed: false
510510 focus: true
511+
512+ property var menuModel: menuFactory.menuModel
513+ property int menuIndex: -1
514+
515+ onSelectedDateChanged: {
516+ menuModel.activate(menuIndex, selectedDate.getTime() / 1000 | 0)
517+ }
511518 }
512519 }
513520