on xenial help sign in
Indicator position moved to service files.
commit217e58e49489c27436c3817b4fc8646e35d93efe authorNick Dedekind <nicholas.dedekind@gmail.com> dateFri 9 Aug 2013, 18:30 (13 years ago) parenta90e4a0
16 files changed+65−28
Panel/IndicatorsDataModel.qml−5 plugins/Unity/Indicators/indicator.cpp+16−1 plugins/Unity/Indicators/indicator.h+5 plugins/Unity/Indicators/indicators.h+1−1 plugins/Unity/Indicators/indicatorsmodel.cpp+10−5 src/Panel/Indicators/servicefiles/com.canonical.indicator.battery+1 src/Panel/Indicators/servicefiles/com.canonical.indicator.messages+1 src/Panel/Indicators/servicefiles/com.canonical.indicator.time+1 src/Panel/Indicators/servicefiles/com.canonical.settings.network+1 src/Panel/Indicators/servicefiles/com.canonical.settings.sound+1 tests/data/unity/indicators/com.canonical.indicator.fake1+1 tests/data/unity/indicators/com.canonical.indicator.fake2+1 tests/data/unity/indicators/com.canonical.indicator.fake3+1 tests/data/unity/indicators/com.canonical.indicator.fake4+1 tests/plugins/Unity/Indicators/indicatorsmanagertest.cpp+1 tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp+23−16
Panel/IndicatorsDataModel.qml−5
@@ -30,35 +30,30 @@ Indicators.IndicatorsModel {
3030 'indicator-messaging' : {
3131 'title': 'Messaging',
3232 'description' : '',
33− 'priority': 10,
3433 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/MessagingIndicatorWidget.qml',
3534 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/MessagingIndicatorPage.qml'
3635 },
3736 'indicator-sound' : {
3837 'title': 'Sound',
3938 'description' : '',
40− 'priority': 20,
4139 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/SoundIndicatorWidget.qml',
4240 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage.qml'
4341 },
4442 'indicator-network' : {
4543 'title': 'Networks',
4644 'description' : '',
47− 'priority': 30,
4845 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/NetworkIndicatorWidget.qml',
4946 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/NetworkIndicatorPage.qml'
5047 },
5148 'indicator-battery' : {
5249 'title': 'Battery',
5350 'description' : '',
54− 'priority': 40,
5551 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget.qml',
5652 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage.qml'
5753 },
5854 'indicator-time' : {
5955 'title': 'Date and Time',
6056 'description' : '',
61− 'priority': 100,
6257 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DatetimeIndicatorWidget.qml',
6358 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DatetimeIndicatorPage.qml'
6459 }
plugins/Unity/Indicators/indicator.cpp+16−1
@@ -22,7 +22,8 @@
2222#include <QStringList>
2323
2424Indicator::Indicator(QObject *parent)
25− : QObject(parent)
25+ : QObject(parent),
26+ m_position(0)
2627{
2728}
2829
@@ -33,6 +34,7 @@ Indicator::~Indicator()
3334void Indicator::init(const QString& busName, const QSettings& settings)
3435{
3536 setId(settings.value("Indicator Service/Name").toString());
37+ setPosition(settings.value("Indicator Service/Position", QVariant::fromValue(0)).toInt());
3638
3739 QString actionObjectPath = settings.value("Indicator Service/ObjectPath").toString();
3840
@@ -72,6 +74,19 @@ void Indicator::setId(const QString &identifier)
7274 }
7375}
7476
77+int Indicator::position() const
78+{
79+ return m_position;
80+}
81+
82+void Indicator::setPosition(int position)
83+{
84+ if (position != m_position) {
85+ m_position = position;
86+ Q_EMIT positionChanged(m_position);
87+ }
88+}
89+
7590
7691QVariant Indicator::indicatorProperties() const
7792{
plugins/Unity/Indicators/indicator.h+5
@@ -30,6 +30,7 @@ class UNITYINDICATORS_EXPORT Indicator : public QObject
3030{
3131 Q_OBJECT
3232 Q_PROPERTY(QString identifier READ identifier NOTIFY identifierChanged)
33+ Q_PROPERTY(int position READ position NOTIFY positionChanged)
3334 Q_PROPERTY(QVariant indicatorProperties READ indicatorProperties NOTIFY indicatorPropertiesChanged)
3435
3536public:
@@ -41,18 +42,22 @@ public:
4142 void init(const QString& busName, const QSettings& settings);
4243
4344 QString identifier() const;
45+ int position() const;
4446 QVariant indicatorProperties() const;
4547
4648Q_SIGNALS:
4749 void identifierChanged(const QString &identifier);
50+ void positionChanged(int position);
4851 void indicatorPropertiesChanged(const QVariant &properties);
4952
5053protected:
5154 void setId(const QString &id);
55+ void setPosition(int position);
5256 void setIndicatorProperties(const QVariant &properties);
5357
5458private:
5559 QString m_identifier;
60+ int m_position;
5661 QVariant m_properties;
5762};
5863
plugins/Unity/Indicators/indicators.h+1−1
@@ -73,7 +73,7 @@ public:
7373 Q_ENUMS(Roles)
7474 enum Roles {
7575 Identifier = 0,
76− Priority,
76+ Position,
7777 Title,
7878 Description,
7979 WidgetSource,
plugins/Unity/Indicators/indicatorsmodel.cpp+10−5
@@ -118,8 +118,8 @@ void IndicatorsModel::onIndicatorLoaded(const QString& indicator_name)
118118 int pos = 0;
119119 while (pos < count())
120120 {
121− // keep going while the existing priority is less.
122− if (indicatorData(indicator, IndicatorsModelRole::Priority).toInt() < data(index(pos), IndicatorsModelRole::Priority).toInt())
121+ // keep going while the existing position is greater. (put lower position on end)
122+ if (indicator->position() >= data(index(pos), IndicatorsModelRole::Position).toInt())
123123 break;
124124 pos++;
125125 }
@@ -200,7 +200,7 @@ QHash<int, QByteArray> IndicatorsModel::roleNames() const
200200 if (roles.isEmpty())
201201 {
202202 roles[IndicatorsModelRole::Identifier] = "identifier";
203− roles[IndicatorsModelRole::Priority] = "priority";
203+ roles[IndicatorsModelRole::Position] = "position";
204204 roles[IndicatorsModelRole::Title] = "title";
205205 roles[IndicatorsModelRole::Description] = "description";
206206 roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
@@ -222,7 +222,7 @@ QVariant IndicatorsModel::defaultData(Indicator::Ptr indicator, int role)
222222{
223223 switch (role)
224224 {
225− case IndicatorsModelRole::Priority:
225+ case IndicatorsModelRole::Position:
226226 return 0;
227227 case IndicatorsModelRole::Title:
228228 return indicator ? indicator->identifier() : "Unknown";
@@ -257,6 +257,12 @@ QVariant IndicatorsModel::data(const QModelIndex &index, int role) const
257257 return QVariant(indicator->identifier());
258258 }
259259 break;
260+ case IndicatorsModelRole::Position:
261+ if (indicator)
262+ {
263+ return QVariant(indicator->position());
264+ }
265+ break;
260266 case IndicatorsModelRole::IndicatorProperties:
261267 if (indicator)
262268 {
@@ -265,7 +271,6 @@ QVariant IndicatorsModel::data(const QModelIndex &index, int role) const
265271 break;
266272 case IndicatorsModelRole::IsValid:
267273 return (indicator ? true : false);
268− case IndicatorsModelRole::Priority:
269274 case IndicatorsModelRole::Title:
270275 case IndicatorsModelRole::Description:
271276 case IndicatorsModelRole::WidgetSource:
src/Panel/Indicators/servicefiles/com.canonical.indicator.battery+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-battery
33ObjectPath=/com/canonical/indicator/battery
4+Position=40
45
56[phone]
67ObjectPath=/com/canonical/indicator/battery/phone
src/Panel/Indicators/servicefiles/com.canonical.indicator.messages+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-messaging
33ObjectPath=/com/canonical/indicator/messages
4+Position=50
45
56[phone]
67ObjectPath=/com/canonical/indicator/messages/phone
src/Panel/Indicators/servicefiles/com.canonical.indicator.time+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-time
33ObjectPath=/com/canonical/indicator/time
4+Position=20
45
56[phone]
67ObjectPath=/com/canonical/indicator/time/phone
src/Panel/Indicators/servicefiles/com.canonical.settings.network+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-network
33ObjectPath=/com/canonical/settings/network
4+Position=69
45
56[phone]
67ObjectPath=/com/canonical/settings/network/phone
src/Panel/Indicators/servicefiles/com.canonical.settings.sound+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-sound
33ObjectPath=/com/canonical/settings/sound
4+Position=30
45
56[phone]
67ObjectPath=/com/canonical/settings/sound/phone
tests/data/unity/indicators/com.canonical.indicator.fake1+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-fake1
33ObjectPath=/com/canonical/indicator/fake1
4+Position=1
45
56[phone]
67ObjectPath=/com/canonical/indicator/fake1/phone
tests/data/unity/indicators/com.canonical.indicator.fake2+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-fake2
33ObjectPath=/com/canonical/indicator/fake2
4+Position=0
45
56[phone]
67ObjectPath=/com/canonical/indicator/fake2/phone
tests/data/unity/indicators/com.canonical.indicator.fake3+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-fake3
33ObjectPath=/com/canonical/indicator/fake3
4+Position=3
45
56[phone]
67ObjectPath=/com/canonical/indicator/fake3/phone
tests/data/unity/indicators/com.canonical.indicator.fake4+1
@@ -1,6 +1,7 @@
11[Indicator Service]
22Name=indicator-fake4
33ObjectPath=/com/canonical/indicator/fake4
4+Position=2
45
56[phone]
67ObjectPath=/com/canonical/indicator/fake4/phone
tests/plugins/Unity/Indicators/indicatorsmanagertest.cpp+1
@@ -72,6 +72,7 @@ private Q_SLOTS:
7272 QVERIFY(indicator ? true : false);
7373
7474 QCOMPARE(indicator->identifier(), QString("indicator-fake1"));
75+ QCOMPARE(indicator->position(), 1);
7576
7677 // Check that the initial properties have been set.
7778 QVariantMap props = indicator->indicatorProperties().toMap();
tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp+23−16
@@ -66,10 +66,10 @@ private Q_SLOTS:
6666 {
6767 // Priority order. (2, 1, 4, 3)
6868 QVariantMap map;
69− QVariantMap map1; map1["priority"] = 1; map1["title"] = "fake1";
70− QVariantMap map2; map2["priority"] = 0; map2["title"] = "fake2";
71− QVariantMap map3; map3["priority"] = 3; map3["title"] = "fake3";
72− QVariantMap map4; map4["priority"] = 2; map4["title"] = "fake4";
69+ QVariantMap map1; map1["title"] = "fake1";
70+ QVariantMap map2; map2["title"] = "fake2";
71+ QVariantMap map3; map3["title"] = "fake3";
72+ QVariantMap map4; map4["title"] = "fake4";
7373 map["indicator-fake1"] = map1;
7474 map["indicator-fake2"] = map2;
7575 map["indicator-fake3"] = map3;
@@ -79,21 +79,28 @@ private Q_SLOTS:
7979 model.setIndicatorData(map);
8080 model.load();
8181
82− QCOMPARE(model.data(0, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake2"));
83− QCOMPARE(model.data(0, IndicatorsModelRole::Title).toString(), QString("fake2"));
84− QCOMPARE(model.data(0, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake2"));
82+ // should be in order:
83+ // fake3, fake4, fake1, fake2
8584
86− QCOMPARE(model.data(1, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake1"));
87− QCOMPARE(model.data(1, IndicatorsModelRole::Title).toString(), QString("fake1"));
88− QCOMPARE(model.data(1, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake1"));
85+ QCOMPARE(model.data(0, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake3"));
86+ QCOMPARE(model.data(0, IndicatorsModelRole::Title).toString(), QString("fake3"));
87+ QCOMPARE(model.data(0, IndicatorsModelRole::Position).toInt(), 3);
88+ QCOMPARE(model.data(0, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake3"));
8989
90− QCOMPARE(model.data(2, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake4"));
91− QCOMPARE(model.data(2, IndicatorsModelRole::Title).toString(), QString("fake4"));
92− QCOMPARE(model.data(2, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake4"));
90+ QCOMPARE(model.data(1, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake4"));
91+ QCOMPARE(model.data(1, IndicatorsModelRole::Title).toString(), QString("fake4"));
92+ QCOMPARE(model.data(1, IndicatorsModelRole::Position).toInt(), 2);
93+ QCOMPARE(model.data(1, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake4"));
9394
94− QCOMPARE(model.data(3, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake3"));
95− QCOMPARE(model.data(3, IndicatorsModelRole::Title).toString(), QString("fake3"));
96− QCOMPARE(model.data(3, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake3"));
95+ QCOMPARE(model.data(2, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake1"));
96+ QCOMPARE(model.data(2, IndicatorsModelRole::Title).toString(), QString("fake1"));
97+ QCOMPARE(model.data(2, IndicatorsModelRole::Position).toInt(), 1);
98+ QCOMPARE(model.data(2, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake1"));
99+
100+ QCOMPARE(model.data(3, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake2"));
101+ QCOMPARE(model.data(3, IndicatorsModelRole::Title).toString(), QString("fake2"));
102+ QCOMPARE(model.data(3, IndicatorsModelRole::Position).toInt(), 0);
103+ QCOMPARE(model.data(3, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake2"));
97104 }
98105};
99106