Merge lp:~unity-team/libusermetrics/themes-xdg-data-dirs into lp:libusermetrics

Proposed by Pete Woods
Status: Merged
Merged at revision: 144
Proposed branch: lp:~unity-team/libusermetrics/themes-xdg-data-dirs
Merge into: lp:libusermetrics
Diff against target: 189 lines (+35/-36)
7 files modified
data/CMakeLists.txt (+2/-2)
src/libusermetricsoutput/GSettingsColorThemeProvider.cpp (+22/-21)
src/libusermetricsoutput/GSettingsColorThemeProvider.h (+1/-1)
tests/CMakeLists.txt (+1/-1)
tests/testutils/DBusTest.cpp (+1/-2)
tests/unit/libusermetricsoutput/TestGSettingsColorThemeProvider.cpp (+7/-7)
tests/unit/qml/UserMetricsTest/DBusQuery.cpp (+1/-2)
To merge this branch: bzr merge lp:~unity-team/libusermetrics/themes-xdg-data-dirs
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Needs Fixing
Matt Fischer (community) Approve
Pete Woods (community) Abstain
Review via email: mp+192191@code.launchpad.net

Commit message

Read infographic themes from all XDG_DATA_DIRS paths

Description of the change

Read infographic themes from all XDG_DATA_DIRS paths

To post a comment you must log in.
Revision history for this message
Pete Woods (pete-woods) wrote :

Stupid mistake to begin with. I don't append the infographics path to the XDG_DATA_DIRS list.

review: Needs Fixing
Revision history for this message
Pete Woods (pete-woods) :
review: Abstain
Revision history for this message
Pete Woods (pete-woods) :
review: Abstain
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Matt Fischer (mfisch) wrote :

It looks good. I'll pull it and try it out.

Revision history for this message
Matt Fischer (mfisch) wrote :

Works great for us. Let me know you need me to top approve or if you're waiting on someone else.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Pete Woods (pete-woods) wrote :

