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
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'
36Binary 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'
41Binary 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'
45Binary 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'
49Binary 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'
53Binary 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'
55Binary 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'
57Binary 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'
59Binary 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'
61Binary 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

Subscribers

People subscribed via source and target branches

to all changes: