on xenial help sign in
updated to new indicator file format
commitbdfbe6546a14719ee4440c699feb261865bde2f3 authorNick Dedekind <nicholas.dedekind@gmail.com> dateFri 7 Jun 2013, 14:51 (13 years ago) parentfaa9e8d
18 files changed+88−42
Panel/Indicators/NetworkIndicatorPage.qml+2−1 plugins/IndicatorsClient/indicator.cpp+20−5 plugins/IndicatorsClient/indicator.h+1−1 plugins/IndicatorsClient/indicators/CMakeLists.txt+5−5 plugins/IndicatorsClient/indicators/com.canonical.indicator.battery+9 plugins/IndicatorsClient/indicators/com.canonical.indicator.messages+9 plugins/IndicatorsClient/indicators/com.canonical.indicator.time+9 plugins/IndicatorsClient/indicators/com.canonical.settings.network+9 plugins/IndicatorsClient/indicators/com.canonical.settings.sound+9 plugins/IndicatorsClient/indicators/indicator-datetime.indicator−4 plugins/IndicatorsClient/indicators/indicator-messaging.indicator−4 plugins/IndicatorsClient/indicators/indicator-network.indicator−4 plugins/IndicatorsClient/indicators/indicator-power.indicator−4 plugins/IndicatorsClient/indicators/indicator-sound.indicator−4 plugins/IndicatorsClient/indicatorsmanager.cpp+4−4 plugins/IndicatorsClient/qml/IndicatorBase.qml+9−4 plugins/IndicatorsClient/qml/IndicatorIcon.qml+1−1 plugins/IndicatorsClient/qml/IndicatorPage.qml+1−1
Panel/Indicators/NetworkIndicatorPage.qml+2−1
@@ -29,7 +29,8 @@ PageStack {
2929 property alias emptyText: _pluginItem.emptyText
3030 property alias busType: _pluginItem.busType
3131 property alias busName: _pluginItem.busName
32− property alias objectPath: _pluginItem.objectPath
32+ property alias actionsObjectPath : _pluginItem.actionsObjectPath
33+ property alias menuObjectPaths : _pluginItem.menuObjectPaths
3334
3435 __showHeader: false
3536 anchors.fill: parent
plugins/IndicatorsClient/indicator.cpp+20−5
@@ -42,17 +42,32 @@ Indicator::~Indicator()
4242{
4343}
4444
45−void Indicator::init(const QSettings& settings)
45+void Indicator::init(const QString& busName, const QSettings& settings)
4646{
4747 setId(settings.value("Indicator Service/Name").toString());
48− QString dbusService = settings.value("Indicator Service/DBusName").toString();
49− QString objectPath = settings.value("Indicator Service/ObjectPath").toString();
48+
49+ QString actionObjectPath = settings.value("Indicator Service/ObjectPath").toString();
50+
51+ QVariantMap mapMenuObjectPaths;
52+ Q_FOREACH(const QString& childGroup, settings.childGroups())
53+ {
54+ if (childGroup == "Indicator Service")
55+ continue;
56+
57+ QString menuPath = childGroup+"/ObjectPath";
58+ if (settings.contains(menuPath))
59+ {
60+ mapMenuObjectPaths[childGroup] = settings.value(menuPath).toString();
61+ }
62+ }
63+
5064
5165 QVariantMap properties;
5266 properties.clear();
5367 properties.insert("busType", 1);
54− properties.insert("busName", dbusService);
55− properties.insert("objectPath", objectPath);
68+ properties.insert("busName", busName);
69+ properties.insert("actionsObjectPath", actionObjectPath);
70+ properties.insert("menuObjectPaths", mapMenuObjectPaths);
5671 setIndicatorProperties(properties);
5772}
5873
plugins/IndicatorsClient/indicator.h+1−1
@@ -41,7 +41,7 @@ public:
4141 Indicator(QObject *parent = 0);
4242 virtual ~Indicator();
4343
44− void init(const QSettings& settings);
44+ void init(const QString& busName, const QSettings& settings);
4545
4646 QString identifier() const;
4747 QVariant indicatorProperties() const;
plugins/IndicatorsClient/indicators/CMakeLists.txt+5−5
@@ -1,9 +1,9 @@
11set(INDICATOR_FILES
2− ${CMAKE_CURRENT_SOURCE_DIR}/indicator-datetime.indicator
3− ${CMAKE_CURRENT_SOURCE_DIR}/indicator-messaging.indicator
4− ${CMAKE_CURRENT_SOURCE_DIR}/indicator-network.indicator
5− ${CMAKE_CURRENT_SOURCE_DIR}/indicator-power.indicator
6− ${CMAKE_CURRENT_SOURCE_DIR}/indicator-sound.indicator
2+ ${CMAKE_CURRENT_SOURCE_DIR}/com.canonical.indicator.battery
3+ ${CMAKE_CURRENT_SOURCE_DIR}/com.canonical.indicator.messages
4+ ${CMAKE_CURRENT_SOURCE_DIR}/com.canonical.indicator.time
5+ ${CMAKE_CURRENT_SOURCE_DIR}/com.canonical.settings.network
6+ ${CMAKE_CURRENT_SOURCE_DIR}/com.canonical.settings.sound
77)
88
99# copy indicators file into build directory for shadow builds
plugins/IndicatorsClient/indicators/com.canonical.indicator.batterynew file+9
@@ -0,0 +1,9 @@
1+[Indicator Service]
2+Name=indicator-power
3+ObjectPath=/com/canonical/indicator/battery
4+
5+[phone]
6+ObjectPath=/com/canonical/indicator/battery/phone
7+
8+[desktop]
9+ObjectPath=/com/canonical/indicator/battery/phone
plugins/IndicatorsClient/indicators/com.canonical.indicator.messagesnew file+9
@@ -0,0 +1,9 @@
1+[Indicator Service]
2+Name=indicator-messaging
3+ObjectPath=/com/canonical/indicator/messages
4+
5+[phone]
6+ObjectPath=/com/canonical/indicator/messages/phone
7+
8+[desktop]
9+ObjectPath=/com/canonical/indicator/messages/menu
plugins/IndicatorsClient/indicators/com.canonical.indicator.timenew file+9
@@ -0,0 +1,9 @@
1+[Indicator Service]
2+Name=indicator-datetime
3+ObjectPath=/com/canonical/indicator/time
4+
5+[phone]
6+ObjectPath=/com/canonical/indicator/time/phone
7+
8+[desktop]
9+ObjectPath=/com/canonical/indicator/time/desktop
plugins/IndicatorsClient/indicators/com.canonical.settings.networknew file+9
@@ -0,0 +1,9 @@
1+[Indicator Service]
2+Name=indicator-network
3+ObjectPath=/com/canonical/settings/network
4+
5+[phone]
6+ObjectPath=/com/canonical/settings/network/phone
7+
8+[desktop]
9+ObjectPath=/com/canonical/settings/network/desktop
plugins/IndicatorsClient/indicators/com.canonical.settings.soundnew file+9
@@ -0,0 +1,9 @@
1+[Indicator Service]
2+Name=indicator-sound
3+ObjectPath=/com/canonical/settings/sound
4+
5+[phone]
6+ObjectPath=/com/canonical/settings/sound/phone
7+
8+[desktop]
9+ObjectPath=/com/canonical/settings/sound/desktop
plugins/IndicatorsClient/indicators/indicator-datetime.indicatordeleted−4
@@ -1,4 +0,0 @@
1−[Indicator Service]
2−Name=indicator-datetime
3−DBusName=com.canonical.indicator.time
4−ObjectPath=/com/canonical/indicator/time
plugins/IndicatorsClient/indicators/indicator-messaging.indicatordeleted−4
@@ -1,4 +0,0 @@
1−[Indicator Service]
2−Name=indicator-messaging
3−DBusName=com.canonical.indicator.messages
4−ObjectPath=/com/canonical/indicator/messages
plugins/IndicatorsClient/indicators/indicator-network.indicatordeleted−4
@@ -1,4 +0,0 @@
1−[Indicator Service]
2−Name=indicator-network
3−DBusName=com.canonical.settings.network
4−ObjectPath=/com/canonical/settings/network
plugins/IndicatorsClient/indicators/indicator-power.indicatordeleted−4
@@ -1,4 +0,0 @@
1−[Indicator Service]
2−Name=indicator-power
3−DBusName=com.canonical.indicator.battery
4−ObjectPath=/com/canonical/indicator/battery
plugins/IndicatorsClient/indicators/indicator-sound.indicatordeleted−4
@@ -1,4 +0,0 @@
1−[Indicator Service]
2−Name=indicator-sound
3−DBusName=com.canonical.settings.sound
4−ObjectPath=/com/canonical/settings/sound
plugins/IndicatorsClient/indicatorsmanager.cpp+4−4
@@ -100,7 +100,7 @@ void IndicatorsManager::load(const QDir& dir)
100100{
101101 startVerify(dir.canonicalPath());
102102
103− QFileInfoList indicator_files = dir.entryInfoList(QStringList() << "*.indicator", QDir::Files);
103+ QFileInfoList indicator_files = dir.entryInfoList(QStringList(), QDir::Files|QDir::NoDotAndDotDot);
104104 Q_FOREACH(const QFileInfo& indicator_file, indicator_files)
105105 {
106106 load(indicator_file);
@@ -112,8 +112,7 @@ void IndicatorsManager::load(const QDir& dir)
112112void IndicatorsManager::load(const QFileInfo& file_info)
113113{
114114 QSettings indicator_settings(file_info.absoluteFilePath(), QSettings::IniFormat, this);
115− indicator_settings.beginGroup("Indicator Service");
116− QString name = indicator_settings.value("Name").toString();
115+ QString name = indicator_settings.value("Indicator Service/Name").toString();
117116
118117 auto iter = m_indicatorsData.find(name);
119118 if (iter != m_indicatorsData.end())
@@ -256,7 +255,8 @@ Indicator::Ptr IndicatorsManager::indicator(const QString& indicator)
256255 if (plugin)
257256 {
258257 data->m_indicator = plugin;
259− plugin->init(QSettings(data->m_fileInfo.absoluteFilePath(), QSettings::IniFormat, this));
258+ QSettings settings(data->m_fileInfo.absoluteFilePath(), QSettings::IniFormat, this);
259+ plugin->init(data->m_fileInfo.fileName(), settings);
260260 }
261261 return plugin;
262262}
plugins/IndicatorsClient/qml/IndicatorBase.qml+9−4
@@ -28,10 +28,15 @@ Item {
2828
2929 //const
3030 property string title
31− property string device: "phone"
31+ property string device: "desktop"
3232 property int busType
3333 property string busName
34− property string objectPath
34+ property string actionsObjectPath
35+ property var menuObjectPaths : undefined
36+
37+ property string deviceMenuObjectPath : menuObjectPaths.hasOwnProperty(device) ? menuObjectPaths[device] : ""
38+
39+ onDeviceMenuObjectPathChanged: console.log("\n\n" + deviceMenuObjectPath + "\n\n");
3540
3641 signal actionGroupUpdated()
3742 signal modelUpdated()
@@ -39,7 +44,7 @@ Item {
3944 property var actionGroup : QDBusActionGroup {
4045 busType: indicatorItem.busType
4146 busName: indicatorItem.busName
42− objectPath: indicatorItem.objectPath
47+ objectPath: indicatorItem.actionsObjectPath
4348
4449 onActionAppear: indicatorItem.actionGroupUpdated();
4550 }
@@ -47,7 +52,7 @@ Item {
4752 property var proxyModel : IndicatorsClient.FlatMenuProxyModel {
4853 busType: indicatorItem.busType
4954 busName: indicatorItem.busName
50− objectPath: indicatorItem.objectPath + "/" + device
55+ objectPath: indicatorItem.deviceMenuObjectPath
5156
5257 onStatusChanged: indicatorItem.modelUpdated();
5358 onRowsInserted: indicatorItem.modelUpdated();
plugins/IndicatorsClient/qml/IndicatorIcon.qml+1−1
@@ -25,7 +25,7 @@ import Ubuntu.Components.ListItems 0.1 as ListItem
2525IndicatorBase {
2626 id: indicatorIcon
2727 property var action: undefined
28− property bool started: (busType != 0) && (busName != "") && (objectPath != "")
28+ property bool started: (busType != 0) && (busName != "") && (deviceMenuObjectPath != "")
2929 property int iconSize: height - units.gu(0.5)
3030
3131 signal actionStateChanged()
plugins/IndicatorsClient/qml/IndicatorPage.qml+1−1
@@ -184,7 +184,7 @@ IndicatorBase {
184184 }
185185
186186 Component.onCompleted: {
187− if ((busType != 0) && (busName != "") && (objectPath != "")) {
187+ if ((busType != 0) && (busName != "") && (deviceMenuObjectPath != "")) {
188188 start();
189189 }
190190 }