It seems like the build servers are not in a good way. Almost certainly caused by the switch from saucy to tahr.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'data/CMakeLists.txt'
2--- data/CMakeLists.txt 2013-09-26 11:02:49 +0000
3+++ data/CMakeLists.txt 2013-10-22 16:59:26 +0000
4@@ -8,9 +8,9 @@
5
6 install(
7 DIRECTORY
8- themes
9+ libusermetrics
10 DESTINATION
11- "${CMAKE_INSTALL_DATADIR}/libusermetrics"
12+ ${CMAKE_INSTALL_DATADIR}
13 )
14
15 ###########################
16
17=== added directory 'data/libusermetrics'
18=== renamed directory 'data/themes' => 'data/libusermetrics/themes'
19=== modified file 'src/libusermetricsoutput/GSettingsColorThemeProvider.cpp'
20--- src/libusermetricsoutput/GSettingsColorThemeProvider.cpp 2013-09-26 15:43:24 +0000
21+++ src/libusermetricsoutput/GSettingsColorThemeProvider.cpp 2013-10-22 16:59:26 +0000
22@@ -31,26 +31,25 @@
23 using namespace std;
24 using namespace UserMetricsOutput;
25
26-static const QString COLOR_BASEDIR("/usr/share/libusermetrics/themes/");
27-static const QString CUSTOM_COLOR_BASEDIR(
28- "/custom/usr/share/libusermetrics/themes/");
29+static const QString THEME_PATH("/libusermetrics/themes/");
30
31 GSettingsColorThemeProvider::GSettingsColorThemeProvider(QObject *parent) :
32- ColorThemeProvider(parent), m_baseDir(COLOR_BASEDIR) {
33- if (qEnvironmentVariableIsSet("USERMETRICS_COLOR_THEME_BASEDIR")) {
34- m_baseDir = QString::fromUtf8(
35- qgetenv("USERMETRICS_COLOR_THEME_BASEDIR"));
36- }
37-
38- QString schemaBaseDir(COLOR_BASEDIR);
39- if (qEnvironmentVariableIsSet("USERMETRICS_COLOR_SCHEMA_BASEDIR")) {
40- schemaBaseDir = QString::fromUtf8(
41- qgetenv("USERMETRICS_COLOR_SCHEMA_BASEDIR"));
42- }
43-
44- m_schema.load(
45- QUrl::fromLocalFile(
46- QDir(schemaBaseDir).filePath("color-theme.xsd")));
47+ ColorThemeProvider(parent) {
48+ if (qEnvironmentVariableIsSet("XDG_DATA_DIRS")) {
49+ m_baseDirs = QString::fromUtf8(qgetenv("XDG_DATA_DIRS")).split(':');
50+ }
51+
52+ for (QString &baseDir : m_baseDirs) {
53+ baseDir = baseDir.append(THEME_PATH);
54+ }
55+
56+ for (const QString &baseDir : m_baseDirs) {
57+ QString schemaFile(QDir(baseDir).filePath("color-theme.xsd"));
58+ if (QFile::exists(schemaFile)) {
59+ m_schema.load(QUrl::fromLocalFile(schemaFile));
60+ break;
61+ }
62+ }
63
64 if (m_schema.isValid()) {
65 if (qEnvironmentVariableIsSet("USERMETRICS_NO_COLOR_SETTINGS")) {
66@@ -89,9 +88,11 @@
67
68 QFile file;
69
70- file.setFileName(convertPath(m_baseDir, theme));
71- if (!file.exists()) {
72- file.setFileName(convertPath(CUSTOM_COLOR_BASEDIR, theme));
73+ for (const QString &baseDir : m_baseDirs) {
74+ file.setFileName(convertPath(baseDir, theme));
75+ if (file.exists()) {
76+ break;
77+ }
78 }
79
80 if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
81
82=== modified file 'src/libusermetricsoutput/GSettingsColorThemeProvider.h'
83--- src/libusermetricsoutput/GSettingsColorThemeProvider.h 2013-09-26 15:43:24 +0000
84+++ src/libusermetricsoutput/GSettingsColorThemeProvider.h 2013-10-22 16:59:26 +0000
85@@ -61,7 +61,7 @@
86
87 QString convertPath(const QString &base, const QString& theme);
88
89- QString m_baseDir;
90+ QStringList m_baseDirs;
91
92 QXmlSchema m_schema;
93
94
95=== modified file 'tests/CMakeLists.txt'
96--- tests/CMakeLists.txt 2013-09-26 11:35:49 +0000
97+++ tests/CMakeLists.txt 2013-10-22 16:59:26 +0000
98@@ -15,7 +15,7 @@
99 add_definitions(-DTEST_LOCALEDIR="${CMAKE_CURRENT_BINARY_DIR}/data")
100 add_definitions(-DTEST_DATADIR="${CMAKE_CURRENT_SOURCE_DIR}/data")
101
102-add_definitions(-DUSERMETRICS_TEST_COLOR_BASEDIR="${DATA_DIR}/themes")
103+add_definitions(-DDATA_DIR="${DATA_DIR}")
104
105 add_subdirectory(data)
106 add_subdirectory(integration)
107
108=== added directory 'tests/data/libusermetrics'
109=== renamed directory 'tests/data/broken-theme' => 'tests/data/libusermetrics/themes'
110=== modified file 'tests/testutils/DBusTest.cpp'
111--- tests/testutils/DBusTest.cpp 2013-09-26 11:35:49 +0000
112+++ tests/testutils/DBusTest.cpp 2013-10-22 16:59:26 +0000
113@@ -27,8 +27,7 @@
114 DBusTest::DBusTest() {
115 qputenv("USERMETRICS_NO_AUTH", "1");
116 qputenv("USERMETRICS_NO_COLOR_SETTINGS", "1");
117- qputenv("USERMETRICS_COLOR_SCHEMA_BASEDIR", USERMETRICS_TEST_COLOR_BASEDIR);
118- qputenv("USERMETRICS_COLOR_THEME_BASEDIR", USERMETRICS_TEST_COLOR_BASEDIR);
119+ qputenv("XDG_DATA_DIRS", DATA_DIR);
120 DBusServicePtr userMetricsService(
121 new QProcessDBusService("com.canonical.UserMetrics",
122 QDBusConnection::SystemBus, USERMETRICSSERVICE_BINARY,
123
124=== modified file 'tests/unit/libusermetricsoutput/TestGSettingsColorThemeProvider.cpp'
125--- tests/unit/libusermetricsoutput/TestGSettingsColorThemeProvider.cpp 2013-09-26 11:35:49 +0000
126+++ tests/unit/libusermetricsoutput/TestGSettingsColorThemeProvider.cpp 2013-10-22 16:59:26 +0000
127@@ -23,6 +23,8 @@
128 #include <gtest/gtest.h>
129 #include <gmock/gmock.h>
130
131+#include <QDebug>
132+
133 using namespace std;
134 using namespace UserMetricsOutput;
135 using namespace testing;
136@@ -32,8 +34,7 @@
137 class TestGSettingsColorThemeProvider: public Test {
138 protected:
139 TestGSettingsColorThemeProvider() {
140- qputenv("USERMETRICS_COLOR_SCHEMA_BASEDIR",
141- USERMETRICS_TEST_COLOR_BASEDIR);
142+ qputenv("XDG_DATA_DIRS", DATA_DIR);
143 qputenv("USERMETRICS_NO_COLOR_SETTINGS", "1");
144 }
145
146@@ -42,8 +43,7 @@
147 };
148
149 TEST_F(TestGSettingsColorThemeProvider, ReadsThemes) {
150- qputenv("USERMETRICS_COLOR_THEME_BASEDIR", USERMETRICS_TEST_COLOR_BASEDIR);
151-
152+ qDebug() << DATA_DIR;
153 GSettingsColorThemeProvider provider;
154
155 ColorThemePtrPair themeA(provider.getColorTheme("a"));
156@@ -89,7 +89,7 @@
157 }
158
159 TEST_F(TestGSettingsColorThemeProvider, HandlesMissingXml) {
160- qputenv("USERMETRICS_COLOR_THEME_BASEDIR", "/does/not/exist");
161+ qputenv("XDG_DATA_DIRS", "/does/not/exist");
162
163 GSettingsColorThemeProvider provider;
164
165@@ -105,8 +105,8 @@
166 }
167
168 TEST_F(TestGSettingsColorThemeProvider, HandlesInvalidXml) {
169- qputenv("USERMETRICS_COLOR_THEME_BASEDIR",
170- QDir(TEST_DATADIR).filePath("broken-theme").toUtf8());
171+ qputenv("XDG_DATA_DIRS",
172+ QString(TEST_DATADIR).append(":").append(DATA_DIR).toUtf8());
173
174 GSettingsColorThemeProvider provider;
175
176
177=== modified file 'tests/unit/qml/UserMetricsTest/DBusQuery.cpp'
178--- tests/unit/qml/UserMetricsTest/DBusQuery.cpp 2013-10-02 09:34:27 +0000
179+++ tests/unit/qml/UserMetricsTest/DBusQuery.cpp 2013-10-22 16:59:26 +0000
180@@ -34,8 +34,7 @@
181 QObject(parent), dbus(0) {
182 qputenv("USERMETRICS_NO_AUTH", "1");
183 qputenv("USERMETRICS_NO_COLOR_SETTINGS", "1");
184- qputenv("USERMETRICS_COLOR_SCHEMA_BASEDIR", USERMETRICS_TEST_COLOR_BASEDIR);
185- qputenv("USERMETRICS_COLOR_THEME_BASEDIR", USERMETRICS_TEST_COLOR_BASEDIR);
186+ qputenv("XDG_DATA_DIRS", DATA_DIR);
187 DBusServicePtr userMetricsService(
188 new QProcessDBusService("com.canonical.UserMetrics",
189 QDBusConnection::SystemBus, USERMETRICSSERVICE_BINARY,

Subscribers

People subscribed via source and target branches

to all changes: