Merge lp:~dobey/ubuntu/oneiric/ubuntuone-installer/release-173 into lp:ubuntu/oneiric/ubuntuone-installer
- Oneiric (11.10)
- release-173
- Merge into oneiric
Proposed by
dobey
Status: | Merged |
---|---|
Merged at revision: | 5 |
Proposed branch: | lp:~dobey/ubuntu/oneiric/ubuntuone-installer/release-173 |
Merge into: | lp:ubuntu/oneiric/ubuntuone-installer |
Diff against target: |
392 lines (+174/-64) 7 files modified
MANIFEST (+0/-17) PKG-INFO (+1/-1) debian/changelog (+9/-0) po/ubuntuone-installer.pot (+0/-22) setup.py (+1/-1) ubuntuone-installer.desktop.in (+1/-1) ubuntuone/installer/gui.py (+162/-22) |
To merge this branch: | bzr merge lp:~dobey/ubuntu/oneiric/ubuntuone-installer/release-173 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ken VanDine | Approve | ||
Review via email: mp+72785@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Ken VanDine (ken-vandine) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === removed file 'MANIFEST' |
2 | --- MANIFEST 2011-08-17 12:00:40 +0000 |
3 | +++ MANIFEST 1970-01-01 00:00:00 +0000 |
4 | @@ -1,17 +0,0 @@ |
5 | -# file GENERATED by distutils, do NOT edit |
6 | -COPYING |
7 | -MANIFEST |
8 | -run-tests |
9 | -setup.py |
10 | -ubuntuone-installer.desktop.in |
11 | -ubuntuone.installer.pth |
12 | -bin/ubuntuone-installer |
13 | -data/header.png |
14 | -po/LINGUAS |
15 | -po/POTFILES.in |
16 | -po/ubuntuone-installer.pot |
17 | -ubuntuone/__init__.py |
18 | -ubuntuone/installer/__init__.py |
19 | -ubuntuone/installer/gui.py |
20 | -ubuntuone/installer/tests/__init__.py |
21 | -ubuntuone/installer/tests/test_gui.py |
22 | |
23 | === modified file 'PKG-INFO' |
24 | --- PKG-INFO 2011-08-17 12:00:40 +0000 |
25 | +++ PKG-INFO 2011-08-24 20:37:24 +0000 |
26 | @@ -1,6 +1,6 @@ |
27 | Metadata-Version: 1.1 |
28 | Name: ubuntuone-installer |
29 | -Version: 1.7.2 |
30 | +Version: 1.7.3 |
31 | Summary: Ubuntu One Installer |
32 | Home-page: https://launchpad.net/ubuntuone-installer |
33 | Author: Ubuntu One Hackers |
34 | |
35 | === removed file 'data/header.png' |
36 | Binary files data/header.png 2011-08-17 12:00:40 +0000 and data/header.png 1970-01-01 00:00:00 +0000 differ |
37 | === added directory 'data/icons' |
38 | === added directory 'data/icons/16x16' |
39 | === added directory 'data/icons/16x16/apps' |
40 | === added file 'data/icons/16x16/apps/ubuntuone-installer.png' |
41 | Binary files data/icons/16x16/apps/ubuntuone-installer.png 1970-01-01 00:00:00 +0000 and data/icons/16x16/apps/ubuntuone-installer.png 2011-08-24 20:37:24 +0000 differ |
42 | === added directory 'data/icons/24x24' |
43 | === added directory 'data/icons/24x24/apps' |
44 | === added file 'data/icons/24x24/apps/ubuntuone-installer.png' |
45 | Binary files data/icons/24x24/apps/ubuntuone-installer.png 1970-01-01 00:00:00 +0000 and data/icons/24x24/apps/ubuntuone-installer.png 2011-08-24 20:37:24 +0000 differ |
46 | === added directory 'data/icons/32x32' |
47 | === added directory 'data/icons/32x32/apps' |
48 | === added file 'data/icons/32x32/apps/ubuntuone-installer.png' |
49 | Binary files data/icons/32x32/apps/ubuntuone-installer.png 1970-01-01 00:00:00 +0000 and data/icons/32x32/apps/ubuntuone-installer.png 2011-08-24 20:37:24 +0000 differ |
50 | === added directory 'data/icons/48x48' |
51 | === added directory 'data/icons/48x48/apps' |
52 | === added file 'data/icons/48x48/apps/ubuntuone-installer.png' |
53 | Binary files data/icons/48x48/apps/ubuntuone-installer.png 1970-01-01 00:00:00 +0000 and data/icons/48x48/apps/ubuntuone-installer.png 2011-08-24 20:37:24 +0000 differ |
54 | === added file 'data/share.png' |
55 | Binary files data/share.png 1970-01-01 00:00:00 +0000 and data/share.png 2011-08-24 20:37:24 +0000 differ |
56 | === added file 'data/stream.png' |
57 | Binary files data/stream.png 1970-01-01 00:00:00 +0000 and data/stream.png 2011-08-24 20:37:24 +0000 differ |
58 | === added file 'data/sync.png' |
59 | Binary files data/sync.png 1970-01-01 00:00:00 +0000 and data/sync.png 2011-08-24 20:37:24 +0000 differ |
60 | === added file 'data/u1logo.png' |
61 | Binary files data/u1logo.png 1970-01-01 00:00:00 +0000 and data/u1logo.png 2011-08-24 20:37:24 +0000 differ |
62 | === modified file 'debian/changelog' |
63 | --- debian/changelog 2011-08-22 14:39:30 +0000 |
64 | +++ debian/changelog 2011-08-24 20:37:24 +0000 |
65 | @@ -1,3 +1,12 @@ |
66 | +ubuntuone-installer (1.7.3-0ubuntu1) oneiric; urgency=low |
67 | + |
68 | + * New upstream release. |
69 | + - Add icons for the installer app (LP: #833231) |
70 | + - Update the UI to match the final design (LP: #828195) |
71 | + - Add a learn more button (LP: #828169) |
72 | + |
73 | + -- Rodney Dawes <rodney.dawes@ubuntu.com> Wed, 24 Aug 2011 16:30:01 -0400 |
74 | + |
75 | ubuntuone-installer (1.7.2-0ubuntu2) oneiric; urgency=low |
76 | |
77 | * Require new DistUtilsExtra, avoid override with xvfb, fixes FTBFS |
78 | |
79 | === removed file 'po/ubuntuone-installer.pot' |
80 | --- po/ubuntuone-installer.pot 2011-08-17 12:00:40 +0000 |
81 | +++ po/ubuntuone-installer.pot 1970-01-01 00:00:00 +0000 |
82 | @@ -1,22 +0,0 @@ |
83 | -# SOME DESCRIPTIVE TITLE. |
84 | -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
85 | -# This file is distributed under the same license as the PACKAGE package. |
86 | -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. |
87 | -# |
88 | -#, fuzzy |
89 | -msgid "" |
90 | -msgstr "" |
91 | -"Project-Id-Version: PACKAGE VERSION\n" |
92 | -"Report-Msgid-Bugs-To: \n" |
93 | -"POT-Creation-Date: 2011-08-11 14:12-0400\n" |
94 | -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
95 | -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
96 | -"Language-Team: LANGUAGE <LL@li.org>\n" |
97 | -"Language: \n" |
98 | -"MIME-Version: 1.0\n" |
99 | -"Content-Type: text/plain; charset=CHARSET\n" |
100 | -"Content-Transfer-Encoding: 8bit\n" |
101 | - |
102 | -#: ../ubuntuone-installer.desktop.in.h:1 |
103 | -msgid "Configure and manage your Ubuntu One account" |
104 | -msgstr "" |
105 | |
106 | === modified file 'setup.py' |
107 | --- setup.py 2011-08-17 12:00:40 +0000 |
108 | +++ setup.py 2011-08-24 20:37:24 +0000 |
109 | @@ -52,7 +52,7 @@ |
110 | |
111 | DistUtilsExtra.auto.setup( |
112 | name='ubuntuone-installer', |
113 | - version='1.7.2', |
114 | + version='1.7.3', |
115 | license='GPL v3', |
116 | author='Ubuntu One Hackers', |
117 | author_email='ubuntuone-users@lists.launchpad.net', |
118 | |
119 | === modified file 'ubuntuone-installer.desktop.in' |
120 | --- ubuntuone-installer.desktop.in 2011-08-17 12:00:40 +0000 |
121 | +++ ubuntuone-installer.desktop.in 2011-08-24 20:37:24 +0000 |
122 | @@ -2,7 +2,7 @@ |
123 | Name=Ubuntu One |
124 | _Comment=Configure and manage your Ubuntu One account |
125 | Exec=ubuntuone-installer |
126 | -Icon=ubuntuone |
127 | +Icon=ubuntuone-installer |
128 | Terminal=false |
129 | Type=Application |
130 | Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;X-GNOME-PersonalSettings |
131 | |
132 | === modified file 'ubuntuone/installer/gui.py' |
133 | --- ubuntuone/installer/gui.py 2011-08-17 12:00:40 +0000 |
134 | +++ ubuntuone/installer/gui.py 2011-08-24 20:37:24 +0000 |
135 | @@ -19,7 +19,7 @@ |
136 | import aptdaemon.client as aptclient |
137 | import os |
138 | |
139 | -from gi.repository import Gtk, GObject, GLib, Gdk |
140 | +from gi.repository import Gtk, GObject, GLib, Gdk, Pango |
141 | |
142 | # Some shenanigans to deal with pyflakes complaining |
143 | inline_callbacks = None |
144 | @@ -36,6 +36,29 @@ |
145 | """Exception for when on an unsupported distribution.""" |
146 | |
147 | |
148 | +class VSeparator(Gtk.VSeparator): |
149 | + """A dotted line separator.""" |
150 | + |
151 | + def do_draw(self, cairo_context): |
152 | + """Draw some magic.""" |
153 | + sc = self.get_style_context() |
154 | + state = self.get_state_flags() |
155 | + width = self.get_allocated_width() |
156 | + height = self.get_allocated_height() |
157 | + |
158 | + sc.save() |
159 | + sc.set_state(state) |
160 | + |
161 | + y = 0 |
162 | + x = width / 2 |
163 | + while y < height: |
164 | + Gtk.render_activity(sc, cairo_context, float(x), float(y), 1, 1) |
165 | + y += 3 |
166 | + |
167 | + sc.restore() |
168 | + return True |
169 | + |
170 | + |
171 | class Window(Gtk.Window): |
172 | """The main dialog to use.""" |
173 | |
174 | @@ -47,28 +70,54 @@ |
175 | def __init__(self): |
176 | Gtk.Window.__init__(self) |
177 | self.set_title('Ubuntu One') |
178 | + self.set_default_icon_name('ubuntuone-installer') |
179 | self.set_type_hint(Gdk.WindowTypeHint.DIALOG) |
180 | self.set_position(Gtk.WindowPosition.CENTER) |
181 | |
182 | vbox = Gtk.VBox() |
183 | + vbox.set_spacing(24) |
184 | self.add(vbox) |
185 | vbox.show() |
186 | |
187 | - self.__header = Gtk.Image() |
188 | - self.__header.set_size_request(734, 162) |
189 | + self.__header = Gtk.HBox() |
190 | + self.__header.set_border_width(12) |
191 | + self.__header.set_spacing(64) |
192 | vbox.pack_start(self.__header, False, False, 0) |
193 | self.__header.show() |
194 | |
195 | - header = self.__find_data_file('header.png') |
196 | - if header: |
197 | - self.__header.set_from_file(header) |
198 | + self.__hlabelbox = Gtk.VBox() |
199 | + self.__hlabelbox.set_spacing(12) |
200 | + self.__header.pack_start(self.__hlabelbox, True, True, 0) |
201 | + self.__hlabelbox.show() |
202 | + |
203 | + self.__hlabel = Gtk.Label((u'<span size="xx-large">{}</span>').format( |
204 | + u'Install Ubuntu One')) |
205 | + self.__hlabel.set_use_markup(True) |
206 | + self.__hlabel.set_alignment(0.0, 0.0) |
207 | + self.__hlabelbox.pack_start(self.__hlabel, False, False, 0) |
208 | + self.__hlabel.show() |
209 | + |
210 | + self.__hlabel2 = Gtk.Label((u'<span size="large">{}</span>').format( |
211 | + u'Discover the freedom of your personal cloud')) |
212 | + self.__hlabel2.set_use_markup(True) |
213 | + self.__hlabel2.set_alignment(0.0, 0.0) |
214 | + self.__hlabelbox.pack_start(self.__hlabel2, False, False, 0) |
215 | + self.__hlabel2.show() |
216 | + |
217 | + self.__hlogo = Gtk.Image() |
218 | + self.__header.pack_end(self.__hlogo, False, False, 0) |
219 | + self.__hlogo.show() |
220 | + |
221 | + logo = self.__find_data_file('u1logo.png') |
222 | + if logo: |
223 | + self.__hlogo.set_from_file(logo) |
224 | |
225 | self.__notebook = Gtk.Notebook() |
226 | self.__notebook.set_show_tabs(False) |
227 | self.__notebook.set_show_border(False) |
228 | self.__notebook.set_scrollable(False) |
229 | self.__notebook.popup_disable() |
230 | - self.__notebook.set_size_request(734, 240) |
231 | + #self.__notebook.set_size_request(734, 240) |
232 | |
233 | self.__info_page = self.__construct_info_page() |
234 | self.__notebook.append_page(self.__info_page, None) |
235 | @@ -81,7 +130,7 @@ |
236 | self.__notebook.append_page(self.__progress_page, None) |
237 | self.__progress_page.show() |
238 | |
239 | - vbox.add(self.__notebook) |
240 | + vbox.pack_start(self.__notebook, False, False, 0) |
241 | self.__notebook.show() |
242 | |
243 | self.__action_area = Gtk.HButtonBox() |
244 | @@ -97,8 +146,7 @@ |
245 | self.__action_area.add(self.__cancel_button) |
246 | self.__cancel_button.show() |
247 | |
248 | - self.__main_button = Gtk.Button.new_with_mnemonic( |
249 | - 'I_nstall Ubuntu One') |
250 | + self.__main_button = Gtk.Button.new_with_mnemonic('I_nstall') |
251 | self.__main_button.set_image(Gtk.Image.new_from_stock( |
252 | Gtk.STOCK_OK, Gtk.IconSize.BUTTON)) |
253 | self.__main_button.connect('clicked', lambda x: self.emit( |
254 | @@ -107,6 +155,12 @@ |
255 | self.__main_button.grab_focus() |
256 | self.__main_button.show() |
257 | |
258 | + self.__lm_button = Gtk.LinkButton.new_with_label( |
259 | + 'https://one.ubuntu.com/', 'Learn more') |
260 | + self.__action_area.add(self.__lm_button) |
261 | + self.__action_area.set_child_secondary(self.__lm_button, True) |
262 | + self.__lm_button.show() |
263 | + |
264 | self.connect('destroy', self.destroyed) |
265 | self.connect('response', self.__got_response) |
266 | self.connect('delete-event', lambda x, y: self.emit( |
267 | @@ -124,6 +178,11 @@ |
268 | if os.path.exists(path): |
269 | return os.path.abspath(path) |
270 | |
271 | + path = os.path.join(os.getcwd(), os.path.pardir, os.path.pardir, |
272 | + 'data', filename) |
273 | + if os.path.exists(path): |
274 | + return os.path.abspath(path) |
275 | + |
276 | for folder in GLib.get_system_data_dirs(): |
277 | path = os.path.join(folder, 'ubuntuone-installer', filename) |
278 | if os.path.exists(path): |
279 | @@ -141,20 +200,101 @@ |
280 | |
281 | def __construct_info_page(self): |
282 | """Build the initial info page.""" |
283 | - page = Gtk.VBox() |
284 | - page.set_border_width(24) |
285 | + page = Gtk.HBox() |
286 | + page.set_border_width(12) |
287 | + page.set_spacing(12) |
288 | page.show() |
289 | |
290 | - label = Gtk.Label( |
291 | - u'<big><b>{}</b></big>\n\n {}\n {}\n {}'.format( |
292 | - u'The personal cloud that brings your digital life together', |
293 | - u'• Synchronize files across devices\n', |
294 | - u'• Access files from anywhere\n', |
295 | - (u'• Add Music Streaming for unlimited' |
296 | - u' music on the go'))) |
297 | - label.set_use_markup(True) |
298 | - label.set_alignment(0.0, 0.0) |
299 | - page.add(label) |
300 | + # Get the width of a larger character in pixels |
301 | + layout = page.create_pango_layout(u'W') |
302 | + (width, height) = layout.get_size() |
303 | + width = width / Pango.SCALE |
304 | + height = height / Pango.SCALE |
305 | + |
306 | + table = Gtk.Table(3, 5, False) |
307 | + table.set_row_spacings(12) |
308 | + table.set_col_spacings(12) |
309 | + page.pack_start(table, True, True, 24) |
310 | + table.show() |
311 | + |
312 | + label = Gtk.Label(u'<big>{}</big>'.format(u'Sync')) |
313 | + label.set_use_markup(True) |
314 | + table.attach_defaults(label, 0, 1, 0, 1) |
315 | + label.show() |
316 | + |
317 | + image = Gtk.Image() |
318 | + table.attach_defaults(image, 0, 1, 1, 2) |
319 | + image.show() |
320 | + path = self.__find_data_file('sync.png') |
321 | + if path: |
322 | + image.set_from_file(path) |
323 | + |
324 | + # Get the width in chars to set max for description labels |
325 | + width_chars = (image.get_pixbuf().get_width() / width) * 2.5 |
326 | + |
327 | + label = Gtk.Label(u'<small>{}</small>'.format( |
328 | + (u'Sync files across your devices.'))) |
329 | + label.set_max_width_chars(width_chars) |
330 | + label.set_width_chars(width_chars) |
331 | + label.set_use_markup(True) |
332 | + label.set_line_wrap(True) |
333 | + label.set_alignment(0.5, 0.0) |
334 | + label.set_justify(Gtk.Justification.CENTER) |
335 | + table.attach_defaults(label, 0, 1, 2, 3) |
336 | + label.show() |
337 | + |
338 | + separator = VSeparator() |
339 | + table.attach_defaults(separator, 1, 2, 0, 3) |
340 | + separator.show() |
341 | + |
342 | + label = Gtk.Label(u'<big>{}</big>'.format(u'Stream')) |
343 | + label.set_use_markup(True) |
344 | + table.attach_defaults(label, 2, 3, 0, 1) |
345 | + label.show() |
346 | + |
347 | + image = Gtk.Image() |
348 | + table.attach_defaults(image, 2, 3, 1, 2) |
349 | + image.show() |
350 | + path = self.__find_data_file('stream.png') |
351 | + if path: |
352 | + image.set_from_file(path) |
353 | + |
354 | + label = Gtk.Label(u'<small>{}</small>'.format( |
355 | + (u'Stream your music on the move and offline.'))) |
356 | + label.set_max_width_chars(width_chars) |
357 | + label.set_width_chars(width_chars) |
358 | + label.set_use_markup(True) |
359 | + label.set_line_wrap(True) |
360 | + label.set_alignment(0.5, 0.0) |
361 | + label.set_justify(Gtk.Justification.CENTER) |
362 | + table.attach_defaults(label, 2, 3, 2, 3) |
363 | + label.show() |
364 | + |
365 | + separator = VSeparator() |
366 | + table.attach_defaults(separator, 3, 4, 0, 3) |
367 | + separator.show() |
368 | + |
369 | + label = Gtk.Label(u'<big>{}</big>'.format(u'Share')) |
370 | + label.set_use_markup(True) |
371 | + table.attach_defaults(label, 4, 5, 0, 1) |
372 | + label.show() |
373 | + |
374 | + image = Gtk.Image() |
375 | + table.attach_defaults(image, 4, 5, 1, 2) |
376 | + image.show() |
377 | + path = self.__find_data_file('share.png') |
378 | + if path: |
379 | + image.set_from_file(path) |
380 | + |
381 | + label = Gtk.Label(u'<small>{}</small>'.format( |
382 | + (u'Share with colleagues, friends, and family.'))) |
383 | + label.set_max_width_chars(width_chars) |
384 | + label.set_width_chars(width_chars) |
385 | + label.set_use_markup(True) |
386 | + label.set_line_wrap(True) |
387 | + label.set_alignment(0.5, 0.0) |
388 | + label.set_justify(Gtk.Justification.CENTER) |
389 | + table.attach_defaults(label, 4, 5, 2, 3) |
390 | label.show() |
391 | |
392 | return page |