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
=== added file 'MANIFEST'
--- MANIFEST 1970-01-01 00:00:00 +0000
+++ MANIFEST 2011-08-12 19:16:23 +0000
@@ -0,0 +1,140 @@
1# file GENERATED by distutils, do NOT edit
2COPYING
3MANIFEST
4README
5com.ubuntuone.controlpanel.gui.service.in
6com.ubuntuone.controlpanel.service.in
7pylintrc
8run-tests
9run-tests.bat
10setup.py
11ubuntuone-control-panel-gtk.desktop.in
12ubuntuone-control-panel.in
13ubuntuone.controlpanel.pth
14bin/ubuntuone-control-panel-backend
15bin/ubuntuone-control-panel-gtk
16bin/ubuntuone-control-panel-qt
17data/Ubuntu-R.ttf
18data/computer.png
19data/contacts.png
20data/external_icon_orange.png
21data/external_icon_white.png
22data/facebook.png
23data/files.png
24data/folder.png
25data/music-store.png
26data/music-stream.png
27data/notes.png
28data/overview.png
29data/phone.png
30data/services-bookmarks.png
31data/services-contacts.png
32data/services-files-example.png
33data/services-files.png
34data/sync_status_alert.png
35data/sync_status_disconnected.png
36data/sync_status_sync_done.png
37data/sync_status_syncing.png
38data/twitter.png
39data/u1icon.png
40data/gtk/dashboard.ui
41data/gtk/device.ui
42data/gtk/devices.ui
43data/gtk/install.ui
44data/gtk/management.ui
45data/gtk/overview.ui
46data/gtk/services.ui
47data/gtk/volumes.ui
48data/qt/account.ui
49data/qt/controlpanel.ui
50data/qt/device.ui
51data/qt/devices.ui
52data/qt/filesyncstatus.ui
53data/qt/folders.ui
54data/qt/images.qrc
55data/qt/loadingoverlay.ui
56data/qt/mainwindow.ui
57data/qt/preferences.ui
58data/qt/ubuntuone.qss
59docs/ubuntuone-control-panel-gtk.1
60po/POTFILES.in
61po/ubuntuone-control-panel.pot
62ubuntuone/__init__.py
63ubuntuone/controlpanel/__init__.py
64ubuntuone/controlpanel/backend.py
65ubuntuone/controlpanel/constants.py.in
66ubuntuone/controlpanel/dbus_service.py
67ubuntuone/controlpanel/logger.py
68ubuntuone/controlpanel/login_client.py
69ubuntuone/controlpanel/replication_client.py
70ubuntuone/controlpanel/utils.py
71ubuntuone/controlpanel/dbustests/__init__.py
72ubuntuone/controlpanel/dbustests/test_dbus_service.py
73ubuntuone/controlpanel/dbustests/test_gui_service.py
74ubuntuone/controlpanel/dbustests/test_sd_client/__init__.py
75ubuntuone/controlpanel/dbustests/test_sd_client/test_linux.py
76ubuntuone/controlpanel/gui/__init__.py
77ubuntuone/controlpanel/gui/gtk/__init__.py
78ubuntuone/controlpanel/gui/gtk/gui.py
79ubuntuone/controlpanel/gui/gtk/package_manager.py
80ubuntuone/controlpanel/gui/gtk/widgets.py
81ubuntuone/controlpanel/gui/gtk/tests/__init__.py
82ubuntuone/controlpanel/gui/gtk/tests/test_gui.py
83ubuntuone/controlpanel/gui/gtk/tests/test_gui_basic.py
84ubuntuone/controlpanel/gui/gtk/tests/test_package_manager.py
85ubuntuone/controlpanel/gui/gtk/tests/test_widgets.py
86ubuntuone/controlpanel/gui/qt/__init__.py
87ubuntuone/controlpanel/gui/qt/account.py
88ubuntuone/controlpanel/gui/qt/addfolder.py
89ubuntuone/controlpanel/gui/qt/controlpanel.py
90ubuntuone/controlpanel/gui/qt/device.py
91ubuntuone/controlpanel/gui/qt/devices.py
92ubuntuone/controlpanel/gui/qt/filesyncstatus.py
93ubuntuone/controlpanel/gui/qt/folders.py
94ubuntuone/controlpanel/gui/qt/gotoweb.py
95ubuntuone/controlpanel/gui/qt/gui.py
96ubuntuone/controlpanel/gui/qt/loadingoverlay.py
97ubuntuone/controlpanel/gui/qt/preferences.py
98ubuntuone/controlpanel/gui/qt/ubuntuonebin.py
99ubuntuone/controlpanel/gui/qt/main/__init__.py
100ubuntuone/controlpanel/gui/qt/main/linux.py
101ubuntuone/controlpanel/gui/qt/main/windows.py
102ubuntuone/controlpanel/gui/qt/tests/__init__.py
103ubuntuone/controlpanel/gui/qt/tests/test_account.py
104ubuntuone/controlpanel/gui/qt/tests/test_addfolder.py
105ubuntuone/controlpanel/gui/qt/tests/test_controlpanel.py
106ubuntuone/controlpanel/gui/qt/tests/test_device.py
107ubuntuone/controlpanel/gui/qt/tests/test_devices.py
108ubuntuone/controlpanel/gui/qt/tests/test_filesyncstatus.py
109ubuntuone/controlpanel/gui/qt/tests/test_folders.py
110ubuntuone/controlpanel/gui/qt/tests/test_gotoweb.py
111ubuntuone/controlpanel/gui/qt/tests/test_gui.py
112ubuntuone/controlpanel/gui/qt/tests/test_loadingoverlay.py
113ubuntuone/controlpanel/gui/qt/tests/test_preferences.py
114ubuntuone/controlpanel/gui/qt/tests/test_ubuntuonebin.py
115ubuntuone/controlpanel/gui/qt/ui/__init__.py
116ubuntuone/controlpanel/gui/qt/ui/account_ui.py
117ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py
118ubuntuone/controlpanel/gui/qt/ui/device_ui.py
119ubuntuone/controlpanel/gui/qt/ui/devices_ui.py
120ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py
121ubuntuone/controlpanel/gui/qt/ui/folders_ui.py
122ubuntuone/controlpanel/gui/qt/ui/images_rc.py
123ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py
124ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py
125ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py
126ubuntuone/controlpanel/gui/tests/__init__.py
127ubuntuone/controlpanel/gui/tests/test_humanize.py
128ubuntuone/controlpanel/gui/tests/test_url_sign.py
129ubuntuone/controlpanel/sd_client/__init__.py
130ubuntuone/controlpanel/sd_client/linux.py
131ubuntuone/controlpanel/tests/__init__.py
132ubuntuone/controlpanel/tests/test_backend.py
133ubuntuone/controlpanel/tests/test_login_client.py
134ubuntuone/controlpanel/tests/test_replication_client.py
135ubuntuone/controlpanel/tests/test_sd_client.py
136ubuntuone/controlpanel/tests/test_utils.py
137ubuntuone/controlpanel/tests/test_web_client.py
138ubuntuone/controlpanel/web_client/__init__.py
139ubuntuone/controlpanel/web_client/libsoup.py
140ubuntuone/controlpanel/web_client/txwebclient.py
0141
=== modified file 'PKG-INFO'
--- PKG-INFO 2011-07-22 21:26:48 +0000
+++ PKG-INFO 2011-08-12 19:16:23 +0000
@@ -1,6 +1,6 @@
1Metadata-Version: 1.11Metadata-Version: 1.1
2Name: ubuntuone-control-panel2Name: ubuntuone-control-panel
3Version: 1.1.13Version: 1.1.2
4Summary: Ubuntu One Control Panel4Summary: Ubuntu One Control Panel
5Home-page: https://launchpad.net/ubuntuone-control-panel5Home-page: https://launchpad.net/ubuntuone-control-panel
6Author: Natalia Bidart6Author: Natalia Bidart
@@ -8,4 +8,23 @@
8License: GPL v38License: GPL v3
9Description: Application to manage a Ubuntu One account. Provides aDBus service to query/modify all the Ubuntu One bits.9Description: Application to manage a Ubuntu One account. Provides aDBus service to query/modify all the Ubuntu One bits.
10Platform: UNKNOWN10Platform: UNKNOWN
11Requires: PyQt4
12Requires: apt
13Requires: aptdaemon
14Requires: dbus
15Requires: defer
16Requires: desktopcouch.application.replication_services
17Requires: gi.repository
18Requires: gobject
19Requires: gtk
20Requires: mocker
21Requires: oauth
22Requires: pango
23Requires: simplejson
24Requires: twisted.application
25Requires: twisted.internet
26Requires: twisted.python.failure
27Requires: twisted.trial.unittest
28Requires: twisted.web
29Requires: ubuntu_sso
11Provides: ubuntuone30Provides: ubuntuone
1231
=== modified file 'data/qt/account.ui'
--- data/qt/account.ui 2011-07-22 21:26:48 +0000
+++ data/qt/account.ui 2011-08-12 19:16:23 +0000
@@ -6,8 +6,8 @@
6 <rect>6 <rect>
7 <x>0</x>7 <x>0</x>
8 <y>0</y>8 <y>0</y>
9 <width>321</width>9 <width>381</width>
10 <height>205</height>10 <height>167</height>
11 </rect>11 </rect>
12 </property>12 </property>
13 <property name="windowTitle">13 <property name="windowTitle">
@@ -18,113 +18,107 @@
18 <number>0</number>18 <number>0</number>
19 </property>19 </property>
20 <item>20 <item>
21 <widget class="QGroupBox" name="horizontalGroupBox">21 <layout class="QGridLayout" name="gridLayout_2">
22 <property name="title">22 <property name="verticalSpacing">
23 <string>Personal details</string>23 <number>30</number>
24 </property>24 </property>
25 <layout class="QHBoxLayout" name="horizontalLayout">25 <item row="2" column="2">
26 <item>26 <widget class="GoToWebButton" name="edit_profile_button">
27 <layout class="QVBoxLayout" name="verticalLayout_2">27 <property name="text">
28 <item>28 <string>Edit personal details online</string>
29 <widget class="QLabel" name="name_label">29 </property>
30 <property name="text">30 </widget>
31 <string/>31 </item>
32 </property>32 <item row="2" column="0">
33 </widget>33 <widget class="QGroupBox" name="services">
34 </item>34 <property name="title">
35 <item>35 <string>Your services</string>
36 <widget class="QLabel" name="email_label">36 </property>
37 <property name="text">37 <layout class="QVBoxLayout" name="verticalLayout_3">
38 <string/>38 <property name="margin">
39 </property>39 <number>0</number>
40 </widget>40 </property>
41 </item>41 <item>
42 </layout>42 <widget class="QLabel" name="services_description_label">
43 </item>43 <property name="text">
44 <item>44 <string/>
45 <spacer name="horizontalSpacer_3">45 </property>
46 <property name="orientation">46 </widget>
47 <enum>Qt::Horizontal</enum>47 </item>
48 </property>48 </layout>
49 <property name="sizeHint" stdset="0">49 </widget>
50 <size>50 </item>
51 <width>40</width>51 <item row="1" column="0" colspan="4">
52 <height>20</height>52 <widget class="Line" name="account_separator">
53 </size>53 <property name="orientation">
54 </property>54 <enum>Qt::Horizontal</enum>
55 </spacer>55 </property>
56 </item>56 </widget>
57 <item>57 </item>
58 <widget class="GoToWebButton" name="edit_profile_button">58 <item row="0" column="0">
59 <property name="text">59 <widget class="QGroupBox" name="profile_info">
60 <string>Edit personal details online</string>60 <property name="title">
61 </property>61 <string>Personal details</string>
62 </widget>62 </property>
63 </item>63 <layout class="QVBoxLayout" name="verticalLayout_4">
64 <item>64 <property name="margin">
65 <spacer name="horizontalSpacer_4">65 <number>0</number>
66 <property name="orientation">66 </property>
67 <enum>Qt::Horizontal</enum>67 <item>
68 </property>68 <layout class="QVBoxLayout" name="verticalLayout_2">
69 <property name="sizeHint" stdset="0">69 <item>
70 <size>70 <widget class="QLabel" name="name_label">
71 <width>40</width>71 <property name="text">
72 <height>20</height>72 <string/>
73 </size>73 </property>
74 </property>74 </widget>
75 </spacer>75 </item>
76 </item>76 <item>
77 </layout>77 <widget class="QLabel" name="email_label">
78 </widget>78 <property name="text">
79 </item>79 <string/>
80 <item>80 </property>
81 <widget class="QGroupBox" name="horizontalGroupBox_2">81 </widget>
82 <property name="title">82 </item>
83 <string>Your services</string>83 </layout>
84 </property>84 </item>
85 <layout class="QHBoxLayout" name="horizontalLayout_2">85 </layout>
86 <item>86 </widget>
87 <widget class="QLabel" name="services_description_label">87 </item>
88 <property name="text">88 <item row="0" column="2">
89 <string/>89 <widget class="GoToWebButton" name="edit_services_button">
90 </property>90 <property name="text">
91 </widget>91 <string>Edit your services online</string>
92 </item>92 </property>
93 <item>93 </widget>
94 <spacer name="horizontalSpacer">94 </item>
95 <property name="orientation">95 <item row="0" column="3">
96 <enum>Qt::Horizontal</enum>96 <spacer name="horizontalSpacer">
97 </property>97 <property name="orientation">
98 <property name="sizeHint" stdset="0">98 <enum>Qt::Horizontal</enum>
99 <size>99 </property>
100 <width>40</width>100 <property name="sizeHint" stdset="0">
101 <height>20</height>101 <size>
102 </size>102 <width>40</width>
103 </property>103 <height>20</height>
104 </spacer>104 </size>
105 </item>105 </property>
106 <item>106 </spacer>
107 <widget class="GoToWebButton" name="edit_services_button">107 </item>
108 <property name="text">108 <item row="0" column="1">
109 <string>Edit your services online</string>109 <spacer name="horizontalSpacer_2">
110 </property>110 <property name="orientation">
111 </widget>111 <enum>Qt::Horizontal</enum>
112 </item>112 </property>
113 <item>113 <property name="sizeHint" stdset="0">
114 <spacer name="horizontalSpacer_2">114 <size>
115 <property name="orientation">115 <width>40</width>
116 <enum>Qt::Horizontal</enum>116 <height>20</height>
117 </property>117 </size>
118 <property name="sizeHint" stdset="0">118 </property>
119 <size>119 </spacer>
120 <width>40</width>120 </item>
121 <height>20</height>121 </layout>
122 </size>
123 </property>
124 </spacer>
125 </item>
126 </layout>
127 </widget>
128 </item>122 </item>
129 <item>123 <item>
130 <spacer name="verticalSpacer">124 <spacer name="verticalSpacer">
@@ -134,7 +128,7 @@
134 <property name="sizeHint" stdset="0">128 <property name="sizeHint" stdset="0">
135 <size>129 <size>
136 <width>20</width>130 <width>20</width>
137 <height>40</height>131 <height>10</height>
138 </size>132 </size>
139 </property>133 </property>
140 </spacer>134 </spacer>
141135
=== modified file 'data/qt/controlpanel.ui'
--- data/qt/controlpanel.ui 2011-07-22 21:26:48 +0000
+++ data/qt/controlpanel.ui 2011-08-12 19:16:23 +0000
@@ -6,8 +6,8 @@
6 <rect>6 <rect>
7 <x>0</x>7 <x>0</x>
8 <y>0</y>8 <y>0</y>
9 <width>536</width>9 <width>387</width>
10 <height>389</height>10 <height>203</height>
11 </rect>11 </rect>
12 </property>12 </property>
13 <property name="sizePolicy">13 <property name="sizePolicy">
@@ -21,244 +21,179 @@
21 </property>21 </property>
22 <layout class="QVBoxLayout" name="verticalLayout">22 <layout class="QVBoxLayout" name="verticalLayout">
23 <property name="spacing">23 <property name="spacing">
24 <number>4</number>24 <number>3</number>
25 </property>25 </property>
26 <property name="margin">26 <property name="margin">
27 <number>0</number>27 <number>0</number>
28 </property>28 </property>
29 <item>29 <item>
30 <widget class="QFrame" name="frmHeader">30 <widget class="QFrame" name="frame_header">
31 <property name="frameShape">31 <layout class="QHBoxLayout" name="horizontalLayout_2">
32 <enum>QFrame::StyledPanel</enum>
33 </property>
34 <property name="frameShadow">
35 <enum>QFrame::Raised</enum>
36 </property>
37 <layout class="QHBoxLayout" name="horizontalLayout_4">
38 <property name="spacing">32 <property name="spacing">
33 <number>5</number>
34 </property>
35 <property name="margin">
39 <number>0</number>36 <number>0</number>
40 </property>37 </property>
41 <property name="leftMargin">38 <item>
42 <number>15</number>39 <widget class="QFrame" name="frame_greeting">
43 </property>40 <layout class="QVBoxLayout" name="verticalLayout_4">
44 <property name="topMargin">41 <property name="margin">
45 <number>10</number>42 <number>0</number>
46 </property>43 </property>
47 <property name="rightMargin">44 <item>
48 <number>10</number>45 <widget class="QLabel" name="greeting_label">
49 </property>46 <property name="alignment">
50 <property name="bottomMargin">47 <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
51 <number>10</number>48 </property>
52 </property>49 </widget>
53 <item>50 </item>
54 <layout class="QHBoxLayout" name="horizontalLayout">51 </layout>
55 <property name="spacing">52 </widget>
56 <number>0</number>53 </item>
57 </property>54 <item>
58 <item>55 <spacer name="horizontalSpacer">
59 <layout class="QVBoxLayout" name="vLayoutGreeting">56 <property name="orientation">
60 <property name="spacing">57 <enum>Qt::Horizontal</enum>
61 <number>0</number>58 </property>
62 </property>59 <property name="sizeType">
63 <property name="sizeConstraint">60 <enum>QSizePolicy::Fixed</enum>
64 <enum>QLayout::SetDefaultConstraint</enum>61 </property>
65 </property>62 <property name="sizeHint" stdset="0">
66 <item>63 <size>
67 <widget class="QLabel" name="greeting_label">64 <width>15</width>
68 <property name="font">65 <height>20</height>
69 <font>66 </size>
70 <pointsize>10</pointsize>67 </property>
71 </font>68 </spacer>
72 </property>69 </item>
73 <property name="layoutDirection">70 <item>
74 <enum>Qt::LeftToRight</enum>71 <widget class="QFrame" name="frame_storage">
75 </property>72 <property name="sizePolicy">
76 <property name="autoFillBackground">73 <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
77 <bool>false</bool>74 <horstretch>0</horstretch>
78 </property>75 <verstretch>0</verstretch>
79 <property name="text">76 </sizepolicy>
80 <string notr="true"/>77 </property>
81 </property>78 <property name="minimumSize">
82 <property name="alignment">79 <size>
83 <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>80 <width>165</width>
81 <height>0</height>
82 </size>
83 </property>
84 <property name="maximumSize">
85 <size>
86 <width>165</width>
87 <height>16777215</height>
88 </size>
89 </property>
90 <layout class="QVBoxLayout" name="vLayoutStorage">
91 <property name="spacing">
92 <number>6</number>
93 </property>
94 <property name="sizeConstraint">
95 <enum>QLayout::SetDefaultConstraint</enum>
96 </property>
97 <property name="margin">
98 <number>0</number>
99 </property>
100 <item>
101 <widget class="QFrame" name="frame_quota">
102 <layout class="QVBoxLayout" name="verticalLayout_3">
103 <property name="spacing">
104 <number>2</number>
84 </property>105 </property>
85 <property name="margin">106 <property name="margin">
86 <number>0</number>107 <number>0</number>
87 </property>108 </property>
88 <property name="indent">109 <item>
89 <number>-1</number>110 <widget class="QLabel" name="percentage_usage_label">
90 </property>111 <property name="sizePolicy">
91 </widget>112 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
92 </item>113 <horstretch>0</horstretch>
93 </layout>114 <verstretch>0</verstretch>
94 </item>115 </sizepolicy>
95 <item>116 </property>
96 <spacer name="horizontalSpacer">117 <property name="text">
97 <property name="orientation">118 <string notr="true"/>
98 <enum>Qt::Horizontal</enum>119 </property>
99 </property>120 </widget>
100 <property name="sizeType">121 </item>
101 <enum>QSizePolicy::Fixed</enum>122 <item>
102 </property>123 <widget class="QLabel" name="quota_usage_label">
103 <property name="sizeHint" stdset="0">124 <property name="font">
104 <size>125 <font>
105 <width>15</width>126 <pointsize>8</pointsize>
106 <height>20</height>127 </font>
107 </size>128 </property>
108 </property>129 <property name="text">
109 </spacer>130 <string/>
110 </item>131 </property>
111 <item>132 </widget>
112 <widget class="QFrame" name="frameStorage">133 </item>
113 <property name="sizePolicy">134 </layout>
114 <sizepolicy hsizetype="Fixed" vsizetype="Preferred">135 <zorder>quota_usage_label</zorder>
115 <horstretch>0</horstretch>136 <zorder>percentage_usage_label</zorder>
116 <verstretch>0</verstretch>137 </widget>
117 </sizepolicy>138 </item>
118 </property>139 <item>
119 <property name="maximumSize">140 <widget class="GoToWebButton" name="get_more_space_button">
120 <size>141 <property name="text">
121 <width>166</width>142 <string>Get more storage</string>
122 <height>16777215</height>143 </property>
123 </size>144 </widget>
124 </property>145 </item>
125 <property name="frameShape">146 </layout>
126 <enum>QFrame::StyledPanel</enum>147 </widget>
127 </property>148 </item>
128 <property name="frameShadow">149 <item>
129 <enum>QFrame::Raised</enum>150 <widget class="QFrame" name="frame_status">
130 </property>151 <property name="sizePolicy">
131 <layout class="QHBoxLayout" name="horizontalLayout_7">152 <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
132 <property name="spacing">153 <horstretch>0</horstretch>
133 <number>0</number>154 <verstretch>0</verstretch>
134 </property>155 </sizepolicy>
135 <property name="leftMargin">156 </property>
136 <number>10</number>157 <property name="minimumSize">
137 </property>158 <size>
138 <property name="topMargin">159 <width>165</width>
139 <number>0</number>160 <height>0</height>
140 </property>161 </size>
141 <property name="rightMargin">162 </property>
142 <number>10</number>163 <property name="maximumSize">
143 </property>164 <size>
144 <property name="bottomMargin">165 <width>165</width>
145 <number>0</number>166 <height>16777215</height>
146 </property>167 </size>
147 <item>168 </property>
148 <layout class="QVBoxLayout" name="vLayoutStorage">169 <layout class="QHBoxLayout" name="horizontalLayout_8">
149 <property name="sizeConstraint">170 <property name="margin">
150 <enum>QLayout::SetDefaultConstraint</enum>171 <number>0</number>
151 </property>172 </property>
152 <item>173 <item>
153 <widget class="QFrame" name="frmQuota">174 <widget class="FileSyncStatus" name="file_sync_status" native="true">
154 <property name="frameShape">175 <property name="sizePolicy">
155 <enum>QFrame::StyledPanel</enum>176 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
156 </property>177 <horstretch>0</horstretch>
157 <property name="frameShadow">178 <verstretch>0</verstretch>
158 <enum>QFrame::Raised</enum>179 </sizepolicy>
159 </property>180 </property>
160 <layout class="QVBoxLayout" name="verticalLayout_3">181 <property name="minimumSize">
161 <property name="spacing">182 <size>
162 <number>2</number>183 <width>0</width>
163 </property>184 <height>0</height>
164 <property name="leftMargin">185 </size>
165 <number>0</number>186 </property>
166 </property>187 <property name="maximumSize">
167 <property name="topMargin">188 <size>
168 <number>0</number>189 <width>165</width>
169 </property>190 <height>16777215</height>
170 <property name="rightMargin">191 </size>
171 <number>0</number>192 </property>
172 </property>193 </widget>
173 <property name="bottomMargin">194 </item>
174 <number>10</number>195 </layout>
175 </property>196 </widget>
176 <item>
177 <widget class="QLabel" name="percentage_usage_label">
178 <property name="sizePolicy">
179 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
180 <horstretch>0</horstretch>
181 <verstretch>0</verstretch>
182 </sizepolicy>
183 </property>
184 <property name="text">
185 <string notr="true"/>
186 </property>
187 </widget>
188 </item>
189 <item>
190 <widget class="QLabel" name="quota_usage_label">
191 <property name="font">
192 <font>
193 <pointsize>8</pointsize>
194 </font>
195 </property>
196 <property name="text">
197 <string/>
198 </property>
199 </widget>
200 </item>
201 </layout>
202 <zorder>quota_usage_label</zorder>
203 <zorder>percentage_usage_label</zorder>
204 </widget>
205 </item>
206 <item>
207 <widget class="GoToWebButton" name="get_more_space_button">
208 <property name="text">
209 <string>Get more storage!</string>
210 </property>
211 </widget>
212 </item>
213 </layout>
214 </item>
215 </layout>
216 <zorder></zorder>
217 </widget>
218 </item>
219 <item>
220 <widget class="QFrame" name="frameStatus">
221 <property name="sizePolicy">
222 <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
223 <horstretch>0</horstretch>
224 <verstretch>0</verstretch>
225 </sizepolicy>
226 </property>
227 <property name="maximumSize">
228 <size>
229 <width>166</width>
230 <height>16777215</height>
231 </size>
232 </property>
233 <property name="frameShape">
234 <enum>QFrame::StyledPanel</enum>
235 </property>
236 <property name="frameShadow">
237 <enum>QFrame::Raised</enum>
238 </property>
239 <layout class="QHBoxLayout" name="horizontalLayout_8">
240 <property name="spacing">
241 <number>0</number>
242 </property>
243 <property name="leftMargin">
244 <number>10</number>
245 </property>
246 <property name="topMargin">
247 <number>0</number>
248 </property>
249 <property name="rightMargin">
250 <number>0</number>
251 </property>
252 <property name="bottomMargin">
253 <number>0</number>
254 </property>
255 <item>
256 <widget class="FileSyncStatus" name="file_sync_status" native="true"/>
257 </item>
258 </layout>
259 </widget>
260 </item>
261 </layout>
262 </item>197 </item>
263 </layout>198 </layout>
264 </widget>199 </widget>
@@ -297,116 +232,100 @@
297 </widget>232 </widget>
298 </item>233 </item>
299 <item>234 <item>
300 <widget class="QFrame" name="frmFooter">235 <widget class="QFrame" name="frame_footer">
301 <property name="maximumSize">236 <layout class="QHBoxLayout" name="horizontalLayout">
302 <size>
303 <width>16777215</width>
304 <height>30</height>
305 </size>
306 </property>
307 <property name="frameShape">
308 <enum>QFrame::StyledPanel</enum>
309 </property>
310 <property name="frameShadow">
311 <enum>QFrame::Raised</enum>
312 </property>
313 <layout class="QVBoxLayout" name="verticalLayout_2">
314 <property name="spacing">237 <property name="spacing">
315 <number>0</number>238 <number>5</number>
316 </property>239 </property>
317 <property name="margin">240 <property name="leftMargin">
318 <number>0</number>241 <number>3</number>
319 </property>242 </property>
320 <item>243 <property name="topMargin">
321 <layout class="QHBoxLayout" name="hLayoutFooter">244 <number>0</number>
322 <property name="spacing">245 </property>
323 <number>5</number>246 <property name="rightMargin">
324 </property>247 <number>3</number>
325 <property name="leftMargin">248 </property>
326 <number>3</number>249 <property name="bottomMargin">
327 </property>250 <number>3</number>
328 <property name="rightMargin">251 </property>
329 <number>3</number>252 <item>
330 </property>253 <widget class="GoToWebButton" name="help_button">
331 <item>254 <property name="text">
332 <widget class="GoToWebButton" name="help_button">255 <string>Get help online</string>
333 <property name="text">256 </property>
334 <string>Get help online</string>257 </widget>
335 </property>258 </item>
336 </widget>259 <item>
337 </item>260 <spacer name="horizontalSpacer_4">
338 <item>261 <property name="orientation">
339 <spacer name="horizontalSpacer_4">262 <enum>Qt::Horizontal</enum>
340 <property name="orientation">263 </property>
341 <enum>Qt::Horizontal</enum>264 <property name="sizeHint" stdset="0">
342 </property>265 <size>
343 <property name="sizeHint" stdset="0">266 <width>133</width>
344 <size>267 <height>20</height>
345 <width>40</width>268 </size>
346 <height>20</height>269 </property>
347 </size>270 </spacer>
348 </property>271 </item>
349 </spacer>272 <item>
350 </item>273 <widget class="QLabel" name="follow_us_label">
351 <item>274 <property name="font">
352 <widget class="QLabel" name="follow_us_label">275 <font>
353 <property name="font">276 <pointsize>11</pointsize>
354 <font>277 </font>
355 <pointsize>11</pointsize>278 </property>
356 </font>279 <property name="text">
357 </property>280 <string>Talk to us</string>
358 <property name="text">281 </property>
359 <string>Talk to us</string>282 </widget>
360 </property>283 </item>
361 </widget>284 <item>
362 </item>285 <widget class="QToolButton" name="twitter_button">
363 <item>286 <property name="cursor">
364 <widget class="QToolButton" name="twitter_button">287 <cursorShape>PointingHandCursor</cursorShape>
365 <property name="cursor">288 </property>
366 <cursorShape>PointingHandCursor</cursorShape>289 <property name="styleSheet">
367 </property>290 <string notr="true">border: 0;</string>
368 <property name="styleSheet">291 </property>
369 <string notr="true">border: 0;</string>292 <property name="text">
370 </property>293 <string/>
371 <property name="text">294 </property>
372 <string/>295 <property name="icon">
373 </property>296 <iconset resource="images.qrc">
374 <property name="icon">297 <normaloff>:/twitter.png</normaloff>:/twitter.png</iconset>
375 <iconset resource="images.qrc">298 </property>
376 <normaloff>:/twitter.png</normaloff>:/twitter.png</iconset>299 <property name="iconSize">
377 </property>300 <size>
378 <property name="iconSize">301 <width>22</width>
379 <size>302 <height>22</height>
380 <width>22</width>303 </size>
381 <height>22</height>304 </property>
382 </size>305 </widget>
383 </property>306 </item>
384 </widget>307 <item>
385 </item>308 <widget class="QToolButton" name="facebook_button">
386 <item>309 <property name="cursor">
387 <widget class="QToolButton" name="facebook_button">310 <cursorShape>PointingHandCursor</cursorShape>
388 <property name="cursor">311 </property>
389 <cursorShape>PointingHandCursor</cursorShape>312 <property name="styleSheet">
390 </property>313 <string notr="true">border: 0;</string>
391 <property name="styleSheet">314 </property>
392 <string notr="true">border: 0;</string>315 <property name="text">
393 </property>316 <string/>
394 <property name="text">317 </property>
395 <string/>318 <property name="icon">
396 </property>319 <iconset resource="images.qrc">
397 <property name="icon">320 <normaloff>:/facebook.png</normaloff>:/facebook.png</iconset>
398 <iconset resource="images.qrc">321 </property>
399 <normaloff>:/facebook.png</normaloff>:/facebook.png</iconset>322 <property name="iconSize">
400 </property>323 <size>
401 <property name="iconSize">324 <width>22</width>
402 <size>325 <height>22</height>
403 <width>22</width>326 </size>
404 <height>22</height>327 </property>
405 </size>328 </widget>
406 </property>
407 </widget>
408 </item>
409 </layout>
410 </item>329 </item>
411 </layout>330 </layout>
412 </widget>331 </widget>
@@ -415,6 +334,11 @@
415 </widget>334 </widget>
416 <customwidgets>335 <customwidgets>
417 <customwidget>336 <customwidget>
337 <class>GoToWebButton</class>
338 <extends>QPushButton</extends>
339 <header>ubuntuone.controlpanel.gui.qt.gotoweb</header>
340 </customwidget>
341 <customwidget>
418 <class>FoldersPanel</class>342 <class>FoldersPanel</class>
419 <extends>QWidget</extends>343 <extends>QWidget</extends>
420 <header>ubuntuone.controlpanel.gui.qt.folders</header>344 <header>ubuntuone.controlpanel.gui.qt.folders</header>
@@ -439,11 +363,6 @@
439 <container>1</container>363 <container>1</container>
440 </customwidget>364 </customwidget>
441 <customwidget>365 <customwidget>
442 <class>GoToWebButton</class>
443 <extends>QPushButton</extends>
444 <header>ubuntuone.controlpanel.gui.qt.gotoweb</header>
445 </customwidget>
446 <customwidget>
447 <class>AccountPanel</class>366 <class>AccountPanel</class>
448 <extends>QWidget</extends>367 <extends>QWidget</extends>
449 <header>ubuntuone.controlpanel.gui.qt.account</header>368 <header>ubuntuone.controlpanel.gui.qt.account</header>
450369
=== modified file 'data/qt/device.ui'
--- data/qt/device.ui 2011-07-22 21:26:48 +0000
+++ data/qt/device.ui 2011-08-12 19:16:23 +0000
@@ -6,8 +6,8 @@
6 <rect>6 <rect>
7 <x>0</x>7 <x>0</x>
8 <y>0</y>8 <y>0</y>
9 <width>400</width>9 <width>233</width>
10 <height>63</height>10 <height>36</height>
11 </rect>11 </rect>
12 </property>12 </property>
13 <property name="windowTitle">13 <property name="windowTitle">
@@ -44,7 +44,7 @@
44 <item>44 <item>
45 <widget class="QPushButton" name="remove_device_button">45 <widget class="QPushButton" name="remove_device_button">
46 <property name="text">46 <property name="text">
47 <string>Delete device</string>47 <string>Remove</string>
48 </property>48 </property>
49 </widget>49 </widget>
50 </item>50 </item>
5151
=== modified file 'data/qt/devices.ui'
--- data/qt/devices.ui 2011-07-22 21:26:48 +0000
+++ data/qt/devices.ui 2011-08-12 19:16:23 +0000
@@ -6,14 +6,14 @@
6 <rect>6 <rect>
7 <x>0</x>7 <x>0</x>
8 <y>0</y>8 <y>0</y>
9 <width>409</width>9 <width>393</width>
10 <height>310</height>10 <height>281</height>
11 </rect>11 </rect>
12 </property>12 </property>
13 <property name="windowTitle">13 <property name="windowTitle">
14 <string notr="true">Form</string>14 <string notr="true">Form</string>
15 </property>15 </property>
16 <layout class="QVBoxLayout" name="verticalLayout">16 <layout class="QVBoxLayout" name="verticalLayout_3">
17 <property name="spacing">17 <property name="spacing">
18 <number>0</number>18 <number>0</number>
19 </property>19 </property>
@@ -21,47 +21,34 @@
21 <number>0</number>21 <number>0</number>
22 </property>22 </property>
23 <item>23 <item>
24 <widget class="QFrame" name="frame">24 <widget class="QGroupBox" name="local_device">
25 <property name="frameShape">25 <property name="title">
26 <enum>QFrame::StyledPanel</enum>26 <string>This device</string>
27 </property>27 </property>
28 <property name="frameShadow">28 <layout class="QVBoxLayout" name="verticalLayout">
29 <enum>QFrame::Raised</enum>29 <property name="margin">
30 <number>0</number>
31 </property>
32 <item>
33 <layout class="QVBoxLayout" name="local_device_box"/>
34 </item>
35 </layout>
36 </widget>
37 </item>
38 <item>
39 <widget class="QGroupBox" name="oher_devices">
40 <property name="title">
41 <string>Other devices</string>
30 </property>42 </property>
31 <layout class="QVBoxLayout" name="verticalLayout_2">43 <layout class="QVBoxLayout" name="verticalLayout_2">
32 <item>44 <property name="margin">
33 <layout class="QHBoxLayout" name="horizontalLayout_2">45 <number>0</number>
34 <item>46 </property>
35 <layout class="QVBoxLayout" name="local_device_box"/>
36 </item>
37 </layout>
38 </item>
39 <item>
40 <layout class="QHBoxLayout" name="horizontalLayout">
41 <item>
42 <widget class="QLabel" name="other_devices_label">
43 <property name="text">
44 <string>Other devices</string>
45 </property>
46 </widget>
47 </item>
48 <item>
49 <spacer name="horizontalSpacer">
50 <property name="orientation">
51 <enum>Qt::Horizontal</enum>
52 </property>
53 <property name="sizeHint" stdset="0">
54 <size>
55 <width>40</width>
56 <height>20</height>
57 </size>
58 </property>
59 </spacer>
60 </item>
61 </layout>
62 </item>
63 <item>47 <item>
64 <widget class="QListWidget" name="list_devices">48 <widget class="QListWidget" name="list_devices">
49 <property name="verticalScrollBarPolicy">
50 <enum>Qt::ScrollBarAlwaysOn</enum>
51 </property>
65 <property name="alternatingRowColors">52 <property name="alternatingRowColors">
66 <bool>true</bool>53 <bool>true</bool>
67 </property>54 </property>
@@ -79,46 +66,49 @@
79 </property>66 </property>
80 </widget>67 </widget>
81 </item>68 </item>
82 <item>
83 <layout class="QHBoxLayout" name="horizontalLayout_3">
84 <item>
85 <spacer name="horizontalSpacer_3">
86 <property name="orientation">
87 <enum>Qt::Horizontal</enum>
88 </property>
89 <property name="sizeHint" stdset="0">
90 <size>
91 <width>40</width>
92 <height>20</height>
93 </size>
94 </property>
95 </spacer>
96 </item>
97 <item>
98 <widget class="GoToWebButton" name="manage_devices_button">
99 <property name="text">
100 <string>Go to the web page to manage your other devices</string>
101 </property>
102 </widget>
103 </item>
104 <item>
105 <spacer name="horizontalSpacer_4">
106 <property name="orientation">
107 <enum>Qt::Horizontal</enum>
108 </property>
109 <property name="sizeHint" stdset="0">
110 <size>
111 <width>40</width>
112 <height>20</height>
113 </size>
114 </property>
115 </spacer>
116 </item>
117 </layout>
118 </item>
119 </layout>69 </layout>
120 </widget>70 </widget>
121 </item>71 </item>
72 <item>
73 <layout class="QHBoxLayout" name="horizontalLayout_3">
74 <property name="margin">
75 <number>3</number>
76 </property>
77 <item>
78 <spacer name="horizontalSpacer_3">
79 <property name="orientation">
80 <enum>Qt::Horizontal</enum>
81 </property>
82 <property name="sizeHint" stdset="0">
83 <size>
84 <width>40</width>
85 <height>20</height>
86 </size>
87 </property>
88 </spacer>
89 </item>
90 <item>
91 <widget class="GoToWebButton" name="manage_devices_button">
92 <property name="text">
93 <string>Go to the web page to manage your other devices</string>
94 </property>
95 </widget>
96 </item>
97 <item>
98 <spacer name="horizontalSpacer_4">
99 <property name="orientation">
100 <enum>Qt::Horizontal</enum>
101 </property>
102 <property name="sizeHint" stdset="0">
103 <size>
104 <width>40</width>
105 <height>20</height>
106 </size>
107 </property>
108 </spacer>
109 </item>
110 </layout>
111 </item>
122 </layout>112 </layout>
123 </widget>113 </widget>
124 <customwidgets>114 <customwidgets>
125115
=== modified file 'data/qt/filesyncstatus.ui'
--- data/qt/filesyncstatus.ui 2011-07-22 21:26:48 +0000
+++ data/qt/filesyncstatus.ui 2011-08-12 19:16:23 +0000
@@ -6,52 +6,42 @@
6 <rect>6 <rect>
7 <x>0</x>7 <x>0</x>
8 <y>0</y>8 <y>0</y>
9 <width>310</width>9 <width>94</width>
10 <height>211</height>10 <height>49</height>
11 </rect>11 </rect>
12 </property>12 </property>
13 <property name="windowTitle">13 <property name="windowTitle">
14 <string notr="true">Form</string>14 <string notr="true">Form</string>
15 </property>15 </property>
16 <layout class="QHBoxLayout" name="horizontalLayout_2">16 <layout class="QVBoxLayout" name="verticalLayout">
17 <property name="margin">
18 <number>0</number>
19 </property>
17 <item>20 <item>
18 <layout class="QVBoxLayout" name="verticalLayout">21 <layout class="QHBoxLayout" name="horizontalLayout">
19 <item>22 <item>
20 <layout class="QHBoxLayout" name="horizontalLayout">23 <widget class="QLabel" name="sync_status_icon">
21 <item>24 </widget>
22 <widget class="QLabel" name="sync_status_icon">
23 <property name="text">
24 <string/>
25 </property>
26 </widget>
27 </item>
28 <item>
29 <widget class="QLabel" name="sync_status_label">
30 <property name="text">
31 <string notr="true"/>
32 </property>
33 <property name="wordWrap">
34 <bool>true</bool>
35 </property>
36 <property name="buddy">
37 <cstring>sync_status_button</cstring>
38 </property>
39 </widget>
40 </item>
41 </layout>
42 </item>25 </item>
43 <item>26 <item>
44 <widget class="QPushButton" name="sync_status_button">27 <widget class="QLabel" name="sync_status_label">
45 <property name="toolTip">
46 <string>test</string>
47 </property>
48 <property name="text">28 <property name="text">
49 <string notr="true"/>29 <string notr="true"/>
50 </property>30 </property>
31 <property name="wordWrap">
32 <bool>true</bool>
33 </property>
34 <property name="buddy">
35 <cstring>sync_status_button</cstring>
36 </property>
51 </widget>37 </widget>
52 </item>38 </item>
53 </layout>39 </layout>
54 </item>40 </item>
41 <item>
42 <widget class="QPushButton" name="sync_status_button">
43 </widget>
44 </item>
55 </layout>45 </layout>
56 </widget>46 </widget>
57 <resources/>47 <resources/>
5848
=== modified file 'data/qt/folders.ui'
--- data/qt/folders.ui 2011-07-22 21:26:48 +0000
+++ data/qt/folders.ui 2011-08-12 19:16:23 +0000
@@ -6,33 +6,86 @@
6 <rect>6 <rect>
7 <x>0</x>7 <x>0</x>
8 <y>0</y>8 <y>0</y>
9 <width>607</width>9 <width>345</width>
10 <height>435</height>10 <height>279</height>
11 </rect>11 </rect>
12 </property>12 </property>
13 <property name="windowTitle">13 <property name="windowTitle">
14 <string notr="true">Form</string>14 <string notr="true">Form</string>
15 </property>15 </property>
16 <property name="styleSheet">16 <property name="styleSheet">
17 <string notr="true"/>17 <string notr="true">padding: 0px;</string>
18 </property>18 </property>
19 <layout class="QVBoxLayout" name="verticalLayout">19 <layout class="QVBoxLayout" name="verticalLayout">
20 <property name="spacing">
21 <number>0</number>
22 </property>
23 <property name="margin">
24 <number>0</number>
25 </property>
26 <item>
27 <widget class="QFrame" name="frame_top">
28 <property name="minimumSize">
29 <size>
30 <width>0</width>
31 <height>35</height>
32 </size>
33 </property>
34 <layout class="QHBoxLayout" name="horizontalLayout_2">
35 <property name="margin">
36 <number>3</number>
37 </property>
38 <item>
39 <widget class="GoToWebButton" name="share_publish_button">
40 <property name="sizePolicy">
41 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
42 <horstretch>0</horstretch>
43 <verstretch>0</verstretch>
44 </sizepolicy>
45 </property>
46 <property name="text">
47 <string>Go to the web for public and private sharing options</string>
48 </property>
49 </widget>
50 </item>
51 <item>
52 <spacer name="horizontalSpacer">
53 <property name="orientation">
54 <enum>Qt::Horizontal</enum>
55 </property>
56 <property name="sizeHint" stdset="0">
57 <size>
58 <width>40</width>
59 <height>20</height>
60 </size>
61 </property>
62 </spacer>
63 </item>
64 </layout>
65 </widget>
66 </item>
20 <item>67 <item>
21 <widget class="QTreeWidget" name="folders">68 <widget class="QTreeWidget" name="folders">
69 <property name="verticalScrollBarPolicy">
70 <enum>Qt::ScrollBarAlwaysOn</enum>
71 </property>
22 <property name="alternatingRowColors">72 <property name="alternatingRowColors">
23 <bool>true</bool>73 <bool>true</bool>
24 </property>74 </property>
25 <property name="uniformRowHeights">75 <property name="indentation">
76 <number>15</number>
77 </property>
78 <property name="rootIsDecorated">
26 <bool>false</bool>79 <bool>false</bool>
27 </property>80 </property>
28 <property name="itemsExpandable">81 <property name="itemsExpandable">
29 <bool>true</bool>82 <bool>true</bool>
30 </property>83 </property>
31 <property name="headerHidden">84 <property name="headerHidden">
32 <bool>false</bool>85 <bool>true</bool>
33 </property>86 </property>
34 <attribute name="headerVisible">87 <attribute name="headerVisible">
35 <bool>true</bool>88 <bool>false</bool>
36 </attribute>89 </attribute>
37 <attribute name="headerCascadingSectionResizes">90 <attribute name="headerCascadingSectionResizes">
38 <bool>false</bool>91 <bool>false</bool>
@@ -61,41 +114,64 @@
61 </column>114 </column>
62 <column>115 <column>
63 <property name="text">116 <property name="text">
64 <string> </string>117 <string>Explore</string>
65 </property>118 </property>
66 </column>119 </column>
67 </widget>120 </widget>
68 </item>121 </item>
69 <item>122 <item>
70 <layout class="QHBoxLayout" name="horizontalLayout_3">123 <widget class="QFrame" name="frame_bottom">
71 <item>124 <property name="minimumSize">
72 <widget class="GoToWebButton" name="share_publish_button">125 <size>
73 <property name="text">126 <width>0</width>
74 <string>Go to the web to share folders and publish files</string>127 <height>40</height>
75 </property>128 </size>
76 </widget>129 </property>
77 </item>130 <layout class="QHBoxLayout" name="horizontalLayout">
78 <item>131 <property name="margin">
79 <spacer name="horizontalSpacer_3">132 <number>3</number>
80 <property name="orientation">133 </property>
81 <enum>Qt::Horizontal</enum>134 <item>
82 </property>135 <spacer name="horizontalSpacer_3">
83 <property name="sizeHint" stdset="0">136 <property name="orientation">
84 <size>137 <enum>Qt::Horizontal</enum>
85 <width>40</width>138 </property>
86 <height>20</height>139 <property name="sizeHint" stdset="0">
87 </size>140 <size>
88 </property>141 <width>53</width>
89 </spacer>142 <height>20</height>
90 </item>143 </size>
91 <item>144 </property>
92 <widget class="AddFolderButton" name="add_folder_button">145 </spacer>
93 <property name="text">146 </item>
94 <string>Sync another folder with your cloud</string>147 <item>
95 </property>148 <widget class="AddFolderButton" name="add_folder_button">
96 </widget>149 <property name="sizePolicy">
97 </item>150 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
98 </layout>151 <horstretch>0</horstretch>
152 <verstretch>0</verstretch>
153 </sizepolicy>
154 </property>
155 <property name="text">
156 <string>Add a folder from this computer</string>
157 </property>
158 </widget>
159 </item>
160 <item>
161 <spacer name="horizontalSpacer_2">
162 <property name="orientation">
163 <enum>Qt::Horizontal</enum>
164 </property>
165 <property name="sizeHint" stdset="0">
166 <size>
167 <width>40</width>
168 <height>20</height>
169 </size>
170 </property>
171 </spacer>
172 </item>
173 </layout>
174 </widget>
99 </item>175 </item>
100 </layout>176 </layout>
101 </widget>177 </widget>
102178
=== modified file 'data/qt/loadingoverlay.ui'
--- data/qt/loadingoverlay.ui 2011-07-22 21:26:48 +0000
+++ data/qt/loadingoverlay.ui 2011-08-12 19:16:23 +0000
@@ -1,118 +1,103 @@
1<?xml version="1.0" encoding="UTF-8"?>1<?xml version="1.0" encoding="UTF-8"?>
2<ui version="4.0">2<ui version="4.0">
3 <class>Form</class>3 <class>Form</class>
4 <widget class="QFrame" name="Form">4 <widget class="QFrame" name="Form">
5 <property name="geometry">5 <property name="geometry">
6 <rect>6 <rect>
7 <x>0</x>7 <x>0</x>
8 <y>0</y>8 <y>0</y>
9 <width>702</width>9 <width>702</width>
10 <height>230</height>10 <height>230</height>
11 </rect>11 </rect>
12 </property>12 </property>
13 <property name="windowTitle">13 <property name="windowTitle">
14 <string>Frame</string>14 <string>Frame</string>
15 </property>15 </property>
16 <property name="frameShape">16 <layout class="QVBoxLayout" name="verticalLayout">
17 <enum>QFrame::StyledPanel</enum>17 <property name="topMargin">
18 </property>18 <number>30</number>
19 <property name="frameShadow">19 </property>
20 <enum>QFrame::Raised</enum>20 <item>
21 </property>21 <layout class="QHBoxLayout" name="horizontalLayout_2">
22 <layout class="QVBoxLayout" name="verticalLayout">22 <item>
23 <property name="topMargin">23 <spacer name="horizontalSpacer_2">
24 <number>30</number>24 <property name="orientation">
25 </property>25 <enum>Qt::Horizontal</enum>
26 <item>26 </property>
27 <layout class="QHBoxLayout" name="horizontalLayout_2">27 <property name="sizeHint" stdset="0">
28 <item>28 <size>
29 <spacer name="horizontalSpacer_2">29 <width>40</width>
30 <property name="orientation">30 <height>20</height>
31 <enum>Qt::Horizontal</enum>31 </size>
32 </property>32 </property>
33 <property name="sizeHint" stdset="0">33 </spacer>
34 <size>34 </item>
35 <width>40</width>35 <item>
36 <height>20</height>36 <widget class="QFrame" name="frm_box">
37 </size>37 <property name="minimumSize">
38 </property>38 <size>
39 </spacer>39 <width>0</width>
40 </item>40 <height>102</height>
41 <item>41 </size>
42 <widget class="QFrame" name="frm_box">42 </property>
43 <property name="minimumSize">43 <layout class="QHBoxLayout" name="horizontalLayout">
44 <size>44 <property name="topMargin">
45 <width>0</width>45 <number>0</number>
46 <height>102</height>46 </property>
47 </size>47 <property name="bottomMargin">
48 </property>48 <number>30</number>
49 <property name="styleSheet">49 </property>
50 <string notr="true"/>50 <item>
51 </property>51 <widget class="QLabel" name="label">
52 <property name="frameShape">52 <property name="sizePolicy">
53 <enum>QFrame::StyledPanel</enum>53 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
54 </property>54 <horstretch>0</horstretch>
55 <property name="frameShadow">55 <verstretch>0</verstretch>
56 <enum>QFrame::Raised</enum>56 </sizepolicy>
57 </property>57 </property>
58 <layout class="QHBoxLayout" name="horizontalLayout">58 <property name="font">
59 <property name="topMargin">59 <font>
60 <number>0</number>60 <pointsize>14</pointsize>
61 </property>61 </font>
62 <property name="bottomMargin">62 </property>
63 <number>30</number>63 <property name="text">
64 </property>64 <string>Getting information, please wait...</string>
65 <item>65 </property>
66 <widget class="QLabel" name="label">66 </widget>
67 <property name="sizePolicy">67 </item>
68 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">68 </layout>
69 <horstretch>0</horstretch>69 </widget>
70 <verstretch>0</verstretch>70 </item>
71 </sizepolicy>71 <item>
72 </property>72 <spacer name="horizontalSpacer">
73 <property name="font">73 <property name="orientation">
74 <font>74 <enum>Qt::Horizontal</enum>
75 <pointsize>14</pointsize>75 </property>
76 </font>76 <property name="sizeHint" stdset="0">
77 </property>77 <size>
78 <property name="text">78 <width>40</width>
79 <string>Please wait while we retrieve the information...</string>79 <height>20</height>
80 </property>80 </size>
81 </widget>81 </property>
82 </item>82 </spacer>
83 </layout>83 </item>
84 </widget>84 </layout>
85 </item>85 </item>
86 <item>86 <item>
87 <spacer name="horizontalSpacer">87 <spacer name="verticalSpacer">
88 <property name="orientation">88 <property name="orientation">
89 <enum>Qt::Horizontal</enum>89 <enum>Qt::Vertical</enum>
90 </property>90 </property>
91 <property name="sizeHint" stdset="0">91 <property name="sizeHint" stdset="0">
92 <size>92 <size>
93 <width>40</width>93 <width>20</width>
94 <height>20</height>94 <height>20</height>
95 </size>95 </size>
96 </property>96 </property>
97 </spacer>97 </spacer>
98 </item>98 </item>
99 </layout>99 </layout>
100 </item>100 </widget>
101 <item>101 <resources/>
102 <spacer name="verticalSpacer">102 <connections/>
103 <property name="orientation">103</ui>
104 <enum>Qt::Vertical</enum>
105 </property>
106 <property name="sizeHint" stdset="0">
107 <size>
108 <width>20</width>
109 <height>20</height>
110 </size>
111 </property>
112 </spacer>
113 </item>
114 </layout>
115 </widget>
116 <resources/>
117 <connections/>
118</ui>
119104
=== modified file 'data/qt/preferences.ui'
--- data/qt/preferences.ui 2011-07-22 21:26:48 +0000
+++ data/qt/preferences.ui 2011-08-12 19:16:23 +0000
@@ -6,8 +6,8 @@
6 <rect>6 <rect>
7 <x>0</x>7 <x>0</x>
8 <y>0</y>8 <y>0</y>
9 <width>469</width>9 <width>433</width>
10 <height>352</height>10 <height>328</height>
11 </rect>11 </rect>
12 </property>12 </property>
13 <property name="windowTitle">13 <property name="windowTitle">
@@ -21,13 +21,13 @@
21 <number>0</number>21 <number>0</number>
22 </property>22 </property>
23 <item>23 <item>
24 <widget class="QGroupBox" name="verticalGroupBox">24 <widget class="QGroupBox" name="bandwidth_settings">
25 <property name="title">25 <property name="title">
26 <string>Bandwidth settings</string>26 <string>Bandwidth settings</string>
27 </property>27 </property>
28 <layout class="QGridLayout" name="gridLayout">28 <layout class="QGridLayout" name="gridLayout">
29 <property name="verticalSpacing">29 <property name="margin">
30 <number>10</number>30 <number>0</number>
31 </property>31 </property>
32 <item row="0" column="0">32 <item row="0" column="0">
33 <widget class="QCheckBox" name="limit_uploads_checkbox">33 <widget class="QCheckBox" name="limit_uploads_checkbox">
@@ -120,13 +120,13 @@
120 </widget>120 </widget>
121 </item>121 </item>
122 <item>122 <item>
123 <widget class="QGroupBox" name="groupBox_2">123 <widget class="QGroupBox" name="file_sync_settings">
124 <property name="title">124 <property name="title">
125 <string>File Sync Settings</string>125 <string>File Sync Settings</string>
126 </property>126 </property>
127 <layout class="QVBoxLayout" name="verticalLayout_1">127 <layout class="QVBoxLayout" name="verticalLayout_1">
128 <property name="spacing">128 <property name="margin">
129 <number>10</number>129 <number>0</number>
130 </property>130 </property>
131 <item>131 <item>
132 <widget class="QCheckBox" name="autoconnect_checkbox">132 <widget class="QCheckBox" name="autoconnect_checkbox">
@@ -160,7 +160,23 @@
160 </widget>160 </widget>
161 </item>161 </item>
162 <item>162 <item>
163 <spacer name="verticalSpacer">
164 <property name="orientation">
165 <enum>Qt::Vertical</enum>
166 </property>
167 <property name="sizeHint" stdset="0">
168 <size>
169 <width>20</width>
170 <height>40</height>
171 </size>
172 </property>
173 </spacer>
174 </item>
175 <item>
163 <layout class="QHBoxLayout" name="horizontalLayout">176 <layout class="QHBoxLayout" name="horizontalLayout">
177 <property name="margin">
178 <number>3</number>
179 </property>
164 <item>180 <item>
165 <spacer name="horizontalSpacer">181 <spacer name="horizontalSpacer">
166 <property name="orientation">182 <property name="orientation">
@@ -190,19 +206,6 @@
190 </item>206 </item>
191 </layout>207 </layout>
192 </item>208 </item>
193 <item>
194 <spacer name="verticalSpacer">
195 <property name="orientation">
196 <enum>Qt::Vertical</enum>
197 </property>
198 <property name="sizeHint" stdset="0">
199 <size>
200 <width>20</width>
201 <height>40</height>
202 </size>
203 </property>
204 </spacer>
205 </item>
206 </layout>209 </layout>
207 </widget>210 </widget>
208 <resources/>211 <resources/>
209212
=== modified file 'data/qt/ubuntuone.qss'
--- data/qt/ubuntuone.qss 2011-07-22 21:26:48 +0000
+++ data/qt/ubuntuone.qss 2011-08-12 19:16:23 +0000
@@ -2,19 +2,49 @@
2 background-color: #dd4814;2 background-color: #dd4814;
3}3}
44
5QFrame#frmHeader {5QWidget {
6 font-family: "Ubuntu";
7}
8
9QFrame {
10 border: none;
11}
12
13QFrame#frame_header {
6 background: #ffffff;14 background: #ffffff;
7 border-radius: 5px;15 border-radius: 5px;
8 border-style: solid;16 border-style: solid;
9 border-color: #939389;17 border-color: #939389;
10 border-width: 1px;18 border-width: 1px;
11 color: white;19 min-height: 90px;
12 min-height: 100px;20}
21
22QFrame#frame_greeting {
23 margin 0px;
24 padding-left: 15px;
25 padding-top: 10px;
26 padding-right: 10px;
27 padding-bottom: 10px;
28}
29
30QFrame#frame_status,
31QFrame#frame_storage {
32 border-style: dotted;
33 border-color: #939389;
34 border-left-width: 1px;
35 padding: 10px;
36 min-width: 40px;
37}
38
39QFrame#account_separator {
40 border-style: dotted;
41 border-color: #939389;
42 border-bottom-width: 1px;
13}43}
1444
15QPushButton[enabled="true"] {45QPushButton[enabled="true"] {
16 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,46 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
17 stop: 0 #fecfc2,stop: 1.0 #e44e19);47 stop: 0 #fecfc2, stop: 1.0 #e44e19);
18 border-radius: 5px;48 border-radius: 5px;
19 border-style: solid;49 border-style: solid;
20 padding: 6px;50 padding: 6px;
@@ -60,6 +90,32 @@
60 height: 12px;90 height: 12px;
61}91}
6292
93QPushButton#help_button {
94 background: transparent;
95 border: none;
96 color: white;
97 height: 20px;
98 text-decoration: underline;
99 padding: 0px;
100}
101
102QPushButton#explore_folder_button {
103 border: none;
104 background: none;
105 color: #595959;
106}
107
108QPushButton#add_folder_button {
109 padding: 5px;
110}
111
112GoToWebButton#share_publish_button {
113 background: transparent;
114 border: none;
115 color: #dd4814;
116 text-decoration: underline;
117}
118
63QTabBar::tab {119QTabBar::tab {
64 height: 15px;120 height: 15px;
65 color: #333333;121 color: #333333;
@@ -101,6 +157,13 @@
101 border-left-color: #e4e0dd;157 border-left-color: #e4e0dd;
102}158}
103159
160QTabBar::tab:hover {
161 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
162 stop: 0 #fafafa, stop: 0.4 #f4f4f4,
163 stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);
164 text-decoration: underline;
165}
166
104QTabBar::tab:last:!selected {167QTabBar::tab:last:!selected {
105 border-left-color: #e4e0dd;168 border-left-color: #e4e0dd;
106}169}
@@ -121,37 +184,22 @@
121 border-width: 1px;184 border-width: 1px;
122 background: white;185 background: white;
123 border-top: 2px solid white;186 border-top: 2px solid white;
124 }
125
126QTabBar::tab:hover {
127 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
128 stop: 0 #fafafa, stop: 0.4 #f4f4f4,
129 stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);
130 }
131
132QPushButton#help_button {
133 background: transparent;
134 border: none;
135 color: white;
136 height: 20px;
137 text-decoration: underline;
138 padding: 0px;
139}
140
141QPushButton#explore_folder_button {
142 border: none;
143 background: none;
144}187}
145188
146QGroupBox {189QGroupBox {
147 padding-top: 30px;190 padding-top: 30px;
148 border: 0px solid;191 border: none;
149 margin-top: 1ex;192 margin-top: 1ex;
193}
194
195QGroupBox::title {
196 color: #333333;
150 font: bold 15px;197 font: bold 15px;
151}198}
152199
153QGroupBox::title {200QGroupBox#profile,
154 color: #333333;201QGroupBox#services {
202 padding-left: 5px;
155}203}
156204
157QListWidget {205QListWidget {
@@ -159,12 +207,11 @@
159 alternate-background-color: #efedec;207 alternate-background-color: #efedec;
160}208}
161209
162QListWidget#listDevices::item {210QListWidget#list_devices::item {
163 min-height: 48px;211 min-height: 48px;
164}212}
165213
166QLabel#other_devices_label,214QLabel#other_devices_label {
167QLabel#title_label {
168 font: bold 16px;215 font: bold 16px;
169}216}
170217
@@ -176,7 +223,7 @@
176 color: white;223 color: white;
177}224}
178225
179QFrame#frm_box {226QFrame#frm_box { /* the loadingoverlay frame */
180 background: #ffffff;227 background: #ffffff;
181 border-radius: 5px;228 border-radius: 5px;
182 border-style: solid;229 border-style: solid;
@@ -186,6 +233,10 @@
186 min-height: 100px;233 min-height: 100px;
187}234}
188235
189QWidget {236QAbstractItemView {
190 font-family: "Ubuntu";237 border-style: solid;
238 border-color: #333333;
239 border-width: 1px;
240 alternate-background-color: #efedec;
241 background: #f7f6f5;
191}242}
192243
=== modified file 'debian/changelog'
--- debian/changelog 2011-07-26 17:11:27 +0000
+++ debian/changelog 2011-08-12 19:16:23 +0000
@@ -1,3 +1,10 @@
1ubuntuone-control-panel (1.1.2-0ubuntu1) oneiric; urgency=low
2
3 * New upstream release.
4 - ImportError: cannot import name LOGFOLDER (LP: #823648)
5
6 -- Rodney Dawes <rodney.dawes@ubuntu.com> Fri, 12 Aug 2011 15:12:09 -0400
7
1ubuntuone-control-panel (1.1.1-0ubuntu2) oneiric; urgency=low8ubuntuone-control-panel (1.1.1-0ubuntu2) oneiric; urgency=low
29
3 * Add pyqt4-dev-tools and python-qt4 to Build-Depends to fix FTBFS10 * Add pyqt4-dev-tools and python-qt4 to Build-Depends to fix FTBFS
411
=== modified file 'debian/control'
--- debian/control 2011-07-26 17:11:27 +0000
+++ debian/control 2011-08-12 19:16:23 +0000
@@ -17,7 +17,7 @@
17 ${python:Depends},17 ${python:Depends},
18 python,18 python,
19 python-ubuntuone-control-panel (= ${binary:Version}),19 python-ubuntuone-control-panel (= ${binary:Version}),
20 ubuntuone-client (>= 1.6.0),20 ubuntuone-client (>= 1.7.1),
21Recommends: ubuntuone-control-panel-gui21Recommends: ubuntuone-control-panel-gui
22Description: Ubuntu One Control Panel22Description: Ubuntu One Control Panel
23 Desktop application to manage a Ubuntu One account.23 Desktop application to manage a Ubuntu One account.
@@ -37,7 +37,7 @@
37 python-simplejson,37 python-simplejson,
38 python-twisted-core,38 python-twisted-core,
39 python-twisted-web,39 python-twisted-web,
40 python-ubuntuone-client (>= 1.6.0),40 python-ubuntuone-client (>= 1.7.1),
41 ubuntu-sso-client (>= 1.2.0),41 ubuntu-sso-client (>= 1.2.0),
42Description: Ubuntu One Control Panel Python Libraries42Description: Ubuntu One Control Panel Python Libraries
43 Ubuntu One Control Panel provides a Python library to manage an Ubuntu One43 Ubuntu One Control Panel provides a Python library to manage an Ubuntu One
@@ -55,9 +55,9 @@
55 python-defer | python-aptdaemon,55 python-defer | python-aptdaemon,
56 python-gobject (>= 2.21.5),56 python-gobject (>= 2.21.5),
57 python-gtk2,57 python-gtk2,
58 python-ubuntuone-client (>= 1.6.0),58 python-ubuntuone-client (>= 1.7.1),
59 ubuntu-sso-client (>= 1.2.0),59 ubuntu-sso-client (>= 1.2.0),
60 ubuntuone-client (>= 1.6.0),60 ubuntuone-client (>= 1.7.1),
61 ubuntuone-control-panel (= ${binary:Version}),61 ubuntuone-control-panel (= ${binary:Version}),
62Provides: ubuntuone-control-panel-gui62Provides: ubuntuone-control-panel-gui
63Description: Ubuntu One Control Panel63Description: Ubuntu One Control Panel
6464
=== added file 'po/ubuntuone-control-panel.pot'
--- po/ubuntuone-control-panel.pot 1970-01-01 00:00:00 +0000
+++ po/ubuntuone-control-panel.pot 2011-08-12 19:16:23 +0000
@@ -0,0 +1,486 @@
1# SOME DESCRIPTIVE TITLE.
2# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3# This file is distributed under the same license as the PACKAGE package.
4# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5#
6#, fuzzy
7msgid ""
8msgstr ""
9"Project-Id-Version: PACKAGE VERSION\n"
10"Report-Msgid-Bugs-To: \n"
11"POT-Creation-Date: 2011-08-12 15:07-0400\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
15"Language: \n"
16"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=CHARSET\n"
18"Content-Transfer-Encoding: 8bit\n"
19
20#: ../ubuntuone-control-panel-gtk.desktop.in.h:1
21msgid "Configure and manage your Ubuntu One account"
22msgstr ""
23
24#: ../ubuntuone/controlpanel/gui/__init__.py:72
25msgid "Always in sync"
26msgstr ""
27
28#: ../ubuntuone/controlpanel/gui/__init__.py:73
29msgid "Firefox extension"
30msgstr ""
31
32#: ../ubuntuone/controlpanel/gui/__init__.py:74
33msgid "Connect to Ubuntu One"
34msgstr ""
35
36#: ../ubuntuone/controlpanel/gui/__init__.py:75
37msgid "Evolution plug-in"
38msgstr ""
39
40#: ../ubuntuone/controlpanel/gui/__init__.py:76
41msgid "There was a problem while retrieving the credentials."
42msgstr ""
43
44#: ../ubuntuone/controlpanel/gui/__init__.py:77
45msgid "View your personal details and service summary"
46msgstr ""
47
48#: ../ubuntuone/controlpanel/gui/__init__.py:79
49msgid "Welcome to Ubuntu One!"
50msgstr ""
51
52#: ../ubuntuone/controlpanel/gui/__init__.py:80
53msgid ""
54"The information could not be retrieved. Maybe your internet connection is "
55"down?"
56msgstr ""
57
58#: ../ubuntuone/controlpanel/gui/__init__.py:83
59#: ../ubuntuone/controlpanel/gui/__init__.py:156
60msgid ""
61"The settings could not be changed,\n"
62"previous values were restored."
63msgstr ""
64
65#: ../ubuntuone/controlpanel/gui/__init__.py:85
66msgid "Are you sure you want to remove this device from Ubuntu One?"
67msgstr ""
68
69#: ../ubuntuone/controlpanel/gui/__init__.py:88
70msgid "The device could not be removed."
71msgstr ""
72
73#: ../ubuntuone/controlpanel/gui/__init__.py:89
74msgid "Manage devices registered with your personal cloud"
75msgstr ""
76
77#: ../ubuntuone/controlpanel/gui/__init__.py:91
78msgid "The devices connected with your personal cloud are listed below."
79msgstr ""
80
81#: ../ubuntuone/controlpanel/gui/__init__.py:93
82msgid "Explore"
83msgstr ""
84
85#: ../ubuntuone/controlpanel/gui/__init__.py:94
86#, python-format
87msgid "<i>%(package_name)s</i> could not be installed"
88msgstr ""
89
90#: ../ubuntuone/controlpanel/gui/__init__.py:95
91msgid "Sync another folder with your cloud"
92msgstr ""
93
94#: ../ubuntuone/controlpanel/gui/__init__.py:96
95#, python-format
96msgid ""
97"The chosen directory \"%(folder_path)s\" is not valid. \n"
98"\n"
99"Please choose a folder inside your \"%(home_folder)s\" directory, and not "
100"overlapping with any existing cloud folder."
101msgstr ""
102
103#: ../ubuntuone/controlpanel/gui/__init__.py:101
104msgid "My personal folders"
105msgstr ""
106
107#: ../ubuntuone/controlpanel/gui/__init__.py:102
108#, python-format
109msgid "Shared by %(other_user_display_name)s"
110msgstr ""
111
112#: ../ubuntuone/controlpanel/gui/__init__.py:103
113#, python-format
114msgid ""
115"The contents of your cloud folder will be merged with your local folder "
116"\"%(folder_path)s\" when subscribing.\n"
117"Do you want to subscribe to this cloud folder?"
118msgstr ""
119
120#: ../ubuntuone/controlpanel/gui/__init__.py:107
121msgid "Manage your cloud folders"
122msgstr ""
123
124#: ../ubuntuone/controlpanel/gui/__init__.py:109
125msgid ""
126"Select which folders from your cloud you want to sync with this computer"
127msgstr ""
128
129#: ../ubuntuone/controlpanel/gui/__init__.py:111
130msgid "Connect"
131msgstr ""
132
133#: ../ubuntuone/controlpanel/gui/__init__.py:112
134msgid "Connect the file sync service with your personal cloud"
135msgstr ""
136
137#: ../ubuntuone/controlpanel/gui/__init__.py:114
138msgid "File Sync is disabled."
139msgstr ""
140
141#: ../ubuntuone/controlpanel/gui/__init__.py:115
142msgid "Disconnect"
143msgstr ""
144
145#: ../ubuntuone/controlpanel/gui/__init__.py:116
146msgid "Disconnect the file sync service from your personal cloud"
147msgstr ""
148
149#: ../ubuntuone/controlpanel/gui/__init__.py:118
150msgid "File Sync is disconnected."
151msgstr ""
152
153#: ../ubuntuone/controlpanel/gui/__init__.py:119
154msgid "Enable"
155msgstr ""
156
157#: ../ubuntuone/controlpanel/gui/__init__.py:120
158msgid "Enable the file sync service"
159msgstr ""
160
161#: ../ubuntuone/controlpanel/gui/__init__.py:121
162msgid "File Sync error."
163msgstr ""
164
165#: ../ubuntuone/controlpanel/gui/__init__.py:122
166msgid "File Sync is up-to-date."
167msgstr ""
168
169#: ../ubuntuone/controlpanel/gui/__init__.py:123
170msgid "Restart"
171msgstr ""
172
173#: ../ubuntuone/controlpanel/gui/__init__.py:124
174msgid "Restart the file sync service"
175msgstr ""
176
177#: ../ubuntuone/controlpanel/gui/__init__.py:125
178msgid "File Sync"
179msgstr ""
180
181#: ../ubuntuone/controlpanel/gui/__init__.py:126
182msgid "Start"
183msgstr ""
184
185#: ../ubuntuone/controlpanel/gui/__init__.py:127
186msgid "Start the file sync service"
187msgstr ""
188
189#: ../ubuntuone/controlpanel/gui/__init__.py:128
190msgid "File Sync starting..."
191msgstr ""
192
193#: ../ubuntuone/controlpanel/gui/__init__.py:129
194msgid "Stop"
195msgstr ""
196
197#: ../ubuntuone/controlpanel/gui/__init__.py:130
198msgid "Stop the file sync service"
199msgstr ""
200
201#: ../ubuntuone/controlpanel/gui/__init__.py:131
202msgid "File Sync is stopped."
203msgstr ""
204
205#: ../ubuntuone/controlpanel/gui/__init__.py:132
206msgid "File Sync in progress..."
207msgstr ""
208
209#: ../ubuntuone/controlpanel/gui/__init__.py:133
210#, python-format
211msgid "%(free_space)s available storage"
212msgstr ""
213
214#: ../ubuntuone/controlpanel/gui/__init__.py:134
215#, python-format
216msgid "Hi %(user_display_name)s"
217msgstr ""
218
219#: ../ubuntuone/controlpanel/gui/__init__.py:135
220#, python-format
221msgid ""
222"You need to install the package <i>%(package_name)s</i> in order to enable "
223"more sync services."
224msgstr ""
225
226#: ../ubuntuone/controlpanel/gui/__init__.py:137
227#, python-format
228msgid "Install the %(plugin_name)s for the sync service: %(service_name)s"
229msgstr ""
230
231#: ../ubuntuone/controlpanel/gui/__init__.py:139
232#, python-format
233msgid "Installation of <i>%(package_name)s</i> in progress"
234msgstr ""
235
236#: ../ubuntuone/controlpanel/gui/__init__.py:140
237msgid "Loading..."
238msgstr ""
239
240#: ../ubuntuone/controlpanel/gui/__init__.py:141
241#, python-format
242msgid "%(app_name)s Control Panel"
243msgstr ""
244
245#: ../ubuntuone/controlpanel/gui/__init__.py:142
246msgid "My folders"
247msgstr ""
248
249#: ../ubuntuone/controlpanel/gui/__init__.py:143
250msgid "[unknown user name]"
251msgstr ""
252
253#: ../ubuntuone/controlpanel/gui/__init__.py:144
254msgid "Purchased Music"
255msgstr ""
256
257#: ../ubuntuone/controlpanel/gui/__init__.py:146
258#, python-format
259msgid "An internet connection is required to join or sign in to %(app_name)s."
260msgstr ""
261
262#: ../ubuntuone/controlpanel/gui/__init__.py:148
263msgid "No devices to show."
264msgstr ""
265
266#: ../ubuntuone/controlpanel/gui/__init__.py:149
267msgid "No folders to show."
268msgstr ""
269
270#: ../ubuntuone/controlpanel/gui/__init__.py:150
271msgid "There is no Ubuntu One pairing record."
272msgstr ""
273
274#: ../ubuntuone/controlpanel/gui/__init__.py:151
275#, python-format
276msgid "%(percentage)s used"
277msgstr ""
278
279#: ../ubuntuone/controlpanel/gui/__init__.py:152
280#, python-format
281msgid "Using %(used)s of %(total)s (%(percentage).0f%%)"
282msgstr ""
283
284#: ../ubuntuone/controlpanel/gui/__init__.py:153
285#, python-format
286msgid "%(used)s of %(total)s"
287msgstr ""
288
289#: ../ubuntuone/controlpanel/gui/__init__.py:154
290msgid "Manage the sync services"
291msgstr ""
292
293#: ../ubuntuone/controlpanel/gui/__init__.py:155
294msgid "Enable the sync services for this computer."
295msgstr ""
296
297#: ../ubuntuone/controlpanel/gui/__init__.py:158
298msgid "Manage the shares offered to others"
299msgstr ""
300
301#: ../ubuntuone/controlpanel/gui/__init__.py:159
302msgid "Manage permissions for shares made to other users."
303msgstr ""
304
305#: ../ubuntuone/controlpanel/gui/__init__.py:160
306#, python-format
307msgid "<i>%(package_name)s</i> was successfully installed"
308msgstr ""
309
310#: ../ubuntuone/controlpanel/gui/__init__.py:161 ../data/gtk/volumes.ui.h:1
311msgid "Sync locally?"
312msgstr ""
313
314#: ../ubuntuone/controlpanel/gui/__init__.py:162
315msgid "Value could not be retrieved."
316msgstr ""
317
318#: ../ubuntuone/controlpanel/gui/__init__.py:163
319msgid "Unknown error"
320msgstr ""
321
322#: ../data/gtk/dashboard.ui.h:1
323msgid "<b>Personal details</b>"
324msgstr ""
325
326#: ../data/gtk/dashboard.ui.h:2
327msgid "<b>Your services</b>"
328msgstr ""
329
330#: ../data/gtk/dashboard.ui.h:3
331msgid "Buy storage and plans"
332msgstr ""
333
334#: ../data/gtk/dashboard.ui.h:4
335msgid "Edit account details"
336msgstr ""
337
338#: ../data/gtk/device.ui.h:1
339msgid "KiB/s"
340msgstr ""
341
342#: ../data/gtk/device.ui.h:2
343msgid "Limit file sync bandwidth usage"
344msgstr ""
345
346#: ../data/gtk/device.ui.h:3
347msgid "Max download speed:"
348msgstr ""
349
350#: ../data/gtk/device.ui.h:4
351msgid "Max upload speed:"
352msgstr ""
353
354#: ../data/gtk/device.ui.h:5
355msgid "Show activity notifications"
356msgstr ""
357
358#: ../data/gtk/install.ui.h:1
359msgid "_Install now"
360msgstr ""
361
362#: ../data/gtk/management.ui.h:1
363msgid "Account"
364msgstr ""
365
366#: ../data/gtk/management.ui.h:2
367msgid "Cloud Folders"
368msgstr ""
369
370#: ../data/gtk/management.ui.h:3
371msgid "Community Support"
372msgstr ""
373
374#: ../data/gtk/management.ui.h:4
375msgid "Devices"
376msgstr ""
377
378#: ../data/gtk/management.ui.h:5
379msgid "Official Support"
380msgstr ""
381
382#: ../data/gtk/management.ui.h:6
383msgid "Services"
384msgstr ""
385
386#: ../data/gtk/management.ui.h:7
387msgid "Shares"
388msgstr ""
389
390#: ../data/gtk/management.ui.h:8
391msgid "Talk to us on:"
392msgstr ""
393
394#: ../data/gtk/management.ui.h:9
395msgid "http://twitter.com/ubuntuone"
396msgstr ""
397
398#: ../data/gtk/management.ui.h:10
399msgid "http://www.facebook.com/ubuntuone"
400msgstr ""
401
402#: ../data/gtk/overview.ui.h:1
403msgid ""
404"<span font=\"24\" foreground=\"#4d4d4d\">The Power of Your Personal Cloud</"
405"span>"
406msgstr ""
407
408#: ../data/gtk/overview.ui.h:2
409msgid "<span font_size=\"xx-large\" foreground=\"#4d4d4d\">Join now</span>"
410msgstr ""
411
412#: ../data/gtk/overview.ui.h:3
413msgid "<span foreground=\"#909090\">2GB of free storage</span>"
414msgstr ""
415
416#: ../data/gtk/overview.ui.h:4
417msgid "<span foreground=\"#909090\">Learn More</span>"
418msgstr ""
419
420#: ../data/gtk/overview.ui.h:5
421msgid ""
422"Files Anywhere\n"
423"<span foreground=\"#909090\">Back up and access your files from Ubuntu, "
424"Windows, Web or Mobile</span>"
425msgstr ""
426
427#: ../data/gtk/overview.ui.h:7
428msgid "I already have an account!"
429msgstr ""
430
431#: ../data/gtk/overview.ui.h:8
432msgid ""
433"Keep Connected\n"
434"<span foreground=\"#909090\">Unify your contacts across Desktop, Mobile and "
435"Web</span>"
436msgstr ""
437
438#: ../data/gtk/overview.ui.h:10
439msgid ""
440"Rock Out\n"
441"<span foreground=\"#909090\">Your entire collection follows you around with "
442"music streaming to Android and iPhone</span>"
443msgstr ""
444
445#: ../data/gtk/overview.ui.h:12
446msgid ""
447"Stay Productive\n"
448"<span foreground=\"#909090\">Keep your Firefox bookmarks and Tomboy notes "
449"synced</span>"
450msgstr ""
451
452#: ../data/gtk/services.ui.h:1
453msgid "<span font_size=\"small\">Bookmarks sync works with Firefox</span>"
454msgstr ""
455
456#: ../data/gtk/services.ui.h:2
457msgid ""
458"<span font_size=\"small\">Enable and then choose which folders you want to "
459"access from the Web or any device you connected to Ubuntu One\n"
460"\n"
461"Simply drag and drop any file or folder to your Ubuntu One folder on this "
462"computer</span>"
463msgstr ""
464
465#: ../data/gtk/services.ui.h:5
466msgid ""
467"<span font_size=\"small\">Once enabled, visit the <a href=\"https://one."
468"ubuntu.com\">Ubuntu One website</a> to manage your contacts, including Gmail "
469"and Facebook import</span>"
470msgstr ""
471
472#: ../data/gtk/services.ui.h:6
473msgid "Enable Bookmarks Sync"
474msgstr ""
475
476#: ../data/gtk/services.ui.h:7
477msgid "Enable Contacts Sync"
478msgstr ""
479
480#: ../data/gtk/services.ui.h:8
481msgid "Enable File Sync"
482msgstr ""
483
484#: ../data/gtk/services.ui.h:9
485msgid "_Show me my Ubuntu One folder"
486msgstr ""
0487
=== modified file 'setup.py'
--- setup.py 2011-07-22 21:26:48 +0000
+++ setup.py 2011-08-12 19:16:23 +0000
@@ -223,7 +223,7 @@
223223
224DistUtilsExtra.auto.setup(224DistUtilsExtra.auto.setup(
225 name='ubuntuone-control-panel',225 name='ubuntuone-control-panel',
226 version='1.1.1',226 version='1.1.2',
227 license='GPL v3',227 license='GPL v3',
228 author='Natalia Bidart',228 author='Natalia Bidart',
229 author_email='natalia.bidart@canonical.com',229 author_email='natalia.bidart@canonical.com',
230230
=== modified file 'ubuntuone/controlpanel/backend.py'
--- ubuntuone/controlpanel/backend.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/backend.py 2011-08-12 19:16:23 +0000
@@ -656,7 +656,9 @@
656 folder_path = append_path_sep(folder_path)656 folder_path = append_path_sep(folder_path)
657657
658 # handle folder_path not within '~' or links658 # handle folder_path not within '~' or links
659 if not folder_path.startswith(user_home) or is_link(folder_path):659 # XXX is_link expects bytes, see bug #824252
660 if not folder_path.startswith(user_home) or is_link(
661 folder_path.encode('utf-8')):
660 returnValue(False)662 returnValue(False)
661663
662 # handle folder_path nested with a existing cloud folder664 # handle folder_path nested with a existing cloud folder
663665
=== modified file 'ubuntuone/controlpanel/gui/__init__.py'
--- ubuntuone/controlpanel/gui/__init__.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/__init__.py 2011-08-12 19:16:23 +0000
@@ -69,7 +69,7 @@
69MANAGE_FILES_LINK = UBUNTUONE_LINK + 'files/'69MANAGE_FILES_LINK = UBUNTUONE_LINK + 'files/'
70TWITTER_LINK = 'http://twitter.com/ubuntuone/'70TWITTER_LINK = 'http://twitter.com/ubuntuone/'
7171
72ALWAYS_SUBSCRIBED = _('Always in sync!')72ALWAYS_SUBSCRIBED = _('Always in sync')
73BOOKMARKS = _('Firefox extension')73BOOKMARKS = _('Firefox extension')
74CONNECT_BUTTON_LABEL = _('Connect to Ubuntu One')74CONNECT_BUTTON_LABEL = _('Connect to Ubuntu One')
75CONTACTS = _('Evolution plug-in')75CONTACTS = _('Evolution plug-in')
@@ -98,7 +98,7 @@
98 'Please choose a folder inside your "%(home_folder)s" '98 'Please choose a folder inside your "%(home_folder)s" '
99 'directory, and not overlapping with any existing '99 'directory, and not overlapping with any existing '
100 'cloud folder.')100 'cloud folder.')
101FOLDER_OWNED_BY = _('Personal folders')101FOLDER_OWNED_BY = _('My personal folders')
102FOLDER_SHARED_BY = _('Shared by %(other_user_display_name)s')102FOLDER_SHARED_BY = _('Shared by %(other_user_display_name)s')
103FOLDERS_CONFIRM_MERGE = _('The contents of your cloud folder will be merged '103FOLDERS_CONFIRM_MERGE = _('The contents of your cloud folder will be merged '
104 'with your local folder "%(folder_path)s" when '104 'with your local folder "%(folder_path)s" when '
@@ -158,6 +158,7 @@
158SHARES_BUTTON_TOOLTIP = _('Manage the shares offered to others')158SHARES_BUTTON_TOOLTIP = _('Manage the shares offered to others')
159SHARES_TITLE = _('Manage permissions for shares made to other users.')159SHARES_TITLE = _('Manage permissions for shares made to other users.')
160SUCCESS_INSTALL = _('<i>%(package_name)s</i> was successfully installed')160SUCCESS_INSTALL = _('<i>%(package_name)s</i> was successfully installed')
161SYNC_LOCALLY = _('Sync locally?')
161VALUE_ERROR = _('Value could not be retrieved.')162VALUE_ERROR = _('Value could not be retrieved.')
162UNKNOWN_ERROR = _('Unknown error')163UNKNOWN_ERROR = _('Unknown error')
163164
@@ -187,7 +188,7 @@
187 credentials["consumer_secret"])188 credentials["consumer_secret"])
188 token = oauth.OAuthToken(credentials["token"],189 token = oauth.OAuthToken(credentials["token"],
189 credentials["token_secret"])190 credentials["token_secret"])
190 uri = 'https://one.ubuntu.com/api/1.0/from_oauth'191 uri = 'https://one.ubuntu.com/api/1.0/from_oauth/'
191 request = oauth.OAuthRequest.from_consumer_and_token(192 request = oauth.OAuthRequest.from_consumer_and_token(
192 http_url=uri, http_method='GET',193 http_url=uri, http_method='GET',
193 oauth_consumer=consumer, token=token,194 oauth_consumer=consumer, token=token,
194195
=== modified file 'ubuntuone/controlpanel/gui/qt/controlpanel.py'
--- ubuntuone/controlpanel/gui/qt/controlpanel.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/controlpanel.py 2011-08-12 19:16:23 +0000
@@ -42,7 +42,7 @@
4242
43logger = setup_logging('qt.controlpanel')43logger = setup_logging('qt.controlpanel')
4444
45NAME_STYLE = '<br><span style=" font-size:26pt;">%s!</span>'45NAME_STYLE = '<br><span style=" font-size:24pt;">%s!</span>'
46PERCENTAGE_STYLE = '<span style=" font-size:16pt;">%.0f%%</span>'46PERCENTAGE_STYLE = '<span style=" font-size:16pt;">%.0f%%</span>'
4747
4848
4949
=== modified file 'ubuntuone/controlpanel/gui/qt/folders.py'
--- ubuntuone/controlpanel/gui/qt/folders.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/folders.py 2011-08-12 19:16:23 +0000
@@ -40,6 +40,7 @@
40 MUSIC_REAL_PATH,40 MUSIC_REAL_PATH,
41 NAME_NOT_SET,41 NAME_NOT_SET,
42 SHARE_ICON_NAME,42 SHARE_ICON_NAME,
43 SYNC_LOCALLY,
43)44)
44from ubuntuone.controlpanel.gui.qt import uri_hook, icon_from_name45from ubuntuone.controlpanel.gui.qt import uri_hook, icon_from_name
45from ubuntuone.controlpanel.gui.qt.ubuntuonebin import UbuntuOneBin46from ubuntuone.controlpanel.gui.qt.ubuntuonebin import UbuntuOneBin
@@ -48,8 +49,6 @@
4849
49logger = setup_logging('qt.folders')50logger = setup_logging('qt.folders')
5051
51ROW_HEADER = u'<font size="5"><b>%s</b></font>'
52
53FOLDER_NAME_COL = 052FOLDER_NAME_COL = 0
54SUBSCRIPTION_COL = 153SUBSCRIPTION_COL = 1
55EXPLORE_COL = 254EXPLORE_COL = 2
@@ -79,6 +78,8 @@
79 headers.setStretchLastSection(False)78 headers.setStretchLastSection(False)
8079
81 self.ui.share_publish_button.uri = MANAGE_FILES_LINK80 self.ui.share_publish_button.uri = MANAGE_FILES_LINK
81 icon = icon_from_name('external_icon_orange')
82 self.ui.share_publish_button.setIcon(icon)
8283
83 logger.debug('%s: started.', self.__class__.__name__)84 logger.debug('%s: started.', self.__class__.__name__)
8485
@@ -109,23 +110,22 @@
109110
110 if name:111 if name:
111 name = FOLDER_SHARED_BY % {'other_user_display_name': name}112 name = FOLDER_SHARED_BY % {'other_user_display_name': name}
112 # we already added user folders, let's add an empty row
113 empty_row = QtGui.QTreeWidgetItem()
114 empty_row.is_empty = True
115 self.ui.folders.addTopLevelItem(empty_row)
116 else:113 else:
117 name = FOLDER_OWNED_BY114 name = FOLDER_OWNED_BY
118115
119 item = QtGui.QTreeWidgetItem()116 item = QtGui.QTreeWidgetItem()
117 item.setText(FOLDER_NAME_COL, name)
118 item.setText(SUBSCRIPTION_COL, SYNC_LOCALLY)
119 item.setSizeHint(FOLDER_NAME_COL, QtCore.QSize(-1, 20))
120 brush = QtGui.QBrush(QtGui.QColor('#d6d3cf'))
121 for col in (FOLDER_NAME_COL, SUBSCRIPTION_COL, EXPLORE_COL):
122 item.setBackground(col, brush)
120 item.is_empty = False123 item.is_empty = False
121 self.ui.folders.addTopLevelItem(item)124 self.ui.folders.addTopLevelItem(item)
122125
123 model_index = self.ui.folders.indexFromItem(item, FOLDER_NAME_COL)
124 title = QtGui.QLabel(ROW_HEADER % (name,))
125 self.ui.folders.setIndexWidget(model_index, title)
126
127 for volume in volumes:126 for volume in volumes:
128 child = QtGui.QTreeWidgetItem()127 child = QtGui.QTreeWidgetItem()
128 child.setSizeHint(FOLDER_NAME_COL, QtCore.QSize(-1, 35))
129 child.volume_path = volume['path']129 child.volume_path = volume['path']
130 child.volume_id = volume['volume_id']130 child.volume_id = volume['volume_id']
131131
@@ -168,6 +168,7 @@
168 button.icon_obj = icon # hack!168 button.icon_obj = icon # hack!
169 button.setIcon(icon_from_name(FOLDER_ICON_NAME))169 button.setIcon(icon_from_name(FOLDER_ICON_NAME))
170 button.setIconSize(QtCore.QSize(12, 12))170 button.setIconSize(QtCore.QSize(12, 12))
171 button.setText(EXPLORE)
171 button.setObjectName('explore_folder_button')172 button.setObjectName('explore_folder_button')
172 policy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,173 policy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
173 QtGui.QSizePolicy.Fixed)174 QtGui.QSizePolicy.Fixed)
@@ -187,7 +188,7 @@
187188
188 def on_folders_itemActivated(self, item, column=None):189 def on_folders_itemActivated(self, item, column=None):
189 """User activated a given row, open the path in a file browser."""190 """User activated a given row, open the path in a file browser."""
190 volume_path = item.volume_path191 volume_path = getattr(item, 'volume_path', None)
191 if volume_path is None:192 if volume_path is None:
192 logger.warning('on_folders_itemActivated: volume_path for item %r '193 logger.warning('on_folders_itemActivated: volume_path for item %r '
193 'and column %r is None.', item, column)194 'and column %r is None.', item, column)
194195
=== modified file 'ubuntuone/controlpanel/gui/qt/loadingoverlay.py'
--- ubuntuone/controlpanel/gui/qt/loadingoverlay.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/loadingoverlay.py 2011-08-12 19:16:23 +0000
@@ -106,7 +106,8 @@
106 palette.setColor(palette.Background, QtCore.Qt.transparent)106 palette.setColor(palette.Background, QtCore.Qt.transparent)
107 self.setPalette(palette)107 self.setPalette(palette)
108108
109 self.timer = self.startTimer(200)109 if not self.timer:
110 self.timer = self.startTimer(200)
110111
111 # Invalid name "timerEvent"112 # Invalid name "timerEvent"
112 # pylint: disable=C0103113 # pylint: disable=C0103
113114
=== modified file 'ubuntuone/controlpanel/gui/qt/tests/test_folders.py'
--- ubuntuone/controlpanel/gui/qt/tests/test_folders.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/tests/test_folders.py 2011-08-12 19:16:23 +0000
@@ -85,6 +85,12 @@
85 yield super(FoldersPanelVolumesInfoTestCase, self).setUp()85 yield super(FoldersPanelVolumesInfoTestCase, self).setUp()
86 yield self.ui.load()86 yield self.ui.load()
8787
88 def assert_folder_group_header_correct(self, item, name):
89 """Check that the folder group header is correct."""
90 self.assertEqual(item.text(gui.FOLDER_NAME_COL), name)
91 self.assertEqual(item.text(gui.SUBSCRIPTION_COL), gui.SYNC_LOCALLY)
92 self.assertEqual(item.text(gui.EXPLORE_COL), '')
93
88 @defer.inlineCallbacks94 @defer.inlineCallbacks
89 def test_is_processing_while_asking_info(self):95 def test_is_processing_while_asking_info(self):
90 """The ui is processing while the contents are loaded."""96 """The ui is processing while the contents are loaded."""
@@ -113,7 +119,7 @@
113 folders = self.ui.ui.folders119 folders = self.ui.ui.folders
114120
115 root = folders.invisibleRootItem()121 root = folders.invisibleRootItem()
116 self.assertEqual(len(FAKE_VOLUMES_INFO) + 1, root.childCount())122 self.assertEqual(len(FAKE_VOLUMES_INFO), root.childCount())
117123
118 treeiter = gui.QtGui.QTreeWidgetItemIterator(folders)124 treeiter = gui.QtGui.QTreeWidgetItemIterator(folders)
119 for name, _, volumes in FAKE_VOLUMES_INFO:125 for name, _, volumes in FAKE_VOLUMES_INFO:
@@ -123,9 +129,7 @@
123 item = treeiter.value()129 item = treeiter.value()
124 self.assertFalse(item.is_empty)130 self.assertFalse(item.is_empty)
125131
126 model_index = folders.indexFromItem(item, gui.FOLDER_NAME_COL)132 self.assert_folder_group_header_correct(item, name)
127 label = folders.indexWidget(model_index).text()
128 self.assertEqual(label, gui.ROW_HEADER % name)
129133
130 # check children134 # check children
131 self.assertEqual(len(volumes), item.childCount())135 self.assertEqual(len(volumes), item.childCount())
@@ -175,18 +179,13 @@
175 treeiter += 1179 treeiter += 1
176 item = treeiter.value()180 item = treeiter.value()
177181
178 if item is not None:
179 self.assertTrue(item.is_empty)
180 # skip the empty row
181 treeiter += 1
182
183 def test_process_info_clears_the_list(self):182 def test_process_info_clears_the_list(self):
184 """The old volumes info is cleared before updated."""183 """The old volumes info is cleared before updated."""
185 self.ui.process_info(FAKE_VOLUMES_INFO)184 self.ui.process_info(FAKE_VOLUMES_INFO)
186 self.ui.process_info(FAKE_VOLUMES_INFO)185 self.ui.process_info(FAKE_VOLUMES_INFO)
187186
188 root = self.ui.ui.folders.invisibleRootItem()187 root = self.ui.ui.folders.invisibleRootItem()
189 self.assertEqual(len(FAKE_VOLUMES_INFO) + 1, root.childCount())188 self.assertEqual(len(FAKE_VOLUMES_INFO), root.childCount())
190189
191 def test_process_info_with_no_volumes(self):190 def test_process_info_with_no_volumes(self):
192 """When there are no volumes, a notification is shown."""191 """When there are no volumes, a notification is shown."""
@@ -198,7 +197,6 @@
198 def test_process_info_highlights_little_free_space(self):197 def test_process_info_highlights_little_free_space(self):
199 """The free space is red if is zero (or close to 0)."""198 """The free space is red if is zero (or close to 0)."""
200 self.ui.process_info(FAKE_VOLUMES_NO_FREE_SPACE_INFO)199 self.ui.process_info(FAKE_VOLUMES_NO_FREE_SPACE_INFO)
201 folders = self.ui.ui.folders
202200
203 child_index = 0201 child_index = 0
204 root = self.ui.ui.folders.invisibleRootItem()202 root = self.ui.ui.folders.invisibleRootItem()
@@ -207,19 +205,11 @@
207205
208 item = root.child(child_index)206 item = root.child(child_index)
209 self.assertFalse(item.is_empty)207 self.assertFalse(item.is_empty)
210208 self.assert_folder_group_header_correct(item, name)
211 model_index = folders.indexFromItem(item, gui.FOLDER_NAME_COL)
212 label = folders.indexWidget(model_index).text()
213 self.assertEqual(label, gui.ROW_HEADER % name)
214209
215 child_index += 1210 child_index += 1
216 item = root.child(child_index)211 item = root.child(child_index)
217212
218 if item is not None:
219 # skip the empty row
220 self.assertTrue(item.is_empty)
221 child_index += 1
222
223 def test_process_info_handles_no_quota_info(self):213 def test_process_info_handles_no_quota_info(self):
224 """The lack of free space is handled."""214 """The lack of free space is handled."""
225 info = [215 info = [
@@ -231,7 +221,6 @@
231 u'type': self.ui.backend.SHARE_TYPE}]),221 u'type': self.ui.backend.SHARE_TYPE}]),
232 ]222 ]
233 self.ui.process_info(info)223 self.ui.process_info(info)
234 folders = self.ui.ui.folders
235224
236 child_index = 0225 child_index = 0
237 root = self.ui.ui.folders.invisibleRootItem()226 root = self.ui.ui.folders.invisibleRootItem()
@@ -240,19 +229,11 @@
240229
241 item = root.child(child_index)230 item = root.child(child_index)
242 self.assertFalse(item.is_empty)231 self.assertFalse(item.is_empty)
243232 self.assert_folder_group_header_correct(item, name)
244 model_index = folders.indexFromItem(item, gui.FOLDER_NAME_COL)
245 label = folders.indexWidget(model_index).text()
246 self.assertEqual(label, gui.ROW_HEADER % name)
247233
248 child_index += 1234 child_index += 1
249 item = root.child(child_index)235 item = root.child(child_index)
250236
251 if item is not None:
252 # skip the empty row
253 self.assertTrue(item.is_empty)
254 child_index += 1
255
256 def test_clicking_on_row_opens_folder(self):237 def test_clicking_on_row_opens_folder(self):
257 """The folder activated is opened."""238 """The folder activated is opened."""
258 self.patch(gui.os.path, 'exists', lambda *a: True)239 self.patch(gui.os.path, 'exists', lambda *a: True)
259240
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/account_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/account_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/account_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/account.ui'3# Form implementation generated from reading ui file 'data/qt/account.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -18,60 +18,67 @@
18class Ui_Form(object):18class Ui_Form(object):
19 def setupUi(self, Form):19 def setupUi(self, Form):
20 Form.setObjectName(_fromUtf8("Form"))20 Form.setObjectName(_fromUtf8("Form"))
21 Form.resize(321, 205)21 Form.resize(381, 167)
22 self.verticalLayout = QtGui.QVBoxLayout(Form)22 self.verticalLayout = QtGui.QVBoxLayout(Form)
23 self.verticalLayout.setMargin(0)23 self.verticalLayout.setMargin(0)
24 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))24 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
25 self.horizontalGroupBox = QtGui.QGroupBox(Form)25 self.gridLayout_2 = QtGui.QGridLayout()
26 self.horizontalGroupBox.setObjectName(_fromUtf8("horizontalGroupBox"))26 self.gridLayout_2.setVerticalSpacing(30)
27 self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalGroupBox)27 self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
28 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))28 self.edit_profile_button = GoToWebButton(Form)
29 self.edit_profile_button.setObjectName(_fromUtf8("edit_profile_button"))
30 self.gridLayout_2.addWidget(self.edit_profile_button, 2, 2, 1, 1)
31 self.services = QtGui.QGroupBox(Form)
32 self.services.setObjectName(_fromUtf8("services"))
33 self.verticalLayout_3 = QtGui.QVBoxLayout(self.services)
34 self.verticalLayout_3.setMargin(0)
35 self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
36 self.services_description_label = QtGui.QLabel(self.services)
37 self.services_description_label.setText(_fromUtf8(""))
38 self.services_description_label.setObjectName(_fromUtf8("services_description_label"))
39 self.verticalLayout_3.addWidget(self.services_description_label)
40 self.gridLayout_2.addWidget(self.services, 2, 0, 1, 1)
41 self.account_separator = QtGui.QFrame(Form)
42 self.account_separator.setFrameShape(QtGui.QFrame.HLine)
43 self.account_separator.setFrameShadow(QtGui.QFrame.Sunken)
44 self.account_separator.setObjectName(_fromUtf8("account_separator"))
45 self.gridLayout_2.addWidget(self.account_separator, 1, 0, 1, 4)
46 self.profile_info = QtGui.QGroupBox(Form)
47 self.profile_info.setObjectName(_fromUtf8("profile_info"))
48 self.verticalLayout_4 = QtGui.QVBoxLayout(self.profile_info)
49 self.verticalLayout_4.setMargin(0)
50 self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
29 self.verticalLayout_2 = QtGui.QVBoxLayout()51 self.verticalLayout_2 = QtGui.QVBoxLayout()
30 self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))52 self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
31 self.name_label = QtGui.QLabel(self.horizontalGroupBox)53 self.name_label = QtGui.QLabel(self.profile_info)
32 self.name_label.setText(_fromUtf8(""))54 self.name_label.setText(_fromUtf8(""))
33 self.name_label.setObjectName(_fromUtf8("name_label"))55 self.name_label.setObjectName(_fromUtf8("name_label"))
34 self.verticalLayout_2.addWidget(self.name_label)56 self.verticalLayout_2.addWidget(self.name_label)
35 self.email_label = QtGui.QLabel(self.horizontalGroupBox)57 self.email_label = QtGui.QLabel(self.profile_info)
36 self.email_label.setText(_fromUtf8(""))58 self.email_label.setText(_fromUtf8(""))
37 self.email_label.setObjectName(_fromUtf8("email_label"))59 self.email_label.setObjectName(_fromUtf8("email_label"))
38 self.verticalLayout_2.addWidget(self.email_label)60 self.verticalLayout_2.addWidget(self.email_label)
39 self.horizontalLayout.addLayout(self.verticalLayout_2)61 self.verticalLayout_4.addLayout(self.verticalLayout_2)
62 self.gridLayout_2.addWidget(self.profile_info, 0, 0, 1, 1)
63 self.edit_services_button = GoToWebButton(Form)
64 self.edit_services_button.setObjectName(_fromUtf8("edit_services_button"))
65 self.gridLayout_2.addWidget(self.edit_services_button, 0, 2, 1, 1)
40 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)66 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
41 self.horizontalLayout.addItem(spacerItem)67 self.gridLayout_2.addItem(spacerItem, 0, 3, 1, 1)
42 self.edit_profile_button = GoToWebButton(self.horizontalGroupBox)
43 self.edit_profile_button.setObjectName(_fromUtf8("edit_profile_button"))
44 self.horizontalLayout.addWidget(self.edit_profile_button)
45 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)68 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
46 self.horizontalLayout.addItem(spacerItem1)69 self.gridLayout_2.addItem(spacerItem1, 0, 1, 1, 1)
47 self.verticalLayout.addWidget(self.horizontalGroupBox)70 self.verticalLayout.addLayout(self.gridLayout_2)
48 self.horizontalGroupBox_2 = QtGui.QGroupBox(Form)71 spacerItem2 = QtGui.QSpacerItem(20, 10, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
49 self.horizontalGroupBox_2.setObjectName(_fromUtf8("horizontalGroupBox_2"))72 self.verticalLayout.addItem(spacerItem2)
50 self.horizontalLayout_2 = QtGui.QHBoxLayout(self.horizontalGroupBox_2)
51 self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
52 self.services_description_label = QtGui.QLabel(self.horizontalGroupBox_2)
53 self.services_description_label.setText(_fromUtf8(""))
54 self.services_description_label.setObjectName(_fromUtf8("services_description_label"))
55 self.horizontalLayout_2.addWidget(self.services_description_label)
56 spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
57 self.horizontalLayout_2.addItem(spacerItem2)
58 self.edit_services_button = GoToWebButton(self.horizontalGroupBox_2)
59 self.edit_services_button.setObjectName(_fromUtf8("edit_services_button"))
60 self.horizontalLayout_2.addWidget(self.edit_services_button)
61 spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
62 self.horizontalLayout_2.addItem(spacerItem3)
63 self.verticalLayout.addWidget(self.horizontalGroupBox_2)
64 spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
65 self.verticalLayout.addItem(spacerItem4)
6673
67 self.retranslateUi(Form)74 self.retranslateUi(Form)
68 QtCore.QMetaObject.connectSlotsByName(Form)75 QtCore.QMetaObject.connectSlotsByName(Form)
6976
70 def retranslateUi(self, Form):77 def retranslateUi(self, Form):
71 Form.setWindowTitle(_('Form'))78 Form.setWindowTitle(_('Form'))
72 self.horizontalGroupBox.setTitle(_('Personal details'))
73 self.edit_profile_button.setText(_('Edit personal details online'))79 self.edit_profile_button.setText(_('Edit personal details online'))
74 self.horizontalGroupBox_2.setTitle(_('Your services'))80 self.services.setTitle(_('Your services'))
81 self.profile_info.setTitle(_('Personal details'))
75 self.edit_services_button.setText(_('Edit your services online'))82 self.edit_services_button.setText(_('Edit your services online'))
7683
77from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton84from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton
7885
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/controlpanel_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/controlpanel.ui'3# Form implementation generated from reading ui file 'data/qt/controlpanel.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -18,7 +18,7 @@
18class Ui_Form(object):18class Ui_Form(object):
19 def setupUi(self, Form):19 def setupUi(self, Form):
20 Form.setObjectName(_fromUtf8("Form"))20 Form.setObjectName(_fromUtf8("Form"))
21 Form.resize(536, 389)21 Form.resize(387, 203)
22 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)22 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
23 sizePolicy.setHorizontalStretch(0)23 sizePolicy.setHorizontalStretch(0)
24 sizePolicy.setVerticalStretch(0)24 sizePolicy.setVerticalStretch(0)
@@ -26,65 +26,48 @@
26 Form.setSizePolicy(sizePolicy)26 Form.setSizePolicy(sizePolicy)
27 Form.setWindowTitle(_fromUtf8("Form"))27 Form.setWindowTitle(_fromUtf8("Form"))
28 self.verticalLayout = QtGui.QVBoxLayout(Form)28 self.verticalLayout = QtGui.QVBoxLayout(Form)
29 self.verticalLayout.setSpacing(4)29 self.verticalLayout.setSpacing(3)
30 self.verticalLayout.setMargin(0)30 self.verticalLayout.setMargin(0)
31 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))31 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
32 self.frmHeader = QtGui.QFrame(Form)32 self.frame_header = QtGui.QFrame(Form)
33 self.frmHeader.setFrameShape(QtGui.QFrame.StyledPanel)33 self.frame_header.setObjectName(_fromUtf8("frame_header"))
34 self.frmHeader.setFrameShadow(QtGui.QFrame.Raised)34 self.horizontalLayout_2 = QtGui.QHBoxLayout(self.frame_header)
35 self.frmHeader.setObjectName(_fromUtf8("frmHeader"))35 self.horizontalLayout_2.setSpacing(5)
36 self.horizontalLayout_4 = QtGui.QHBoxLayout(self.frmHeader)36 self.horizontalLayout_2.setMargin(0)
37 self.horizontalLayout_4.setSpacing(0)37 self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
38 self.horizontalLayout_4.setContentsMargins(15, 10, 10, 10)38 self.frame_greeting = QtGui.QFrame(self.frame_header)
39 self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))39 self.frame_greeting.setObjectName(_fromUtf8("frame_greeting"))
40 self.horizontalLayout = QtGui.QHBoxLayout()40 self.verticalLayout_4 = QtGui.QVBoxLayout(self.frame_greeting)
41 self.horizontalLayout.setSpacing(0)41 self.verticalLayout_4.setMargin(0)
42 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))42 self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
43 self.vLayoutGreeting = QtGui.QVBoxLayout()43 self.greeting_label = QtGui.QLabel(self.frame_greeting)
44 self.vLayoutGreeting.setSpacing(0)
45 self.vLayoutGreeting.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
46 self.vLayoutGreeting.setObjectName(_fromUtf8("vLayoutGreeting"))
47 self.greeting_label = QtGui.QLabel(self.frmHeader)
48 font = QtGui.QFont()
49 font.setPointSize(10)
50 self.greeting_label.setFont(font)
51 self.greeting_label.setLayoutDirection(QtCore.Qt.LeftToRight)
52 self.greeting_label.setAutoFillBackground(False)
53 self.greeting_label.setText(_fromUtf8(""))
54 self.greeting_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)44 self.greeting_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
55 self.greeting_label.setMargin(0)
56 self.greeting_label.setIndent(-1)
57 self.greeting_label.setObjectName(_fromUtf8("greeting_label"))45 self.greeting_label.setObjectName(_fromUtf8("greeting_label"))
58 self.vLayoutGreeting.addWidget(self.greeting_label)46 self.verticalLayout_4.addWidget(self.greeting_label)
59 self.horizontalLayout.addLayout(self.vLayoutGreeting)47 self.horizontalLayout_2.addWidget(self.frame_greeting)
60 spacerItem = QtGui.QSpacerItem(15, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum)48 spacerItem = QtGui.QSpacerItem(15, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum)
61 self.horizontalLayout.addItem(spacerItem)49 self.horizontalLayout_2.addItem(spacerItem)
62 self.frameStorage = QtGui.QFrame(self.frmHeader)50 self.frame_storage = QtGui.QFrame(self.frame_header)
63 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)51 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
64 sizePolicy.setHorizontalStretch(0)52 sizePolicy.setHorizontalStretch(0)
65 sizePolicy.setVerticalStretch(0)53 sizePolicy.setVerticalStretch(0)
66 sizePolicy.setHeightForWidth(self.frameStorage.sizePolicy().hasHeightForWidth())54 sizePolicy.setHeightForWidth(self.frame_storage.sizePolicy().hasHeightForWidth())
67 self.frameStorage.setSizePolicy(sizePolicy)55 self.frame_storage.setSizePolicy(sizePolicy)
68 self.frameStorage.setMaximumSize(QtCore.QSize(166, 16777215))56 self.frame_storage.setMinimumSize(QtCore.QSize(165, 0))
69 self.frameStorage.setFrameShape(QtGui.QFrame.StyledPanel)57 self.frame_storage.setMaximumSize(QtCore.QSize(165, 16777215))
70 self.frameStorage.setFrameShadow(QtGui.QFrame.Raised)58 self.frame_storage.setObjectName(_fromUtf8("frame_storage"))
71 self.frameStorage.setObjectName(_fromUtf8("frameStorage"))59 self.vLayoutStorage = QtGui.QVBoxLayout(self.frame_storage)
72 self.horizontalLayout_7 = QtGui.QHBoxLayout(self.frameStorage)60 self.vLayoutStorage.setSpacing(6)
73 self.horizontalLayout_7.setSpacing(0)
74 self.horizontalLayout_7.setContentsMargins(10, 0, 10, 0)
75 self.horizontalLayout_7.setObjectName(_fromUtf8("horizontalLayout_7"))
76 self.vLayoutStorage = QtGui.QVBoxLayout()
77 self.vLayoutStorage.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)61 self.vLayoutStorage.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
62 self.vLayoutStorage.setMargin(0)
78 self.vLayoutStorage.setObjectName(_fromUtf8("vLayoutStorage"))63 self.vLayoutStorage.setObjectName(_fromUtf8("vLayoutStorage"))
79 self.frmQuota = QtGui.QFrame(self.frameStorage)64 self.frame_quota = QtGui.QFrame(self.frame_storage)
80 self.frmQuota.setFrameShape(QtGui.QFrame.StyledPanel)65 self.frame_quota.setObjectName(_fromUtf8("frame_quota"))
81 self.frmQuota.setFrameShadow(QtGui.QFrame.Raised)66 self.verticalLayout_3 = QtGui.QVBoxLayout(self.frame_quota)
82 self.frmQuota.setObjectName(_fromUtf8("frmQuota"))
83 self.verticalLayout_3 = QtGui.QVBoxLayout(self.frmQuota)
84 self.verticalLayout_3.setSpacing(2)67 self.verticalLayout_3.setSpacing(2)
85 self.verticalLayout_3.setContentsMargins(0, 0, 0, 10)68 self.verticalLayout_3.setMargin(0)
86 self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))69 self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
87 self.percentage_usage_label = QtGui.QLabel(self.frmQuota)70 self.percentage_usage_label = QtGui.QLabel(self.frame_quota)
88 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)71 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
89 sizePolicy.setHorizontalStretch(0)72 sizePolicy.setHorizontalStretch(0)
90 sizePolicy.setVerticalStretch(0)73 sizePolicy.setVerticalStretch(0)
@@ -93,39 +76,42 @@
93 self.percentage_usage_label.setText(_fromUtf8(""))76 self.percentage_usage_label.setText(_fromUtf8(""))
94 self.percentage_usage_label.setObjectName(_fromUtf8("percentage_usage_label"))77 self.percentage_usage_label.setObjectName(_fromUtf8("percentage_usage_label"))
95 self.verticalLayout_3.addWidget(self.percentage_usage_label)78 self.verticalLayout_3.addWidget(self.percentage_usage_label)
96 self.quota_usage_label = QtGui.QLabel(self.frmQuota)79 self.quota_usage_label = QtGui.QLabel(self.frame_quota)
97 font = QtGui.QFont()80 font = QtGui.QFont()
98 font.setPointSize(8)81 font.setPointSize(8)
99 self.quota_usage_label.setFont(font)82 self.quota_usage_label.setFont(font)
100 self.quota_usage_label.setText(_fromUtf8(""))83 self.quota_usage_label.setText(_fromUtf8(""))
101 self.quota_usage_label.setObjectName(_fromUtf8("quota_usage_label"))84 self.quota_usage_label.setObjectName(_fromUtf8("quota_usage_label"))
102 self.verticalLayout_3.addWidget(self.quota_usage_label)85 self.verticalLayout_3.addWidget(self.quota_usage_label)
103 self.vLayoutStorage.addWidget(self.frmQuota)86 self.vLayoutStorage.addWidget(self.frame_quota)
104 self.get_more_space_button = GoToWebButton(self.frameStorage)87 self.get_more_space_button = GoToWebButton(self.frame_storage)
105 self.get_more_space_button.setObjectName(_fromUtf8("get_more_space_button"))88 self.get_more_space_button.setObjectName(_fromUtf8("get_more_space_button"))
106 self.vLayoutStorage.addWidget(self.get_more_space_button)89 self.vLayoutStorage.addWidget(self.get_more_space_button)
107 self.horizontalLayout_7.addLayout(self.vLayoutStorage)90 self.horizontalLayout_2.addWidget(self.frame_storage)
108 self.horizontalLayout.addWidget(self.frameStorage)91 self.frame_status = QtGui.QFrame(self.frame_header)
109 self.frameStatus = QtGui.QFrame(self.frmHeader)
110 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)92 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
111 sizePolicy.setHorizontalStretch(0)93 sizePolicy.setHorizontalStretch(0)
112 sizePolicy.setVerticalStretch(0)94 sizePolicy.setVerticalStretch(0)
113 sizePolicy.setHeightForWidth(self.frameStatus.sizePolicy().hasHeightForWidth())95 sizePolicy.setHeightForWidth(self.frame_status.sizePolicy().hasHeightForWidth())
114 self.frameStatus.setSizePolicy(sizePolicy)96 self.frame_status.setSizePolicy(sizePolicy)
115 self.frameStatus.setMaximumSize(QtCore.QSize(166, 16777215))97 self.frame_status.setMinimumSize(QtCore.QSize(165, 0))
116 self.frameStatus.setFrameShape(QtGui.QFrame.StyledPanel)98 self.frame_status.setMaximumSize(QtCore.QSize(165, 16777215))
117 self.frameStatus.setFrameShadow(QtGui.QFrame.Raised)99 self.frame_status.setObjectName(_fromUtf8("frame_status"))
118 self.frameStatus.setObjectName(_fromUtf8("frameStatus"))100 self.horizontalLayout_8 = QtGui.QHBoxLayout(self.frame_status)
119 self.horizontalLayout_8 = QtGui.QHBoxLayout(self.frameStatus)101 self.horizontalLayout_8.setMargin(0)
120 self.horizontalLayout_8.setSpacing(0)
121 self.horizontalLayout_8.setContentsMargins(10, 0, 0, 0)
122 self.horizontalLayout_8.setObjectName(_fromUtf8("horizontalLayout_8"))102 self.horizontalLayout_8.setObjectName(_fromUtf8("horizontalLayout_8"))
123 self.file_sync_status = FileSyncStatus(self.frameStatus)103 self.file_sync_status = FileSyncStatus(self.frame_status)
104 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
105 sizePolicy.setHorizontalStretch(0)
106 sizePolicy.setVerticalStretch(0)
107 sizePolicy.setHeightForWidth(self.file_sync_status.sizePolicy().hasHeightForWidth())
108 self.file_sync_status.setSizePolicy(sizePolicy)
109 self.file_sync_status.setMinimumSize(QtCore.QSize(0, 0))
110 self.file_sync_status.setMaximumSize(QtCore.QSize(165, 16777215))
124 self.file_sync_status.setObjectName(_fromUtf8("file_sync_status"))111 self.file_sync_status.setObjectName(_fromUtf8("file_sync_status"))
125 self.horizontalLayout_8.addWidget(self.file_sync_status)112 self.horizontalLayout_8.addWidget(self.file_sync_status)
126 self.horizontalLayout.addWidget(self.frameStatus)113 self.horizontalLayout_2.addWidget(self.frame_status)
127 self.horizontalLayout_4.addLayout(self.horizontalLayout)114 self.verticalLayout.addWidget(self.frame_header)
128 self.verticalLayout.addWidget(self.frmHeader)
129 self.tab_widget = QtGui.QTabWidget(Form)115 self.tab_widget = QtGui.QTabWidget(Form)
130 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.MinimumExpanding)116 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.MinimumExpanding)
131 sizePolicy.setHorizontalStretch(0)117 sizePolicy.setHorizontalStretch(0)
@@ -146,31 +132,24 @@
146 self.account_tab.setObjectName(_fromUtf8("account_tab"))132 self.account_tab.setObjectName(_fromUtf8("account_tab"))
147 self.tab_widget.addTab(self.account_tab, _fromUtf8(""))133 self.tab_widget.addTab(self.account_tab, _fromUtf8(""))
148 self.verticalLayout.addWidget(self.tab_widget)134 self.verticalLayout.addWidget(self.tab_widget)
149 self.frmFooter = QtGui.QFrame(Form)135 self.frame_footer = QtGui.QFrame(Form)
150 self.frmFooter.setMaximumSize(QtCore.QSize(16777215, 30))136 self.frame_footer.setObjectName(_fromUtf8("frame_footer"))
151 self.frmFooter.setFrameShape(QtGui.QFrame.StyledPanel)137 self.horizontalLayout = QtGui.QHBoxLayout(self.frame_footer)
152 self.frmFooter.setFrameShadow(QtGui.QFrame.Raised)138 self.horizontalLayout.setSpacing(5)
153 self.frmFooter.setObjectName(_fromUtf8("frmFooter"))139 self.horizontalLayout.setContentsMargins(3, 0, 3, 3)
154 self.verticalLayout_2 = QtGui.QVBoxLayout(self.frmFooter)140 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
155 self.verticalLayout_2.setSpacing(0)141 self.help_button = GoToWebButton(self.frame_footer)
156 self.verticalLayout_2.setMargin(0)
157 self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
158 self.hLayoutFooter = QtGui.QHBoxLayout()
159 self.hLayoutFooter.setSpacing(5)
160 self.hLayoutFooter.setContentsMargins(3, -1, 3, -1)
161 self.hLayoutFooter.setObjectName(_fromUtf8("hLayoutFooter"))
162 self.help_button = GoToWebButton(self.frmFooter)
163 self.help_button.setObjectName(_fromUtf8("help_button"))142 self.help_button.setObjectName(_fromUtf8("help_button"))
164 self.hLayoutFooter.addWidget(self.help_button)143 self.horizontalLayout.addWidget(self.help_button)
165 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)144 spacerItem1 = QtGui.QSpacerItem(133, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
166 self.hLayoutFooter.addItem(spacerItem1)145 self.horizontalLayout.addItem(spacerItem1)
167 self.follow_us_label = QtGui.QLabel(self.frmFooter)146 self.follow_us_label = QtGui.QLabel(self.frame_footer)
168 font = QtGui.QFont()147 font = QtGui.QFont()
169 font.setPointSize(11)148 font.setPointSize(11)
170 self.follow_us_label.setFont(font)149 self.follow_us_label.setFont(font)
171 self.follow_us_label.setObjectName(_fromUtf8("follow_us_label"))150 self.follow_us_label.setObjectName(_fromUtf8("follow_us_label"))
172 self.hLayoutFooter.addWidget(self.follow_us_label)151 self.horizontalLayout.addWidget(self.follow_us_label)
173 self.twitter_button = QtGui.QToolButton(self.frmFooter)152 self.twitter_button = QtGui.QToolButton(self.frame_footer)
174 self.twitter_button.setCursor(QtCore.Qt.PointingHandCursor)153 self.twitter_button.setCursor(QtCore.Qt.PointingHandCursor)
175 self.twitter_button.setStyleSheet(_fromUtf8("border: 0;"))154 self.twitter_button.setStyleSheet(_fromUtf8("border: 0;"))
176 self.twitter_button.setText(_fromUtf8(""))155 self.twitter_button.setText(_fromUtf8(""))
@@ -179,8 +158,8 @@
179 self.twitter_button.setIcon(icon)158 self.twitter_button.setIcon(icon)
180 self.twitter_button.setIconSize(QtCore.QSize(22, 22))159 self.twitter_button.setIconSize(QtCore.QSize(22, 22))
181 self.twitter_button.setObjectName(_fromUtf8("twitter_button"))160 self.twitter_button.setObjectName(_fromUtf8("twitter_button"))
182 self.hLayoutFooter.addWidget(self.twitter_button)161 self.horizontalLayout.addWidget(self.twitter_button)
183 self.facebook_button = QtGui.QToolButton(self.frmFooter)162 self.facebook_button = QtGui.QToolButton(self.frame_footer)
184 self.facebook_button.setCursor(QtCore.Qt.PointingHandCursor)163 self.facebook_button.setCursor(QtCore.Qt.PointingHandCursor)
185 self.facebook_button.setStyleSheet(_fromUtf8("border: 0;"))164 self.facebook_button.setStyleSheet(_fromUtf8("border: 0;"))
186 self.facebook_button.setText(_fromUtf8(""))165 self.facebook_button.setText(_fromUtf8(""))
@@ -189,9 +168,8 @@
189 self.facebook_button.setIcon(icon1)168 self.facebook_button.setIcon(icon1)
190 self.facebook_button.setIconSize(QtCore.QSize(22, 22))169 self.facebook_button.setIconSize(QtCore.QSize(22, 22))
191 self.facebook_button.setObjectName(_fromUtf8("facebook_button"))170 self.facebook_button.setObjectName(_fromUtf8("facebook_button"))
192 self.hLayoutFooter.addWidget(self.facebook_button)171 self.horizontalLayout.addWidget(self.facebook_button)
193 self.verticalLayout_2.addLayout(self.hLayoutFooter)172 self.verticalLayout.addWidget(self.frame_footer)
194 self.verticalLayout.addWidget(self.frmFooter)
195173
196 self.retranslateUi(Form)174 self.retranslateUi(Form)
197 self.tab_widget.setCurrentIndex(0)175 self.tab_widget.setCurrentIndex(0)
@@ -201,7 +179,7 @@
201 Form.setTabOrder(self.twitter_button, self.facebook_button)179 Form.setTabOrder(self.twitter_button, self.facebook_button)
202180
203 def retranslateUi(self, Form):181 def retranslateUi(self, Form):
204 self.get_more_space_button.setText(_('Get more storage!'))182 self.get_more_space_button.setText(_('Get more storage'))
205 self.tab_widget.setTabText(self.tab_widget.indexOf(self.folders_tab), _('Folders'))183 self.tab_widget.setTabText(self.tab_widget.indexOf(self.folders_tab), _('Folders'))
206 self.tab_widget.setTabText(self.tab_widget.indexOf(self.devices_tab), _('Devices'))184 self.tab_widget.setTabText(self.tab_widget.indexOf(self.devices_tab), _('Devices'))
207 self.tab_widget.setTabText(self.tab_widget.indexOf(self.preferences_tab), _('Preferences'))185 self.tab_widget.setTabText(self.tab_widget.indexOf(self.preferences_tab), _('Preferences'))
208186
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/device_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/device_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/device_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/device.ui'3# Form implementation generated from reading ui file 'data/qt/device.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -18,7 +18,7 @@
18class Ui_Form(object):18class Ui_Form(object):
19 def setupUi(self, Form):19 def setupUi(self, Form):
20 Form.setObjectName(_fromUtf8("Form"))20 Form.setObjectName(_fromUtf8("Form"))
21 Form.resize(400, 63)21 Form.resize(233, 36)
22 Form.setWindowTitle(_fromUtf8("Form"))22 Form.setWindowTitle(_fromUtf8("Form"))
23 self.horizontalLayout = QtGui.QHBoxLayout(Form)23 self.horizontalLayout = QtGui.QHBoxLayout(Form)
24 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))24 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
@@ -40,6 +40,6 @@
4040
41 def retranslateUi(self, Form):41 def retranslateUi(self, Form):
42 self.device_name_label.setText(_('Local device'))42 self.device_name_label.setText(_('Local device'))
43 self.remove_device_button.setText(_('Delete device'))43 self.remove_device_button.setText(_('Remove'))
4444
45import images_rc45import images_rc
4646
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/devices_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/devices_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/devices_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/devices.ui'3# Form implementation generated from reading ui file 'data/qt/devices.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -18,56 +18,53 @@
18class Ui_Form(object):18class Ui_Form(object):
19 def setupUi(self, Form):19 def setupUi(self, Form):
20 Form.setObjectName(_fromUtf8("Form"))20 Form.setObjectName(_fromUtf8("Form"))
21 Form.resize(409, 310)21 Form.resize(393, 281)
22 Form.setWindowTitle(_fromUtf8("Form"))22 Form.setWindowTitle(_fromUtf8("Form"))
23 self.verticalLayout = QtGui.QVBoxLayout(Form)23 self.verticalLayout_3 = QtGui.QVBoxLayout(Form)
24 self.verticalLayout.setSpacing(0)24 self.verticalLayout_3.setSpacing(0)
25 self.verticalLayout_3.setMargin(0)
26 self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
27 self.local_device = QtGui.QGroupBox(Form)
28 self.local_device.setObjectName(_fromUtf8("local_device"))
29 self.verticalLayout = QtGui.QVBoxLayout(self.local_device)
25 self.verticalLayout.setMargin(0)30 self.verticalLayout.setMargin(0)
26 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))31 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
27 self.frame = QtGui.QFrame(Form)
28 self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
29 self.frame.setFrameShadow(QtGui.QFrame.Raised)
30 self.frame.setObjectName(_fromUtf8("frame"))
31 self.verticalLayout_2 = QtGui.QVBoxLayout(self.frame)
32 self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
33 self.horizontalLayout_2 = QtGui.QHBoxLayout()
34 self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
35 self.local_device_box = QtGui.QVBoxLayout()32 self.local_device_box = QtGui.QVBoxLayout()
36 self.local_device_box.setObjectName(_fromUtf8("local_device_box"))33 self.local_device_box.setObjectName(_fromUtf8("local_device_box"))
37 self.horizontalLayout_2.addLayout(self.local_device_box)34 self.verticalLayout.addLayout(self.local_device_box)
38 self.verticalLayout_2.addLayout(self.horizontalLayout_2)35 self.verticalLayout_3.addWidget(self.local_device)
39 self.horizontalLayout = QtGui.QHBoxLayout()36 self.oher_devices = QtGui.QGroupBox(Form)
40 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))37 self.oher_devices.setObjectName(_fromUtf8("oher_devices"))
41 self.other_devices_label = QtGui.QLabel(self.frame)38 self.verticalLayout_2 = QtGui.QVBoxLayout(self.oher_devices)
42 self.other_devices_label.setObjectName(_fromUtf8("other_devices_label"))39 self.verticalLayout_2.setMargin(0)
43 self.horizontalLayout.addWidget(self.other_devices_label)40 self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
44 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)41 self.list_devices = QtGui.QListWidget(self.oher_devices)
45 self.horizontalLayout.addItem(spacerItem)42 self.list_devices.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
46 self.verticalLayout_2.addLayout(self.horizontalLayout)
47 self.list_devices = QtGui.QListWidget(self.frame)
48 self.list_devices.setAlternatingRowColors(True)43 self.list_devices.setAlternatingRowColors(True)
49 self.list_devices.setIconSize(QtCore.QSize(32, 32))44 self.list_devices.setIconSize(QtCore.QSize(32, 32))
50 self.list_devices.setSpacing(0)45 self.list_devices.setSpacing(0)
51 self.list_devices.setSelectionRectVisible(False)46 self.list_devices.setSelectionRectVisible(False)
52 self.list_devices.setObjectName(_fromUtf8("list_devices"))47 self.list_devices.setObjectName(_fromUtf8("list_devices"))
53 self.verticalLayout_2.addWidget(self.list_devices)48 self.verticalLayout_2.addWidget(self.list_devices)
49 self.verticalLayout_3.addWidget(self.oher_devices)
54 self.horizontalLayout_3 = QtGui.QHBoxLayout()50 self.horizontalLayout_3 = QtGui.QHBoxLayout()
51 self.horizontalLayout_3.setMargin(3)
55 self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))52 self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
53 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
54 self.horizontalLayout_3.addItem(spacerItem)
55 self.manage_devices_button = GoToWebButton(Form)
56 self.manage_devices_button.setObjectName(_fromUtf8("manage_devices_button"))
57 self.horizontalLayout_3.addWidget(self.manage_devices_button)
56 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)58 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
57 self.horizontalLayout_3.addItem(spacerItem1)59 self.horizontalLayout_3.addItem(spacerItem1)
58 self.manage_devices_button = GoToWebButton(self.frame)60 self.verticalLayout_3.addLayout(self.horizontalLayout_3)
59 self.manage_devices_button.setObjectName(_fromUtf8("manage_devices_button"))
60 self.horizontalLayout_3.addWidget(self.manage_devices_button)
61 spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
62 self.horizontalLayout_3.addItem(spacerItem2)
63 self.verticalLayout_2.addLayout(self.horizontalLayout_3)
64 self.verticalLayout.addWidget(self.frame)
6561
66 self.retranslateUi(Form)62 self.retranslateUi(Form)
67 QtCore.QMetaObject.connectSlotsByName(Form)63 QtCore.QMetaObject.connectSlotsByName(Form)
6864
69 def retranslateUi(self, Form):65 def retranslateUi(self, Form):
70 self.other_devices_label.setText(_('Other devices'))66 self.local_device.setTitle(_('This device'))
67 self.oher_devices.setTitle(_('Other devices'))
71 self.manage_devices_button.setText(_('Go to the web page to manage your other devices'))68 self.manage_devices_button.setText(_('Go to the web page to manage your other devices'))
7269
73from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton70from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton
7471
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/filesyncstatus_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/filesyncstatus.ui'3# Form implementation generated from reading ui file 'data/qt/filesyncstatus.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -18,16 +18,14 @@
18class Ui_Form(object):18class Ui_Form(object):
19 def setupUi(self, Form):19 def setupUi(self, Form):
20 Form.setObjectName(_fromUtf8("Form"))20 Form.setObjectName(_fromUtf8("Form"))
21 Form.resize(310, 211)21 Form.resize(94, 49)
22 Form.setWindowTitle(_fromUtf8("Form"))22 Form.setWindowTitle(_fromUtf8("Form"))
23 self.horizontalLayout_2 = QtGui.QHBoxLayout(Form)23 self.verticalLayout = QtGui.QVBoxLayout(Form)
24 self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))24 self.verticalLayout.setMargin(0)
25 self.verticalLayout = QtGui.QVBoxLayout()
26 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))25 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
27 self.horizontalLayout = QtGui.QHBoxLayout()26 self.horizontalLayout = QtGui.QHBoxLayout()
28 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))27 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
29 self.sync_status_icon = QtGui.QLabel(Form)28 self.sync_status_icon = QtGui.QLabel(Form)
30 self.sync_status_icon.setText(_fromUtf8(""))
31 self.sync_status_icon.setObjectName(_fromUtf8("sync_status_icon"))29 self.sync_status_icon.setObjectName(_fromUtf8("sync_status_icon"))
32 self.horizontalLayout.addWidget(self.sync_status_icon)30 self.horizontalLayout.addWidget(self.sync_status_icon)
33 self.sync_status_label = QtGui.QLabel(Form)31 self.sync_status_label = QtGui.QLabel(Form)
@@ -37,15 +35,13 @@
37 self.horizontalLayout.addWidget(self.sync_status_label)35 self.horizontalLayout.addWidget(self.sync_status_label)
38 self.verticalLayout.addLayout(self.horizontalLayout)36 self.verticalLayout.addLayout(self.horizontalLayout)
39 self.sync_status_button = QtGui.QPushButton(Form)37 self.sync_status_button = QtGui.QPushButton(Form)
40 self.sync_status_button.setText(_fromUtf8(""))
41 self.sync_status_button.setObjectName(_fromUtf8("sync_status_button"))38 self.sync_status_button.setObjectName(_fromUtf8("sync_status_button"))
42 self.verticalLayout.addWidget(self.sync_status_button)39 self.verticalLayout.addWidget(self.sync_status_button)
43 self.horizontalLayout_2.addLayout(self.verticalLayout)
44 self.sync_status_label.setBuddy(self.sync_status_button)40 self.sync_status_label.setBuddy(self.sync_status_button)
4541
46 self.retranslateUi(Form)42 self.retranslateUi(Form)
47 QtCore.QMetaObject.connectSlotsByName(Form)43 QtCore.QMetaObject.connectSlotsByName(Form)
4844
49 def retranslateUi(self, Form):45 def retranslateUi(self, Form):
50 self.sync_status_button.setToolTip(_('test'))46 pass
5147
5248
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/folders_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/folders_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/folders_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/folders.ui'3# Form implementation generated from reading ui file 'data/qt/folders.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -18,45 +18,74 @@
18class Ui_Form(object):18class Ui_Form(object):
19 def setupUi(self, Form):19 def setupUi(self, Form):
20 Form.setObjectName(_fromUtf8("Form"))20 Form.setObjectName(_fromUtf8("Form"))
21 Form.resize(607, 435)21 Form.resize(345, 279)
22 Form.setWindowTitle(_fromUtf8("Form"))22 Form.setWindowTitle(_fromUtf8("Form"))
23 Form.setStyleSheet(_fromUtf8(""))23 Form.setStyleSheet(_fromUtf8("padding: 0px;"))
24 self.verticalLayout = QtGui.QVBoxLayout(Form)24 self.verticalLayout = QtGui.QVBoxLayout(Form)
25 self.verticalLayout.setSpacing(0)
26 self.verticalLayout.setMargin(0)
25 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))27 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
28 self.frame_top = QtGui.QFrame(Form)
29 self.frame_top.setMinimumSize(QtCore.QSize(0, 35))
30 self.frame_top.setObjectName(_fromUtf8("frame_top"))
31 self.horizontalLayout_2 = QtGui.QHBoxLayout(self.frame_top)
32 self.horizontalLayout_2.setMargin(3)
33 self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
34 self.share_publish_button = GoToWebButton(self.frame_top)
35 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
36 sizePolicy.setHorizontalStretch(0)
37 sizePolicy.setVerticalStretch(0)
38 sizePolicy.setHeightForWidth(self.share_publish_button.sizePolicy().hasHeightForWidth())
39 self.share_publish_button.setSizePolicy(sizePolicy)
40 self.share_publish_button.setObjectName(_fromUtf8("share_publish_button"))
41 self.horizontalLayout_2.addWidget(self.share_publish_button)
42 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
43 self.horizontalLayout_2.addItem(spacerItem)
44 self.verticalLayout.addWidget(self.frame_top)
26 self.folders = QtGui.QTreeWidget(Form)45 self.folders = QtGui.QTreeWidget(Form)
46 self.folders.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
27 self.folders.setAlternatingRowColors(True)47 self.folders.setAlternatingRowColors(True)
28 self.folders.setUniformRowHeights(False)48 self.folders.setIndentation(15)
49 self.folders.setRootIsDecorated(False)
29 self.folders.setItemsExpandable(True)50 self.folders.setItemsExpandable(True)
30 self.folders.setHeaderHidden(False)51 self.folders.setHeaderHidden(True)
31 self.folders.setObjectName(_fromUtf8("folders"))52 self.folders.setObjectName(_fromUtf8("folders"))
32 self.folders.header().setVisible(True)53 self.folders.header().setVisible(False)
33 self.folders.header().setCascadingSectionResizes(False)54 self.folders.header().setCascadingSectionResizes(False)
34 self.folders.header().setDefaultSectionSize(300)55 self.folders.header().setDefaultSectionSize(300)
35 self.folders.header().setHighlightSections(False)56 self.folders.header().setHighlightSections(False)
36 self.folders.header().setSortIndicatorShown(False)57 self.folders.header().setSortIndicatorShown(False)
37 self.folders.header().setStretchLastSection(True)58 self.folders.header().setStretchLastSection(True)
38 self.verticalLayout.addWidget(self.folders)59 self.verticalLayout.addWidget(self.folders)
39 self.horizontalLayout_3 = QtGui.QHBoxLayout()60 self.frame_bottom = QtGui.QFrame(Form)
40 self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))61 self.frame_bottom.setMinimumSize(QtCore.QSize(0, 40))
41 self.share_publish_button = GoToWebButton(Form)62 self.frame_bottom.setObjectName(_fromUtf8("frame_bottom"))
42 self.share_publish_button.setObjectName(_fromUtf8("share_publish_button"))63 self.horizontalLayout = QtGui.QHBoxLayout(self.frame_bottom)
43 self.horizontalLayout_3.addWidget(self.share_publish_button)64 self.horizontalLayout.setMargin(3)
44 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)65 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
45 self.horizontalLayout_3.addItem(spacerItem)66 spacerItem1 = QtGui.QSpacerItem(53, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
46 self.add_folder_button = AddFolderButton(Form)67 self.horizontalLayout.addItem(spacerItem1)
68 self.add_folder_button = AddFolderButton(self.frame_bottom)
69 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
70 sizePolicy.setHorizontalStretch(0)
71 sizePolicy.setVerticalStretch(0)
72 sizePolicy.setHeightForWidth(self.add_folder_button.sizePolicy().hasHeightForWidth())
73 self.add_folder_button.setSizePolicy(sizePolicy)
47 self.add_folder_button.setObjectName(_fromUtf8("add_folder_button"))74 self.add_folder_button.setObjectName(_fromUtf8("add_folder_button"))
48 self.horizontalLayout_3.addWidget(self.add_folder_button)75 self.horizontalLayout.addWidget(self.add_folder_button)
49 self.verticalLayout.addLayout(self.horizontalLayout_3)76 spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
77 self.horizontalLayout.addItem(spacerItem2)
78 self.verticalLayout.addWidget(self.frame_bottom)
5079
51 self.retranslateUi(Form)80 self.retranslateUi(Form)
52 QtCore.QMetaObject.connectSlotsByName(Form)81 QtCore.QMetaObject.connectSlotsByName(Form)
5382
54 def retranslateUi(self, Form):83 def retranslateUi(self, Form):
84 self.share_publish_button.setText(_('Go to the web for public and private sharing options'))
55 self.folders.headerItem().setText(0, _('Name'))85 self.folders.headerItem().setText(0, _('Name'))
56 self.folders.headerItem().setText(1, _('Sync Locally?'))86 self.folders.headerItem().setText(1, _('Sync Locally?'))
57 self.folders.headerItem().setText(2, _(' '))87 self.folders.headerItem().setText(2, _('Explore'))
58 self.share_publish_button.setText(_('Go to the web to share folders and publish files'))88 self.add_folder_button.setText(_('Add a folder from this computer'))
59 self.add_folder_button.setText(_('Sync another folder with your cloud'))
6089
61from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton90from ubuntuone.controlpanel.gui.qt.gotoweb import GoToWebButton
62from ubuntuone.controlpanel.gui.qt.addfolder import AddFolderButton91from ubuntuone.controlpanel.gui.qt.addfolder import AddFolderButton
6392
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/images_rc.py'
--- ubuntuone/controlpanel/gui/qt/ui/images_rc.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/images_rc.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Resource object code3# Resource object code
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: The Resource Compiler for PyQt (Qt v4.7.2)6# by: The Resource Compiler for PyQt (Qt v4.7.2)
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -412,102 +412,180 @@
412\x04\xc3\x06\xd0\xb4\xf6\x1c\xaa\xf8\x39\x94\x8f\x12\xe1\x00\x01\412\x04\xc3\x06\xd0\xb4\xf6\x1c\xaa\xf8\x39\x94\x8f\x12\xe1\x00\x01\
413\x06\x00\x00\x4e\x7e\x7b\x48\x93\x95\x27\x00\x00\x00\x00\x49\x45\413\x06\x00\x00\x4e\x7e\x7b\x48\x93\x95\x27\x00\x00\x00\x00\x49\x45\
414\x4e\x44\xae\x42\x60\x82\414\x4e\x44\xae\x42\x60\x82\
415\x00\x00\x0f\x1d\415\x00\x00\x12\xb1\
416\x51\416\x51\
417\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x20\x7b\x0a\x20\x20\x20\417\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x20\x7b\x0a\x20\x20\x20\
418\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\418\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\
419\x72\x3a\x20\x23\x64\x64\x34\x38\x31\x34\x3b\x0a\x7d\x0a\x0a\x51\419\x72\x3a\x20\x23\x64\x64\x34\x38\x31\x34\x3b\x0a\x7d\x0a\x0a\x51\
420\x46\x72\x61\x6d\x65\x23\x66\x72\x6d\x48\x65\x61\x64\x65\x72\x20\420\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\
421\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\421\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\x22\x55\x62\x75\x6e\x74\
422\x3a\x20\x23\x66\x66\x66\x66\x66\x66\x3b\x0a\x20\x20\x20\x20\x62\422\x75\x22\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\x6d\x65\x20\x7b\x0a\
423\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\423\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x6e\x6f\x6e\x65\
424\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\424\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\x6d\x65\x23\x66\x72\x61\x6d\
425\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\425\x65\x5f\x68\x65\x61\x64\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x62\
426\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\426\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\x66\x66\x66\
427\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\427\x66\x66\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\
428\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\428\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\
429\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\429\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\
430\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\430\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
431\x31\x30\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\
432\x75\x74\x74\x6f\x6e\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\x22\x74\
433\x72\x75\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\
434\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\
435\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\
436\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\
437\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\
438\x3a\x20\x30\x20\x23\x66\x65\x63\x66\x63\x32\x2c\x73\x74\x6f\x70\
439\x3a\x20\x31\x2e\x30\x20\x23\x65\x34\x34\x65\x31\x39\x29\x3b\x0a\
440\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\
441\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
442\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\
443\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\
444\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\
445\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
446\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\431\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\
447\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\432\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\
448\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\433\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\
449\x74\x3a\x20\x31\x34\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\434\x65\x69\x67\x68\x74\x3a\x20\x39\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\
450\x68\x42\x75\x74\x74\x6f\x6e\x3a\x68\x6f\x76\x65\x72\x5b\x65\x6e\435\x51\x46\x72\x61\x6d\x65\x23\x66\x72\x61\x6d\x65\x5f\x67\x72\x65\
451\x61\x62\x6c\x65\x64\x3d\x22\x74\x72\x75\x65\x22\x5d\x20\x7b\x0a\436\x65\x74\x69\x6e\x67\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\
452\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\437\x69\x6e\x20\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\
453\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\438\x69\x6e\x67\x2d\x6c\x65\x66\x74\x3a\x20\x31\x35\x70\x78\x3b\x0a\
454\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\439\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x74\x6f\x70\x3a\
455\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\440\x20\x31\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\
456\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\x66\x65\x64\441\x6e\x67\x2d\x72\x69\x67\x68\x74\x3a\x20\x31\x30\x70\x78\x3b\x0a\
457\x61\x64\x31\x2c\x73\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x65\442\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x62\x6f\x74\x74\
458\x34\x37\x61\x35\x35\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\443\x6f\x6d\x3a\x20\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\
459\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\444\x61\x6d\x65\x23\x66\x72\x61\x6d\x65\x5f\x73\x74\x61\x74\x75\x73\
445\x2c\x0a\x51\x46\x72\x61\x6d\x65\x23\x66\x72\x61\x6d\x65\x5f\x73\
446\x74\x6f\x72\x61\x67\x65\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\
447\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x64\x6f\x74\x74\x65\
448\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\
449\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\
450\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x77\x69\
451\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\
452\x64\x64\x69\x6e\x67\x3a\x20\x31\x30\x70\x78\x3b\x0a\x20\x20\x20\
453\x20\x6d\x69\x6e\x2d\x77\x69\x64\x74\x68\x3a\x20\x34\x30\x70\x78\
454\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\x6d\x65\x23\x61\x63\x63\x6f\
455\x75\x6e\x74\x5f\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x7b\x0a\
460\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\456\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\
461\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\457\x3a\x20\x64\x6f\x74\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\
462\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\458\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\
463\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\459\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
464\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\460\x62\x6f\x74\x74\x6f\x6d\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\
465\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\461\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\
466\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\462\x6e\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\x22\x74\x72\x75\x65\x22\
467\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\463\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\
468\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x3a\464\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\x61\x64\x69\
469\x70\x72\x65\x73\x73\x65\x64\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\465\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\
470\x22\x74\x72\x75\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\466\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\
471\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\467\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\
472\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\468\x23\x66\x65\x63\x66\x63\x32\x2c\x20\x73\x74\x6f\x70\x3a\x20\x31\
473\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\469\x2e\x30\x20\x23\x65\x34\x34\x65\x31\x39\x29\x3b\x0a\x20\x20\x20\
474\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\470\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\
475\x6f\x70\x3a\x20\x30\x20\x23\x65\x34\x34\x65\x31\x39\x2c\x73\x74\471\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
476\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x66\x65\x63\x66\x63\x32\x29\472\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\
477\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\473\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x3b\x0a\
478\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\474\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\
479\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\475\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\
480\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\476\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\
481\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\477\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\
482\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\478\x70\x78\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\
483\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\479\x31\x34\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\
484\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\480\x74\x74\x6f\x6e\x3a\x68\x6f\x76\x65\x72\x5b\x65\x6e\x61\x62\x6c\
485\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\481\x65\x64\x3d\x22\x74\x72\x75\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\
486\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\
487\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x5b\x65\x6e\x61\x62\x6c\x65\
488\x64\x3d\x22\x66\x61\x6c\x73\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\
489\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\482\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\
490\x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\483\x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\
491\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\484\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\
492\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\485\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\
493\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\x65\x61\x65\x61\x65\x61\486\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\x66\x65\x64\x61\x64\x31\
494\x2c\x20\x73\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x63\x61\x63\487\x2c\x73\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x65\x34\x37\x61\
495\x61\x63\x61\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\488\x35\x35\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
496\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\489\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\
497\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\490\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\
498\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\491\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\
499\x6e\x67\x3a\x20\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\492\x67\x3a\x20\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\
500\x6f\x72\x3a\x20\x23\x35\x39\x35\x39\x35\x39\x3b\x0a\x20\x20\x20\493\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\
501\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\494\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\
495\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
496\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\
497\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\
498\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x3a\x70\x72\x65\
499\x73\x73\x65\x64\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\x22\x74\x72\
500\x75\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\
501\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\
502\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\
503\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\
504\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\
505\x20\x30\x20\x23\x65\x34\x34\x65\x31\x39\x2c\x73\x74\x6f\x70\x3a\
506\x20\x31\x2e\x30\x20\x23\x66\x65\x63\x66\x63\x32\x29\x3b\x0a\x20\
507\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\
508\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
509\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\
510\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\
511\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\
512\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\
513\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\
514\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\
515\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\
516\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\
517\x42\x75\x74\x74\x6f\x6e\x5b\x65\x6e\x61\x62\x6c\x65\x64\x3d\x22\
518\x66\x61\x6c\x73\x65\x22\x5d\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\
519\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\
520\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\
521\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\
522\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\
523\x6f\x70\x3a\x20\x30\x20\x23\x65\x61\x65\x61\x65\x61\x2c\x20\x73\
524\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\x23\x63\x61\x63\x61\x63\x61\
525\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\
526\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\
527\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\
528\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\
529\x20\x36\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\
530\x20\x23\x35\x39\x35\x39\x35\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\
531\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\
532\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
533\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\
534\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\
535\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x23\x68\x65\x6c\
536\x70\x5f\x62\x75\x74\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\
537\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x74\x72\x61\x6e\x73\
538\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
539\x65\x72\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\
540\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\
541\x68\x65\x69\x67\x68\x74\x3a\x20\x32\x30\x70\x78\x3b\x0a\x20\x20\
542\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\x74\x69\x6f\
543\x6e\x3a\x20\x75\x6e\x64\x65\x72\x6c\x69\x6e\x65\x3b\x0a\x20\x20\
544\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x3b\x0a\
545\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x23\x65\
546\x78\x70\x6c\x6f\x72\x65\x5f\x66\x6f\x6c\x64\x65\x72\x5f\x62\x75\
547\x74\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
548\x72\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\
549\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\
550\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x35\x39\x35\x39\x35\
551\x39\x3b\x0a\x7d\x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\
552\x6e\x23\x61\x64\x64\x5f\x66\x6f\x6c\x64\x65\x72\x5f\x62\x75\x74\
553\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\
554\x67\x3a\x20\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x47\x6f\x54\x6f\x57\
555\x65\x62\x42\x75\x74\x74\x6f\x6e\x23\x73\x68\x61\x72\x65\x5f\x70\
556\x75\x62\x6c\x69\x73\x68\x5f\x62\x75\x74\x74\x6f\x6e\x20\x7b\x0a\
557\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\
558\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\
559\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\
560\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x64\x64\x34\x38\x31\
561\x34\x3b\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\
562\x72\x61\x74\x69\x6f\x6e\x3a\x20\x75\x6e\x64\x65\x72\x6c\x69\x6e\
563\x65\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\
564\x61\x62\x20\x7b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\
565\x20\x31\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\
566\x3a\x20\x23\x33\x33\x33\x33\x33\x33\x3b\x0a\x20\x20\x20\x20\x62\
567\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\
568\x20\x23\x65\x34\x65\x30\x64\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\
569\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x6c\x65\x66\x74\x2d\x72\x61\
570\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\
571\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\
572\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\
573\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\
574\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\
575\x67\x3a\x20\x31\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
576\x64\x65\x72\x2d\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\
502\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\577\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
503\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\578\x65\x72\x2d\x72\x69\x67\x68\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\
504\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\579\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
505\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\580\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\
506\x20\x7b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\581\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
507\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\582\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\
508\x23\x33\x33\x33\x33\x33\x33\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\583\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
509\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\584\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\
510\x65\x34\x65\x30\x64\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\585\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\
586\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\x20\x20\x62\
587\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\
588\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
511\x65\x72\x2d\x74\x6f\x70\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\589\x65\x72\x2d\x74\x6f\x70\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\
512\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\590\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
513\x64\x65\x72\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\591\x64\x65\x72\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\
@@ -521,141 +599,121 @@
521\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\599\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
522\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\600\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\
523\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\601\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
524\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\602\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\
525\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\603\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
526\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x7d\x0a\604\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\
527\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x73\x65\
528\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\
529\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\
530\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
531\x2d\x74\x6f\x70\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\x75\x73\
532\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
533\x72\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\
534\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\
535\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\
536\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x31\
537\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
538\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\
539\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\
540\x69\x67\x68\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\
541\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
542\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\
543\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\
544\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\
545\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\
546\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\
547\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x66\x69\x72\x73\x74\x3a\
548\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\x20\x20\
549\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\
550\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\
551\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\
552\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x7d\x0a\x0a\x51\
553\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x66\x69\x72\x73\605\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x66\x69\x72\x73\
554\x74\x3a\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\x20\606\x74\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\x20\
555\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\607\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\
556\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x7d\x0a\x0a\608\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\
557\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x6d\x69\x64\609\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\
558\x64\x6c\x65\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\610\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x7d\x0a\
559\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\611\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x66\x69\
560\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x34\x65\x30\x64\x64\x3b\x0a\612\x72\x73\x74\x3a\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\x0a\x20\
561\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\613\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\
562\x6c\x61\x73\x74\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x7b\614\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x7d\
563\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\615\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x6d\
564\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x34\x65\x30\x64\x64\x3b\616\x69\x64\x64\x6c\x65\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\
565\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x57\x69\x64\x67\x65\x74\x20\x7b\617\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\
618\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x34\x65\x30\x64\x64\
619\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\
620\x62\x3a\x68\x6f\x76\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\
621\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\
622\x72\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\
623\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\
624\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\
625\x6f\x70\x3a\x20\x30\x20\x23\x66\x61\x66\x61\x66\x61\x2c\x20\x73\
626\x74\x6f\x70\x3a\x20\x30\x2e\x34\x20\x23\x66\x34\x66\x34\x66\x34\
627\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\
628\x30\x2e\x35\x20\x23\x65\x37\x65\x37\x65\x37\x2c\x20\x73\x74\x6f\
629\x70\x3a\x20\x31\x2e\x30\x20\x23\x66\x61\x66\x61\x66\x61\x29\x3b\
630\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\
631\x74\x69\x6f\x6e\x3a\x20\x75\x6e\x64\x65\x72\x6c\x69\x6e\x65\x3b\
632\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\
633\x3a\x6c\x61\x73\x74\x3a\x21\x73\x65\x6c\x65\x63\x74\x65\x64\x20\
634\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\
635\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x34\x65\x30\x64\x64\
636\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x57\x69\x64\x67\x65\x74\x20\
637\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\
638\x74\x6f\x6d\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\
639\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
640\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\
641\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\
642\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\
643\x69\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\
644\x20\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x57\x69\
645\x64\x67\x65\x74\x3a\x3a\x70\x61\x6e\x65\x20\x7b\x0a\x20\x20\x20\
646\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x6c\
647\x65\x66\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\
566\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\648\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\
567\x6f\x6d\x2d\x6c\x65\x66\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\649\x6f\x6d\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\
568\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\650\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
569\x62\x6f\x74\x74\x6f\x6d\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\651\x2d\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\x75\
570\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\652\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\
571\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\653\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\
572\x64\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\654\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\
573\x31\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x54\x61\x62\x57\x69\x64\655\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\
574\x67\x65\x74\x3a\x3a\x70\x61\x6e\x65\x20\x7b\x0a\x20\x20\x20\x20\656\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\
575\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x6c\x65\657\x78\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
576\x66\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\658\x64\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\
577\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\659\x72\x64\x65\x72\x2d\x74\x6f\x70\x3a\x20\x32\x70\x78\x20\x73\x6f\
578\x6d\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\660\x6c\x69\x64\x20\x77\x68\x69\x74\x65\x3b\x0a\x7d\x0a\x0a\x51\x47\
579\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\661\x72\x6f\x75\x70\x42\x6f\x78\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\
580\x74\x6f\x70\x2d\x72\x69\x67\x68\x74\x2d\x72\x61\x64\x69\x75\x73\662\x64\x64\x69\x6e\x67\x2d\x74\x6f\x70\x3a\x20\x33\x30\x70\x78\x3b\
581\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\663\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x6e\x6f\x6e\
582\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\664\x65\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\
583\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\665\x70\x3a\x20\x31\x65\x78\x3b\x0a\x7d\x0a\x0a\x51\x47\x72\x6f\x75\
584\x3a\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\666\x70\x42\x6f\x78\x3a\x3a\x74\x69\x74\x6c\x65\x20\x7b\x0a\x20\x20\
585\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\667\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x33\x33\x33\x33\x33\x33\
586\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\668\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x3a\x20\x62\x6f\x6c\x64\
587\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\669\x20\x31\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x47\x72\x6f\x75\x70\
588\x64\x65\x72\x2d\x74\x6f\x70\x3a\x20\x32\x70\x78\x20\x73\x6f\x6c\670\x42\x6f\x78\x23\x70\x72\x6f\x66\x69\x6c\x65\x2c\x0a\x51\x47\x72\
589\x69\x64\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x7d\x0a\x0a\x51\x54\671\x6f\x75\x70\x42\x6f\x78\x23\x73\x65\x72\x76\x69\x63\x65\x73\x20\
590\x61\x62\x42\x61\x72\x3a\x3a\x74\x61\x62\x3a\x68\x6f\x76\x65\x72\672\x7b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x6c\x65\
591\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\673\x66\x74\x3a\x20\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\x69\x73\
592\x64\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\674\x74\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\
593\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x2c\675\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\x37\x66\x36\x66\
594\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\x20\676\x35\x3b\x0a\x20\x20\x20\x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x65\
595\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\677\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\
596\x66\x61\x66\x61\x66\x61\x2c\x20\x73\x74\x6f\x70\x3a\x20\x30\x2e\678\x72\x3a\x20\x23\x65\x66\x65\x64\x65\x63\x3b\x0a\x7d\x0a\x0a\x51\
597\x34\x20\x23\x66\x34\x66\x34\x66\x34\x2c\x0a\x20\x20\x20\x20\x20\679\x4c\x69\x73\x74\x57\x69\x64\x67\x65\x74\x23\x6c\x69\x73\x74\x5f\
598\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x2e\x35\x20\x23\x65\x37\680\x64\x65\x76\x69\x63\x65\x73\x3a\x3a\x69\x74\x65\x6d\x20\x7b\x0a\
599\x65\x37\x65\x37\x2c\x20\x73\x74\x6f\x70\x3a\x20\x31\x2e\x30\x20\681\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\
600\x23\x66\x61\x66\x61\x66\x61\x29\x3b\x0a\x20\x7d\x0a\x0a\x51\x50\682\x34\x38\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\x65\x6c\x23\
601\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x23\x68\x65\x6c\x70\x5f\x62\683\x6f\x74\x68\x65\x72\x5f\x64\x65\x76\x69\x63\x65\x73\x5f\x6c\x61\
602\x75\x74\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\684\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x3a\x20\
603\x67\x72\x6f\x75\x6e\x64\x3a\x20\x74\x72\x61\x6e\x73\x70\x61\x72\685\x62\x6f\x6c\x64\x20\x31\x36\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\
604\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\686\x61\x62\x65\x6c\x23\x70\x65\x72\x63\x65\x6e\x74\x61\x67\x65\x5f\
605\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\687\x75\x73\x61\x67\x65\x5f\x6c\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\
606\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\688\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x2d\x34\
607\x67\x68\x74\x3a\x20\x32\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x74\689\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\x65\x6c\x23\x66\x6f\
608\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\x74\x69\x6f\x6e\x3a\x20\690\x6c\x6c\x6f\x77\x5f\x75\x73\x5f\x6c\x61\x62\x65\x6c\x20\x7b\x0a\
609\x75\x6e\x64\x65\x72\x6c\x69\x6e\x65\x3b\x0a\x20\x20\x20\x20\x70\691\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\
610\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\692\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\x6d\x65\x23\x66\x72\x6d\x5f\
611\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x23\x65\x78\x70\x6c\693\x62\x6f\x78\x20\x7b\x20\x2f\x2a\x20\x74\x68\x65\x20\x6c\x6f\x61\
612\x6f\x72\x65\x5f\x66\x6f\x6c\x64\x65\x72\x5f\x62\x75\x74\x74\x6f\694\x64\x69\x6e\x67\x6f\x76\x65\x72\x6c\x61\x79\x20\x66\x72\x61\x6d\
613\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\695\x65\x20\x2a\x2f\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\
614\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\696\x75\x6e\x64\x3a\x20\x23\x66\x66\x66\x66\x66\x66\x3b\x0a\x20\x20\
615\x6f\x75\x6e\x64\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x7d\x0a\x0a\x51\697\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\
616\x47\x72\x6f\x75\x70\x42\x6f\x78\x20\x7b\x0a\x20\x20\x20\x20\x70\698\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
617\x61\x64\x64\x69\x6e\x67\x2d\x74\x6f\x70\x3a\x20\x33\x30\x70\x78\699\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\
618\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x30\x70\700\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\
619\x78\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\701\x20\x23\x39\x33\x39\x33\x38\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\
620\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x31\x65\x78\x3b\x0a\x20\x20\702\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\
621\x20\x20\x66\x6f\x6e\x74\x3a\x20\x62\x6f\x6c\x64\x20\x31\x35\x70\703\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x69\x74\
622\x78\x3b\x0a\x7d\x0a\x0a\x51\x47\x72\x6f\x75\x70\x42\x6f\x78\x3a\704\x65\x3b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\x65\x69\x67\x68\
623\x3a\x74\x69\x74\x6c\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\705\x74\x3a\x20\x31\x30\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x41\x62\
624\x6f\x72\x3a\x20\x23\x33\x33\x33\x33\x33\x33\x3b\x0a\x7d\x0a\x0a\706\x73\x74\x72\x61\x63\x74\x49\x74\x65\x6d\x56\x69\x65\x77\x20\x7b\
625\x51\x4c\x69\x73\x74\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\707\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\
626\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\708\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\
627\x37\x66\x36\x66\x35\x3b\x0a\x20\x20\x20\x20\x61\x6c\x74\x65\x72\709\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x33\x33\x33\
628\x6e\x61\x74\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\710\x33\x33\x33\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
629\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x66\x65\x64\x65\x63\x3b\x0a\711\x77\x69\x64\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\
630\x7d\x0a\x0a\x51\x4c\x69\x73\x74\x57\x69\x64\x67\x65\x74\x23\x6c\712\x61\x6c\x74\x65\x72\x6e\x61\x74\x65\x2d\x62\x61\x63\x6b\x67\x72\
631\x69\x73\x74\x44\x65\x76\x69\x63\x65\x73\x3a\x3a\x69\x74\x65\x6d\713\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x65\x66\x65\
632\x20\x7b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\x68\x65\x69\x67\x68\714\x64\x65\x63\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\
633\x74\x3a\x20\x34\x38\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\715\x75\x6e\x64\x3a\x20\x23\x66\x37\x66\x36\x66\x35\x3b\x0a\x7d\x0a\
634\x65\x6c\x23\x6f\x74\x68\x65\x72\x5f\x64\x65\x76\x69\x63\x65\x73\716\
635\x5f\x6c\x61\x62\x65\x6c\x2c\x0a\x51\x4c\x61\x62\x65\x6c\x23\x74\
636\x69\x74\x6c\x65\x5f\x6c\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\
637\x20\x66\x6f\x6e\x74\x3a\x20\x62\x6f\x6c\x64\x20\x31\x36\x70\x78\
638\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\x65\x6c\x23\x70\x65\x72\x63\
639\x65\x6e\x74\x61\x67\x65\x5f\x75\x73\x61\x67\x65\x5f\x6c\x61\x62\
640\x65\x6c\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\
641\x74\x6f\x70\x3a\x20\x2d\x34\x70\x78\x3b\x0a\x7d\x0a\x0a\x51\x4c\
642\x61\x62\x65\x6c\x23\x66\x6f\x6c\x6c\x6f\x77\x5f\x75\x73\x5f\x6c\
643\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\
644\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x7d\x0a\x0a\x51\x46\x72\x61\
645\x6d\x65\x23\x66\x72\x6d\x5f\x62\x6f\x78\x20\x7b\x0a\x20\x20\x20\
646\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\x66\
647\x66\x66\x66\x66\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\
648\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\
649\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\
650\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\
651\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x33\x39\x33\x38\x39\
652\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\
653\x74\x68\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\
654\x6f\x72\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x6d\
655\x69\x6e\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x30\x30\x70\x78\
656\x3b\x0a\x7d\x0a\x0a\x51\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\
657\x20\x20\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\
658\x22\x55\x62\x75\x6e\x74\x75\x22\x3b\x0a\x7d\x0a\
659\x00\x00\x02\x6f\717\x00\x00\x02\x6f\
660\x89\718\x89\
661\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\719\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -23411,20 +23469,20 @@
2341123469
23412qt_resource_struct = "\23470qt_resource_struct = "\
23413\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x01\23471\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x01\
23414\x00\x00\x01\xf0\x00\x00\x00\x00\x00\x01\x00\x05\xae\xdf\23472\x00\x00\x01\xf0\x00\x00\x00\x00\x00\x01\x00\x05\xb2\x73\
23415\x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xe5\23473\x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xe5\
23416\x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x17\xfe\23474\x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x17\xfe\
23417\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x09\xc8\23475\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x09\xc8\
23418\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x05\xa6\x8a\23476\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x05\xaa\x1e\
23419\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x04\x92\23477\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x04\x92\
23420\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\23478\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
23421\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x11\xb2\23479\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x11\xb2\
23422\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x01\xd5\23480\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x01\xd5\
23423\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x83\23481\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x83\
23424\x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x16\xd3\23482\x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x16\xd3\
23425\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x05\xaa\x16\23483\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x05\xad\xaa\
23426\x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x27\x1f\23484\x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x2a\xb3\
23427\x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x00\x29\x92\23485\x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x26\
23428"23486"
2342923487
23430def qInitResources():23488def qInitResources():
2343123489
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/loadingoverlay_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/loadingoverlay.ui'3# Form implementation generated from reading ui file 'data/qt/loadingoverlay.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -19,8 +19,6 @@
19 def setupUi(self, Form):19 def setupUi(self, Form):
20 Form.setObjectName(_fromUtf8("Form"))20 Form.setObjectName(_fromUtf8("Form"))
21 Form.resize(702, 230)21 Form.resize(702, 230)
22 Form.setFrameShape(QtGui.QFrame.StyledPanel)
23 Form.setFrameShadow(QtGui.QFrame.Raised)
24 self.verticalLayout = QtGui.QVBoxLayout(Form)22 self.verticalLayout = QtGui.QVBoxLayout(Form)
25 self.verticalLayout.setContentsMargins(-1, 30, -1, -1)23 self.verticalLayout.setContentsMargins(-1, 30, -1, -1)
26 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))24 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
@@ -30,9 +28,6 @@
30 self.horizontalLayout_2.addItem(spacerItem)28 self.horizontalLayout_2.addItem(spacerItem)
31 self.frm_box = QtGui.QFrame(Form)29 self.frm_box = QtGui.QFrame(Form)
32 self.frm_box.setMinimumSize(QtCore.QSize(0, 102))30 self.frm_box.setMinimumSize(QtCore.QSize(0, 102))
33 self.frm_box.setStyleSheet(_fromUtf8(""))
34 self.frm_box.setFrameShape(QtGui.QFrame.StyledPanel)
35 self.frm_box.setFrameShadow(QtGui.QFrame.Raised)
36 self.frm_box.setObjectName(_fromUtf8("frm_box"))31 self.frm_box.setObjectName(_fromUtf8("frm_box"))
37 self.horizontalLayout = QtGui.QHBoxLayout(self.frm_box)32 self.horizontalLayout = QtGui.QHBoxLayout(self.frm_box)
38 self.horizontalLayout.setContentsMargins(-1, 0, -1, 30)33 self.horizontalLayout.setContentsMargins(-1, 0, -1, 30)
@@ -60,5 +55,5 @@
6055
61 def retranslateUi(self, Form):56 def retranslateUi(self, Form):
62 Form.setWindowTitle(_('Frame'))57 Form.setWindowTitle(_('Frame'))
63 self.label.setText(_('Please wait while we retrieve the information...'))58 self.label.setText(_('Getting information, please wait...'))
6459
6560
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/mainwindow_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/mainwindow.ui'3# Form implementation generated from reading ui file 'data/qt/mainwindow.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
99
=== modified file 'ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py'
--- ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/qt/ui/preferences_ui.py 2011-08-12 19:16:23 +0000
@@ -2,7 +2,7 @@
22
3# Form implementation generated from reading ui file 'data/qt/preferences.ui'3# Form implementation generated from reading ui file 'data/qt/preferences.ui'
4#4#
5# Created: Fri Jul 22 17:06:43 20115# Created: Fri Aug 12 15:07:18 2011
6# by: PyQt4 UI code generator 4.8.36# by: PyQt4 UI code generator 4.8.3
7#7#
8# WARNING! All changes made in this file will be lost!8# WARNING! All changes made in this file will be lost!
@@ -18,71 +18,74 @@
18class Ui_Form(object):18class Ui_Form(object):
19 def setupUi(self, Form):19 def setupUi(self, Form):
20 Form.setObjectName(_fromUtf8("Form"))20 Form.setObjectName(_fromUtf8("Form"))
21 Form.resize(469, 352)21 Form.resize(433, 328)
22 Form.setWindowTitle(_fromUtf8("Form"))22 Form.setWindowTitle(_fromUtf8("Form"))
23 Form.setStyleSheet(_fromUtf8(""))23 Form.setStyleSheet(_fromUtf8(""))
24 self.verticalLayout = QtGui.QVBoxLayout(Form)24 self.verticalLayout = QtGui.QVBoxLayout(Form)
25 self.verticalLayout.setMargin(0)25 self.verticalLayout.setMargin(0)
26 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))26 self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
27 self.verticalGroupBox = QtGui.QGroupBox(Form)27 self.bandwidth_settings = QtGui.QGroupBox(Form)
28 self.verticalGroupBox.setObjectName(_fromUtf8("verticalGroupBox"))28 self.bandwidth_settings.setObjectName(_fromUtf8("bandwidth_settings"))
29 self.gridLayout = QtGui.QGridLayout(self.verticalGroupBox)29 self.gridLayout = QtGui.QGridLayout(self.bandwidth_settings)
30 self.gridLayout.setVerticalSpacing(10)30 self.gridLayout.setMargin(0)
31 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))31 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
32 self.limit_uploads_checkbox = QtGui.QCheckBox(self.verticalGroupBox)32 self.limit_uploads_checkbox = QtGui.QCheckBox(self.bandwidth_settings)
33 self.limit_uploads_checkbox.setObjectName(_fromUtf8("limit_uploads_checkbox"))33 self.limit_uploads_checkbox.setObjectName(_fromUtf8("limit_uploads_checkbox"))
34 self.gridLayout.addWidget(self.limit_uploads_checkbox, 0, 0, 1, 1)34 self.gridLayout.addWidget(self.limit_uploads_checkbox, 0, 0, 1, 1)
35 self.upload_speed_spinbox = QtGui.QSpinBox(self.verticalGroupBox)35 self.upload_speed_spinbox = QtGui.QSpinBox(self.bandwidth_settings)
36 self.upload_speed_spinbox.setMinimum(-1)36 self.upload_speed_spinbox.setMinimum(-1)
37 self.upload_speed_spinbox.setMaximum(999999999)37 self.upload_speed_spinbox.setMaximum(999999999)
38 self.upload_speed_spinbox.setObjectName(_fromUtf8("upload_speed_spinbox"))38 self.upload_speed_spinbox.setObjectName(_fromUtf8("upload_speed_spinbox"))
39 self.gridLayout.addWidget(self.upload_speed_spinbox, 0, 1, 1, 1)39 self.gridLayout.addWidget(self.upload_speed_spinbox, 0, 1, 1, 1)
40 self.kbps_label_1 = QtGui.QLabel(self.verticalGroupBox)40 self.kbps_label_1 = QtGui.QLabel(self.bandwidth_settings)
41 self.kbps_label_1.setObjectName(_fromUtf8("kbps_label_1"))41 self.kbps_label_1.setObjectName(_fromUtf8("kbps_label_1"))
42 self.gridLayout.addWidget(self.kbps_label_1, 0, 2, 1, 1)42 self.gridLayout.addWidget(self.kbps_label_1, 0, 2, 1, 1)
43 self.limit_downloads_checkbox = QtGui.QCheckBox(self.verticalGroupBox)43 self.limit_downloads_checkbox = QtGui.QCheckBox(self.bandwidth_settings)
44 self.limit_downloads_checkbox.setObjectName(_fromUtf8("limit_downloads_checkbox"))44 self.limit_downloads_checkbox.setObjectName(_fromUtf8("limit_downloads_checkbox"))
45 self.gridLayout.addWidget(self.limit_downloads_checkbox, 2, 0, 1, 1)45 self.gridLayout.addWidget(self.limit_downloads_checkbox, 2, 0, 1, 1)
46 self.download_speed_spinbox = QtGui.QSpinBox(self.verticalGroupBox)46 self.download_speed_spinbox = QtGui.QSpinBox(self.bandwidth_settings)
47 self.download_speed_spinbox.setMinimum(-1)47 self.download_speed_spinbox.setMinimum(-1)
48 self.download_speed_spinbox.setMaximum(999999999)48 self.download_speed_spinbox.setMaximum(999999999)
49 self.download_speed_spinbox.setObjectName(_fromUtf8("download_speed_spinbox"))49 self.download_speed_spinbox.setObjectName(_fromUtf8("download_speed_spinbox"))
50 self.gridLayout.addWidget(self.download_speed_spinbox, 2, 1, 1, 1)50 self.gridLayout.addWidget(self.download_speed_spinbox, 2, 1, 1, 1)
51 self.kbps_label_2 = QtGui.QLabel(self.verticalGroupBox)51 self.kbps_label_2 = QtGui.QLabel(self.bandwidth_settings)
52 self.kbps_label_2.setObjectName(_fromUtf8("kbps_label_2"))52 self.kbps_label_2.setObjectName(_fromUtf8("kbps_label_2"))
53 self.gridLayout.addWidget(self.kbps_label_2, 2, 2, 1, 1)53 self.gridLayout.addWidget(self.kbps_label_2, 2, 2, 1, 1)
54 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)54 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
55 self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)55 self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)
56 self.label_2 = QtGui.QLabel(self.verticalGroupBox)56 self.label_2 = QtGui.QLabel(self.bandwidth_settings)
57 self.label_2.setScaledContents(False)57 self.label_2.setScaledContents(False)
58 self.label_2.setWordWrap(False)58 self.label_2.setWordWrap(False)
59 self.label_2.setObjectName(_fromUtf8("label_2"))59 self.label_2.setObjectName(_fromUtf8("label_2"))
60 self.gridLayout.addWidget(self.label_2, 4, 0, 1, 3)60 self.gridLayout.addWidget(self.label_2, 4, 0, 1, 3)
61 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)61 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
62 self.gridLayout.addItem(spacerItem1, 3, 0, 1, 1)62 self.gridLayout.addItem(spacerItem1, 3, 0, 1, 1)
63 self.verticalLayout.addWidget(self.verticalGroupBox)63 self.verticalLayout.addWidget(self.bandwidth_settings)
64 self.groupBox_2 = QtGui.QGroupBox(Form)64 self.file_sync_settings = QtGui.QGroupBox(Form)
65 self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))65 self.file_sync_settings.setObjectName(_fromUtf8("file_sync_settings"))
66 self.verticalLayout_1 = QtGui.QVBoxLayout(self.groupBox_2)66 self.verticalLayout_1 = QtGui.QVBoxLayout(self.file_sync_settings)
67 self.verticalLayout_1.setSpacing(10)67 self.verticalLayout_1.setMargin(0)
68 self.verticalLayout_1.setObjectName(_fromUtf8("verticalLayout_1"))68 self.verticalLayout_1.setObjectName(_fromUtf8("verticalLayout_1"))
69 self.autoconnect_checkbox = QtGui.QCheckBox(self.groupBox_2)69 self.autoconnect_checkbox = QtGui.QCheckBox(self.file_sync_settings)
70 self.autoconnect_checkbox.setObjectName(_fromUtf8("autoconnect_checkbox"))70 self.autoconnect_checkbox.setObjectName(_fromUtf8("autoconnect_checkbox"))
71 self.verticalLayout_1.addWidget(self.autoconnect_checkbox)71 self.verticalLayout_1.addWidget(self.autoconnect_checkbox)
72 self.udf_autosubscribe_checkbox = QtGui.QCheckBox(self.groupBox_2)72 self.udf_autosubscribe_checkbox = QtGui.QCheckBox(self.file_sync_settings)
73 self.udf_autosubscribe_checkbox.setObjectName(_fromUtf8("udf_autosubscribe_checkbox"))73 self.udf_autosubscribe_checkbox.setObjectName(_fromUtf8("udf_autosubscribe_checkbox"))
74 self.verticalLayout_1.addWidget(self.udf_autosubscribe_checkbox)74 self.verticalLayout_1.addWidget(self.udf_autosubscribe_checkbox)
75 self.share_autosubscribe_checkbox = QtGui.QCheckBox(self.groupBox_2)75 self.share_autosubscribe_checkbox = QtGui.QCheckBox(self.file_sync_settings)
76 self.share_autosubscribe_checkbox.setObjectName(_fromUtf8("share_autosubscribe_checkbox"))76 self.share_autosubscribe_checkbox.setObjectName(_fromUtf8("share_autosubscribe_checkbox"))
77 self.verticalLayout_1.addWidget(self.share_autosubscribe_checkbox)77 self.verticalLayout_1.addWidget(self.share_autosubscribe_checkbox)
78 self.show_all_notifications_checkbox = QtGui.QCheckBox(self.groupBox_2)78 self.show_all_notifications_checkbox = QtGui.QCheckBox(self.file_sync_settings)
79 self.show_all_notifications_checkbox.setObjectName(_fromUtf8("show_all_notifications_checkbox"))79 self.show_all_notifications_checkbox.setObjectName(_fromUtf8("show_all_notifications_checkbox"))
80 self.verticalLayout_1.addWidget(self.show_all_notifications_checkbox)80 self.verticalLayout_1.addWidget(self.show_all_notifications_checkbox)
81 self.verticalLayout.addWidget(self.groupBox_2)81 self.verticalLayout.addWidget(self.file_sync_settings)
82 spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
83 self.verticalLayout.addItem(spacerItem2)
82 self.horizontalLayout = QtGui.QHBoxLayout()84 self.horizontalLayout = QtGui.QHBoxLayout()
85 self.horizontalLayout.setMargin(3)
83 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))86 self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
84 spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)87 spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
85 self.horizontalLayout.addItem(spacerItem2)88 self.horizontalLayout.addItem(spacerItem3)
86 self.apply_changes_button = QtGui.QPushButton(Form)89 self.apply_changes_button = QtGui.QPushButton(Form)
87 self.apply_changes_button.setObjectName(_fromUtf8("apply_changes_button"))90 self.apply_changes_button.setObjectName(_fromUtf8("apply_changes_button"))
88 self.horizontalLayout.addWidget(self.apply_changes_button)91 self.horizontalLayout.addWidget(self.apply_changes_button)
@@ -90,20 +93,18 @@
90 self.restore_defaults_button.setObjectName(_fromUtf8("restore_defaults_button"))93 self.restore_defaults_button.setObjectName(_fromUtf8("restore_defaults_button"))
91 self.horizontalLayout.addWidget(self.restore_defaults_button)94 self.horizontalLayout.addWidget(self.restore_defaults_button)
92 self.verticalLayout.addLayout(self.horizontalLayout)95 self.verticalLayout.addLayout(self.horizontalLayout)
93 spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
94 self.verticalLayout.addItem(spacerItem3)
9596
96 self.retranslateUi(Form)97 self.retranslateUi(Form)
97 QtCore.QMetaObject.connectSlotsByName(Form)98 QtCore.QMetaObject.connectSlotsByName(Form)
9899
99 def retranslateUi(self, Form):100 def retranslateUi(self, Form):
100 self.verticalGroupBox.setTitle(_('Bandwidth settings'))101 self.bandwidth_settings.setTitle(_('Bandwidth settings'))
101 self.limit_uploads_checkbox.setText(_('Limit upload speed to'))102 self.limit_uploads_checkbox.setText(_('Limit upload speed to'))
102 self.kbps_label_1.setText(_('Kilobits per second'))103 self.kbps_label_1.setText(_('Kilobits per second'))
103 self.limit_downloads_checkbox.setText(_('Limit download speed to'))104 self.limit_downloads_checkbox.setText(_('Limit download speed to'))
104 self.kbps_label_2.setText(_('Kilobits per second'))105 self.kbps_label_2.setText(_('Kilobits per second'))
105 self.label_2.setText(_('Please note that your files will not sync if you set bandwidth to 0'))106 self.label_2.setText(_('Please note that your files will not sync if you set bandwidth to 0'))
106 self.groupBox_2.setTitle(_('File Sync Settings'))107 self.file_sync_settings.setTitle(_('File Sync Settings'))
107 self.autoconnect_checkbox.setText(_('Connect automatically when computer starts'))108 self.autoconnect_checkbox.setText(_('Connect automatically when computer starts'))
108 self.udf_autosubscribe_checkbox.setText(_('Automatically sync all selected folders on this computer to the cloud'))109 self.udf_autosubscribe_checkbox.setText(_('Automatically sync all selected folders on this computer to the cloud'))
109 self.share_autosubscribe_checkbox.setText(_('Automatically sync all folders shared with me by other to this computer'))110 self.share_autosubscribe_checkbox.setText(_('Automatically sync all folders shared with me by other to this computer'))
110111
=== modified file 'ubuntuone/controlpanel/gui/tests/test_url_sign.py'
--- ubuntuone/controlpanel/gui/tests/test_url_sign.py 2011-07-22 21:26:48 +0000
+++ ubuntuone/controlpanel/gui/tests/test_url_sign.py 2011-08-12 19:16:23 +0000
@@ -29,7 +29,7 @@
29 u'token': u'GkInOfSMGwTXAUoVQwLUoPxElEEUdhsLVNTPhxHJDUIeHCPNEo',29 u'token': u'GkInOfSMGwTXAUoVQwLUoPxElEEUdhsLVNTPhxHJDUIeHCPNEo',
30 u'token_secret': u'qFYImEtlczPbsCnYyuwLoPDlPEnvNcIktZphPQklAWrvyfFMV'}30 u'token_secret': u'qFYImEtlczPbsCnYyuwLoPDlPEnvNcIktZphPQklAWrvyfFMV'}
3131
32SAMPLE_SIGNED = 'https://one.ubuntu.com/api/1.0/from_oauth?oauth_nonce=' \32SAMPLE_SIGNED = 'https://one.ubuntu.com/api/1.0/from_oauth/?oauth_nonce=' \
33 '36886134&oauth_timestamp=1310671062&oauth_consumer_key=consumer_key&' \33 '36886134&oauth_timestamp=1310671062&oauth_consumer_key=consumer_key&' \
34 'oauth_signature_method=HMAC-SHA1&next=%2Fblah&oauth_version=1.0&' \34 'oauth_signature_method=HMAC-SHA1&next=%2Fblah&oauth_version=1.0&' \
35 'oauth_token=GkInOfSMGwTXAUoVQwLUoPxElEEUdhsLVNTPhxHJDUIeHCPNEo&' \35 'oauth_token=GkInOfSMGwTXAUoVQwLUoPxElEEUdhsLVNTPhxHJDUIeHCPNEo&' \
@@ -47,9 +47,15 @@
47 signed = sign_url("/blah", TOKEN)47 signed = sign_url("/blah", TOKEN)
48 parsed_signed = urlparse(signed)48 parsed_signed = urlparse(signed)
49 parsed_sample = urlparse(SAMPLE_SIGNED)49 parsed_sample = urlparse(SAMPLE_SIGNED)
50
51 self.assertEqual(parsed_signed.netloc, parsed_sample.netloc)50 self.assertEqual(parsed_signed.netloc, parsed_sample.netloc)
5251
52 def test_is_correct_path(self):
53 """Test that we are using the right path in the URL."""
54 signed = sign_url("/blah", TOKEN)
55 parsed_signed = urlparse(signed)
56 parsed_sample = urlparse(SAMPLE_SIGNED)
57 self.assertEqual(parsed_signed.path, parsed_sample.path)
58
53 def test_is_correct_scheme(self):59 def test_is_correct_scheme(self):
54 """Test that we are using the right scheme."""60 """Test that we are using the right scheme."""
55 signed = sign_url("/blah", TOKEN)61 signed = sign_url("/blah", TOKEN)
5662
=== modified file 'ubuntuone/controlpanel/logger.py'
--- ubuntuone/controlpanel/logger.py 2011-01-25 19:08:59 +0000
+++ ubuntuone/controlpanel/logger.py 2011-08-12 19:16:23 +0000
@@ -26,7 +26,8 @@
26from logging.handlers import RotatingFileHandler26from logging.handlers import RotatingFileHandler
2727
28# pylint: disable=F0401,E061128# pylint: disable=F0401,E0611
29from ubuntuone.logger import LOGFOLDER, LOGBACKUP, basic_formatter29from ubuntuone.logger import LOGBACKUP, basic_formatter
30from ubuntuone.platform.xdg_base_directory import ubuntuone_log_dir
3031
3132
32if os.environ.get('DEBUG'):33if os.environ.get('DEBUG'):
@@ -35,7 +36,8 @@
35 # Only log this level and above36 # Only log this level and above
36 LOG_LEVEL = logging.DEBUG # before final release, switch to INFO37 LOG_LEVEL = logging.DEBUG # before final release, switch to INFO
3738
38MAIN_HANDLER = RotatingFileHandler(os.path.join(LOGFOLDER, 'controlpanel.log'),39FILE_NAME = os.path.join(ubuntuone_log_dir, 'controlpanel.log')
40MAIN_HANDLER = RotatingFileHandler(FILE_NAME,
39 maxBytes=1048576,41 maxBytes=1048576,
40 backupCount=LOGBACKUP)42 backupCount=LOGBACKUP)
41MAIN_HANDLER.setFormatter(basic_formatter)43MAIN_HANDLER.setFormatter(basic_formatter)

Subscribers

People subscribed via source and target branches

to all changes: