Merge lp:~dobey/ubuntu/oneiric/ubuntuone-control-panel/fix-823648 into lp:ubuntu/oneiric/ubuntuone-control-panel

Proposed by dobey
Status: Merged
Merged at revision: 28
Proposed branch: lp:~dobey/ubuntu/oneiric/ubuntuone-control-panel/fix-823648
Merge into: lp:ubuntu/oneiric/ubuntuone-control-panel
Diff against target: 4336 lines (+1992/-1277)
33 files modified
MANIFEST (+140/-0)
PKG-INFO (+20/-1)
data/qt/account.ui (+104/-110)
data/qt/controlpanel.ui (+261/-342)
data/qt/device.ui (+3/-3)
data/qt/devices.ui (+66/-76)
data/qt/filesyncstatus.ui (+20/-30)
data/qt/folders.ui (+112/-36)
data/qt/loadingoverlay.ui (+103/-118)
data/qt/preferences.ui (+24/-21)
data/qt/ubuntuone.qss (+84/-33)
debian/changelog (+7/-0)
debian/control (+4/-4)
po/ubuntuone-control-panel.pot (+486/-0)
setup.py (+1/-1)
ubuntuone/controlpanel/backend.py (+3/-1)
ubuntuone/controlpanel/gui/__init__.py (+4/-3)
ubuntuone/controlpanel/gui/qt/controlpanel.py (+1/-1)
ubuntuone/controlpanel/gui/qt/folders.py (+12/-11)
ubuntuone/controlpanel/gui/qt/loadingoverlay.py (+2/-1)
ubuntuone/controlpanel/gui/qt/tests/test_folders.py (+11/-30)
ubuntuone/controlpanel/gui/qt/ui/account_ui.py (+42/-35)
ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py (+72/-94)
ubuntuone/controlpanel/gui/qt/ui/device_ui.py (+3/-3)
ubuntuone/controlpanel/gui/qt/ui/devices_ui.py (+28/-31)
ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py (+5/-9)
ubuntuone/controlpanel/gui/qt/ui/folders_ui.py (+48/-19)
ubuntuone/controlpanel/gui/qt/ui/images_rc.py (+281/-223)
ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py (+2/-7)
ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py (+1/-1)
ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py (+30/-29)
ubuntuone/controlpanel/gui/tests/test_url_sign.py (+8/-2)
ubuntuone/controlpanel/logger.py (+4/-2)
To merge this branch: bzr merge lp:~dobey/ubuntu/oneiric/ubuntuone-control-panel/fix-823648
Reviewer Review Type Date Requested Status
Ken VanDine Approve
Ubuntu branches Pending
Review via email: mp+71413@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ken VanDine (ken-vandine) wrote :

