Merge lp:~nataliabidart/ubuntu-sso-client/stable-3-0-update-2.99.90 into lp:ubuntu-sso-client/stable-3-0

Proposed by Natalia Bidart
Status: Merged
Approved by: Natalia Bidart
Approved revision: 829
Merged at revision: 828
Proposed branch: lp:~nataliabidart/ubuntu-sso-client/stable-3-0-update-2.99.90
Merge into: lp:ubuntu-sso-client/stable-3-0
Diff against target: 9631 lines (+3846/-3620)
64 files modified
bin/ubuntu-sso-proxy-creds-qt (+0/-4)
bin/ubuntu-sso-ssl-certificate-qt (+25/-0)
data/qt/choose_sign_in.ui (+0/-165)
data/qt/current_user_sign_in.ui (+163/-184)
data/qt/email_verification.ui (+105/-116)
data/qt/error_message.ui (+28/-31)
data/qt/forgotten_password.ui (+111/-188)
data/qt/loadingoverlay.ui (+3/-6)
data/qt/network_detection.ui (+139/-142)
data/qt/proxy_credentials_dialog.ui (+12/-15)
data/qt/reset_password.ui (+348/-357)
data/qt/setup_account.ui (+661/-700)
data/qt/ssl_dialog.ui (+205/-0)
data/qt/stylesheet.qss (+22/-30)
data/qt/success_message.ui (+32/-35)
run-tests.bat (+1/-1)
setup.py (+1/-0)
ubuntu_sso/credentials.py (+7/-0)
ubuntu_sso/main/glib.py (+4/-2)
ubuntu_sso/main/qt.py (+5/-3)
ubuntu_sso/networkstate/linux.py (+3/-1)
ubuntu_sso/networkstate/tests/test_linux.py (+3/-3)
ubuntu_sso/qt/__init__.py (+5/-0)
ubuntu_sso/qt/arrow.py (+68/-0)
ubuntu_sso/qt/current_user_sign_in_page.py (+32/-49)
ubuntu_sso/qt/email_verification_page.py (+39/-39)
ubuntu_sso/qt/enhanced_check_box.py (+1/-1)
ubuntu_sso/qt/error_page.py (+11/-4)
ubuntu_sso/qt/expander.py (+115/-0)
ubuntu_sso/qt/forgotten_password_page.py (+43/-113)
ubuntu_sso/qt/loadingoverlay.py (+7/-11)
ubuntu_sso/qt/main.py (+5/-0)
ubuntu_sso/qt/network_detection_page.py (+20/-9)
ubuntu_sso/qt/proxy_dialog.py (+6/-6)
ubuntu_sso/qt/reset_password_page.py (+31/-52)
ubuntu_sso/qt/setup_account_page.py (+95/-106)
ubuntu_sso/qt/sign_in_page.py (+0/-97)
ubuntu_sso/qt/ssl_dialog.py (+161/-0)
ubuntu_sso/qt/sso_wizard_page.py (+111/-33)
ubuntu_sso/qt/success_page.py (+13/-4)
ubuntu_sso/qt/tests/__init__.py (+160/-45)
ubuntu_sso/qt/tests/test_arrow.py (+90/-0)
ubuntu_sso/qt/tests/test_current_user_sign_in_page.py (+53/-143)
ubuntu_sso/qt/tests/test_email_verification.py (+34/-90)
ubuntu_sso/qt/tests/test_enchanced_line_edit.py (+2/-5)
ubuntu_sso/qt/tests/test_error_page.py (+26/-0)
ubuntu_sso/qt/tests/test_expander.py (+119/-0)
ubuntu_sso/qt/tests/test_forgotten_password.py (+38/-181)
ubuntu_sso/qt/tests/test_loadingoverlay.py (+8/-8)
ubuntu_sso/qt/tests/test_network_detection.py (+14/-34)
ubuntu_sso/qt/tests/test_reset_password.py (+25/-52)
ubuntu_sso/qt/tests/test_setup_account.py (+55/-105)
ubuntu_sso/qt/tests/test_sign_in_page.py (+0/-69)
ubuntu_sso/qt/tests/test_ssl_dialog.py (+199/-0)
ubuntu_sso/qt/tests/test_sso_wizard_page.py (+61/-97)
ubuntu_sso/qt/tests/test_success_page.py (+26/-0)
ubuntu_sso/qt/tests/test_ubuntu_sso_wizard.py (+91/-37)
ubuntu_sso/qt/ubuntu_sso_wizard.py (+95/-191)
ubuntu_sso/tests/test_credentials.py (+35/-6)
ubuntu_sso/utils/runner/__init__.py (+7/-9)
ubuntu_sso/utils/runner/tests/test_glib.py (+0/-1)
ubuntu_sso/utils/runner/tests/test_qt.py (+0/-1)
ubuntu_sso/utils/runner/tests/test_runner.py (+3/-2)
ubuntu_sso/utils/ui.py (+64/-37)
To merge this branch: bzr merge lp:~nataliabidart/ubuntu-sso-client/stable-3-0-update-2.99.90
Reviewer Review Type Date Requested Status
Roberto Alsina (community) Approve
Review via email: mp+96154@code.launchpad.net

Commit message

- Updating from trunk up to revno 901:

[ Diego Sarmentero <email address hidden> ]
  - Hide the errors label on refresh captcha (LP: #947202).
  - Changed the name of the function assigned to the lambda that is called
    on passwordChanged signal from reset_password_page (LP: #945080).
  - Made on_user_validated also emit stopProcessing so callers can hide
    any processing overlay they are showing (LP: #945094).
  - Fixed: Qt UI: there is a Back button in the "Enter verification page"
    (LP: #944769).
  - Fixed: Qt UI: there is not loading overvaly while validating an
    email address (LP: #944767).
  - Fixed: Qt UI: clicking on the "Set Up Account" button takes me
    instantly to the verification page, even if there are form errors
    (LP: #934502).
  - Fix: [UIFe] Improve the display of errors in the Qt UI (LP: #938604).
  - Fix: Qt UI: center when first opening (LP: #934173).
  - Fixed: The header in the pages is above the overlay (LP: #934523).
  - Fixed: [UIFE] The padding of the wizard pages in the Qt UI is not
    correct (LP: #934519).

[ Manuel de la Pena <email address hidden> ]
  - Ensure that the strings used in sso do not have "ubuntu one" in them
    (LP: #933729).
  - Ensure that the strings used are the ones provided by design
    (LP: #937905).
  - Added the dialog that will be used to show that a certificate has issues
    (LP: #933729).

[ Natalia B. Bidart <email address hidden> ]
  - Add proper titles and subtitles for the Login and Forgot password
    pages (LP: #945061).
  - Made UI modules to setup the gui logging logger (LP: #947469).
  - Fallback to the GTK+ UI when the specified ui_executable does
    not exist (LP: #939821).
  - Move the 'choose sign in page' to client code (U1 control panel
    in this case) (LP: #933576).
  - Make use of the 'login_only' parameter that is being passed to the
    UbuntuSSOWizard (LP: #939558).
  - Stop using is_reactor_installed since is buggy (LP: #933644).
  - Do not mask ImportError by importing inside a function (LP: #939173).
  - No more strings coming up from the Designer ui files (LP: #938626).

[ Roberto Alsina <email address hidden> ]
  - Made the network detection code return ONLINE if NM is not available
    (but still UNKNOWN if it's available and fails) (LP: #939703).

To post a comment you must log in.
Revision history for this message
Roberto Alsina (ralsina) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/ubuntu-sso-proxy-creds-qt'
2--- bin/ubuntu-sso-proxy-creds-qt 2012-02-14 10:09:40 +0000
3+++ bin/ubuntu-sso-proxy-creds-qt 2012-03-06 15:41:36 +0000
4@@ -19,10 +19,6 @@
5
6 # Invalid name, pylint: disable=C0103
7
8-import os
9-# HACK: At the moment we need to do that until sso is refactored
10-os.environ['USE_QT_MAINLOOP'] = '1'
11-
12 # set the dbus main loop to be used
13 from dbus.mainloop.qt import DBusQtMainLoop
14 DBusQtMainLoop(set_as_default=True)
15
16=== added file 'bin/ubuntu-sso-ssl-certificate-qt'
17--- bin/ubuntu-sso-ssl-certificate-qt 1970-01-01 00:00:00 +0000
18+++ bin/ubuntu-sso-ssl-certificate-qt 2012-03-06 15:41:36 +0000
19@@ -0,0 +1,25 @@
20+#!/usr/bin/env python
21+# -*- coding: utf-8 -*-
22+#
23+# Copyright 2012 Canonical Ltd.
24+#
25+# This program is free software: you can redistribute it and/or modify it
26+# under the terms of the GNU General Public License version 3, as published
27+# by the Free Software Foundation.
28+#
29+# This program is distributed in the hope that it will be useful, but
30+# WITHOUT ANY WARRANTY; without even the implied warranties of
31+# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
32+# PURPOSE. See the GNU General Public License for more details.
33+#
34+# You should have received a copy of the GNU General Public License along
35+# with this program. If not, see <http://www.gnu.org/licenses/>.
36+
37+"""Start the QT proxy creds dialog."""
38+
39+# Invalid name, pylint: disable=C0103
40+
41+from ubuntu_sso.qt.ssl_dialog import main
42+
43+if __name__ == "__main__":
44+ main()
45
46=== removed file 'data/qt/choose_sign_in.ui'
47--- data/qt/choose_sign_in.ui 2012-02-09 18:28:40 +0000
48+++ data/qt/choose_sign_in.ui 1970-01-01 00:00:00 +0000
49@@ -1,165 +0,0 @@
50-<?xml version="1.0" encoding="UTF-8"?>
51-<ui version="4.0">
52- <class>ChooseSignInPage</class>
53- <widget class="QWizardPage" name="ChooseSignInPage">
54- <property name="geometry">
55- <rect>
56- <x>0</x>
57- <y>0</y>
58- <width>432</width>
59- <height>387</height>
60- </rect>
61- </property>
62- <property name="windowTitle">
63- <string>WizardPage</string>
64- </property>
65- <layout class="QVBoxLayout" name="verticalLayout_2">
66- <property name="leftMargin">
67- <number>0</number>
68- </property>
69- <property name="topMargin">
70- <number>0</number>
71- </property>
72- <property name="rightMargin">
73- <number>0</number>
74- </property>
75- <item>
76- <layout class="QHBoxLayout" name="horizontalLayout_2">
77- <item>
78- <widget class="QLabel" name="image_label">
79- <property name="sizePolicy">
80- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
81- <horstretch>0</horstretch>
82- <verstretch>0</verstretch>
83- </sizepolicy>
84- </property>
85- <property name="minimumSize">
86- <size>
87- <width>400</width>
88- <height>150</height>
89- </size>
90- </property>
91- <property name="text">
92- <string/>
93- </property>
94- <property name="textFormat">
95- <enum>Qt::PlainText</enum>
96- </property>
97- <property name="alignment">
98- <set>Qt::AlignCenter</set>
99- </property>
100- <property name="wordWrap">
101- <bool>true</bool>
102- </property>
103- </widget>
104- </item>
105- </layout>
106- </item>
107- <item>
108- <widget class="QLabel" name="message_label">
109- <property name="font">
110- <font>
111- <pointsize>11</pointsize>
112- <weight>50</weight>
113- <bold>false</bold>
114- </font>
115- </property>
116- <property name="text">
117- <string>Congratulations, app_name is installed!</string>
118- </property>
119- <property name="alignment">
120- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
121- </property>
122- </widget>
123- </item>
124- <item>
125- <spacer name="verticalSpacer_3">
126- <property name="orientation">
127- <enum>Qt::Vertical</enum>
128- </property>
129- <property name="sizeType">
130- <enum>QSizePolicy::Fixed</enum>
131- </property>
132- <property name="sizeHint" stdset="0">
133- <size>
134- <width>20</width>
135- <height>30</height>
136- </size>
137- </property>
138- </spacer>
139- </item>
140- <item>
141- <layout class="QHBoxLayout" name="horizontalLayout">
142- <item>
143- <spacer name="horizontalSpacer_2">
144- <property name="orientation">
145- <enum>Qt::Horizontal</enum>
146- </property>
147- <property name="sizeHint" stdset="0">
148- <size>
149- <width>20</width>
150- <height>20</height>
151- </size>
152- </property>
153- </spacer>
154- </item>
155- <item>
156- <layout class="QVBoxLayout" name="verticalLayout">
157- <item>
158- <widget class="QPushButton" name="existing_account_button">
159- <property name="text">
160- <string/>
161- </property>
162- </widget>
163- </item>
164- <item>
165- <widget class="QPushButton" name="setup_account_button">
166- <property name="text">
167- <string/>
168- </property>
169- </widget>
170- </item>
171- <item>
172- <widget class="QPushButton" name="cancel_button">
173- <property name="text">
174- <string/>
175- </property>
176- </widget>
177- </item>
178- </layout>
179- </item>
180- <item>
181- <spacer name="horizontalSpacer">
182- <property name="orientation">
183- <enum>Qt::Horizontal</enum>
184- </property>
185- <property name="sizeType">
186- <enum>QSizePolicy::Expanding</enum>
187- </property>
188- <property name="sizeHint" stdset="0">
189- <size>
190- <width>20</width>
191- <height>20</height>
192- </size>
193- </property>
194- </spacer>
195- </item>
196- </layout>
197- </item>
198- <item>
199- <spacer name="verticalSpacer_2">
200- <property name="orientation">
201- <enum>Qt::Vertical</enum>
202- </property>
203- <property name="sizeHint" stdset="0">
204- <size>
205- <width>20</width>
206- <height>50</height>
207- </size>
208- </property>
209- </spacer>
210- </item>
211- </layout>
212- </widget>
213- <connections/>
214-</ui>
215
216=== modified file 'data/qt/current_user_sign_in.ui'
217--- data/qt/current_user_sign_in.ui 2011-09-08 16:43:39 +0000
218+++ data/qt/current_user_sign_in.ui 2012-03-06 15:41:36 +0000
219@@ -1,184 +1,163 @@
220-<?xml version="1.0" encoding="UTF-8"?>
221-<ui version="4.0">
222- <class>CurrentUserSignInPage</class>
223- <widget class="QWizardPage" name="CurrentUserSignInPage">
224- <property name="geometry">
225- <rect>
226- <x>0</x>
227- <y>0</y>
228- <width>399</width>
229- <height>309</height>
230- </rect>
231- </property>
232- <property name="windowTitle">
233- <string>WizardPage</string>
234- </property>
235- <layout class="QVBoxLayout" name="verticalLayout_4">
236- <property name="topMargin">
237- <number>0</number>
238- </property>
239- <item>
240- <layout class="QHBoxLayout" name="horizontalLayout_3">
241- <item>
242- <layout class="QVBoxLayout" name="verticalLayout">
243- <item>
244- <spacer name="verticalSpacer_3">
245- <property name="orientation">
246- <enum>Qt::Vertical</enum>
247- </property>
248- <property name="sizeHint" stdset="0">
249- <size>
250- <width>20</width>
251- <height>40</height>
252- </size>
253- </property>
254- </spacer>
255- </item>
256- <item>
257- <widget class="QFrame" name="_signInFrame">
258- <property name="frameShape">
259- <enum>QFrame::NoFrame</enum>
260- </property>
261- <layout class="QVBoxLayout" name="verticalLayout_3">
262- <item>
263- <layout class="QVBoxLayout" name="verticalLayout_2">
264- <item>
265- <widget class="QLabel" name="email_label">
266- <property name="text">
267- <string>&amp;Email</string>
268- </property>
269- <property name="buddy">
270- <cstring>email_edit</cstring>
271- </property>
272- </widget>
273- </item>
274- <item>
275- <widget class="QLineEdit" name="email_edit">
276- <property name="placeholderText">
277- <string/>
278- </property>
279- </widget>
280- </item>
281- <item>
282- <widget class="QLabel" name="password_label">
283- <property name="text">
284- <string>&amp;Password</string>
285- </property>
286- <property name="buddy">
287- <cstring>password_edit</cstring>
288- </property>
289- </widget>
290- </item>
291- <item>
292- <widget class="QLineEdit" name="password_edit">
293- <property name="echoMode">
294- <enum>QLineEdit::Password</enum>
295- </property>
296- <property name="placeholderText">
297- <string/>
298- </property>
299- </widget>
300- </item>
301- <item>
302- <widget class="QLabel" name="forgot_password_label">
303- <property name="sizePolicy">
304- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
305- <horstretch>0</horstretch>
306- <verstretch>0</verstretch>
307- </sizepolicy>
308- </property>
309- <property name="text">
310- <string>Forgot password?</string>
311- </property>
312- </widget>
313- </item>
314- <item>
315- <layout class="QHBoxLayout" name="horizontalLayout_4">
316- <item>
317- <spacer name="horizontalSpacer_3">
318- <property name="orientation">
319- <enum>Qt::Horizontal</enum>
320- </property>
321- <property name="sizeHint" stdset="0">
322- <size>
323- <width>40</width>
324- <height>20</height>
325- </size>
326- </property>
327- </spacer>
328- </item>
329- <item>
330- <widget class="QPushButton" name="sign_in_button">
331- <property name="enabled">
332- <bool>false</bool>
333- </property>
334- <property name="text">
335- <string>Sign In</string>
336- </property>
337- <property name="default">
338- <bool>true</bool>
339- </property>
340- </widget>
341- </item>
342- </layout>
343- </item>
344- </layout>
345- </item>
346- </layout>
347- </widget>
348- </item>
349- <item>
350- <spacer name="verticalSpacer_2">
351- <property name="orientation">
352- <enum>Qt::Vertical</enum>
353- </property>
354- <property name="sizeHint" stdset="0">
355- <size>
356- <width>20</width>
357- <height>40</height>
358- </size>
359- </property>
360- </spacer>
361- </item>
362- </layout>
363- </item>
364- <item>
365- <spacer name="horizontalSpacer">
366- <property name="orientation">
367- <enum>Qt::Horizontal</enum>
368- </property>
369- <property name="sizeType">
370- <enum>QSizePolicy::Fixed</enum>
371- </property>
372- <property name="sizeHint" stdset="0">
373- <size>
374- <width>40</width>
375- <height>20</height>
376- </size>
377- </property>
378- </spacer>
379- </item>
380- </layout>
381- </item>
382- </layout>
383- </widget>
384- <resources/>
385- <connections>
386- <connection>
387- <sender>password_edit</sender>
388- <signal>returnPressed()</signal>
389- <receiver>sign_in_button</receiver>
390- <slot>click()</slot>
391- <hints>
392- <hint type="sourcelabel">
393- <x>199</x>
394- <y>160</y>
395- </hint>
396- <hint type="destinationlabel">
397- <x>288</x>
398- <y>217</y>
399- </hint>
400- </hints>
401- </connection>
402- </connections>
403-</ui>
404+<?xml version="1.0" encoding="UTF-8"?>
405+<ui version="4.0">
406+ <class>CurrentUserSignInPage</class>
407+ <widget class="QWizardPage" name="CurrentUserSignInPage">
408+ <property name="geometry">
409+ <rect>
410+ <x>0</x>
411+ <y>0</y>
412+ <width>302</width>
413+ <height>244</height>
414+ </rect>
415+ </property>
416+ <layout class="QVBoxLayout" name="verticalLayout_2">
417+ <property name="spacing">
418+ <number>15</number>
419+ </property>
420+ <property name="margin">
421+ <number>0</number>
422+ </property>
423+ <item>
424+ <layout class="QVBoxLayout" name="verticalLayout">
425+ <property name="spacing">
426+ <number>3</number>
427+ </property>
428+ <item>
429+ <widget class="QLabel" name="email_label">
430+ <property name="text">
431+ <string notr="true">&amp;Email</string>
432+ </property>
433+ <property name="buddy">
434+ <cstring>email_edit</cstring>
435+ </property>
436+ </widget>
437+ </item>
438+ <item>
439+ <widget class="QLineEdit" name="email_edit">
440+ <property name="minimumSize">
441+ <size>
442+ <width>300</width>
443+ <height>0</height>
444+ </size>
445+ </property>
446+ <property name="placeholderText">
447+ <string/>
448+ </property>
449+ </widget>
450+ </item>
451+ </layout>
452+ </item>
453+ <item>
454+ <layout class="QVBoxLayout" name="verticalLayout_3">
455+ <property name="spacing">
456+ <number>3</number>
457+ </property>
458+ <item>
459+ <widget class="QLabel" name="password_label">
460+ <property name="text">
461+ <string notr="true">&amp;Password</string>
462+ </property>
463+ <property name="buddy">
464+ <cstring>password_edit</cstring>
465+ </property>
466+ </widget>
467+ </item>
468+ <item>
469+ <widget class="QLineEdit" name="password_edit">
470+ <property name="minimumSize">
471+ <size>
472+ <width>300</width>
473+ <height>0</height>
474+ </size>
475+ </property>
476+ <property name="echoMode">
477+ <enum>QLineEdit::Password</enum>
478+ </property>
479+ <property name="placeholderText">
480+ <string/>
481+ </property>
482+ </widget>
483+ </item>
484+ </layout>
485+ </item>
486+ <item>
487+ <widget class="QLabel" name="forgot_password_label">
488+ <property name="sizePolicy">
489+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
490+ <horstretch>0</horstretch>
491+ <verstretch>0</verstretch>
492+ </sizepolicy>
493+ </property>
494+ <property name="text">
495+ <string notr="true">Forgot password?</string>
496+ </property>
497+ </widget>
498+ </item>
499+ <item>
500+ <layout class="QHBoxLayout" name="horizontalLayout_4">
501+ <item>
502+ <spacer name="horizontalSpacer_3">
503+ <property name="orientation">
504+ <enum>Qt::Horizontal</enum>
505+ </property>
506+ <property name="sizeHint" stdset="0">
507+ <size>
508+ <width>40</width>
509+ <height>20</height>
510+ </size>
511+ </property>
512+ </spacer>
513+ </item>
514+ <item>
515+ <widget class="QPushButton" name="sign_in_button">
516+ <property name="enabled">
517+ <bool>false</bool>
518+ </property>
519+ <property name="text">
520+ <string notr="true">Sign In</string>
521+ </property>
522+ <property name="default">
523+ <bool>true</bool>
524+ </property>
525+ </widget>
526+ </item>
527+ </layout>
528+ </item>
529+ <item>
530+ <spacer name="verticalSpacer">
531+ <property name="orientation">
532+ <enum>Qt::Vertical</enum>
533+ </property>
534+ <property name="sizeHint" stdset="0">
535+ <size>
536+ <width>20</width>
537+ <height>40</height>
538+ </size>
539+ </property>
540+ </spacer>
541+ </item>
542+ </layout>
543+ <zorder>verticalSpacer</zorder>
544+ <zorder>forgot_password_label</zorder>
545+ <zorder></zorder>
546+ </widget>
547+ <resources/>
548+ <connections>
549+ <connection>
550+ <sender>password_edit</sender>
551+ <signal>returnPressed()</signal>
552+ <receiver>sign_in_button</receiver>
553+ <slot>click()</slot>
554+ <hints>
555+ <hint type="sourcelabel">
556+ <x>199</x>
557+ <y>160</y>
558+ </hint>
559+ <hint type="destinationlabel">
560+ <x>288</x>
561+ <y>217</y>
562+ </hint>
563+ </hints>
564+ </connection>
565+ </connections>
566+</ui>
567
568=== modified file 'data/qt/email_verification.ui'
569--- data/qt/email_verification.ui 2011-09-08 16:43:39 +0000
570+++ data/qt/email_verification.ui 2012-03-06 15:41:36 +0000
571@@ -1,116 +1,105 @@
572-<?xml version="1.0" encoding="UTF-8"?>
573-<ui version="4.0">
574- <class>EmailVerificationPage</class>
575- <widget class="QWizardPage" name="EmailVerificationPage">
576- <property name="geometry">
577- <rect>
578- <x>0</x>
579- <y>0</y>
580- <width>400</width>
581- <height>300</height>
582- </rect>
583- </property>
584- <property name="windowTitle">
585- <string>WizardPage</string>
586- </property>
587- <layout class="QVBoxLayout" name="verticalLayout_2">
588- <property name="topMargin">
589- <number>0</number>
590- </property>
591- <item>
592- <layout class="QHBoxLayout" name="horizontalLayout_3">
593- <item>
594- <layout class="QVBoxLayout" name="verticalLayout">
595- <item>
596- <widget class="QLabel" name="label">
597- <property name="text">
598- <string>Verification code</string>
599- </property>
600- </widget>
601- </item>
602- <item>
603- <widget class="QLineEdit" name="verification_code_edit">
604- <property name="placeholderText">
605- <string/>
606- </property>
607- </widget>
608- </item>
609- <item>
610- <layout class="QHBoxLayout" name="horizontalLayout_2">
611- <item>
612- <spacer name="horizontalSpacer_3">
613- <property name="orientation">
614- <enum>Qt::Horizontal</enum>
615- </property>
616- <property name="sizeHint" stdset="0">
617- <size>
618- <width>40</width>
619- <height>20</height>
620- </size>
621- </property>
622- </spacer>
623- </item>
624- <item>
625- <widget class="QPushButton" name="next_button">
626- <property name="text">
627- <string>Next</string>
628- </property>
629- </widget>
630- </item>
631- </layout>
632- </item>
633- <item>
634- <spacer name="verticalSpacer_2">
635- <property name="orientation">
636- <enum>Qt::Vertical</enum>
637- </property>
638- <property name="sizeHint" stdset="0">
639- <size>
640- <width>20</width>
641- <height>40</height>
642- </size>
643- </property>
644- </spacer>
645- </item>
646- </layout>
647- </item>
648- <item>
649- <spacer name="horizontalSpacer">
650- <property name="orientation">
651- <enum>Qt::Horizontal</enum>
652- </property>
653- <property name="sizeType">
654- <enum>QSizePolicy::Fixed</enum>
655- </property>
656- <property name="sizeHint" stdset="0">
657- <size>
658- <width>40</width>
659- <height>20</height>
660- </size>
661- </property>
662- </spacer>
663- </item>
664- </layout>
665- </item>
666- </layout>
667- </widget>
668- <resources/>
669- <connections>
670- <connection>
671- <sender>verification_code_edit</sender>
672- <signal>returnPressed()</signal>
673- <receiver>next_button</receiver>
674- <slot>click()</slot>
675- <hints>
676- <hint type="sourcelabel">
677- <x>199</x>
678- <y>15</y>
679- </hint>
680- <hint type="destinationlabel">
681- <x>299</x>
682- <y>49</y>
683- </hint>
684- </hints>
685- </connection>
686- </connections>
687-</ui>
688+<?xml version="1.0" encoding="UTF-8"?>
689+<ui version="4.0">
690+ <class>EmailVerificationPage</class>
691+ <widget class="QWizardPage" name="EmailVerificationPage">
692+ <property name="geometry">
693+ <rect>
694+ <x>0</x>
695+ <y>0</y>
696+ <width>300</width>
697+ <height>148</height>
698+ </rect>
699+ </property>
700+ <property name="minimumSize">
701+ <size>
702+ <width>300</width>
703+ <height>0</height>
704+ </size>
705+ </property>
706+ <layout class="QVBoxLayout" name="verticalLayout_2">
707+ <property name="spacing">
708+ <number>15</number>
709+ </property>
710+ <property name="margin">
711+ <number>0</number>
712+ </property>
713+ <item>
714+ <layout class="QVBoxLayout" name="verticalLayout">
715+ <property name="spacing">
716+ <number>3</number>
717+ </property>
718+ <item>
719+ <widget class="QLabel" name="label">
720+ <property name="text">
721+ <string notr="true">Verification code</string>
722+ </property>
723+ </widget>
724+ </item>
725+ <item>
726+ <widget class="QLineEdit" name="verification_code_edit">
727+ <property name="placeholderText">
728+ <string/>
729+ </property>
730+ </widget>
731+ </item>
732+ </layout>
733+ </item>
734+ <item>
735+ <layout class="QHBoxLayout" name="horizontalLayout_2">
736+ <item>
737+ <spacer name="horizontalSpacer_3">
738+ <property name="orientation">
739+ <enum>Qt::Horizontal</enum>
740+ </property>
741+ <property name="sizeHint" stdset="0">
742+ <size>
743+ <width>40</width>
744+ <height>20</height>
745+ </size>
746+ </property>
747+ </spacer>
748+ </item>
749+ <item>
750+ <widget class="QPushButton" name="next_button">
751+ <property name="text">
752+ <string notr="true">Next</string>
753+ </property>
754+ </widget>
755+ </item>
756+ </layout>
757+ </item>
758+ <item>
759+ <spacer name="verticalSpacer_2">
760+ <property name="orientation">
761+ <enum>Qt::Vertical</enum>
762+ </property>
763+ <property name="sizeHint" stdset="0">
764+ <size>
765+ <width>20</width>
766+ <height>40</height>
767+ </size>
768+ </property>
769+ </spacer>
770+ </item>
771+ </layout>
772+ </widget>
773+ <resources/>
774+ <connections>
775+ <connection>
776+ <sender>verification_code_edit</sender>
777+ <signal>returnPressed()</signal>
778+ <receiver>next_button</receiver>
779+ <slot>click()</slot>
780+ <hints>
781+ <hint type="sourcelabel">
782+ <x>199</x>
783+ <y>15</y>
784+ </hint>
785+ <hint type="destinationlabel">
786+ <x>299</x>
787+ <y>49</y>
788+ </hint>
789+ </hints>
790+ </connection>
791+ </connections>
792+</ui>
793
794=== modified file 'data/qt/error_message.ui'
795--- data/qt/error_message.ui 2011-08-04 15:25:42 +0000
796+++ data/qt/error_message.ui 2012-03-06 15:41:36 +0000
797@@ -1,31 +1,28 @@
798-<?xml version="1.0" encoding="UTF-8"?>
799-<ui version="4.0">
800- <class>ErrorPage</class>
801- <widget class="QWizardPage" name="ErrorPage">
802- <property name="geometry">
803- <rect>
804- <x>0</x>
805- <y>0</y>
806- <width>400</width>
807- <height>300</height>
808- </rect>
809- </property>
810- <property name="windowTitle">
811- <string>WizardPage</string>
812- </property>
813- <layout class="QVBoxLayout" name="verticalLayout">
814- <item>
815- <widget class="QLabel" name="error_message_label">
816- <property name="text">
817- <string>TextLabel</string>
818- </property>
819- <property name="alignment">
820- <set>Qt::AlignCenter</set>
821- </property>
822- </widget>
823- </item>
824- </layout>
825- </widget>
826- <resources/>
827- <connections/>
828-</ui>
829+<?xml version="1.0" encoding="UTF-8"?>
830+<ui version="4.0">
831+ <class>ErrorPage</class>
832+ <widget class="QWizardPage" name="ErrorPage">
833+ <property name="geometry">
834+ <rect>
835+ <x>0</x>
836+ <y>0</y>
837+ <width>400</width>
838+ <height>300</height>
839+ </rect>
840+ </property>
841+ <layout class="QVBoxLayout" name="verticalLayout">
842+ <item>
843+ <widget class="QLabel" name="error_message_label">
844+ <property name="text">
845+ <string notr="true">TextLabel</string>
846+ </property>
847+ <property name="alignment">
848+ <set>Qt::AlignCenter</set>
849+ </property>
850+ </widget>
851+ </item>
852+ </layout>
853+ </widget>
854+ <resources/>
855+ <connections/>
856+</ui>
857
858=== modified file 'data/qt/forgotten_password.ui'
859--- data/qt/forgotten_password.ui 2011-09-21 16:59:40 +0000
860+++ data/qt/forgotten_password.ui 2012-03-06 15:41:36 +0000
861@@ -1,188 +1,111 @@
862-<?xml version="1.0" encoding="UTF-8"?>
863-<ui version="4.0">
864- <class>ForgottenPasswordPage</class>
865- <widget class="QWizardPage" name="ForgottenPasswordPage">
866- <property name="geometry">
867- <rect>
868- <x>0</x>
869- <y>0</y>
870- <width>446</width>
871- <height>317</height>
872- </rect>
873- </property>
874- <property name="windowTitle">
875- <string>WizardPage</string>
876- </property>
877- <layout class="QVBoxLayout" name="verticalLayout_2">
878- <property name="topMargin">
879- <number>0</number>
880- </property>
881- <item>
882- <widget class="QLabel" name="forgotted_password_intro_label">
883- <property name="text">
884- <string/>
885- </property>
886- <property name="wordWrap">
887- <bool>true</bool>
888- </property>
889- </widget>
890- </item>
891- <item>
892- <widget class="QWidget" name="email_widget" native="true">
893- <layout class="QHBoxLayout" name="horizontalLayout_2">
894- <item>
895- <layout class="QVBoxLayout" name="verticalLayout">
896- <item>
897- <widget class="QLabel" name="email_address_label">
898- <property name="sizePolicy">
899- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
900- <horstretch>0</horstretch>
901- <verstretch>0</verstretch>
902- </sizepolicy>
903- </property>
904- <property name="text">
905- <string/>
906- </property>
907- </widget>
908- </item>
909- <item>
910- <widget class="QLineEdit" name="email_line_edit"/>
911- </item>
912- </layout>
913- </item>
914- <item>
915- <spacer name="horizontalSpacer_3">
916- <property name="orientation">
917- <enum>Qt::Horizontal</enum>
918- </property>
919- <property name="sizeType">
920- <enum>QSizePolicy::Fixed</enum>
921- </property>
922- <property name="sizeHint" stdset="0">
923- <size>
924- <width>40</width>
925- <height>20</height>
926- </size>
927- </property>
928- </spacer>
929- </item>
930- </layout>
931- </widget>
932- </item>
933- <item>
934- <layout class="QHBoxLayout" name="horizontalLayout">
935- <item>
936- <spacer name="horizontalSpacer">
937- <property name="orientation">
938- <enum>Qt::Horizontal</enum>
939- </property>
940- <property name="sizeHint" stdset="0">
941- <size>
942- <width>40</width>
943- <height>20</height>
944- </size>
945- </property>
946- </spacer>
947- </item>
948- <item>
949- <widget class="QPushButton" name="send_button">
950- <property name="enabled">
951- <bool>false</bool>
952- </property>
953- <property name="text">
954- <string/>
955- </property>
956- </widget>
957- </item>
958- <item>
959- <spacer name="horizontalSpacer_4">
960- <property name="orientation">
961- <enum>Qt::Horizontal</enum>
962- </property>
963- <property name="sizeType">
964- <enum>QSizePolicy::Fixed</enum>
965- </property>
966- <property name="sizeHint" stdset="0">
967- <size>
968- <width>40</width>
969- <height>20</height>
970- </size>
971- </property>
972- </spacer>
973- </item>
974- </layout>
975- </item>
976- <item>
977- <widget class="QWidget" name="try_again_widget" native="true">
978- <layout class="QHBoxLayout" name="horizontalLayout_3">
979- <item>
980- <spacer name="horizontalSpacer_5">
981- <property name="orientation">
982- <enum>Qt::Horizontal</enum>
983- </property>
984- <property name="sizeHint" stdset="0">
985- <size>
986- <width>40</width>
987- <height>20</height>
988- </size>
989- </property>
990- </spacer>
991- </item>
992- <item>
993- <widget class="QPushButton" name="try_again_button">
994- <property name="text">
995- <string/>
996- </property>
997- </widget>
998- </item>
999- <item>
1000- <spacer name="horizontalSpacer_6">
1001- <property name="orientation">
1002- <enum>Qt::Horizontal</enum>
1003- </property>
1004- <property name="sizeHint" stdset="0">
1005- <size>
1006- <width>40</width>
1007- <height>20</height>
1008- </size>
1009- </property>
1010- </spacer>
1011- </item>
1012- </layout>
1013- </widget>
1014- </item>
1015- <item>
1016- <spacer name="verticalSpacer">
1017- <property name="orientation">
1018- <enum>Qt::Vertical</enum>
1019- </property>
1020- <property name="sizeHint" stdset="0">
1021- <size>
1022- <width>20</width>
1023- <height>40</height>
1024- </size>
1025- </property>
1026- </spacer>
1027- </item>
1028- </layout>
1029- </widget>
1030- <resources/>
1031- <connections>
1032- <connection>
1033- <sender>email_line_edit</sender>
1034- <signal>returnPressed()</signal>
1035- <receiver>send_button</receiver>
1036- <slot>click()</slot>
1037- <hints>
1038- <hint type="sourcelabel">
1039- <x>222</x>
1040- <y>92</y>
1041- </hint>
1042- <hint type="destinationlabel">
1043- <x>362</x>
1044- <y>136</y>
1045- </hint>
1046- </hints>
1047- </connection>
1048- </connections>
1049-</ui>
1050+<?xml version="1.0" encoding="UTF-8"?>
1051+<ui version="4.0">
1052+ <class>ForgottenPasswordPage</class>
1053+ <widget class="QWizardPage" name="ForgottenPasswordPage">
1054+ <property name="geometry">
1055+ <rect>
1056+ <x>0</x>
1057+ <y>0</y>
1058+ <width>148</width>
1059+ <height>148</height>
1060+ </rect>
1061+ </property>
1062+ <layout class="QVBoxLayout" name="verticalLayout_2">
1063+ <property name="spacing">
1064+ <number>15</number>
1065+ </property>
1066+ <property name="margin">
1067+ <number>0</number>
1068+ </property>
1069+ <item>
1070+ <layout class="QVBoxLayout" name="verticalLayout">
1071+ <property name="spacing">
1072+ <number>3</number>
1073+ </property>
1074+ <item>
1075+ <widget class="QLabel" name="email_address_label">
1076+ <property name="sizePolicy">
1077+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
1078+ <horstretch>0</horstretch>
1079+ <verstretch>0</verstretch>
1080+ </sizepolicy>
1081+ </property>
1082+ <property name="text">
1083+ <string notr="true"/>
1084+ </property>
1085+ </widget>
1086+ </item>
1087+ <item>
1088+ <widget class="QLineEdit" name="email_line_edit">
1089+ <property name="minimumSize">
1090+ <size>
1091+ <width>300</width>
1092+ <height>0</height>
1093+ </size>
1094+ </property>
1095+ </widget>
1096+ </item>
1097+ </layout>
1098+ </item>
1099+ <item>
1100+ <layout class="QHBoxLayout" name="horizontalLayout">
1101+ <item>
1102+ <spacer name="horizontalSpacer">
1103+ <property name="orientation">
1104+ <enum>Qt::Horizontal</enum>
1105+ </property>
1106+ <property name="sizeHint" stdset="0">
1107+ <size>
1108+ <width>40</width>
1109+ <height>20</height>
1110+ </size>
1111+ </property>
1112+ </spacer>
1113+ </item>
1114+ <item>
1115+ <widget class="QPushButton" name="send_button">
1116+ <property name="enabled">
1117+ <bool>false</bool>
1118+ </property>
1119+ <property name="text">
1120+ <string notr="true"/>
1121+ </property>
1122+ </widget>
1123+ </item>
1124+ </layout>
1125+ </item>
1126+ <item>
1127+ <spacer name="verticalSpacer">
1128+ <property name="orientation">
1129+ <enum>Qt::Vertical</enum>
1130+ </property>
1131+ <property name="sizeHint" stdset="0">
1132+ <size>
1133+ <width>20</width>
1134+ <height>40</height>
1135+ </size>
1136+ </property>
1137+ </spacer>
1138+ </item>
1139+ </layout>
1140+ </widget>
1141+ <resources/>
1142+ <connections>
1143+ <connection>
1144+ <sender>email_line_edit</sender>
1145+ <signal>returnPressed()</signal>
1146+ <receiver>send_button</receiver>
1147+ <slot>click()</slot>
1148+ <hints>
1149+ <hint type="sourcelabel">
1150+ <x>222</x>
1151+ <y>92</y>
1152+ </hint>
1153+ <hint type="destinationlabel">
1154+ <x>362</x>
1155+ <y>136</y>
1156+ </hint>
1157+ </hints>
1158+ </connection>
1159+ </connections>
1160+</ui>
1161
1162=== modified file 'data/qt/loadingoverlay.ui'
1163--- data/qt/loadingoverlay.ui 2012-02-03 13:54:29 +0000
1164+++ data/qt/loadingoverlay.ui 2012-03-06 15:41:36 +0000
1165@@ -6,13 +6,10 @@
1166 <rect>
1167 <x>0</x>
1168 <y>0</y>
1169- <width>702</width>
1170- <height>230</height>
1171+ <width>433</width>
1172+ <height>169</height>
1173 </rect>
1174 </property>
1175- <property name="windowTitle">
1176- <string>Frame</string>
1177- </property>
1178 <layout class="QVBoxLayout" name="verticalLayout">
1179 <property name="topMargin">
1180 <number>30</number>
1181@@ -61,7 +58,7 @@
1182 </font>
1183 </property>
1184 <property name="text">
1185- <string>Getting information, please wait...</string>
1186+ <string notr="true">Getting information, please wait...</string>
1187 </property>
1188 </widget>
1189 </item>
1190
1191=== modified file 'data/qt/network_detection.ui'
1192--- data/qt/network_detection.ui 2012-02-13 20:27:48 +0000
1193+++ data/qt/network_detection.ui 2012-03-06 15:41:36 +0000
1194@@ -1,142 +1,139 @@
1195-<?xml version="1.0" encoding="UTF-8"?>
1196-<ui version="4.0">
1197- <class>Form</class>
1198- <widget class="QWizardPage" name="Form">
1199- <property name="geometry">
1200- <rect>
1201- <x>0</x>
1202- <y>0</y>
1203- <width>541</width>
1204- <height>365</height>
1205- </rect>
1206- </property>
1207- <property name="windowTitle">
1208- <string>WizardPage</string>
1209- </property>
1210- <layout class="QVBoxLayout" name="verticalLayout">
1211- <item>
1212- <layout class="QHBoxLayout" name="horizontalLayout_2">
1213- <item>
1214- <spacer name="horizontalSpacer_3">
1215- <property name="orientation">
1216- <enum>Qt::Horizontal</enum>
1217- </property>
1218- <property name="sizeHint" stdset="0">
1219- <size>
1220- <width>40</width>
1221- <height>20</height>
1222- </size>
1223- </property>
1224- </spacer>
1225- </item>
1226- <item>
1227- <widget class="QLabel" name="image_label">
1228- <property name="sizePolicy">
1229- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
1230- <horstretch>0</horstretch>
1231- <verstretch>0</verstretch>
1232- </sizepolicy>
1233- </property>
1234- <property name="minimumSize">
1235- <size>
1236- <width>400</width>
1237- <height>150</height>
1238- </size>
1239- </property>
1240- <property name="text">
1241- <string/>
1242- </property>
1243- <property name="textFormat">
1244- <enum>Qt::PlainText</enum>
1245- </property>
1246- <property name="alignment">
1247- <set>Qt::AlignCenter</set>
1248- </property>
1249- <property name="wordWrap">
1250- <bool>true</bool>
1251- </property>
1252- </widget>
1253- </item>
1254- <item>
1255- <spacer name="horizontalSpacer_4">
1256- <property name="orientation">
1257- <enum>Qt::Horizontal</enum>
1258- </property>
1259- <property name="sizeHint" stdset="0">
1260- <size>
1261- <width>40</width>
1262- <height>20</height>
1263- </size>
1264- </property>
1265- </spacer>
1266- </item>
1267- </layout>
1268- </item>
1269- <item>
1270- <widget class="QLabel" name="message_label">
1271- <property name="alignment">
1272- <set>Qt::AlignCenter</set>
1273- </property>
1274- </widget>
1275- </item>
1276- <item>
1277- <layout class="QHBoxLayout" name="horizontalLayout">
1278- <item>
1279- <spacer name="horizontalSpacer">
1280- <property name="orientation">
1281- <enum>Qt::Horizontal</enum>
1282- </property>
1283- <property name="sizeHint" stdset="0">
1284- <size>
1285- <width>40</width>
1286- <height>20</height>
1287- </size>
1288- </property>
1289- </spacer>
1290- </item>
1291- <item>
1292- <widget class="QLabel" name="label">
1293- <property name="text">
1294- <string>Are you online? We can't detect an internet connection - you will need to be connected to set up Ubuntu Single Sign On</string>
1295- </property>
1296- <property name="textFormat">
1297- <enum>Qt::PlainText</enum>
1298- </property>
1299- <property name="wordWrap">
1300- <bool>true</bool>
1301- </property>
1302- </widget>
1303- </item>
1304- <item>
1305- <spacer name="horizontalSpacer_2">
1306- <property name="orientation">
1307- <enum>Qt::Horizontal</enum>
1308- </property>
1309- <property name="sizeHint" stdset="0">
1310- <size>
1311- <width>40</width>
1312- <height>20</height>
1313- </size>
1314- </property>
1315- </spacer>
1316- </item>
1317- </layout>
1318- </item>
1319- <item>
1320- <spacer name="verticalSpacer">
1321- <property name="orientation">
1322- <enum>Qt::Vertical</enum>
1323- </property>
1324- <property name="sizeHint" stdset="0">
1325- <size>
1326- <width>20</width>
1327- <height>76</height>
1328- </size>
1329- </property>
1330- </spacer>
1331- </item>
1332- </layout>
1333- </widget>
1334- <resources/>
1335- <connections/>
1336-</ui>
1337+<?xml version="1.0" encoding="UTF-8"?>
1338+<ui version="4.0">
1339+ <class>Form</class>
1340+ <widget class="QWizardPage" name="Form">
1341+ <property name="geometry">
1342+ <rect>
1343+ <x>0</x>
1344+ <y>0</y>
1345+ <width>512</width>
1346+ <height>334</height>
1347+ </rect>
1348+ </property>
1349+ <layout class="QVBoxLayout" name="verticalLayout">
1350+ <item>
1351+ <layout class="QHBoxLayout" name="horizontalLayout_2">
1352+ <item>
1353+ <spacer name="horizontalSpacer_3">
1354+ <property name="orientation">
1355+ <enum>Qt::Horizontal</enum>
1356+ </property>
1357+ <property name="sizeHint" stdset="0">
1358+ <size>
1359+ <width>40</width>
1360+ <height>20</height>
1361+ </size>
1362+ </property>
1363+ </spacer>
1364+ </item>
1365+ <item>
1366+ <widget class="QLabel" name="image_label">
1367+ <property name="sizePolicy">
1368+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
1369+ <horstretch>0</horstretch>
1370+ <verstretch>0</verstretch>
1371+ </sizepolicy>
1372+ </property>
1373+ <property name="minimumSize">
1374+ <size>
1375+ <width>400</width>
1376+ <height>150</height>
1377+ </size>
1378+ </property>
1379+ <property name="text">
1380+ <string/>
1381+ </property>
1382+ <property name="textFormat">
1383+ <enum>Qt::PlainText</enum>
1384+ </property>
1385+ <property name="alignment">
1386+ <set>Qt::AlignCenter</set>
1387+ </property>
1388+ <property name="wordWrap">
1389+ <bool>true</bool>
1390+ </property>
1391+ </widget>
1392+ </item>
1393+ <item>
1394+ <spacer name="horizontalSpacer_4">
1395+ <property name="orientation">
1396+ <enum>Qt::Horizontal</enum>
1397+ </property>
1398+ <property name="sizeHint" stdset="0">
1399+ <size>
1400+ <width>40</width>
1401+ <height>20</height>
1402+ </size>
1403+ </property>
1404+ </spacer>
1405+ </item>
1406+ </layout>
1407+ </item>
1408+ <item>
1409+ <widget class="QLabel" name="message_label">
1410+ <property name="alignment">
1411+ <set>Qt::AlignCenter</set>
1412+ </property>
1413+ </widget>
1414+ </item>
1415+ <item>
1416+ <layout class="QHBoxLayout" name="horizontalLayout">
1417+ <item>
1418+ <spacer name="horizontalSpacer">
1419+ <property name="orientation">
1420+ <enum>Qt::Horizontal</enum>
1421+ </property>
1422+ <property name="sizeHint" stdset="0">
1423+ <size>
1424+ <width>40</width>
1425+ <height>20</height>
1426+ </size>
1427+ </property>
1428+ </spacer>
1429+ </item>
1430+ <item>
1431+ <widget class="QLabel" name="label">
1432+ <property name="text">
1433+ <string notr="true">Are you online? We can't detect an internet connection - you will need to be connected to set up Ubuntu Single Sign On</string>
1434+ </property>
1435+ <property name="textFormat">
1436+ <enum>Qt::PlainText</enum>
1437+ </property>
1438+ <property name="wordWrap">
1439+ <bool>true</bool>
1440+ </property>
1441+ </widget>
1442+ </item>
1443+ <item>
1444+ <spacer name="horizontalSpacer_2">
1445+ <property name="orientation">
1446+ <enum>Qt::Horizontal</enum>
1447+ </property>
1448+ <property name="sizeHint" stdset="0">
1449+ <size>
1450+ <width>40</width>
1451+ <height>20</height>
1452+ </size>
1453+ </property>
1454+ </spacer>
1455+ </item>
1456+ </layout>
1457+ </item>
1458+ <item>
1459+ <spacer name="verticalSpacer">
1460+ <property name="orientation">
1461+ <enum>Qt::Vertical</enum>
1462+ </property>
1463+ <property name="sizeHint" stdset="0">
1464+ <size>
1465+ <width>20</width>
1466+ <height>76</height>
1467+ </size>
1468+ </property>
1469+ </spacer>
1470+ </item>
1471+ </layout>
1472+ </widget>
1473+ <resources/>
1474+ <connections/>
1475+</ui>
1476
1477=== modified file 'data/qt/proxy_credentials_dialog.ui'
1478--- data/qt/proxy_credentials_dialog.ui 2012-02-08 20:28:04 +0000
1479+++ data/qt/proxy_credentials_dialog.ui 2012-03-06 15:41:36 +0000
1480@@ -10,7 +10,7 @@
1481 <x>0</x>
1482 <y>0</y>
1483 <width>550</width>
1484- <height>364</height>
1485+ <height>373</height>
1486 </rect>
1487 </property>
1488 <property name="sizePolicy">
1489@@ -21,13 +21,10 @@
1490 </property>
1491 <property name="minimumSize">
1492 <size>
1493- <width>502</width>
1494+ <width>550</width>
1495 <height>0</height>
1496 </size>
1497 </property>
1498- <property name="windowTitle">
1499- <string>Add proxy settings</string>
1500- </property>
1501 <property name="sizeGripEnabled">
1502 <bool>false</bool>
1503 </property>
1504@@ -74,7 +71,7 @@
1505 </size>
1506 </property>
1507 <property name="text">
1508- <string>TextLabel</string>
1509+ <string notr="true">TextLabel</string>
1510 </property>
1511 </widget>
1512 </item>
1513@@ -122,7 +119,7 @@
1514 </font>
1515 </property>
1516 <property name="text">
1517- <string>You are connection through a proxy.</string>
1518+ <string notr="true">You are connection through a proxy.</string>
1519 </property>
1520 <property name="wordWrap">
1521 <bool>true</bool>
1522@@ -132,7 +129,7 @@
1523 <item>
1524 <widget class="QLabel" name="explanation_label">
1525 <property name="text">
1526- <string>Please provide the login details below, or check your system settings</string>
1527+ <string notr="true">Please provide the login details below, or check your system settings</string>
1528 </property>
1529 <property name="wordWrap">
1530 <bool>true</bool>
1531@@ -162,7 +159,7 @@
1532 </sizepolicy>
1533 </property>
1534 <property name="text">
1535- <string>Connecting to:</string>
1536+ <string notr="true">Connecting to:</string>
1537 </property>
1538 <property name="alignment">
1539 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
1540@@ -179,7 +176,7 @@
1541 <item row="4" column="0">
1542 <widget class="QLabel" name="username_label">
1543 <property name="text">
1544- <string>Proxy username:</string>
1545+ <string notr="true">Proxy username:</string>
1546 </property>
1547 <property name="alignment">
1548 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
1549@@ -196,7 +193,7 @@
1550 <item row="5" column="0">
1551 <widget class="QLabel" name="password_label">
1552 <property name="text">
1553- <string>Proxy password:</string>
1554+ <string notr="true">Proxy password:</string>
1555 </property>
1556 <property name="alignment">
1557 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
1558@@ -229,7 +226,7 @@
1559 <item row="2" column="0" colspan="2">
1560 <widget class="QLabel" name="error_label">
1561 <property name="text">
1562- <string>TextLabel</string>
1563+ <string notr="true">TextLabel</string>
1564 </property>
1565 <property name="wordWrap">
1566 <bool>false</bool>
1567@@ -264,7 +261,7 @@
1568 <item>
1569 <widget class="QPushButton" name="help_button">
1570 <property name="text">
1571- <string>Get Help With Proxies</string>
1572+ <string notr="true">Get Help With Proxies</string>
1573 </property>
1574 </widget>
1575 </item>
1576@@ -284,14 +281,14 @@
1577 <item>
1578 <widget class="QPushButton" name="cancel_button">
1579 <property name="text">
1580- <string>Cancel and Close</string>
1581+ <string notr="true">Cancel and Close</string>
1582 </property>
1583 </widget>
1584 </item>
1585 <item>
1586 <widget class="QPushButton" name="save_button">
1587 <property name="text">
1588- <string>Save</string>
1589+ <string notr="true">Save</string>
1590 </property>
1591 <property name="default">
1592 <bool>true</bool>
1593
1594=== modified file 'data/qt/reset_password.ui'
1595--- data/qt/reset_password.ui 2011-09-08 20:30:39 +0000
1596+++ data/qt/reset_password.ui 2012-03-06 15:41:36 +0000
1597@@ -1,357 +1,348 @@
1598-<?xml version="1.0" encoding="UTF-8"?>
1599-<ui version="4.0">
1600- <class>ResetPasswordPage</class>
1601- <widget class="QWizardPage" name="ResetPasswordPage">
1602- <property name="geometry">
1603- <rect>
1604- <x>0</x>
1605- <y>0</y>
1606- <width>543</width>
1607- <height>262</height>
1608- </rect>
1609- </property>
1610- <property name="windowTitle">
1611- <string>WizardPage</string>
1612- </property>
1613- <property name="layoutDirection">
1614- <enum>Qt::LeftToRight</enum>
1615- </property>
1616- <layout class="QVBoxLayout" name="verticalLayout">
1617- <property name="spacing">
1618- <number>6</number>
1619- </property>
1620- <property name="margin">
1621- <number>0</number>
1622- </property>
1623- <item>
1624- <layout class="QHBoxLayout" name="horizontalLayout">
1625- <item>
1626- <layout class="QVBoxLayout" name="verticalLayout_2">
1627- <item>
1628- <widget class="QLabel" name="reset_code">
1629- <property name="sizePolicy">
1630- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
1631- <horstretch>0</horstretch>
1632- <verstretch>0</verstretch>
1633- </sizepolicy>
1634- </property>
1635- <property name="minimumSize">
1636- <size>
1637- <width>310</width>
1638- <height>0</height>
1639- </size>
1640- </property>
1641- <property name="maximumSize">
1642- <size>
1643- <width>16777215</width>
1644- <height>16777215</height>
1645- </size>
1646- </property>
1647- <property name="font">
1648- <font>
1649- <weight>75</weight>
1650- <bold>true</bold>
1651- </font>
1652- </property>
1653- <property name="text">
1654- <string>reset_code</string>
1655- </property>
1656- </widget>
1657- </item>
1658- <item>
1659- <widget class="QLineEdit" name="reset_code_line_edit">
1660- <property name="sizePolicy">
1661- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
1662- <horstretch>0</horstretch>
1663- <verstretch>0</verstretch>
1664- </sizepolicy>
1665- </property>
1666- <property name="minimumSize">
1667- <size>
1668- <width>300</width>
1669- <height>0</height>
1670- </size>
1671- </property>
1672- <property name="maximumSize">
1673- <size>
1674- <width>300</width>
1675- <height>16777215</height>
1676- </size>
1677- </property>
1678- </widget>
1679- </item>
1680- <item>
1681- <widget class="QLabel" name="password_label">
1682- <property name="sizePolicy">
1683- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
1684- <horstretch>0</horstretch>
1685- <verstretch>0</verstretch>
1686- </sizepolicy>
1687- </property>
1688- <property name="minimumSize">
1689- <size>
1690- <width>310</width>
1691- <height>0</height>
1692- </size>
1693- </property>
1694- <property name="maximumSize">
1695- <size>
1696- <width>16777215</width>
1697- <height>16777215</height>
1698- </size>
1699- </property>
1700- <property name="font">
1701- <font>
1702- <weight>75</weight>
1703- <bold>true</bold>
1704- </font>
1705- </property>
1706- <property name="text">
1707- <string>password_label</string>
1708- </property>
1709- </widget>
1710- </item>
1711- <item>
1712- <widget class="QLineEdit" name="password_line_edit">
1713- <property name="sizePolicy">
1714- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
1715- <horstretch>0</horstretch>
1716- <verstretch>0</verstretch>
1717- </sizepolicy>
1718- </property>
1719- <property name="minimumSize">
1720- <size>
1721- <width>300</width>
1722- <height>0</height>
1723- </size>
1724- </property>
1725- <property name="maximumSize">
1726- <size>
1727- <width>300</width>
1728- <height>16777215</height>
1729- </size>
1730- </property>
1731- <property name="echoMode">
1732- <enum>QLineEdit::Password</enum>
1733- </property>
1734- </widget>
1735- </item>
1736- <item>
1737- <widget class="QLabel" name="confirm_password_label">
1738- <property name="sizePolicy">
1739- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
1740- <horstretch>0</horstretch>
1741- <verstretch>0</verstretch>
1742- </sizepolicy>
1743- </property>
1744- <property name="minimumSize">
1745- <size>
1746- <width>310</width>
1747- <height>0</height>
1748- </size>
1749- </property>
1750- <property name="font">
1751- <font>
1752- <weight>75</weight>
1753- <bold>true</bold>
1754- </font>
1755- </property>
1756- <property name="text">
1757- <string>confirm_password_label</string>
1758- </property>
1759- </widget>
1760- </item>
1761- <item>
1762- <widget class="QLineEdit" name="confirm_password_line_edit">
1763- <property name="sizePolicy">
1764- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
1765- <horstretch>0</horstretch>
1766- <verstretch>0</verstretch>
1767- </sizepolicy>
1768- </property>
1769- <property name="minimumSize">
1770- <size>
1771- <width>300</width>
1772- <height>0</height>
1773- </size>
1774- </property>
1775- <property name="maximumSize">
1776- <size>
1777- <width>300</width>
1778- <height>16777215</height>
1779- </size>
1780- </property>
1781- <property name="echoMode">
1782- <enum>QLineEdit::Password</enum>
1783- </property>
1784- </widget>
1785- </item>
1786- <item>
1787- <spacer name="verticalSpacer">
1788- <property name="orientation">
1789- <enum>Qt::Vertical</enum>
1790- </property>
1791- <property name="sizeHint" stdset="0">
1792- <size>
1793- <width>300</width>
1794- <height>222</height>
1795- </size>
1796- </property>
1797- </spacer>
1798- </item>
1799- <item>
1800- <spacer name="horizontalSpacer_2">
1801- <property name="orientation">
1802- <enum>Qt::Horizontal</enum>
1803- </property>
1804- <property name="sizeType">
1805- <enum>QSizePolicy::Fixed</enum>
1806- </property>
1807- <property name="sizeHint" stdset="0">
1808- <size>
1809- <width>300</width>
1810- <height>0</height>
1811- </size>
1812- </property>
1813- </spacer>
1814- </item>
1815- </layout>
1816- </item>
1817- <item>
1818- <layout class="QVBoxLayout" name="verticalLayout_3">
1819- <item>
1820- <spacer name="verticalSpacer_3">
1821- <property name="orientation">
1822- <enum>Qt::Vertical</enum>
1823- </property>
1824- <property name="sizeType">
1825- <enum>QSizePolicy::Fixed</enum>
1826- </property>
1827- <property name="sizeHint" stdset="0">
1828- <size>
1829- <width>20</width>
1830- <height>55</height>
1831- </size>
1832- </property>
1833- </spacer>
1834- </item>
1835- <item>
1836- <widget class="QLabel" name="password_assistance">
1837- <property name="sizePolicy">
1838- <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
1839- <horstretch>0</horstretch>
1840- <verstretch>0</verstretch>
1841- </sizepolicy>
1842- </property>
1843- <property name="minimumSize">
1844- <size>
1845- <width>220</width>
1846- <height>100</height>
1847- </size>
1848- </property>
1849- <property name="maximumSize">
1850- <size>
1851- <width>220</width>
1852- <height>16777215</height>
1853- </size>
1854- </property>
1855- <property name="text">
1856- <string>password_assistance</string>
1857- </property>
1858- <property name="indent">
1859- <number>20</number>
1860- </property>
1861- </widget>
1862- </item>
1863- <item>
1864- <spacer name="verticalSpacer_2">
1865- <property name="orientation">
1866- <enum>Qt::Vertical</enum>
1867- </property>
1868- <property name="sizeHint" stdset="0">
1869- <size>
1870- <width>20</width>
1871- <height>40</height>
1872- </size>
1873- </property>
1874- </spacer>
1875- </item>
1876- <item>
1877- <spacer name="horizontalSpacer">
1878- <property name="orientation">
1879- <enum>Qt::Horizontal</enum>
1880- </property>
1881- <property name="sizeType">
1882- <enum>QSizePolicy::Ignored</enum>
1883- </property>
1884- <property name="sizeHint" stdset="0">
1885- <size>
1886- <width>220</width>
1887- <height>0</height>
1888- </size>
1889- </property>
1890- </spacer>
1891- </item>
1892- </layout>
1893- </item>
1894- </layout>
1895- </item>
1896- <item>
1897- <layout class="QHBoxLayout" name="horizontalLayout_2">
1898- <item>
1899- <layout class="QHBoxLayout" name="horizontalLayout_3">
1900- <property name="rightMargin">
1901- <number>0</number>
1902- </property>
1903- <item>
1904- <spacer name="horizontalSpacer_4">
1905- <property name="orientation">
1906- <enum>Qt::Horizontal</enum>
1907- </property>
1908- <property name="sizeType">
1909- <enum>QSizePolicy::Expanding</enum>
1910- </property>
1911- <property name="sizeHint" stdset="0">
1912- <size>
1913- <width>40</width>
1914- <height>20</height>
1915- </size>
1916- </property>
1917- </spacer>
1918- </item>
1919- <item>
1920- <widget class="QPushButton" name="reset_password_button">
1921- <property name="enabled">
1922- <bool>false</bool>
1923- </property>
1924- <property name="text">
1925- <string/>
1926- </property>
1927- </widget>
1928- </item>
1929- </layout>
1930- </item>
1931- </layout>
1932- </item>
1933- </layout>
1934- </widget>
1935- <resources/>
1936- <connections>
1937- <connection>
1938- <sender>confirm_password_line_edit</sender>
1939- <signal>returnPressed()</signal>
1940- <receiver>reset_password_button</receiver>
1941- <slot>click()</slot>
1942- <hints>
1943- <hint type="sourcelabel">
1944- <x>160</x>
1945- <y>81</y>
1946- </hint>
1947- <hint type="destinationlabel">
1948- <x>541</x>
1949- <y>237</y>
1950- </hint>
1951- </hints>
1952- </connection>
1953- </connections>
1954-</ui>
1955+<?xml version="1.0" encoding="UTF-8"?>
1956+<ui version="4.0">
1957+ <class>ResetPasswordPage</class>
1958+ <widget class="QWizardPage" name="ResetPasswordPage">
1959+ <property name="geometry">
1960+ <rect>
1961+ <x>0</x>
1962+ <y>0</y>
1963+ <width>544</width>
1964+ <height>280</height>
1965+ </rect>
1966+ </property>
1967+ <property name="layoutDirection">
1968+ <enum>Qt::LeftToRight</enum>
1969+ </property>
1970+ <layout class="QVBoxLayout" name="verticalLayout_6">
1971+ <property name="spacing">
1972+ <number>15</number>
1973+ </property>
1974+ <property name="margin">
1975+ <number>0</number>
1976+ </property>
1977+ <item>
1978+ <layout class="QHBoxLayout" name="horizontalLayout">
1979+ <property name="spacing">
1980+ <number>0</number>
1981+ </property>
1982+ <item>
1983+ <layout class="QVBoxLayout" name="verticalLayout_5">
1984+ <property name="spacing">
1985+ <number>15</number>
1986+ </property>
1987+ <item>
1988+ <layout class="QVBoxLayout" name="verticalLayout_4">
1989+ <property name="spacing">
1990+ <number>3</number>
1991+ </property>
1992+ <item>
1993+ <widget class="QLabel" name="reset_code">
1994+ <property name="sizePolicy">
1995+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
1996+ <horstretch>0</horstretch>
1997+ <verstretch>0</verstretch>
1998+ </sizepolicy>
1999+ </property>
2000+ <property name="minimumSize">
2001+ <size>
2002+ <width>310</width>
2003+ <height>0</height>
2004+ </size>
2005+ </property>
2006+ <property name="maximumSize">
2007+ <size>
2008+ <width>16777215</width>
2009+ <height>16777215</height>
2010+ </size>
2011+ </property>
2012+ <property name="font">
2013+ <font>
2014+ <weight>75</weight>
2015+ <bold>true</bold>
2016+ </font>
2017+ </property>
2018+ <property name="text">
2019+ <string notr="true">reset_code</string>
2020+ </property>
2021+ </widget>
2022+ </item>
2023+ <item>
2024+ <widget class="QLineEdit" name="reset_code_line_edit">
2025+ <property name="sizePolicy">
2026+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2027+ <horstretch>0</horstretch>
2028+ <verstretch>0</verstretch>
2029+ </sizepolicy>
2030+ </property>
2031+ <property name="minimumSize">
2032+ <size>
2033+ <width>300</width>
2034+ <height>0</height>
2035+ </size>
2036+ </property>
2037+ <property name="maximumSize">
2038+ <size>
2039+ <width>300</width>
2040+ <height>16777215</height>
2041+ </size>
2042+ </property>
2043+ </widget>
2044+ </item>
2045+ </layout>
2046+ </item>
2047+ <item>
2048+ <layout class="QVBoxLayout" name="verticalLayout">
2049+ <property name="spacing">
2050+ <number>3</number>
2051+ </property>
2052+ <item>
2053+ <widget class="QLabel" name="password_label">
2054+ <property name="sizePolicy">
2055+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
2056+ <horstretch>0</horstretch>
2057+ <verstretch>0</verstretch>
2058+ </sizepolicy>
2059+ </property>
2060+ <property name="minimumSize">
2061+ <size>
2062+ <width>310</width>
2063+ <height>0</height>
2064+ </size>
2065+ </property>
2066+ <property name="maximumSize">
2067+ <size>
2068+ <width>16777215</width>
2069+ <height>16777215</height>
2070+ </size>
2071+ </property>
2072+ <property name="font">
2073+ <font>
2074+ <weight>75</weight>
2075+ <bold>true</bold>
2076+ </font>
2077+ </property>
2078+ <property name="text">
2079+ <string notr="true">password_label</string>
2080+ </property>
2081+ </widget>
2082+ </item>
2083+ <item>
2084+ <widget class="QLineEdit" name="password_line_edit">
2085+ <property name="sizePolicy">
2086+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2087+ <horstretch>0</horstretch>
2088+ <verstretch>0</verstretch>
2089+ </sizepolicy>
2090+ </property>
2091+ <property name="minimumSize">
2092+ <size>
2093+ <width>300</width>
2094+ <height>0</height>
2095+ </size>
2096+ </property>
2097+ <property name="maximumSize">
2098+ <size>
2099+ <width>300</width>
2100+ <height>16777215</height>
2101+ </size>
2102+ </property>
2103+ <property name="echoMode">
2104+ <enum>QLineEdit::Password</enum>
2105+ </property>
2106+ </widget>
2107+ </item>
2108+ </layout>
2109+ </item>
2110+ <item>
2111+ <layout class="QVBoxLayout" name="verticalLayout_2">
2112+ <property name="spacing">
2113+ <number>3</number>
2114+ </property>
2115+ <item>
2116+ <widget class="QLabel" name="confirm_password_label">
2117+ <property name="sizePolicy">
2118+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
2119+ <horstretch>0</horstretch>
2120+ <verstretch>0</verstretch>
2121+ </sizepolicy>
2122+ </property>
2123+ <property name="minimumSize">
2124+ <size>
2125+ <width>310</width>
2126+ <height>0</height>
2127+ </size>
2128+ </property>
2129+ <property name="font">
2130+ <font>
2131+ <weight>75</weight>
2132+ <bold>true</bold>
2133+ </font>
2134+ </property>
2135+ <property name="text">
2136+ <string notr="true">confirm_password_label</string>
2137+ </property>
2138+ </widget>
2139+ </item>
2140+ <item>
2141+ <widget class="QLineEdit" name="confirm_password_line_edit">
2142+ <property name="sizePolicy">
2143+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2144+ <horstretch>0</horstretch>
2145+ <verstretch>0</verstretch>
2146+ </sizepolicy>
2147+ </property>
2148+ <property name="minimumSize">
2149+ <size>
2150+ <width>300</width>
2151+ <height>0</height>
2152+ </size>
2153+ </property>
2154+ <property name="maximumSize">
2155+ <size>
2156+ <width>300</width>
2157+ <height>16777215</height>
2158+ </size>
2159+ </property>
2160+ <property name="echoMode">
2161+ <enum>QLineEdit::Password</enum>
2162+ </property>
2163+ </widget>
2164+ </item>
2165+ </layout>
2166+ </item>
2167+ </layout>
2168+ </item>
2169+ <item>
2170+ <layout class="QVBoxLayout" name="verticalLayout_3">
2171+ <property name="spacing">
2172+ <number>0</number>
2173+ </property>
2174+ <item>
2175+ <widget class="QLabel" name="password_assistance">
2176+ <property name="sizePolicy">
2177+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
2178+ <horstretch>0</horstretch>
2179+ <verstretch>0</verstretch>
2180+ </sizepolicy>
2181+ </property>
2182+ <property name="minimumSize">
2183+ <size>
2184+ <width>220</width>
2185+ <height>100</height>
2186+ </size>
2187+ </property>
2188+ <property name="maximumSize">
2189+ <size>
2190+ <width>220</width>
2191+ <height>16777215</height>
2192+ </size>
2193+ </property>
2194+ <property name="text">
2195+ <string notr="true">password_assistance</string>
2196+ </property>
2197+ <property name="indent">
2198+ <number>20</number>
2199+ </property>
2200+ </widget>
2201+ </item>
2202+ <item>
2203+ <spacer name="verticalSpacer_2">
2204+ <property name="orientation">
2205+ <enum>Qt::Vertical</enum>
2206+ </property>
2207+ <property name="sizeHint" stdset="0">
2208+ <size>
2209+ <width>20</width>
2210+ <height>40</height>
2211+ </size>
2212+ </property>
2213+ </spacer>
2214+ </item>
2215+ <item>
2216+ <spacer name="horizontalSpacer">
2217+ <property name="orientation">
2218+ <enum>Qt::Horizontal</enum>
2219+ </property>
2220+ <property name="sizeType">
2221+ <enum>QSizePolicy::Ignored</enum>
2222+ </property>
2223+ <property name="sizeHint" stdset="0">
2224+ <size>
2225+ <width>220</width>
2226+ <height>0</height>
2227+ </size>
2228+ </property>
2229+ </spacer>
2230+ </item>
2231+ </layout>
2232+ </item>
2233+ </layout>
2234+ </item>
2235+ <item>
2236+ <layout class="QHBoxLayout" name="horizontalLayout_3">
2237+ <property name="rightMargin">
2238+ <number>0</number>
2239+ </property>
2240+ <item>
2241+ <spacer name="horizontalSpacer_4">
2242+ <property name="orientation">
2243+ <enum>Qt::Horizontal</enum>
2244+ </property>
2245+ <property name="sizeType">
2246+ <enum>QSizePolicy::Expanding</enum>
2247+ </property>
2248+ <property name="sizeHint" stdset="0">
2249+ <size>
2250+ <width>40</width>
2251+ <height>20</height>
2252+ </size>
2253+ </property>
2254+ </spacer>
2255+ </item>
2256+ <item>
2257+ <widget class="QPushButton" name="reset_password_button">
2258+ <property name="enabled">
2259+ <bool>false</bool>
2260+ </property>
2261+ <property name="text">
2262+ <string notr="true"/>
2263+ </property>
2264+ </widget>
2265+ </item>
2266+ </layout>
2267+ </item>
2268+ <item>
2269+ <spacer name="verticalSpacer">
2270+ <property name="orientation">
2271+ <enum>Qt::Vertical</enum>
2272+ </property>
2273+ <property name="sizeHint" stdset="0">
2274+ <size>
2275+ <width>20</width>
2276+ <height>40</height>
2277+ </size>
2278+ </property>
2279+ </spacer>
2280+ </item>
2281+ </layout>
2282+ </widget>
2283+ <resources/>
2284+ <connections>
2285+ <connection>
2286+ <sender>confirm_password_line_edit</sender>
2287+ <signal>returnPressed()</signal>
2288+ <receiver>reset_password_button</receiver>
2289+ <slot>click()</slot>
2290+ <hints>
2291+ <hint type="sourcelabel">
2292+ <x>160</x>
2293+ <y>81</y>
2294+ </hint>
2295+ <hint type="destinationlabel">
2296+ <x>541</x>
2297+ <y>237</y>
2298+ </hint>
2299+ </hints>
2300+ </connection>
2301+ </connections>
2302+</ui>
2303
2304=== modified file 'data/qt/setup_account.ui'
2305--- data/qt/setup_account.ui 2012-02-17 21:16:38 +0000
2306+++ data/qt/setup_account.ui 2012-03-06 15:41:36 +0000
2307@@ -1,700 +1,661 @@
2308-<?xml version="1.0" encoding="UTF-8"?>
2309-<ui version="4.0">
2310- <class>SetUpAccountPage</class>
2311- <widget class="QWizardPage" name="SetUpAccountPage">
2312- <property name="geometry">
2313- <rect>
2314- <x>0</x>
2315- <y>0</y>
2316- <width>543</width>
2317- <height>523</height>
2318- </rect>
2319- </property>
2320- <property name="sizePolicy">
2321- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
2322- <horstretch>0</horstretch>
2323- <verstretch>0</verstretch>
2324- </sizepolicy>
2325- </property>
2326- <property name="maximumSize">
2327- <size>
2328- <width>16777215</width>
2329- <height>16777215</height>
2330- </size>
2331- </property>
2332- <property name="windowTitle">
2333- <string>WizardPage</string>
2334- </property>
2335- <layout class="QVBoxLayout" name="verticalLayout">
2336- <property name="spacing">
2337- <number>0</number>
2338- </property>
2339- <property name="leftMargin">
2340- <number>0</number>
2341- </property>
2342- <property name="topMargin">
2343- <number>0</number>
2344- </property>
2345- <property name="rightMargin">
2346- <number>3</number>
2347- </property>
2348- <property name="bottomMargin">
2349- <number>0</number>
2350- </property>
2351- <item>
2352- <layout class="QGridLayout" name="gridLayout" columnminimumwidth="310,220">
2353- <item row="0" column="0">
2354- <widget class="QLabel" name="password_info_label">
2355- <property name="sizePolicy">
2356- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
2357- <horstretch>0</horstretch>
2358- <verstretch>0</verstretch>
2359- </sizepolicy>
2360- </property>
2361- <property name="text">
2362- <string>If you can't read this then &lt;a href=&quot;example.com&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#dd4814;&quot;&gt;refresh&lt;/span&gt;&lt;/a&gt; this page&lt;/span&gt;</string>
2363- </property>
2364- <property name="wordWrap">
2365- <bool>true</bool>
2366- </property>
2367- </widget>
2368- </item>
2369- <item row="1" column="0">
2370- <layout class="QVBoxLayout" name="verticalLayout">
2371- <property name="spacing">
2372- <number>3</number>
2373- </property>
2374- <item>
2375- <widget class="QLabel" name="name_label">
2376- <property name="font">
2377- <font>
2378- <weight>75</weight>
2379- <bold>true</bold>
2380- </font>
2381- </property>
2382- <property name="text">
2383- <string>name_label</string>
2384- </property>
2385- </widget>
2386- </item>
2387- <item>
2388- <widget class="QLineEdit" name="name_edit">
2389- <property name="sizePolicy">
2390- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2391- <horstretch>0</horstretch>
2392- <verstretch>0</verstretch>
2393- </sizepolicy>
2394- </property>
2395- <property name="minimumSize">
2396- <size>
2397- <width>300</width>
2398- <height>0</height>
2399- </size>
2400- </property>
2401- <property name="maximumSize">
2402- <size>
2403- <width>300</width>
2404- <height>16777215</height>
2405- </size>
2406- </property>
2407- <property name="font">
2408- <font>
2409- <pointsize>11</pointsize>
2410- </font>
2411- </property>
2412- <property name="formError" stdset="0">
2413- <bool>false</bool>
2414- </property>
2415- </widget>
2416- </item>
2417- </layout>
2418- </item>
2419- <item row="3" column="0">
2420- <layout class="QVBoxLayout" name="verticalLayout">
2421- <property name="spacing">
2422- <number>3</number>
2423- </property>
2424- <item>
2425- <widget class="QLabel" name="email_label">
2426- <property name="font">
2427- <font>
2428- <weight>75</weight>
2429- <bold>true</bold>
2430- </font>
2431- </property>
2432- <property name="text">
2433- <string>email_label</string>
2434- </property>
2435- </widget>
2436- </item>
2437- <item>
2438- <widget class="QLineEdit" name="email_edit">
2439- <property name="sizePolicy">
2440- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2441- <horstretch>0</horstretch>
2442- <verstretch>0</verstretch>
2443- </sizepolicy>
2444- </property>
2445- <property name="minimumSize">
2446- <size>
2447- <width>300</width>
2448- <height>0</height>
2449- </size>
2450- </property>
2451- <property name="maximumSize">
2452- <size>
2453- <width>300</width>
2454- <height>16777215</height>
2455- </size>
2456- </property>
2457- <property name="font">
2458- <font>
2459- <pointsize>11</pointsize>
2460- </font>
2461- </property>
2462- <property name="placeholderText">
2463- <string/>
2464- </property>
2465- <property name="formError" stdset="0">
2466- <bool>false</bool>
2467- </property>
2468- </widget>
2469- </item>
2470- </layout>
2471- </item>
2472- <item row="4" column="0">
2473- <layout class="QVBoxLayout" name="verticalLayout">
2474- <property name="spacing">
2475- <number>3</number>
2476- </property>
2477- <item>
2478- <widget class="QLabel" name="confirm_email_label">
2479- <property name="font">
2480- <font>
2481- <weight>75</weight>
2482- <bold>true</bold>
2483- </font>
2484- </property>
2485- <property name="text">
2486- <string>confirm_email_label</string>
2487- </property>
2488- </widget>
2489- </item>
2490- <item>
2491- <widget class="QLineEdit" name="confirm_email_edit">
2492- <property name="sizePolicy">
2493- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2494- <horstretch>0</horstretch>
2495- <verstretch>0</verstretch>
2496- </sizepolicy>
2497- </property>
2498- <property name="minimumSize">
2499- <size>
2500- <width>300</width>
2501- <height>0</height>
2502- </size>
2503- </property>
2504- <property name="maximumSize">
2505- <size>
2506- <width>300</width>
2507- <height>16777215</height>
2508- </size>
2509- </property>
2510- <property name="font">
2511- <font>
2512- <pointsize>11</pointsize>
2513- </font>
2514- </property>
2515- <property name="placeholderText">
2516- <string/>
2517- </property>
2518- <property name="formError" stdset="0">
2519- <bool>false</bool>
2520- </property>
2521- </widget>
2522- </item>
2523- </layout>
2524- </item>
2525- <item row="6" column="0">
2526- <layout class="QVBoxLayout" name="verticalLayout">
2527- <property name="spacing">
2528- <number>3</number>
2529- </property>
2530- <item>
2531- <spacer name="verticalSpacer_4">
2532- <property name="orientation">
2533- <enum>Qt::Vertical</enum>
2534- </property>
2535- <property name="sizeType">
2536- <enum>QSizePolicy::Fixed</enum>
2537- </property>
2538- <property name="sizeHint" stdset="0">
2539- <size>
2540- <width>20</width>
2541- <height>10</height>
2542- </size>
2543- </property>
2544- </spacer>
2545- </item>
2546- <item>
2547- <widget class="QLabel" name="password_label">
2548- <property name="font">
2549- <font>
2550- <weight>75</weight>
2551- <bold>true</bold>
2552- </font>
2553- </property>
2554- <property name="text">
2555- <string>password_label</string>
2556- </property>
2557- </widget>
2558- </item>
2559- <item>
2560- <widget class="QLineEdit" name="password_edit">
2561- <property name="sizePolicy">
2562- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2563- <horstretch>0</horstretch>
2564- <verstretch>0</verstretch>
2565- </sizepolicy>
2566- </property>
2567- <property name="minimumSize">
2568- <size>
2569- <width>300</width>
2570- <height>0</height>
2571- </size>
2572- </property>
2573- <property name="maximumSize">
2574- <size>
2575- <width>300</width>
2576- <height>16777215</height>
2577- </size>
2578- </property>
2579- <property name="font">
2580- <font>
2581- <pointsize>11</pointsize>
2582- </font>
2583- </property>
2584- <property name="toolTip">
2585- <string>Your password must be at least 8 characters long and at least contain one number and one upper later.</string>
2586- </property>
2587- <property name="statusTip">
2588- <string/>
2589- </property>
2590- <property name="echoMode">
2591- <enum>QLineEdit::Password</enum>
2592- </property>
2593- <property name="placeholderText">
2594- <string/>
2595- </property>
2596- <property name="formError" stdset="0">
2597- <bool>false</bool>
2598- </property>
2599- </widget>
2600- </item>
2601- </layout>
2602- </item>
2603- <item row="7" column="0">
2604- <layout class="QVBoxLayout" name="verticalLayout">
2605- <property name="spacing">
2606- <number>3</number>
2607- </property>
2608- <item>
2609- <spacer name="verticalSpacer_5">
2610- <property name="orientation">
2611- <enum>Qt::Vertical</enum>
2612- </property>
2613- <property name="sizeType">
2614- <enum>QSizePolicy::Fixed</enum>
2615- </property>
2616- <property name="sizeHint" stdset="0">
2617- <size>
2618- <width>20</width>
2619- <height>10</height>
2620- </size>
2621- </property>
2622- </spacer>
2623- </item>
2624- <item>
2625- <widget class="QLabel" name="confirm_password_label">
2626- <property name="font">
2627- <font>
2628- <weight>75</weight>
2629- <bold>true</bold>
2630- </font>
2631- </property>
2632- <property name="text">
2633- <string>confirm_password_label</string>
2634- </property>
2635- </widget>
2636- </item>
2637- <item>
2638- <widget class="QLineEdit" name="confirm_password_edit">
2639- <property name="sizePolicy">
2640- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2641- <horstretch>0</horstretch>
2642- <verstretch>0</verstretch>
2643- </sizepolicy>
2644- </property>
2645- <property name="minimumSize">
2646- <size>
2647- <width>300</width>
2648- <height>0</height>
2649- </size>
2650- </property>
2651- <property name="maximumSize">
2652- <size>
2653- <width>300</width>
2654- <height>16777215</height>
2655- </size>
2656- </property>
2657- <property name="font">
2658- <font>
2659- <pointsize>11</pointsize>
2660- </font>
2661- </property>
2662- <property name="echoMode">
2663- <enum>QLineEdit::Password</enum>
2664- </property>
2665- <property name="placeholderText">
2666- <string/>
2667- </property>
2668- <property name="formError" stdset="0">
2669- <bool>false</bool>
2670- </property>
2671- </widget>
2672- </item>
2673- </layout>
2674- </item>
2675- <item row="9" column="0">
2676- <layout class="QVBoxLayout" name="verticalLayout">
2677- <property name="spacing">
2678- <number>3</number>
2679- </property>
2680- <item>
2681- <widget class="QLabel" name="captcha_view">
2682- <property name="sizePolicy">
2683- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2684- <horstretch>0</horstretch>
2685- <verstretch>0</verstretch>
2686- </sizepolicy>
2687- </property>
2688- <property name="minimumSize">
2689- <size>
2690- <width>300</width>
2691- <height>57</height>
2692- </size>
2693- </property>
2694- <property name="maximumSize">
2695- <size>
2696- <width>300</width>
2697- <height>16777215</height>
2698- </size>
2699- </property>
2700- <property name="styleSheet">
2701- <string notr="true">background-color: white</string>
2702- </property>
2703- <property name="frameShape">
2704- <enum>QFrame::Box</enum>
2705- </property>
2706- <property name="text">
2707- <string>If you can't read this then &lt;a href=&quot;example.com&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#dd4814;&quot;&gt;refresh&lt;/span&gt;&lt;/a&gt; this page&lt;/span&gt;</string>
2708- </property>
2709- </widget>
2710- </item>
2711- <item>
2712- <widget class="QLineEdit" name="captcha_solution_edit">
2713- <property name="sizePolicy">
2714- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
2715- <horstretch>0</horstretch>
2716- <verstretch>0</verstretch>
2717- </sizepolicy>
2718- </property>
2719- <property name="minimumSize">
2720- <size>
2721- <width>300</width>
2722- <height>0</height>
2723- </size>
2724- </property>
2725- <property name="maximumSize">
2726- <size>
2727- <width>300</width>
2728- <height>16777215</height>
2729- </size>
2730- </property>
2731- <property name="font">
2732- <font>
2733- <pointsize>11</pointsize>
2734- </font>
2735- </property>
2736- <property name="locale">
2737- <locale language="English" country="UnitedStates"/>
2738- </property>
2739- <property name="inputMask">
2740- <string/>
2741- </property>
2742- <property name="text">
2743- <string/>
2744- </property>
2745- <property name="placeholderText">
2746- <string/>
2747- </property>
2748- <property name="formError" stdset="0">
2749- <bool>false</bool>
2750- </property>
2751- </widget>
2752- </item>
2753- </layout>
2754- </item>
2755- <item row="9" column="1">
2756- <widget class="QLabel" name="refresh_label">
2757- <property name="sizePolicy">
2758- <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
2759- <horstretch>0</horstretch>
2760- <verstretch>0</verstretch>
2761- </sizepolicy>
2762- </property>
2763- <property name="minimumSize">
2764- <size>
2765- <width>220</width>
2766- <height>0</height>
2767- </size>
2768- </property>
2769- <property name="maximumSize">
2770- <size>
2771- <width>220</width>
2772- <height>16777215</height>
2773- </size>
2774- </property>
2775- <property name="locale">
2776- <locale language="English" country="UnitedStates"/>
2777- </property>
2778- <property name="text">
2779- <string>If you can't read this then &lt;a href=&quot;example.com&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#dd4814;&quot;&gt;refresh&lt;/span&gt;&lt;/a&gt; this page&lt;/span&gt;</string>
2780- </property>
2781- <property name="wordWrap">
2782- <bool>true</bool>
2783- </property>
2784- <property name="indent">
2785- <number>0</number>
2786- </property>
2787- </widget>
2788- </item>
2789- <item row="1" column="1">
2790- <layout class="QVBoxLayout" name="verticalLayout_7">
2791- <property name="spacing">
2792- <number>0</number>
2793- </property>
2794- <property name="leftMargin">
2795- <number>0</number>
2796- </property>
2797- <item>
2798- <widget class="QLabel" name="name_assistance">
2799- <property name="sizePolicy">
2800- <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
2801- <horstretch>0</horstretch>
2802- <verstretch>0</verstretch>
2803- </sizepolicy>
2804- </property>
2805- <property name="minimumSize">
2806- <size>
2807- <width>220</width>
2808- <height>0</height>
2809- </size>
2810- </property>
2811- <property name="maximumSize">
2812- <size>
2813- <width>220</width>
2814- <height>16777215</height>
2815- </size>
2816- </property>
2817- <property name="text">
2818- <string>name_assistance</string>
2819- </property>
2820- <property name="alignment">
2821- <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
2822- </property>
2823- <property name="wordWrap">
2824- <bool>true</bool>
2825- </property>
2826- </widget>
2827- </item>
2828- </layout>
2829- </item>
2830- <item row="3" column="1">
2831- <layout class="QVBoxLayout" name="verticalLayout_8">
2832- <property name="spacing">
2833- <number>0</number>
2834- </property>
2835- <property name="leftMargin">
2836- <number>0</number>
2837- </property>
2838- <item>
2839- <widget class="QLabel" name="email_assistance">
2840- <property name="sizePolicy">
2841- <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
2842- <horstretch>0</horstretch>
2843- <verstretch>0</verstretch>
2844- </sizepolicy>
2845- </property>
2846- <property name="minimumSize">
2847- <size>
2848- <width>220</width>
2849- <height>0</height>
2850- </size>
2851- </property>
2852- <property name="maximumSize">
2853- <size>
2854- <width>220</width>
2855- <height>16777215</height>
2856- </size>
2857- </property>
2858- <property name="text">
2859- <string>email_assistance</string>
2860- </property>
2861- <property name="alignment">
2862- <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
2863- </property>
2864- <property name="wordWrap">
2865- <bool>true</bool>
2866- </property>
2867- </widget>
2868- </item>
2869- </layout>
2870- </item>
2871- <item row="4" column="1">
2872- <layout class="QVBoxLayout" name="verticalLayout_9">
2873- <property name="spacing">
2874- <number>0</number>
2875- </property>
2876- <property name="leftMargin">
2877- <number>0</number>
2878- </property>
2879- <item>
2880- <widget class="QLabel" name="confirm_email_assistance">
2881- <property name="sizePolicy">
2882- <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
2883- <horstretch>0</horstretch>
2884- <verstretch>0</verstretch>
2885- </sizepolicy>
2886- </property>
2887- <property name="minimumSize">
2888- <size>
2889- <width>220</width>
2890- <height>0</height>
2891- </size>
2892- </property>
2893- <property name="maximumSize">
2894- <size>
2895- <width>220</width>
2896- <height>16777215</height>
2897- </size>
2898- </property>
2899- <property name="text">
2900- <string>confirm_email_assistance</string>
2901- </property>
2902- <property name="alignment">
2903- <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
2904- </property>
2905- <property name="wordWrap">
2906- <bool>true</bool>
2907- </property>
2908- <property name="indent">
2909- <number>0</number>
2910- </property>
2911- </widget>
2912- </item>
2913- </layout>
2914- </item>
2915- <item row="6" column="1" rowspan="2">
2916- <widget class="QLabel" name="password_assistance">
2917- <property name="sizePolicy">
2918- <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
2919- <horstretch>0</horstretch>
2920- <verstretch>0</verstretch>
2921- </sizepolicy>
2922- </property>
2923- <property name="minimumSize">
2924- <size>
2925- <width>220</width>
2926- <height>100</height>
2927- </size>
2928- </property>
2929- <property name="maximumSize">
2930- <size>
2931- <width>220</width>
2932- <height>16777215</height>
2933- </size>
2934- </property>
2935- <property name="text">
2936- <string>password_assistance</string>
2937- </property>
2938- <property name="wordWrap">
2939- <bool>true</bool>
2940- </property>
2941- <property name="indent">
2942- <number>17</number>
2943- </property>
2944- </widget>
2945- </item>
2946- <item row="2" column="1">
2947- <spacer name="verticalSpacer">
2948- <property name="orientation">
2949- <enum>Qt::Vertical</enum>
2950- </property>
2951- <property name="sizeType">
2952- <enum>QSizePolicy::Fixed</enum>
2953- </property>
2954- <property name="sizeHint" stdset="0">
2955- <size>
2956- <width>20</width>
2957- <height>15</height>
2958- </size>
2959- </property>
2960- </spacer>
2961- </item>
2962- <item row="5" column="1">
2963- <spacer name="verticalSpacer_2">
2964- <property name="orientation">
2965- <enum>Qt::Vertical</enum>
2966- </property>
2967- <property name="sizeType">
2968- <enum>QSizePolicy::Fixed</enum>
2969- </property>
2970- <property name="sizeHint" stdset="0">
2971- <size>
2972- <width>20</width>
2973- <height>15</height>
2974- </size>
2975- </property>
2976- </spacer>
2977- </item>
2978- <item row="8" column="1">
2979- <spacer name="verticalSpacer_3">
2980- <property name="orientation">
2981- <enum>Qt::Vertical</enum>
2982- </property>
2983- <property name="sizeType">
2984- <enum>QSizePolicy::Fixed</enum>
2985- </property>
2986- <property name="sizeHint" stdset="0">
2987- <size>
2988- <width>20</width>
2989- <height>15</height>
2990- </size>
2991- </property>
2992- </spacer>
2993- </item>
2994- </layout>
2995- </item>
2996- <item>
2997- <layout class="QHBoxLayout" name="hlayout_check">
2998- <property name="spacing">
2999- <number>0</number>
3000- </property>
3001- </layout>
3002- </item>
3003- </layout>
3004- </widget>
3005- <resources/>
3006- <connections/>
3007-</ui>
3008+<?xml version="1.0" encoding="UTF-8"?>
3009+<ui version="4.0">
3010+ <class>SetUpAccountPage</class>
3011+ <widget class="QWizardPage" name="SetUpAccountPage">
3012+ <property name="geometry">
3013+ <rect>
3014+ <x>0</x>
3015+ <y>0</y>
3016+ <width>532</width>
3017+ <height>438</height>
3018+ </rect>
3019+ </property>
3020+ <property name="sizePolicy">
3021+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
3022+ <horstretch>0</horstretch>
3023+ <verstretch>0</verstretch>
3024+ </sizepolicy>
3025+ </property>
3026+ <property name="maximumSize">
3027+ <size>
3028+ <width>16777215</width>
3029+ <height>16777215</height>
3030+ </size>
3031+ </property>
3032+ <layout class="QVBoxLayout" name="verticalLayout">
3033+ <property name="spacing">
3034+ <number>0</number>
3035+ </property>
3036+ <property name="margin">
3037+ <number>0</number>
3038+ </property>
3039+ <item>
3040+ <layout class="QGridLayout" name="gridLayout" columnminimumwidth="310,0">
3041+ <property name="sizeConstraint">
3042+ <enum>QLayout::SetDefaultConstraint</enum>
3043+ </property>
3044+ <property name="verticalSpacing">
3045+ <number>6</number>
3046+ </property>
3047+ <item row="4" column="0" colspan="2">
3048+ <spacer name="verticalSpacer_2">
3049+ <property name="orientation">
3050+ <enum>Qt::Vertical</enum>
3051+ </property>
3052+ <property name="sizeHint" stdset="0">
3053+ <size>
3054+ <width>20</width>
3055+ <height>10</height>
3056+ </size>
3057+ </property>
3058+ </spacer>
3059+ </item>
3060+ <item row="10" column="0" colspan="2">
3061+ <spacer name="verticalSpacer_3">
3062+ <property name="orientation">
3063+ <enum>Qt::Vertical</enum>
3064+ </property>
3065+ <property name="sizeHint" stdset="0">
3066+ <size>
3067+ <width>20</width>
3068+ <height>10</height>
3069+ </size>
3070+ </property>
3071+ </spacer>
3072+ </item>
3073+ <item row="7" column="0" colspan="2">
3074+ <spacer name="verticalSpacer_4">
3075+ <property name="orientation">
3076+ <enum>Qt::Vertical</enum>
3077+ </property>
3078+ <property name="sizeHint" stdset="0">
3079+ <size>
3080+ <width>20</width>
3081+ <height>10</height>
3082+ </size>
3083+ </property>
3084+ </spacer>
3085+ </item>
3086+ <item row="0" column="0">
3087+ <layout class="QVBoxLayout" name="verticalLayout_5">
3088+ <property name="spacing">
3089+ <number>3</number>
3090+ </property>
3091+ <item>
3092+ <widget class="QLabel" name="name_label">
3093+ <property name="font">
3094+ <font>
3095+ <weight>75</weight>
3096+ <bold>true</bold>
3097+ </font>
3098+ </property>
3099+ <property name="text">
3100+ <string notr="true">name_label</string>
3101+ </property>
3102+ </widget>
3103+ </item>
3104+ <item>
3105+ <widget class="QLineEdit" name="name_edit">
3106+ <property name="sizePolicy">
3107+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
3108+ <horstretch>0</horstretch>
3109+ <verstretch>0</verstretch>
3110+ </sizepolicy>
3111+ </property>
3112+ <property name="minimumSize">
3113+ <size>
3114+ <width>300</width>
3115+ <height>0</height>
3116+ </size>
3117+ </property>
3118+ <property name="maximumSize">
3119+ <size>
3120+ <width>300</width>
3121+ <height>16777215</height>
3122+ </size>
3123+ </property>
3124+ <property name="font">
3125+ <font>
3126+ <pointsize>11</pointsize>
3127+ </font>
3128+ </property>
3129+ <property name="formError" stdset="0">
3130+ <bool>false</bool>
3131+ </property>
3132+ </widget>
3133+ </item>
3134+ </layout>
3135+ </item>
3136+ <item row="2" column="0">
3137+ <layout class="QVBoxLayout" name="verticalLayout_6">
3138+ <property name="spacing">
3139+ <number>3</number>
3140+ </property>
3141+ <item>
3142+ <widget class="QLabel" name="email_label">
3143+ <property name="font">
3144+ <font>
3145+ <weight>75</weight>
3146+ <bold>true</bold>
3147+ </font>
3148+ </property>
3149+ <property name="text">
3150+ <string notr="true">email_label</string>
3151+ </property>
3152+ </widget>
3153+ </item>
3154+ <item>
3155+ <widget class="QLineEdit" name="email_edit">
3156+ <property name="sizePolicy">
3157+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
3158+ <horstretch>0</horstretch>
3159+ <verstretch>0</verstretch>
3160+ </sizepolicy>
3161+ </property>
3162+ <property name="minimumSize">
3163+ <size>
3164+ <width>300</width>
3165+ <height>0</height>
3166+ </size>
3167+ </property>
3168+ <property name="maximumSize">
3169+ <size>
3170+ <width>300</width>
3171+ <height>16777215</height>
3172+ </size>
3173+ </property>
3174+ <property name="font">
3175+ <font>
3176+ <pointsize>11</pointsize>
3177+ </font>
3178+ </property>
3179+ <property name="placeholderText">
3180+ <string/>
3181+ </property>
3182+ <property name="formError" stdset="0">
3183+ <bool>false</bool>
3184+ </property>
3185+ </widget>
3186+ </item>
3187+ </layout>
3188+ </item>
3189+ <item row="2" column="1">
3190+ <layout class="QVBoxLayout" name="verticalLayout_8">
3191+ <property name="spacing">
3192+ <number>0</number>
3193+ </property>
3194+ <property name="leftMargin">
3195+ <number>0</number>
3196+ </property>
3197+ <item>
3198+ <widget class="QLabel" name="email_assistance">
3199+ <property name="sizePolicy">
3200+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
3201+ <horstretch>0</horstretch>
3202+ <verstretch>0</verstretch>
3203+ </sizepolicy>
3204+ </property>
3205+ <property name="minimumSize">
3206+ <size>
3207+ <width>220</width>
3208+ <height>0</height>
3209+ </size>
3210+ </property>
3211+ <property name="maximumSize">
3212+ <size>
3213+ <width>220</width>
3214+ <height>16777215</height>
3215+ </size>
3216+ </property>
3217+ <property name="text">
3218+ <string notr="true">email_assistance</string>
3219+ </property>
3220+ <property name="alignment">
3221+ <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
3222+ </property>
3223+ <property name="wordWrap">
3224+ <bool>true</bool>
3225+ </property>
3226+ </widget>
3227+ </item>
3228+ </layout>
3229+ </item>
3230+ <item row="3" column="0">
3231+ <layout class="QVBoxLayout" name="verticalLayout_10">
3232+ <property name="spacing">
3233+ <number>3</number>
3234+ </property>
3235+ <item>
3236+ <widget class="QLabel" name="confirm_email_label">
3237+ <property name="font">
3238+ <font>
3239+ <weight>75</weight>
3240+ <bold>true</bold>
3241+ </font>
3242+ </property>
3243+ <property name="text">
3244+ <string notr="true">confirm_email_label</string>
3245+ </property>
3246+ </widget>
3247+ </item>
3248+ <item>
3249+ <widget class="QLineEdit" name="confirm_email_edit">
3250+ <property name="sizePolicy">
3251+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
3252+ <horstretch>0</horstretch>
3253+ <verstretch>0</verstretch>
3254+ </sizepolicy>
3255+ </property>
3256+ <property name="minimumSize">
3257+ <size>
3258+ <width>300</width>
3259+ <height>0</height>
3260+ </size>
3261+ </property>
3262+ <property name="maximumSize">
3263+ <size>
3264+ <width>300</width>
3265+ <height>16777215</height>
3266+ </size>
3267+ </property>
3268+ <property name="font">
3269+ <font>
3270+ <pointsize>11</pointsize>
3271+ </font>
3272+ </property>
3273+ <property name="placeholderText">
3274+ <string/>
3275+ </property>
3276+ <property name="formError" stdset="0">
3277+ <bool>false</bool>
3278+ </property>
3279+ </widget>
3280+ </item>
3281+ </layout>
3282+ </item>
3283+ <item row="3" column="1">
3284+ <layout class="QVBoxLayout" name="verticalLayout_9">
3285+ <property name="spacing">
3286+ <number>0</number>
3287+ </property>
3288+ <property name="leftMargin">
3289+ <number>0</number>
3290+ </property>
3291+ <item>
3292+ <widget class="QLabel" name="confirm_email_assistance">
3293+ <property name="sizePolicy">
3294+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
3295+ <horstretch>0</horstretch>
3296+ <verstretch>0</verstretch>
3297+ </sizepolicy>
3298+ </property>
3299+ <property name="minimumSize">
3300+ <size>
3301+ <width>220</width>
3302+ <height>0</height>
3303+ </size>
3304+ </property>
3305+ <property name="maximumSize">
3306+ <size>
3307+ <width>220</width>
3308+ <height>16777215</height>
3309+ </size>
3310+ </property>
3311+ <property name="text">
3312+ <string notr="true">confirm_email_assistance</string>
3313+ </property>
3314+ <property name="alignment">
3315+ <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
3316+ </property>
3317+ <property name="wordWrap">
3318+ <bool>true</bool>
3319+ </property>
3320+ <property name="indent">
3321+ <number>0</number>
3322+ </property>
3323+ </widget>
3324+ </item>
3325+ </layout>
3326+ </item>
3327+ <item row="11" column="0" colspan="2">
3328+ <layout class="QHBoxLayout" name="hlayout_check">
3329+ <property name="spacing">
3330+ <number>6</number>
3331+ </property>
3332+ <property name="topMargin">
3333+ <number>0</number>
3334+ </property>
3335+ </layout>
3336+ </item>
3337+ <item row="0" column="1">
3338+ <layout class="QVBoxLayout" name="verticalLayout_7">
3339+ <property name="spacing">
3340+ <number>0</number>
3341+ </property>
3342+ <property name="leftMargin">
3343+ <number>0</number>
3344+ </property>
3345+ <item>
3346+ <widget class="QLabel" name="name_assistance">
3347+ <property name="sizePolicy">
3348+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
3349+ <horstretch>0</horstretch>
3350+ <verstretch>0</verstretch>
3351+ </sizepolicy>
3352+ </property>
3353+ <property name="minimumSize">
3354+ <size>
3355+ <width>220</width>
3356+ <height>0</height>
3357+ </size>
3358+ </property>
3359+ <property name="maximumSize">
3360+ <size>
3361+ <width>220</width>
3362+ <height>16777215</height>
3363+ </size>
3364+ </property>
3365+ <property name="text">
3366+ <string notr="true">name_assistance</string>
3367+ </property>
3368+ <property name="alignment">
3369+ <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
3370+ </property>
3371+ <property name="wordWrap">
3372+ <bool>true</bool>
3373+ </property>
3374+ </widget>
3375+ </item>
3376+ </layout>
3377+ </item>
3378+ <item row="5" column="0">
3379+ <layout class="QVBoxLayout" name="verticalLayout_3">
3380+ <property name="spacing">
3381+ <number>3</number>
3382+ </property>
3383+ <item>
3384+ <widget class="QLabel" name="password_label">
3385+ <property name="font">
3386+ <font>
3387+ <weight>75</weight>
3388+ <bold>true</bold>
3389+ </font>
3390+ </property>
3391+ <property name="text">
3392+ <string notr="true">password_label</string>
3393+ </property>
3394+ </widget>
3395+ </item>
3396+ <item>
3397+ <widget class="QLineEdit" name="password_edit">
3398+ <property name="sizePolicy">
3399+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
3400+ <horstretch>0</horstretch>
3401+ <verstretch>0</verstretch>
3402+ </sizepolicy>
3403+ </property>
3404+ <property name="minimumSize">
3405+ <size>
3406+ <width>300</width>
3407+ <height>0</height>
3408+ </size>
3409+ </property>
3410+ <property name="maximumSize">
3411+ <size>
3412+ <width>300</width>
3413+ <height>16777215</height>
3414+ </size>
3415+ </property>
3416+ <property name="font">
3417+ <font>
3418+ <pointsize>11</pointsize>
3419+ </font>
3420+ </property>
3421+ <property name="toolTip">
3422+ <string notr="true">Your password must be at least 8 characters long and at least contain one number and one upper later.</string>
3423+ </property>
3424+ <property name="statusTip">
3425+ <string/>
3426+ </property>
3427+ <property name="echoMode">
3428+ <enum>QLineEdit::Password</enum>
3429+ </property>
3430+ <property name="placeholderText">
3431+ <string/>
3432+ </property>
3433+ <property name="formError" stdset="0">
3434+ <bool>false</bool>
3435+ </property>
3436+ </widget>
3437+ </item>
3438+ </layout>
3439+ </item>
3440+ <item row="5" column="1" rowspan="2">
3441+ <layout class="QHBoxLayout" name="horizontalLayout_3">
3442+ <property name="spacing">
3443+ <number>0</number>
3444+ </property>
3445+ <item>
3446+ <widget class="QLabel" name="password_assistance">
3447+ <property name="sizePolicy">
3448+ <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
3449+ <horstretch>0</horstretch>
3450+ <verstretch>0</verstretch>
3451+ </sizepolicy>
3452+ </property>
3453+ <property name="minimumSize">
3454+ <size>
3455+ <width>220</width>
3456+ <height>80</height>
3457+ </size>
3458+ </property>
3459+ <property name="maximumSize">
3460+ <size>
3461+ <width>220</width>
3462+ <height>16777215</height>
3463+ </size>
3464+ </property>
3465+ <property name="text">
3466+ <string notr="true">password_assistance</string>
3467+ </property>
3468+ <property name="wordWrap">
3469+ <bool>true</bool>
3470+ </property>
3471+ <property name="indent">
3472+ <number>17</number>
3473+ </property>
3474+ </widget>
3475+ </item>
3476+ </layout>
3477+ </item>
3478+ <item row="6" column="0">
3479+ <layout class="QVBoxLayout" name="verticalLayout_2">
3480+ <property name="spacing">
3481+ <number>3</number>
3482+ </property>
3483+ <item>
3484+ <widget class="QLabel" name="confirm_password_label">
3485+ <property name="font">
3486+ <font>
3487+ <weight>75</weight>
3488+ <bold>true</bold>
3489+ </font>
3490+ </property>
3491+ <property name="text">
3492+ <string notr="true">confirm_password_label</string>
3493+ </property>
3494+ </widget>
3495+ </item>
3496+ <item>
3497+ <widget class="QLineEdit" name="confirm_password_edit">
3498+ <property name="sizePolicy">
3499+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
3500+ <horstretch>0</horstretch>
3501+ <verstretch>0</verstretch>
3502+ </sizepolicy>
3503+ </property>
3504+ <property name="minimumSize">
3505+ <size>
3506+ <width>300</width>
3507+ <height>0</height>
3508+ </size>
3509+ </property>
3510+ <property name="maximumSize">
3511+ <size>
3512+ <width>300</width>
3513+ <height>16777215</height>
3514+ </size>
3515+ </property>
3516+ <property name="font">
3517+ <font>
3518+ <pointsize>11</pointsize>
3519+ </font>
3520+ </property>
3521+ <property name="echoMode">
3522+ <enum>QLineEdit::Password</enum>
3523+ </property>
3524+ <property name="placeholderText">
3525+ <string/>
3526+ </property>
3527+ <property name="formError" stdset="0">
3528+ <bool>false</bool>
3529+ </property>
3530+ </widget>
3531+ </item>
3532+ </layout>
3533+ </item>
3534+ <item row="8" column="0">
3535+ <layout class="QVBoxLayout" name="verticalLayout_4">
3536+ <property name="spacing">
3537+ <number>3</number>
3538+ </property>
3539+ <item>
3540+ <widget class="QLabel" name="captcha_view">
3541+ <property name="sizePolicy">
3542+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3543+ <horstretch>0</horstretch>
3544+ <verstretch>0</verstretch>
3545+ </sizepolicy>
3546+ </property>
3547+ <property name="minimumSize">
3548+ <size>
3549+ <width>300</width>
3550+ <height>57</height>
3551+ </size>
3552+ </property>
3553+ <property name="maximumSize">
3554+ <size>
3555+ <width>300</width>
3556+ <height>57</height>
3557+ </size>
3558+ </property>
3559+ <property name="styleSheet">
3560+ <string notr="true">background-color: white</string>
3561+ </property>
3562+ <property name="frameShape">
3563+ <enum>QFrame::Box</enum>
3564+ </property>
3565+ <property name="text">
3566+ <string notr="true"/>
3567+ </property>
3568+ </widget>
3569+ </item>
3570+ <item>
3571+ <widget class="QLineEdit" name="captcha_solution_edit">
3572+ <property name="sizePolicy">
3573+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
3574+ <horstretch>0</horstretch>
3575+ <verstretch>0</verstretch>
3576+ </sizepolicy>
3577+ </property>
3578+ <property name="minimumSize">
3579+ <size>
3580+ <width>300</width>
3581+ <height>0</height>
3582+ </size>
3583+ </property>
3584+ <property name="maximumSize">
3585+ <size>
3586+ <width>300</width>
3587+ <height>16777215</height>
3588+ </size>
3589+ </property>
3590+ <property name="font">
3591+ <font>
3592+ <pointsize>11</pointsize>
3593+ </font>
3594+ </property>
3595+ <property name="locale">
3596+ <locale language="English" country="UnitedStates"/>
3597+ </property>
3598+ <property name="inputMask">
3599+ <string/>
3600+ </property>
3601+ <property name="text">
3602+ <string/>
3603+ </property>
3604+ <property name="placeholderText">
3605+ <string/>
3606+ </property>
3607+ <property name="formError" stdset="0">
3608+ <bool>false</bool>
3609+ </property>
3610+ </widget>
3611+ </item>
3612+ </layout>
3613+ </item>
3614+ <item row="1" column="0" colspan="2">
3615+ <spacer name="verticalSpacer">
3616+ <property name="orientation">
3617+ <enum>Qt::Vertical</enum>
3618+ </property>
3619+ <property name="sizeHint" stdset="0">
3620+ <size>
3621+ <width>20</width>
3622+ <height>10</height>
3623+ </size>
3624+ </property>
3625+ </spacer>
3626+ </item>
3627+ <item row="8" column="1">
3628+ <layout class="QVBoxLayout" name="verticalLayout_13">
3629+ <property name="rightMargin">
3630+ <number>0</number>
3631+ </property>
3632+ <item>
3633+ <widget class="QLabel" name="refresh_label">
3634+ <property name="minimumSize">
3635+ <size>
3636+ <width>220</width>
3637+ <height>0</height>
3638+ </size>
3639+ </property>
3640+ <property name="maximumSize">
3641+ <size>
3642+ <width>220</width>
3643+ <height>16777215</height>
3644+ </size>
3645+ </property>
3646+ <property name="locale">
3647+ <locale language="English" country="UnitedStates"/>
3648+ </property>
3649+ <property name="text">
3650+ <string notr="true">If you can't read this then refresh this page</string>
3651+ </property>
3652+ <property name="wordWrap">
3653+ <bool>true</bool>
3654+ </property>
3655+ <property name="indent">
3656+ <number>0</number>
3657+ </property>
3658+ </widget>
3659+ </item>
3660+ </layout>
3661+ </item>
3662+ </layout>
3663+ </item>
3664+ </layout>
3665+ </widget>
3666+ <resources/>
3667+ <connections/>
3668+</ui>
3669
3670=== added file 'data/qt/ssl_dialog.ui'
3671--- data/qt/ssl_dialog.ui 1970-01-01 00:00:00 +0000
3672+++ data/qt/ssl_dialog.ui 2012-03-06 15:41:36 +0000
3673@@ -0,0 +1,205 @@
3674+<?xml version="1.0" encoding="UTF-8"?>
3675+<ui version="4.0">
3676+ <class>SSLDialog</class>
3677+ <widget class="QDialog" name="SSLDialog">
3678+ <property name="geometry">
3679+ <rect>
3680+ <x>0</x>
3681+ <y>0</y>
3682+ <width>550</width>
3683+ <height>402</height>
3684+ </rect>
3685+ </property>
3686+ <property name="sizePolicy">
3687+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3688+ <horstretch>0</horstretch>
3689+ <verstretch>0</verstretch>
3690+ </sizepolicy>
3691+ </property>
3692+ <property name="minimumSize">
3693+ <size>
3694+ <width>550</width>
3695+ <height>0</height>
3696+ </size>
3697+ </property>
3698+ <property name="windowTitle">
3699+ <string notr="true">Dialog</string>
3700+ </property>
3701+ <layout class="QVBoxLayout" name="verticalLayout_2">
3702+ <property name="spacing">
3703+ <number>24</number>
3704+ </property>
3705+ <property name="sizeConstraint">
3706+ <enum>QLayout::SetFixedSize</enum>
3707+ </property>
3708+ <item>
3709+ <layout class="QHBoxLayout" name="horizontalLayout_3">
3710+ <property name="spacing">
3711+ <number>12</number>
3712+ </property>
3713+ <item>
3714+ <layout class="QVBoxLayout" name="verticalLayout_7">
3715+ <property name="spacing">
3716+ <number>0</number>
3717+ </property>
3718+ <property name="sizeConstraint">
3719+ <enum>QLayout::SetDefaultConstraint</enum>
3720+ </property>
3721+ <item>
3722+ <widget class="QLabel" name="logo_label">
3723+ <property name="sizePolicy">
3724+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
3725+ <horstretch>0</horstretch>
3726+ <verstretch>0</verstretch>
3727+ </sizepolicy>
3728+ </property>
3729+ <property name="minimumSize">
3730+ <size>
3731+ <width>48</width>
3732+ <height>48</height>
3733+ </size>
3734+ </property>
3735+ <property name="maximumSize">
3736+ <size>
3737+ <width>48</width>
3738+ <height>48</height>
3739+ </size>
3740+ </property>
3741+ <property name="text">
3742+ <string notr="true">TextLabel</string>
3743+ </property>
3744+ </widget>
3745+ </item>
3746+ <item>
3747+ <spacer name="verticalSpacer_4">
3748+ <property name="orientation">
3749+ <enum>Qt::Vertical</enum>
3750+ </property>
3751+ <property name="sizeType">
3752+ <enum>QSizePolicy::Expanding</enum>
3753+ </property>
3754+ <property name="sizeHint" stdset="0">
3755+ <size>
3756+ <width>0</width>
3757+ <height>20</height>
3758+ </size>
3759+ </property>
3760+ </spacer>
3761+ </item>
3762+ </layout>
3763+ </item>
3764+ <item>
3765+ <layout class="QVBoxLayout" name="expander_layout">
3766+ <property name="spacing">
3767+ <number>24</number>
3768+ </property>
3769+ <item>
3770+ <widget class="QLabel" name="title_label">
3771+ <property name="font">
3772+ <font>
3773+ <pointsize>14</pointsize>
3774+ </font>
3775+ </property>
3776+ <property name="text">
3777+ <string notr="true">Do you want to connect to this server</string>
3778+ </property>
3779+ </widget>
3780+ </item>
3781+ <item>
3782+ <widget class="QLabel" name="intro_label">
3783+ <property name="text">
3784+ <string notr="true">&lt;style type=&quot;text/css&quot; media=&quot;all&quot;&gt;
3785+ul {margin-left: -10px;}
3786+li {padding-top: 2px;}
3787+&lt;/style&gt;
3788+&lt;p&gt;You are trying to connect to a proxy server on 192.168.1.111. This server uses a secure connection, but the SSL certificate is not valid because:&lt;/p&gt;
3789+&lt;ul&gt;
3790+&lt;li&gt;The certificate has not been verified.&lt;/li&gt;
3791+&lt;li&gt;The name on the certificate isn't valid or doesn't match the name of the site.&lt;/li&gt;
3792+&lt;li&gt;The certificate has expired.&lt;/li&gt;
3793+&lt;/ul&gt;</string>
3794+ </property>
3795+ <property name="wordWrap">
3796+ <bool>true</bool>
3797+ </property>
3798+ <property name="indent">
3799+ <number>-1</number>
3800+ </property>
3801+ </widget>
3802+ </item>
3803+ <item>
3804+ <widget class="QLabel" name="not_sure_label">
3805+ <property name="text">
3806+ <string notr="true">&lt;p&gt;If you are not sure about this server, do not use it to connect to Ubuntu One. &lt;a href='#'&gt;Review your proxy settings.&lt;/a&gt;</string>
3807+ </property>
3808+ <property name="wordWrap">
3809+ <bool>true</bool>
3810+ </property>
3811+ </widget>
3812+ </item>
3813+ <item>
3814+ <widget class="QCheckBox" name="remember_checkbox">
3815+ <property name="text">
3816+ <string notr="true">Remember my settings for this certificate.</string>
3817+ </property>
3818+ <property name="checked">
3819+ <bool>false</bool>
3820+ </property>
3821+ </widget>
3822+ </item>
3823+ </layout>
3824+ </item>
3825+ </layout>
3826+ </item>
3827+ <item>
3828+ <layout class="QHBoxLayout" name="horizontalLayout_2">
3829+ <item>
3830+ <widget class="QPushButton" name="help_button">
3831+ <property name="text">
3832+ <string notr="true">Get Help With SSL</string>
3833+ </property>
3834+ </widget>
3835+ </item>
3836+ <item>
3837+ <spacer name="horizontalSpacer">
3838+ <property name="orientation">
3839+ <enum>Qt::Horizontal</enum>
3840+ </property>
3841+ <property name="sizeHint" stdset="0">
3842+ <size>
3843+ <width>40</width>
3844+ <height>20</height>
3845+ </size>
3846+ </property>
3847+ </spacer>
3848+ </item>
3849+ <item>
3850+ <widget class="QPushButton" name="cancel_button">
3851+ <property name="text">
3852+ <string notr="true">Cancel and Close</string>
3853+ </property>
3854+ </widget>
3855+ </item>
3856+ <item>
3857+ <widget class="QPushButton" name="connect_button">
3858+ <property name="text">
3859+ <string notr="true">Connect</string>
3860+ </property>
3861+ <property name="default">
3862+ <bool>true</bool>
3863+ </property>
3864+ </widget>
3865+ </item>
3866+ </layout>
3867+ </item>
3868+ </layout>
3869+ </widget>
3870+ <tabstops>
3871+ <tabstop>connect_button</tabstop>
3872+ <tabstop>cancel_button</tabstop>
3873+ <tabstop>help_button</tabstop>
3874+ <tabstop>remember_checkbox</tabstop>
3875+ </tabstops>
3876+ <resources/>
3877+ <connections/>
3878+</ui>
3879
3880=== modified file 'data/qt/stylesheet.qss'
3881--- data/qt/stylesheet.qss 2012-02-17 21:16:38 +0000
3882+++ data/qt/stylesheet.qss 2012-03-06 15:41:36 +0000
3883@@ -3,6 +3,12 @@
3884 color: #333333;
3885 }
3886
3887+QFrame#ubuntussoframe {
3888+ background-color: white;
3889+ padding-left: 30px;
3890+ padding-right: 30px;
3891+}
3892+
3893 QWizard,
3894 QDialog {
3895 background-color: white;
3896@@ -10,6 +16,7 @@
3897
3898 QLabel#password_assistance {
3899 border-image: url(":/balloon_shape.png");
3900+ font-size: 12px;
3901 }
3902
3903 QLineEdit {
3904@@ -23,79 +30,57 @@
3905 padding-left: 20px;
3906 padding-right: 20px;
3907 border-width: 1px;
3908- height: 14px;
3909 }
3910
3911-QPushButton[default="true"] {
3912+QPushButton:default:enabled {
3913 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3914 stop: 0 #fe9e84,stop: 1.0 #dd4814);
3915 color: white;
3916 border-color: #999999;
3917 }
3918
3919-QPushButton:hover[default="true"] {
3920+QPushButton:hover:default:enabled {
3921 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3922 stop: 0 #ffb19c,stop: 1.0 #dd4814);
3923 color: white;
3924 border-color: #999999;
3925 }
3926
3927-QPushButton:pressed[default="true"] {
3928+QPushButton:pressed:default:enabled {
3929 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3930 stop: 0 #b93f14,stop: 1.0 #dd4814);
3931 color: white;
3932 border-color: #999999;
3933 }
3934
3935-QPushButton[default="false"] {
3936+QPushButton:enabled {
3937 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3938 stop: 0 #ffffff,stop: 1.0 #e6e6e6);
3939 color: #333333;
3940 border-color: #999999;
3941 }
3942
3943-QPushButton:hover[default="false"] {
3944+QPushButton:hover:enabled {
3945 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3946 stop: 0 #ffffff,stop: 1.0 #ededed);
3947 color: #333333;
3948 border-color: #999999;
3949 }
3950
3951-QPushButton:pressed[default="false"] {
3952+QPushButton:pressed:enabled {
3953 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3954 stop: 0 #d9d9d9,stop: 1.0 #fefefe);
3955 color: #333333;
3956 border-color: #999999;
3957 }
3958
3959-QPushButton[DisabledState="true"] {
3960+QPushButton:disabled {
3961 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3962 stop: 0 #eaeaea, stop: 1.0 #cacaca);
3963 color: #595959;
3964 border-color: #939389;
3965 }
3966
3967-QPushButton[DisabledState="false"] {
3968- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3969- stop: 0 #fe9e84,stop: 1.0 #dd4814);
3970- color: white;
3971- border-color: #999999;
3972-}
3973-
3974-QPushButton:hover[DisabledState="false"] {
3975- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3976- stop: 0 #ffb19c,stop: 1.0 #dd4814);
3977- color: white;
3978- border-color: #999999;
3979-}
3980-
3981-QPushButton:pressed[DisabledState="false"] {
3982- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
3983- stop: 0 #b93f14,stop: 1.0 #dd4814);
3984- color: white;
3985- border-color: #999999;
3986-}
3987-
3988 QFrame#frm_box {
3989 background: #ffffff;
3990 border-radius: 5px;
3991@@ -115,5 +100,12 @@
3992 }
3993
3994 QFrame#header {
3995- padding: 10px;
3996+ padding-top: 1px;
3997+ padding-bottom: 1px;
3998+}
3999+
4000+QLabel#form_errors {
4001+ font: bold 14px;
4002+ color: #df2d1f;
4003+ padding-bottom: 1px;
4004 }
4005
4006=== modified file 'data/qt/success_message.ui'
4007--- data/qt/success_message.ui 2011-11-14 12:16:13 +0000
4008+++ data/qt/success_message.ui 2012-03-06 15:41:36 +0000
4009@@ -1,35 +1,32 @@
4010-<?xml version="1.0" encoding="UTF-8"?>
4011-<ui version="4.0">
4012- <class>SuccessPage</class>
4013- <widget class="QWizardPage" name="SuccessPage">
4014- <property name="geometry">
4015- <rect>
4016- <x>0</x>
4017- <y>0</y>
4018- <width>400</width>
4019- <height>300</height>
4020- </rect>
4021- </property>
4022- <property name="windowTitle">
4023- <string>WizardPage</string>
4024- </property>
4025- <layout class="QVBoxLayout" name="verticalLayout">
4026- <item>
4027- <widget class="QLabel" name="image_label">
4028- <property name="text">
4029- <string>TextLabel</string>
4030- </property>
4031- </widget>
4032- </item>
4033- <item>
4034- <widget class="QLabel" name="success_message_body">
4035- <property name="text">
4036- <string>TextLabel</string>
4037- </property>
4038- </widget>
4039- </item>
4040- </layout>
4041- </widget>
4042- <resources/>
4043- <connections/>
4044-</ui>
4045+<?xml version="1.0" encoding="UTF-8"?>
4046+<ui version="4.0">
4047+ <class>SuccessPage</class>
4048+ <widget class="QWizardPage" name="SuccessPage">
4049+ <property name="geometry">
4050+ <rect>
4051+ <x>0</x>
4052+ <y>0</y>
4053+ <width>94</width>
4054+ <height>58</height>
4055+ </rect>
4056+ </property>
4057+ <layout class="QVBoxLayout" name="verticalLayout">
4058+ <item>
4059+ <widget class="QLabel" name="image_label">
4060+ <property name="text">
4061+ <string notr="true">TextLabel</string>
4062+ </property>
4063+ </widget>
4064+ </item>
4065+ <item>
4066+ <widget class="QLabel" name="success_message_body">
4067+ <property name="text">
4068+ <string notr="true">TextLabel</string>
4069+ </property>
4070+ </widget>
4071+ </item>
4072+ </layout>
4073+ </widget>
4074+ <resources/>
4075+ <connections/>
4076+</ui>
4077
4078=== modified file 'run-tests.bat'
4079--- run-tests.bat 2012-01-31 19:02:36 +0000
4080+++ run-tests.bat 2012-03-06 15:41:36 +0000
4081@@ -99,7 +99,7 @@
4082 "%PYTHONEXEPATH%\python.exe" setup.py build
4083 ECHO Running tests
4084 :: execute the tests with a number of ignored linux only modules
4085-"%PYTHONEXEPATH%\python.exe" "%PYTHONEXEPATH%\Scripts\u1trial" -i "test_linux.py, test_txsecrets.py" -p "ubuntu_sso\gtk" --reactor=qt4 --gui %PARAMS% ubuntu_sso
4086+"%PYTHONEXEPATH%\python.exe" "%PYTHONEXEPATH%\Scripts\u1trial" -i "test_linux.py, test_txsecrets.py, test_qt.py, test_glib.py" -p "ubuntu_sso\gtk" --reactor=qt4 --gui %PARAMS% ubuntu_sso
4087 :: Clean the build from the setupt.py
4088 ECHO Cleaning the generated code
4089 "%PYTHONEXEPATH%\python.exe" setup.py clean
4090
4091=== modified file 'setup.py'
4092--- setup.py 2012-02-22 12:24:22 +0000
4093+++ setup.py 2012-03-06 15:41:36 +0000
4094@@ -277,6 +277,7 @@
4095 'bin/ubuntu-sso-login-gtk',
4096 'bin/ubuntu-sso-login-qt',
4097 'bin/ubuntu-sso-proxy-creds-qt',
4098+ 'bin/ubuntu-sso-ssl-certificate-qt',
4099 ]
4100
4101
4102
4103=== modified file 'ubuntu_sso/credentials.py'
4104--- ubuntu_sso/credentials.py 2012-02-17 18:43:17 +0000
4105+++ ubuntu_sso/credentials.py 2012-03-06 15:41:36 +0000
4106@@ -142,6 +142,13 @@
4107 def _show_ui(self, login_only):
4108 """Shows the UI, connect outcome signals."""
4109 ui_exe_path = os.path.join(get_bin_dir(), self.ui_executable)
4110+ if not os.path.exists(ui_exe_path):
4111+ logger.debug('Falling back to the GTK+ UI since the given %r '
4112+ 'does not exist', ui_exe_path)
4113+ ui_exe_path = os.path.join(get_bin_dir(), UI_EXECUTABLE_GTK)
4114+
4115+ assert os.path.exists(ui_exe_path)
4116+
4117 args = [ui_exe_path]
4118 for arg in ('app_name', 'help_text', 'ping_url', 'policy_url',
4119 'tc_url', 'window_id'):
4120
4121=== modified file 'ubuntu_sso/main/glib.py'
4122--- ubuntu_sso/main/glib.py 2012-01-26 14:54:13 +0000
4123+++ ubuntu_sso/main/glib.py 2012-03-06 15:41:36 +0000
4124@@ -18,6 +18,10 @@
4125
4126 # pylint: disable=E0611,F0401
4127
4128+# pylint: disable=W0621
4129+import dbus.mainloop.glib
4130+# pylint: enable=W0621
4131+
4132 from gi.repository import GLib, Gdk, Gtk
4133
4134
4135@@ -38,8 +42,6 @@
4136
4137 def start_setup():
4138 """Setup the env to run the service."""
4139- import dbus.mainloop.glib # pylint: disable=W0621
4140-
4141 dbus.mainloop.glib.threads_init()
4142 Gdk.threads_init()
4143 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
4144
4145=== modified file 'ubuntu_sso/main/qt.py'
4146--- ubuntu_sso/main/qt.py 2012-02-17 19:43:31 +0000
4147+++ ubuntu_sso/main/qt.py 2012-03-06 15:41:36 +0000
4148@@ -20,8 +20,13 @@
4149
4150 import sys
4151
4152+# pylint: disable=W0621
4153+import dbus.mainloop.qt
4154+# pylint: enable=W0621
4155+
4156 from PyQt4 import QtCore
4157
4158+
4159 TIMERS = set()
4160
4161
4162@@ -55,12 +60,9 @@
4163
4164 def start_setup():
4165 """Setup the env to run the service."""
4166- import dbus.mainloop.qt # pylint: disable=W0621
4167-
4168 # this has to be created before calling dbus.mainloop.qt.DBusQtMainLoop
4169 loop = QtCore.QCoreApplication(sys.argv)
4170 dbus.mainloop.qt.DBusQtMainLoop(set_as_default=True)
4171-
4172 return loop
4173
4174
4175
4176=== modified file 'ubuntu_sso/networkstate/linux.py'
4177--- ubuntu_sso/networkstate/linux.py 2012-01-31 20:12:49 +0000
4178+++ ubuntu_sso/networkstate/linux.py 2012-03-06 15:41:36 +0000
4179@@ -94,7 +94,9 @@
4180 if isinstance(error, self.dbus.exceptions.DBusException) and \
4181 error.get_dbus_name() == DBUS_UNKNOWN_SERVICE:
4182 logger.debug("Network Manager not present")
4183- self.call_result_cb(UNKNOWN)
4184+ # Assuming since Network Manager is not installed,
4185+ # the user has connected in some other way
4186+ self.call_result_cb(ONLINE)
4187 else:
4188 logger.error("Error contacting NetworkManager: %s" % \
4189 str(error))
4190
4191=== modified file 'ubuntu_sso/networkstate/tests/test_linux.py'
4192--- ubuntu_sso/networkstate/tests/test_linux.py 2012-01-31 20:12:49 +0000
4193+++ ubuntu_sso/networkstate/tests/test_linux.py 2012-03-06 15:41:36 +0000
4194@@ -407,10 +407,10 @@
4195 self.mocker.result(exc)
4196 self.mocker.replay()
4197
4198- def test_nm_not_running(self):
4199- """Check the case when NM is not running."""
4200+ def test_nm_not_installed(self):
4201+ """Check the case when NM is not installed."""
4202 self.connect_proxy(TestNmNotAvailableException)
4203- self.check_nm_error(self.assertUnknown, TestNmNotAvailableException())
4204+ self.check_nm_error(self.assertOnline, TestNmNotAvailableException())
4205
4206 def test_dbus_problem(self):
4207 """Check the case when DBus throws some other exception."""
4208
4209=== modified file 'ubuntu_sso/qt/__init__.py'
4210--- ubuntu_sso/qt/__init__.py 2012-02-17 18:43:17 +0000
4211+++ ubuntu_sso/qt/__init__.py 2012-03-06 15:41:36 +0000
4212@@ -19,8 +19,13 @@
4213 import collections
4214
4215
4216+LINK_STYLE = ('<a href="{link_url}">'
4217+ '<span style="color:#df2d1f;">{link_text}</span></a>')
4218 ERROR_ALL = '__all__'
4219+ERROR_STYLE = u'<font color="#df2d1f"><b>%s</b></font>'
4220 ERROR_MESSAGE = 'message'
4221+PREFERED_UI_SIZE = {'width': 550, 'height': 525}
4222+TITLE_STYLE = u'<span style="font-size:24px">%s</span>'
4223
4224
4225 # Based on the gtk implementation
4226
4227=== added file 'ubuntu_sso/qt/arrow.py'
4228--- ubuntu_sso/qt/arrow.py 1970-01-01 00:00:00 +0000
4229+++ ubuntu_sso/qt/arrow.py 2012-03-06 15:41:36 +0000
4230@@ -0,0 +1,68 @@
4231+# -*- coding: utf-8 -*-
4232+#
4233+# Copyright 2012 Canonical Ltd.
4234+#
4235+# This program is free software: you can redistribute it and/or modify it
4236+# under the terms of the GNU General Public License version 3, as published
4237+# by the Free Software Foundation.
4238+#
4239+# This program is distributed in the hope that it will be useful, but
4240+# WITHOUT ANY WARRANTY; without even the implied warranties of
4241+# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
4242+# PURPOSE. See the GNU General Public License for more details.
4243+#
4244+# You should have received a copy of the GNU General Public License along
4245+# with this program. If not, see <http://www.gnu.org/licenses/>.
4246+"""Widget written in Qt that works as a GtkArrow."""
4247+
4248+from PyQt4.QtGui import QPainter, QStyle, QStyleOption, QWidget
4249+
4250+
4251+class QArrow(QWidget):
4252+ """Custom widget."""
4253+
4254+ UP = 0
4255+ DOWN = 1
4256+ LEFT = 2
4257+ RIGHT = 3
4258+
4259+ def __init__(self, direction, parent=None):
4260+ """Create a new instance."""
4261+ super(QArrow, self).__init__(parent)
4262+ self._set_direction(direction)
4263+ self.setFixedWidth(16)
4264+
4265+ # pylint: disable=C0103
4266+ def paintEvent(self, event):
4267+ """Paint the widget."""
4268+ opt = QStyleOption()
4269+ opt.initFrom(self)
4270+ painter = QPainter(self)
4271+ if self._direction == QArrow.UP:
4272+ primitive = QStyle.PE_IndicatorArrowUp
4273+ elif self._direction == QArrow.DOWN:
4274+ primitive = QStyle.PE_IndicatorArrowDown
4275+ elif self._direction == QArrow.LEFT:
4276+ primitive = QStyle.PE_IndicatorArrowLeft
4277+ else:
4278+ primitive = QStyle.PE_IndicatorArrowRight
4279+ painter.translate(-5, 0)
4280+ painter.setViewTransformEnabled(True)
4281+ self.style().drawPrimitive(primitive, opt, painter, self)
4282+ # pylint: enable=C0103
4283+
4284+ def _get_direction(self):
4285+ """Return the direction used."""
4286+ return self._direction
4287+
4288+ # pylint: disable=W0201
4289+ def _set_direction(self, direction):
4290+ """Set the direction."""
4291+ if direction not in (QArrow.UP, QArrow.DOWN,
4292+ QArrow.LEFT, QArrow.RIGHT):
4293+ raise ValueError('Wrong arrow direction.')
4294+ self._direction = direction
4295+ self.repaint()
4296+ # pylint: enable=W0201
4297+
4298+ direction = property(_get_direction, _set_direction)
4299
4300=== modified file 'ubuntu_sso/qt/current_user_sign_in_page.py'
4301--- ubuntu_sso/qt/current_user_sign_in_page.py 2012-02-18 15:02:49 +0000
4302+++ ubuntu_sso/qt/current_user_sign_in_page.py 2012-03-06 15:41:36 +0000
4303@@ -19,41 +19,39 @@
4304 from functools import partial
4305
4306 from PyQt4 import QtGui, QtCore
4307-from twisted.internet import defer
4308
4309 from ubuntu_sso import NO_OP
4310-from ubuntu_sso.qt import build_general_error_message
4311-from ubuntu_sso.qt.gui import SSOWizardPage
4312-from ubuntu_sso.logger import setup_logging
4313+from ubuntu_sso.logger import setup_gui_logging
4314+from ubuntu_sso.qt import LINK_STYLE, build_general_error_message
4315+from ubuntu_sso.qt.sso_wizard_page import SSOWizardPage
4316+from ubuntu_sso.qt.ui.current_user_sign_in_ui import Ui_CurrentUserSignInPage
4317 from ubuntu_sso.utils.ui import (
4318 CANCEL_BUTTON,
4319 EMAIL_LABEL,
4320 FORGOTTEN_PASSWORD_BUTTON,
4321 is_correct_email,
4322 LOGIN_PASSWORD_LABEL,
4323+ LOGIN_TITLE,
4324+ LOGIN_SUBTITLE,
4325 SIGN_IN_BUTTON,
4326 )
4327
4328
4329-FORGOTTEN_PASSWORD_LINK_STYLE = ('<a href="#" style="color:#dd4814;">'
4330- '{forgotten_text}</a>')
4331-
4332-
4333-logger = setup_logging('ubuntu_sso.current_user_sign_in_page')
4334+logger = setup_gui_logging('ubuntu_sso.current_user_sign_in_page')
4335
4336
4337 class CurrentUserSignInPage(SSOWizardPage):
4338 """Wizard Page that lets a current user Sign into Ubuntu Single Sign On."""
4339
4340- userLoggedIn = QtCore.pyqtSignal('QString', 'QString')
4341+ ui_class = Ui_CurrentUserSignInPage
4342+ userLoggedIn = QtCore.pyqtSignal(unicode)
4343 passwordForgotten = QtCore.pyqtSignal()
4344- userNotValidated = QtCore.pyqtSignal('QString', 'QString')
4345-
4346- def __init__(self, ui, ping_url, *args, **kwargs):
4347- super(CurrentUserSignInPage, self).__init__(ui, *args, **kwargs)
4348- self.ping_url = ping_url
4349-
4350- self._signals = {
4351+ userNotValidated = QtCore.pyqtSignal(unicode)
4352+
4353+ @property
4354+ def _signals(self):
4355+ """The signals to connect to the backend."""
4356+ result = {
4357 'LoggedIn':
4358 self._filter_by_app_name(self.on_logged_in),
4359 'LoginError':
4360@@ -61,22 +59,13 @@
4361 'UserNotValidated':
4362 self._filter_by_app_name(self.on_user_not_validated),
4363 }
4364- self.setup_page()
4365+ return result
4366
4367- def on_user_not_validated(self, *args):
4368+ def on_user_not_validated(self, app_name, email):
4369 """Show the validate email page."""
4370+ self.hide_overlay()
4371 email = unicode(self.ui.email_edit.text())
4372- password = unicode(self.ui.password_edit.text())
4373- self.userNotValidated.emit(email, password)
4374-
4375- @defer.inlineCallbacks
4376- def setup_page(self):
4377- """Setup the widget components."""
4378- self.backend = yield self.get_backend()
4379- self._set_translated_strings()
4380- # lets add call backs to be execute for the calls we are interested
4381- self._setup_signals()
4382- self._connect_ui()
4383+ self.userNotValidated.emit(email)
4384
4385 # Invalid names of Qt-inherited methods
4386 # pylint: disable=C0103
4387@@ -97,24 +86,22 @@
4388 # Set sign_in_button as default when the page is shown.
4389 self.ui.sign_in_button.setDefault(True)
4390 self.ui.sign_in_button.setEnabled(False)
4391- self.ui.sign_in_button.setProperty("DisabledState",
4392- not self.ui.sign_in_button.isEnabled())
4393- self.ui.sign_in_button.style().unpolish(
4394- self.ui.sign_in_button)
4395- self.ui.sign_in_button.style().polish(
4396- self.ui.sign_in_button)
4397
4398 def cleanupPage(self):
4399 """Reset the wizard buttons."""
4400+ super(CurrentUserSignInPage, self).cleanupPage()
4401 self.wizard().setButtonLayout([QtGui.QWizard.Stretch])
4402
4403 def _set_translated_strings(self):
4404 """Set the translated strings."""
4405 logger.debug('CurrentUserSignInPage._set_translated_strings')
4406+ self.setTitle(LOGIN_TITLE.format(app_name=self.app_name))
4407+ self.setSubTitle(LOGIN_SUBTITLE % {'app_name': self.app_name})
4408+
4409 self.ui.email_label.setText(EMAIL_LABEL)
4410 self.ui.password_label.setText(LOGIN_PASSWORD_LABEL)
4411- forgotten_text = FORGOTTEN_PASSWORD_LINK_STYLE.format(
4412- forgotten_text=FORGOTTEN_PASSWORD_BUTTON)
4413+ forgotten_text = LINK_STYLE.format(link_url='#',
4414+ link_text=FORGOTTEN_PASSWORD_BUTTON)
4415 self.ui.forgot_password_label.setText(forgotten_text)
4416 self.ui.sign_in_button.setText(SIGN_IN_BUTTON)
4417
4418@@ -135,10 +122,6 @@
4419 if not correct_mail or not password:
4420 valid = False
4421 self.ui.sign_in_button.setEnabled(valid)
4422- self.ui.sign_in_button.setProperty("DisabledState",
4423- not self.ui.sign_in_button.isEnabled())
4424- self.ui.sign_in_button.style().unpolish(self.ui.sign_in_button)
4425- self.ui.sign_in_button.style().polish(self.ui.sign_in_button)
4426
4427 def login(self):
4428 """Perform the login using the self.backend."""
4429@@ -153,7 +136,8 @@
4430 else:
4431 f = self.backend.login
4432
4433- self.overlay.show()
4434+ self.hide_error()
4435+ self.show_overlay()
4436 error_handler = partial(self._handle_error, f, self.on_login_error)
4437 f(*args, reply_handler=NO_OP, error_handler=error_handler)
4438
4439@@ -162,19 +146,18 @@
4440 # let the user know
4441 logger.error('Got error when login %s, error: %s',
4442 self.app_name, error)
4443- self.overlay.hide()
4444- self.message_box.critical(self, self.app_name,
4445- build_general_error_message(error))
4446+ self.show_error(self.app_name, build_general_error_message(error))
4447
4448 def on_logged_in(self, app_name, result):
4449 """We managed to log in."""
4450 logger.info('Logged in for %s', app_name)
4451- self.overlay.hide()
4452+ self.hide_overlay()
4453 email = unicode(self.ui.email_edit.text())
4454- self.userLoggedIn.emit(app_name, email)
4455+ self.userLoggedIn.emit(email)
4456 logger.debug('Wizard.loginSuccess emitted.')
4457
4458- def on_forgotten_password(self):
4459+ def on_forgotten_password(self, link=None):
4460 """Show the user the forgotten password page."""
4461 logger.info('Forgotten password')
4462+ self.hide_overlay()
4463 self.passwordForgotten.emit()
4464
4465=== modified file 'ubuntu_sso/qt/email_verification_page.py'
4466--- ubuntu_sso/qt/email_verification_page.py 2012-02-14 14:38:23 +0000
4467+++ ubuntu_sso/qt/email_verification_page.py 2012-03-06 15:41:36 +0000
4468@@ -18,47 +18,46 @@
4469
4470 from functools import partial
4471
4472-from PyQt4 import QtCore
4473-from twisted.internet import defer
4474+from PyQt4 import QtGui, QtCore
4475
4476 from ubuntu_sso import NO_OP
4477+from ubuntu_sso.logger import setup_gui_logging
4478 from ubuntu_sso.qt import build_general_error_message
4479-from ubuntu_sso.qt.gui import SSOWizardPage
4480-from ubuntu_sso.logger import setup_logging
4481+from ubuntu_sso.qt.sso_wizard_page import SSOWizardPage
4482+from ubuntu_sso.qt.ui.email_verification_ui import Ui_EmailVerificationPage
4483 from ubuntu_sso.utils.ui import (
4484+ ERROR_EMAIL_TOKEN,
4485+ NEXT,
4486+ VERIFICATION_CODE,
4487 VERIFY_EMAIL_TITLE,
4488 VERIFY_EMAIL_CONTENT,
4489 )
4490-from ubuntu_sso.utils.ui import ERROR_EMAIL_TOKEN
4491-
4492-
4493-logger = setup_logging('ubuntu_sso.email_verification_page')
4494+
4495+
4496+logger = setup_gui_logging('ubuntu_sso.email_verification_page')
4497
4498
4499 class EmailVerificationPage(SSOWizardPage):
4500 """Widget used to input the email verification code."""
4501
4502- registrationSuccess = QtCore.pyqtSignal('QString', 'QString')
4503+ ui_class = Ui_EmailVerificationPage
4504+ registrationSuccess = QtCore.pyqtSignal(unicode)
4505
4506- def __init__(self, ui, ping_url, *args, **kwargs):
4507- super(EmailVerificationPage, self).__init__(ui, *args, **kwargs)
4508- self.ping_url = ping_url
4509+ def __init__(self, *args, **kwargs):
4510 self.email = ''
4511 self.password = ''
4512- self._signals = {
4513+ super(EmailVerificationPage, self).__init__(*args, **kwargs)
4514+
4515+ @property
4516+ def _signals(self):
4517+ """The signals to connect to the backend."""
4518+ result = {
4519 'EmailValidated':
4520 self._filter_by_app_name(self.on_email_validated),
4521 'EmailValidationError':
4522 self._filter_by_app_name(self.on_email_validation_error),
4523 }
4524- self.setup_page()
4525-
4526- @defer.inlineCallbacks
4527- def setup_page(self):
4528- """Setup the ui components."""
4529- self.backend = yield self.get_backend()
4530- self._setup_signals()
4531- self._connect_ui_elements()
4532+ return result
4533
4534 @property
4535 def verification_code(self):
4536@@ -70,9 +69,9 @@
4537 """Return the button that move to the next stage."""
4538 return self.ui.next_button
4539
4540- def _connect_ui_elements(self):
4541+ def _connect_ui(self):
4542 """Set the connection of signals."""
4543- logger.debug('EmailVerificationController._connect_ui_elements')
4544+ logger.debug('EmailVerificationController._connect_ui')
4545 self.ui.verification_code_edit.textChanged.connect(
4546 self.validate_form)
4547 self.next_button.clicked.connect(self.validate_email)
4548@@ -82,12 +81,8 @@
4549 code = self.verification_code.strip()
4550 enabled = len(code) > 0
4551 self.next_button.setEnabled(enabled)
4552- self.next_button.setProperty('DisabledState',
4553- not self.next_button.isEnabled())
4554- self.next_button.style().unpolish(self.next_button)
4555- self.next_button.style().polish(self.next_button)
4556
4557- def _set_titles(self):
4558+ def _set_translated_strings(self):
4559 """Set the different titles."""
4560 logger.debug('EmailVerificationController._set_titles')
4561 self.header.set_title(VERIFY_EMAIL_TITLE)
4562@@ -95,20 +90,24 @@
4563 "app_name": self.app_name,
4564 "email": self.email,
4565 })
4566+ self.ui.label.setText(VERIFICATION_CODE)
4567+ self.ui.next_button.setText(NEXT)
4568
4569 def set_titles(self, email):
4570 """This class needs to have a public set_titles.
4571
4572 Since the subtitle contains data that is only known after SetupAccount
4573- and _set_titles is only called on initialization.
4574+ and _set_translated_strings is only called on initialization.
4575 """
4576- self._set_titles()
4577+ self._set_translated_strings()
4578
4579 def validate_email(self):
4580 """Call the next action."""
4581 logger.debug('EmailVerificationController.validate_email')
4582 code = unicode(self.ui.verification_code_edit.text())
4583 args = (self.app_name, self.email, self.password, code)
4584+ self.hide_error()
4585+ self.show_overlay()
4586 if self.ping_url:
4587 f = self.backend.validate_email_and_ping
4588 args = args + (self.ping_url,)
4589@@ -122,24 +121,25 @@
4590 self.on_email_validation_error)
4591 f(*args, reply_handler=NO_OP, error_handler=error_handler)
4592
4593- def on_email_validated(self, app_name, *args, **kwargs):
4594+ def on_email_validated(self, app_name, email):
4595 """Signal thrown after the email is validated."""
4596 logger.info('EmailVerificationController.on_email_validated')
4597- self.registrationSuccess.emit(app_name, self.email)
4598+ self.hide_overlay()
4599+ self.registrationSuccess.emit(self.email)
4600
4601 def on_email_validation_error(self, app_name, error):
4602 """Signal thrown when there's a problem validating the email."""
4603+ self.hide_overlay()
4604 msg = error.pop(ERROR_EMAIL_TOKEN, '')
4605 msg += build_general_error_message(error)
4606- self.message_box.critical(self, self.app_name, msg)
4607-
4608- #pylint: disable=C0103
4609+ self.show_error(self.app_name, msg)
4610+
4611+ # pylint: disable=C0103
4612+
4613 def initializePage(self):
4614 """Called to prepare the page just before it is shown."""
4615 self.next_button.setDefault(True)
4616 self.next_button.setEnabled(False)
4617- self.next_button.setProperty('DisabledState',
4618- not self.next_button.isEnabled())
4619- self.next_button.style().unpolish(self.next_button)
4620- self.next_button.style().polish(self.next_button)
4621+ self.wizard().setButtonLayout([QtGui.QWizard.Stretch])
4622+
4623 #pylint: enable=C0103
4624
4625=== modified file 'ubuntu_sso/qt/enhanced_check_box.py'
4626--- ubuntu_sso/qt/enhanced_check_box.py 2012-02-16 18:40:41 +0000
4627+++ ubuntu_sso/qt/enhanced_check_box.py 2012-03-06 15:41:36 +0000
4628@@ -32,7 +32,7 @@
4629 self.text_label.setOpenExternalLinks(True)
4630 padding = self.iconSize().width()
4631 self.text_label.setStyleSheet("margin-top: -3px;"
4632- "padding-left: {0}px;".format(padding))
4633+ "padding-left: 2px;")
4634 hbox.setContentsMargins(padding, 0, 0, 0)
4635 hbox.addWidget(self.text_label)
4636 self.setLayout(hbox)
4637
4638=== modified file 'ubuntu_sso/qt/error_page.py'
4639--- ubuntu_sso/qt/error_page.py 2012-02-07 18:59:36 +0000
4640+++ ubuntu_sso/qt/error_page.py 2012-03-06 15:41:36 +0000
4641@@ -16,14 +16,21 @@
4642
4643 """Email Verification page UI."""
4644
4645-from ubuntu_sso.qt.gui import SSOWizardPage
4646+from ubuntu_sso.qt.sso_wizard_page import SSOWizardPage
4647+from ubuntu_sso.qt.ui.error_message_ui import Ui_ErrorPage
4648 from ubuntu_sso.utils.ui import ERROR
4649
4650
4651 class ErrorPage(SSOWizardPage):
4652 """Widget used to show the diff errors."""
4653
4654- def __init__(self, ui, *args, **kwargs):
4655- super(ErrorPage, self).__init__(ui, *args, **kwargs)
4656+ ui_class = Ui_ErrorPage
4657+ next = None
4658+
4659+ def _set_translated_strings(self):
4660+ """Set the translated strings."""
4661+ self.ui.error_message_label.setText(ERROR)
4662+
4663+ def _connect_ui(self):
4664+ """Connect the buttons to perform actions."""
4665 self.next = -1
4666- self.ui.error_message_label.setText(ERROR)
4667
4668=== added file 'ubuntu_sso/qt/expander.py'
4669--- ubuntu_sso/qt/expander.py 1970-01-01 00:00:00 +0000
4670+++ ubuntu_sso/qt/expander.py 2012-03-06 15:41:36 +0000
4671@@ -0,0 +1,115 @@
4672+# -*- coding: utf-8 -*-
4673+#
4674+# Copyright 2012 Canonical Ltd.
4675+#
4676+# This program is free software: you can redistribute it and/or modify it
4677+# under the terms of the GNU General Public License version 3, as published
4678+# by the Free Software Foundation.
4679+#
4680+# This program is distributed in the hope that it will be useful, but
4681+# WITHOUT ANY WARRANTY; without even the implied warranties of
4682+# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
4683+# PURPOSE. See the GNU General Public License for more details.
4684+#
4685+# You should have received a copy of the GNU General Public License along
4686+# with this program. If not, see <http://www.gnu.org/licenses/>.
4687+"""A Expander widget similar to the GtkExpander."""
4688+
4689+from PyQt4.QtCore import pyqtSignal
4690+from PyQt4.QtGui import QHBoxLayout, QLabel, QSizePolicy, QVBoxLayout, QWidget
4691+
4692+from ubuntu_sso.qt.arrow import QArrow
4693+
4694+# we are following the Qt style, lets tell pylint to ignore it
4695+# pylint: disable=C0103
4696+
4697+
4698+class QExpanderLabel(QWidget):
4699+ """Widget used to show the label of a QExpander."""
4700+
4701+ clicked = pyqtSignal()
4702+
4703+ def __init__(self, label, parent=None):
4704+ """Create a new instance."""
4705+ super(QExpanderLabel, self).__init__(parent)
4706+ self.arrow = QArrow(QArrow.RIGHT)
4707+ self.label = QLabel(label)
4708+ layout = QHBoxLayout()
4709+ layout.setContentsMargins(0, 0, 0, 0)
4710+ self.setLayout(layout)
4711+ layout.addWidget(self.arrow)
4712+ layout.addWidget(self.label)
4713+
4714+ def mousePressEvent(self, event):
4715+ """Mouse clicked."""
4716+ if self.arrow.direction == QArrow.DOWN:
4717+ self.arrow.direction = QArrow.RIGHT
4718+ else:
4719+ self.arrow.direction = QArrow.DOWN
4720+ self.clicked.emit()
4721+
4722+ def text(self):
4723+ """Return the text of the label."""
4724+ return self.label.text()
4725+
4726+ def setText(self, text):
4727+ """Set the text of the label."""
4728+ self.label.setText(text)
4729+
4730+
4731+class QExpander(QWidget):
4732+ """A Qt implementation similar to GtkExpander."""
4733+
4734+ def __init__(self, label, expanded=False, parent=None):
4735+ """Create a new instance."""
4736+ super(QExpander, self).__init__(parent)
4737+ self.label = QExpanderLabel(label)
4738+ self.label.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
4739+ self.content = None
4740+ self.layout = QVBoxLayout()
4741+ self.layout.setContentsMargins(0, 0, 0, 0)
4742+ self.setLayout(self.layout)
4743+ self.layout.addWidget(self.label)
4744+ self.layout.addStretch()
4745+ self.label.clicked.connect(self._on_label_clicked)
4746+ self.setExpanded(expanded)
4747+
4748+ def _on_label_clicked(self):
4749+ """The expander widget was clicked."""
4750+ self._expanded = not self._expanded
4751+ self.setExpanded(self._expanded)
4752+
4753+ def addWidget(self, widget):
4754+ """Add a widget to the expander.
4755+
4756+ The previous widget will be removed.
4757+ """
4758+ if self.content is not None:
4759+ self.layout.removeWidget(self.content)
4760+ self.content = widget
4761+ self.content.setVisible(self._expanded)
4762+ self.layout.insertWidget(1, self.content)
4763+
4764+ def text(self):
4765+ """Return the text of the label."""
4766+ return self.label.text()
4767+
4768+ def setText(self, text):
4769+ """Set the text of the label."""
4770+ self.label.setText(text)
4771+
4772+ def expanded(self):
4773+ """Return if widget is expanded."""
4774+ return self._expanded
4775+
4776+ # pylint: disable=W0201
4777+ def setExpanded(self, is_expanded):
4778+ """Expand the widget or not."""
4779+ self._expanded = is_expanded
4780+ if self._expanded:
4781+ self.label.arrow.direction = QArrow.DOWN
4782+ else:
4783+ self.label.arrow.direction = QArrow.RIGHT
4784+ if self.content is not None:
4785+ self.content.setVisible(self._expanded)
4786+ # pylint: enable=W0201
4787
4788=== modified file 'ubuntu_sso/qt/forgotten_password_page.py'
4789--- ubuntu_sso/qt/forgotten_password_page.py 2012-02-16 14:13:36 +0000
4790+++ ubuntu_sso/qt/forgotten_password_page.py 2012-03-06 15:41:36 +0000
4791@@ -19,178 +19,108 @@
4792 from functools import partial
4793
4794 from PyQt4 import QtCore
4795-from twisted.internet import defer
4796
4797 from ubuntu_sso import NO_OP
4798-from ubuntu_sso.qt.gui import SSOWizardEnhancedEditPage
4799+from ubuntu_sso.logger import setup_gui_logging, log_call
4800+from ubuntu_sso.qt.sso_wizard_page import SSOWizardEnhancedEditPage
4801+from ubuntu_sso.qt.ui.forgotten_password_ui import Ui_ForgottenPasswordPage
4802 from ubuntu_sso.utils.ui import (
4803 EMAIL_LABEL,
4804+ FORGOTTEN_PASSWORD_TITLE,
4805+ FORGOTTEN_PASSWORD_SUBTITLE,
4806 is_correct_email,
4807 RESET_PASSWORD,
4808- REQUEST_PASSWORD_TOKEN_LABEL,
4809 REQUEST_PASSWORD_TOKEN_WRONG_EMAIL,
4810- REQUEST_PASSWORD_TOKEN_TECH_ERROR,
4811- TRY_AGAIN_BUTTON,
4812 )
4813
4814
4815+logger = setup_gui_logging('ubuntu_sso.forgotten_password_page')
4816+
4817+
4818 class ForgottenPasswordPage(SSOWizardEnhancedEditPage):
4819 """Widget used to deal with users that forgot the password."""
4820
4821- passwordResetTokenSent = QtCore.pyqtSignal()
4822+ ui_class = Ui_ForgottenPasswordPage
4823+ passwordResetTokenSent = QtCore.pyqtSignal(unicode)
4824
4825- def __init__(self, ui, *args, **kwargs):
4826- super(ForgottenPasswordPage, self).__init__(ui, *args, **kwargs)
4827- self._signals = {
4828+ @property
4829+ def _signals(self):
4830+ """The signals to connect to the backend."""
4831+ result = {
4832 'PasswordResetTokenSent':
4833 self._filter_by_app_name(self.on_password_reset_token_sent),
4834 'PasswordResetError':
4835 self._filter_by_app_name(self.on_password_reset_error),
4836 }
4837- self.setup_page()
4838-
4839- @defer.inlineCallbacks
4840- def setup_page(self):
4841- """Setup the widget components."""
4842- self.backend = yield self.get_backend()
4843- self._setup_signals()
4844- # hide the error label
4845- self.try_again_widget.setVisible(False)
4846- self._set_translated_strings()
4847- self._connect_ui()
4848- self._set_enhanced_line_edit()
4849- self._register_fields()
4850-
4851- @property
4852- def email_widget(self):
4853- """Return the widget used to show the email information."""
4854- return self.ui.email_widget
4855-
4856- @property
4857- def forgotted_password_intro_label(self):
4858- """Return the intro label that lets the user know the issue."""
4859- return self.ui.forgotted_password_intro_label
4860-
4861- @property
4862- def error_label(self):
4863- """Return the label used to show error."""
4864- return self.ui.error_label
4865-
4866- @property
4867- def email_address_label(self):
4868- """Return the lable used to state the use of the line edit."""
4869- return self.ui.email_address_label
4870+ return result
4871
4872 @property
4873 def email_address(self):
4874 """Return the email address provided by the user."""
4875- return str(self.ui.email_line_edit.text())
4876-
4877- @property
4878- def email_address_line_edit(self):
4879- """Return the line edit with the content."""
4880- return self.ui.email_line_edit
4881-
4882- @property
4883- def send_button(self):
4884- """Return the button used to request the new password."""
4885- return self.ui.send_button
4886-
4887- @property
4888- def try_again_widget(self):
4889- """Return the widget used to display the try again button."""
4890- return self.ui.try_again_widget
4891-
4892- @property
4893- def try_again_button(self):
4894- """Return the button used to try again the reset password."""
4895- return self.ui.try_again_button
4896+ return unicode(self.ui.email_line_edit.text())
4897
4898 #pylint: disable=C0103
4899+
4900 def initializePage(self):
4901 """Set the initial state of ForgottenPassword page."""
4902- self.send_button.setDefault(True)
4903+ self.ui.send_button.setDefault(True)
4904 enabled = not self.ui.email_line_edit.text().isEmpty()
4905- self.send_button.setEnabled(enabled)
4906- # The style from this property come from the Wizard
4907- self.send_button.setProperty("DisabledState",
4908- not self.send_button.isEnabled())
4909- self.send_button.style().unpolish(self.send_button)
4910- self.send_button.style().polish(self.send_button)
4911+ self.ui.send_button.setEnabled(enabled)
4912+
4913 #pylint: enable=C0103
4914
4915 def _register_fields(self):
4916 """Register the fields of the wizard page."""
4917 self.registerField('email_address',
4918- self.email_address_line_edit)
4919+ self.ui.email_line_edit)
4920
4921 def _set_translated_strings(self):
4922 """Set the translated strings in the view."""
4923- self.forgotted_password_intro_label.setText(
4924- REQUEST_PASSWORD_TOKEN_LABEL % {'app_name':
4925- self.app_name})
4926- self.email_address_label.setText(EMAIL_LABEL)
4927- self.send_button.setText(RESET_PASSWORD)
4928- self.try_again_button.setText(TRY_AGAIN_BUTTON)
4929+ self.setTitle(FORGOTTEN_PASSWORD_TITLE)
4930+ subtitle = FORGOTTEN_PASSWORD_SUBTITLE.format(app_name=self.app_name)
4931+ self.setSubTitle(subtitle)
4932+ self.ui.email_address_label.setText(EMAIL_LABEL)
4933+ self.ui.send_button.setText(RESET_PASSWORD)
4934
4935 def _set_enhanced_line_edit(self):
4936 """Set the extra logic to the line edits."""
4937- self.set_line_edit_validation_rule(
4938- self.email_address_line_edit,
4939+ self.set_line_edit_validation_rule(self.ui.email_line_edit,
4940 is_correct_email)
4941
4942 def _connect_ui(self):
4943 """Connect the diff signals from the Ui."""
4944- self.email_address_line_edit.textChanged.connect(self._validate)
4945-
4946- self.send_button.clicked.connect(self.request_new_password)
4947- self.try_again_button.clicked.connect(self.on_try_again)
4948+ self.ui.email_line_edit.textChanged.connect(self._validate)
4949+ self.ui.send_button.clicked.connect(self.request_new_password)
4950+ self._set_enhanced_line_edit()
4951+ self._register_fields()
4952
4953 def request_new_password(self):
4954 """Send the request password operation."""
4955+ self.hide_error()
4956 args = (self.app_name, self.email_address)
4957 f = self.backend.request_password_reset_token
4958
4959 error_handler = partial(self._handle_error, f,
4960 self.on_password_reset_error)
4961
4962- self.overlay.show()
4963+ self.show_overlay()
4964 f(*args, reply_handler=NO_OP, error_handler=error_handler)
4965
4966 def _validate(self):
4967 """Validate that we have an email."""
4968- email = unicode(self.email_address_line_edit.text())
4969- self.send_button.setEnabled(is_correct_email(email))
4970- self.send_button.setProperty("DisabledState",
4971- not self.send_button.isEnabled())
4972- self.send_button.style().unpolish(self.send_button)
4973- self.send_button.style().polish(self.send_button)
4974-
4975- def on_try_again(self):
4976- """Set back the widget to the initial state."""
4977- self.try_again_widget.setVisible(False)
4978- self.email_widget.setVisible(True)
4979-
4980- # pylint: disable=W0212
4981- def on_password_reset_token_sent(self, app_name, result):
4982+ email = unicode(self.ui.email_line_edit.text())
4983+ self.ui.send_button.setEnabled(is_correct_email(email))
4984+
4985+ def on_password_reset_token_sent(self, app_name, email):
4986 """Action taken when we managed to get the password reset done."""
4987 # ignore the result and move to the reset page
4988- self.overlay.hide()
4989- self.passwordResetTokenSent.emit()
4990- # pylint: enable=W0212
4991+ self.hide_overlay()
4992+ self.passwordResetTokenSent.emit(email)
4993
4994+ @log_call(logger.error)
4995 def on_password_reset_error(self, app_name, error):
4996 """Action taken when there was an error requesting the reset."""
4997 # set the error message
4998- self.overlay.hide()
4999- msg = REQUEST_PASSWORD_TOKEN_TECH_ERROR
5000- if error['errtype'] == 'ResetPasswordTokenError':
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches