on xenial help sign in
WIP: clickable timezone map
commit150205ce312e0465c353767411d6b3b95352557e authorLukáš Tinkl <lukas.tinkl@canonical.com> dateMon 15 Feb 2016, 18:25 (11 years ago) parent2b7927d
47 files changed+455−2
plugins/Wizard/CMakeLists.txt+4−1 plugins/Wizard/olsen_map.png plugins/Wizard/plugin.cpp+1 plugins/Wizard/timezonemodel.cpp+420 plugins/Wizard/timezonemodel.h+8 plugins/Wizard/ui.qrc+5 qml/Wizard/Pages/50-timezone.qml+14 qml/Wizard/Pages/data/timezonemap/map.png qml/Wizard/Pages/data/timezonemap/timezone_-1.png qml/Wizard/Pages/data/timezonemap/timezone_-10.png qml/Wizard/Pages/data/timezonemap/timezone_-11.png qml/Wizard/Pages/data/timezonemap/timezone_-2.png qml/Wizard/Pages/data/timezonemap/timezone_-3.5.png qml/Wizard/Pages/data/timezonemap/timezone_-3.png qml/Wizard/Pages/data/timezonemap/timezone_-4.5.png qml/Wizard/Pages/data/timezonemap/timezone_-4.png qml/Wizard/Pages/data/timezonemap/timezone_-5.png qml/Wizard/Pages/data/timezonemap/timezone_-6.png qml/Wizard/Pages/data/timezonemap/timezone_-7.png qml/Wizard/Pages/data/timezonemap/timezone_-8.png qml/Wizard/Pages/data/timezonemap/timezone_-9.5.png qml/Wizard/Pages/data/timezonemap/timezone_-9.png qml/Wizard/Pages/data/timezonemap/timezone_0.png qml/Wizard/Pages/data/timezonemap/timezone_1.png qml/Wizard/Pages/data/timezonemap/timezone_10.5.png qml/Wizard/Pages/data/timezonemap/timezone_10.png qml/Wizard/Pages/data/timezonemap/timezone_11.png qml/Wizard/Pages/data/timezonemap/timezone_12.75.png qml/Wizard/Pages/data/timezonemap/timezone_12.png qml/Wizard/Pages/data/timezonemap/timezone_13.png qml/Wizard/Pages/data/timezonemap/timezone_2.png qml/Wizard/Pages/data/timezonemap/timezone_3.5.png qml/Wizard/Pages/data/timezonemap/timezone_3.png qml/Wizard/Pages/data/timezonemap/timezone_4.5.png qml/Wizard/Pages/data/timezonemap/timezone_4.png qml/Wizard/Pages/data/timezonemap/timezone_5.5.png qml/Wizard/Pages/data/timezonemap/timezone_5.75.png qml/Wizard/Pages/data/timezonemap/timezone_5.png qml/Wizard/Pages/data/timezonemap/timezone_6.5.png qml/Wizard/Pages/data/timezonemap/timezone_6.png qml/Wizard/Pages/data/timezonemap/timezone_7.png qml/Wizard/Pages/data/timezonemap/timezone_8.5.png qml/Wizard/Pages/data/timezonemap/timezone_8.png qml/Wizard/Pages/data/timezonemap/timezone_9.5.png qml/Wizard/Pages/data/timezonemap/timezone_9.png tests/mocks/Wizard/CMakeLists.txt+2−1 tests/mocks/Wizard/mockplugin.cpp+1
plugins/Wizard/CMakeLists.txt+4−1
@@ -2,6 +2,8 @@ pkg_search_module(TIMEZONEMAP REQUIRED timezonemap)
22
33include_directories(${GLIB_INCLUDE_DIRS} ${TIMEZONEMAP_INCLUDE_DIRS})
44
5+qt5_add_resources(olsen-resources ui.qrc)
6+
57add_library(Wizard-qml MODULE
68 plugin.cpp
79 PageList.cpp
@@ -9,9 +11,10 @@ add_library(Wizard-qml MODULE
911 LocalePlugin.cpp
1012 timezonemodel.cpp
1113 Status.cpp
14+ ${olsen-resources}
1215)
1316
14−qt5_use_modules(Wizard-qml DBus Qml Concurrent)
17+qt5_use_modules(Wizard-qml DBus Qml Gui Concurrent)
1518target_link_libraries(Wizard-qml ${GLIB_LDFLAGS} ${TIMEZONEMAP_LDFLAGS})
1619add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
1720
plugins/Wizard/olsen_map.pngnew file

Binary file not shown.

plugins/Wizard/plugin.cpp+1
@@ -26,6 +26,7 @@
2626void WizardPlugin::registerTypes(const char *uri)
2727{
2828 Q_ASSERT(uri == QLatin1String("Wizard"));
29+ Q_INIT_RESOURCE(ui);
2930 qmlRegisterType<PageList>(uri, 0, 1, "PageList");
3031 qmlRegisterSingletonType<System>(uri, 0, 1, "System", [](QQmlEngine*, QJSEngine*) -> QObject* { return new System; });
3132 qmlRegisterSingletonType<Status>(uri, 0, 1, "Status", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Status; });
plugins/Wizard/timezonemodel.cpp+420
@@ -23,6 +23,388 @@
2323#include "LocalePlugin.h"
2424#include "timezonemodel.h"
2525
26+static QByteArrayList olsenTimezones = {
27+ "Africa/Abidjan",
28+ "Africa/Accra",
29+ "Africa/Addis_Ababa",
30+ "Africa/Algiers",
31+ "Africa/Asmara",
32+ "Africa/Bamako",
33+ "Africa/Bangui",
34+ "Africa/Banjul",
35+ "Africa/Bissau",
36+ "Africa/Blantyre",
37+ "Africa/Brazzaville",
38+ "Africa/Bujumbura",
39+ "Africa/Cairo",
40+ "Africa/Casablanca",
41+ "Africa/Conakry",
42+ "Africa/Dakar",
43+ "Africa/Dar_es_Salaam",
44+ "Africa/Djibouti",
45+ "Africa/Douala",
46+ "Africa/El_Aaiun",
47+ "Africa/Freetown",
48+ "Africa/Gaborone",
49+ "Africa/Harare",
50+ "Africa/Johannesburg",
51+ "Africa/Kampala",
52+ "Africa/Khartoum",
53+ "Africa/Kigali",
54+ "Africa/Kinshasa",
55+ "Africa/Lagos",
56+ "Africa/Libreville",
57+ "Africa/Lome",
58+ "Africa/Luanda",
59+ "Africa/Lubumbashi",
60+ "Africa/Lusaka",
61+ "Africa/Malabo",
62+ "Africa/Maputo",
63+ "Africa/Maseru",
64+ "Africa/Mbabane",
65+ "Africa/Mogadishu",
66+ "Africa/Monrovia",
67+ "Africa/Nairobi",
68+ "Africa/Ndjamena",
69+ "Africa/Niamey",
70+ "Africa/Nouakchott",
71+ "Africa/Ouagadougou",
72+ "Africa/Porto-Novo",
73+ "Africa/Sao_Tome",
74+ "Africa/Tripoli",
75+ "Africa/Tunis",
76+ "Africa/Windhoek",
77+ "America/Adak",
78+ "America/Anguilla",
79+ "America/Antigua",
80+ "America/Araguaina",
81+ "America/Argentina/Buenos_Aires",
82+ "America/Argentina/Catamarca",
83+ "America/Argentina/Cordoba",
84+ "America/Argentina/Jujuy",
85+ "America/Argentina/La_Rioja",
86+ "America/Argentina/Mendoza",
87+ "America/Argentina/Rio_Gallegos",
88+ "America/Argentina/San_Juan",
89+ "America/Argentina/San_Luis",
90+ "America/Argentina/Tucuman",
91+ "America/Argentina/Ushuaia",
92+ "America/Aruba",
93+ "America/Asuncion",
94+ "America/Atikokan",
95+ "America/Bahia",
96+ "America/Barbados",
97+ "America/Belem",
98+ "America/Belize",
99+ "America/Blanc-Sablon",
100+ "America/Boa_Vista",
101+ "America/Bogota",
102+ "America/Boise",
103+ "America/Cambridge_Bay",
104+ "America/Campo_Grande",
105+ "America/Cancun",
106+ "America/Caracas",
107+ "America/Cayenne",
108+ "America/Cayman",
109+ "America/Chicago",
110+ "America/Chihuahua",
111+ "America/Coral_Harbour",
112+ "America/Costa_Rica",
113+ "America/Cuiaba",
114+ "America/Curacao",
115+ "America/Dawson",
116+ "America/Dawson_Creek",
117+ "America/Denver",
118+ "America/Dominica",
119+ "America/Edmonton",
120+ "America/Eirunepe",
121+ "America/El_Salvador",
122+ "America/Fortaleza",
123+ "America/Glace_Bay",
124+ "America/Goose_Bay",
125+ "America/Grand_Turk",
126+ "America/Grenada",
127+ "America/Guadeloupe",
128+ "America/Guatemala",
129+ "America/Guayaquil",
130+ "America/Guyana",
131+ "America/Halifax",
132+ "America/Havana",
133+ "America/Hermosillo",
134+ "America/Indiana/Indianapolis",
135+ "America/Indiana/Knox",
136+ "America/Indiana/Marengo",
137+ "America/Indiana/Petersburg",
138+ "America/Indiana/Vevay",
139+ "America/Indiana/Vincennes",
140+ "America/Indiana/Winamac",
141+ "America/Inuvik",
142+ "America/Iqaluit",
143+ "America/Jamaica",
144+ "America/Juneau",
145+ "America/Kentucky/Louisville",
146+ "America/Kentucky/Monticello",
147+ "America/La_Paz",
148+ "America/Lima",
149+ "America/Los_Angeles",
150+ "America/Maceio",
151+ "America/Managua",
152+ "America/Manaus",
153+ "America/Marigot",
154+ "America/Martinique",
155+ "America/Mazatlan",
156+ "America/Menominee",
157+ "America/Merida",
158+ "America/Mexico_City",
159+ "America/Miquelon",
160+ "America/Moncton",
161+ "America/Monterrey",
162+ "America/Montevideo",
163+ "America/Montreal",
164+ "America/Montserrat",
165+ "America/Nassau",
166+ "America/New_York",
167+ "America/Nipigon",
168+ "America/Noronha",
169+ "America/North_Dakota/Center",
170+ "America/North_Dakota/Salem",
171+ "America/Panama",
172+ "America/Pangnirtung",
173+ "America/Paramaribo",
174+ "America/Phoenix",
175+ "America/Port-au-Prince",
176+ "America/Port_of_Spain",
177+ "America/Porto_Velho",
178+ "America/Puerto_Rico",
179+ "America/Rainy_River",
180+ "America/Rankin_Inlet",
181+ "America/Recife",
182+ "America/Regina",
183+ "America/Resolute",
184+ "America/Rio_Branco",
185+ "America/Santarem",
186+ "America/Santiago",
187+ "America/Santo_Domingo",
188+ "America/Sao_Paulo",
189+ "America/St_Barthelemy",
190+ "America/St_Johns",
191+ "America/St_Kitts",
192+ "America/St_Lucia",
193+ "America/St_Thomas",
194+ "America/St_Vincent",
195+ "America/Tegucigalpa",
196+ "America/Thunder_Bay",
197+ "America/Tijuana",
198+ "America/Toronto",
199+ "America/Tortola",
200+ "America/Vancouver",
201+ "America/Whitehorse",
202+ "America/Winnipeg",
203+ "America/Yellowknife",
204+ "Ameriica/Swift_Current",
205+ "Arctic/Longyearbyen",
206+ "Asia/Aden",
207+ "Asia/Almaty",
208+ "Asia/Amman",
209+ "Asia/Anadyr",
210+ "Asia/Aqtau",
211+ "Asia/Aqtobe",
212+ "Asia/Ashgabat",
213+ "Asia/Baghdad",
214+ "Asia/Bahrain",
215+ "Asia/Baku",
216+ "Asia/Bangkok",
217+ "Asia/Beirut",
218+ "Asia/Bishkek",
219+ "Asia/Brunei",
220+ "Asia/Choibalsan",
221+ "Asia/Chongqing",
222+ "Asia/Colombo",
223+ "Asia/Damascus",
224+ "Asia/Dhaka",
225+ "Asia/Dili",
226+ "Asia/Dubai",
227+ "Asia/Dushanbe",
228+ "Asia/Gaza",
229+ "Asia/Harbin",
230+ "Asia/Ho_Chi_Minh",
231+ "Asia/Hong_Kong",
232+ "Asia/Hovd",
233+ "Asia/Irkutsk",
234+ "Asia/Jakarta",
235+ "Asia/Jayapura",
236+ "Asia/Jerusalem",
237+ "Asia/Kabul",
238+ "Asia/Kamchatka",
239+ "Asia/Karachi",
240+ "Asia/Kashgar",
241+ "Asia/Katmandu",
242+ "Asia/Kolkata",
243+ "Asia/Krasnoyarsk",
244+ "Asia/Kuala_Lumpur",
245+ "Asia/Kuching",
246+ "Asia/Kuwait",
247+ "Asia/Macau",
248+ "Asia/Magadan",
249+ "Asia/Makassar",
250+ "Asia/Manila",
251+ "Asia/Muscat",
252+ "Asia/Nicosia",
253+ "Asia/Novosibirsk",
254+ "Asia/Omsk",
255+ "Asia/Oral",
256+ "Asia/Phnom_Penh",
257+ "Asia/Pontianak",
258+ "Asia/Pyongyang",
259+ "Asia/Qatar",
260+ "Asia/Qyzylorda",
261+ "Asia/Rangoon",
262+ "Asia/Riyadh",
263+ "Asia/Sakhalin",
264+ "Asia/Samarkand",
265+ "Asia/Seoul",
266+ "Asia/Shanghai",
267+ "Asia/Singapore",
268+ "Asia/Taipei",
269+ "Asia/Tashkent",
270+ "Asia/Tbilisi",
271+ "Asia/Tehran",
272+ "Asia/Thimphu",
273+ "Asia/Tokyo",
274+ "Asia/Ulaanbaatar",
275+ "Asia/Urumqi",
276+ "Asia/Vientiane",
277+ "Asia/Vladivostok",
278+ "Asia/Yakutsk",
279+ "Asia/Yekaterinburg",
280+ "Asia/Yerevan",
281+ "Atlantic/Azores",
282+ "Atlantic/Bermuda",
283+ "Atlantic/Canary",
284+ "Atlantic/Cape_Verde",
285+ "Atlantic/Faroe",
286+ "Atlantic/Madeira",
287+ "Atlantic/Reykjavik",
288+ "Atlantic/South_Georgia",
289+ "Atlantic/St_Helena",
290+ "Atlantic/Stanley",
291+ "Australia/Adelaide",
292+ "Australia/Brisbane",
293+ "Australia/Broken_Hill",
294+ "Australia/Currie",
295+ "Australia/Darwin",
296+ "Australia/Eucla",
297+ "Australia/Hobart",
298+ "Australia/Lindeman",
299+ "Australia/Lord_Howe",
300+ "Australia/Melbourne",
301+ "Australia/Perth",
302+ "Australia/Sydney",
303+ "Europe/Amsterdam",
304+ "Europe/Andorra",
305+ "Europe/Athens",
306+ "Europe/Belgrade",
307+ "Europe/Berlin",
308+ "Europe/Bratislava",
309+ "Europe/Brussels",
310+ "Europe/Bucharest",
311+ "Europe/Budapest",
312+ "Europe/Chisinau",
313+ "Europe/Copenhagen",
314+ "Europe/Dublin",
315+ "Europe/Gibraltar",
316+ "Europe/Guernsey",
317+ "Europe/Helsinki",
318+ "Europe/Isle_of_Man",
319+ "Europe/Istanbul",
320+ "Europe/Jersey",
321+ "Europe/Kaliningrad",
322+ "Europe/Kiev",
323+ "Europe/Lisbon",
324+ "Europe/Ljubljana",
325+ "Europe/London",
326+ "Europe/Luxembourg",
327+ "Europe/Madrid",
328+ "Europe/Malta",
329+ "Europe/Marienhamn",
330+ "Europe/Minsk",
331+ "Europe/Monaco",
332+ "Europe/Moscow",
333+ "Europe/Oslo",
334+ "Europe/Paris",
335+ "Europe/Podgorica",
336+ "Europe/Prague",
337+ "Europe/Riga",
338+ "Europe/Rome",
339+ "Europe/Samara",
340+ "Europe/San_Marino",
341+ "Europe/Sarajevo",
342+ "Europe/Simferopol",
343+ "Europe/Skopje",
344+ "Europe/Sofia",
345+ "Europe/Stockholm",
346+ "Europe/Tallinn",
347+ "Europe/Tirane",
348+ "Europe/Uzhgorod",
349+ "Europe/Vaduz",
350+ "Europe/Vatican",
351+ "Europe/Vienna",
352+ "Europe/Vilnius",
353+ "Europe/Volgograd",
354+ "Europe/Warsaw",
355+ "Europe/Zagreb",
356+ "Europe/Zaporozhye",
357+ "Europe/Zurich",
358+ "Indian/Antananarivo",
359+ "Indian/Chagos",
360+ "Indian/Christmas",
361+ "Indian/Cocos",
362+ "Indian/Comoro",
363+ "Indian/Kerguelen",
364+ "Indian/Mahe",
365+ "Indian/Maldives",
366+ "Indian/Mauritius",
367+ "Indian/Mayotte",
368+ "Indian/Reunion",
369+ "Pacific/Apia",
370+ "Pacific/Auckland",
371+ "Pacific/Chatham",
372+ "Pacific/Easter",
373+ "Pacific/Efate",
374+ "Pacific/Enderbury",
375+ "Pacific/Fakaofo",
376+ "Pacific/Fiji",
377+ "Pacific/Funafuti",
378+ "Pacific/Galapagos",
379+ "Pacific/Gambier",
380+ "Pacific/Guadalcanal",
381+ "Pacific/Guam",
382+ "Pacific/Honolulu",
383+ "Pacific/Johnston",
384+ "Pacific/Kiritimati",
385+ "Pacific/Kosrae",
386+ "Pacific/Kwajalein",
387+ "Pacific/Majuro",
388+ "Pacific/Marquesas",
389+ "Pacific/Midway",
390+ "Pacific/Nauru",
391+ "Pacific/Niue",
392+ "Pacific/Norfolk",
393+ "Pacific/Noumea",
394+ "Pacific/Pago_Pago",
395+ "Pacific/Palau",
396+ "Pacific/Pitcairn",
397+ "Pacific/Ponape",
398+ "Pacific/Port_Moresby",
399+ "Pacific/Rarotonga",
400+ "Pacific/Saipan",
401+ "Pacific/Tahiti",
402+ "Pacific/Tarawa",
403+ "Pacific/Tongatapu",
404+ "Pacific/Truk",
405+ "Pacific/Wake",
406+ "Pacific/Wallis"
407+};
26408
27409TimeZoneLocationModel::TimeZoneLocationModel(QObject *parent):
28410 QAbstractListModel(parent),
@@ -52,6 +434,9 @@ TimeZoneLocationModel::TimeZoneLocationModel(QObject *parent):
52434 &QObject::deleteLater);
53435
54436 init();
437+
438+ // olsen color map
439+ m_olsenMap.load(":/olsen_map.png");
55440}
56441
57442void TimeZoneLocationModel::init()
@@ -120,6 +505,41 @@ QHash<int, QByteArray> TimeZoneLocationModel::roleNames() const
120505 return m_roleNames;
121506}
122507
508+QJsonArray TimeZoneLocationModel::timezoneAndOffsetAtMapPoint(int x, int y, const QSize &mapImageSize) const
509+{
510+ const QImage olsenMap = m_olsenMap.scaled(mapImageSize);
511+ qDebug() << "Clicked at" << x << y << "(" << olsenMap.width() << olsenMap.height() << ")";
512+ if (!olsenMap.valid(x,y)) {
513+ qWarning() << Q_FUNC_INFO << "Invalid pixel position:" << x << y;
514+ return QJsonArray();
515+ }
516+
517+ const QRgb rgb = olsenMap.pixel(x,y);
518+ const int red = qRed(rgb);
519+ const int green = qGreen(rgb);
520+ qDebug() << "Red:" << red << ", green:" << green;
521+ const int zoneIndex = ((red & 248) << 1) + ((green >> 4) & 15);
522+
523+ qDebug() << "Zone index:" << zoneIndex;
524+ if (zoneIndex >= 0 && zoneIndex < olsenTimezones.count()) {
525+ const QByteArray tzId = olsenTimezones.at(zoneIndex);
526+ qDebug() << "!!! Got TZ ID" << tzId;
527+ QTimeZone tz(tzId);
528+ if (tz.isValid()) {
529+ QJsonArray result;
530+ result.append(qUtf8Printable(tzId));
531+ result.append(static_cast<double>(tz.standardTimeOffset(QDateTime::currentDateTime())) / 3600);
532+ qDebug() << "!!! timezone and offset" << result.at(0) << result.at(1);
533+ return result;
534+ }
535+ qWarning() << Q_FUNC_INFO << "Invalid timezone" << tzId;
536+ return QJsonArray();
537+ }
538+
539+ qWarning() << Q_FUNC_INFO << "Invalid timezone index" << zoneIndex;
540+ return QJsonArray();
541+}
542+
123543void TimeZonePopulateWorker::run()
124544{
125545 buildCityMap();
plugins/Wizard/timezonemodel.h+8
@@ -21,6 +21,7 @@
2121#include <QSortFilterProxyModel>
2222#include <QThread>
2323#include <QtConcurrent>
24+#include <QtGui/QImage>
2425
2526class TimeZonePopulateWorker;
2627
@@ -56,6 +57,12 @@ public:
5657 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
5758 QHash<int, QByteArray> roleNames() const override;
5859
60+ /**
61+ * @return a JSON array with timezone ID and offset (in hours) at a given point
62+ * in map pixel coordinates @p x and @p y
63+ */
64+ Q_INVOKABLE QJsonArray timezoneAndOffsetAtMapPoint(int x, int y, const QSize &mapImageSize) const;
65+
5966private Q_SLOTS:
6067 void processModelResult(const TzLocationWizard &location);
6168 void store();
@@ -65,6 +72,7 @@ private:
6572 QHash<int, QByteArray> m_roleNames;
6673 QList<TzLocationWizard> m_locations;
6774 TimeZonePopulateWorker *m_workerThread;
75+ QImage m_olsenMap;
6876};
6977
7078Q_DECLARE_METATYPE (TimeZoneLocationModel::TzLocationWizard)
plugins/Wizard/ui.qrcnew file+5
@@ -0,0 +1,5 @@
1+<!DOCTYPE RCC><RCC version="1.0">
2+<qresource>
3+ <file>olsen_map.png</file>
4+</qresource>
5+</RCC>
qml/Wizard/Pages/50-timezone.qml+14
@@ -20,6 +20,7 @@ import Ubuntu.Components 1.3
2020import Wizard 0.1
2121import Ubuntu.SystemSettings.TimeDate 1.0
2222import Utils 0.1 as Utils
23+import QtQuick.Window 2.2
2324import ".." as LocalComponents
2425
2526LocalComponents.Page {
@@ -225,6 +226,19 @@ LocalComponents.Page {
225226 centerIn: parent
226227 }
227228
229+ MouseArea {
230+ anchors.fill: parent
231+ onClicked: {
232+ print("Clicked at", mouse.x, mouse.y)
233+ print("Map size:", map.width, map.height)
234+ var tzAndOffset = tzModel.timezoneAndOffsetAtMapPoint(mouse.x, mouse.y,
235+ Qt.size(map.width, map.height));
236+ var tzId = tzAndOffset[0];
237+ var offset = tzAndOffset[1];
238+ print("Timezone", tzId, ", offset", offset);
239+ }
240+ }
241+
228242 Image {
229243 id: backgroundImage
230244 source: "data/timezonemap/map.png"
qml/Wizard/Pages/data/timezonemap/map.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-1.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-10.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-11.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-2.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-6.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-7.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-8.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_0.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_1.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_11.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.75.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_13.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_2.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.75.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_7.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.png

Binary file not shown.

tests/mocks/Wizard/CMakeLists.txt+2−1
@@ -12,8 +12,9 @@ add_library(MockWizard-qml MODULE
1212 ${CMAKE_SOURCE_DIR}/plugins/Wizard/timezonemodel.cpp
1313 ${CMAKE_SOURCE_DIR}/plugins/Wizard/LocalePlugin.cpp
1414 ${CMAKE_SOURCE_DIR}/plugins/Wizard/Status.cpp
15+ ${CMAKE_BINARY_DIR}/plugins/Wizard/qrc_ui.cpp
1516)
1617
17−qt5_use_modules(MockWizard-qml DBus Qml Concurrent)
18+qt5_use_modules(MockWizard-qml DBus Qml Gui Concurrent)
1819target_link_libraries(MockWizard-qml ${GLIB_LDFLAGS} ${TIMEZONEMAP_LDFLAGS})
1920add_unity8_mock(Wizard 0.1 Wizard TARGETS MockWizard-qml)
tests/mocks/Wizard/mockplugin.cpp+1
@@ -26,6 +26,7 @@
2626void MockWizardPlugin::registerTypes(const char *uri)
2727{
2828 Q_ASSERT(uri == QLatin1String("Wizard"));
29+ Q_INIT_RESOURCE(ui);
2930 qmlRegisterType<PageList>(uri, 0, 1, "PageList");
3031 qmlRegisterSingletonType<MockSystem>(uri, 0, 1, "System", [](QQmlEngine*, QJSEngine*) -> QObject* { return new MockSystem; });
3132 qmlRegisterSingletonType<Status>(uri, 0, 1, "Status", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Status; });