Merge lp:~dobey/ubuntu/oneiric/ubuntuone-installer/release-173 into lp:ubuntu/oneiric/ubuntuone-installer

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
Reviewer Review Type Date Requested Status
Ken VanDine Approve
Review via email: mp+72785@code.launchpad.net
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
=== removed file 'MANIFEST'
--- MANIFEST 2011-08-17 12:00:40 +0000
+++ MANIFEST 1970-01-01 00:00:00 +0000
@@ -1,17 +0,0 @@
1# file GENERATED by distutils, do NOT edit
2COPYING
3MANIFEST
4run-tests
5setup.py
6ubuntuone-installer.desktop.in
7ubuntuone.installer.pth
8bin/ubuntuone-installer
9data/header.png
10po/LINGUAS
11po/POTFILES.in
12po/ubuntuone-installer.pot
13ubuntuone/__init__.py
14ubuntuone/installer/__init__.py
15ubuntuone/installer/gui.py
16ubuntuone/installer/tests/__init__.py
17ubuntuone/installer/tests/test_gui.py
180
=== modified file 'PKG-INFO'
--- PKG-INFO 2011-08-17 12:00:40 +0000
+++ PKG-INFO 2011-08-24 20:37:24 +0000
@@ -1,6 +1,6 @@
1Metadata-Version: 1.11Metadata-Version: 1.1
2Name: ubuntuone-installer2Name: ubuntuone-installer
3Version: 1.7.23Version: 1.7.3
4Summary: Ubuntu One Installer4Summary: Ubuntu One Installer
5Home-page: https://launchpad.net/ubuntuone-installer5Home-page: https://launchpad.net/ubuntuone-installer
6Author: Ubuntu One Hackers6Author: Ubuntu One Hackers
77
=== removed file 'data/header.png'
8Binary files data/header.png 2011-08-17 12:00:40 +0000 and data/header.png 1970-01-01 00:00:00 +0000 differ8Binary files data/header.png 2011-08-17 12:00:40 +0000 and data/header.png 1970-01-01 00:00:00 +0000 differ
=== added directory 'data/icons'
=== added directory 'data/icons/16x16'
=== added directory 'data/icons/16x16/apps'
=== added file 'data/icons/16x16/apps/ubuntuone-installer.png'
9Binary 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 differ9Binary 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
=== added directory 'data/icons/24x24'
=== added directory 'data/icons/24x24/apps'
=== added file 'data/icons/24x24/apps/ubuntuone-installer.png'
10Binary 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 differ10Binary 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
=== added directory 'data/icons/32x32'
=== added directory 'data/icons/32x32/apps'
=== added file 'data/icons/32x32/apps/ubuntuone-installer.png'
11Binary 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 differ11Binary 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
=== added directory 'data/icons/48x48'
=== added directory 'data/icons/48x48/apps'
=== added file 'data/icons/48x48/apps/ubuntuone-installer.png'
12Binary 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 differ12Binary 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
=== added file 'data/share.png'
13Binary files data/share.png 1970-01-01 00:00:00 +0000 and data/share.png 2011-08-24 20:37:24 +0000 differ13Binary files data/share.png 1970-01-01 00:00:00 +0000 and data/share.png 2011-08-24 20:37:24 +0000 differ
=== added file 'data/stream.png'
14Binary files data/stream.png 1970-01-01 00:00:00 +0000 and data/stream.png 2011-08-24 20:37:24 +0000 differ14Binary files data/stream.png 1970-01-01 00:00:00 +0000 and data/stream.png 2011-08-24 20:37:24 +0000 differ
=== added file 'data/sync.png'
15Binary files data/sync.png 1970-01-01 00:00:00 +0000 and data/sync.png 2011-08-24 20:37:24 +0000 differ15Binary files data/sync.png 1970-01-01 00:00:00 +0000 and data/sync.png 2011-08-24 20:37:24 +0000 differ
=== added file 'data/u1logo.png'
16Binary files data/u1logo.png 1970-01-01 00:00:00 +0000 and data/u1logo.png 2011-08-24 20:37:24 +0000 differ16Binary files data/u1logo.png 1970-01-01 00:00:00 +0000 and data/u1logo.png 2011-08-24 20:37:24 +0000 differ
=== modified file 'debian/changelog'
--- debian/changelog 2011-08-22 14:39:30 +0000
+++ debian/changelog 2011-08-24 20:37:24 +0000
@@ -1,3 +1,12 @@
1ubuntuone-installer (1.7.3-0ubuntu1) oneiric; urgency=low
2
3 * New upstream release.
4 - Add icons for the installer app (LP: #833231)
5 - Update the UI to match the final design (LP: #828195)
6 - Add a learn more button (LP: #828169)
7
8 -- Rodney Dawes <rodney.dawes@ubuntu.com> Wed, 24 Aug 2011 16:30:01 -0400
9
1ubuntuone-installer (1.7.2-0ubuntu2) oneiric; urgency=low10ubuntuone-installer (1.7.2-0ubuntu2) oneiric; urgency=low
211
3 * Require new DistUtilsExtra, avoid override with xvfb, fixes FTBFS12 * Require new DistUtilsExtra, avoid override with xvfb, fixes FTBFS
413
=== removed file 'po/ubuntuone-installer.pot'
--- po/ubuntuone-installer.pot 2011-08-17 12:00:40 +0000
+++ po/ubuntuone-installer.pot 1970-01-01 00:00:00 +0000
@@ -1,22 +0,0 @@
1# SOME DESCRIPTIVE TITLE.
2# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3# This file is distributed under the same license as the PACKAGE package.
4# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5#
6#, fuzzy
7msgid ""
8msgstr ""
9"Project-Id-Version: PACKAGE VERSION\n"
10"Report-Msgid-Bugs-To: \n"
11"POT-Creation-Date: 2011-08-11 14:12-0400\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
15"Language: \n"
16"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=CHARSET\n"
18"Content-Transfer-Encoding: 8bit\n"
19
20#: ../ubuntuone-installer.desktop.in.h:1
21msgid "Configure and manage your Ubuntu One account"
22msgstr ""
230
=== modified file 'setup.py'
--- setup.py 2011-08-17 12:00:40 +0000
+++ setup.py 2011-08-24 20:37:24 +0000
@@ -52,7 +52,7 @@
5252
53DistUtilsExtra.auto.setup(53DistUtilsExtra.auto.setup(
54 name='ubuntuone-installer',54 name='ubuntuone-installer',
55 version='1.7.2',55 version='1.7.3',
56 license='GPL v3',56 license='GPL v3',
57 author='Ubuntu One Hackers',57 author='Ubuntu One Hackers',
58 author_email='ubuntuone-users@lists.launchpad.net',58 author_email='ubuntuone-users@lists.launchpad.net',
5959
=== modified file 'ubuntuone-installer.desktop.in'
--- ubuntuone-installer.desktop.in 2011-08-17 12:00:40 +0000
+++ ubuntuone-installer.desktop.in 2011-08-24 20:37:24 +0000
@@ -2,7 +2,7 @@
2Name=Ubuntu One2Name=Ubuntu One
3_Comment=Configure and manage your Ubuntu One account3_Comment=Configure and manage your Ubuntu One account
4Exec=ubuntuone-installer4Exec=ubuntuone-installer
5Icon=ubuntuone5Icon=ubuntuone-installer
6Terminal=false6Terminal=false
7Type=Application7Type=Application
8Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;X-GNOME-PersonalSettings8Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;X-GNOME-PersonalSettings
99
=== modified file 'ubuntuone/installer/gui.py'
--- ubuntuone/installer/gui.py 2011-08-17 12:00:40 +0000
+++ ubuntuone/installer/gui.py 2011-08-24 20:37:24 +0000
@@ -19,7 +19,7 @@
19import aptdaemon.client as aptclient19import aptdaemon.client as aptclient
20import os20import os
2121
22from gi.repository import Gtk, GObject, GLib, Gdk22from gi.repository import Gtk, GObject, GLib, Gdk, Pango
2323
24# Some shenanigans to deal with pyflakes complaining24# Some shenanigans to deal with pyflakes complaining
25inline_callbacks = None25inline_callbacks = None
@@ -36,6 +36,29 @@
36 """Exception for when on an unsupported distribution."""36 """Exception for when on an unsupported distribution."""
3737
3838
39class VSeparator(Gtk.VSeparator):
40 """A dotted line separator."""
41
42 def do_draw(self, cairo_context):
43 """Draw some magic."""
44 sc = self.get_style_context()
45 state = self.get_state_flags()
46 width = self.get_allocated_width()
47 height = self.get_allocated_height()
48
49 sc.save()
50 sc.set_state(state)
51
52 y = 0
53 x = width / 2
54 while y < height:
55 Gtk.render_activity(sc, cairo_context, float(x), float(y), 1, 1)
56 y += 3
57
58 sc.restore()
59 return True
60
61
39class Window(Gtk.Window):62class Window(Gtk.Window):
40 """The main dialog to use."""63 """The main dialog to use."""
4164
@@ -47,28 +70,54 @@
47 def __init__(self):70 def __init__(self):
48 Gtk.Window.__init__(self)71 Gtk.Window.__init__(self)
49 self.set_title('Ubuntu One')72 self.set_title('Ubuntu One')
73 self.set_default_icon_name('ubuntuone-installer')
50 self.set_type_hint(Gdk.WindowTypeHint.DIALOG)74 self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
51 self.set_position(Gtk.WindowPosition.CENTER)75 self.set_position(Gtk.WindowPosition.CENTER)
5276
53 vbox = Gtk.VBox()77 vbox = Gtk.VBox()
78 vbox.set_spacing(24)
54 self.add(vbox)79 self.add(vbox)
55 vbox.show()80 vbox.show()
5681
57 self.__header = Gtk.Image()82 self.__header = Gtk.HBox()
58 self.__header.set_size_request(734, 162)83 self.__header.set_border_width(12)
84 self.__header.set_spacing(64)
59 vbox.pack_start(self.__header, False, False, 0)85 vbox.pack_start(self.__header, False, False, 0)
60 self.__header.show()86 self.__header.show()
6187
62 header = self.__find_data_file('header.png')88 self.__hlabelbox = Gtk.VBox()
63 if header:89 self.__hlabelbox.set_spacing(12)
64 self.__header.set_from_file(header)90 self.__header.pack_start(self.__hlabelbox, True, True, 0)
91 self.__hlabelbox.show()
92
93 self.__hlabel = Gtk.Label((u'<span size="xx-large">{}</span>').format(
94 u'Install Ubuntu One'))
95 self.__hlabel.set_use_markup(True)
96 self.__hlabel.set_alignment(0.0, 0.0)
97 self.__hlabelbox.pack_start(self.__hlabel, False, False, 0)
98 self.__hlabel.show()
99
100 self.__hlabel2 = Gtk.Label((u'<span size="large">{}</span>').format(
101 u'Discover the freedom of your personal cloud'))
102 self.__hlabel2.set_use_markup(True)
103 self.__hlabel2.set_alignment(0.0, 0.0)
104 self.__hlabelbox.pack_start(self.__hlabel2, False, False, 0)
105 self.__hlabel2.show()
106
107 self.__hlogo = Gtk.Image()
108 self.__header.pack_end(self.__hlogo, False, False, 0)
109 self.__hlogo.show()
110
111 logo = self.__find_data_file('u1logo.png')
112 if logo:
113 self.__hlogo.set_from_file(logo)
65114
66 self.__notebook = Gtk.Notebook()115 self.__notebook = Gtk.Notebook()
67 self.__notebook.set_show_tabs(False)116 self.__notebook.set_show_tabs(False)
68 self.__notebook.set_show_border(False)117 self.__notebook.set_show_border(False)
69 self.__notebook.set_scrollable(False)118 self.__notebook.set_scrollable(False)
70 self.__notebook.popup_disable()119 self.__notebook.popup_disable()
71 self.__notebook.set_size_request(734, 240)120 #self.__notebook.set_size_request(734, 240)
72121
73 self.__info_page = self.__construct_info_page()122 self.__info_page = self.__construct_info_page()
74 self.__notebook.append_page(self.__info_page, None)123 self.__notebook.append_page(self.__info_page, None)
@@ -81,7 +130,7 @@
81 self.__notebook.append_page(self.__progress_page, None)130 self.__notebook.append_page(self.__progress_page, None)
82 self.__progress_page.show()131 self.__progress_page.show()
83132
84 vbox.add(self.__notebook)133 vbox.pack_start(self.__notebook, False, False, 0)
85 self.__notebook.show()134 self.__notebook.show()
86135
87 self.__action_area = Gtk.HButtonBox()136 self.__action_area = Gtk.HButtonBox()
@@ -97,8 +146,7 @@
97 self.__action_area.add(self.__cancel_button)146 self.__action_area.add(self.__cancel_button)
98 self.__cancel_button.show()147 self.__cancel_button.show()
99148
100 self.__main_button = Gtk.Button.new_with_mnemonic(149 self.__main_button = Gtk.Button.new_with_mnemonic('I_nstall')
101 'I_nstall Ubuntu One')
102 self.__main_button.set_image(Gtk.Image.new_from_stock(150 self.__main_button.set_image(Gtk.Image.new_from_stock(
103 Gtk.STOCK_OK, Gtk.IconSize.BUTTON))151 Gtk.STOCK_OK, Gtk.IconSize.BUTTON))
104 self.__main_button.connect('clicked', lambda x: self.emit(152 self.__main_button.connect('clicked', lambda x: self.emit(
@@ -107,6 +155,12 @@
107 self.__main_button.grab_focus()155 self.__main_button.grab_focus()
108 self.__main_button.show()156 self.__main_button.show()
109157
158 self.__lm_button = Gtk.LinkButton.new_with_label(
159 'https://one.ubuntu.com/', 'Learn more')
160 self.__action_area.add(self.__lm_button)
161 self.__action_area.set_child_secondary(self.__lm_button, True)
162 self.__lm_button.show()
163
110 self.connect('destroy', self.destroyed)164 self.connect('destroy', self.destroyed)
111 self.connect('response', self.__got_response)165 self.connect('response', self.__got_response)
112 self.connect('delete-event', lambda x, y: self.emit(166 self.connect('delete-event', lambda x, y: self.emit(
@@ -124,6 +178,11 @@
124 if os.path.exists(path):178 if os.path.exists(path):
125 return os.path.abspath(path)179 return os.path.abspath(path)
126180
181 path = os.path.join(os.getcwd(), os.path.pardir, os.path.pardir,
182 'data', filename)
183 if os.path.exists(path):
184 return os.path.abspath(path)
185
127 for folder in GLib.get_system_data_dirs():186 for folder in GLib.get_system_data_dirs():
128 path = os.path.join(folder, 'ubuntuone-installer', filename)187 path = os.path.join(folder, 'ubuntuone-installer', filename)
129 if os.path.exists(path):188 if os.path.exists(path):
@@ -141,20 +200,101 @@
141200
142 def __construct_info_page(self):201 def __construct_info_page(self):
143 """Build the initial info page."""202 """Build the initial info page."""
144 page = Gtk.VBox()203 page = Gtk.HBox()
145 page.set_border_width(24)204 page.set_border_width(12)
205 page.set_spacing(12)
146 page.show()206 page.show()
147207
148 label = Gtk.Label(208 # Get the width of a larger character in pixels
149 u'<big><b>{}</b></big>\n\n {}\n {}\n {}'.format(209 layout = page.create_pango_layout(u'W')
150 u'The personal cloud that brings your digital life together',210 (width, height) = layout.get_size()
151 u'• Synchronize files across devices\n',211 width = width / Pango.SCALE
152 u'• Access files from anywhere\n',212 height = height / Pango.SCALE
153 (u'• Add Music Streaming for unlimited'213
154 u' music on the go')))214 table = Gtk.Table(3, 5, False)
155 label.set_use_markup(True)215 table.set_row_spacings(12)
156 label.set_alignment(0.0, 0.0)216 table.set_col_spacings(12)
157 page.add(label)217 page.pack_start(table, True, True, 24)
218 table.show()
219
220 label = Gtk.Label(u'<big>{}</big>'.format(u'Sync'))
221 label.set_use_markup(True)
222 table.attach_defaults(label, 0, 1, 0, 1)
223 label.show()
224
225 image = Gtk.Image()
226 table.attach_defaults(image, 0, 1, 1, 2)
227 image.show()
228 path = self.__find_data_file('sync.png')
229 if path:
230 image.set_from_file(path)
231
232 # Get the width in chars to set max for description labels
233 width_chars = (image.get_pixbuf().get_width() / width) * 2.5
234
235 label = Gtk.Label(u'<small>{}</small>'.format(
236 (u'Sync files across your devices.')))
237 label.set_max_width_chars(width_chars)
238 label.set_width_chars(width_chars)
239 label.set_use_markup(True)
240 label.set_line_wrap(True)
241 label.set_alignment(0.5, 0.0)
242 label.set_justify(Gtk.Justification.CENTER)
243 table.attach_defaults(label, 0, 1, 2, 3)
244 label.show()
245
246 separator = VSeparator()
247 table.attach_defaults(separator, 1, 2, 0, 3)
248 separator.show()
249
250 label = Gtk.Label(u'<big>{}</big>'.format(u'Stream'))
251 label.set_use_markup(True)
252 table.attach_defaults(label, 2, 3, 0, 1)
253 label.show()
254
255 image = Gtk.Image()
256 table.attach_defaults(image, 2, 3, 1, 2)
257 image.show()
258 path = self.__find_data_file('stream.png')
259 if path:
260 image.set_from_file(path)
261
262 label = Gtk.Label(u'<small>{}</small>'.format(
263 (u'Stream your music on the move and offline.')))
264 label.set_max_width_chars(width_chars)
265 label.set_width_chars(width_chars)
266 label.set_use_markup(True)
267 label.set_line_wrap(True)
268 label.set_alignment(0.5, 0.0)
269 label.set_justify(Gtk.Justification.CENTER)
270 table.attach_defaults(label, 2, 3, 2, 3)
271 label.show()
272
273 separator = VSeparator()
274 table.attach_defaults(separator, 3, 4, 0, 3)
275 separator.show()
276
277 label = Gtk.Label(u'<big>{}</big>'.format(u'Share'))
278 label.set_use_markup(True)
279 table.attach_defaults(label, 4, 5, 0, 1)
280 label.show()
281
282 image = Gtk.Image()
283 table.attach_defaults(image, 4, 5, 1, 2)
284 image.show()
285 path = self.__find_data_file('share.png')
286 if path:
287 image.set_from_file(path)
288
289 label = Gtk.Label(u'<small>{}</small>'.format(
290 (u'Share with colleagues, friends, and family.')))
291 label.set_max_width_chars(width_chars)
292 label.set_width_chars(width_chars)
293 label.set_use_markup(True)
294 label.set_line_wrap(True)
295 label.set_alignment(0.5, 0.0)
296 label.set_justify(Gtk.Justification.CENTER)
297 table.attach_defaults(label, 4, 5, 2, 3)
158 label.show()298 label.show()
159299
160 return page300 return page

Subscribers

People subscribed via source and target branches

to all changes: