Merge lp:~unity-team/ubuntu-system-settings/welcome-wizard into lp:ubuntu-system-settings
- welcome-wizard
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Sebastien Bacher |
Approved revision: | 508 |
Merged at revision: | 635 |
Proposed branch: | lp:~unity-team/ubuntu-system-settings/welcome-wizard |
Merge into: | lp:ubuntu-system-settings |
Diff against target: |
812 lines (+653/-19) 20 files modified
CMakeLists.txt (+1/-0) debian/rules (+1/-0) debian/ubuntu-system-settings.install (+1/-0) po/CMakeLists.txt (+34/-13) src/CMakeLists.txt (+0/-6) tests/mocks/Unity/Application/OSKController.qml (+20/-0) tests/mocks/Unity/Application/qmldir (+2/-0) wizard/CMakeLists.txt (+18/-0) wizard/main.cpp (+64/-0) wizard/qml/Components/Page.qml (+65/-0) wizard/qml/Pages/LocationPage.qml (+52/-0) wizard/qml/Pages/SetupCompletePage.qml (+51/-0) wizard/qml/Pages/SimCardPage.qml (+67/-0) wizard/qml/Pages/SpinnerPage.qml (+44/-0) wizard/qml/Pages/WelcomePage.qml (+83/-0) wizard/qml/Pages/WiFiPage.qml (+43/-0) wizard/qml/main.qml (+56/-0) wizard/test.sh (+16/-0) wizard/ubuntu-system-settings-wizard.conf (+22/-0) wizard/ui.qrc (+13/-0) |
To merge this branch: | bzr merge lp:~unity-team/ubuntu-system-settings/welcome-wizard |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sebastien Bacher (community) | Approve | ||
PS Jenkins bot | continuous-integration | Needs Fixing | |
Iain Lane | Needs Information | ||
Review via email: mp+186862@code.launchpad.net |
Commit message
Add disabled skeleton of a "Welcome to Ubuntu" wizard for first-time boot. Will be enabled when it is more complete.
Description of the change
Add disabled skeleton of a "Welcome to Ubuntu" wizard for first-time boot. Will be enabled when it is more complete.
This builds a new executable (system-
The eventual experience and some mockups are documented here:
https:/
To test on desktop:
debuild
./wizard/test.sh
PS Jenkins bot (ps-jenkins) wrote : | # |
Sebastien Bacher (seb128) wrote : | # |
Thank you for your work, could you do a summary of the changes/what's the intend? How do you test the current version? (e.g what do you install/run)?
Some first review comments:
- why do you add an "account" plugin? that icon is not in the design from https:/
Is the intend to provide bindings to access accountsservice? If so we probably don't need a new directory for it, nor a .settings (which adds an icon in the settings grid)
- there is a conflict in po/CMakefile.list, that needs to be rebased on trunk
* main.cpp : start_xsession() seems really hackish, don't we have a libupstart we can use for those things rather than doing system() calls? doing a stop of the osk first seems wrong as well
* the __<name> variable are not easy to read/type and we don't use that convention in system settings ... could you get ride of that (or make an argument on why we should have it ;-)
Andrea Cimitan (cimi) wrote : | # |
> Thank you for your work, could you do a summary of the changes/what's the
> intend? How do you test the current version? (e.g what do you install/run)?
>
>
> Some first review comments:
>
> - why do you add an "account" plugin? that icon is not in the design from
> https:/
>
> Is the intend to provide bindings to access accountsservice? If so we probably
> don't need a new directory for it, nor a .settings (which adds an icon in the
> settings grid)
>
We need a way to edit/add/remove users on at least tablet and desktop. The plugin is meant to do that, even for the moment it's limited to change names. I imagine we will have a page on the system settings to edit the users indeed.
Icon will get updated when we'll add that page I believe, in the meanwhile it's there as a placeholder but it's hidden to the user
> - there is a conflict in po/CMakefile.list, that needs to be rebased on trunk
>
> * main.cpp : start_xsession() seems really hackish, don't we have a libupstart
> we can use for those things rather than doing system() calls? doing a stop of
> the osk first seems wrong as well
>
> * the __<name> variable are not easy to read/type and we don't use that
> convention in system settings ... could you get ride of that (or make an
> argument on why we should have it ;-)
- 498. By Michael Terry
-
Merge from trunk
Michael Terry (mterry) wrote : | # |
> - there is a conflict in po/CMakefile.list, that needs to be rebased on trunk
Fixed.
> * main.cpp : start_xsession() seems really hackish, don't we have a libupstart we can use for those things rather than doing system() calls? doing a stop of the osk first seems wrong as well
Eh, it's a bit hackish, agreed. I use system() because libupstart's API is a pain. :) That whole section is temporary until we figure out exactly how we want to handle the handover. And once we split unity8-greeter out, the wizard will be inserted into the upstart workflow in a different place anyway.
Stopping the OSK is a workaround for an OSK bug. It seemed to be a known bug at the time of writing the workaround. I'd have to investigate to see if it's still a problem. But this code was written at the time of Mir being enabled by default, so things have likely changed.
Anyway, my point is that start_xsession is a known pile of hacks, to be replaced by better code. If you accept that welcome-wizard will be improved incrementally, please overlook this section of code.
> * the __<name> variable are not easy to read/type and we don't use that
> convention in system settings ... could you get ride of that (or make an
> argument on why we should have it ;-)
What's the convention for marking non-public variables? It looks like you just don't bother?
Sebastien Bacher (seb128) wrote : | # |
> We need a way to edit/add/remove users on at least tablet and desktop. The plugin is meant to do that, even
> for the moment it's limited to change names. I imagine we will have a page on the system settings to edit
> the users indeed.
> Icon will get updated when we'll add that page I believe, in the meanwhile it's there as a placeholder but
> it's hidden to the user
Having a plugin to handle account changes is fine, that should be a backend (like for other panels), no a panel with a .settings. Not that in the current version the placeholder is not hidden to the user, that merge is adding an account icon in the settings grid which is not in the design, duplicating an icon (next to online account) and giving an empty/not working page when clicked
> If you accept that welcome-wizard will be improved incrementally, please overlook this section of code.
Ok, fair enough. If we workaround an OSK bug I would like at least a bug reference in a code comment though...
> What's the convention for marking non-public variables? It looks like you just don't bother?
Right, those sources are standalone UIs, not re-usable components, so by definition everything is private to that only user...
BTW I would still welcome tips on how to actually run/test that code on a desktop (or do I need to build a package and install it on the device to test?)
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:498
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Andrea Cimitan (cimi) wrote : | # |
> > We need a way to edit/add/remove users on at least tablet and desktop. The
> plugin is meant to do that, even
> > for the moment it's limited to change names. I imagine we will have a page
> on the system settings to edit
> > the users indeed.
> > Icon will get updated when we'll add that page I believe, in the meanwhile
> it's there as a placeholder but
> > it's hidden to the user
>
> Having a plugin to handle account changes is fine, that should be a backend
> (like for other panels), no a panel with a .settings. Not that in the current
> version the placeholder is not hidden to the user, that merge is adding an
> account icon in the settings grid which is not in the design, duplicating an
> icon (next to online account) and giving an empty/not working page when
> clicked
>
I think it wasn't when I did the original work, I'll work on it.
>
> > If you accept that welcome-wizard will be improved incrementally, please
> overlook this section of code.
>
> Ok, fair enough. If we workaround an OSK bug I would like at least a bug
> reference in a code comment though...
>
>
> > What's the convention for marking non-public variables? It looks like you
> just don't bother?
>
> Right, those sources are standalone UIs, not re-usable components, so by
> definition everything is private to that only user...
>
>
> BTW I would still welcome tips on how to actually run/test that code on a
> desktop (or do I need to build a package and install it on the device to
> test?)
- 499. By Andrea Cimitan
-
Remove panel
- 500. By Michael Terry
-
Add simple testing script to make running on desktop easier
- 501. By Michael Terry
-
Drop __ prefix for private variables
- 502. By Michael Terry
-
Expand OSK maliit-server restart bug comment
Michael Terry (mterry) wrote : | # |
OK, Cimi added a commit to address your plugin comment.
I've expanded the OSK bug comment (basically saying it used to be a bug, needs to be re-investigated, but likely won't matter for the way we eventually will launch the wizard).
I've also taken out the __ prefixes and added a script to the source to test the wizard locally. And added a comment to this merge describing how to use it (basically just build locally and run the script).
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:502
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Sebastien Bacher (seb128) wrote : | # |
Thanks for the update, that looks mostly good (let's not nitpick on UI/code for the first landing, we can fix stuff once the basis are in), some things to fix though:
- there is a conflicts in debian/rules (we merged autopilots support which change it as well), can you rebase again?
- trying to run it on my desktop gives a ""Unity.
- running "make pot" in po/ gives an error
"extractsetting
Iain Lane (laney) wrote : | # |
Can you reassure about the technical debt we'd be introducing here by explaining what the eventual plan for launching the wizard is and why it can't be done like that straight away?
A small review
- I think it's best if you don't update the translation templates here; it's likely to lead to conflicts (we usually do them in separate MPs)
- 2774 + anchors {
2775 + fill: parent
2776 + topMargin: topMargin
2777 + leftMargin: leftMargin
2778 + rightMargin: rightMargin
2779 + bottomMargin: bottomMargin
2780 + }
Is it necessary to set the margins if you fill: parent? (It might be, just checking)
- Feels like it would be nicer to add wizard/qml to the import path rather than importing a relative path.
- Thanks for the accounts plugin; do you think it could be generalised and used everywhere we use AS in u-s-s? Not necessarily a blocker for this.
- Please wrap at 80 columns.
Iain Lane (laney) wrote : | # |
also our convention for member variables is to prefix them with "m_"
Michael Terry (mterry) wrote : | # |
> - there is a conflicts in debian/rules (we merged autopilots support which change it as well), can you rebase again?
Fixed.
> - trying to run it on my desktop gives a ""Unity.
Unity.Application contains the OSKController qml item. There is a mock for it in the source that I've added. Run debuild, then run wizard/test.sh to run the wizard locally.
> - running "make pot" in po/ gives an error
>
> "extractsetting
Fixed.
> - I think it's best if you don't update the translation templates here; it's likely to lead to conflicts (we usually do them in separate MPs)
Fixed.
> Is it necessary to set the margins if you fill: parent? (It might be, just checking)
Yes. We could re-organize the hierarchy to move some margins into the parent. But the way it is now, you need to specify both. I don't think it's a big deal, but if you like, we can move things around.
> - Feels like it would be nicer to add wizard/qml to the import path rather than importing a relative path.
I tried to add the qrc:/qml to the import path, which the docs say should work, but I couldn't get it to find the Components subdirectory. Instead, I just specified "qrc:/qml/
> - Thanks for the accounts plugin; do you think it could be generalised and used everywhere we use AS in u-s-s? Not necessarily a blocker for this.
Sure. Over time, functionality could be moved into it.
> - Please wrap at 80 columns.
You mean in the qml files? OK, fixed, with the exception of translated strings, which xgettext doesn't pick up if split over lines.
> also our convention for member variables is to prefix them with "m_"
I thought I did?
> Can you reassure about the technical debt we'd be introducing here by explaining what the eventual plan for launching the wizard is and why it can't be done like that straight away?
I wouldn't say technical debt, just incomplete code. It has to be fixed before enabling for the user, so it's not like we're taking a temporary shortcut.
The deal with launching is that once the greeter is split out from the user unity8 process, it needs to be launched from a system upstart job, rather than the user upstart job in this branch. Plus, the transition between the wizard and the greeter will be controlled by unity-system-
These are just moving parts that we'll have to wait to settle before really finalizing it here.
OK, I think that's all the review comments addressed? Please re-review.
- 503. By Michael Terry
-
Merge from trunk
- 504. By Michael Terry
-
Restore pot file to trunk; updating it will be separate MP
- 505. By Michael Terry
-
Shorten the SIM page title
- 506. By Michael Terry
-
Use full qrc url for Component folder and wrap qml at 80 columns, except for translated strings
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:506
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Sebastien Bacher (seb128) wrote : | # |
Thanks for the update. Laney added a library for accountsservice (see https:/
Andrea Cimitan (cimi) wrote : | # |
> Thanks for the update. Laney added a library for accountsservice (see
> https:/
> library/
> https:/
> background/
I'll do it
Sebastien Bacher (seb128) wrote : | # |
Is there any news of the changes there?
- 507. By Michael Terry
-
Merge from trunk
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:507
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 508. By Michael Terry
-
Drop name screen and associated (redundant) AccountsService plugin
Michael Terry (mterry) wrote : | # |
OK, dropped the account plugin entirely, because new designs don't have "About you" page at all (not needed for phone, though we should eventually add something similar back for tablet/desktop). When we do add it back, we can use the proper library.
Ready for review again, I think.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:508
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:508
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Sebastien Bacher (seb128) wrote : | # |
Seems fine to me, it's not very useful in the current form but it's not exposed in a visible way either and it gives us a basis to iterate and review changes, let's get it in then!
Preview Diff
1 | === modified file 'CMakeLists.txt' |
2 | --- CMakeLists.txt 2014-01-22 04:06:41 +0000 |
3 | +++ CMakeLists.txt 2014-02-20 21:25:07 +0000 |
4 | @@ -68,6 +68,7 @@ |
5 | add_subdirectory(plugins) |
6 | add_subdirectory(src) |
7 | add_subdirectory(tests) |
8 | +add_subdirectory(wizard) |
9 | |
10 | configure_file(ubuntu-system-settings.desktop.in ubuntu-system-settings.desktop @ONLY) |
11 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ubuntu-system-settings.desktop DESTINATION share/applications) |
12 | |
13 | === modified file 'debian/rules' |
14 | --- debian/rules 2013-12-05 17:40:46 +0000 |
15 | +++ debian/rules 2014-02-20 21:25:07 +0000 |
16 | @@ -8,6 +8,7 @@ |
17 | include /usr/share/dpkg/architecture.mk |
18 | |
19 | override_dh_install: |
20 | + rm -r debian/tmp/usr/share/upstart # not ready yet; also, do not enable wizard without tests! |
21 | cd tests/autopilot; \ |
22 | set -ex; for python in $(shell pyversions -r); do \ |
23 | $$python setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb; \ |
24 | |
25 | === modified file 'debian/ubuntu-system-settings.install' |
26 | --- debian/ubuntu-system-settings.install 2014-01-30 16:28:59 +0000 |
27 | +++ debian/ubuntu-system-settings.install 2014-02-20 21:25:07 +0000 |
28 | @@ -4,4 +4,5 @@ |
29 | usr/share/glib-2.0 |
30 | usr/share/locale |
31 | usr/share/ubuntu/settings/system |
32 | +#usr/share/upstart |
33 | usr/share/url-dispatcher |
34 | |
35 | === modified file 'po/CMakeLists.txt' |
36 | --- po/CMakeLists.txt 2013-11-18 13:57:43 +0000 |
37 | +++ po/CMakeLists.txt 2014-02-20 21:25:07 +0000 |
38 | @@ -1,8 +1,15 @@ |
39 | -file(GLOB SOURCECODE "${CMAKE_SOURCE_DIR}/plugins/*/*.qml" "${CMAKE_SOURCE_DIR}/src/qml/*.qml") |
40 | -file(GLOB SETTINGSFILES "${CMAKE_SOURCE_DIR}/plugins/*/*.settings") |
41 | +file(GLOB CPPFILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" |
42 | + "${CMAKE_SOURCE_DIR}/src/*.cpp") |
43 | +file(GLOB QMLFILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" |
44 | + "${CMAKE_SOURCE_DIR}/plugins/*/*.qml" |
45 | + "${CMAKE_SOURCE_DIR}/src/qml/*.qml" |
46 | + "${CMAKE_SOURCE_DIR}/wizard/qml/*/*.qml") |
47 | +file(GLOB SETTINGSFILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" |
48 | + "${CMAKE_SOURCE_DIR}/plugins/*/*.settings") |
49 | |
50 | add_custom_command(OUTPUT settings.js |
51 | - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/extractsettingsinfo ${SETTINGSFILES} -o ${CMAKE_CURRENT_BINARY_DIR}/settings.js |
52 | + COMMAND ./extractsettingsinfo ${SETTINGSFILES} -o ${CMAKE_CURRENT_BINARY_DIR}/settings.js |
53 | + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" |
54 | DEPENDS ${SETTINGSFILES} |
55 | ) |
56 | |
57 | @@ -11,16 +18,30 @@ |
58 | # DEPENDS ${CMAKE_SOURCE_DIR}/ubuntu-system-settings.desktop |
59 | #) |
60 | |
61 | - |
62 | -add_custom_target(pot |
63 | - COMMAND ${XGETTEXT_BIN} -o ${CMAKE_CURRENT_SOURCE_DIR}/ubuntu-system-settings.pot |
64 | - -copyright=\"Canonical Ltd. \" |
65 | - --package-name ubuntu-system-settings |
66 | - --qt --c++ --add-comments=TRANSLATORS |
67 | - --keyword=tr --keyword=tr:1,2 --from-code=UTF-8 |
68 | - ${SOURCECODE} ${DESKTOPFILE} settings.js |
69 | - DEPENDS ${SOURCECODE} settings.js #desktop.js |
70 | -) |
71 | +add_custom_target(pot-qml |
72 | + COMMAND ${XGETTEXT_BIN} -o ubuntu-system-settings.pot |
73 | + --copyright=\"Canonical Ltd.\" |
74 | + --package-name ubuntu-system-settings |
75 | + --qt --c++ --add-comments=TRANSLATORS |
76 | + --keyword=tr --keyword=tr:1,2 --from-code=UTF-8 |
77 | + ${QMLFILES} "${CMAKE_CURRENT_BINARY_DIR}/settings.js" |
78 | + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" |
79 | + DEPENDS ${QMLFILES} "${CMAKE_CURRENT_BINARY_DIR}/settings.js" #desktop.js |
80 | +) |
81 | + |
82 | +add_custom_target(pot-cpp |
83 | + COMMAND ${XGETTEXT_BIN} -o ubuntu-system-settings.pot |
84 | + --join-existing |
85 | + --copyright=\"Canonical Ltd.\" |
86 | + --package-name ubuntu-system-settings |
87 | + --qt --c++ --add-comments=TRANSLATORS |
88 | + --keyword=_ --from-code=UTF-8 |
89 | + ${CPPFILES} |
90 | + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" |
91 | + DEPENDS pot-qml ${CPPFILES} |
92 | +) |
93 | + |
94 | +add_custom_target(pot DEPENDS pot-qml pot-cpp) |
95 | |
96 | set(languages "ar;ast;be;bg;bs;ca;cs;de;el;en_AU;en_GB;eo;es;fa;fi;fr;gl;gu;he;hi;hr;hu;id;it;km;ko;lo;lv;ms;my;nb;pl;pt_BR;pt;ru;shn;sl;sv;tr;ug;uk;xh;zh_CN;zh_HK;zh_TW") |
97 | foreach(i ${languages}) |
98 | |
99 | === modified file 'src/CMakeLists.txt' |
100 | --- src/CMakeLists.txt 2014-01-31 15:07:01 +0000 |
101 | +++ src/CMakeLists.txt 2014-02-20 21:25:07 +0000 |
102 | @@ -36,9 +36,3 @@ |
103 | qt5_use_modules(uss-accountsservice Core Qml DBus) |
104 | set_target_properties(uss-accountsservice PROPERTIES VERSION 0.0 SOVERSION 0.0) |
105 | install(TARGETS uss-accountsservice LIBRARY DESTINATION ${PLUGIN_MODULE_DIR} NAMELINK_SKIP) |
106 | - |
107 | -add_custom_target(po COMMAND |
108 | -${XGETTEXT_BIN} -o ${CMAKE_SOURCE_DIR}/po/ubuntu-system-settings.pot -d ubuntu-system-settings |
109 | ---keyword=_ ${USS_SOURCES} |
110 | -WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} |
111 | -) |
112 | |
113 | === added directory 'tests/mocks' |
114 | === added directory 'tests/mocks/Unity' |
115 | === added directory 'tests/mocks/Unity/Application' |
116 | === added file 'tests/mocks/Unity/Application/OSKController.qml' |
117 | --- tests/mocks/Unity/Application/OSKController.qml 1970-01-01 00:00:00 +0000 |
118 | +++ tests/mocks/Unity/Application/OSKController.qml 2014-02-20 21:25:07 +0000 |
119 | @@ -0,0 +1,20 @@ |
120 | +/* |
121 | + * Copyright (C) 2013 Canonical, Ltd. |
122 | + * |
123 | + * This program is free software; you can redistribute it and/or modify |
124 | + * it under the terms of the GNU General Public License as published by |
125 | + * the Free Software Foundation; version 3. |
126 | + * |
127 | + * This program is distributed in the hope that it will be useful, |
128 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
129 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
130 | + * GNU General Public License for more details. |
131 | + * |
132 | + * You should have received a copy of the GNU General Public License |
133 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
134 | + */ |
135 | + |
136 | +import QtQuick 2.0; |
137 | + |
138 | +Item { |
139 | +} |
140 | |
141 | === added file 'tests/mocks/Unity/Application/qmldir' |
142 | --- tests/mocks/Unity/Application/qmldir 1970-01-01 00:00:00 +0000 |
143 | +++ tests/mocks/Unity/Application/qmldir 2014-02-20 21:25:07 +0000 |
144 | @@ -0,0 +1,2 @@ |
145 | +module Unity.Application |
146 | +OSKController 0.1 OSKController.qml |
147 | |
148 | === added directory 'wizard' |
149 | === added file 'wizard/CMakeLists.txt' |
150 | --- wizard/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
151 | +++ wizard/CMakeLists.txt 2014-02-20 21:25:07 +0000 |
152 | @@ -0,0 +1,18 @@ |
153 | +add_definitions(-DI18N_DOMAIN="ubuntu-system-settings") |
154 | +add_definitions(-DPLUGIN_PRIVATE_MODULE_DIR="${PLUGIN_PRIVATE_MODULE_DIR}") |
155 | +add_definitions(-DPLUGIN_MANIFEST_DIR="${PLUGIN_MANIFEST_DIR}") |
156 | +add_definitions(-DPLUGIN_QML_DIR="${PLUGIN_QML_DIR}") |
157 | +add_definitions(-DPLUGIN_MODULE_DIR="${PLUGIN_MODULE_DIR}") |
158 | + |
159 | +set(WIZARD_SOURCES |
160 | + main.cpp |
161 | +) |
162 | + |
163 | +QT5_ADD_RESOURCES(system-settings-wizard-resources ui.qrc) |
164 | + |
165 | +add_executable(system-settings-wizard ${WIZARD_SOURCES} ${system-settings-wizard-resources}) |
166 | + |
167 | +qt5_use_modules(system-settings-wizard Core Gui Quick Qml) |
168 | + |
169 | +install(TARGETS system-settings-wizard RUNTIME DESTINATION bin) |
170 | +install(FILES ubuntu-system-settings-wizard.conf DESTINATION share/upstart) |
171 | |
172 | === added file 'wizard/main.cpp' |
173 | --- wizard/main.cpp 1970-01-01 00:00:00 +0000 |
174 | +++ wizard/main.cpp 2014-02-20 21:25:07 +0000 |
175 | @@ -0,0 +1,64 @@ |
176 | +/* |
177 | + * This file is part of system-settings |
178 | + * |
179 | + * Copyright (C) 2013 Canonical Ltd. |
180 | + * |
181 | + * This program is free software: you can redistribute it and/or modify it |
182 | + * under the terms of the GNU General Public License version 3, as published |
183 | + * by the Free Software Foundation. |
184 | + * |
185 | + * This program is distributed in the hope that it will be useful, but |
186 | + * WITHOUT ANY WARRANTY; without even the implied warranties of |
187 | + * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR |
188 | + * PURPOSE. See the GNU General Public License for more details. |
189 | + * |
190 | + * You should have received a copy of the GNU General Public License along |
191 | + * with this program. If not, see <http://www.gnu.org/licenses/>. |
192 | + */ |
193 | + |
194 | +#include <libintl.h> |
195 | +#include <QGuiApplication> |
196 | +#include <QQmlContext> |
197 | +#include <QUrl> |
198 | +#include <QQuickView> |
199 | +#include <QtQml> |
200 | + |
201 | +void start_xsession() |
202 | +{ |
203 | + // When we get a request to stop, we don't quit but rather start xsession |
204 | + // in the background. When xsession finishes loading, we'll be stopped |
205 | + // by upstart. |
206 | + |
207 | + // But first, stop maliit-server, it needs to be started by unity8. |
208 | + // This was an OSK bug in October, need to discover if it is still a |
209 | + // problem, especially once we become a system upstart job. |
210 | + if (system("stop maliit-server") != 0) |
211 | + {} // ignore any errors |
212 | + |
213 | + // Now resume starting xsession, which we interrupted with our upstart job |
214 | + QString command = "initctl emit xsession"; |
215 | + command += " SESSION=" + qgetenv("DESKTOP_SESSION"); |
216 | + command += " SESSIONTYPE=" + qgetenv("SESSIONTYPE"); |
217 | + command += " &"; |
218 | + if (system(command.toLatin1().data()) != 0) |
219 | + QGuiApplication::quit(); // just quit if we can't start xsession |
220 | +} |
221 | + |
222 | +int main(int argc, char **argv) |
223 | +{ |
224 | + QGuiApplication app(argc, argv); |
225 | + |
226 | + bindtextdomain(I18N_DOMAIN, NULL); |
227 | + textdomain(I18N_DOMAIN); |
228 | + |
229 | + QQuickView view; |
230 | + QObject::connect(view.engine(), &QQmlEngine::quit, start_xsession); |
231 | + view.setResizeMode(QQuickView::SizeRootObjectToView); |
232 | + view.engine()->addImportPath(PLUGIN_PRIVATE_MODULE_DIR); |
233 | + view.engine()->addImportPath(PLUGIN_QML_DIR); |
234 | + view.setSource(QUrl("qrc:/qml/main.qml")); |
235 | + view.show(); |
236 | +// view.showFullScreen(); |
237 | + |
238 | + return app.exec(); |
239 | +} |
240 | |
241 | === added directory 'wizard/qml' |
242 | === added directory 'wizard/qml/Components' |
243 | === added file 'wizard/qml/Components/Page.qml' |
244 | --- wizard/qml/Components/Page.qml 1970-01-01 00:00:00 +0000 |
245 | +++ wizard/qml/Components/Page.qml 2014-02-20 21:25:07 +0000 |
246 | @@ -0,0 +1,65 @@ |
247 | +/* |
248 | + * Copyright (C) 2013 Canonical, Ltd. |
249 | + * |
250 | + * This program is free software; you can redistribute it and/or modify |
251 | + * it under the terms of the GNU General Public License as published by |
252 | + * the Free Software Foundation; version 3. |
253 | + * |
254 | + * This program is distributed in the hope that it will be useful, |
255 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
256 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
257 | + * GNU General Public License for more details. |
258 | + * |
259 | + * You should have received a copy of the GNU General Public License |
260 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
261 | + */ |
262 | + |
263 | +import QtQuick 2.0 |
264 | +import Ubuntu.Components 0.1 |
265 | + |
266 | +Page { |
267 | + readonly property real buttonMargin: units.gu(2) |
268 | + readonly property real buttonWidth: (width - buttonMargin * 2) / 2 - |
269 | + buttonMargin / 2 |
270 | + readonly property real topMargin: units.gu(5) |
271 | + readonly property real leftMargin: units.gu(3) |
272 | + readonly property real rightMargin: units.gu(3) |
273 | + readonly property real bottomMargin: backButton.height + buttonMargin * 2 |
274 | + |
275 | + property bool hasBackButton: true |
276 | + property alias forwardButtonSourceComponent: forwardButton.sourceComponent |
277 | + |
278 | + visible: false |
279 | + tools: ToolbarItems { |
280 | + back: null |
281 | + } |
282 | + |
283 | + Button { |
284 | + id: backButton |
285 | + width: buttonWidth |
286 | + anchors { |
287 | + left: parent.left |
288 | + bottom: parent.bottom |
289 | + leftMargin: buttonMargin |
290 | + bottomMargin: buttonMargin |
291 | + } |
292 | + z: 1 |
293 | + text: i18n.tr("Back") |
294 | + visible: pageStack.depth > 1 && hasBackButton |
295 | + gradient: UbuntuColors.greyGradient |
296 | + |
297 | + onClicked: pageStack.pop() |
298 | + } |
299 | + |
300 | + Loader { |
301 | + id: forwardButton |
302 | + width: buttonWidth |
303 | + anchors { |
304 | + right: parent.right |
305 | + bottom: parent.bottom |
306 | + rightMargin: buttonMargin |
307 | + bottomMargin: buttonMargin |
308 | + } |
309 | + z: 1 |
310 | + } |
311 | +} |
312 | |
313 | === added directory 'wizard/qml/Pages' |
314 | === added file 'wizard/qml/Pages/LocationPage.qml' |
315 | --- wizard/qml/Pages/LocationPage.qml 1970-01-01 00:00:00 +0000 |
316 | +++ wizard/qml/Pages/LocationPage.qml 2014-02-20 21:25:07 +0000 |
317 | @@ -0,0 +1,52 @@ |
318 | +/* |
319 | + * Copyright (C) 2013 Canonical, Ltd. |
320 | + * |
321 | + * This program is free software; you can redistribute it and/or modify |
322 | + * it under the terms of the GNU General Public License as published by |
323 | + * the Free Software Foundation; version 3. |
324 | + * |
325 | + * This program is distributed in the hope that it will be useful, |
326 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
327 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
328 | + * GNU General Public License for more details. |
329 | + * |
330 | + * You should have received a copy of the GNU General Public License |
331 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
332 | + */ |
333 | + |
334 | +import QtQuick 2.0 |
335 | +import Ubuntu.Components 0.1 |
336 | +import "qrc:/qml/Components" as LocalComponents |
337 | + |
338 | +LocalComponents.Page { |
339 | + title: i18n.tr("Your phone settings") |
340 | + forwardButtonSourceComponent: forwardButton |
341 | + |
342 | + Item { |
343 | + id: content |
344 | + anchors { |
345 | + fill: parent |
346 | + topMargin: topMargin |
347 | + leftMargin: leftMargin |
348 | + rightMargin: rightMargin |
349 | + bottomMargin: bottomMargin |
350 | + } |
351 | + |
352 | + Label { |
353 | + width: parent.width |
354 | + wrapMode: Text.WordWrap |
355 | + fontSize: "large" |
356 | + text: i18n.tr("Your phone is setup to automatically report errors to Canonical. This can be disabled in system settings.") + |
357 | + "\n\n" + |
358 | + i18n.tr("Your phone is setup to detect your location. This can be disabled in system settings.") |
359 | + } |
360 | + } |
361 | + |
362 | + Component { |
363 | + id: forwardButton |
364 | + Button { |
365 | + text: i18n.tr("Continue") |
366 | + onClicked: pageStack.push(Qt.resolvedUrl("SetupCompletePage.qml")) |
367 | + } |
368 | + } |
369 | +} |
370 | |
371 | === added file 'wizard/qml/Pages/SetupCompletePage.qml' |
372 | --- wizard/qml/Pages/SetupCompletePage.qml 1970-01-01 00:00:00 +0000 |
373 | +++ wizard/qml/Pages/SetupCompletePage.qml 2014-02-20 21:25:07 +0000 |
374 | @@ -0,0 +1,51 @@ |
375 | +/* |
376 | + * Copyright (C) 2013 Canonical, Ltd. |
377 | + * |
378 | + * This program is free software; you can redistribute it and/or modify |
379 | + * it under the terms of the GNU General Public License as published by |
380 | + * the Free Software Foundation; version 3. |
381 | + * |
382 | + * This program is distributed in the hope that it will be useful, |
383 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
384 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
385 | + * GNU General Public License for more details. |
386 | + * |
387 | + * You should have received a copy of the GNU General Public License |
388 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
389 | + */ |
390 | + |
391 | +import QtQuick 2.0 |
392 | +import Ubuntu.Components 0.1 |
393 | +import "qrc:/qml/Components" as LocalComponents |
394 | + |
395 | +LocalComponents.Page { |
396 | + title: i18n.tr("That’s it!") |
397 | + forwardButtonSourceComponent: forwardButton |
398 | + |
399 | + Item { |
400 | + id: content |
401 | + anchors { |
402 | + fill: parent |
403 | + topMargin: topMargin |
404 | + leftMargin: leftMargin |
405 | + rightMargin: rightMargin |
406 | + bottomMargin: bottomMargin |
407 | + } |
408 | + |
409 | + Label { |
410 | + width: parent.width |
411 | + wrapMode: Text.WordWrap |
412 | + fontSize: "large" |
413 | + text: i18n.tr("It’s great to have you in the Ubuntu Community.") + |
414 | + "\n\n" + |
415 | + i18n.tr("You’re now ready to enjoy your new phone.") |
416 | + } |
417 | + } |
418 | + Component { |
419 | + id: forwardButton |
420 | + Button { |
421 | + text: i18n.tr("Finish") |
422 | + onClicked: pageStack.push(Qt.resolvedUrl("SpinnerPage.qml")) |
423 | + } |
424 | + } |
425 | +} |
426 | |
427 | === added file 'wizard/qml/Pages/SimCardPage.qml' |
428 | --- wizard/qml/Pages/SimCardPage.qml 1970-01-01 00:00:00 +0000 |
429 | +++ wizard/qml/Pages/SimCardPage.qml 2014-02-20 21:25:07 +0000 |
430 | @@ -0,0 +1,67 @@ |
431 | +/* |
432 | + * Copyright (C) 2013 Canonical, Ltd. |
433 | + * |
434 | + * This program is free software; you can redistribute it and/or modify |
435 | + * it under the terms of the GNU General Public License as published by |
436 | + * the Free Software Foundation; version 3. |
437 | + * |
438 | + * This program is distributed in the hope that it will be useful, |
439 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
440 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
441 | + * GNU General Public License for more details. |
442 | + * |
443 | + * You should have received a copy of the GNU General Public License |
444 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
445 | + */ |
446 | + |
447 | +import QtQuick 2.0 |
448 | +import Ubuntu.Components 0.1 |
449 | +import "qrc:/qml/Components" as LocalComponents |
450 | + |
451 | +LocalComponents.Page { |
452 | + title: i18n.tr("No SIM installed") |
453 | + forwardButtonSourceComponent: forwardButton |
454 | + |
455 | + Item { |
456 | + id: content |
457 | + anchors { |
458 | + fill: parent |
459 | + topMargin: topMargin |
460 | + rightMargin: rightMargin |
461 | + bottomMargin: bottomMargin |
462 | + } |
463 | + |
464 | + Image { |
465 | + id: image |
466 | + anchors { |
467 | + top: parent.top |
468 | + left: parent.left |
469 | + leftMargin: units.gu(2.5) |
470 | + } |
471 | + source: "data/meet_ubuntu_simcard@30.png" |
472 | + height: units.gu(9) |
473 | + width: units.gu(12.5) |
474 | + } |
475 | + |
476 | + Label { |
477 | + anchors { |
478 | + top: image.bottom |
479 | + left: parent.left |
480 | + topMargin: units.gu(2) |
481 | + leftMargin: leftMargin |
482 | + } |
483 | + width: content.width |
484 | + wrapMode: Text.WordWrap |
485 | + fontSize: "large" |
486 | + text: i18n.tr("You need a valid SIM to use telephone and SMS features.") |
487 | + } |
488 | + } |
489 | + |
490 | + Component { |
491 | + id: forwardButton |
492 | + Button { |
493 | + text: i18n.tr("Skip") |
494 | + onClicked: pageStack.push(Qt.resolvedUrl("WiFiPage.qml")) |
495 | + } |
496 | + } |
497 | +} |
498 | |
499 | === added file 'wizard/qml/Pages/SpinnerPage.qml' |
500 | --- wizard/qml/Pages/SpinnerPage.qml 1970-01-01 00:00:00 +0000 |
501 | +++ wizard/qml/Pages/SpinnerPage.qml 2014-02-20 21:25:07 +0000 |
502 | @@ -0,0 +1,44 @@ |
503 | +/* |
504 | + * Copyright (C) 2013 Canonical, Ltd. |
505 | + * |
506 | + * This program is free software; you can redistribute it and/or modify |
507 | + * it under the terms of the GNU General Public License as published by |
508 | + * the Free Software Foundation; version 3. |
509 | + * |
510 | + * This program is distributed in the hope that it will be useful, |
511 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
512 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
513 | + * GNU General Public License for more details. |
514 | + * |
515 | + * You should have received a copy of the GNU General Public License |
516 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
517 | + */ |
518 | + |
519 | +import QtQuick 2.0 |
520 | +import Ubuntu.Components 0.1 |
521 | +import "qrc:/qml/Components" as LocalComponents |
522 | + |
523 | +LocalComponents.Page { |
524 | + title: i18n.tr("That’s it!") |
525 | + |
526 | + hasBackButton: false |
527 | + |
528 | + Component.onCompleted: Qt.quit() |
529 | + |
530 | + Item { |
531 | + id: content |
532 | + anchors { |
533 | + fill: parent |
534 | + topMargin: topMargin |
535 | + leftMargin: leftMargin |
536 | + rightMargin: rightMargin |
537 | + bottomMargin: bottomMargin |
538 | + } |
539 | + |
540 | + ActivityIndicator { |
541 | + id: spinner |
542 | + anchors.centerIn: parent |
543 | + running: true |
544 | + } |
545 | + } |
546 | +} |
547 | |
548 | === added file 'wizard/qml/Pages/WelcomePage.qml' |
549 | --- wizard/qml/Pages/WelcomePage.qml 1970-01-01 00:00:00 +0000 |
550 | +++ wizard/qml/Pages/WelcomePage.qml 2014-02-20 21:25:07 +0000 |
551 | @@ -0,0 +1,83 @@ |
552 | +/* |
553 | + * Copyright (C) 2013 Canonical, Ltd. |
554 | + * |
555 | + * This program is free software; you can redistribute it and/or modify |
556 | + * it under the terms of the GNU General Public License as published by |
557 | + * the Free Software Foundation; version 3. |
558 | + * |
559 | + * This program is distributed in the hope that it will be useful, |
560 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
561 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
562 | + * GNU General Public License for more details. |
563 | + * |
564 | + * You should have received a copy of the GNU General Public License |
565 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
566 | + */ |
567 | + |
568 | +import QtQuick 2.0 |
569 | +import Ubuntu.Components 0.1 |
570 | +import Ubuntu.Components.ListItems 0.1 as ListItem |
571 | +import Ubuntu.SystemSettings.LanguagePlugin 1.0 |
572 | +import "qrc:/qml/Components" as LocalComponents |
573 | + |
574 | +LocalComponents.Page { |
575 | + title: i18n.tr("Hello!") |
576 | + forwardButtonSourceComponent: forwardButton |
577 | + |
578 | + readonly property bool simCardPresent: false // TODO: implement this |
579 | + |
580 | + UbuntuLanguagePlugin { |
581 | + id: plugin |
582 | + } |
583 | + |
584 | + Item { |
585 | + id: content |
586 | + anchors { |
587 | + fill: parent |
588 | + topMargin: topMargin |
589 | + leftMargin: leftMargin |
590 | + rightMargin: rightMargin |
591 | + bottomMargin: bottomMargin |
592 | + } |
593 | + |
594 | + Column { |
595 | + id: column |
596 | + spacing: units.gu(2) |
597 | + |
598 | + Label { |
599 | + id: label |
600 | + width: content.width |
601 | + wrapMode: Text.WordWrap |
602 | + fontSize: "large" |
603 | + text: i18n.tr("Welcome to Ubuntu.") + "\n" + |
604 | + i18n.tr("Let’s get started.") |
605 | + } |
606 | + |
607 | + OptionSelector { |
608 | + id: languageList |
609 | + text: i18n.tr("Select your language") |
610 | + model: plugin.languageNames |
611 | + selectedIndex: plugin.currentLanguage |
612 | + onSelectedIndexChanged: { |
613 | + i18n.language = plugin.languageCodes[selectedIndex] |
614 | + i18n.domain = i18n.domain |
615 | + } |
616 | + containerHeight: content.height - label.height |
617 | + - column.spacing - units.gu(4) |
618 | + } |
619 | + } |
620 | + } |
621 | + |
622 | + Component { |
623 | + id: forwardButton |
624 | + Button { |
625 | + text: i18n.tr("Start") |
626 | + onClicked: { |
627 | + plugin.currentLanguage = languageList.selectedIndex |
628 | + pageStack.push(Qt.resolvedUrl(simCardPresent |
629 | + ? "LocationPage.qml" |
630 | + : "SimCardPage.qml")) |
631 | + } |
632 | + } |
633 | + } |
634 | +} |
635 | |
636 | === added file 'wizard/qml/Pages/WiFiPage.qml' |
637 | --- wizard/qml/Pages/WiFiPage.qml 1970-01-01 00:00:00 +0000 |
638 | +++ wizard/qml/Pages/WiFiPage.qml 2014-02-20 21:25:07 +0000 |
639 | @@ -0,0 +1,43 @@ |
640 | +/* |
641 | + * Copyright (C) 2013 Canonical, Ltd. |
642 | + * |
643 | + * This program is free software; you can redistribute it and/or modify |
644 | + * it under the terms of the GNU General Public License as published by |
645 | + * the Free Software Foundation; version 3. |
646 | + * |
647 | + * This program is distributed in the hope that it will be useful, |
648 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
649 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
650 | + * GNU General Public License for more details. |
651 | + * |
652 | + * You should have received a copy of the GNU General Public License |
653 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
654 | + */ |
655 | + |
656 | +import QtQuick 2.0 |
657 | +import Ubuntu.Components 0.1 |
658 | +import "qrc:/qml/Components" as LocalComponents |
659 | + |
660 | +LocalComponents.Page { |
661 | + title: i18n.tr("Connect to Wi-Fi") |
662 | + forwardButtonSourceComponent: forwardButton |
663 | + |
664 | + Item { |
665 | + id: content |
666 | + anchors { |
667 | + fill: parent |
668 | + topMargin: topMargin |
669 | + leftMargin: leftMargin |
670 | + rightMargin: rightMargin |
671 | + bottomMargin: bottomMargin |
672 | + } |
673 | + } |
674 | + |
675 | + Component { |
676 | + id: forwardButton |
677 | + Button { |
678 | + text: i18n.tr("Connect") |
679 | + onClicked: pageStack.push(Qt.resolvedUrl("LocationPage.qml")) |
680 | + } |
681 | + } |
682 | +} |
683 | |
684 | === added directory 'wizard/qml/Pages/data' |
685 | === added file 'wizard/qml/Pages/data/meet_ubuntu_simcard@30.png' |
686 | Binary files wizard/qml/Pages/data/meet_ubuntu_simcard@30.png 1970-01-01 00:00:00 +0000 and wizard/qml/Pages/data/meet_ubuntu_simcard@30.png 2014-02-20 21:25:07 +0000 differ |
687 | === added file 'wizard/qml/main.qml' |
688 | --- wizard/qml/main.qml 1970-01-01 00:00:00 +0000 |
689 | +++ wizard/qml/main.qml 2014-02-20 21:25:07 +0000 |
690 | @@ -0,0 +1,56 @@ |
691 | +/* |
692 | + * Copyright (C) 2013 Canonical, Ltd. |
693 | + * |
694 | + * This program is free software; you can redistribute it and/or modify |
695 | + * it under the terms of the GNU General Public License as published by |
696 | + * the Free Software Foundation; version 3. |
697 | + * |
698 | + * This program is distributed in the hope that it will be useful, |
699 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
700 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
701 | + * GNU General Public License for more details. |
702 | + * |
703 | + * You should have received a copy of the GNU General Public License |
704 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
705 | + */ |
706 | + |
707 | +import QtQuick 2.0 |
708 | +import GSettings 1.0 |
709 | +import Ubuntu.Components 0.1 |
710 | +import Unity.Application 0.1 |
711 | + |
712 | +MainView { |
713 | + width: units.gu(40) |
714 | + height: units.gu(71) |
715 | + |
716 | + headerColor: "#57365E" |
717 | + backgroundColor: "#A55263" |
718 | + footerColor: "#D75669" |
719 | + |
720 | + Component.onCompleted: { |
721 | + Theme.name = "Ubuntu.Components.Themes.SuruGradient" |
722 | + i18n.domain = "ubuntu-system-settings" |
723 | + } |
724 | + |
725 | + OSKController { |
726 | + anchors.fill: parent |
727 | + } |
728 | + |
729 | + GSettings { |
730 | + id: background |
731 | + schema.id: "org.gnome.desktop.background" |
732 | + } |
733 | + |
734 | + Image { |
735 | + id: image |
736 | + anchors.fill: parent |
737 | + source: background.pictureUri |
738 | + fillMode: Image.PreserveAspectCrop |
739 | + visible: status === Image.Ready |
740 | + } |
741 | + |
742 | + PageStack { |
743 | + id: pageStack |
744 | + Component.onCompleted: push(Qt.resolvedUrl("Pages/WelcomePage.qml")) |
745 | + } |
746 | +} |
747 | |
748 | === added file 'wizard/test.sh' |
749 | --- wizard/test.sh 1970-01-01 00:00:00 +0000 |
750 | +++ wizard/test.sh 2014-02-20 21:25:07 +0000 |
751 | @@ -0,0 +1,16 @@ |
752 | +#!/bin/sh |
753 | + |
754 | +TOPDIR=$(readlink -e "$(dirname ${0})/..") |
755 | + |
756 | +LOCAL_PRIVATE_DIR=$(ls -d ${TOPDIR}/debian/tmp/usr/lib/*/ubuntu-system-settings/private) |
757 | +if [ -n ${LOCAL_PRIVATE_DIR} ]; then |
758 | + echo "Testing against locally built version" |
759 | + export QML2_IMPORT_PATH=${LOCAL_PRIVATE_DIR}:${QML2_IMPORT_PATH} |
760 | + export PATH=${TOPDIR}/debian/tmp/usr/bin:${PATH} |
761 | +else |
762 | + echo "Testing against system version" |
763 | +fi |
764 | + |
765 | +export QML2_IMPORT_PATH=${TOPDIR}/tests/mocks:${QML2_IMPORT_PATH} |
766 | + |
767 | +system-settings-wizard |
768 | |
769 | === added file 'wizard/ubuntu-system-settings-wizard.conf' |
770 | --- wizard/ubuntu-system-settings-wizard.conf 1970-01-01 00:00:00 +0000 |
771 | +++ wizard/ubuntu-system-settings-wizard.conf 2014-02-20 21:25:07 +0000 |
772 | @@ -0,0 +1,22 @@ |
773 | +description "Welcome to Ubuntu" |
774 | +author "Michael Terry <michael.terry@canonical.com>" |
775 | + |
776 | +start on starting xsession-init |
777 | +stop on desktop-start |
778 | +task |
779 | + |
780 | +env RUN_FILE=".config/ubuntu-system-settings/wizard-has-run" |
781 | + |
782 | +pre-start script |
783 | + [ -e $HOME/$RUN_FILE ] && stop || true |
784 | + start maliit-server # we need OSK for "About you" page |
785 | +end script |
786 | + |
787 | +exec ubuntu-touch-session system-settings-wizard |
788 | + |
789 | +post-stop script |
790 | + if ! [ -e $HOME/$RUN_FILE ]; then |
791 | + mkdir -p $(dirname $HOME/$RUN_FILE) |
792 | + touch $HOME/$RUN_FILE |
793 | + fi |
794 | +end script |
795 | |
796 | === added file 'wizard/ui.qrc' |
797 | --- wizard/ui.qrc 1970-01-01 00:00:00 +0000 |
798 | +++ wizard/ui.qrc 2014-02-20 21:25:07 +0000 |
799 | @@ -0,0 +1,13 @@ |
800 | +<RCC> |
801 | + <qresource prefix="/"> |
802 | + <file>qml/main.qml</file> |
803 | + <file>qml/Components/Page.qml</file> |
804 | + <file>qml/Pages/LocationPage.qml</file> |
805 | + <file>qml/Pages/SetupCompletePage.qml</file> |
806 | + <file>qml/Pages/SimCardPage.qml</file> |
807 | + <file>qml/Pages/SpinnerPage.qml</file> |
808 | + <file>qml/Pages/WelcomePage.qml</file> |
809 | + <file>qml/Pages/WiFiPage.qml</file> |
810 | + <file>qml/Pages/data/meet_ubuntu_simcard@30.png</file> |
811 | + </qresource> |
812 | +</RCC> |
PASSED: Continuous integration, rev:497 jenkins. qa.ubuntu. com/job/ ubuntu- system- settings- ci/506/ jenkins. qa.ubuntu. com/job/ ubuntu- system- settings- trusty- amd64-ci/ 22 jenkins. qa.ubuntu. com/job/ ubuntu- system- settings- trusty- armhf-ci/ 10 jenkins. qa.ubuntu. com/job/ ubuntu- system- settings- trusty- armhf-ci/ 10/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ ubuntu- system- settings- trusty- i386-ci/ 9
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: 10.97.0. 26:8080/ job/ubuntu- system- settings- ci/506/ rebuild
http://