Approved!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'MANIFEST'
2--- MANIFEST 1970-01-01 00:00:00 +0000
3+++ MANIFEST 2011-08-12 19:16:23 +0000
4@@ -0,0 +1,140 @@
5+# file GENERATED by distutils, do NOT edit
6+COPYING
7+MANIFEST
8+README
9+com.ubuntuone.controlpanel.gui.service.in
10+com.ubuntuone.controlpanel.service.in
11+pylintrc
12+run-tests
13+run-tests.bat
14+setup.py
15+ubuntuone-control-panel-gtk.desktop.in
16+ubuntuone-control-panel.in
17+ubuntuone.controlpanel.pth
18+bin/ubuntuone-control-panel-backend
19+bin/ubuntuone-control-panel-gtk
20+bin/ubuntuone-control-panel-qt
21+data/Ubuntu-R.ttf
22+data/computer.png
23+data/contacts.png
24+data/external_icon_orange.png
25+data/external_icon_white.png
26+data/facebook.png
27+data/files.png
28+data/folder.png
29+data/music-store.png
30+data/music-stream.png
31+data/notes.png
32+data/overview.png
33+data/phone.png
34+data/services-bookmarks.png
35+data/services-contacts.png
36+data/services-files-example.png
37+data/services-files.png
38+data/sync_status_alert.png
39+data/sync_status_disconnected.png
40+data/sync_status_sync_done.png
41+data/sync_status_syncing.png
42+data/twitter.png
43+data/u1icon.png
44+data/gtk/dashboard.ui
45+data/gtk/device.ui
46+data/gtk/devices.ui
47+data/gtk/install.ui
48+data/gtk/management.ui
49+data/gtk/overview.ui
50+data/gtk/services.ui
51+data/gtk/volumes.ui
52+data/qt/account.ui
53+data/qt/controlpanel.ui
54+data/qt/device.ui
55+data/qt/devices.ui
56+data/qt/filesyncstatus.ui
57+data/qt/folders.ui
58+data/qt/images.qrc
59+data/qt/loadingoverlay.ui
60+data/qt/mainwindow.ui
61+data/qt/preferences.ui
62+data/qt/ubuntuone.qss
63+docs/ubuntuone-control-panel-gtk.1
64+po/POTFILES.in
65+po/ubuntuone-control-panel.pot
66+ubuntuone/__init__.py
67+ubuntuone/controlpanel/__init__.py
68+ubuntuone/controlpanel/backend.py
69+ubuntuone/controlpanel/constants.py.in
70+ubuntuone/controlpanel/dbus_service.py
71+ubuntuone/controlpanel/logger.py
72+ubuntuone/controlpanel/login_client.py
73+ubuntuone/controlpanel/replication_client.py
74+ubuntuone/controlpanel/utils.py
75+ubuntuone/controlpanel/dbustests/__init__.py
76+ubuntuone/controlpanel/dbustests/test_dbus_service.py
77+ubuntuone/controlpanel/dbustests/test_gui_service.py
78+ubuntuone/controlpanel/dbustests/test_sd_client/__init__.py
79+ubuntuone/controlpanel/dbustests/test_sd_client/test_linux.py
80+ubuntuone/controlpanel/gui/__init__.py
81+ubuntuone/controlpanel/gui/gtk/__init__.py
82+ubuntuone/controlpanel/gui/gtk/gui.py
83+ubuntuone/controlpanel/gui/gtk/package_manager.py
84+ubuntuone/controlpanel/gui/gtk/widgets.py
85+ubuntuone/controlpanel/gui/gtk/tests/__init__.py
86+ubuntuone/controlpanel/gui/gtk/tests/test_gui.py
87+ubuntuone/controlpanel/gui/gtk/tests/test_gui_basic.py
88+ubuntuone/controlpanel/gui/gtk/tests/test_package_manager.py
89+ubuntuone/controlpanel/gui/gtk/tests/test_widgets.py
90+ubuntuone/controlpanel/gui/qt/__init__.py
91+ubuntuone/controlpanel/gui/qt/account.py
92+ubuntuone/controlpanel/gui/qt/addfolder.py
93+ubuntuone/controlpanel/gui/qt/controlpanel.py
94+ubuntuone/controlpanel/gui/qt/device.py
95+ubuntuone/controlpanel/gui/qt/devices.py
96+ubuntuone/controlpanel/gui/qt/filesyncstatus.py
97+ubuntuone/controlpanel/gui/qt/folders.py
98+ubuntuone/controlpanel/gui/qt/gotoweb.py
99+ubuntuone/controlpanel/gui/qt/gui.py
100+ubuntuone/controlpanel/gui/qt/loadingoverlay.py
101+ubuntuone/controlpanel/gui/qt/preferences.py
102+ubuntuone/controlpanel/gui/qt/ubuntuonebin.py
103+ubuntuone/controlpanel/gui/qt/main/__init__.py
104+ubuntuone/controlpanel/gui/qt/main/linux.py
105+ubuntuone/controlpanel/gui/qt/main/windows.py
106+ubuntuone/controlpanel/gui/qt/tests/__init__.py
107+ubuntuone/controlpanel/gui/qt/tests/test_account.py
108+ubuntuone/controlpanel/gui/qt/tests/test_addfolder.py
109+ubuntuone/controlpanel/gui/qt/tests/test_controlpanel.py
110+ubuntuone/controlpanel/gui/qt/tests/test_device.py
111+ubuntuone/controlpanel/gui/qt/tests/test_devices.py
112+ubuntuone/controlpanel/gui/qt/tests/test_filesyncstatus.py
113+ubuntuone/controlpanel/gui/qt/tests/test_folders.py
114+ubuntuone/controlpanel/gui/qt/tests/test_gotoweb.py
115+ubuntuone/controlpanel/gui/qt/tests/test_gui.py
116+ubuntuone/controlpanel/gui/qt/tests/test_loadingoverlay.py
117+ubuntuone/controlpanel/gui/qt/tests/test_preferences.py
118+ubuntuone/controlpanel/gui/qt/tests/test_ubuntuonebin.py
119+ubuntuone/controlpanel/gui/qt/ui/__init__.py
120+ubuntuone/controlpanel/gui/qt/ui/account_ui.py
121+ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py
122+ubuntuone/controlpanel/gui/qt/ui/device_ui.py
123+ubuntuone/controlpanel/gui/qt/ui/devices_ui.py
124+ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py
125+ubuntuone/controlpanel/gui/qt/ui/folders_ui.py
126+ubuntuone/controlpanel/gui/qt/ui/images_rc.py
127+ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py
128+ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py
129+ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py
130+ubuntuone/controlpanel/gui/tests/__init__.py
131+ubuntuone/controlpanel/gui/tests/test_humanize.py
132+ubuntuone/controlpanel/gui/tests/test_url_sign.py
133+ubuntuone/controlpanel/sd_client/__init__.py
134+ubuntuone/controlpanel/sd_client/linux.py
135+ubuntuone/controlpanel/tests/__init__.py
136+ubuntuone/controlpanel/tests/test_backend.py
137+ubuntuone/controlpanel/tests/test_login_client.py
138+ubuntuone/controlpanel/tests/test_replication_client.py
139+ubuntuone/controlpanel/tests/test_sd_client.py
140+ubuntuone/controlpanel/tests/test_utils.py
141+ubuntuone/controlpanel/tests/test_web_client.py
142+ubuntuone/controlpanel/web_client/__init__.py
143+ubuntuone/controlpanel/web_client/libsoup.py
144+ubuntuone/controlpanel/web_client/txwebclient.py
145
146=== modified file 'PKG-INFO'
147--- PKG-INFO 2011-07-22 21:26:48 +0000
148+++ PKG-INFO 2011-08-12 19:16:23 +0000
149@@ -1,6 +1,6 @@
150 Metadata-Version: 1.1
151 Name: ubuntuone-control-panel
152-Version: 1.1.1
153+Version: 1.1.2
154 Summary: Ubuntu One Control Panel
155 Home-page: https://launchpad.net/ubuntuone-control-panel
156 Author: Natalia Bidart
157@@ -8,4 +8,23 @@
158 License: GPL v3
159 Description: Application to manage a Ubuntu One account. Provides aDBus service to query/modify all the Ubuntu One bits.
160 Platform: UNKNOWN
161+Requires: PyQt4
162+Requires: apt
163+Requires: aptdaemon
164+Requires: dbus
165+Requires: defer
166+Requires: desktopcouch.application.replication_services
167+Requires: gi.repository
168+Requires: gobject
169+Requires: gtk
170+Requires: mocker
171+Requires: oauth
172+Requires: pango
173+Requires: simplejson
174+Requires: twisted.application
175+Requires: twisted.internet
176+Requires: twisted.python.failure
177+Requires: twisted.trial.unittest
178+Requires: twisted.web
179+Requires: ubuntu_sso
180 Provides: ubuntuone
181
182=== modified file 'data/qt/account.ui'
183--- data/qt/account.ui 2011-07-22 21:26:48 +0000
184+++ data/qt/account.ui 2011-08-12 19:16:23 +0000
185@@ -6,8 +6,8 @@
186 <rect>
187 <x>0</x>
188 <y>0</y>
189- <width>321</width>
190- <height>205</height>
191+ <width>381</width>
192+ <height>167</height>
193 </rect>
194 </property>
195 <property name="windowTitle">
196@@ -18,113 +18,107 @@
197 <number>0</number>
198 </property>
199 <item>
200- <widget class="QGroupBox" name="horizontalGroupBox">
201- <property name="title">
202- <string>Personal details</string>
203- </property>
204- <layout class="QHBoxLayout" name="horizontalLayout">
205- <item>
206- <layout class="QVBoxLayout" name="verticalLayout_2">
207- <item>
208- <widget class="QLabel" name="name_label">
209- <property name="text">
210- <string/>
211- </property>
212- </widget>
213- </item>
214- <item>
215- <widget class="QLabel" name="email_label">
216- <property name="text">
217- <string/>
218- </property>
219- </widget>
220- </item>
221- </layout>
222- </item>
223- <item>
224- <spacer name="horizontalSpacer_3">
225- <property name="orientation">
226- <enum>Qt::Horizontal</enum>
227- </property>
228- <property name="sizeHint" stdset="0">
229- <size>
230- <width>40</width>
231- <height>20</height>
232- </size>
233- </property>
234- </spacer>
235- </item>
236- <item>
237- <widget class="GoToWebButton" name="edit_profile_button">
238- <property name="text">
239- <string>Edit personal details online</string>
240- </property>
241- </widget>
242- </item>
243- <item>
244- <spacer name="horizontalSpacer_4">
245- <property name="orientation">
246- <enum>Qt::Horizontal</enum>
247- </property>
248- <property name="sizeHint" stdset="0">
249- <size>
250- <width>40</width>
251- <height>20</height>
252- </size>
253- </property>
254- </spacer>
255- </item>
256- </layout>
257- </widget>
258- </item>
259- <item>
260- <widget class="QGroupBox" name="horizontalGroupBox_2">
261- <property name="title">
262- <string>Your services</string>
263- </property>
264- <layout class="QHBoxLayout" name="horizontalLayout_2">
265- <item>
266- <widget class="QLabel" name="services_description_label">
267- <property name="text">
268- <string/>
269- </property>
270- </widget>
271- </item>
272- <item>
273- <spacer name="horizontalSpacer">
274- <property name="orientation">
275- <enum>Qt::Horizontal</enum>
276- </property>
277- <property name="sizeHint" stdset="0">
278- <size>
279- <width>40</width>
280- <height>20</height>
281- </size>
282- </property>
283- </spacer>
284- </item>
285- <item>
286- <widget class="GoToWebButton" name="edit_services_button">
287- <property name="text">
288- <string>Edit your services online</string>
289- </property>
290- </widget>
291- </item>
292- <item>
293- <spacer name="horizontalSpacer_2">
294- <property name="orientation">
295- <enum>Qt::Horizontal</enum>
296- </property>
297- <property name="sizeHint" stdset="0">
298- <size>
299- <width>40</width>
300- <height>20</height>
301- </size>
302- </property>
303- </spacer>
304- </item>
305- </layout>
306- </widget>
307+ <layout class="QGridLayout" name="gridLayout_2">
308+ <property name="verticalSpacing">
309+ <number>30</number>
310+ </property>
311+ <item row="2" column="2">
312+ <widget class="GoToWebButton" name="edit_profile_button">
313+ <property name="text">
314+ <string>Edit personal details online</string>
315+ </property>
316+ </widget>
317+ </item>
318+ <item row="2" column="0">
319+ <widget class="QGroupBox" name="services">
320+ <property name="title">
321+ <string>Your services</string>
322+ </property>
323+ <layout class="QVBoxLayout" name="verticalLayout_3">
324+ <property name="margin">
325+ <number>0</number>
326+ </property>
327+ <item>
328+ <widget class="QLabel" name="services_description_label">
329+ <property name="text">
330+ <string/>
331+ </property>
332+ </widget>
333+ </item>
334+ </layout>
335+ </widget>
336+ </item>
337+ <item row="1" column="0" colspan="4">
338+ <widget class="Line" name="account_separator">
339+ <property name="orientation">
340+ <enum>Qt::Horizontal</enum>
341+ </property>
342+ </widget>
343+ </item>
344+ <item row="0" column="0">
345+ <widget class="QGroupBox" name="profile_info">
346+ <property name="title">
347+ <string>Personal details</string>
348+ </property>
349+ <layout class="QVBoxLayout" name="verticalLayout_4">
350+ <property name="margin">
351+ <number>0</number>
352+ </property>
353+ <item>
354+ <layout class="QVBoxLayout" name="verticalLayout_2">
355+ <item>
356+ <widget class="QLabel" name="name_label">
357+ <property name="text">
358+ <string/>
359+ </property>
360+ </widget>
361+ </item>
362+ <item>
363+ <widget class="QLabel" name="email_label">
364+ <property name="text">
365+ <string/>
366+ </property>
367+ </widget>
368+ </item>
369+ </layout>
370+ </item>
371+ </layout>
372+ </widget>
373+ </item>
374+ <item row="0" column="2">
375+ <widget class="GoToWebButton" name="edit_services_button">
376+ <property name="text">
377+ <string>Edit your services online</string>
378+ </property>
379+ </widget>
380+ </item>
381+ <item row="0" column="3">
382+ <spacer name="horizontalSpacer">
383+ <property name="orientation">
384+ <enum>Qt::Horizontal</enum>
385+ </property>
386+ <property name="sizeHint" stdset="0">
387+ <size>
388+ <width>40</width>
389+ <height>20</height>
390+ </size>
391+ </property>
392+ </spacer>
393+ </item>
394+ <item row="0" column="1">
395+ <spacer name="horizontalSpacer_2">
396+ <property name="orientation">
397+ <enum>Qt::Horizontal</enum>
398+ </property>
399+ <property name="sizeHint" stdset="0">
400+ <size>
401+ <width>40</width>
402+ <height>20</height>
403+ </size>
404+ </property>
405+ </spacer>
406+ </item>
407+ </layout>
408 </item>
409 <item>
410 <spacer name="verticalSpacer">
411@@ -134,7 +128,7 @@
412 <property name="sizeHint" stdset="0">
413 <size>
414 <width>20</width>
415- <height>40</height>
416+ <height>10</height>
417 </size>
418 </property>
419 </spacer>
420
421=== modified file 'data/qt/controlpanel.ui'
422--- data/qt/controlpanel.ui 2011-07-22 21:26:48 +0000
423+++ data/qt/controlpanel.ui 2011-08-12 19:16:23 +0000
424@@ -6,8 +6,8 @@
425 <rect>
426 <x>0</x>
427 <y>0</y>
428- <width>536</width>
429- <height>389</height>
430+ <width>387</width>
431+ <height>203</height>
432 </rect>
433 </property>
434 <property name="sizePolicy">
435@@ -21,244 +21,179 @@
436 </property>
437 <layout class="QVBoxLayout" name="verticalLayout">
438 <property name="spacing">
439- <number>4</number>
440+ <number>3</number>
441 </property>
442 <property name="margin">
443 <number>0</number>
444 </property>
445 <item>
446- <widget class="QFrame" name="frmHeader">
447- <property name="frameShape">
448- <enum>QFrame::StyledPanel</enum>
449- </property>
450- <property name="frameShadow">
451- <enum>QFrame::Raised</enum>
452- </property>
453- <layout class="QHBoxLayout" name="horizontalLayout_4">
454+ <widget class="QFrame" name="frame_header">
455+ <layout class="QHBoxLayout" name="horizontalLayout_2">
456 <property name="spacing">
457+ <number>5</number>
458+ </property>
459+ <property name="margin">
460 <number>0</number>
461 </property>
462- <property name="leftMargin">
463- <number>15</number>
464- </property>
465- <property name="topMargin">
466- <number>10</number>
467- </property>
468- <property name="rightMargin">
469- <number>10</number>
470- </property>
471- <property name="bottomMargin">
472- <number>10</number>
473- </property>
474- <item>
475- <layout class="QHBoxLayout" name="horizontalLayout">
476- <property name="spacing">
477- <number>0</number>
478- </property>
479- <item>
480- <layout class="QVBoxLayout" name="vLayoutGreeting">
481- <property name="spacing">
482- <number>0</number>
483- </property>
484- <property name="sizeConstraint">
485- <enum>QLayout::SetDefaultConstraint</enum>
486- </property>
487- <item>
488- <widget class="QLabel" name="greeting_label">
489- <property name="font">
490- <font>
491- <pointsize>10</pointsize>
492- </font>
493- </property>
494- <property name="layoutDirection">
495- <enum>Qt::LeftToRight</enum>
496- </property>
497- <property name="autoFillBackground">
498- <bool>false</bool>
499- </property>
500- <property name="text">
501- <string notr="true"/>
502- </property>
503- <property name="alignment">
504- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
505+ <item>
506+ <widget class="QFrame" name="frame_greeting">
507+ <layout class="QVBoxLayout" name="verticalLayout_4">
508+ <property name="margin">
509+ <number>0</number>
510+ </property>
511+ <item>
512+ <widget class="QLabel" name="greeting_label">
513+ <property name="alignment">
514+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
515+ </property>
516+ </widget>
517+ </item>
518+ </layout>
519+ </widget>
520+ </item>
521+ <item>
522+ <spacer name="horizontalSpacer">
523+ <property name="orientation">
524+ <enum>Qt::Horizontal</enum>
525+ </property>
526+ <property name="sizeType">
527+ <enum>QSizePolicy::Fixed</enum>
528+ </property>
529+ <property name="sizeHint" stdset="0">
530+ <size>
531+ <width>15</width>
532+ <height>20</height>
533+ </size>
534+ </property>
535+ </spacer>
536+ </item>
537+ <item>
538+ <widget class="QFrame" name="frame_storage">
539+ <property name="sizePolicy">
540+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
541+ <horstretch>0</horstretch>
542+ <verstretch>0</verstretch>
543+ </sizepolicy>
544+ </property>
545+ <property name="minimumSize">
546+ <size>
547+ <width>165</width>
548+ <height>0</height>
549+ </size>
550+ </property>
551+ <property name="maximumSize">
552+ <size>
553+ <width>165</width>
554+ <height>16777215</height>
555+ </size>
556+ </property>
557+ <layout class="QVBoxLayout" name="vLayoutStorage">
558+ <property name="spacing">
559+ <number>6</number>
560+ </property>
561+ <property name="sizeConstraint">
562+ <enum>QLayout::SetDefaultConstraint</enum>
563+ </property>
564+ <property name="margin">
565+ <number>0</number>
566+ </property>
567+ <item>
568+ <widget class="QFrame" name="frame_quota">
569+ <layout class="QVBoxLayout" name="verticalLayout_3">
570+ <property name="spacing">
571+ <number>2</number>
572 </property>
573 <property name="margin">
574 <number>0</number>
575 </property>
576- <property name="indent">
577- <number>-1</number>
578- </property>
579- </widget>
580- </item>
581- </layout>
582- </item>
583- <item>
584- <spacer name="horizontalSpacer">
585- <property name="orientation">
586- <enum>Qt::Horizontal</enum>
587- </property>
588- <property name="sizeType">
589- <enum>QSizePolicy::Fixed</enum>
590- </property>
591- <property name="sizeHint" stdset="0">
592- <size>
593- <width>15</width>
594- <height>20</height>
595- </size>
596- </property>
597- </spacer>
598- </item>
599- <item>
600- <widget class="QFrame" name="frameStorage">
601- <property name="sizePolicy">
602- <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
603- <horstretch>0</horstretch>
604- <verstretch>0</verstretch>
605- </sizepolicy>
606- </property>
607- <property name="maximumSize">
608- <size>
609- <width>166</width>
610- <height>16777215</height>
611- </size>
612- </property>
613- <property name="frameShape">
614- <enum>QFrame::StyledPanel</enum>
615- </property>
616- <property name="frameShadow">
617- <enum>QFrame::Raised</enum>
618- </property>
619- <layout class="QHBoxLayout" name="horizontalLayout_7">
620- <property name="spacing">
621- <number>0</number>
622- </property>
623- <property name="leftMargin">
624- <number>10</number>
625- </property>
626- <property name="topMargin">
627- <number>0</number>
628- </property>
629- <property name="rightMargin">
630- <number>10</number>
631- </property>
632- <property name="bottomMargin">
633- <number>0</number>
634- </property>
635- <item>
636- <layout class="QVBoxLayout" name="vLayoutStorage">
637- <property name="sizeConstraint">
638- <enum>QLayout::SetDefaultConstraint</enum>
639- </property>
640- <item>
641- <widget class="QFrame" name="frmQuota">
642- <property name="frameShape">
643- <enum>QFrame::StyledPanel</enum>
644- </property>
645- <property name="frameShadow">
646- <enum>QFrame::Raised</enum>
647- </property>
648- <layout class="QVBoxLayout" name="verticalLayout_3">
649- <property name="spacing">
650- <number>2</number>
651- </property>
652- <property name="leftMargin">
653- <number>0</number>
654- </property>
655- <property name="topMargin">
656- <number>0</number>
657- </property>
658- <property name="rightMargin">
659- <number>0</number>
660- </property>
661- <property name="bottomMargin">
662- <number>10</number>
663- </property>
664- <item>
665- <widget class="QLabel" name="percentage_usage_label">
666- <property name="sizePolicy">
667- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
668- <horstretch>0</horstretch>
669- <verstretch>0</verstretch>
670- </sizepolicy>
671- </property>
672- <property name="text">
673- <string notr="true"/>
674- </property>
675- </widget>
676- </item>
677- <item>
678- <widget class="QLabel" name="quota_usage_label">
679- <property name="font">
680- <font>
681- <pointsize>8</pointsize>
682- </font>
683- </property>
684- <property name="text">
685- <string/>
686- </property>
687- </widget>
688- </item>
689- </layout>
690- <zorder>quota_usage_label</zorder>
691- <zorder>percentage_usage_label</zorder>
692- </widget>
693- </item>
694- <item>
695- <widget class="GoToWebButton" name="get_more_space_button">
696- <property name="text">
697- <string>Get more storage!</string>
698- </property>
699- </widget>
700- </item>
701- </layout>
702- </item>
703- </layout>
704- <zorder></zorder>
705- </widget>
706- </item>
707- <item>
708- <widget class="QFrame" name="frameStatus">
709- <property name="sizePolicy">
710- <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
711- <horstretch>0</horstretch>
712- <verstretch>0</verstretch>
713- </sizepolicy>
714- </property>
715- <property name="maximumSize">
716- <size>
717- <width>166</width>
718- <height>16777215</height>
719- </size>
720- </property>
721- <property name="frameShape">
722- <enum>QFrame::StyledPanel</enum>
723- </property>
724- <property name="frameShadow">
725- <enum>QFrame::Raised</enum>
726- </property>
727- <layout class="QHBoxLayout" name="horizontalLayout_8">
728- <property name="spacing">
729- <number>0</number>
730- </property>
731- <property name="leftMargin">
732- <number>10</number>
733- </property>
734- <property name="topMargin">
735- <number>0</number>
736- </property>
737- <property name="rightMargin">
738- <number>0</number>
739- </property>
740- <property name="bottomMargin">
741- <number>0</number>
742- </property>
743- <item>
744- <widget class="FileSyncStatus" name="file_sync_status" native="true"/>
745- </item>
746- </layout>
747- </widget>
748- </item>
749- </layout>
750+ <item>
751+ <widget class="QLabel" name="percentage_usage_label">
752+ <property name="sizePolicy">
753+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
754+ <horstretch>0</horstretch>
755+ <verstretch>0</verstretch>
756+ </sizepolicy>
757+ </property>
758+ <property name="text">
759+ <string notr="true"/>
760+ </property>
761+ </widget>
762+ </item>
763+ <item>
764+ <widget class="QLabel" name="quota_usage_label">
765+ <property name="font">
766+ <font>
767+ <pointsize>8</pointsize>
768+ </font>
769+ </property>
770+ <property name="text">
771+ <string/>
772+ </property>
773+ </widget>
774+ </item>
775+ </layout>
776+ <zorder>quota_usage_label</zorder>
777+ <zorder>percentage_usage_label</zorder>
778+ </widget>
779+ </item>
780+ <item>
781+ <widget class="GoToWebButton" name="get_more_space_button">
782+ <property name="text">
783+ <string>Get more storage</string>
784+ </property>
785+ </widget>
786+ </item>
787+ </layout>
788+ </widget>
789+ </item>
790+ <item>
791+ <widget class="QFrame" name="frame_status">
792+ <property name="sizePolicy">
793+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
794+ <horstretch>0</horstretch>
795+ <verstretch>0</verstretch>
796+ </sizepolicy>
797+ </property>
798+ <property name="minimumSize">
799+ <size>
800+ <width>165</width>
801+ <height>0</height>
802+ </size>
803+ </property>
804+ <property name="maximumSize">
805+ <size>
806+ <width>165</width>
807+ <height>16777215</height>
808+ </size>
809+ </property>
810+ <layout class="QHBoxLayout" name="horizontalLayout_8">
811+ <property name="margin">
812+ <number>0</number>
813+ </property>
814+ <item>
815+ <widget class="FileSyncStatus" name="file_sync_status" native="true">
816+ <property name="sizePolicy">
817+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
818+ <horstretch>0</horstretch>
819+ <verstretch>0</verstretch>
820+ </sizepolicy>
821+ </property>
822+ <property name="minimumSize">
823+ <size>
824+ <width>0</width>
825+ <height>0</height>
826+ </size>
827+ </property>
828+ <property name="maximumSize">
829+ <size>
830+ <width>165</width>
831+ <height>16777215</height>
832+ </size>
833+ </property>
834+ </widget>
835+ </item>
836+ </layout>
837+ </widget>
838 </item>
839 </layout>
840 </widget>
841@@ -297,116 +232,100 @@
842 </widget>
843 </item>
844 <item>
845- <widget class="QFrame" name="frmFooter">
846- <property name="maximumSize">
847- <size>
848- <width>16777215</width>
849- <height>30</height>
850- </size>
851- </property>
852- <property name="frameShape">
853- <enum>QFrame::StyledPanel</enum>
854- </property>
855- <property name="frameShadow">
856- <enum>QFrame::Raised</enum>
857- </property>
858- <layout class="QVBoxLayout" name="verticalLayout_2">
859+ <widget class="QFrame" name="frame_footer">
860+ <layout class="QHBoxLayout" name="horizontalLayout">
861 <property name="spacing">
862- <number>0</number>
863- </property>
864- <property name="margin">
865- <number>0</number>
866- </property>
867- <item>
868- <layout class="QHBoxLayout" name="hLayoutFooter">
869- <property name="spacing">
870- <number>5</number>
871- </property>
872- <property name="leftMargin">
873- <number>3</number>
874- </property>
875- <property name="rightMargin">
876- <number>3</number>
877- </property>
878- <item>
879- <widget class="GoToWebButton" name="help_button">
880- <property name="text">
881- <string>Get help online</string>
882- </property>
883- </widget>
884- </item>
885- <item>
886- <spacer name="horizontalSpacer_4">
887- <property name="orientation">
888- <enum>Qt::Horizontal</enum>
889- </property>
890- <property name="sizeHint" stdset="0">
891- <size>
892- <width>40</width>
893- <height>20</height>
894- </size>
895- </property>
896- </spacer>
897- </item>
898- <item>
899- <widget class="QLabel" name="follow_us_label">
900- <property name="font">
901- <font>
902- <pointsize>11</pointsize>
903- </font>
904- </property>
905- <property name="text">
906- <string>Talk to us</string>
907- </property>
908- </widget>
909- </item>
910- <item>
911- <widget class="QToolButton" name="twitter_button">
912- <property name="cursor">
913- <cursorShape>PointingHandCursor</cursorShape>
914- </property>
915- <property name="styleSheet">
916- <string notr="true">border: 0;</string>
917- </property>
918- <property name="text">
919- <string/>
920- </property>
921- <property name="icon">
922- <iconset resource="images.qrc">
923- <normaloff>:/twitter.png</normaloff>:/twitter.png</iconset>
924- </property>
925- <property name="iconSize">
926- <size>
927- <width>22</width>
928- <height>22</height>
929- </size>
930- </property>
931- </widget>
932- </item>
933- <item>
934- <widget class="QToolButton" name="facebook_button">
935- <property name="cursor">
936- <cursorShape>PointingHandCursor</cursorShape>
937- </property>
938- <property name="styleSheet">
939- <string notr="true">border: 0;</string>
940- </property>
941- <property name="text">
942- <string/>
943- </property>
944- <property name="icon">
945- <iconset resource="images.qrc">
946- <normaloff>:/facebook.png</normaloff>:/facebook.png</iconset>
947- </property>
948- <property name="iconSize">
949- <size>
950- <width>22</width>
951- <height>22</height>
952- </size>
953- </property>
954- </widget>
955- </item>
956- </layout>
957+ <number>5</number>
958+ </property>
959+ <property name="leftMargin">
960+ <number>3</number>
961+ </property>
962+ <property name="topMargin">
963+ <number>0</number>
964+ </property>
965+ <property name="rightMargin">
966+ <number>3</number>
967+ </property>
968+ <property name="bottomMargin">
969+ <number>3</number>
970+ </property>
971+ <item>
972+ <widget class="GoToWebButton" name="help_button">
973+ <property name="text">
974+ <string>Get help online</string>
975+ </property>
976+ </widget>
977+ </item>
978+ <item>
979+ <spacer name="horizontalSpacer_4">
980+ <property name="orientation">
981+ <enum>Qt::Horizontal</enum>
982+ </property>
983+ <property name="sizeHint" stdset="0">
984+ <size>
985+ <width>133</width>
986+ <height>20</height>
987+ </size>
988+ </property>
989+ </spacer>
990+ </item>
991+ <item>
992+ <widget class="QLabel" name="follow_us_label">
993+ <property name="font">
994+ <font>
995+ <pointsize>11</pointsize>
996+ </font>
997+ </property>
998+ <property name="text">
999+ <string>Talk to us</string>
1000+ </property>
1001+ </widget>
1002+ </item>
1003+ <item>
1004+ <widget class="QToolButton" name="twitter_button">
1005+ <property name="cursor">
1006+ <cursorShape>PointingHandCursor</cursorShape>
1007+ </property>
1008+ <property name="styleSheet">
1009+ <string notr="true">border: 0;</string>
1010+ </property>
1011+ <property name="text">
1012+ <string/>
1013+ </property>
1014+ <property name="icon">
1015+ <iconset resource="images.qrc">
1016+ <normaloff>:/twitter.png</normaloff>:/twitter.png</iconset>
1017+ </property>
1018+ <property name="iconSize">
1019+ <size>
1020+ <width>22</width>
1021+ <height>22</height>
1022+ </size>
1023+ </property>
1024+ </widget>
1025+ </item>
1026+ <item>
1027+ <widget class="QToolButton" name="facebook_button">
1028+ <property name="cursor">
1029+ <cursorShape>PointingHandCursor</cursorShape>
1030+ </property>
1031+ <property name="styleSheet">
1032+ <string notr="true">border: 0;</string>
1033+ </property>
1034+ <property name="text">
1035+ <string/>
1036+ </property>
1037+ <property name="icon">
1038+ <iconset resource="images.qrc">
1039+ <normaloff>:/facebook.png</normaloff>:/facebook.png</iconset>
1040+ </property>
1041+ <property name="iconSize">
1042+ <size>
1043+ <width>22</width>
1044+ <height>22</height>
1045+ </size>
1046+ </property>
1047+ </widget>
1048 </item>
1049 </layout>
1050 </widget>
1051@@ -415,6 +334,11 @@
1052 </widget>
1053 <customwidgets>
1054 <customwidget>
1055+ <class>GoToWebButton</class>
1056+ <extends>QPushButton</extends>
1057+ <header>ubuntuone.controlpanel.gui.qt.gotoweb</header>
1058+ </customwidget>
1059+ <customwidget>
1060 <class>FoldersPanel</class>
1061 <extends>QWidget</extends>
1062 <header>ubuntuone.controlpanel.gui.qt.folders</header>
1063@@ -439,11 +363,6 @@
1064 <container>1</container>
1065 </customwidget>
1066 <customwidget>
1067- <class>GoToWebButton</class>
1068- <extends>QPushButton</extends>
1069- <header>ubuntuone.controlpanel.gui.qt.gotoweb</header>
1070- </customwidget>
1071- <customwidget>
1072 <class>AccountPanel</class>
1073 <extends>QWidget</extends>
1074 <header>ubuntuone.controlpanel.gui.qt.account</header>
1075
1076=== modified file 'data/qt/device.ui'
1077--- data/qt/device.ui 2011-07-22 21:26:48 +0000
1078+++ data/qt/device.ui 2011-08-12 19:16:23 +0000
1079@@ -6,8 +6,8 @@
1080 <rect>
1081 <x>0</x>
1082 <y>0</y>
1083- <width>400</width>
1084- <height>63</height>
1085+ <width>233</width>
1086+ <height>36</height>
1087 </rect>
1088 </property>
1089 <property name="windowTitle">
1090@@ -44,7 +44,7 @@
1091 <item>
1092 <widget class="QPushButton" name="remove_device_button">
1093 <property name="text">
1094- <string>Delete device</string>
1095+ <string>Remove</string>
1096 </property>
1097 </widget>
1098 </item>
1099
1100=== modified file 'data/qt/devices.ui'
1101--- data/qt/devices.ui 2011-07-22 21:26:48 +0000
1102+++ data/qt/devices.ui 2011-08-12 19:16:23 +0000
1103@@ -6,14 +6,14 @@
1104 <rect>
1105 <x>0</x>
1106 <y>0</y>
1107- <width>409</width>
1108- <height>310</height>
1109+ <width>393</width>
1110+ <height>281</height>
1111 </rect>
1112 </property>
1113 <property name="windowTitle">
1114 <string notr="true">Form</string>
1115 </property>
1116- <layout class="QVBoxLayout" name="verticalLayout">
1117+ <layout class="QVBoxLayout" name="verticalLayout_3">
1118 <property name="spacing">
1119 <number>0</number>
1120 </property>
1121@@ -21,47 +21,34 @@
1122 <number>0</number>
1123 </property>
1124 <item>
1125- <widget class="QFrame" name="frame">
1126- <property name="frameShape">
1127- <enum>QFrame::StyledPanel</enum>
1128+ <widget class="QGroupBox" name="local_device">
1129+ <property name="title">
1130+ <string>This device</string>
1131 </property>
1132- <property name="frameShadow">
1133- <enum>QFrame::Raised</enum>
1134+ <layout class="QVBoxLayout" name="verticalLayout">
1135+ <property name="margin">
1136+ <number>0</number>
1137+ </property>
1138+ <item>
1139+ <layout class="QVBoxLayout" name="local_device_box"/>
1140+ </item>
1141+ </layout>
1142+ </widget>
1143+ </item>
1144+ <item>
1145+ <widget class="QGroupBox" name="oher_devices">
1146+ <property name="title">
1147+ <string>Other devices</string>
1148 </property>
1149 <layout class="QVBoxLayout" name="verticalLayout_2">
1150- <item>
1151- <layout class="QHBoxLayout" name="horizontalLayout_2">
1152- <item>
1153- <layout class="QVBoxLayout" name="local_device_box"/>
1154- </item>
1155- </layout>
1156- </item>
1157- <item>
1158- <layout class="QHBoxLayout" name="horizontalLayout">
1159- <item>
1160- <widget class="QLabel" name="other_devices_label">
1161- <property name="text">
1162- <string>Other devices</string>
1163- </property>
1164- </widget>
1165- </item>
1166- <item>
1167- <spacer name="horizontalSpacer">
1168- <property name="orientation">
1169- <enum>Qt::Horizontal</enum>
1170- </property>
1171- <property name="sizeHint" stdset="0">
1172- <size>
1173- <width>40</width>
1174- <height>20</height>
1175- </size>
1176- </property>
1177- </spacer>
1178- </item>
1179- </layout>
1180- </item>
1181+ <property name="margin">
1182+ <number>0</number>
1183+ </property>
1184 <item>
1185 <widget class="QListWidget" name="list_devices">
1186+ <property name="verticalScrollBarPolicy">
1187+ <enum>Qt::ScrollBarAlwaysOn</enum>
1188+ </property>
1189 <property name="alternatingRowColors">
1190 <bool>true</bool>
1191 </property>
1192@@ -79,46 +66,49 @@
1193 </property>
1194 </widget>
1195 </item>
1196- <item>
1197- <layout class="QHBoxLayout" name="horizontalLayout_3">
1198- <item>
1199- <spacer name="horizontalSpacer_3">
1200- <property name="orientation">
1201- <enum>Qt::Horizontal</enum>
1202- </property>
1203- <property name="sizeHint" stdset="0">
1204- <size>
1205- <width>40</width>
1206- <height>20</height>
1207- </size>
1208- </property>
1209- </spacer>
1210- </item>
1211- <item>
1212- <widget class="GoToWebButton" name="manage_devices_button">
1213- <property name="text">
1214- <string>Go to the web page to manage your other devices</string>
1215- </property>
1216- </widget>
1217- </item>
1218- <item>
1219- <spacer name="horizontalSpacer_4">
1220- <property name="orientation">
1221- <enum>Qt::Horizontal</enum>
1222- </property>
1223- <property name="sizeHint" stdset="0">
1224- <size>
1225- <width>40</width>
1226- <height>20</height>
1227- </size>
1228- </property>
1229- </spacer>
1230- </item>
1231- </layout>
1232- </item>
1233 </layout>
1234 </widget>
1235 </item>
1236+ <item>
1237+ <layout class="QHBoxLayout" name="horizontalLayout_3">
1238+ <property name="margin">
1239+ <number>3</number>
1240+ </property>
1241+ <item>
1242+ <spacer name="horizontalSpacer_3">
1243+ <property name="orientation">
1244+ <enum>Qt::Horizontal</enum>
1245+ </property>
1246+ <property name="sizeHint" stdset="0">
1247+ <size>
1248+ <width>40</width>
1249+ <height>20</height>
1250+ </size>
1251+ </property>
1252+ </spacer>
1253+ </item>
1254+ <item>
1255+ <widget class="GoToWebButton" name="manage_devices_button">
1256+ <property name="text">
1257+ <string>Go to the web page to manage your other devices</string>
1258+ </property>
1259+ </widget>
1260+ </item>
1261+ <item>
1262+ <spacer name="horizontalSpacer_4">
1263+ <property name="orientation">
1264+ <enum>Qt::Horizontal</enum>
1265+ </property>
1266+ <property name="sizeHint" stdset="0">
1267+ <size>
1268+ <width>40</width>
1269+ <height>20</height>
1270+ </size>
1271+ </property>
1272+ </spacer>
1273+ </item>
1274+ </layout>
1275+ </item>
1276 </layout>
1277 </widget>
1278 <customwidgets>
1279
1280=== modified file 'data/qt/filesyncstatus.ui'
1281--- data/qt/filesyncstatus.ui 2011-07-22 21:26:48 +0000
1282+++ data/qt/filesyncstatus.ui 2011-08-12 19:16:23 +0000
1283@@ -6,52 +6,42 @@
1284 <rect>
1285 <x>0</x>
1286 <y>0</y>
1287- <width>310</width>
1288- <height>211</height>
1289+ <width>94</width>
1290+ <height>49</height>
1291 </rect>
1292 </property>
1293 <property name="windowTitle">
1294 <string notr="true">Form</string>
1295 </property>
1296- <layout class="QHBoxLayout" name="horizontalLayout_2">
1297+ <layout class="QVBoxLayout" name="verticalLayout">
1298+ <property name="margin">
1299+ <number>0</number>
1300+ </property>
1301 <item>
1302- <layout class="QVBoxLayout" name="verticalLayout">
1303+ <layout class="QHBoxLayout" name="horizontalLayout">
1304 <item>
1305- <layout class="QHBoxLayout" name="horizontalLayout">
1306- <item>
1307- <widget class="QLabel" name="sync_status_icon">
1308- <property name="text">
1309- <string/>
1310- </property>
1311- </widget>
1312- </item>
1313- <item>
1314- <widget class="QLabel" name="sync_status_label">
1315- <property name="text">
1316- <string notr="true"/>
1317- </property>
1318- <property name="wordWrap">
1319- <bool>true</bool>
1320- </property>
1321- <property name="buddy">
1322- <cstring>sync_status_button</cstring>
1323- </property>
1324- </widget>
1325- </item>
1326- </layout>
1327+ <widget class="QLabel" name="sync_status_icon">
1328+ </widget>
1329 </item>
1330 <item>
1331- <widget class="QPushButton" name="sync_status_button">
1332- <property name="toolTip">
1333- <string>test</string>
1334- </property>
1335+ <widget class="QLabel" name="sync_status_label">
1336 <property name="text">
1337 <string notr="true"/>
1338 </property>
1339+ <property name="wordWrap">
1340+ <bool>true</bool>
1341+ </property>
1342+ <property name="buddy">
1343+ <cstring>sync_status_button</cstring>
1344+ </property>
1345 </widget>
1346 </item>
1347 </layout>
1348 </item>
1349+ <item>
1350+ <widget class="QPushButton" name="sync_status_button">
1351+ </widget>
1352+ </item>
1353 </layout>
1354 </widget>
1355 <resources/>
1356
1357=== modified file 'data/qt/folders.ui'
1358--- data/qt/folders.ui 2011-07-22 21:26:48 +0000
1359+++ data/qt/folders.ui 2011-08-12 19:16:23 +0000
1360@@ -6,33 +6,86 @@
1361 <rect>
1362 <x>0</x>
1363 <y>0</y>
1364- <width>607</width>
1365- <height>435</height>
1366+ <width>345</width>
1367+ <height>279</height>
1368 </rect>
1369 </property>
1370 <property name="windowTitle">
1371 <string notr="true">Form</string>
1372 </property>
1373 <property name="styleSheet">
1374- <string notr="true"/>
1375+ <string notr="true">padding: 0px;</string>
1376 </property>
1377 <layout class="QVBoxLayout" name="verticalLayout">
1378+ <property name="spacing">
1379+ <number>0</number>
1380+ </property>
1381+ <property name="margin">
1382+ <number>0</number>
1383+ </property>
1384+ <item>
1385+ <widget class="QFrame" name="frame_top">
1386+ <property name="minimumSize">
1387+ <size>
1388+ <width>0</width>
1389+ <height>35</height>
1390+ </size>
1391+ </property>
1392+ <layout class="QHBoxLayout" name="horizontalLayout_2">
1393+ <property name="margin">
1394+ <number>3</number>
1395+ </property>
1396+ <item>
1397+ <widget class="GoToWebButton" name="share_publish_button">
1398+ <property name="sizePolicy">
1399+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
1400+ <horstretch>0</horstretch>
1401+ <verstretch>0</verstretch>
1402+ </sizepolicy>
1403+ </property>
1404+ <property name="text">
1405+ <string>Go to the web for public and private sharing options</string>
1406+ </property>
1407+ </widget>
1408+ </item>
1409+ <item>
1410+ <spacer name="horizontalSpacer">
1411+ <property name="orientation">
1412+ <enum>Qt::Horizontal</enum>
1413+ </property>
1414+ <property name="sizeHint" stdset="0">
1415+ <size>
1416+ <width>40</width>
1417+ <height>20</height>
1418+ </size>
1419+ </property>
1420+ </spacer>
1421+ </item>
1422+ </layout>
1423+ </widget>
1424+ </item>
1425 <item>
1426 <widget class="QTreeWidget" name="folders">
1427+ <property name="verticalScrollBarPolicy">
1428+ <enum>Qt::ScrollBarAlwaysOn</enum>
1429+ </property>
1430 <property name="alternatingRowColors">
1431 <bool>true</bool>
1432 </property>
1433- <property name="uniformRowHeights">
1434+ <property name="indentation">
1435+ <number>15</number>
1436+ </property>
1437+ <property name="rootIsDecorated">
1438 <bool>false</bool>
1439 </property>
1440 <property name="itemsExpandable">
1441 <bool>true</bool>
1442 </property>
1443 <property name="headerHidden">
1444- <bool>false</bool>
1445+ <bool>true</bool>
1446 </property>
1447 <attribute name="headerVisible">
1448- <bool>true</bool>
1449+ <bool>false</bool>
1450 </attribute>
1451 <attribute name="headerCascadingSectionResizes">
1452 <bool>false</bool>
1453@@ -61,41 +114,64 @@
1454 </column>
1455 <column>
1456 <property name="text">
1457- <string> </string>
1458+ <string>Explore</string>
1459 </property>
1460 </column>
1461 </widget>
1462 </item>
1463 <item>
1464- <layout class="QHBoxLayout" name="horizontalLayout_3">
1465- <item>
1466- <widget class="GoToWebButton" name="share_publish_button">
1467- <property name="text">
1468- <string>Go to the web to share folders and publish files</string>
1469- </property>
1470- </widget>
1471- </item>
1472- <item>
1473- <spacer name="horizontalSpacer_3">
1474- <property name="orientation">
1475- <enum>Qt::Horizontal</enum>
1476- </property>
1477- <property name="sizeHint" stdset="0">
1478- <size>
1479- <width>40</width>
1480- <height>20</height>
1481- </size>
1482- </property>
1483- </spacer>
1484- </item>
1485- <item>
1486- <widget class="AddFolderButton" name="add_folder_button">
1487- <property name="text">
1488- <string>Sync another folder with your cloud</string>
1489- </property>
1490- </widget>
1491- </item>
1492- </layout>
1493+ <widget class="QFrame" name="frame_bottom">
1494+ <property name="minimumSize">
1495+ <size>
1496+ <width>0</width>
1497+ <height>40</height>
1498+ </size>
1499+ </property>
1500+ <layout class="QHBoxLayout" name="horizontalLayout">
1501+ <property name="margin">
1502+ <number>3</number>
1503+ </property>
1504+ <item>
1505+ <spacer name="horizontalSpacer_3">
1506+ <property name="orientation">
1507+ <enum>Qt::Horizontal</enum>
1508+ </property>
1509+ <property name="sizeHint" stdset="0">
1510+ <size>
1511+ <width>53</width>
1512+ <height>20</height>
1513+ </size>
1514+ </property>
1515+ </spacer>
1516+ </item>
1517+ <item>
1518+ <widget class="AddFolderButton" name="add_folder_button">
1519+ <property name="sizePolicy">
1520+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
1521+ <horstretch>0</horstretch>
1522+ <verstretch>0</verstretch>
1523+ </sizepolicy>
1524+ </property>
1525+ <property name="text">
1526+ <string>Add a folder from this computer</string>
1527+ </property>
1528+ </widget>
1529+ </item>
1530+ <item>
1531+ <spacer name="horizontalSpacer_2">
1532+ <property name="orientation">
1533+ <enum>Qt::Horizontal</enum>
1534+ </property>
1535+ <property name="sizeHint" stdset="0">
1536+ <size>
1537+ <width>40</width>
1538+ <height>20</height>
1539+ </size>
1540+ </property>
1541+ </spacer>
1542+ </item>
1543+ </layout>
1544+ </widget>
1545 </item>
1546 </layout>
1547 </widget>
1548
1549=== modified file 'data/qt/loadingoverlay.ui'
1550--- data/qt/loadingoverlay.ui 2011-07-22 21:26:48 +0000
1551+++ data/qt/loadingoverlay.ui 2011-08-12 19:16:23 +0000
1552@@ -1,118 +1,103 @@
1553-<?xml version="1.0" encoding="UTF-8"?>
1554-<ui version="4.0">
1555- <class>Form</class>
1556- <widget class="QFrame" name="Form">
1557- <property name="geometry">
1558- <rect>
1559- <x>0</x>
1560- <y>0</y>
1561- <width>702</width>
1562- <height>230</height>
1563- </rect>
1564- </property>
1565- <property name="windowTitle">
1566- <string>Frame</string>
1567- </property>
1568- <property name="frameShape">
1569- <enum>QFrame::StyledPanel</enum>
1570- </property>
1571- <property name="frameShadow">
1572- <enum>QFrame::Raised</enum>
1573- </property>
1574- <layout class="QVBoxLayout" name="verticalLayout">
1575- <property name="topMargin">
1576- <number>30</number>
1577- </property>
1578- <item>
1579- <layout class="QHBoxLayout" name="horizontalLayout_2">
1580- <item>
1581- <spacer name="horizontalSpacer_2">
1582- <property name="orientation">
1583- <enum>Qt::Horizontal</enum>
1584- </property>
1585- <property name="sizeHint" stdset="0">
1586- <size>
1587- <width>40</width>
1588- <height>20</height>
1589- </size>
1590- </property>
1591- </spacer>
1592- </item>
1593- <item>
1594- <widget class="QFrame" name="frm_box">
1595- <property name="minimumSize">
1596- <size>
1597- <width>0</width>
1598- <height>102</height>
1599- </size>
1600- </property>
1601- <property name="styleSheet">
1602- <string notr="true"/>
1603- </property>
1604- <property name="frameShape">
1605- <enum>QFrame::StyledPanel</enum>
1606- </property>
1607- <property name="frameShadow">
1608- <enum>QFrame::Raised</enum>
1609- </property>
1610- <layout class="QHBoxLayout" name="horizontalLayout">
1611- <property name="topMargin">
1612- <number>0</number>
1613- </property>
1614- <property name="bottomMargin">
1615- <number>30</number>
1616- </property>
1617- <item>
1618- <widget class="QLabel" name="label">
1619- <property name="sizePolicy">
1620- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
1621- <horstretch>0</horstretch>
1622- <verstretch>0</verstretch>
1623- </sizepolicy>
1624- </property>
1625- <property name="font">
1626- <font>
1627- <pointsize>14</pointsize>
1628- </font>
1629- </property>
1630- <property name="text">
1631- <string>Please wait while we retrieve the information...</string>
1632- </property>
1633- </widget>
1634- </item>
1635- </layout>
1636- </widget>
1637- </item>
1638- <item>
1639- <spacer name="horizontalSpacer">
1640- <property name="orientation">
1641- <enum>Qt::Horizontal</enum>
1642- </property>
1643- <property name="sizeHint" stdset="0">
1644- <size>
1645- <width>40</width>
1646- <height>20</height>
1647- </size>
1648- </property>
1649- </spacer>
1650- </item>
1651- </layout>
1652- </item>
1653- <item>
1654- <spacer name="verticalSpacer">
1655- <property name="orientation">
1656- <enum>Qt::Vertical</enum>
1657- </property>
1658- <property name="sizeHint" stdset="0">
1659- <size>
1660- <width>20</width>
1661- <height>20</height>
1662- </size>
1663- </property>
1664- </spacer>
1665- </item>
1666- </layout>
1667- </widget>
1668- <resources/>
1669- <connections/>
1670-</ui>
1671+<?xml version="1.0" encoding="UTF-8"?>
1672+<ui version="4.0">
1673+ <class>Form</class>
1674+ <widget class="QFrame" name="Form">
1675+ <property name="geometry">
1676+ <rect>
1677+ <x>0</x>
1678+ <y>0</y>
1679+ <width>702</width>
1680+ <height>230</height>
1681+ </rect>
1682+ </property>
1683+ <property name="windowTitle">
1684+ <string>Frame</string>
1685+ </property>
1686+ <layout class="QVBoxLayout" name="verticalLayout">
1687+ <property name="topMargin">
1688+ <number>30</number>
1689+ </property>
1690+ <item>
1691+ <layout class="QHBoxLayout" name="horizontalLayout_2">
1692+ <item>
1693+ <spacer name="horizontalSpacer_2">
1694+ <property name="orientation">
1695+ <enum>Qt::Horizontal</enum>
1696+ </property>
1697+ <property name="sizeHint" stdset="0">
1698+ <size>
1699+ <width>40</width>
1700+ <height>20</height>
1701+ </size>
1702+ </property>
1703+ </spacer>
1704+ </item>
1705+ <item>
1706+ <widget class="QFrame" name="frm_box">
1707+ <property name="minimumSize">
1708+ <size>
1709+ <width>0</width>
1710+ <height>102</height>
1711+ </size>
1712+ </property>
1713+ <layout class="QHBoxLayout" name="horizontalLayout">
1714+ <property name="topMargin">
1715+ <number>0</number>
1716+ </property>
1717+ <property name="bottomMargin">
1718+ <number>30</number>
1719+ </property>
1720+ <item>
1721+ <widget class="QLabel" name="label">
1722+ <property name="sizePolicy">
1723+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
1724+ <horstretch>0</horstretch>
1725+ <verstretch>0</verstretch>
1726+ </sizepolicy>
1727+ </property>
1728+ <property name="font">
1729+ <font>
1730+ <pointsize>14</pointsize>
1731+ </font>
1732+ </property>
1733+ <property name="text">
1734+ <string>Getting information, please wait...</string>
1735+ </property>
1736+ </widget>
1737+ </item>
1738+ </layout>
1739+ </widget>
1740+ </item>
1741+ <item>
1742+ <spacer name="horizontalSpacer">
1743+ <property name="orientation">
1744+ <enum>Qt::Horizontal</enum>
1745+ </property>
1746+ <property name="sizeHint" stdset="0">
1747+ <size>
1748+ <width>40</width>
1749+ <height>20</height>
1750+ </size>
1751+ </property>
1752+ </spacer>
1753+ </item>
1754+ </layout>
1755+ </item>
1756+ <item>
1757+ <spacer name="verticalSpacer">
1758+ <property name="orientation">
1759+ <enum>Qt::Vertical</enum>
1760+ </property>
1761+ <property name="sizeHint" stdset="0">
1762+ <size>
1763+ <width>20</width>
1764+ <height>20</height>
1765+ </size>
1766+ </property>
1767+ </spacer>
1768+ </item>
1769+ </layout>
1770+ </widget>
1771+ <resources/>
1772+ <connections/>
1773+</ui>
1774
1775=== modified file 'data/qt/preferences.ui'
1776--- data/qt/preferences.ui 2011-07-22 21:26:48 +0000
1777+++ data/qt/preferences.ui 2011-08-12 19:16:23 +0000
1778@@ -6,8 +6,8 @@
1779 <rect>
1780 <x>0</x>
1781 <y>0</y>
1782- <width>469</width>
1783- <height>352</height>
1784+ <width>433</width>
1785+ <height>328</height>
1786 </rect>
1787 </property>
1788 <property name="windowTitle">
1789@@ -21,13 +21,13 @@
1790 <number>0</number>
1791 </property>
1792 <item>
1793- <widget class="QGroupBox" name="verticalGroupBox">
1794+ <widget class="QGroupBox" name="bandwidth_settings">
1795 <property name="title">
1796 <string>Bandwidth settings</string>
1797 </property>
1798 <layout class="QGridLayout" name="gridLayout">
1799- <property name="verticalSpacing">
1800- <number>10</number>
1801+ <property name="margin">
1802+ <number>0</number>
1803 </property>
1804 <item row="0" column="0">
1805 <widget class="QCheckBox" name="limit_uploads_checkbox">
1806@@ -120,13 +120,13 @@
1807 </widget>
1808 </item>
1809 <item>
1810- <widget class="QGroupBox" name="groupBox_2">
1811+ <widget class="QGroupBox" name="file_sync_settings">
1812 <property name="title">
1813 <string>File Sync Settings</string>
1814 </property>
1815 <layout class="QVBoxLayout" name="verticalLayout_1">
1816- <property name="spacing">
1817- <number>10</number>
1818+ <property name="margin">
1819+ <number>0</number>
1820 </property>
1821 <item>
1822 <widget class="QCheckBox" name="autoconnect_checkbox">
1823@@ -160,7 +160,23 @@
1824 </widget>
1825 </item>
1826 <item>
1827+ <spacer name="verticalSpacer">
1828+ <property name="orientation">
1829+ <enum>Qt::Vertical</enum>
1830+ </property>
1831+ <property name="sizeHint" stdset="0">
1832+ <size>
1833+ <width>20</width>
1834+ <height>40</height>
1835+ </size>
1836+ </property>
1837+ </spacer>
1838+ </item>
1839+ <item>
1840 <layout class="QHBoxLayout" name="horizontalLayout">
1841+ <property name="margin">
1842+ <number>3</number>
1843+ </property>
1844 <item>
1845 <spacer name="horizontalSpacer">
1846 <property name="orientation">
1847@@ -190,19 +206,6 @@
1848 </item>
1849 </layout>
1850 </item>
1851- <item>
1852- <spacer name="verticalSpacer">
1853- <property name="orientation">
1854- <enum>Qt::Vertical</enum>
1855- </property>
1856- <property name="sizeHint" stdset="0">
1857- <size>
1858- <width>20</width>
1859- <height>40</height>
1860- </size>
1861- </property>
1862- </spacer>
1863- </item>
1864 </layout>
1865 </widget>
1866 <resources/>
1867
1868=== modified file 'data/qt/ubuntuone.qss'
1869--- data/qt/ubuntuone.qss 2011-07-22 21:26:48 +0000
1870+++ data/qt/ubuntuone.qss 2011-08-12 19:16:23 +0000
1871@@ -2,19 +2,49 @@
1872 background-color: #dd4814;
1873 }
1874
1875-QFrame#frmHeader {
1876+QWidget {
1877+ font-family: "Ubuntu";
1878+}
1879+
1880+QFrame {
1881+ border: none;
1882+}
1883+
1884+QFrame#frame_header {
1885 background: #ffffff;
1886 border-radius: 5px;
1887 border-style: solid;
1888 border-color: #939389;
1889 border-width: 1px;
1890- color: white;
1891- min-height: 100px;
1892+ min-height: 90px;
1893+}
1894+
1895+QFrame#frame_greeting {
1896+ margin 0px;
1897+ padding-left: 15px;
1898+ padding-top: 10px;
1899+ padding-right: 10px;
1900+ padding-bottom: 10px;
1901+}
1902+
1903+QFrame#frame_status,
1904+QFrame#frame_storage {
1905+ border-style: dotted;
1906+ border-color: #939389;
1907+ border-left-width: 1px;
1908+ padding: 10px;
1909+ min-width: 40px;
1910+}
1911+
1912+QFrame#account_separator {
1913+ border-style: dotted;
1914+ border-color: #939389;
1915+ border-bottom-width: 1px;
1916 }
1917
1918 QPushButton[enabled="true"] {
1919 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
1920- stop: 0 #fecfc2,stop: 1.0 #e44e19);
1921+ stop: 0 #fecfc2, stop: 1.0 #e44e19);
1922 border-radius: 5px;
1923 border-style: solid;
1924 padding: 6px;
1925@@ -60,6 +90,32 @@
1926 height: 12px;
1927 }
1928
1929+QPushButton#help_button {
1930+ background: transparent;
1931+ border: none;
1932+ color: white;
1933+ height: 20px;
1934+ text-decoration: underline;
1935+ padding: 0px;
1936+}
1937+
1938+QPushButton#explore_folder_button {
1939+ border: none;
1940+ background: none;
1941+ color: #595959;
1942+}
1943+
1944+QPushButton#add_folder_button {
1945+ padding: 5px;
1946+}
1947+
1948+GoToWebButton#share_publish_button {
1949+ background: transparent;
1950+ border: none;
1951+ color: #dd4814;
1952+ text-decoration: underline;
1953+}
1954+
1955 QTabBar::tab {
1956 height: 15px;
1957 color: #333333;
1958@@ -101,6 +157,13 @@
1959 border-left-color: #e4e0dd;
1960 }
1961
1962+QTabBar::tab:hover {
1963+ background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
1964+ stop: 0 #fafafa, stop: 0.4 #f4f4f4,
1965+ stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);
1966+ text-decoration: underline;
1967+}
1968+
1969 QTabBar::tab:last:!selected {
1970 border-left-color: #e4e0dd;
1971 }
1972@@ -121,37 +184,22 @@
1973 border-width: 1px;
1974 background: white;
1975 border-top: 2px solid white;
1976- }
1977-
1978-QTabBar::tab:hover {
1979- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
1980- stop: 0 #fafafa, stop: 0.4 #f4f4f4,
1981- stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);
1982- }
1983-
1984-QPushButton#help_button {
1985- background: transparent;
1986- border: none;
1987- color: white;
1988- height: 20px;
1989- text-decoration: underline;
1990- padding: 0px;
1991-}
1992-
1993-QPushButton#explore_folder_button {
1994- border: none;
1995- background: none;
1996 }
1997
1998 QGroupBox {
1999 padding-top: 30px;
2000- border: 0px solid;
2001+ border: none;
2002 margin-top: 1ex;
2003+}
2004+
2005+QGroupBox::title {
2006+ color: #333333;
2007 font: bold 15px;
2008 }
2009
2010-QGroupBox::title {
2011- color: #333333;
2012+QGroupBox#profile,
2013+QGroupBox#services {
2014+ padding-left: 5px;
2015 }
2016
2017 QListWidget {
2018@@ -159,12 +207,11 @@
2019 alternate-background-color: #efedec;
2020 }
2021
2022-QListWidget#listDevices::item {
2023+QListWidget#list_devices::item {
2024 min-height: 48px;
2025 }
2026
2027-QLabel#other_devices_label,
2028-QLabel#title_label {
2029+QLabel#other_devices_label {
2030 font: bold 16px;
2031 }
2032
2033@@ -176,7 +223,7 @@
2034 color: white;
2035 }
2036
2037-QFrame#frm_box {
2038+QFrame#frm_box { /* the loadingoverlay frame */
2039 background: #ffffff;
2040 border-radius: 5px;
2041 border-style: solid;
2042@@ -186,6 +233,10 @@
2043 min-height: 100px;
2044 }
2045
2046-QWidget {
2047- font-family: "Ubuntu";
2048+QAbstractItemView {
2049+ border-style: solid;
2050+ border-color: #333333;
2051+ border-width: 1px;
2052+ alternate-background-color: #efedec;
2053+ background: #f7f6f5;
2054 }
2055
2056=== modified file 'debian/changelog'
2057--- debian/changelog 2011-07-26 17:11:27 +0000
2058+++ debian/changelog 2011-08-12 19:16:23 +0000
2059@@ -1,3 +1,10 @@
2060+ubuntuone-control-panel (1.1.2-0ubuntu1) oneiric; urgency=low
2061+
2062+ * New upstream release.
2063+ - ImportError: cannot import name LOGFOLDER (LP: #823648)
2064+
2065+ -- Rodney Dawes <rodney.dawes@ubuntu.com> Fri, 12 Aug 2011 15:12:09 -0400
2066+
2067 ubuntuone-control-panel (1.1.1-0ubuntu2) oneiric; urgency=low
2068
2069 * Add pyqt4-dev-tools and python-qt4 to Build-Depends to fix FTBFS
2070
2071=== modified file 'debian/control'
2072--- debian/control 2011-07-26 17:11:27 +0000
2073+++ debian/control 2011-08-12 19:16:23 +0000
2074@@ -17,7 +17,7 @@
2075 ${python:Depends},
2076 python,
2077 python-ubuntuone-control-panel (= ${binary:Version}),
2078- ubuntuone-client (>= 1.6.0),
2079+ ubuntuone-client (>= 1.7.1),
2080 Recommends: ubuntuone-control-panel-gui
2081 Description: Ubuntu One Control Panel
2082 Desktop application to manage a Ubuntu One account.
2083@@ -37,7 +37,7 @@
2084 python-simplejson,
2085 python-twisted-core,
2086 python-twisted-web,
2087- python-ubuntuone-client (>= 1.6.0),
2088+ python-ubuntuone-client (>= 1.7.1),
2089 ubuntu-sso-client (>= 1.2.0),
2090 Description: Ubuntu One Control Panel Python Libraries
2091 Ubuntu One Control Panel provides a Python library to manage an Ubuntu One
2092@@ -55,9 +55,9 @@
2093 python-defer | python-aptdaemon,
2094 python-gobject (>= 2.21.5),
2095 python-gtk2,
2096- python-ubuntuone-client (>= 1.6.0),
2097+ python-ubuntuone-client (>= 1.7.1),
2098 ubuntu-sso-client (>= 1.2.0),
2099- ubuntuone-client (>= 1.6.0),
2100+ ubuntuone-client (>= 1.7.1),
2101 ubuntuone-control-panel (= ${binary:Version}),
2102 Provides: ubuntuone-control-panel-gui
2103 Description: Ubuntu One Control Panel
2104
2105=== added file 'po/ubuntuone-control-panel.pot'
2106--- po/ubuntuone-control-panel.pot 1970-01-01 00:00:00 +0000
2107+++ po/ubuntuone-control-panel.pot 2011-08-12 19:16:23 +0000
2108@@ -0,0 +1,486 @@
2109+# SOME DESCRIPTIVE TITLE.
2110+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2111+# This file is distributed under the same license as the PACKAGE package.
2112+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
2113+#
2114+#, fuzzy
2115+msgid ""
2116+msgstr ""
2117+"Project-Id-Version: PACKAGE VERSION\n"
2118+"Report-Msgid-Bugs-To: \n"
2119+"POT-Creation-Date: 2011-08-12 15:07-0400\n"
2120+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
2121+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
2122+"Language-Team: LANGUAGE <LL@li.org>\n"
2123+"Language: \n"
2124+"MIME-Version: 1.0\n"
2125+"Content-Type: text/plain; charset=CHARSET\n"
2126+"Content-Transfer-Encoding: 8bit\n"
2127+
2128+#: ../ubuntuone-control-panel-gtk.desktop.in.h:1
2129+msgid "Configure and manage your Ubuntu One account"
2130+msgstr ""
2131+
2132+#: ../ubuntuone/controlpanel/gui/__init__.py:72
2133+msgid "Always in sync"
2134+msgstr ""
2135+
2136+#: ../ubuntuone/controlpanel/gui/__init__.py:73
2137+msgid "Firefox extension"
2138+msgstr ""
2139+
2140+#: ../ubuntuone/controlpanel/gui/__init__.py:74
2141+msgid "Connect to Ubuntu One"
2142+msgstr ""
2143+
2144+#: ../ubuntuone/controlpanel/gui/__init__.py:75
2145+msgid "Evolution plug-in"
2146+msgstr ""
2147+
2148+#: ../ubuntuone/controlpanel/gui/__init__.py:76
2149+msgid "There was a problem while retrieving the credentials."
2150+msgstr ""
2151+
2152+#: ../ubuntuone/controlpanel/gui/__init__.py:77
2153+msgid "View your personal details and service summary"
2154+msgstr ""
2155+
2156+#: ../ubuntuone/controlpanel/gui/__init__.py:79
2157+msgid "Welcome to Ubuntu One!"
2158+msgstr ""
2159+
2160+#: ../ubuntuone/controlpanel/gui/__init__.py:80
2161+msgid ""
2162+"The information could not be retrieved. Maybe your internet connection is "
2163+"down?"
2164+msgstr ""
2165+
2166+#: ../ubuntuone/controlpanel/gui/__init__.py:83
2167+#: ../ubuntuone/controlpanel/gui/__init__.py:156
2168+msgid ""
2169+"The settings could not be changed,\n"
2170+"previous values were restored."
2171+msgstr ""
2172+
2173+#: ../ubuntuone/controlpanel/gui/__init__.py:85
2174+msgid "Are you sure you want to remove this device from Ubuntu One?"
2175+msgstr ""
2176+
2177+#: ../ubuntuone/controlpanel/gui/__init__.py:88
2178+msgid "The device could not be removed."
2179+msgstr ""
2180+
2181+#: ../ubuntuone/controlpanel/gui/__init__.py:89
2182+msgid "Manage devices registered with your personal cloud"
2183+msgstr ""
2184+
2185+#: ../ubuntuone/controlpanel/gui/__init__.py:91
2186+msgid "The devices connected with your personal cloud are listed below."
2187+msgstr ""
2188+
2189+#: ../ubuntuone/controlpanel/gui/__init__.py:93
2190+msgid "Explore"
2191+msgstr ""
2192+
2193+#: ../ubuntuone/controlpanel/gui/__init__.py:94
2194+#, python-format
2195+msgid "<i>%(package_name)s</i> could not be installed"
2196+msgstr ""
2197+
2198+#: ../ubuntuone/controlpanel/gui/__init__.py:95
2199+msgid "Sync another folder with your cloud"
2200+msgstr ""
2201+
2202+#: ../ubuntuone/controlpanel/gui/__init__.py:96
2203+#, python-format
2204+msgid ""
2205+"The chosen directory \"%(folder_path)s\" is not valid. \n"
2206+"\n"
2207+"Please choose a folder inside your \"%(home_folder)s\" directory, and not "
2208+"overlapping with any existing cloud folder."
2209+msgstr ""
2210+
2211+#: ../ubuntuone/controlpanel/gui/__init__.py:101
2212+msgid "My personal folders"
2213+msgstr ""
2214+
2215+#: ../ubuntuone/controlpanel/gui/__init__.py:102
2216+#, python-format
2217+msgid "Shared by %(other_user_display_name)s"
2218+msgstr ""
2219+
2220+#: ../ubuntuone/controlpanel/gui/__init__.py:103
2221+#, python-format
2222+msgid ""
2223+"The contents of your cloud folder will be merged with your local folder "
2224+"\"%(folder_path)s\" when subscribing.\n"
2225+"Do you want to subscribe to this cloud folder?"
2226+msgstr ""
2227+
2228+#: ../ubuntuone/controlpanel/gui/__init__.py:107
2229+msgid "Manage your cloud folders"
2230+msgstr ""
2231+
2232+#: ../ubuntuone/controlpanel/gui/__init__.py:109
2233+msgid ""
2234+"Select which folders from your cloud you want to sync with this computer"
2235+msgstr ""
2236+
2237+#: ../ubuntuone/controlpanel/gui/__init__.py:111
2238+msgid "Connect"
2239+msgstr ""
2240+
2241+#: ../ubuntuone/controlpanel/gui/__init__.py:112
2242+msgid "Connect the file sync service with your personal cloud"
2243+msgstr ""
2244+
2245+#: ../ubuntuone/controlpanel/gui/__init__.py:114
2246+msgid "File Sync is disabled."
2247+msgstr ""
2248+
2249+#: ../ubuntuone/controlpanel/gui/__init__.py:115
2250+msgid "Disconnect"
2251+msgstr ""
2252+
2253+#: ../ubuntuone/controlpanel/gui/__init__.py:116
2254+msgid "Disconnect the file sync service from your personal cloud"
2255+msgstr ""
2256+
2257+#: ../ubuntuone/controlpanel/gui/__init__.py:118
2258+msgid "File Sync is disconnected."
2259+msgstr ""
2260+
2261+#: ../ubuntuone/controlpanel/gui/__init__.py:119
2262+msgid "Enable"
2263+msgstr ""
2264+
2265+#: ../ubuntuone/controlpanel/gui/__init__.py:120
2266+msgid "Enable the file sync service"
2267+msgstr ""
2268+
2269+#: ../ubuntuone/controlpanel/gui/__init__.py:121
2270+msgid "File Sync error."
2271+msgstr ""
2272+
2273+#: ../ubuntuone/controlpanel/gui/__init__.py:122
2274+msgid "File Sync is up-to-date."
2275+msgstr ""
2276+
2277+#: ../ubuntuone/controlpanel/gui/__init__.py:123
2278+msgid "Restart"
2279+msgstr ""
2280+
2281+#: ../ubuntuone/controlpanel/gui/__init__.py:124
2282+msgid "Restart the file sync service"
2283+msgstr ""
2284+
2285+#: ../ubuntuone/controlpanel/gui/__init__.py:125
2286+msgid "File Sync"
2287+msgstr ""
2288+
2289+#: ../ubuntuone/controlpanel/gui/__init__.py:126
2290+msgid "Start"
2291+msgstr ""
2292+
2293+#: ../ubuntuone/controlpanel/gui/__init__.py:127
2294+msgid "Start the file sync service"
2295+msgstr ""
2296+
2297+#: ../ubuntuone/controlpanel/gui/__init__.py:128
2298+msgid "File Sync starting..."
2299+msgstr ""
2300+
2301+#: ../ubuntuone/controlpanel/gui/__init__.py:129
2302+msgid "Stop"
2303+msgstr ""
2304+
2305+#: ../ubuntuone/controlpanel/gui/__init__.py:130
2306+msgid "Stop the file sync service"
2307+msgstr ""
2308+
2309+#: ../ubuntuone/controlpanel/gui/__init__.py:131
2310+msgid "File Sync is stopped."
2311+msgstr ""
2312+
2313+#: ../ubuntuone/controlpanel/gui/__init__.py:132
2314+msgid "File Sync in progress..."
2315+msgstr ""
2316+
2317+#: ../ubuntuone/controlpanel/gui/__init__.py:133
2318+#, python-format
2319+msgid "%(free_space)s available storage"
2320+msgstr ""
2321+
2322+#: ../ubuntuone/controlpanel/gui/__init__.py:134
2323+#, python-format
2324+msgid "Hi %(user_display_name)s"
2325+msgstr ""
2326+
2327+#: ../ubuntuone/controlpanel/gui/__init__.py:135
2328+#, python-format
2329+msgid ""
2330+"You need to install the package <i>%(package_name)s</i> in order to enable "
2331+"more sync services."
2332+msgstr ""
2333+
2334+#: ../ubuntuone/controlpanel/gui/__init__.py:137
2335+#, python-format
2336+msgid "Install the %(plugin_name)s for the sync service: %(service_name)s"
2337+msgstr ""
2338+
2339+#: ../ubuntuone/controlpanel/gui/__init__.py:139
2340+#, python-format
2341+msgid "Installation of <i>%(package_name)s</i> in progress"
2342+msgstr ""
2343+
2344+#: ../ubuntuone/controlpanel/gui/__init__.py:140
2345+msgid "Loading..."
2346+msgstr ""
2347+
2348+#: ../ubuntuone/controlpanel/gui/__init__.py:141
2349+#, python-format
2350+msgid "%(app_name)s Control Panel"
2351+msgstr ""
2352+
2353+#: ../ubuntuone/controlpanel/gui/__init__.py:142
2354+msgid "My folders"
2355+msgstr ""
2356+
2357+#: ../ubuntuone/controlpanel/gui/__init__.py:143
2358+msgid "[unknown user name]"
2359+msgstr ""
2360+
2361+#: ../ubuntuone/controlpanel/gui/__init__.py:144
2362+msgid "Purchased Music"
2363+msgstr ""
2364+
2365+#: ../ubuntuone/controlpanel/gui/__init__.py:146
2366+#, python-format
2367+msgid "An internet connection is required to join or sign in to %(app_name)s."
2368+msgstr ""
2369+
2370+#: ../ubuntuone/controlpanel/gui/__init__.py:148
2371+msgid "No devices to show."
2372+msgstr ""
2373+
2374+#: ../ubuntuone/controlpanel/gui/__init__.py:149
2375+msgid "No folders to show."
2376+msgstr ""
2377+
2378+#: ../ubuntuone/controlpanel/gui/__init__.py:150
2379+msgid "There is no Ubuntu One pairing record."
2380+msgstr ""
2381+
2382+#: ../ubuntuone/controlpanel/gui/__init__.py:151
2383+#, python-format
2384+msgid "%(percentage)s used"
2385+msgstr ""
2386+
2387+#: ../ubuntuone/controlpanel/gui/__init__.py:152
2388+#, python-format
2389+msgid "Using %(used)s of %(total)s (%(percentage).0f%%)"
2390+msgstr ""
2391+
2392+#: ../ubuntuone/controlpanel/gui/__init__.py:153
2393+#, python-format
2394+msgid "%(used)s of %(total)s"
2395+msgstr ""
2396+
2397+#: ../ubuntuone/controlpanel/gui/__init__.py:154
2398+msgid "Manage the sync services"
2399+msgstr ""
2400+
2401+#: ../ubuntuone/controlpanel/gui/__init__.py:155
2402+msgid "Enable the sync services for this computer."
2403+msgstr ""
2404+
2405+#: ../ubuntuone/controlpanel/gui/__init__.py:158
2406+msgid "Manage the shares offered to others"
2407+msgstr ""
2408+
2409+#: ../ubuntuone/controlpanel/gui/__init__.py:159
2410+msgid "Manage permissions for shares made to other users."
2411+msgstr ""
2412+
2413+#: ../ubuntuone/controlpanel/gui/__init__.py:160
2414+#, python-format
2415+msgid "<i>%(package_name)s</i> was successfully installed"
2416+msgstr ""
2417+
2418+#: ../ubuntuone/controlpanel/gui/__init__.py:161 ../data/gtk/volumes.ui.h:1
2419+msgid "Sync locally?"
2420+msgstr ""
2421+
2422+#: ../ubuntuone/controlpanel/gui/__init__.py:162
2423+msgid "Value could not be retrieved."
2424+msgstr ""
2425+
2426+#: ../ubuntuone/controlpanel/gui/__init__.py:163
2427+msgid "Unknown error"
2428+msgstr ""
2429+
2430+#: ../data/gtk/dashboard.ui.h:1
2431+msgid "<b>Personal details</b>"
2432+msgstr ""
2433+
2434+#: ../data/gtk/dashboard.ui.h:2
2435+msgid "<b>Your services</b>"
2436+msgstr ""
2437+
2438+#: ../data/gtk/dashboard.ui.h:3
2439+msgid "Buy storage and plans"
2440+msgstr ""
2441+
2442+#: ../data/gtk/dashboard.ui.h:4
2443+msgid "Edit account details"
2444+msgstr ""
2445+
2446+#: ../data/gtk/device.ui.h:1
2447+msgid "KiB/s"
2448+msgstr ""
2449+
2450+#: ../data/gtk/device.ui.h:2
2451+msgid "Limit file sync bandwidth usage"
2452+msgstr ""
2453+
2454+#: ../data/gtk/device.ui.h:3
2455+msgid "Max download speed:"
2456+msgstr ""
2457+
2458+#: ../data/gtk/device.ui.h:4
2459+msgid "Max upload speed:"
2460+msgstr ""
2461+
2462+#: ../data/gtk/device.ui.h:5
2463+msgid "Show activity notifications"
2464+msgstr ""
2465+
2466+#: ../data/gtk/install.ui.h:1
2467+msgid "_Install now"
2468+msgstr ""
2469+
2470+#: ../data/gtk/management.ui.h:1
2471+msgid "Account"
2472+msgstr ""
2473+
2474+#: ../data/gtk/management.ui.h:2
2475+msgid "Cloud Folders"
2476+msgstr ""
2477+
2478+#: ../data/gtk/management.ui.h:3
2479+msgid "Community Support"
2480+msgstr ""
2481+
2482+#: ../data/gtk/management.ui.h:4
2483+msgid "Devices"
2484+msgstr ""
2485+
2486+#: ../data/gtk/management.ui.h:5
2487+msgid "Official Support"
2488+msgstr ""
2489+
2490+#: ../data/gtk/management.ui.h:6
2491+msgid "Services"
2492+msgstr ""
2493+
2494+#: ../data/gtk/management.ui.h:7
2495+msgid "Shares"
2496+msgstr ""
2497+
2498+#: ../data/gtk/management.ui.h:8
2499+msgid "Talk to us on:"
2500+msgstr ""
2501+
2502+#: ../data/gtk/management.ui.h:9
2503+msgid "http://twitter.com/ubuntuone"
2504+msgstr ""
2505+
2506+#: ../data/gtk/management.ui.h:10
2507+msgid "http://www.facebook.com/ubuntuone"
2508+msgstr ""
2509+
2510+#: ../data/gtk/overview.ui.h:1
2511+msgid ""
2512+"<span font=\"24\" foreground=\"#4d4d4d\">The Power of Your Personal Cloud</"
2513+"span>"
2514+msgstr ""
2515+
2516+#: ../data/gtk/overview.ui.h:2
2517+msgid "<span font_size=\"xx-large\" foreground=\"#4d4d4d\">Join now</span>"
2518+msgstr ""
2519+
2520+#: ../data/gtk/overview.ui.h:3
2521+msgid "<span foreground=\"#909090\">2GB of free storage</span>"
2522+msgstr ""
2523+
2524+#: ../data/gtk/overview.ui.h:4
2525+msgid "<span foreground=\"#909090\">Learn More</span>"
2526+msgstr ""
2527+
2528+#: ../data/gtk/overview.ui.h:5
2529+msgid ""
2530+"Files Anywhere\n"
2531+"<span foreground=\"#909090\">Back up and access your files from Ubuntu, "
2532+"Windows, Web or Mobile</span>"
2533+msgstr ""
2534+
2535+#: ../data/gtk/overview.ui.h:7
2536+msgid "I already have an account!"
2537+msgstr ""
2538+
2539+#: ../data/gtk/overview.ui.h:8
2540+msgid ""
2541+"Keep Connected\n"
2542+"<span foreground=\"#909090\">Unify your contacts across Desktop, Mobile and "
2543+"Web</span>"
2544+msgstr ""
2545+
2546+#: ../data/gtk/overview.ui.h:10
2547+msgid ""
2548+"Rock Out\n"
2549+"<span foreground=\"#909090\">Your entire collection follows you around with "
2550+"music streaming to Android and iPhone</span>"
2551+msgstr ""
2552+
2553+#: ../data/gtk/overview.ui.h:12
2554+msgid ""
2555+"Stay Productive\n"
2556+"<span foreground=\"#909090\">Keep your Firefox bookmarks and Tomboy notes "
2557+"synced</span>"
2558+msgstr ""
2559+
2560+#: ../data/gtk/services.ui.h:1
2561+msgid "<span font_size=\"small\">Bookmarks sync works with Firefox</span>"
2562+msgstr ""
2563+
2564+#: ../data/gtk/services.ui.h:2
2565+msgid ""
2566+"<span font_size=\"small\">Enable and then choose which folders you want to "
2567+"access from the Web or any device you connected to Ubuntu One\n"
2568+"\n"
2569+"Simply drag and drop any file or folder to your Ubuntu One folder on this "
2570+"computer</span>"
2571+msgstr ""
2572+
2573+#: ../data/gtk/services.ui.h:5
2574+msgid ""
2575+"<span font_size=\"small\">Once enabled, visit the <a href=\"https://one."
2576+"ubuntu.com\">Ubuntu One website</a> to manage your contacts, including Gmail "
2577+"and Facebook import</span>"
2578+msgstr ""
2579+
2580+#: ../data/gtk/services.ui.h:6
2581+msgid "Enable Bookmarks Sync"
2582+msgstr ""
2583+
2584+#: ../data/gtk/services.ui.h:7
2585+msgid "Enable Contacts Sync"
2586+msgstr ""
2587+
2588+#: ../data/gtk/services.ui.h:8
2589+msgid "Enable File Sync"
2590+msgstr ""
2591+
2592+#: ../data/gtk/services.ui.h:9
2593+msgid "_Show me my Ubuntu One folder"
2594+msgstr ""
2595
2596=== modified file 'setup.py'
2597--- setup.py 2011-07-22 21:26:48 +0000
2598+++ setup.py 2011-08-12 19:16:23 +0000
2599@@ -223,7 +223,7 @@
2600
2601 DistUtilsExtra.auto.setup(
2602 name='ubuntuone-control-panel',
2603- version='1.1.1',
2604+ version='1.1.2',
2605 license='GPL v3',
2606 author='Natalia Bidart',
2607 author_email='natalia.bidart@canonical.com',
2608
2609=== modified file 'ubuntuone/controlpanel/backend.py'
2610--- ubuntuone/controlpanel/backend.py 2011-07-22 21:26:48 +0000
2611+++ ubuntuone/controlpanel/backend.py 2011-08-12 19:16:23 +0000
2612@@ -656,7 +656,9 @@
2613 folder_path = append_path_sep(folder_path)
2614
2615 # handle folder_path not within '~' or links
2616- if not folder_path.startswith(user_home) or is_link(folder_path):
2617+ # XXX is_link expects bytes, see bug #824252
2618+ if not folder_path.startswith(user_home) or is_link(
2619+ folder_path.encode('utf-8')):
2620 returnValue(False)
2621
2622 # handle folder_path nested with a existing cloud folder
2623
2624=== modified file 'ubuntuone/controlpanel/gui/__init__.py'
2625--- ubuntuone/controlpanel/gui/__init__.py 2011-07-22 21:26:48 +0000
2626+++ ubuntuone/controlpanel/gui/__init__.py 2011-08-12 19:16:23 +0000
2627@@ -69,7 +69,7 @@
2628 MANAGE_FILES_LINK = UBUNTUONE_LINK + 'files/'
2629 TWITTER_LINK = 'http://twitter.com/ubuntuone/'
2630
2631-ALWAYS_SUBSCRIBED = _('Always in sync!')
2632+ALWAYS_SUBSCRIBED = _('Always in sync')
2633 BOOKMARKS = _('Firefox extension')
2634 CONNECT_BUTTON_LABEL = _('Connect to Ubuntu One')
2635 CONTACTS = _('Evolution plug-in')
2636@@ -98,7 +98,7 @@
2637 'Please choose a folder inside your "%(home_folder)s" '
2638 'directory, and not overlapping with any existing '
2639 'cloud folder.')
2640-FOLDER_OWNED_BY = _('Personal folders')
2641+FOLDER_OWNED_BY = _('My personal folders')
2642 FOLDER_SHARED_BY = _('Shared by %(other_user_display_name)s')
2643 FOLDERS_CONFIRM_MERGE = _('The contents of your cloud folder will be merged '
2644 'with your local folder "%(folder_path)s" when '
2645@@ -158,6 +158,7 @@
2646 SHARES_BUTTON_TOOLTIP = _('Manage the shares offered to others')
2647 SHARES_TITLE = _('Manage permissions for shares made to other users.')
2648 SUCCESS_INSTALL = _('<i>%(package_name)s</i> was successfully installed')
2649+SYNC_LOCALLY = _('Sync locally?')
2650 VALUE_ERROR = _('Value could not be retrieved.')
2651 UNKNOWN_ERROR = _('Unknown error')
2652
2653@@ -187,7 +188,7 @@
2654 credentials["consumer_secret"])
2655 token = oauth.OAuthToken(credentials["token"],
2656 credentials["token_secret"])
2657- uri = 'https://one.ubuntu.com/api/1.0/from_oauth'
2658+ uri = 'https://one.ubuntu.com/api/1.0/from_oauth/'
2659 request = oauth.OAuthRequest.from_consumer_and_token(
2660 http_url=uri, http_method='GET',
2661 oauth_consumer=consumer, token=token,
2662
2663=== modified file 'ubuntuone/controlpanel/gui/qt/controlpanel.py'
2664--- ubuntuone/controlpanel/gui/qt/controlpanel.py 2011-07-22 21:26:48 +0000
2665+++ ubuntuone/controlpanel/gui/qt/controlpanel.py 2011-08-12 19:16:23 +0000
2666@@ -42,7 +42,7 @@
2667
2668 logger = setup_logging('qt.controlpanel')
2669
2670-NAME_STYLE = '<br><span style=" font-size:26pt;">%s!</span>'
2671+NAME_STYLE = '<br><span style=" font-size:24pt;">%s!</span>'
2672 PERCENTAGE_STYLE = '<span style=" font-size:16pt;">%.0f%%</span>'
2673
2674
2675
2676=== modified file 'ubuntuone/controlpanel/gui/qt/folders.py'
2677--- ubuntuone/controlpanel/gui/qt/folders.py 2011-07-22 21:26:48 +0000
2678+++ ubuntuone/controlpanel/gui/qt/folders.py 2011-08-12 19:16:23 +0000
2679@@ -40,6 +40,7 @@
2680 MUSIC_REAL_PATH,
2681 NAME_NOT_SET,
2682 SHARE_ICON_NAME,
2683+ SYNC_LOCALLY,
2684 )
2685 from ubuntuone.controlpanel.gui.qt import uri_hook, icon_from_name
2686 from ubuntuone.controlpanel.gui.qt.ubuntuonebin import UbuntuOneBin
2687@@ -48,8 +49,6 @@
2688
2689 logger = setup_logging('qt.folders')
2690
2691-ROW_HEADER = u'<font size="5"><b>%s</b></font>'
2692-
2693 FOLDER_NAME_COL = 0
2694 SUBSCRIPTION_COL = 1
2695 EXPLORE_COL = 2
2696@@ -79,6 +78,8 @@
2697 headers.setStretchLastSection(False)
2698
2699 self.ui.share_publish_button.uri = MANAGE_FILES_LINK
2700+ icon = icon_from_name('external_icon_orange')
2701+ self.ui.share_publish_button.setIcon(icon)
2702
2703 logger.debug('%s: started.', self.__class__.__name__)
2704
2705@@ -109,23 +110,22 @@
2706
2707 if name:
2708 name = FOLDER_SHARED_BY % {'other_user_display_name': name}
2709- # we already added user folders, let's add an empty row
2710- empty_row = QtGui.QTreeWidgetItem()
2711- empty_row.is_empty = True
2712- self.ui.folders.addTopLevelItem(empty_row)
2713 else:
2714 name = FOLDER_OWNED_BY
2715
2716 item = QtGui.QTreeWidgetItem()
2717+ item.setText(FOLDER_NAME_COL, name)
2718+ item.setText(SUBSCRIPTION_COL, SYNC_LOCALLY)
2719+ item.setSizeHint(FOLDER_NAME_COL, QtCore.QSize(-1, 20))
2720+ brush = QtGui.QBrush(QtGui.QColor('#d6d3cf'))
2721+ for col in (FOLDER_NAME_COL, SUBSCRIPTION_COL, EXPLORE_COL):
2722+ item.setBackground(col, brush)
2723 item.is_empty = False
2724 self.ui.folders.addTopLevelItem(item)
2725
2726- model_index = self.ui.folders.indexFromItem(item, FOLDER_NAME_COL)
2727- title = QtGui.QLabel(ROW_HEADER % (name,))
2728- self.ui.folders.setIndexWidget(model_index, title)
2729-
2730 for volume in volumes:
2731 child = QtGui.QTreeWidgetItem()
2732+ child.setSizeHint(FOLDER_NAME_COL, QtCore.QSize(-1, 35))
2733 child.volume_path = volume['path']
2734 child.volume_id = volume['volume_id']
2735
2736@@ -168,6 +168,7 @@
2737 button.icon_obj = icon # hack!
2738 button.setIcon(icon_from_name(FOLDER_ICON_NAME))
2739 button.setIconSize(QtCore.QSize(12, 12))
2740+ button.setText(EXPLORE)
2741 button.setObjectName('explore_folder_button')
2742 policy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
2743 QtGui.QSizePolicy.Fixed)
2744@@ -187,7 +188,7 @@
2745
2746 def on_folders_itemActivated(self, item, column=None):
2747 """User activated a given row, open the path in a file browser."""
2748- volume_path = item.volume_path
2749+ volume_path = getattr(item, 'volume_path', None)
2750 if volume_path is None:
2751 logger.warning('on_folders_itemActivated: volume_path for item %r '
2752 'and column %r is None.', item, column)
2753
2754=== modified file 'ubuntuone/controlpanel/gui/qt/loadingoverlay.py'
2755--- ubuntuone/controlpanel/gui/qt/loadingoverlay.py 2011-07-22 21:26:48 +0000
2756+++ ubuntuone/controlpanel/gui/qt/loadingoverlay.py 2011-08-12 19:16:23 +0000
2757@@ -106,7 +106,8 @@
2758 palette.setColor(palette.Background, QtCore.Qt.transparent)
2759 self.setPalette(palette)
2760
2761- self.timer = self.startTimer(200)
2762+ if not self.timer:
2763+ self.timer = self.startTimer(200)
2764
2765 # Invalid name "timerEvent"
2766 # pylint: disable=C0103
2767
2768=== modified file 'ubuntuone/controlpanel/gui/qt/tests/test_folders.py'
2769--- ubuntuone/controlpanel/gui/qt/tests/test_folders.py 2011-07-22 21:26:48 +0000
2770+++ ubuntuone/controlpanel/gui/qt/tests/test_folders.py 2011-08-12 19:16:23 +0000
2771@@ -85,6 +85,12 @@
2772 yield super(FoldersPanelVolumesInfoTestCase, self).setUp()
2773 yield self.ui.load()
2774
2775+ def assert_folder_group_header_correct(self, item, name):
2776+ """Check that the folder group header is correct."""
2777+ self.assertEqual(item.text(gui.FOLDER_NAME_COL), name)
2778+ self.assertEqual(item.text(gui.SUBSCRIPTION_COL), gui.SYNC_LOCALLY)
2779+ self.assertEqual(item.text(gui.EXPLORE_COL), '')
2780+
2781 @defer.inlineCallbacks
2782 def test_is_processing_while_asking_info(self):
2783 """The ui is processing while the contents are loaded."""
2784@@ -113,7 +119,7 @@
2785 folders = self.ui.ui.folders
2786
2787 root = folders.invisibleRootItem()
2788- self.assertEqual(len(FAKE_VOLUMES_INFO) + 1, root.childCount())
2789+ self.assertEqual(len(FAKE_VOLUMES_INFO), root.childCount())
2790
2791 treeiter = gui.QtGui.QTreeWidgetItemIterator(folders)
2792 for name, _, volumes in FAKE_VOLUMES_INFO:
2793@@ -123,9 +129,7 @@
2794 item = treeiter.value()
2795 self.assertFalse(item.is_empty)
2796
2797- model_index = folders.indexFromItem(item, gui.FOLDER_NAME_COL)
2798- label = folders.indexWidget(model_index).text()
2799- self.assertEqual(label, gui.ROW_HEADER % name)
2800+ self.assert_folder_group_header_correct(item, name)
2801
2802 # check children
2803 self.assertEqual(len(volumes), item.childCount())
2804@@ -175,18 +179,13 @@
2805 treeiter += 1
2806 item = treeiter.value()
2807
2808- if item is not None:
2809- self.assertTrue(item.is_empty)
2810- # skip the empty row
2811- treeiter += 1
2812-
2813 def test_process_info_clears_the_list(self):
2814 """The old volumes info is cleared before updated."""
2815 self.ui.process_info(FAKE_VOLUMES_INFO)
2816 self.ui.process_info(FAKE_VOLUMES_INFO)
2817
2818 root = self.ui.ui.folders.invisibleRootItem()
2819- self.assertEqual(len(FAKE_VOLUMES_INFO) + 1, root.childCount())
2820+ self.assertEqual(len(FAKE_VOLUMES_INFO), root.childCount())
2821
2822 def test_process_info_with_no_volumes(self):
2823 """When there are no volumes, a notification is shown."""
2824@@ -198,7 +197,6 @@
2825 def test_process_info_highlights_little_free_space(self):
2826 """The free space is red if is zero (or close to 0)."""
2827 self.ui.process_info(FAKE_VOLUMES_NO_FREE_SPACE_INFO)
2828- folders = self.ui.ui.folders
2829
2830 child_index = 0
2831 root = self.ui.ui.folders.invisibleRootItem()
2832@@ -207,19 +205,11 @@
2833
2834 item = root.child(child_index)
2835 self.assertFalse(item.is_empty)
2836-
2837- model_index = folders.indexFromItem(item, gui.FOLDER_NAME_COL)
2838- label = folders.indexWidget(model_index).text()
2839- self.assertEqual(label, gui.ROW_HEADER % name)
2840+ self.assert_folder_group_header_correct(item, name)
2841
2842 child_index += 1
2843 item = root.child(child_index)
2844
2845- if item is not None:
2846- # skip the empty row
2847- self.assertTrue(item.is_empty)
2848- child_index += 1
2849-
2850 def test_process_info_handles_no_quota_info(self):
2851 """The lack of free space is handled."""
2852 info = [
2853@@ -231,7 +221,6 @@
2854 u'type': self.ui.backend.SHARE_TYPE}]),
2855 ]
2856 self.ui.process_info(info)
2857- folders = self.ui.ui.folders
2858
2859 child_index = 0
2860 root = self.ui.ui.folders.invisibleRootItem()
2861@@ -240,19 +229,11 @@
2862
2863 item = root.child(child_index)
2864 self.assertFalse(item.is_empty)
2865-
2866- model_index = folders.indexFromItem(item, gui.FOLDER_NAME_COL)
2867- label = folders.indexWidget(model_index).text()
2868- self.assertEqual(label, gui.ROW_HEADER % name)
2869+ self.assert_folder_group_header_correct(item, name)
2870
2871 child_index += 1
2872 item = root.child(child_index)
2873
2874- if item is not None:
2875- # skip the empty row
2876- self.assertTrue(item.is_empty)
2877- child_index += 1
2878-
2879 def test_clicking_on_row_opens_folder(self):
2880 """The folder activated is opened."""
2881 self.patch(gui.os.path, 'exists', lambda *a: True)
2882
2883=== modified file 'ubuntuone/controlpanel/gui/qt/ui/account_ui.py'
2884--- ubuntuone/controlpanel/gui/qt/ui/account_ui.py 2011-07-22 21:26:48 +0000
2885+++ ubuntuone/controlpanel/gui/qt/ui/account_ui.py 2011-08-12 19:16:23 +0000
2886@@ -2,7 +2,7 @@
2887
2888 # Form implementation generated from reading ui file 'data/qt/account.ui'
2889 #
2890-# Created: Fri Jul 22 17:06:43 2011
2891+# Created: Fri Aug 12 15:07:18 2011
2892 # by: PyQt4 UI code generator 4.8.3
2893 #
2894 # WARNING! All changes made in this file will be lost!
2895@@ -18,60 +18,67 @@
2896 class Ui_Form(object):
2897 def setupUi(self, Form):
2898 Form.setObjectName(_fromUtf8("Form"))
2899- Form.resize(321, 205)
2900+ Form.resize(381, 167)
2901 self.verticalLayout = QtGui.QVBoxLayout(Form)
2902 self.verticalLayout.setMargin(0)
2903 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
2904- self.horizontalGroupBox = QtGui.QGroupBox(Form)
2905- self.horizontalGroupBox.setObjectName(_fromUtf8("horizontalGroupBox"))
2906- self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalGroupBox)
2907- self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
2908+ self.gridLayout_2 = QtGui.QGridLayout()
2909+ self.gridLayout_2.setVerticalSpacing(30)
2910+ self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
2911+ self.edit_profile_button = GoToWebButton(Form)
2912+ self.edit_profile_button.setObjectName(_fromUtf8("edit_profile_button"))
2913+ self.gridLayout_2.addWidget(self.edit_profile_button, 2, 2, 1, 1)
2914+ self.services = QtGui.QGroupBox(Form)
2915+ self.services.setObjectName(_fromUtf8("services"))
2916+ self.verticalLayout_3 = QtGui.QVBoxLayout(self.services)
2917+ self.verticalLayout_3.setMargin(0)
2918+ self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
2919+ self.services_description_label = QtGui.QLabel(self.services)
2920+ self.services_description_label.setText(_fromUtf8(""))
2921+ self.services_description_label.setObjectName(_fromUtf8("services_description_label"))
2922+ self.verticalLayout_3.addWidget(self.services_description_label)
2923+ self.gridLayout_2.addWidget(self.services, 2, 0, 1, 1)
2924+ self.account_separator = QtGui.QFrame(Form)
2925+ self.account_separator.setFrameShape(QtGui.QFrame.HLine)
2926+ self.account_separator.setFrameShadow(QtGui.QFrame.Sunken)
2927+ self.account_separator.setObjectName(_fromUtf8("account_separator"))
2928+ self.gridLayout_2.addWidget(self.account_separator, 1, 0, 1, 4)
2929+ self.profile_info = QtGui.QGroupBox(Form)
2930+ self.profile_info.setObjectName(_fromUtf8("profile_info"))
2931+ self.verticalLayout_4 = QtGui.QVBoxLayout(self.profile_info)
2932+ self.verticalLayout_4.setMargin(0)
2933+ self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
2934 self.verticalLayout_2 = QtGui.QVBoxLayout()
2935 self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
2936- self.name_label = QtGui.QLabel(self.horizontalGroupBox)
2937+ self.name_label = QtGui.QLabel(self.profile_info)
2938 self.name_label.setText(_fromUtf8(""))
2939 self.name_label.setObjectName(_fromUtf8("name_label"))
2940 self.verticalLayout_2.addWidget(self.name_label)
2941- self.email_label = QtGui.QLabel(self.horizontalGroupBox)
2942+ self.email_label = QtGui.QLabel(self.profile_info)
2943 self.email_label.setText(_fromUtf8(""))
2944 self.email_label.setObjectName(_fromUtf8("email_label"))
2945 self.verticalLayout_2.addWidget(self.email_label)
2946- self.horizontalLayout.addLayout(self.verticalLayout_2)
2947+ self.verticalLayout_4.addLayout(self.verticalLayout_2)
2948+ self.gridLayout_2.addWidget(self.profile_info, 0, 0, 1, 1)
2949+ self.edit_services_button = GoToWebButton(Form)
2950+ self.edit_services_button.setObjectName(_fromUtf8("edit_services_button"))
2951+ self.gridLayout_2.addWidget(self.edit_services_button, 0, 2, 1, 1)
2952 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
2953- self.horizontalLayout.addItem(spacerItem)
2954- self.edit_profile_button = GoToWebButton(self.horizontalGroupBox)
2955- self.edit_profile_button.setObjectName(_fromUtf8("edit_profile_button"))
2956- self.horizontalLayout.addWidget(self.edit_profile_button)
2957+ self.gridLayout_2.addItem(spacerItem, 0, 3, 1, 1)
2958 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
2959- self.horizontalLayout.addItem(spacerItem1)
2960- self.verticalLayout.addWidget(self.horizontalGroupBox)
2961- self.horizontalGroupBox_2 = QtGui.QGroupBox(Form)
2962- self.horizontalGroupBox_2.setObjectName(_fromUtf8("horizontalGroupBox_2"))
2963- self.horizontalLayout_2 = QtGui.QHBoxLayout(self.horizontalGroupBox_2)
2964- self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
2965- self.services_description_label = QtGui.QLabel(self.horizontalGroupBox_2)
2966- self.services_description_label.setText(_fromUtf8(""))
2967- self.services_description_label.setObjectName(_fromUtf8("services_description_label"))
2968- self.horizontalLayout_2.addWidget(self.services_description_label)
2969- spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
2970- self.horizontalLayout_2.addItem(spacerItem2)
2971- self.edit_services_button = GoToWebButton(self.horizontalGroupBox_2)
2972- self.edit_services_button.setObjectName(_fromUtf8("edit_services_button"))
2973- self.horizontalLayout_2.addWidget(self.edit_services_button)
2974- spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
2975- self.horizontalLayout_2.addItem(spacerItem3)
2976- self.verticalLayout.addWidget(self.horizontalGroupBox_2)
2977- spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
2978- self.verticalLayout.addItem(spacerItem4)
2979+ self.gridLayout_2.addItem(spacerItem1, 0, 1, 1, 1)
2980+ self.verticalLayout.addLayout(self.gridLayout_2)
2981+ spacerItem2 = QtGui.QSpacerItem(20, 10, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
2982+ self.verticalLayout.addItem(spacerItem2)
2983
2984 self.retranslateUi(Form)
2985 QtCore.QMetaObject.connectSlotsByName(Form)
2986
2987 def retranslateUi(self, Form):
2988 Form.setWindowTitle(_('Form'))
2989- self.horizontalGroupBox.setTitle(_('Personal details'))
2990 self.edit_profile_button.setText(_('Edit personal details online'))
2991- self.horizontalGroupBox_2.setTitle(_('Your services'))
2992+ self.services.setTitle(_('Your services'))
2993+ self.profile_info.setTitle(_('Personal details'))
2994 self.edit_services_button.setText(_('Edit your services online'))
2995
2996 from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton
2997
2998=== modified file 'ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py'
2999--- ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py 2011-07-22 21:26:48 +0000
3000+++ ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py 2011-08-12 19:16:23 +0000
3001@@ -2,7 +2,7 @@
3002
3003 # Form implementation generated from reading ui file 'data/qt/controlpanel.ui'
3004 #
3005-# Created: Fri Jul 22 17:06:43 2011
3006+# Created: Fri Aug 12 15:07:18 2011
3007 # by: PyQt4 UI code generator 4.8.3
3008 #
3009 # WARNING! All changes made in this file will be lost!
3010@@ -18,7 +18,7 @@
3011 class Ui_Form(object):
3012 def setupUi(self, Form):
3013 Form.setObjectName(_fromUtf8("Form"))
3014- Form.resize(536, 389)
3015+ Form.resize(387, 203)
3016 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
3017 sizePolicy.setHorizontalStretch(0)
3018 sizePolicy.setVerticalStretch(0)
3019@@ -26,65 +26,48 @@
3020 Form.setSizePolicy(sizePolicy)
3021 Form.setWindowTitle(_fromUtf8("Form"))
3022 self.verticalLayout = QtGui.QVBoxLayout(Form)
3023- self.verticalLayout.setSpacing(4)
3024+ self.verticalLayout.setSpacing(3)
3025 self.verticalLayout.setMargin(0)
3026 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
3027- self.frmHeader = QtGui.QFrame(Form)
3028- self.frmHeader.setFrameShape(QtGui.QFrame.StyledPanel)
3029- self.frmHeader.setFrameShadow(QtGui.QFrame.Raised)
3030- self.frmHeader.setObjectName(_fromUtf8("frmHeader"))
3031- self.horizontalLayout_4 = QtGui.QHBoxLayout(self.frmHeader)
3032- self.horizontalLayout_4.setSpacing(0)
3033- self.horizontalLayout_4.setContentsMargins(15, 10, 10, 10)
3034- self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
3035- self.horizontalLayout = QtGui.QHBoxLayout()
3036- self.horizontalLayout.setSpacing(0)
3037- self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
3038- self.vLayoutGreeting = QtGui.QVBoxLayout()
3039- self.vLayoutGreeting.setSpacing(0)
3040- self.vLayoutGreeting.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
3041- self.vLayoutGreeting.setObjectName(_fromUtf8("vLayoutGreeting"))
3042- self.greeting_label = QtGui.QLabel(self.frmHeader)
3043- font = QtGui.QFont()
3044- font.setPointSize(10)
3045- self.greeting_label.setFont(font)
3046- self.greeting_label.setLayoutDirection(QtCore.Qt.LeftToRight)
3047- self.greeting_label.setAutoFillBackground(False)
3048- self.greeting_label.setText(_fromUtf8(""))
3049+ self.frame_header = QtGui.QFrame(Form)
3050+ self.frame_header.setObjectName(_fromUtf8("frame_header"))
3051+ self.horizontalLayout_2 = QtGui.QHBoxLayout(self.frame_header)
3052+ self.horizontalLayout_2.setSpacing(5)
3053+ self.horizontalLayout_2.setMargin(0)
3054+ self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
3055+ self.frame_greeting = QtGui.QFrame(self.frame_header)
3056+ self.frame_greeting.setObjectName(_fromUtf8("frame_greeting"))
3057+ self.verticalLayout_4 = QtGui.QVBoxLayout(self.frame_greeting)
3058+ self.verticalLayout_4.setMargin(0)
3059+ self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
3060+ self.greeting_label = QtGui.QLabel(self.frame_greeting)
3061 self.greeting_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
3062- self.greeting_label.setMargin(0)
3063- self.greeting_label.setIndent(-1)
3064 self.greeting_label.setObjectName(_fromUtf8("greeting_label"))
3065- self.vLayoutGreeting.addWidget(self.greeting_label)
3066- self.horizontalLayout.addLayout(self.vLayoutGreeting)
3067+ self.verticalLayout_4.addWidget(self.greeting_label)
3068+ self.horizontalLayout_2.addWidget(self.frame_greeting)
3069 spacerItem = QtGui.QSpacerItem(15, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum)
3070- self.horizontalLayout.addItem(spacerItem)
3071- self.frameStorage = QtGui.QFrame(self.frmHeader)
3072+ self.horizontalLayout_2.addItem(spacerItem)
3073+ self.frame_storage = QtGui.QFrame(self.frame_header)
3074 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
3075 sizePolicy.setHorizontalStretch(0)
3076 sizePolicy.setVerticalStretch(0)
3077- sizePolicy.setHeightForWidth(self.frameStorage.sizePolicy().hasHeightForWidth())
3078- self.frameStorage.setSizePolicy(sizePolicy)
3079- self.frameStorage.setMaximumSize(QtCore.QSize(166, 16777215))
3080- self.frameStorage.setFrameShape(QtGui.QFrame.StyledPanel)
3081- self.frameStorage.setFrameShadow(QtGui.QFrame.Raised)
3082- self.frameStorage.setObjectName(_fromUtf8("frameStorage"))
3083- self.horizontalLayout_7 = QtGui.QHBoxLayout(self.frameStorage)
3084- self.horizontalLayout_7.setSpacing(0)
3085- self.horizontalLayout_7.setContentsMargins(10, 0, 10, 0)
3086- self.horizontalLayout_7.setObjectName(_fromUtf8("horizontalLayout_7"))
3087- self.vLayoutStorage = QtGui.QVBoxLayout()
3088+ sizePolicy.setHeightForWidth(self.frame_storage.sizePolicy().hasHeightForWidth())
3089+ self.frame_storage.setSizePolicy(sizePolicy)
3090+ self.frame_storage.setMinimumSize(QtCore.QSize(165, 0))
3091+ self.frame_storage.setMaximumSize(QtCore.QSize(165, 16777215))
3092+ self.frame_storage.setObjectName(_fromUtf8("frame_storage"))
3093+ self.vLayoutStorage = QtGui.QVBoxLayout(self.frame_storage)
3094+ self.vLayoutStorage.setSpacing(6)
3095 self.vLayoutStorage.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
3096+ self.vLayoutStorage.setMargin(0)
3097 self.vLayoutStorage.setObjectName(_fromUtf8("vLayoutStorage"))
3098- self.frmQuota = QtGui.QFrame(self.frameStorage)
3099- self.frmQuota.setFrameShape(QtGui.QFrame.StyledPanel)
3100- self.frmQuota.setFrameShadow(QtGui.QFrame.Raised)
3101- self.frmQuota.setObjectName(_fromUtf8("frmQuota"))
3102- self.verticalLayout_3 = QtGui.QVBoxLayout(self.frmQuota)
3103+ self.frame_quota = QtGui.QFrame(self.frame_storage)
3104+ self.frame_quota.setObjectName(_fromUtf8("frame_quota"))
3105+ self.verticalLayout_3 = QtGui.QVBoxLayout(self.frame_quota)
3106 self.verticalLayout_3.setSpacing(2)
3107- self.verticalLayout_3.setContentsMargins(0, 0, 0, 10)
3108+ self.verticalLayout_3.setMargin(0)
3109 self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
3110- self.percentage_usage_label = QtGui.QLabel(self.frmQuota)
3111+ self.percentage_usage_label = QtGui.QLabel(self.frame_quota)
3112 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
3113 sizePolicy.setHorizontalStretch(0)
3114 sizePolicy.setVerticalStretch(0)
3115@@ -93,39 +76,42 @@
3116 self.percentage_usage_label.setText(_fromUtf8(""))
3117 self.percentage_usage_label.setObjectName(_fromUtf8("percentage_usage_label"))
3118 self.verticalLayout_3.addWidget(self.percentage_usage_label)
3119- self.quota_usage_label = QtGui.QLabel(self.frmQuota)
3120+ self.quota_usage_label = QtGui.QLabel(self.frame_quota)
3121 font = QtGui.QFont()
3122 font.setPointSize(8)
3123 self.quota_usage_label.setFont(font)
3124 self.quota_usage_label.setText(_fromUtf8(""))
3125 self.quota_usage_label.setObjectName(_fromUtf8("quota_usage_label"))
3126 self.verticalLayout_3.addWidget(self.quota_usage_label)
3127- self.vLayoutStorage.addWidget(self.frmQuota)
3128- self.get_more_space_button = GoToWebButton(self.frameStorage)
3129+ self.vLayoutStorage.addWidget(self.frame_quota)
3130+ self.get_more_space_button = GoToWebButton(self.frame_storage)
3131 self.get_more_space_button.setObjectName(_fromUtf8("get_more_space_button"))
3132 self.vLayoutStorage.addWidget(self.get_more_space_button)
3133- self.horizontalLayout_7.addLayout(self.vLayoutStorage)
3134- self.horizontalLayout.addWidget(self.frameStorage)
3135- self.frameStatus = QtGui.QFrame(self.frmHeader)
3136+ self.horizontalLayout_2.addWidget(self.frame_storage)
3137+ self.frame_status = QtGui.QFrame(self.frame_header)
3138 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
3139 sizePolicy.setHorizontalStretch(0)
3140 sizePolicy.setVerticalStretch(0)
3141- sizePolicy.setHeightForWidth(self.frameStatus.sizePolicy().hasHeightForWidth())
3142- self.frameStatus.setSizePolicy(sizePolicy)
3143- self.frameStatus.setMaximumSize(QtCore.QSize(166, 16777215))
3144- self.frameStatus.setFrameShape(QtGui.QFrame.StyledPanel)
3145- self.frameStatus.setFrameShadow(QtGui.QFrame.Raised)
3146- self.frameStatus.setObjectName(_fromUtf8("frameStatus"))
3147- self.horizontalLayout_8 = QtGui.QHBoxLayout(self.frameStatus)
3148- self.horizontalLayout_8.setSpacing(0)
3149- self.horizontalLayout_8.setContentsMargins(10, 0, 0, 0)
3150+ sizePolicy.setHeightForWidth(self.frame_status.sizePolicy().hasHeightForWidth())
3151+ self.frame_status.setSizePolicy(sizePolicy)
3152+ self.frame_status.setMinimumSize(QtCore.QSize(165, 0))
3153+ self.frame_status.setMaximumSize(QtCore.QSize(165, 16777215))
3154+ self.frame_status.setObjectName(_fromUtf8("frame_status"))
3155+ self.horizontalLayout_8 = QtGui.QHBoxLayout(self.frame_status)
3156+ self.horizontalLayout_8.setMargin(0)
3157 self.horizontalLayout_8.setObjectName(_fromUtf8("horizontalLayout_8"))
3158- self.file_sync_status = FileSyncStatus(self.frameStatus)
3159+ self.file_sync_status = FileSyncStatus(self.frame_status)
3160+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
3161+ sizePolicy.setHorizontalStretch(0)
3162+ sizePolicy.setVerticalStretch(0)
3163+ sizePolicy.setHeightForWidth(self.file_sync_status.sizePolicy().hasHeightForWidth())
3164+ self.file_sync_status.setSizePolicy(sizePolicy)
3165+ self.file_sync_status.setMinimumSize(QtCore.QSize(0, 0))
3166+ self.file_sync_status.setMaximumSize(QtCore.QSize(165, 16777215))
3167 self.file_sync_status.setObjectName(_fromUtf8("file_sync_status"))
3168 self.horizontalLayout_8.addWidget(self.file_sync_status)
3169- self.horizontalLayout.addWidget(self.frameStatus)
3170- self.horizontalLayout_4.addLayout(self.horizontalLayout)
3171- self.verticalLayout.addWidget(self.frmHeader)
3172+ self.horizontalLayout_2.addWidget(self.frame_status)
3173+ self.verticalLayout.addWidget(self.frame_header)
3174 self.tab_widget = QtGui.QTabWidget(Form)
3175 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.MinimumExpanding)
3176 sizePolicy.setHorizontalStretch(0)
3177@@ -146,31 +132,24 @@
3178 self.account_tab.setObjectName(_fromUtf8("account_tab"))
3179 self.tab_widget.addTab(self.account_tab, _fromUtf8(""))
3180 self.verticalLayout.addWidget(self.tab_widget)
3181- self.frmFooter = QtGui.QFrame(Form)
3182- self.frmFooter.setMaximumSize(QtCore.QSize(16777215, 30))
3183- self.frmFooter.setFrameShape(QtGui.QFrame.StyledPanel)
3184- self.frmFooter.setFrameShadow(QtGui.QFrame.Raised)
3185- self.frmFooter.setObjectName(_fromUtf8("frmFooter"))
3186- self.verticalLayout_2 = QtGui.QVBoxLayout(self.frmFooter)
3187- self.verticalLayout_2.setSpacing(0)
3188- self.verticalLayout_2.setMargin(0)
3189- self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
3190- self.hLayoutFooter = QtGui.QHBoxLayout()
3191- self.hLayoutFooter.setSpacing(5)
3192- self.hLayoutFooter.setContentsMargins(3, -1, 3, -1)
3193- self.hLayoutFooter.setObjectName(_fromUtf8("hLayoutFooter"))
3194- self.help_button = GoToWebButton(self.frmFooter)
3195+ self.frame_footer = QtGui.QFrame(Form)
3196+ self.frame_footer.setObjectName(_fromUtf8("frame_footer"))
3197+ self.horizontalLayout = QtGui.QHBoxLayout(self.frame_footer)
3198+ self.horizontalLayout.setSpacing(5)
3199+ self.horizontalLayout.setContentsMargins(3, 0, 3, 3)
3200+ self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
3201+ self.help_button = GoToWebButton(self.frame_footer)
3202 self.help_button.setObjectName(_fromUtf8("help_button"))
3203- self.hLayoutFooter.addWidget(self.help_button)
3204- spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3205- self.hLayoutFooter.addItem(spacerItem1)
3206- self.follow_us_label = QtGui.QLabel(self.frmFooter)
3207+ self.horizontalLayout.addWidget(self.help_button)
3208+ spacerItem1 = QtGui.QSpacerItem(133, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3209+ self.horizontalLayout.addItem(spacerItem1)
3210+ self.follow_us_label = QtGui.QLabel(self.frame_footer)
3211 font = QtGui.QFont()
3212 font.setPointSize(11)
3213 self.follow_us_label.setFont(font)
3214 self.follow_us_label.setObjectName(_fromUtf8("follow_us_label"))
3215- self.hLayoutFooter.addWidget(self.follow_us_label)
3216- self.twitter_button = QtGui.QToolButton(self.frmFooter)
3217+ self.horizontalLayout.addWidget(self.follow_us_label)
3218+ self.twitter_button = QtGui.QToolButton(self.frame_footer)
3219 self.twitter_button.setCursor(QtCore.Qt.PointingHandCursor)
3220 self.twitter_button.setStyleSheet(_fromUtf8("border: 0;"))
3221 self.twitter_button.setText(_fromUtf8(""))
3222@@ -179,8 +158,8 @@
3223 self.twitter_button.setIcon(icon)
3224 self.twitter_button.setIconSize(QtCore.QSize(22, 22))
3225 self.twitter_button.setObjectName(_fromUtf8("twitter_button"))
3226- self.hLayoutFooter.addWidget(self.twitter_button)
3227- self.facebook_button = QtGui.QToolButton(self.frmFooter)
3228+ self.horizontalLayout.addWidget(self.twitter_button)
3229+ self.facebook_button = QtGui.QToolButton(self.frame_footer)
3230 self.facebook_button.setCursor(QtCore.Qt.PointingHandCursor)
3231 self.facebook_button.setStyleSheet(_fromUtf8("border: 0;"))
3232 self.facebook_button.setText(_fromUtf8(""))
3233@@ -189,9 +168,8 @@
3234 self.facebook_button.setIcon(icon1)
3235 self.facebook_button.setIconSize(QtCore.QSize(22, 22))
3236 self.facebook_button.setObjectName(_fromUtf8("facebook_button"))
3237- self.hLayoutFooter.addWidget(self.facebook_button)
3238- self.verticalLayout_2.addLayout(self.hLayoutFooter)
3239- self.verticalLayout.addWidget(self.frmFooter)
3240+ self.horizontalLayout.addWidget(self.facebook_button)
3241+ self.verticalLayout.addWidget(self.frame_footer)
3242
3243 self.retranslateUi(Form)
3244 self.tab_widget.setCurrentIndex(0)
3245@@ -201,7 +179,7 @@
3246 Form.setTabOrder(self.twitter_button, self.facebook_button)
3247
3248 def retranslateUi(self, Form):
3249- self.get_more_space_button.setText(_('Get more storage!'))
3250+ self.get_more_space_button.setText(_('Get more storage'))
3251 self.tab_widget.setTabText(self.tab_widget.indexOf(self.folders_tab), _('Folders'))
3252 self.tab_widget.setTabText(self.tab_widget.indexOf(self.devices_tab), _('Devices'))
3253 self.tab_widget.setTabText(self.tab_widget.indexOf(self.preferences_tab), _('Preferences'))
3254
3255=== modified file 'ubuntuone/controlpanel/gui/qt/ui/device_ui.py'
3256--- ubuntuone/controlpanel/gui/qt/ui/device_ui.py 2011-07-22 21:26:48 +0000
3257+++ ubuntuone/controlpanel/gui/qt/ui/device_ui.py 2011-08-12 19:16:23 +0000
3258@@ -2,7 +2,7 @@
3259
3260 # Form implementation generated from reading ui file 'data/qt/device.ui'
3261 #
3262-# Created: Fri Jul 22 17:06:43 2011
3263+# Created: Fri Aug 12 15:07:18 2011
3264 # by: PyQt4 UI code generator 4.8.3
3265 #
3266 # WARNING! All changes made in this file will be lost!
3267@@ -18,7 +18,7 @@
3268 class Ui_Form(object):
3269 def setupUi(self, Form):
3270 Form.setObjectName(_fromUtf8("Form"))
3271- Form.resize(400, 63)
3272+ Form.resize(233, 36)
3273 Form.setWindowTitle(_fromUtf8("Form"))
3274 self.horizontalLayout = QtGui.QHBoxLayout(Form)
3275 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
3276@@ -40,6 +40,6 @@
3277
3278 def retranslateUi(self, Form):
3279 self.device_name_label.setText(_('Local device'))
3280- self.remove_device_button.setText(_('Delete device'))
3281+ self.remove_device_button.setText(_('Remove'))
3282
3283 import images_rc
3284
3285=== modified file 'ubuntuone/controlpanel/gui/qt/ui/devices_ui.py'
3286--- ubuntuone/controlpanel/gui/qt/ui/devices_ui.py 2011-07-22 21:26:48 +0000
3287+++ ubuntuone/controlpanel/gui/qt/ui/devices_ui.py 2011-08-12 19:16:23 +0000
3288@@ -2,7 +2,7 @@
3289
3290 # Form implementation generated from reading ui file 'data/qt/devices.ui'
3291 #
3292-# Created: Fri Jul 22 17:06:43 2011
3293+# Created: Fri Aug 12 15:07:18 2011
3294 # by: PyQt4 UI code generator 4.8.3
3295 #
3296 # WARNING! All changes made in this file will be lost!
3297@@ -18,56 +18,53 @@
3298 class Ui_Form(object):
3299 def setupUi(self, Form):
3300 Form.setObjectName(_fromUtf8("Form"))
3301- Form.resize(409, 310)
3302+ Form.resize(393, 281)
3303 Form.setWindowTitle(_fromUtf8("Form"))
3304- self.verticalLayout = QtGui.QVBoxLayout(Form)
3305- self.verticalLayout.setSpacing(0)
3306+ self.verticalLayout_3 = QtGui.QVBoxLayout(Form)
3307+ self.verticalLayout_3.setSpacing(0)
3308+ self.verticalLayout_3.setMargin(0)
3309+ self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
3310+ self.local_device = QtGui.QGroupBox(Form)
3311+ self.local_device.setObjectName(_fromUtf8("local_device"))
3312+ self.verticalLayout = QtGui.QVBoxLayout(self.local_device)
3313 self.verticalLayout.setMargin(0)
3314 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
3315- self.frame = QtGui.QFrame(Form)
3316- self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
3317- self.frame.setFrameShadow(QtGui.QFrame.Raised)
3318- self.frame.setObjectName(_fromUtf8("frame"))
3319- self.verticalLayout_2 = QtGui.QVBoxLayout(self.frame)
3320- self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
3321- self.horizontalLayout_2 = QtGui.QHBoxLayout()
3322- self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
3323 self.local_device_box = QtGui.QVBoxLayout()
3324 self.local_device_box.setObjectName(_fromUtf8("local_device_box"))
3325- self.horizontalLayout_2.addLayout(self.local_device_box)
3326- self.verticalLayout_2.addLayout(self.horizontalLayout_2)
3327- self.horizontalLayout = QtGui.QHBoxLayout()
3328- self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
3329- self.other_devices_label = QtGui.QLabel(self.frame)
3330- self.other_devices_label.setObjectName(_fromUtf8("other_devices_label"))
3331- self.horizontalLayout.addWidget(self.other_devices_label)
3332- spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3333- self.horizontalLayout.addItem(spacerItem)
3334- self.verticalLayout_2.addLayout(self.horizontalLayout)
3335- self.list_devices = QtGui.QListWidget(self.frame)
3336+ self.verticalLayout.addLayout(self.local_device_box)
3337+ self.verticalLayout_3.addWidget(self.local_device)
3338+ self.oher_devices = QtGui.QGroupBox(Form)
3339+ self.oher_devices.setObjectName(_fromUtf8("oher_devices"))
3340+ self.verticalLayout_2 = QtGui.QVBoxLayout(self.oher_devices)
3341+ self.verticalLayout_2.setMargin(0)
3342+ self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
3343+ self.list_devices = QtGui.QListWidget(self.oher_devices)
3344+ self.list_devices.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
3345 self.list_devices.setAlternatingRowColors(True)
3346 self.list_devices.setIconSize(QtCore.QSize(32, 32))
3347 self.list_devices.setSpacing(0)
3348 self.list_devices.setSelectionRectVisible(False)
3349 self.list_devices.setObjectName(_fromUtf8("list_devices"))
3350 self.verticalLayout_2.addWidget(self.list_devices)
3351+ self.verticalLayout_3.addWidget(self.oher_devices)
3352 self.horizontalLayout_3 = QtGui.QHBoxLayout()
3353+ self.horizontalLayout_3.setMargin(3)
3354 self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
3355+ spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3356+ self.horizontalLayout_3.addItem(spacerItem)
3357+ self.manage_devices_button = GoToWebButton(Form)
3358+ self.manage_devices_button.setObjectName(_fromUtf8("manage_devices_button"))
3359+ self.horizontalLayout_3.addWidget(self.manage_devices_button)
3360 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3361 self.horizontalLayout_3.addItem(spacerItem1)
3362- self.manage_devices_button = GoToWebButton(self.frame)
3363- self.manage_devices_button.setObjectName(_fromUtf8("manage_devices_button"))
3364- self.horizontalLayout_3.addWidget(self.manage_devices_button)
3365- spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3366- self.horizontalLayout_3.addItem(spacerItem2)
3367- self.verticalLayout_2.addLayout(self.horizontalLayout_3)
3368- self.verticalLayout.addWidget(self.frame)
3369+ self.verticalLayout_3.addLayout(self.horizontalLayout_3)
3370
3371 self.retranslateUi(Form)
3372 QtCore.QMetaObject.connectSlotsByName(Form)
3373
3374 def retranslateUi(self, Form):
3375- self.other_devices_label.setText(_('Other devices'))
3376+ self.local_device.setTitle(_('This device'))
3377+ self.oher_devices.setTitle(_('Other devices'))
3378 self.manage_devices_button.setText(_('Go to the web page to manage your other devices'))
3379
3380 from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton
3381
3382=== modified file 'ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py'
3383--- ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py 2011-07-22 21:26:48 +0000
3384+++ ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py 2011-08-12 19:16:23 +0000
3385@@ -2,7 +2,7 @@
3386
3387 # Form implementation generated from reading ui file 'data/qt/filesyncstatus.ui'
3388 #
3389-# Created: Fri Jul 22 17:06:43 2011
3390+# Created: Fri Aug 12 15:07:18 2011
3391 # by: PyQt4 UI code generator 4.8.3
3392 #
3393 # WARNING! All changes made in this file will be lost!
3394@@ -18,16 +18,14 @@
3395 class Ui_Form(object):
3396 def setupUi(self, Form):
3397 Form.setObjectName(_fromUtf8("Form"))
3398- Form.resize(310, 211)
3399+ Form.resize(94, 49)
3400 Form.setWindowTitle(_fromUtf8("Form"))
3401- self.horizontalLayout_2 = QtGui.QHBoxLayout(Form)
3402- self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
3403- self.verticalLayout = QtGui.QVBoxLayout()
3404+ self.verticalLayout = QtGui.QVBoxLayout(Form)
3405+ self.verticalLayout.setMargin(0)
3406 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
3407 self.horizontalLayout = QtGui.QHBoxLayout()
3408 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
3409 self.sync_status_icon = QtGui.QLabel(Form)
3410- self.sync_status_icon.setText(_fromUtf8(""))
3411 self.sync_status_icon.setObjectName(_fromUtf8("sync_status_icon"))
3412 self.horizontalLayout.addWidget(self.sync_status_icon)
3413 self.sync_status_label = QtGui.QLabel(Form)
3414@@ -37,15 +35,13 @@
3415 self.horizontalLayout.addWidget(self.sync_status_label)
3416 self.verticalLayout.addLayout(self.horizontalLayout)
3417 self.sync_status_button = QtGui.QPushButton(Form)
3418- self.sync_status_button.setText(_fromUtf8(""))
3419 self.sync_status_button.setObjectName(_fromUtf8("sync_status_button"))
3420 self.verticalLayout.addWidget(self.sync_status_button)
3421- self.horizontalLayout_2.addLayout(self.verticalLayout)
3422 self.sync_status_label.setBuddy(self.sync_status_button)
3423
3424 self.retranslateUi(Form)
3425 QtCore.QMetaObject.connectSlotsByName(Form)
3426
3427 def retranslateUi(self, Form):
3428- self.sync_status_button.setToolTip(_('test'))
3429+ pass
3430
3431
3432=== modified file 'ubuntuone/controlpanel/gui/qt/ui/folders_ui.py'
3433--- ubuntuone/controlpanel/gui/qt/ui/folders_ui.py 2011-07-22 21:26:48 +0000
3434+++ ubuntuone/controlpanel/gui/qt/ui/folders_ui.py 2011-08-12 19:16:23 +0000
3435@@ -2,7 +2,7 @@
3436
3437 # Form implementation generated from reading ui file 'data/qt/folders.ui'
3438 #
3439-# Created: Fri Jul 22 17:06:43 2011
3440+# Created: Fri Aug 12 15:07:18 2011
3441 # by: PyQt4 UI code generator 4.8.3
3442 #
3443 # WARNING! All changes made in this file will be lost!
3444@@ -18,45 +18,74 @@
3445 class Ui_Form(object):
3446 def setupUi(self, Form):
3447 Form.setObjectName(_fromUtf8("Form"))
3448- Form.resize(607, 435)
3449+ Form.resize(345, 279)
3450 Form.setWindowTitle(_fromUtf8("Form"))
3451- Form.setStyleSheet(_fromUtf8(""))
3452+ Form.setStyleSheet(_fromUtf8("padding: 0px;"))
3453 self.verticalLayout = QtGui.QVBoxLayout(Form)
3454+ self.verticalLayout.setSpacing(0)
3455+ self.verticalLayout.setMargin(0)
3456 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
3457+ self.frame_top = QtGui.QFrame(Form)
3458+ self.frame_top.setMinimumSize(QtCore.QSize(0, 35))
3459+ self.frame_top.setObjectName(_fromUtf8("frame_top"))
3460+ self.horizontalLayout_2 = QtGui.QHBoxLayout(self.frame_top)
3461+ self.horizontalLayout_2.setMargin(3)
3462+ self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
3463+ self.share_publish_button = GoToWebButton(self.frame_top)
3464+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
3465+ sizePolicy.setHorizontalStretch(0)
3466+ sizePolicy.setVerticalStretch(0)
3467+ sizePolicy.setHeightForWidth(self.share_publish_button.sizePolicy().hasHeightForWidth())
3468+ self.share_publish_button.setSizePolicy(sizePolicy)
3469+ self.share_publish_button.setObjectName(_fromUtf8("share_publish_button"))
3470+ self.horizontalLayout_2.addWidget(self.share_publish_button)
3471+ spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3472+ self.horizontalLayout_2.addItem(spacerItem)
3473+ self.verticalLayout.addWidget(self.frame_top)
3474 self.folders = QtGui.QTreeWidget(Form)
3475+ self.folders.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
3476 self.folders.setAlternatingRowColors(True)
3477- self.folders.setUniformRowHeights(False)
3478+ self.folders.setIndentation(15)
3479+ self.folders.setRootIsDecorated(False)
3480 self.folders.setItemsExpandable(True)
3481- self.folders.setHeaderHidden(False)
3482+ self.folders.setHeaderHidden(True)
3483 self.folders.setObjectName(_fromUtf8("folders"))
3484- self.folders.header().setVisible(True)
3485+ self.folders.header().setVisible(False)
3486 self.folders.header().setCascadingSectionResizes(False)
3487 self.folders.header().setDefaultSectionSize(300)
3488 self.folders.header().setHighlightSections(False)
3489 self.folders.header().setSortIndicatorShown(False)
3490 self.folders.header().setStretchLastSection(True)
3491 self.verticalLayout.addWidget(self.folders)
3492- self.horizontalLayout_3 = QtGui.QHBoxLayout()
3493- self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
3494- self.share_publish_button = GoToWebButton(Form)
3495- self.share_publish_button.setObjectName(_fromUtf8("share_publish_button"))
3496- self.horizontalLayout_3.addWidget(self.share_publish_button)
3497- spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3498- self.horizontalLayout_3.addItem(spacerItem)
3499- self.add_folder_button = AddFolderButton(Form)
3500+ self.frame_bottom = QtGui.QFrame(Form)
3501+ self.frame_bottom.setMinimumSize(QtCore.QSize(0, 40))
3502+ self.frame_bottom.setObjectName(_fromUtf8("frame_bottom"))
3503+ self.horizontalLayout = QtGui.QHBoxLayout(self.frame_bottom)
3504+ self.horizontalLayout.setMargin(3)
3505+ self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
3506+ spacerItem1 = QtGui.QSpacerItem(53, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3507+ self.horizontalLayout.addItem(spacerItem1)
3508+ self.add_folder_button = AddFolderButton(self.frame_bottom)
3509+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
3510+ sizePolicy.setHorizontalStretch(0)
3511+ sizePolicy.setVerticalStretch(0)
3512+ sizePolicy.setHeightForWidth(self.add_folder_button.sizePolicy().hasHeightForWidth())
3513+ self.add_folder_button.setSizePolicy(sizePolicy)
3514 self.add_folder_button.setObjectName(_fromUtf8("add_folder_button"))
3515- self.horizontalLayout_3.addWidget(self.add_folder_button)
3516- self.verticalLayout.addLayout(self.horizontalLayout_3)
3517+ self.horizontalLayout.addWidget(self.add_folder_button)
3518+ spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
3519+ self.horizontalLayout.addItem(spacerItem2)
3520+ self.verticalLayout.addWidget(self.frame_bottom)
3521
3522 self.retranslateUi(Form)
3523 QtCore.QMetaObject.connectSlotsByName(Form)
3524
3525 def retranslateUi(self, Form):
3526+ self.share_publish_button.setText(_('Go to the web for public and private sharing options'))
3527 self.folders.headerItem().setText(0, _('Name'))
3528 self.folders.headerItem().setText(1, _('Sync Locally?'))
3529- self.folders.headerItem().setText(2, _(' '))
3530- self.share_publish_button.setText(_('Go to the web to share folders and publish files'))
3531- self.add_folder_button.setText(_('Sync another folder with your cloud'))
3532+ self.folders.headerItem().setText(2, _('Explore'))
3533+ self.add_folder_button.setText(_('Add a folder from this computer'))
3534
3535 from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton
3536 from ubuntuone.controlpanel.gui.qt.addfolder import AddFolderButton
3537
3538=== modified file 'ubuntuone/controlpanel/gui/qt/ui/images_rc.py'
3539--- ubuntuone/controlpanel/gui/qt/ui/images_rc.py 2011-07-22 21:26:48 +0000
3540+++ ubuntuone/controlpanel/gui/qt/ui/images_rc.py 2011-08-12 19:16:23 +0000
3541@@ -2,7 +2,7 @@
3542
3543 # Resource object code
3544 #
3545-# Created: Fri Jul 22 17:06:43 2011
3546+# Created: Fri Aug 12 15:07:18 2011
3547 # by: The Resource Compiler for PyQt (Qt v4.7.2)
3548 #
3549 # WARNING! All changes made in this file will be lost!
3550@@ -412,102 +412,180 @@
3551 \x04\xc3\x06\xd0\xb4\xf6\x1c\xaa\xf8\x39\x94\x8f\x12\xe1\x00\x01\
3552 \x06\x00\x00\x4e\x7e\x7b\x48\x93\x95\x27\x00\x00\x00\x00\x49\x45\
3553 \x4e\x44\xae\x42\x60\x82\
3554-\x00\x00\x0f\x1d\
3555+\x00\x00\x12\xb1\
3556 \x51\
3557 \x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x20\x7b\x0a\x20\x20\x20\
3558 \x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\
3559 \x72\x3a\x20\x23\x64\x64\x34\x38\x31\x34\x3b\x0a\x7d\x0a\x0a\x51\
3560-\x46\x72\x61\x6d\x65\x23\x66\x72\x6d\x48\x65\x61\x64\x65\x72\x20\
3561-\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
3562-\x3a\x20\x23\x66\x66\x66\x66\x66\x66\x3b\x0a\x20\x20\x20\x20\x62\
3563-\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\
3564-\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\
3565-\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\
3566-\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\
3567-\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3568-\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\
3569-\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\
3570-\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\
3571-\x31\x30\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\
3572-\x75\x74\x74\x6f\x6e\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\x22\x74\
3573-\x72\x75\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\
3574-\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\
3575-\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\
3576-\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\
3577-\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\
3578-\x3a\x20\x30\x20\x23\x66\x65\x63\x66\x63\x32\x2c\x73\x74\x6f\x70\
3579-\x3a\x20\x31\x2e\x30\x20\x23\x65\x34\x34\x65\x31\x39\x29\x3b\x0a\
3580-\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\
3581-\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
3582-\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\
3583-\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\
3584-\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\
3585-\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3586+\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\
3587+\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\x22\x55\x62\x75\x6e\x74\
3588+\x75\x22\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\x6d\x65\x20\x7b\x0a\
3589+\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x6e\x6f\x6e\x65\
3590+\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\x6d\x65\x23\x66\x72\x61\x6d\
3591+\x65\x5f\x68\x65\x61\x64\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x62\
3592+\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\x66\x66\x66\
3593+\x66\x66\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\
3594+\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\
3595+\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\
3596+\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3597 \x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\
3598 \x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\
3599-\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\
3600-\x74\x3a\x20\x31\x34\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\
3601-\x68\x42\x75\x74\x74\x6f\x6e\x3a\x68\x6f\x76\x65\x72\x5b\x65\x6e\
3602-\x61\x62\x6c\x65\x64\x3d\x22\x74\x72\x75\x65\x22\x5d\x20\x7b\x0a\
3603-\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\
3604-\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\
3605-\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\
3606-\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\
3607-\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\x66\x65\x64\
3608-\x61\x64\x31\x2c\x73\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x65\
3609-\x34\x37\x61\x35\x35\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
3610-\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\
3611+\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\
3612+\x65\x69\x67\x68\x74\x3a\x20\x39\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\
3613+\x51\x46\x72\x61\x6d\x65\x23\x66\x72\x61\x6d\x65\x5f\x67\x72\x65\
3614+\x65\x74\x69\x6e\x67\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\
3615+\x69\x6e\x20\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\
3616+\x69\x6e\x67\x2d\x6c\x65\x66\x74\x3a\x20\x31\x35\x70\x78\x3b\x0a\
3617+\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x74\x6f\x70\x3a\
3618+\x20\x31\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\
3619+\x6e\x67\x2d\x72\x69\x67\x68\x74\x3a\x20\x31\x30\x70\x78\x3b\x0a\
3620+\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x62\x6f\x74\x74\
3621+\x6f\x6d\x3a\x20\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\
3622+\x61\x6d\x65\x23\x66\x72\x61\x6d\x65\x5f\x73\x74\x61\x74\x75\x73\
3623+\x2c\x0a\x51\x46\x72\x61\x6d\x65\x23\x66\x72\x61\x6d\x65\x5f\x73\
3624+\x74\x6f\x72\x61\x67\x65\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\
3625+\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x64\x6f\x74\x74\x65\
3626+\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\
3627+\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\
3628+\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x77\x69\
3629+\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\
3630+\x64\x64\x69\x6e\x67\x3a\x20\x31\x30\x70\x78\x3b\x0a\x20\x20\x20\
3631+\x20\x6d\x69\x6e\x2d\x77\x69\x64\x74\x68\x3a\x20\x34\x30\x70\x78\
3632+\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\x6d\x65\x23\x61\x63\x63\x6f\
3633+\x75\x6e\x74\x5f\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x7b\x0a\
3634 \x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\
3635-\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\
3636-\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\
3637-\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\
3638-\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\
3639-\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
3640-\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\
3641-\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\
3642-\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x3a\
3643-\x70\x72\x65\x73\x73\x65\x64\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\
3644-\x22\x74\x72\x75\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\
3645-\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\
3646-\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\
3647-\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\
3648-\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\
3649-\x6f\x70\x3a\x20\x30\x20\x23\x65\x34\x34\x65\x31\x39\x2c\x73\x74\
3650-\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x66\x65\x63\x66\x63\x32\x29\
3651-\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\
3652-\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\
3653-\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\
3654-\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\
3655-\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\
3656-\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3657-\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\
3658-\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\
3659-\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\
3660-\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\
3661-\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x5b\x65\x6e\x61\x62\x6c\x65\
3662-\x64\x3d\x22\x66\x61\x6c\x73\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\
3663+\x3a\x20\x64\x6f\x74\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\
3664+\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\
3665+\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3666+\x62\x6f\x74\x74\x6f\x6d\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\
3667+\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\
3668+\x6e\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\x22\x74\x72\x75\x65\x22\
3669+\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\
3670+\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\x61\x64\x69\
3671+\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\
3672+\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\
3673+\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\
3674+\x23\x66\x65\x63\x66\x63\x32\x2c\x20\x73\x74\x6f\x70\x3a\x20\x31\
3675+\x2e\x30\x20\x23\x65\x34\x34\x65\x31\x39\x29\x3b\x0a\x20\x20\x20\
3676+\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\
3677+\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3678+\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\
3679+\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x3b\x0a\
3680+\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\
3681+\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\
3682+\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\
3683+\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\
3684+\x70\x78\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\
3685+\x31\x34\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\
3686+\x74\x74\x6f\x6e\x3a\x68\x6f\x76\x65\x72\x5b\x65\x6e\x61\x62\x6c\
3687+\x65\x64\x3d\x22\x74\x72\x75\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\
3688 \x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\
3689 \x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\
3690 \x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\
3691 \x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\
3692-\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\x65\x61\x65\x61\x65\x61\
3693-\x2c\x20\x73\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x63\x61\x63\
3694-\x61\x63\x61\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
3695-\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\
3696-\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\
3697-\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\
3698-\x6e\x67\x3a\x20\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\
3699-\x6f\x72\x3a\x20\x23\x35\x39\x35\x39\x35\x39\x3b\x0a\x20\x20\x20\
3700-\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\
3701+\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\x66\x65\x64\x61\x64\x31\
3702+\x2c\x73\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x65\x34\x37\x61\
3703+\x35\x35\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3704+\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\
3705+\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\
3706+\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\
3707+\x67\x3a\x20\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\
3708+\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\
3709+\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\
3710+\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3711+\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\
3712+\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\
3713+\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x3a\x70\x72\x65\
3714+\x73\x73\x65\x64\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\x22\x74\x72\
3715+\x75\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\
3716+\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\
3717+\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\
3718+\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\
3719+\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\
3720+\x20\x30\x20\x23\x65\x34\x34\x65\x31\x39\x2c\x73\x74\x6f\x70\x3a\
3721+\x20\x31\x2e\x30\x20\x23\x66\x65\x63\x66\x63\x32\x29\x3b\x0a\x20\
3722+\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\
3723+\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3724+\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\
3725+\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\
3726+\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\
3727+\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\
3728+\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\
3729+\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\
3730+\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\
3731+\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\
3732+\x42\x75\x74\x74\x6f\x6e\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\x22\
3733+\x66\x61\x6c\x73\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\
3734+\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\
3735+\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\
3736+\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\
3737+\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\
3738+\x6f\x70\x3a\x20\x30\x20\x23\x65\x61\x65\x61\x65\x61\x2c\x20\x73\
3739+\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x63\x61\x63\x61\x63\x61\
3740+\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\
3741+\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\
3742+\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\
3743+\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\
3744+\x20\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\
3745+\x20\x23\x35\x39\x35\x39\x35\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\
3746+\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\
3747+\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3748+\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\
3749+\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\
3750+\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x23\x68\x65\x6c\
3751+\x70\x5f\x62\x75\x74\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\
3752+\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x74\x72\x61\x6e\x73\
3753+\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
3754+\x65\x72\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\
3755+\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\
3756+\x68\x65\x69\x67\x68\x74\x3a\x20\x32\x30\x70\x78\x3b\x0a\x20\x20\
3757+\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\x74\x69\x6f\
3758+\x6e\x3a\x20\x75\x6e\x64\x65\x72\x6c\x69\x6e\x65\x3b\x0a\x20\x20\
3759+\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x3b\x0a\
3760+\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x23\x65\
3761+\x78\x70\x6c\x6f\x72\x65\x5f\x66\x6f\x6c\x64\x65\x72\x5f\x62\x75\
3762+\x74\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3763+\x72\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\
3764+\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\
3765+\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x35\x39\x35\x39\x35\
3766+\x39\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\
3767+\x6e\x23\x61\x64\x64\x5f\x66\x6f\x6c\x64\x65\x72\x5f\x62\x75\x74\
3768+\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\
3769+\x67\x3a\x20\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x47\x6f\x54\x6f\x57\
3770+\x65\x62\x42\x75\x74\x74\x6f\x6e\x23\x73\x68\x61\x72\x65\x5f\x70\
3771+\x75\x62\x6c\x69\x73\x68\x5f\x62\x75\x74\x74\x6f\x6e\x20\x7b\x0a\
3772+\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\
3773+\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\
3774+\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\
3775+\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x64\x64\x34\x38\x31\
3776+\x34\x3b\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\
3777+\x72\x61\x74\x69\x6f\x6e\x3a\x20\x75\x6e\x64\x65\x72\x6c\x69\x6e\
3778+\x65\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\
3779+\x61\x62\x20\x7b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\
3780+\x20\x31\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\
3781+\x3a\x20\x23\x33\x33\x33\x33\x33\x33\x3b\x0a\x20\x20\x20\x20\x62\
3782+\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\
3783+\x20\x23\x65\x34\x65\x30\x64\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\
3784+\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x6c\x65\x66\x74\x2d\x72\x61\
3785+\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\
3786+\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\
3787+\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\
3788+\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\
3789+\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\
3790+\x67\x3a\x20\x31\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
3791+\x64\x65\x72\x2d\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\
3792 \x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
3793-\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\
3794-\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\
3795-\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\
3796-\x20\x7b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\
3797-\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\
3798-\x23\x33\x33\x33\x33\x33\x33\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\
3799-\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\
3800-\x65\x34\x65\x30\x64\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
3801+\x65\x72\x2d\x72\x69\x67\x68\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\
3802+\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
3803+\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\
3804+\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3805+\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\
3806+\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
3807+\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\
3808+\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\
3809+\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\x20\x20\x62\
3810+\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\
3811+\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
3812 \x65\x72\x2d\x74\x6f\x70\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\
3813 \x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
3814 \x64\x65\x72\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\
3815@@ -521,141 +599,121 @@
3816 \x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3817 \x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\
3818 \x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3819-\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\
3820-\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3821-\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x7d\x0a\
3822-\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x73\x65\
3823-\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\
3824-\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\
3825-\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
3826-\x2d\x74\x6f\x70\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\x75\x73\
3827-\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3828-\x72\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\
3829-\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
3830-\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\
3831-\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x31\
3832-\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3833-\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\
3834-\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\
3835-\x69\x67\x68\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\
3836-\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3837-\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\
3838-\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\
3839-\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\
3840-\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\
3841-\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\
3842-\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x66\x69\x72\x73\x74\x3a\
3843-\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\x20\x20\
3844-\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\
3845-\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\
3846-\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\
3847-\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x7d\x0a\x0a\x51\
3848+\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\
3849+\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3850+\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\
3851 \x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x66\x69\x72\x73\
3852-\x74\x3a\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\x20\
3853-\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\
3854-\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x7d\x0a\x0a\
3855-\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x6d\x69\x64\
3856-\x64\x6c\x65\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\
3857-\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\
3858-\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x34\x65\x30\x64\x64\x3b\x0a\
3859-\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\
3860-\x6c\x61\x73\x74\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\
3861-\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\
3862-\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x34\x65\x30\x64\x64\x3b\
3863-\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x57\x69\x64\x67\x65\x74\x20\x7b\
3864+\x74\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\
3865+\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\
3866+\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\
3867+\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\
3868+\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x7d\x0a\
3869+\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x66\x69\
3870+\x72\x73\x74\x3a\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\
3871+\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\
3872+\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x7d\
3873+\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x6d\
3874+\x69\x64\x64\x6c\x65\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\
3875+\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\
3876+\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x34\x65\x30\x64\x64\
3877+\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\
3878+\x62\x3a\x68\x6f\x76\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\
3879+\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\
3880+\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\
3881+\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\
3882+\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\
3883+\x6f\x70\x3a\x20\x30\x20\x23\x66\x61\x66\x61\x66\x61\x2c\x20\x73\
3884+\x74\x6f\x70\x3a\x20\x30\x2e\x34\x20\x23\x66\x34\x66\x34\x66\x34\
3885+\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\
3886+\x30\x2e\x35\x20\x23\x65\x37\x65\x37\x65\x37\x2c\x20\x73\x74\x6f\
3887+\x70\x3a\x20\x31\x2e\x30\x20\x23\x66\x61\x66\x61\x66\x61\x29\x3b\
3888+\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\
3889+\x74\x69\x6f\x6e\x3a\x20\x75\x6e\x64\x65\x72\x6c\x69\x6e\x65\x3b\
3890+\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\
3891+\x3a\x6c\x61\x73\x74\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\
3892+\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\
3893+\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x34\x65\x30\x64\x64\
3894+\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x57\x69\x64\x67\x65\x74\x20\
3895+\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\
3896+\x74\x6f\x6d\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\
3897+\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
3898+\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\
3899+\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\
3900+\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\
3901+\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\
3902+\x20\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x57\x69\
3903+\x64\x67\x65\x74\x3a\x3a\x70\x61\x6e\x65\x20\x7b\x0a\x20\x20\x20\
3904+\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x6c\
3905+\x65\x66\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\
3906 \x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\
3907-\x6f\x6d\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\
3908-\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3909-\x62\x6f\x74\x74\x6f\x6d\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\
3910-\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\
3911-\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\
3912-\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\
3913-\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x57\x69\x64\
3914-\x67\x65\x74\x3a\x3a\x70\x61\x6e\x65\x20\x7b\x0a\x20\x20\x20\x20\
3915-\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x6c\x65\
3916-\x66\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\
3917-\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\
3918-\x6d\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\
3919-\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
3920-\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\x75\x73\
3921-\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3922-\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\
3923-\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\
3924-\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\
3925-\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\
3926-\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
3927-\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
3928-\x64\x65\x72\x2d\x74\x6f\x70\x3a\x20\x32\x70\x78\x20\x73\x6f\x6c\
3929-\x69\x64\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x7d\x0a\x0a\x51\x54\
3930-\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x68\x6f\x76\x65\x72\
3931-\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
3932-\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\
3933-\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x2c\
3934-\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\x20\
3935-\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\
3936-\x66\x61\x66\x61\x66\x61\x2c\x20\x73\x74\x6f\x70\x3a\x20\x30\x2e\
3937-\x34\x20\x23\x66\x34\x66\x34\x66\x34\x2c\x0a\x20\x20\x20\x20\x20\
3938-\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x2e\x35\x20\x23\x65\x37\
3939-\x65\x37\x65\x37\x2c\x20\x73\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\
3940-\x23\x66\x61\x66\x61\x66\x61\x29\x3b\x0a\x20\x7d\x0a\x0a\x51\x50\
3941-\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x23\x68\x65\x6c\x70\x5f\x62\
3942-\x75\x74\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\
3943-\x67\x72\x6f\x75\x6e\x64\x3a\x20\x74\x72\x61\x6e\x73\x70\x61\x72\
3944-\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\
3945-\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\
3946-\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\
3947-\x67\x68\x74\x3a\x20\x32\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x74\
3948-\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\x74\x69\x6f\x6e\x3a\x20\
3949-\x75\x6e\x64\x65\x72\x6c\x69\x6e\x65\x3b\x0a\x20\x20\x20\x20\x70\
3950-\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\
3951-\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x23\x65\x78\x70\x6c\
3952-\x6f\x72\x65\x5f\x66\x6f\x6c\x64\x65\x72\x5f\x62\x75\x74\x74\x6f\
3953-\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\
3954-\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\
3955-\x6f\x75\x6e\x64\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x7d\x0a\x0a\x51\
3956-\x47\x72\x6f\x75\x70\x42\x6f\x78\x20\x7b\x0a\x20\x20\x20\x20\x70\
3957-\x61\x64\x64\x69\x6e\x67\x2d\x74\x6f\x70\x3a\x20\x33\x30\x70\x78\
3958-\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x30\x70\
3959-\x78\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\
3960-\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x31\x65\x78\x3b\x0a\x20\x20\
3961-\x20\x20\x66\x6f\x6e\x74\x3a\x20\x62\x6f\x6c\x64\x20\x31\x35\x70\
3962-\x78\x3b\x0a\x7d\x0a\x0a\x51\x47\x72\x6f\x75\x70\x42\x6f\x78\x3a\
3963-\x3a\x74\x69\x74\x6c\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\
3964-\x6f\x72\x3a\x20\x23\x33\x33\x33\x33\x33\x33\x3b\x0a\x7d\x0a\x0a\
3965-\x51\x4c\x69\x73\x74\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\
3966-\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\
3967-\x37\x66\x36\x66\x35\x3b\x0a\x20\x20\x20\x20\x61\x6c\x74\x65\x72\
3968-\x6e\x61\x74\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\
3969-\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x66\x65\x64\x65\x63\x3b\x0a\
3970-\x7d\x0a\x0a\x51\x4c\x69\x73\x74\x57\x69\x64\x67\x65\x74\x23\x6c\
3971-\x69\x73\x74\x44\x65\x76\x69\x63\x65\x73\x3a\x3a\x69\x74\x65\x6d\
3972-\x20\x7b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\x65\x69\x67\x68\
3973-\x74\x3a\x20\x34\x38\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\
3974-\x65\x6c\x23\x6f\x74\x68\x65\x72\x5f\x64\x65\x76\x69\x63\x65\x73\
3975-\x5f\x6c\x61\x62\x65\x6c\x2c\x0a\x51\x4c\x61\x62\x65\x6c\x23\x74\
3976-\x69\x74\x6c\x65\x5f\x6c\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\
3977-\x20\x66\x6f\x6e\x74\x3a\x20\x62\x6f\x6c\x64\x20\x31\x36\x70\x78\
3978-\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\x65\x6c\x23\x70\x65\x72\x63\
3979-\x65\x6e\x74\x61\x67\x65\x5f\x75\x73\x61\x67\x65\x5f\x6c\x61\x62\
3980-\x65\x6c\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\
3981-\x74\x6f\x70\x3a\x20\x2d\x34\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\
3982-\x61\x62\x65\x6c\x23\x66\x6f\x6c\x6c\x6f\x77\x5f\x75\x73\x5f\x6c\
3983-\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\
3984-\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\
3985-\x6d\x65\x23\x66\x72\x6d\x5f\x62\x6f\x78\x20\x7b\x0a\x20\x20\x20\
3986-\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\x66\
3987-\x66\x66\x66\x66\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
3988-\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\
3989-\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\
3990-\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
3991-\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\
3992-\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\
3993-\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\
3994-\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x6d\
3995-\x69\x6e\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x30\x30\x70\x78\
3996-\x3b\x0a\x7d\x0a\x0a\x51\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\
3997-\x20\x20\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\
3998-\x22\x55\x62\x75\x6e\x74\x75\x22\x3b\x0a\x7d\x0a\
3999+\x6f\x6d\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\
4000+\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
4001+\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\x75\
4002+\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
4003+\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\
4004+\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\
4005+\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\
4006+\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\
4007+\x78\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
4008+\x64\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\
4009+\x72\x64\x65\x72\x2d\x74\x6f\x70\x3a\x20\x32\x70\x78\x20\x73\x6f\
4010+\x6c\x69\x64\x20\x77\x68\x69\x74\x65\x3b\x0a\x7d\x0a\x0a\x51\x47\
4011+\x72\x6f\x75\x70\x42\x6f\x78\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\
4012+\x64\x64\x69\x6e\x67\x2d\x74\x6f\x70\x3a\x20\x33\x30\x70\x78\x3b\
4013+\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x6e\x6f\x6e\
4014+\x65\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\
4015+\x70\x3a\x20\x31\x65\x78\x3b\x0a\x7d\x0a\x0a\x51\x47\x72\x6f\x75\
4016+\x70\x42\x6f\x78\x3a\x3a\x74\x69\x74\x6c\x65\x20\x7b\x0a\x20\x20\
4017+\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x33\x33\x33\x33\x33\x33\
4018+\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x3a\x20\x62\x6f\x6c\x64\
4019+\x20\x31\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x47\x72\x6f\x75\x70\
4020+\x42\x6f\x78\x23\x70\x72\x6f\x66\x69\x6c\x65\x2c\x0a\x51\x47\x72\
4021+\x6f\x75\x70\x42\x6f\x78\x23\x73\x65\x72\x76\x69\x63\x65\x73\x20\
4022+\x7b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x6c\x65\
4023+\x66\x74\x3a\x20\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\x69\x73\
4024+\x74\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\
4025+\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\x37\x66\x36\x66\
4026+\x35\x3b\x0a\x20\x20\x20\x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x65\
4027+\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\
4028+\x72\x3a\x20\x23\x65\x66\x65\x64\x65\x63\x3b\x0a\x7d\x0a\x0a\x51\
4029+\x4c\x69\x73\x74\x57\x69\x64\x67\x65\x74\x23\x6c\x69\x73\x74\x5f\
4030+\x64\x65\x76\x69\x63\x65\x73\x3a\x3a\x69\x74\x65\x6d\x20\x7b\x0a\
4031+\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\
4032+\x34\x38\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\x65\x6c\x23\
4033+\x6f\x74\x68\x65\x72\x5f\x64\x65\x76\x69\x63\x65\x73\x5f\x6c\x61\
4034+\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x3a\x20\
4035+\x62\x6f\x6c\x64\x20\x31\x36\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\
4036+\x61\x62\x65\x6c\x23\x70\x65\x72\x63\x65\x6e\x74\x61\x67\x65\x5f\
4037+\x75\x73\x61\x67\x65\x5f\x6c\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\
4038+\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x2d\x34\
4039+\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\x65\x6c\x23\x66\x6f\
4040+\x6c\x6c\x6f\x77\x5f\x75\x73\x5f\x6c\x61\x62\x65\x6c\x20\x7b\x0a\
4041+\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\
4042+\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\x6d\x65\x23\x66\x72\x6d\x5f\
4043+\x62\x6f\x78\x20\x7b\x20\x2f\x2a\x20\x74\x68\x65\x20\x6c\x6f\x61\
4044+\x64\x69\x6e\x67\x6f\x76\x65\x72\x6c\x61\x79\x20\x66\x72\x61\x6d\
4045+\x65\x20\x2a\x2f\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\
4046+\x75\x6e\x64\x3a\x20\x23\x66\x66\x66\x66\x66\x66\x3b\x0a\x20\x20\
4047+\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\
4048+\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
4049+\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\
4050+\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\
4051+\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\
4052+\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\
4053+\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\
4054+\x65\x3b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\x65\x69\x67\x68\
4055+\x74\x3a\x20\x31\x30\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x41\x62\
4056+\x73\x74\x72\x61\x63\x74\x49\x74\x65\x6d\x56\x69\x65\x77\x20\x7b\
4057+\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\
4058+\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\
4059+\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x33\x33\x33\
4060+\x33\x33\x33\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
4061+\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\
4062+\x61\x6c\x74\x65\x72\x6e\x61\x74\x65\x2d\x62\x61\x63\x6b\x67\x72\
4063+\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x66\x65\
4064+\x64\x65\x63\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\
4065+\x75\x6e\x64\x3a\x20\x23\x66\x37\x66\x36\x66\x35\x3b\x0a\x7d\x0a\
4066+\
4067 \x00\x00\x02\x6f\
4068 \x89\
4069 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
4070@@ -23411,20 +23469,20 @@
4071
4072 qt_resource_struct = "\
4073 \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x01\
4074-\x00\x00\x01\xf0\x00\x00\x00\x00\x00\x01\x00\x05\xae\xdf\
4075+\x00\x00\x01\xf0\x00\x00\x00\x00\x00\x01\x00\x05\xb2\x73\
4076 \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xe5\
4077 \x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x17\xfe\
4078 \x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x09\xc8\
4079-\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x05\xa6\x8a\
4080+\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x05\xaa\x1e\
4081 \x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x04\x92\
4082 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
4083 \x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x11\xb2\
4084 \x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x01\xd5\
4085 \x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x83\
4086 \x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x16\xd3\
4087-\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x05\xaa\x16\
4088-\x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x27\x1f\
4089-\x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x00\x29\x92\
4090+\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x05\xad\xaa\
4091+\x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x2a\xb3\
4092+\x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x26\
4093 "
4094
4095 def qInitResources():
4096
4097=== modified file 'ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py'
4098--- ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py 2011-07-22 21:26:48 +0000
4099+++ ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py 2011-08-12 19:16:23 +0000
4100@@ -2,7 +2,7 @@
4101
4102 # Form implementation generated from reading ui file 'data/qt/loadingoverlay.ui'
4103 #
4104-# Created: Fri Jul 22 17:06:43 2011
4105+# Created: Fri Aug 12 15:07:18 2011
4106 # by: PyQt4 UI code generator 4.8.3
4107 #
4108 # WARNING! All changes made in this file will be lost!
4109@@ -19,8 +19,6 @@
4110 def setupUi(self, Form):
4111 Form.setObjectName(_fromUtf8("Form"))
4112 Form.resize(702, 230)
4113- Form.setFrameShape(QtGui.QFrame.StyledPanel)
4114- Form.setFrameShadow(QtGui.QFrame.Raised)
4115 self.verticalLayout = QtGui.QVBoxLayout(Form)
4116 self.verticalLayout.setContentsMargins(-1, 30, -1, -1)
4117 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
4118@@ -30,9 +28,6 @@
4119 self.horizontalLayout_2.addItem(spacerItem)
4120 self.frm_box = QtGui.QFrame(Form)
4121 self.frm_box.setMinimumSize(QtCore.QSize(0, 102))
4122- self.frm_box.setStyleSheet(_fromUtf8(""))
4123- self.frm_box.setFrameShape(QtGui.QFrame.StyledPanel)
4124- self.frm_box.setFrameShadow(QtGui.QFrame.Raised)
4125 self.frm_box.setObjectName(_fromUtf8("frm_box"))
4126 self.horizontalLayout = QtGui.QHBoxLayout(self.frm_box)
4127 self.horizontalLayout.setContentsMargins(-1, 0, -1, 30)
4128@@ -60,5 +55,5 @@
4129
4130 def retranslateUi(self, Form):
4131 Form.setWindowTitle(_('Frame'))
4132- self.label.setText(_('Please wait while we retrieve the information...'))
4133+ self.label.setText(_('Getting information, please wait...'))
4134
4135
4136=== modified file 'ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py'
4137--- ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py 2011-07-22 21:26:48 +0000
4138+++ ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py 2011-08-12 19:16:23 +0000
4139@@ -2,7 +2,7 @@
4140
4141 # Form implementation generated from reading ui file 'data/qt/mainwindow.ui'
4142 #
4143-# Created: Fri Jul 22 17:06:43 2011
4144+# Created: Fri Aug 12 15:07:18 2011
4145 # by: PyQt4 UI code generator 4.8.3
4146 #
4147 # WARNING! All changes made in this file will be lost!
4148
4149=== modified file 'ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py'
4150--- ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py 2011-07-22 21:26:48 +0000
4151+++ ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py 2011-08-12 19:16:23 +0000
4152@@ -2,7 +2,7 @@
4153
4154 # Form implementation generated from reading ui file 'data/qt/preferences.ui'
4155 #
4156-# Created: Fri Jul 22 17:06:43 2011
4157+# Created: Fri Aug 12 15:07:18 2011
4158 # by: PyQt4 UI code generator 4.8.3
4159 #
4160 # WARNING! All changes made in this file will be lost!
4161@@ -18,71 +18,74 @@
4162 class Ui_Form(object):
4163 def setupUi(self, Form):
4164 Form.setObjectName(_fromUtf8("Form"))
4165- Form.resize(469, 352)
4166+ Form.resize(433, 328)
4167 Form.setWindowTitle(_fromUtf8("Form"))
4168 Form.setStyleSheet(_fromUtf8(""))
4169 self.verticalLayout = QtGui.QVBoxLayout(Form)
4170 self.verticalLayout.setMargin(0)
4171 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
4172- self.verticalGroupBox = QtGui.QGroupBox(Form)
4173- self.verticalGroupBox.setObjectName(_fromUtf8("verticalGroupBox"))
4174- self.gridLayout = QtGui.QGridLayout(self.verticalGroupBox)
4175- self.gridLayout.setVerticalSpacing(10)
4176+ self.bandwidth_settings = QtGui.QGroupBox(Form)
4177+ self.bandwidth_settings.setObjectName(_fromUtf8("bandwidth_settings"))
4178+ self.gridLayout = QtGui.QGridLayout(self.bandwidth_settings)
4179+ self.gridLayout.setMargin(0)
4180 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
4181- self.limit_uploads_checkbox = QtGui.QCheckBox(self.verticalGroupBox)
4182+ self.limit_uploads_checkbox = QtGui.QCheckBox(self.bandwidth_settings)
4183 self.limit_uploads_checkbox.setObjectName(_fromUtf8("limit_uploads_checkbox"))
4184 self.gridLayout.addWidget(self.limit_uploads_checkbox, 0, 0, 1, 1)
4185- self.upload_speed_spinbox = QtGui.QSpinBox(self.verticalGroupBox)
4186+ self.upload_speed_spinbox = QtGui.QSpinBox(self.bandwidth_settings)
4187 self.upload_speed_spinbox.setMinimum(-1)
4188 self.upload_speed_spinbox.setMaximum(999999999)
4189 self.upload_speed_spinbox.setObjectName(_fromUtf8("upload_speed_spinbox"))
4190 self.gridLayout.addWidget(self.upload_speed_spinbox, 0, 1, 1, 1)
4191- self.kbps_label_1 = QtGui.QLabel(self.verticalGroupBox)
4192+ self.kbps_label_1 = QtGui.QLabel(self.bandwidth_settings)
4193 self.kbps_label_1.setObjectName(_fromUtf8("kbps_label_1"))
4194 self.gridLayout.addWidget(self.kbps_label_1, 0, 2, 1, 1)
4195- self.limit_downloads_checkbox = QtGui.QCheckBox(self.verticalGroupBox)
4196+ self.limit_downloads_checkbox = QtGui.QCheckBox(self.bandwidth_settings)
4197 self.limit_downloads_checkbox.setObjectName(_fromUtf8("limit_downloads_checkbox"))
4198 self.gridLayout.addWidget(self.limit_downloads_checkbox, 2, 0, 1, 1)
4199- self.download_speed_spinbox = QtGui.QSpinBox(self.verticalGroupBox)
4200+ self.download_speed_spinbox = QtGui.QSpinBox(self.bandwidth_settings)
4201 self.download_speed_spinbox.setMinimum(-1)
4202 self.download_speed_spinbox.setMaximum(999999999)
4203 self.download_speed_spinbox.setObjectName(_fromUtf8("download_speed_spinbox"))
4204 self.gridLayout.addWidget(self.download_speed_spinbox, 2, 1, 1, 1)
4205- self.kbps_label_2 = QtGui.QLabel(self.verticalGroupBox)
4206+ self.kbps_label_2 = QtGui.QLabel(self.bandwidth_settings)
4207 self.kbps_label_2.setObjectName(_fromUtf8("kbps_label_2"))
4208 self.gridLayout.addWidget(self.kbps_label_2, 2, 2, 1, 1)
4209 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
4210 self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)
4211- self.label_2 = QtGui.QLabel(self.verticalGroupBox)
4212+ self.label_2 = QtGui.QLabel(self.bandwidth_settings)
4213 self.label_2.setScaledContents(False)
4214 self.label_2.setWordWrap(False)
4215 self.label_2.setObjectName(_fromUtf8("label_2"))
4216 self.gridLayout.addWidget(self.label_2, 4, 0, 1, 3)
4217 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
4218 self.gridLayout.addItem(spacerItem1, 3, 0, 1, 1)
4219- self.verticalLayout.addWidget(self.verticalGroupBox)
4220- self.groupBox_2 = QtGui.QGroupBox(Form)
4221- self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
4222- self.verticalLayout_1 = QtGui.QVBoxLayout(self.groupBox_2)
4223- self.verticalLayout_1.setSpacing(10)
4224+ self.verticalLayout.addWidget(self.bandwidth_settings)
4225+ self.file_sync_settings = QtGui.QGroupBox(Form)
4226+ self.file_sync_settings.setObjectName(_fromUtf8("file_sync_settings"))
4227+ self.verticalLayout_1 = QtGui.QVBoxLayout(self.file_sync_settings)
4228+ self.verticalLayout_1.setMargin(0)
4229 self.verticalLayout_1.setObjectName(_fromUtf8("verticalLayout_1"))
4230- self.autoconnect_checkbox = QtGui.QCheckBox(self.groupBox_2)
4231+ self.autoconnect_checkbox = QtGui.QCheckBox(self.file_sync_settings)
4232 self.autoconnect_checkbox.setObjectName(_fromUtf8("autoconnect_checkbox"))
4233 self.verticalLayout_1.addWidget(self.autoconnect_checkbox)
4234- self.udf_autosubscribe_checkbox = QtGui.QCheckBox(self.groupBox_2)
4235+ self.udf_autosubscribe_checkbox = QtGui.QCheckBox(self.file_sync_settings)
4236 self.udf_autosubscribe_checkbox.setObjectName(_fromUtf8("udf_autosubscribe_checkbox"))
4237 self.verticalLayout_1.addWidget(self.udf_autosubscribe_checkbox)
4238- self.share_autosubscribe_checkbox = QtGui.QCheckBox(self.groupBox_2)
4239+ self.share_autosubscribe_checkbox = QtGui.QCheckBox(self.file_sync_settings)
4240 self.share_autosubscribe_checkbox.setObjectName(_fromUtf8("share_autosubscribe_checkbox"))
4241 self.verticalLayout_1.addWidget(self.share_autosubscribe_checkbox)
4242- self.show_all_notifications_checkbox = QtGui.QCheckBox(self.groupBox_2)
4243+ self.show_all_notifications_checkbox = QtGui.QCheckBox(self.file_sync_settings)
4244 self.show_all_notifications_checkbox.setObjectName(_fromUtf8("show_all_notifications_checkbox"))
4245 self.verticalLayout_1.addWidget(self.show_all_notifications_checkbox)
4246- self.verticalLayout.addWidget(self.groupBox_2)
4247+ self.verticalLayout.addWidget(self.file_sync_settings)
4248+ spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
4249+ self.verticalLayout.addItem(spacerItem2)
4250 self.horizontalLayout = QtGui.QHBoxLayout()
4251+ self.horizontalLayout.setMargin(3)
4252 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
4253- spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
4254- self.horizontalLayout.addItem(spacerItem2)
4255+ spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
4256+ self.horizontalLayout.addItem(spacerItem3)
4257 self.apply_changes_button = QtGui.QPushButton(Form)
4258 self.apply_changes_button.setObjectName(_fromUtf8("apply_changes_button"))
4259 self.horizontalLayout.addWidget(self.apply_changes_button)
4260@@ -90,20 +93,18 @@
4261 self.restore_defaults_button.setObjectName(_fromUtf8("restore_defaults_button"))
4262 self.horizontalLayout.addWidget(self.restore_defaults_button)
4263 self.verticalLayout.addLayout(self.horizontalLayout)
4264- spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
4265- self.verticalLayout.addItem(spacerItem3)
4266
4267 self.retranslateUi(Form)
4268 QtCore.QMetaObject.connectSlotsByName(Form)
4269
4270 def retranslateUi(self, Form):
4271- self.verticalGroupBox.setTitle(_('Bandwidth settings'))
4272+ self.bandwidth_settings.setTitle(_('Bandwidth settings'))
4273 self.limit_uploads_checkbox.setText(_('Limit upload speed to'))
4274 self.kbps_label_1.setText(_('Kilobits per second'))
4275 self.limit_downloads_checkbox.setText(_('Limit download speed to'))
4276 self.kbps_label_2.setText(_('Kilobits per second'))
4277 self.label_2.setText(_('Please note that your files will not sync if you set bandwidth to 0'))
4278- self.groupBox_2.setTitle(_('File Sync Settings'))
4279+ self.file_sync_settings.setTitle(_('File Sync Settings'))
4280 self.autoconnect_checkbox.setText(_('Connect automatically when computer starts'))
4281 self.udf_autosubscribe_checkbox.setText(_('Automatically sync all selected folders on this computer to the cloud'))
4282 self.share_autosubscribe_checkbox.setText(_('Automatically sync all folders shared with me by other to this computer'))
4283
4284=== modified file 'ubuntuone/controlpanel/gui/tests/test_url_sign.py'
4285--- ubuntuone/controlpanel/gui/tests/test_url_sign.py 2011-07-22 21:26:48 +0000
4286+++ ubuntuone/controlpanel/gui/tests/test_url_sign.py 2011-08-12 19:16:23 +0000
4287@@ -29,7 +29,7 @@
4288 u'token': u'GkInOfSMGwTXAUoVQwLUoPxElEEUdhsLVNTPhxHJDUIeHCPNEo',
4289 u'token_secret': u'qFYImEtlczPbsCnYyuwLoPDlPEnvNcIktZphPQklAWrvyfFMV'}
4290
4291-SAMPLE_SIGNED = 'https://one.ubuntu.com/api/1.0/from_oauth?oauth_nonce=' \
4292+SAMPLE_SIGNED = 'https://one.ubuntu.com/api/1.0/from_oauth/?oauth_nonce=' \
4293 '36886134&oauth_timestamp=1310671062&oauth_consumer_key=consumer_key&' \
4294 'oauth_signature_method=HMAC-SHA1&next=%2Fblah&oauth_version=1.0&' \
4295 'oauth_token=GkInOfSMGwTXAUoVQwLUoPxElEEUdhsLVNTPhxHJDUIeHCPNEo&' \
4296@@ -47,9 +47,15 @@
4297 signed = sign_url("/blah", TOKEN)
4298 parsed_signed = urlparse(signed)
4299 parsed_sample = urlparse(SAMPLE_SIGNED)
4300-
4301 self.assertEqual(parsed_signed.netloc, parsed_sample.netloc)
4302
4303+ def test_is_correct_path(self):
4304+ """Test that we are using the right path in the URL."""
4305+ signed = sign_url("/blah", TOKEN)
4306+ parsed_signed = urlparse(signed)
4307+ parsed_sample = urlparse(SAMPLE_SIGNED)
4308+ self.assertEqual(parsed_signed.path, parsed_sample.path)
4309+
4310 def test_is_correct_scheme(self):
4311 """Test that we are using the right scheme."""
4312 signed = sign_url("/blah", TOKEN)
4313
4314=== modified file 'ubuntuone/controlpanel/logger.py'
4315--- ubuntuone/controlpanel/logger.py 2011-01-25 19:08:59 +0000
4316+++ ubuntuone/controlpanel/logger.py 2011-08-12 19:16:23 +0000
4317@@ -26,7 +26,8 @@
4318 from logging.handlers import RotatingFileHandler
4319
4320 # pylint: disable=F0401,E0611
4321-from ubuntuone.logger import LOGFOLDER, LOGBACKUP, basic_formatter
4322+from ubuntuone.logger import LOGBACKUP, basic_formatter
4323+from ubuntuone.platform.xdg_base_directory import ubuntuone_log_dir
4324
4325
4326 if os.environ.get('DEBUG'):
4327@@ -35,7 +36,8 @@
4328 # Only log this level and above
4329 LOG_LEVEL = logging.DEBUG # before final release, switch to INFO
4330
4331-MAIN_HANDLER = RotatingFileHandler(os.path.join(LOGFOLDER, 'controlpanel.log'),
4332+FILE_NAME = os.path.join(ubuntuone_log_dir, 'controlpanel.log')
4333+MAIN_HANDLER = RotatingFileHandler(FILE_NAME,
4334 maxBytes=1048576,
4335 backupCount=LOGBACKUP)
4336 MAIN_HANDLER.setFormatter(basic_formatter)

Subscribers

People subscribed via source and target branches

to all changes: