on xenial help sign in
indicator title moved to root action state
commit09cdf79108975c950ccdb20fbf8482e8ef1ac5ef authorNick Dedekind <nicholas.dedekind@gmail.com> dateTue 17 Sep 2013, 13:31 (13 years ago) parent6a74c57
13 files changed+44−53
Panel/Indicators/DefaultIndicatorWidget2.qml+6−6 Panel/MenuContent.qml+7−1 plugins/Unity/Indicators/indicators.h−2 plugins/Unity/Indicators/indicatorsmodel.cpp−8 plugins/Unity/Indicators/qml/IndicatorBase.qml+5−1 plugins/Unity/Indicators/qml/IndicatorPage.qml+1 plugins/Unity/Indicators/qml/IndicatorWidget.qml−5 plugins/Unity/Indicators/rootactionstate.cpp+7−1 plugins/Unity/Indicators/rootactionstate.h+3 plugins/Unity/Indicators/visibleindicatorsmodel.cpp−2 tests/mocks/Unity/Indicators/IndicatorsModel.qml+5−15 tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp+7−9 tests/qmltests/Panel/tst_IndicatorRow.qml+3−3
Panel/Indicators/DefaultIndicatorWidget2.qml+6−6
@@ -86,8 +86,8 @@ Indicators.IndicatorWidget {
8686 }
8787 }
8888
89− onActionStateChanged: {
90− if (actionState == undefined) {
89+ onRootActionStateChanged: {
90+ if (rootActionState == undefined) {
9191 leftLabel = "";
9292 rightLabel = "";
9393 icons = undefined;
@@ -95,9 +95,9 @@ Indicators.IndicatorWidget {
9595 return;
9696 }
9797
98− leftLabel = actionState.leftLabel ? actionState.leftLabel : "";
99− rightLabel = actionState.rightLabel ? actionState.rightLabel : "";
100− icons = actionState.icons;
101− enabled = actionState.visible;
98+ leftLabel = rootActionState.leftLabel ? rootActionState.leftLabel : "";
99+ rightLabel = rootActionState.rightLabel ? rootActionState.rightLabel : "";
100+ icons = rootActionState.icons;
101+ enabled = rootActionState.visible;
102102 }
103103}
Panel/MenuContent.qml+7−1
@@ -100,10 +100,10 @@ MainView {
100100 Tab {
101101 id: tab
102102 objectName: model.identifier
103− title: model.title
104103
105104 page: Page {
106105 Loader {
106+ id: loader
107107 clip: true
108108 anchors.fill: parent
109109 source: pageSource
@@ -136,6 +136,12 @@ MainView {
136136 item.start()
137137 }
138138 }
139+
140+ Binding {
141+ target: tab
142+ property: "title"
143+ value: loader.item && loader.item.hasOwnProperty("title") && loader.item.title !== "" ? loader.item.title : model.identifier
144+ }
139145 }
140146 }
141147 }
plugins/Unity/Indicators/indicators.h−2
@@ -74,8 +74,6 @@ public:
7474 enum Roles {
7575 Identifier = 0,
7676 Position,
77− Title,
78− Description,
7977 WidgetSource,
8078 PageSource,
8179 IndicatorProperties,
plugins/Unity/Indicators/indicatorsmodel.cpp−8
@@ -201,8 +201,6 @@ QHash<int, QByteArray> IndicatorsModel::roleNames() const
201201 {
202202 roles[IndicatorsModelRole::Identifier] = "identifier";
203203 roles[IndicatorsModelRole::Position] = "position";
204− roles[IndicatorsModelRole::Title] = "title";
205− roles[IndicatorsModelRole::Description] = "description";
206204 roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
207205 roles[IndicatorsModelRole::PageSource] = "pageSource";
208206 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
@@ -223,10 +221,6 @@ QVariant IndicatorsModel::defaultData(Indicator::Ptr indicator, int role)
223221 {
224222 case IndicatorsModelRole::Position:
225223 return 0;
226− case IndicatorsModelRole::Title:
227− return indicator ? indicator->identifier() : "Unknown";
228− case IndicatorsModelRole::Description:
229− return "";
230224 case IndicatorsModelRole::WidgetSource:
231225 return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorWidget2.qml";
232226 case IndicatorsModelRole::PageSource:
@@ -268,8 +262,6 @@ QVariant IndicatorsModel::data(const QModelIndex &index, int role) const
268262 return QVariant(indicator->indicatorProperties());
269263 }
270264 break;
271− case IndicatorsModelRole::Title:
272− case IndicatorsModelRole::Description:
273265 case IndicatorsModelRole::WidgetSource:
274266 case IndicatorsModelRole::PageSource:
275267 return indicatorData(indicator, role);
plugins/Unity/Indicators/qml/IndicatorBase.qml+5−1
@@ -27,7 +27,6 @@ Item {
2727 enabled: menuObjectPaths.hasOwnProperty(device)
2828
2929 //const
30− property string title
3130 property string busName
3231 property string actionsObjectPath
3332 property var menuObjectPaths: undefined
@@ -45,4 +44,9 @@ Item {
4544 actionsObjectPath: active ? indicatorItem.actionsObjectPath : ""
4645 menuObjectPath: active ? indicatorItem.deviceMenuObjectPath : ""
4746 }
47+
48+ property var rootActionState: Indicators.RootActionState {
49+ menu: menuModel
50+ onUpdated: indicatorItem.rootActionStateChanged()
51+ }
4852}
plugins/Unity/Indicators/qml/IndicatorPage.qml+1
@@ -26,6 +26,7 @@ IndicatorBase {
2626 id: main
2727
2828 //const
29+ property string title: rootActionState.title
2930 property alias emptyText: emptyLabel.text
3031 property alias highlightFollowsCurrentItem : mainMenu.highlightFollowsCurrentItem
3132
plugins/Unity/Indicators/qml/IndicatorWidget.qml−5
@@ -26,9 +26,4 @@ IndicatorBase {
2626 active: true
2727 enabled: false
2828 property int iconSize: height - units.gu(0.5)
29−
30− property var actionState: Indicators.RootActionState {
31− menu: menuModel
32− onUpdated: indicatorWidget.actionStateChanged()
33− }
3429}
plugins/Unity/Indicators/rootactionstate.cpp+7−1
@@ -102,12 +102,18 @@ void RootActionState::updateActionState()
102102 Q_EMIT updated();
103103}
104104
105−
106105bool RootActionState::isValid() const
107106{
108107 return m_menu && m_menu->rowCount() > 0;
109108}
110109
110+QString RootActionState::title() const
111+{
112+ if (!isValid()) return QString();
113+
114+ return m_cachedState.value("title", QVariant::fromValue(QString())).toString();
115+}
116+
111117QString RootActionState::leftLabel() const
112118{
113119 if (!isValid()) return QString();
plugins/Unity/Indicators/rootactionstate.h+3
@@ -32,6 +32,7 @@ class UNITYINDICATORS_EXPORT RootActionState : public ActionStateParser
3232 Q_PROPERTY(UnityMenuModel* menu READ menu WRITE setMenu NOTIFY menuChanged)
3333
3434 Q_PROPERTY(bool valid READ isValid NOTIFY validChanged)
35+ Q_PROPERTY(QString title READ title NOTIFY titleChanged)
3536 Q_PROPERTY(QString leftLabel READ leftLabel NOTIFY leftLabelChanged)
3637 Q_PROPERTY(QString rightLabel READ rightLabel NOTIFY rightLabelChanged)
3738 Q_PROPERTY(QStringList icons READ icons NOTIFY iconsChanged)
@@ -48,6 +49,7 @@ public:
4849 void setIndex(int index);
4950
5051 bool isValid() const;
52+ QString title() const;
5153 QString leftLabel() const;
5254 QString rightLabel() const;
5355 QStringList icons() const;
@@ -64,6 +66,7 @@ Q_SIGNALS:
6466 void indexChanged();
6567
6668 void validChanged();
69+ void titleChanged();
6770 void leftLabelChanged();
6871 void rightLabelChanged();
6972 void iconsChanged();
plugins/Unity/Indicators/visibleindicatorsmodel.cpp−2
@@ -33,8 +33,6 @@ QHash<int, QByteArray> VisibleIndicatorsModel::roleNames() const
3333 {
3434 roles[IndicatorsModelRole::Identifier] = "identifier";
3535 roles[IndicatorsModelRole::Position] = "position";
36− roles[IndicatorsModelRole::Title] = "title";
37− roles[IndicatorsModelRole::Description] = "description";
3836 roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
3937 roles[IndicatorsModelRole::PageSource] = "pageSource";
4038 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
tests/mocks/Unity/Indicators/IndicatorsModel.qml+5−15
@@ -28,45 +28,35 @@ ListModel {
2828 // which throws off the filter for non-visible indicators.
2929 Component.onCompleted: {
3030 append({ "identifier": "indicator-fake1",
31− "priority": 0,
32− "title": "Menu1",
33− "description": "",
31+ "position": 0,
3432 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget1.qml",
3533 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page1.qml",
3634 "indicatorProperties": ""
3735 });
3836
3937 append({ "identifier": "indicator-fake2",
40− "priority": 1,
41− "title": "Menu2",
42− "description": "",
38+ "position": 1,
4339 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget2.qml",
4440 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page2.qml",
4541 "indicatorProperties": ""
4642 });
4743
4844 append({ "identifier": "indicator-fake3",
49− "priority": 2,
50− "title": "Menu3",
51− "description": "",
45+ "position": 2,
5246 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget3.qml",
5347 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page3.qml",
5448 "indicatorProperties": ""
5549 });
5650
5751 append({ "identifier": "indicator-fake4",
58− "priority": 3,
59− "title": "Menu4",
60− "description": "",
52+ "position": 3,
6153 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget4.qml",
6254 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page4.qml",
6355 "indicatorProperties": ""
6456 });
6557
6658 append({ "identifier": "indicator-fake5",
67− "priority": 4,
68− "title": "Menu5",
69− "description": "",
59+ "position": 4,
7060 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget5.qml",
7161 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page5.qml",
7262 "indicatorProperties": ""
tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp+7−9
@@ -66,14 +66,12 @@ private Q_SLOTS:
6666 {
6767 // Priority order. (2, 1, 4, 3)
6868 QVariantMap map;
69− QVariantMap map1; map1["title"] = "fake1";
70− QVariantMap map2; map2["title"] = "fake2";
71− QVariantMap map3; map3["title"] = "fake3";
72− QVariantMap map4; map4["title"] = "fake4";
69+ QVariantMap map1; map1["widgetSource"] = "fake1.qml";
70+ QVariantMap map2; map2["widgetSource"] = "fake2.qml";
71+ QVariantMap map3; map3["widgetSource"] = "fake3.qml";
7372 map["indicator-fake1"] = map1;
7473 map["indicator-fake2"] = map2;
7574 map["indicator-fake3"] = map3;
76− map["indicator-fake4"] = map4;
7775
7876 IndicatorsModel model;
7977 model.setIndicatorData(map);
@@ -83,24 +81,24 @@ private Q_SLOTS:
8381 // fake3, fake4, fake1, fake2
8482
8583 QCOMPARE(model.data(0, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake3"));
86− QCOMPARE(model.data(0, IndicatorsModelRole::Title).toString(), QString("fake3"));
8784 QCOMPARE(model.data(0, IndicatorsModelRole::Position).toInt(), 3);
8885 QCOMPARE(model.data(0, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake3"));
86+ QCOMPARE(model.data(0, IndicatorsModelRole::WidgetSource).toString(), QString("fake3.qml"));
8987
9088 QCOMPARE(model.data(1, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake4"));
91− QCOMPARE(model.data(1, IndicatorsModelRole::Title).toString(), QString("fake4"));
9289 QCOMPARE(model.data(1, IndicatorsModelRole::Position).toInt(), 2);
9390 QCOMPARE(model.data(1, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake4"));
91+ QCOMPARE(model.data(1, IndicatorsModelRole::WidgetSource).toString(), shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorWidget2.qml");
9492
9593 QCOMPARE(model.data(2, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake1"));
96− QCOMPARE(model.data(2, IndicatorsModelRole::Title).toString(), QString("fake1"));
9794 QCOMPARE(model.data(2, IndicatorsModelRole::Position).toInt(), 1);
9895 QCOMPARE(model.data(2, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake1"));
96+ QCOMPARE(model.data(2, IndicatorsModelRole::WidgetSource).toString(), QString("fake1.qml"));
9997
10098 QCOMPARE(model.data(3, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake2"));
101− QCOMPARE(model.data(3, IndicatorsModelRole::Title).toString(), QString("fake2"));
10299 QCOMPARE(model.data(3, IndicatorsModelRole::Position).toInt(), 0);
103100 QCOMPARE(model.data(3, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake2"));
101+ QCOMPARE(model.data(3, IndicatorsModelRole::WidgetSource).toString(), QString("fake2.qml"));
104102 }
105103};
106104
tests/qmltests/Panel/tst_IndicatorRow.qml+3−3
@@ -62,13 +62,13 @@ Item {
6262 function test_set_current_item() {
6363 init_test();
6464 indicatorRow.setCurrentItem(0);
65− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).title, "Menu1", "Incorrect item at position 0");
65+ compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake1", "Incorrect item at position 0");
6666
6767 indicatorRow.setCurrentItem(1);
68− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).title, "Menu2", "Incorrect item at position 1");
68+ compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake2", "Incorrect item at position 1");
6969
7070 indicatorRow.setCurrentItem(2);
71− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).title, "Menu3", "Incorrect item at position 2");
71+ compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake3", "Incorrect item at position 2");
7272 }
7373 }
7474