summaryrefslogtreecommitdiff
authorpaule <paule>2007-01-29 05:23:30 (UTC)
committer paule <paule>2007-01-29 05:23:30 (UTC)
commit865225eccc619cbd196d181e80ef27167b124090 (patch) (unidiff)
treebac8ca323c2af7c3b40c044271db619de2649c0c
parent7c04a4a9ceb843a3ca52b27840145ed598210068 (diff)
downloadopie-865225eccc619cbd196d181e80ef27167b124090.zip
opie-865225eccc619cbd196d181e80ef27167b124090.tar.gz
opie-865225eccc619cbd196d181e80ef27167b124090.tar.bz2
Change buttons from QLabel to QPushButton, which enables entering the PIN using directional buttons and space/enter (which is all that is available on some PDAs if the screen is uncalibrated). In addition, you can now enter numbers using number keys if your device has them.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/securityplugins/pin/pin.cpp67
-rw-r--r--noncore/securityplugins/pin/pinDialogBase.ui775
2 files changed, 366 insertions, 476 deletions
diff --git a/noncore/securityplugins/pin/pin.cpp b/noncore/securityplugins/pin/pin.cpp
index 2accb9c..f1c52c5 100644
--- a/noncore/securityplugins/pin/pin.cpp
+++ b/noncore/securityplugins/pin/pin.cpp
@@ -1,232 +1,273 @@
1/** 1/**
2 * \note Taken from opie-security and libqpe password.cpp, and modified for Opie multiauth by Clement Seveillac 2 * \note Taken from opie-security and libqpe password.cpp, and modified for Opie multiauth by Clement Seveillac
3 */ 3 */
4/********************************************************************** 4/**********************************************************************
5 ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 5 ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
6 ** 6 **
7 ** This file is part of the Qtopia Environment. 7 ** This file is part of the Qtopia Environment.
8 ** 8 **
9 ** This file may be distributed and/or modified under the terms of the 9 ** This file may be distributed and/or modified under the terms of the
10 ** GNU General Public License version 2 as published by the Free Software 10 ** GNU General Public License version 2 as published by the Free Software
11 ** Foundation and appearing in the file LICENSE.GPL included in the 11 ** Foundation and appearing in the file LICENSE.GPL included in the
12 ** packaging of this file. 12 ** packaging of this file.
13 ** 13 **
14 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 14 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
15 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 15 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16 ** 16 **
17 ** See http://www.trolltech.com/gpl/ for GPL licensing information. 17 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
18 ** 18 **
19 ** Contact info@trolltech.com if any conditions of this licensing are 19 ** Contact info@trolltech.com if any conditions of this licensing are
20 ** not clear to you. 20 ** not clear to you.
21 ** 21 **
22 **********************************************************************/ 22 **********************************************************************/
23 23
24#include "pin.h" 24#include "pin.h"
25#include "pinDialogBase.h" 25#include "pinDialogBase.h"
26/* OPIE */ 26/* OPIE */
27#include <opie2/odebug.h> 27#include <opie2/odebug.h>
28#include <opie2/oapplication.h> 28#include <opie2/oapplication.h>
29/* QT */ 29/* QT */
30#include <qpe/config.h> 30#include <qpe/config.h>
31#include <qlabel.h> 31#include <qlabel.h>
32#include <qlineedit.h> 32#include <qlineedit.h>
33#include <qtextview.h> 33#include <qtextview.h>
34#include <qstring.h> 34#include <qstring.h>
35#include <qdialog.h> 35#include <qdialog.h>
36/* UNIX */ 36/* UNIX */
37#include <unistd.h> 37#include <unistd.h>
38#include <stdlib.h> 38#include <stdlib.h>
39#include <time.h> 39#include <time.h>
40 40
41extern "C" char *crypt(const char *key, const char *salt); 41extern "C" char *crypt(const char *key, const char *salt);
42 42
43using Opie::Security::MultiauthConfigWidget; 43using Opie::Security::MultiauthConfigWidget;
44using Opie::Security::MultiauthPluginObject; 44using Opie::Security::MultiauthPluginObject;
45 45
46/// set to TRUE when we press the 'Skip' button 46/// set to TRUE when we press the 'Skip' button
47static bool isSkip = FALSE; 47static bool isSkip = FALSE;
48 48
49/// PIN input graphical widget. 49/// PIN input graphical widget.
50/** 50/**
51 * Inherits the PinDialogBase class defined originally in pinDialogBase.ui interface file. 51 * Inherits the PinDialogBase class defined originally in pinDialogBase.ui interface file.
52 * \sa PinDlg and PinDialog (the class generated from the .ui file) 52 * \sa PinDlg and PinDialog (the class generated from the .ui file)
53 * It comes from the original PIN locking code in Opie : 53 * It comes from the original PIN locking code in Opie :
54 * \sa http://dudu.dyn.2-h.org/opiedoxydoc/library_2password_8cpp-source.html 54 * \sa http://dudu.dyn.2-h.org/opiedoxydoc/library_2password_8cpp-source.html
55 */ 55 */
56class PinDialog : public PinDialogBase 56class PinDialog : public PinDialogBase
57{ 57{
58 Q_OBJECT 58 Q_OBJECT
59 59
60 public: 60 public:
61 PinDialog( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 61 PinDialog( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
62 ~PinDialog(); 62 ~PinDialog();
63 63
64 void clear(); 64 void clear();
65 void setPrompt( const QString& ); 65 void setPrompt( const QString& );
66 66
67signals: 67signals:
68 /// emitted when we press the Enter button 68 /// emitted when we press the Enter button
69 void passwordEntered( const QString& ); 69 void passwordEntered( const QString& );
70 /// emitted when we press the Skip button 70 /// emitted when we press the Skip button
71 void skip(); 71 void skip();
72 72
73 protected: 73 protected:
74 bool eventFilter( QObject*, QEvent* ); 74 bool eventFilter( QObject*, QEvent* );
75 75
76 private: 76 private:
77 void input( QString ); 77 void input( QString );
78 friend class PinPlugin; 78 friend class PinPlugin;
79 QString text; 79 QString text;
80
81 private slots:
82 void slotInput();
83 void slotSkip();
84 void slotOK();
85 void slotBackspace();
80}; 86};
81 87
82 88
83/// Constructs a PinDialog widget, and initializes things 89/// Constructs a PinDialog widget, and initializes things
84PinDialog::PinDialog( QWidget* parent, const char* name, WFlags fl ) 90PinDialog::PinDialog( QWidget* parent, const char* name, WFlags fl )
85 : PinDialogBase( parent, name, fl ) 91 : PinDialogBase( parent, name, fl )
86{ 92{
87 QRect desk = oApp->desktop()->geometry(); 93 QRect desk = oApp->desktop()->geometry();
88 94
89 if ( desk.width() < 220 ) { 95 if ( desk.width() < 220 ) {
90 QFont f( font() ); 96 QFont f( font() );
91 f.setPointSize( 18 ); 97 f.setPointSize( 18 );
92 setFont( f ); 98 setFont( f );
93 f.setPointSize( 12 ); 99 f.setPointSize( 12 );
94 prompt->setFont( f ); 100 prompt->setFont( f );
95 } 101 }
96 102
103 connect ( button_0, SIGNAL( clicked()), SLOT( slotInput()));
104 connect ( button_1, SIGNAL( clicked()), SLOT( slotInput()));
105 connect ( button_2, SIGNAL( clicked()), SLOT( slotInput()));
106 connect ( button_3, SIGNAL( clicked()), SLOT( slotInput()));
107 connect ( button_4, SIGNAL( clicked()), SLOT( slotInput()));
108 connect ( button_5, SIGNAL( clicked()), SLOT( slotInput()));
109 connect ( button_6, SIGNAL( clicked()), SLOT( slotInput()));
110 connect ( button_7, SIGNAL( clicked()), SLOT( slotInput()));
111 connect ( button_8, SIGNAL( clicked()), SLOT( slotInput()));
112 connect ( button_9, SIGNAL( clicked()), SLOT( slotInput()));
113 connect ( button_Skip, SIGNAL( clicked()), SLOT( slotSkip()));
114 connect ( button_OK, SIGNAL( clicked()), SLOT( slotOK()));
115
97 button_0->installEventFilter( this ); 116 button_0->installEventFilter( this );
98 button_1->installEventFilter( this ); 117 button_1->installEventFilter( this );
99 button_2->installEventFilter( this ); 118 button_2->installEventFilter( this );
100 button_3->installEventFilter( this ); 119 button_3->installEventFilter( this );
101 button_4->installEventFilter( this ); 120 button_4->installEventFilter( this );
102 button_5->installEventFilter( this ); 121 button_5->installEventFilter( this );
103 button_6->installEventFilter( this ); 122 button_6->installEventFilter( this );
104 button_7->installEventFilter( this ); 123 button_7->installEventFilter( this );
105 button_8->installEventFilter( this ); 124 button_8->installEventFilter( this );
106 button_9->installEventFilter( this ); 125 button_9->installEventFilter( this );
107 button_Skip->installEventFilter( this ); 126 button_Skip->installEventFilter( this );
108 button_OK->installEventFilter( this ); 127 button_OK->installEventFilter( this );
109 setFocus(); 128 button_OK->setFocus();
110} 129}
111 130
112/// nothing to do 131/// nothing to do
113PinDialog::~PinDialog() 132PinDialog::~PinDialog()
114{ 133{
115 // no need to delete child widgets, Qt does it all for us 134 // no need to delete child widgets, Qt does it all for us
116} 135}
117 136
118/// Record the pressed numbers, and the Skip and Enter commands 137/// Handle keyboard events
119bool PinDialog::eventFilter( QObject*o, QEvent*e ) 138bool PinDialog::eventFilter( QObject*o, QEvent*e )
120{ 139{
121 if ( e->type() == QEvent::MouseButtonRelease ) { 140 if(e->type() == QEvent::KeyPress) {
122 if ( o == button_OK ) { 141 switch(((QKeyEvent *)e)->key()) {
123 emit passwordEntered( text ); 142 case Key_0...Key_9:
124 } 143 input(((QKeyEvent *)e)->text());
125 else if ( o == button_Skip ) { 144 return TRUE;
126 isSkip = TRUE; 145 case Key_Backspace:
127 emit skip(); 146 slotBackspace();
128 } 147 return TRUE;
129 else {
130 QLabel *l = (QLabel*)o;
131 input(l->text());
132 } 148 }
133 } 149 }
134 return FALSE; 150 return FALSE;
135} 151}
136 152
153void PinDialog::slotInput()
154{
155 QPushButton *l = (QPushButton*)sender();
156 input(l->text().stripWhiteSpace());
157}
158
159void PinDialog::slotSkip()
160{
161 isSkip = TRUE;
162 emit skip();
163}
164
165void PinDialog::slotOK()
166{
167 emit passwordEntered( text );
168}
169
170void PinDialog::slotBackspace()
171{
172 if(text.length() > 0) {
173 text.truncate( text.length() - 1 );
174 display->setText( text );
175 }
176}
177
137void PinDialog::input( QString c ) 178void PinDialog::input( QString c )
138{ 179{
139 text += c; 180 text += c;
140 display->setText( text ); 181 display->setText( text );
141} 182}
142 183
143void PinDialog::setPrompt( const QString& s ) 184void PinDialog::setPrompt( const QString& s )
144{ 185{
145 prompt->setText( s ); 186 prompt->setText( s );
146} 187}
147 188
148void PinDialog::clear() 189void PinDialog::clear()
149{ 190{
150 text = ""; 191 text = "";
151 input(""); 192 input("");
152} 193}
153 194
154/// PIN dialog 195/// PIN dialog
155/** 196/**
156 * Dialog containing the PinDialog widget (which asks for a PIN) and interfacing with its I/O. 197 * Dialog containing the PinDialog widget (which asks for a PIN) and interfacing with its I/O.
157 * \sa PinDialog 198 * \sa PinDialog
158 */ 199 */
159class PinDlg : public QDialog 200class PinDlg : public QDialog
160{ 201{
161 public: 202 public:
162 PinDlg( QWidget *parent, const char * name, bool modal, bool fullscreen = FALSE ) 203 PinDlg( QWidget *parent, const char * name, bool modal, bool fullscreen = FALSE )
163 : QDialog( parent, name, modal, fullscreen ? WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ), 204 : QDialog( parent, name, modal, fullscreen ? WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ),
164 modl(modal) 205 modl(modal)
165 { 206 {
166 pinD = new PinDialog( this ); 207 pinD = new PinDialog( this );
167 208
168 if ( fullscreen ) { 209 if ( fullscreen ) {
169 QRect desk = oApp->desktop()->geometry(); 210 QRect desk = oApp->desktop()->geometry();
170 setGeometry( 0, 0, desk.width(), desk.height() ); 211 setGeometry( 0, 0, desk.width(), desk.height() );
171 } 212 }
172 213
173 connect( pinD, SIGNAL(passwordEntered(const QString&)), 214 connect( pinD, SIGNAL(passwordEntered(const QString&)),
174 this, SLOT(accept()) ); 215 this, SLOT(accept()) );
175 connect( pinD, SIGNAL(skip()), this, SLOT(accept()) ); 216 connect( pinD, SIGNAL(skip()), this, SLOT(accept()) );
176 } 217 }
177 218
178 void resizeEvent( QResizeEvent * ) 219 void resizeEvent( QResizeEvent * )
179 { 220 {
180 pinD->resize( size() ); 221 pinD->resize( size() );
181 } 222 }
182 223
183 void reset() 224 void reset()
184 { 225 {
185 pinD->clear(); 226 pinD->clear();
186 } 227 }
187 228
188 /// Slot receiving the Skip or Enter commands, and closing the QDialog 229 /// Slot receiving the Skip or Enter commands, and closing the QDialog
189 void accept() 230 void accept()
190 { 231 {
191 if ( !modl ) 232 if ( !modl )
192 oApp->exit_loop(); 233 oApp->exit_loop();
193 QDialog::accept(); 234 QDialog::accept();
194 } 235 }
195 236
196 PinDialog *pinD; 237 PinDialog *pinD;
197 bool modl; 238 bool modl;
198}; 239};
199 240
200/// generate a fairly random salt and return the PIN hashed by crypt() 241/// generate a fairly random salt and return the PIN hashed by crypt()
201QString PinPlugin::encrypt(const QString& pin) 242QString PinPlugin::encrypt(const QString& pin)
202{ 243{
203 // the salt must begin by "$1$" if we want crypt() to use MD5 244 // the salt must begin by "$1$" if we want crypt() to use MD5
204 char salt[] = "$1$........"; 245 char salt[] = "$1$........";
205 const char *const seedchars = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 246 const char *const seedchars = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
206 // initialize the random generator 247 // initialize the random generator
207 srandom(time(0)); 248 srandom(time(0));
208 int i; 249 int i;
209 for(i = 0; i < 8; i++) 250 for(i = 0; i < 8; i++)
210 { 251 {
211 // initialize the salt with random() 252 // initialize the salt with random()
212 salt[i+3] = seedchars[random() % 64]; 253 salt[i+3] = seedchars[random() % 64];
213 } 254 }
214 return QString::fromLatin1(crypt(pin.latin1(),salt)); 255 return QString::fromLatin1(crypt(pin.latin1(),salt));
215} 256}
216 257
217/// verify a PIN against its crypt() hash 258/// verify a PIN against its crypt() hash
218/** 259/**
219 * \return true if the \a pin matches its \a hash 260 * \return true if the \a pin matches its \a hash
220 */ 261 */
221bool PinPlugin::verify(const QString& pin, const QString& hash) 262bool PinPlugin::verify(const QString& pin, const QString& hash)
222{ 263{
223 // the hash, which contains the salt (8 chars after "$1$"), can be given as the salt 264 // the hash, which contains the salt (8 chars after "$1$"), can be given as the salt
224 return hash.compare( QString::fromLatin1(crypt( pin.latin1(), hash.latin1() )) ) == 0 ? true : false; 265 return hash.compare( QString::fromLatin1(crypt( pin.latin1(), hash.latin1() )) ) == 0 ? true : false;
225} 266}
226 267
227/// Displays a PinDialog and returns the typed in PIN 268/// Displays a PinDialog and returns the typed in PIN
228/** 269/**
229 * The returned value is QString::null if the user cancels the operation, 270 * The returned value is QString::null if the user cancels the operation,
230 * or the empty string if the user enters no password (but confirms the 271 * or the empty string if the user enters no password (but confirms the
231 * dialog). 272 * dialog).
232 */ 273 */
diff --git a/noncore/securityplugins/pin/pinDialogBase.ui b/noncore/securityplugins/pin/pinDialogBase.ui
index f84587b..7fde488 100644
--- a/noncore/securityplugins/pin/pinDialogBase.ui
+++ b/noncore/securityplugins/pin/pinDialogBase.ui
@@ -1,196 +1,238 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>PinDialogBase</class> 2<class>PinDialogBase</class>
3<widget> 3<widget>
4 <class>QWidget</class> 4 <class>QWidget</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>PinDialogBase</cstring> 7 <cstring>PinDialogBase</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>231</width> 14 <width>257</width>
15 <height>293</height> 15 <height>280</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>font</name> 19 <name>font</name>
20 <font> 20 <font>
21 <pointsize>24</pointsize> 21 <pointsize>24</pointsize>
22 </font> 22 </font>
23 </property> 23 </property>
24 <property stdset="1"> 24 <property stdset="1">
25 <name>caption</name> 25 <name>caption</name>
26 <string>PinDialogBase</string> 26 <string>PinDialogBase</string>
27 </property> 27 </property>
28 <grid> 28 <grid>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>11</number> 31 <number>11</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>6</number> 35 <number>6</number>
36 </property> 36 </property>
37 <widget row="3" column="0" > 37 <widget row="4" column="0" >
38 <class>QLabel</class> 38 <class>QPushButton</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>button_4</cstring> 41 <cstring>button_7</cstring>
42 </property> 42 </property>
43 <property stdset="1"> 43 <property stdset="1">
44 <name>sizePolicy</name> 44 <name>sizePolicy</name>
45 <sizepolicy> 45 <sizepolicy>
46 <hsizetype>5</hsizetype> 46 <hsizetype>7</hsizetype>
47 <vsizetype>5</vsizetype> 47 <vsizetype>7</vsizetype>
48 </sizepolicy> 48 </sizepolicy>
49 </property> 49 </property>
50 <property stdset="1"> 50 <property stdset="1">
51 <name>frameShape</name> 51 <name>text</name>
52 <enum>Box</enum> 52 <string>7</string>
53 </property> 53 </property>
54 </widget>
55 <widget row="2" column="0" >
56 <class>QPushButton</class>
54 <property stdset="1"> 57 <property stdset="1">
55 <name>frameShadow</name> 58 <name>name</name>
56 <enum>Raised</enum> 59 <cstring>button_1</cstring>
60 </property>
61 <property stdset="1">
62 <name>sizePolicy</name>
63 <sizepolicy>
64 <hsizetype>7</hsizetype>
65 <vsizetype>7</vsizetype>
66 </sizepolicy>
57 </property> 67 </property>
58 <property stdset="1"> 68 <property stdset="1">
59 <name>text</name> 69 <name>text</name>
60 <string>4</string> 70 <string>1</string>
61 </property> 71 </property>
72 </widget>
73 <widget row="2" column="2" >
74 <class>QPushButton</class>
62 <property stdset="1"> 75 <property stdset="1">
63 <name>alignment</name> 76 <name>name</name>
64 <set>AlignCenter</set> 77 <cstring>button_3</cstring>
65 </property> 78 </property>
66 <property> 79 <property stdset="1">
67 <name>hAlign</name> 80 <name>sizePolicy</name>
81 <sizepolicy>
82 <hsizetype>7</hsizetype>
83 <vsizetype>7</vsizetype>
84 </sizepolicy>
85 </property>
86 <property stdset="1">
87 <name>text</name>
88 <string>3</string>
68 </property> 89 </property>
69 </widget> 90 </widget>
70 <widget row="4" column="0" > 91 <widget row="4" column="2" >
71 <class>QLabel</class> 92 <class>QPushButton</class>
72 <property stdset="1"> 93 <property stdset="1">
73 <name>name</name> 94 <name>name</name>
74 <cstring>button_7</cstring> 95 <cstring>button_9</cstring>
75 </property> 96 </property>
76 <property stdset="1"> 97 <property stdset="1">
77 <name>sizePolicy</name> 98 <name>sizePolicy</name>
78 <sizepolicy> 99 <sizepolicy>
79 <hsizetype>5</hsizetype> 100 <hsizetype>7</hsizetype>
80 <vsizetype>5</vsizetype> 101 <vsizetype>7</vsizetype>
81 </sizepolicy> 102 </sizepolicy>
82 </property> 103 </property>
83 <property stdset="1"> 104 <property stdset="1">
84 <name>frameShape</name> 105 <name>text</name>
85 <enum>Box</enum> 106 <string> 9 </string>
107 </property>
108 </widget>
109 <widget row="3" column="2" >
110 <class>QPushButton</class>
111 <property stdset="1">
112 <name>name</name>
113 <cstring>button_6</cstring>
86 </property> 114 </property>
87 <property stdset="1"> 115 <property stdset="1">
88 <name>frameShadow</name> 116 <name>sizePolicy</name>
89 <enum>Raised</enum> 117 <sizepolicy>
118 <hsizetype>7</hsizetype>
119 <vsizetype>7</vsizetype>
120 </sizepolicy>
90 </property> 121 </property>
91 <property stdset="1"> 122 <property stdset="1">
92 <name>text</name> 123 <name>text</name>
93 <string>7</string> 124 <string>6</string>
94 </property> 125 </property>
126 </widget>
127 <widget row="5" column="0" >
128 <class>QPushButton</class>
95 <property stdset="1"> 129 <property stdset="1">
96 <name>alignment</name> 130 <name>name</name>
97 <set>AlignCenter</set> 131 <cstring>button_0</cstring>
98 </property> 132 </property>
99 <property> 133 <property stdset="1">
100 <name>hAlign</name> 134 <name>sizePolicy</name>
135 <sizepolicy>
136 <hsizetype>7</hsizetype>
137 <vsizetype>7</vsizetype>
138 </sizepolicy>
139 </property>
140 <property stdset="1">
141 <name>text</name>
142 <string> 0 </string>
101 </property> 143 </property>
102 </widget> 144 </widget>
103 <widget row="0" column="0" rowspan="1" colspan="3" > 145 <widget row="0" column="0" rowspan="1" colspan="3" >
104 <class>QLabel</class> 146 <class>QLabel</class>
105 <property stdset="1"> 147 <property stdset="1">
106 <name>name</name> 148 <name>name</name>
107 <cstring>prompt</cstring> 149 <cstring>prompt</cstring>
108 </property> 150 </property>
109 <property stdset="1"> 151 <property stdset="1">
110 <name>font</name> 152 <name>font</name>
111 <font> 153 <font>
112 <pointsize>18</pointsize> 154 <pointsize>18</pointsize>
113 </font> 155 </font>
114 </property> 156 </property>
115 <property stdset="1"> 157 <property stdset="1">
116 <name>text</name> 158 <name>text</name>
117 <string>Enter your PIN</string> 159 <string>Enter your PIN</string>
118 </property> 160 </property>
119 </widget> 161 </widget>
120 <widget row="1" column="0" rowspan="1" colspan="3" > 162 <widget row="1" column="0" rowspan="1" colspan="3" >
121 <class>QLineEdit</class> 163 <class>QLineEdit</class>
122 <property stdset="1"> 164 <property stdset="1">
123 <name>name</name> 165 <name>name</name>
124 <cstring>display</cstring> 166 <cstring>display</cstring>
125 </property> 167 </property>
126 <property stdset="1"> 168 <property stdset="1">
127 <name>enabled</name> 169 <name>enabled</name>
128 <bool>false</bool> 170 <bool>false</bool>
129 </property> 171 </property>
130 <property stdset="1"> 172 <property stdset="1">
131 <name>palette</name> 173 <name>palette</name>
132 <palette> 174 <palette>
133 <active> 175 <active>
134 <color> 176 <color>
135 <red>0</red> 177 <red>0</red>
136 <green>0</green> 178 <green>0</green>
137 <blue>0</blue> 179 <blue>0</blue>
138 </color> 180 </color>
139 <color> 181 <color>
140 <red>228</red> 182 <red>228</red>
141 <green>228</green> 183 <green>228</green>
142 <blue>228</blue> 184 <blue>228</blue>
143 </color> 185 </color>
144 <color> 186 <color>
145 <red>255</red> 187 <red>255</red>
146 <green>255</green> 188 <green>255</green>
147 <blue>255</blue> 189 <blue>255</blue>
148 </color> 190 </color>
149 <color> 191 <color>
150 <red>242</red> 192 <red>242</red>
151 <green>242</green> 193 <green>242</green>
152 <blue>242</blue> 194 <blue>242</blue>
153 </color> 195 </color>
154 <color> 196 <color>
155 <red>78</red> 197 <red>78</red>
156 <green>78</green> 198 <green>78</green>
157 <blue>78</blue> 199 <blue>78</blue>
158 </color> 200 </color>
159 <color> 201 <color>
160 <red>183</red> 202 <red>183</red>
161 <green>183</green> 203 <green>183</green>
162 <blue>183</blue> 204 <blue>183</blue>
163 </color> 205 </color>
164 <color> 206 <color>
165 <red>0</red> 207 <red>0</red>
166 <green>0</green> 208 <green>0</green>
167 <blue>0</blue> 209 <blue>0</blue>
168 </color> 210 </color>
169 <color> 211 <color>
170 <red>255</red> 212 <red>255</red>
171 <green>255</green> 213 <green>255</green>
172 <blue>255</blue> 214 <blue>255</blue>
173 </color> 215 </color>
174 <color> 216 <color>
175 <red>0</red> 217 <red>0</red>
176 <green>0</green> 218 <green>0</green>
177 <blue>0</blue> 219 <blue>0</blue>
178 </color> 220 </color>
179 <color> 221 <color>
180 <red>255</red> 222 <red>255</red>
181 <green>255</green> 223 <green>255</green>
182 <blue>255</blue> 224 <blue>255</blue>
183 </color> 225 </color>
184 <color> 226 <color>
185 <red>220</red> 227 <red>220</red>
186 <green>220</green> 228 <green>220</green>
187 <blue>220</blue> 229 <blue>220</blue>
188 </color> 230 </color>
189 <color> 231 <color>
190 <red>0</red> 232 <red>0</red>
191 <green>0</green> 233 <green>0</green>
192 <blue>0</blue> 234 <blue>0</blue>
193 </color> 235 </color>
194 <color> 236 <color>
195 <red>10</red> 237 <red>10</red>
196 <green>95</green> 238 <green>95</green>
@@ -260,883 +302,690 @@
260 </color> 302 </color>
261 <color> 303 <color>
262 <red>0</red> 304 <red>0</red>
263 <green>0</green> 305 <green>0</green>
264 <blue>0</blue> 306 <blue>0</blue>
265 </color> 307 </color>
266 <color> 308 <color>
267 <red>0</red> 309 <red>0</red>
268 <green>0</green> 310 <green>0</green>
269 <blue>128</blue> 311 <blue>128</blue>
270 </color> 312 </color>
271 <color> 313 <color>
272 <red>255</red> 314 <red>255</red>
273 <green>255</green> 315 <green>255</green>
274 <blue>255</blue> 316 <blue>255</blue>
275 </color> 317 </color>
276 </disabled> 318 </disabled>
277 <inactive> 319 <inactive>
278 <color> 320 <color>
279 <red>0</red> 321 <red>0</red>
280 <green>0</green> 322 <green>0</green>
281 <blue>0</blue> 323 <blue>0</blue>
282 </color> 324 </color>
283 <color> 325 <color>
284 <red>228</red> 326 <red>228</red>
285 <green>228</green> 327 <green>228</green>
286 <blue>228</blue> 328 <blue>228</blue>
287 </color> 329 </color>
288 <color> 330 <color>
289 <red>255</red> 331 <red>255</red>
290 <green>255</green> 332 <green>255</green>
291 <blue>255</blue> 333 <blue>255</blue>
292 </color> 334 </color>
293 <color> 335 <color>
294 <red>242</red> 336 <red>242</red>
295 <green>242</green> 337 <green>242</green>
296 <blue>242</blue> 338 <blue>242</blue>
297 </color> 339 </color>
298 <color> 340 <color>
299 <red>78</red> 341 <red>78</red>
300 <green>78</green> 342 <green>78</green>
301 <blue>78</blue> 343 <blue>78</blue>
302 </color> 344 </color>
303 <color> 345 <color>
304 <red>183</red> 346 <red>183</red>
305 <green>183</green> 347 <green>183</green>
306 <blue>183</blue> 348 <blue>183</blue>
307 </color> 349 </color>
308 <color> 350 <color>
309 <red>0</red> 351 <red>0</red>
310 <green>0</green> 352 <green>0</green>
311 <blue>0</blue> 353 <blue>0</blue>
312 </color> 354 </color>
313 <color> 355 <color>
314 <red>255</red> 356 <red>255</red>
315 <green>255</green> 357 <green>255</green>
316 <blue>255</blue> 358 <blue>255</blue>
317 </color> 359 </color>
318 <color> 360 <color>
319 <red>0</red> 361 <red>0</red>
320 <green>0</green> 362 <green>0</green>
321 <blue>0</blue> 363 <blue>0</blue>
322 </color> 364 </color>
323 <color> 365 <color>
324 <red>255</red> 366 <red>255</red>
325 <green>255</green> 367 <green>255</green>
326 <blue>255</blue> 368 <blue>255</blue>
327 </color> 369 </color>
328 <color> 370 <color>
329 <red>220</red> 371 <red>220</red>
330 <green>220</green> 372 <green>220</green>
331 <blue>220</blue> 373 <blue>220</blue>
332 </color> 374 </color>
333 <color> 375 <color>
334 <red>0</red> 376 <red>0</red>
335 <green>0</green> 377 <green>0</green>
336 <blue>0</blue> 378 <blue>0</blue>
337 </color> 379 </color>
338 <color> 380 <color>
339 <red>10</red> 381 <red>10</red>
340 <green>95</green> 382 <green>95</green>
341 <blue>137</blue> 383 <blue>137</blue>
342 </color> 384 </color>
343 <color> 385 <color>
344 <red>255</red> 386 <red>255</red>
345 <green>255</green> 387 <green>255</green>
346 <blue>255</blue> 388 <blue>255</blue>
347 </color> 389 </color>
348 </inactive> 390 </inactive>
349 </palette> 391 </palette>
350 </property> 392 </property>
351 <property stdset="1"> 393 <property stdset="1">
352 <name>echoMode</name> 394 <name>echoMode</name>
353 <enum>Password</enum> 395 <enum>Password</enum>
354 </property> 396 </property>
355 </widget> 397 </widget>
356 <widget row="2" column="0" >
357 <class>QLabel</class>
358 <property stdset="1">
359 <name>name</name>
360 <cstring>button_1</cstring>
361 </property>
362 <property stdset="1">
363 <name>sizePolicy</name>
364 <sizepolicy>
365 <hsizetype>5</hsizetype>
366 <vsizetype>5</vsizetype>
367 </sizepolicy>
368 </property>
369 <property stdset="1">
370 <name>frameShape</name>
371 <enum>Box</enum>
372 </property>
373 <property stdset="1">
374 <name>frameShadow</name>
375 <enum>Raised</enum>
376 </property>
377 <property stdset="1">
378 <name>text</name>
379 <string>1</string>
380 </property>
381 <property stdset="1">
382 <name>alignment</name>
383 <set>AlignCenter</set>
384 </property>
385 <property>
386 <name>hAlign</name>
387 </property>
388 </widget>
389 <widget row="2" column="1" >
390 <class>QLabel</class>
391 <property stdset="1">
392 <name>name</name>
393 <cstring>button_2</cstring>
394 </property>
395 <property stdset="1">
396 <name>sizePolicy</name>
397 <sizepolicy>
398 <hsizetype>5</hsizetype>
399 <vsizetype>5</vsizetype>
400 </sizepolicy>
401 </property>
402 <property stdset="1">
403 <name>frameShape</name>
404 <enum>Box</enum>
405 </property>
406 <property stdset="1">
407 <name>frameShadow</name>
408 <enum>Raised</enum>
409 </property>
410 <property stdset="1">
411 <name>text</name>
412 <string>2</string>
413 </property>
414 <property stdset="1">
415 <name>alignment</name>
416 <set>AlignCenter</set>
417 </property>
418 <property>
419 <name>hAlign</name>
420 </property>
421 </widget>
422 <widget row="3" column="1" >
423 <class>QLabel</class>
424 <property stdset="1">
425 <name>name</name>
426 <cstring>button_5</cstring>
427 </property>
428 <property stdset="1">
429 <name>sizePolicy</name>
430 <sizepolicy>
431 <hsizetype>5</hsizetype>
432 <vsizetype>5</vsizetype>
433 </sizepolicy>
434 </property>
435 <property stdset="1">
436 <name>frameShape</name>
437 <enum>Box</enum>
438 </property>
439 <property stdset="1">
440 <name>frameShadow</name>
441 <enum>Raised</enum>
442 </property>
443 <property stdset="1">
444 <name>text</name>
445 <string>5</string>
446 </property>
447 <property stdset="1">
448 <name>alignment</name>
449 <set>AlignCenter</set>
450 </property>
451 <property>
452 <name>hAlign</name>
453 </property>
454 </widget>
455 <widget row="3" column="2" >
456 <class>QLabel</class>
457 <property stdset="1">
458 <name>name</name>
459 <cstring>button_6</cstring>
460 </property>
461 <property stdset="1">
462 <name>sizePolicy</name>
463 <sizepolicy>
464 <hsizetype>5</hsizetype>
465 <vsizetype>5</vsizetype>
466 </sizepolicy>
467 </property>
468 <property stdset="1">
469 <name>frameShape</name>
470 <enum>Box</enum>
471 </property>
472 <property stdset="1">
473 <name>frameShadow</name>
474 <enum>Raised</enum>
475 </property>
476 <property stdset="1">
477 <name>text</name>
478 <string>6</string>
479 </property>
480 <property stdset="1">
481 <name>alignment</name>
482 <set>AlignCenter</set>
483 </property>
484 <property>
485 <name>hAlign</name>
486 </property>
487 </widget>
488 <widget row="2" column="2" >
489 <class>QLabel</class>
490 <property stdset="1">
491 <name>name</name>
492 <cstring>button_3</cstring>
493 </property>
494 <property stdset="1">
495 <name>sizePolicy</name>
496 <sizepolicy>
497 <hsizetype>5</hsizetype>
498 <vsizetype>5</vsizetype>
499 </sizepolicy>
500 </property>
501 <property stdset="1">
502 <name>frameShape</name>
503 <enum>Box</enum>
504 </property>
505 <property stdset="1">
506 <name>frameShadow</name>
507 <enum>Raised</enum>
508 </property>
509 <property stdset="1">
510 <name>text</name>
511 <string>3</string>
512 </property>
513 <property stdset="1">
514 <name>alignment</name>
515 <set>AlignCenter</set>
516 </property>
517 <property>
518 <name>hAlign</name>
519 </property>
520 </widget>
521 <widget row="5" column="0" >
522 <class>QLabel</class>
523 <property stdset="1">
524 <name>name</name>
525 <cstring>button_0</cstring>
526 </property>
527 <property stdset="1">
528 <name>sizePolicy</name>
529 <sizepolicy>
530 <hsizetype>5</hsizetype>
531 <vsizetype>5</vsizetype>
532 </sizepolicy>
533 </property>
534 <property stdset="1">
535 <name>frameShape</name>
536 <enum>Box</enum>
537 </property>
538 <property stdset="1">
539 <name>frameShadow</name>
540 <enum>Raised</enum>
541 </property>
542 <property stdset="1">
543 <name>text</name>
544 <string>0</string>
545 </property>
546 <property stdset="1">
547 <name>alignment</name>
548 <set>AlignCenter</set>
549 </property>
550 <property>
551 <name>hAlign</name>
552 </property>
553 <property>
554 <name>layoutMargin</name>
555 </property>
556 <property>
557 <name>layoutSpacing</name>
558 </property>
559 </widget>
560 <widget row="4" column="1" >
561 <class>QLabel</class>
562 <property stdset="1">
563 <name>name</name>
564 <cstring>button_8</cstring>
565 </property>
566 <property stdset="1">
567 <name>sizePolicy</name>
568 <sizepolicy>
569 <hsizetype>5</hsizetype>
570 <vsizetype>5</vsizetype>
571 </sizepolicy>
572 </property>
573 <property stdset="1">
574 <name>frameShape</name>
575 <enum>Box</enum>
576 </property>
577 <property stdset="1">
578 <name>frameShadow</name>
579 <enum>Raised</enum>
580 </property>
581 <property stdset="1">
582 <name>text</name>
583 <string>8</string>
584 </property>
585 <property stdset="1">
586 <name>alignment</name>
587 <set>AlignCenter</set>
588 </property>
589 <property>
590 <name>hAlign</name>
591 </property>
592 </widget>
593 <widget row="4" column="2" >
594 <class>QLabel</class>
595 <property stdset="1">
596 <name>name</name>
597 <cstring>button_9</cstring>
598 </property>
599 <property stdset="1">
600 <name>sizePolicy</name>
601 <sizepolicy>
602 <hsizetype>5</hsizetype>
603 <vsizetype>5</vsizetype>
604 </sizepolicy>
605 </property>
606 <property stdset="1">
607 <name>frameShape</name>
608 <enum>Box</enum>
609 </property>
610 <property stdset="1">
611 <name>frameShadow</name>
612 <enum>Raised</enum>
613 </property>
614 <property stdset="1">
615 <name>text</name>
616 <string>9</string>
617 </property>
618 <property stdset="1">
619 <name>alignment</name>
620 <set>AlignCenter</set>
621 </property>
622 <property>
623 <name>hAlign</name>
624 </property>
625 <property>
626 <name>layoutMargin</name>
627 </property>
628 <property>
629 <name>layoutSpacing</name>
630 </property>
631 </widget>
632 <widget row="5" column="2" > 398 <widget row="5" column="2" >
633 <class>QLabel</class> 399 <class>QPushButton</class>
634 <property stdset="1"> 400 <property stdset="1">
635 <name>name</name> 401 <name>name</name>
636 <cstring>button_OK</cstring> 402 <cstring>button_OK</cstring>
637 </property> 403 </property>
638 <property stdset="1"> 404 <property stdset="1">
639 <name>sizePolicy</name> 405 <name>sizePolicy</name>
640 <sizepolicy> 406 <sizepolicy>
641 <hsizetype>5</hsizetype> 407 <hsizetype>7</hsizetype>
642 <vsizetype>5</vsizetype> 408 <vsizetype>7</vsizetype>
643 </sizepolicy> 409 </sizepolicy>
644 </property> 410 </property>
645 <property stdset="1"> 411 <property stdset="1">
646 <name>palette</name> 412 <name>palette</name>
647 <palette> 413 <palette>
648 <active> 414 <active>
649 <color> 415 <color>
650 <red>0</red> 416 <red>0</red>
651 <green>0</green> 417 <green>0</green>
652 <blue>0</blue> 418 <blue>0</blue>
653 </color> 419 </color>
654 <color> 420 <color>
655 <red>192</red> 421 <red>170</red>
656 <green>192</green> 422 <green>255</green>
657 <blue>192</blue> 423 <blue>0</blue>
658 </color> 424 </color>
659 <color> 425 <color>
660 <red>255</red> 426 <red>212</red>
661 <green>255</green> 427 <green>255</green>
662 <blue>255</blue> 428 <blue>127</blue>
663 </color> 429 </color>
664 <color> 430 <color>
665 <red>223</red> 431 <red>191</red>
666 <green>223</green> 432 <green>255</green>
667 <blue>223</blue> 433 <blue>63</blue>
668 </color> 434 </color>
669 <color> 435 <color>
670 <red>96</red> 436 <red>85</red>
671 <green>96</green> 437 <green>127</green>
672 <blue>96</blue> 438 <blue>0</blue>
673 </color> 439 </color>
674 <color> 440 <color>
675 <red>128</red> 441 <red>113</red>
676 <green>128</green> 442 <green>170</green>
677 <blue>128</blue> 443 <blue>0</blue>
678 </color> 444 </color>
679 <color> 445 <color>
680 <red>0</red> 446 <red>0</red>
681 <green>0</green> 447 <green>0</green>
682 <blue>0</blue> 448 <blue>0</blue>
683 </color> 449 </color>
684 <color> 450 <color>
685 <red>255</red> 451 <red>255</red>
686 <green>255</green> 452 <green>255</green>
687 <blue>255</blue> 453 <blue>255</blue>
688 </color> 454 </color>
689 <color> 455 <color>
690 <red>0</red> 456 <red>0</red>
691 <green>0</green> 457 <green>0</green>
692 <blue>0</blue> 458 <blue>0</blue>
693 </color> 459 </color>
694 <color> 460 <color>
695 <red>255</red> 461 <red>255</red>
696 <green>255</green> 462 <green>255</green>
697 <blue>255</blue> 463 <blue>255</blue>
698 </color> 464 </color>
699 <color> 465 <color>
700 <red>0</red> 466 <red>238</red>
701 <green>170</green> 467 <green>238</green>
702 <blue>0</blue> 468 <blue>230</blue>
703 </color> 469 </color>
704 <color> 470 <color>
705 <red>0</red> 471 <red>0</red>
706 <green>0</green> 472 <green>0</green>
707 <blue>0</blue> 473 <blue>0</blue>
708 </color> 474 </color>
709 <color> 475 <color>
476 <red>255</red>
477 <green>221</green>
478 <blue>118</blue>
479 </color>
480 <color>
710 <red>0</red> 481 <red>0</red>
711 <green>0</green> 482 <green>0</green>
712 <blue>0</blue> 483 <blue>0</blue>
713 </color> 484 </color>
714 <color>
715 <red>255</red>
716 <green>255</green>
717 <blue>255</blue>
718 </color>
719 </active> 485 </active>
720 <disabled> 486 <disabled>
721 <color> 487 <color>
722 <red>128</red> 488 <red>128</red>
723 <green>128</green> 489 <green>128</green>
724 <blue>128</blue> 490 <blue>128</blue>
725 </color> 491 </color>
726 <color> 492 <color>
727 <red>192</red> 493 <red>170</red>
728 <green>192</green> 494 <green>255</green>
729 <blue>192</blue> 495 <blue>0</blue>
730 </color> 496 </color>
731 <color> 497 <color>
732 <red>255</red> 498 <red>212</red>
733 <green>255</green> 499 <green>255</green>
734 <blue>255</blue> 500 <blue>127</blue>
735 </color> 501 </color>
736 <color> 502 <color>
737 <red>220</red> 503 <red>183</red>
738 <green>220</green> 504 <green>255</green>
739 <blue>220</blue> 505 <blue>38</blue>
740 </color> 506 </color>
741 <color> 507 <color>
742 <red>96</red> 508 <red>85</red>
743 <green>96</green> 509 <green>127</green>
744 <blue>96</blue> 510 <blue>0</blue>
745 </color> 511 </color>
746 <color> 512 <color>
747 <red>128</red> 513 <red>113</red>
748 <green>128</green> 514 <green>170</green>
749 <blue>128</blue> 515 <blue>0</blue>
750 </color> 516 </color>
751 <color> 517 <color>
752 <red>0</red> 518 <red>0</red>
753 <green>0</green> 519 <green>0</green>
754 <blue>0</blue> 520 <blue>0</blue>
755 </color> 521 </color>
756 <color> 522 <color>
757 <red>255</red> 523 <red>255</red>
758 <green>255</green> 524 <green>255</green>
759 <blue>255</blue> 525 <blue>255</blue>
760 </color> 526 </color>
761 <color> 527 <color>
762 <red>128</red> 528 <red>128</red>
763 <green>128</green> 529 <green>128</green>
764 <blue>128</blue> 530 <blue>128</blue>
765 </color> 531 </color>
766 <color> 532 <color>
767 <red>255</red> 533 <red>255</red>
768 <green>255</green> 534 <green>255</green>
769 <blue>255</blue> 535 <blue>255</blue>
770 </color> 536 </color>
771 <color> 537 <color>
772 <red>0</red> 538 <red>238</red>
773 <green>170</green> 539 <green>238</green>
774 <blue>0</blue> 540 <blue>230</blue>
775 </color> 541 </color>
776 <color> 542 <color>
777 <red>0</red> 543 <red>0</red>
778 <green>0</green> 544 <green>0</green>
779 <blue>0</blue> 545 <blue>0</blue>
780 </color> 546 </color>
781 <color> 547 <color>
548 <red>255</red>
549 <green>221</green>
550 <blue>118</blue>
551 </color>
552 <color>
782 <red>0</red> 553 <red>0</red>
783 <green>0</green> 554 <green>0</green>
784 <blue>0</blue> 555 <blue>0</blue>
785 </color> 556 </color>
786 <color>
787 <red>255</red>
788 <green>255</green>
789 <blue>255</blue>
790 </color>
791 </disabled> 557 </disabled>
792 <inactive> 558 <inactive>
793 <color> 559 <color>
794 <red>0</red> 560 <red>0</red>
795 <green>0</green> 561 <green>0</green>
796 <blue>0</blue> 562 <blue>0</blue>
797 </color> 563 </color>
798 <color> 564 <color>
799 <red>192</red> 565 <red>170</red>
800 <green>192</green> 566 <green>255</green>
801 <blue>192</blue> 567 <blue>0</blue>
802 </color> 568 </color>
803 <color> 569 <color>
804 <red>255</red> 570 <red>212</red>
805 <green>255</green> 571 <green>255</green>
806 <blue>255</blue> 572 <blue>127</blue>
807 </color> 573 </color>
808 <color> 574 <color>
809 <red>220</red> 575 <red>183</red>
810 <green>220</green> 576 <green>255</green>
811 <blue>220</blue> 577 <blue>38</blue>
812 </color> 578 </color>
813 <color> 579 <color>
814 <red>96</red> 580 <red>85</red>
815 <green>96</green> 581 <green>127</green>
816 <blue>96</blue> 582 <blue>0</blue>
817 </color> 583 </color>
818 <color> 584 <color>
819 <red>128</red> 585 <red>113</red>
820 <green>128</green> 586 <green>170</green>
821 <blue>128</blue> 587 <blue>0</blue>
822 </color> 588 </color>
823 <color> 589 <color>
824 <red>0</red> 590 <red>0</red>
825 <green>0</green> 591 <green>0</green>
826 <blue>0</blue> 592 <blue>0</blue>
827 </color> 593 </color>
828 <color> 594 <color>
829 <red>255</red> 595 <red>255</red>
830 <green>255</green> 596 <green>255</green>
831 <blue>255</blue> 597 <blue>255</blue>
832 </color> 598 </color>
833 <color> 599 <color>
834 <red>0</red> 600 <red>0</red>
835 <green>0</green> 601 <green>0</green>
836 <blue>0</blue> 602 <blue>0</blue>
837 </color> 603 </color>
838 <color> 604 <color>
839 <red>255</red> 605 <red>255</red>
840 <green>255</green> 606 <green>255</green>
841 <blue>255</blue> 607 <blue>255</blue>
842 </color> 608 </color>
843 <color> 609 <color>
844 <red>0</red> 610 <red>238</red>
845 <green>170</green> 611 <green>238</green>
846 <blue>0</blue> 612 <blue>230</blue>
847 </color> 613 </color>
848 <color> 614 <color>
849 <red>0</red> 615 <red>0</red>
850 <green>0</green> 616 <green>0</green>
851 <blue>0</blue> 617 <blue>0</blue>
852 </color> 618 </color>
853 <color> 619 <color>
620 <red>255</red>
621 <green>221</green>
622 <blue>118</blue>
623 </color>
624 <color>
854 <red>0</red> 625 <red>0</red>
855 <green>0</green> 626 <green>0</green>
856 <blue>0</blue> 627 <blue>0</blue>
857 </color> 628 </color>
858 <color>
859 <red>255</red>
860 <green>255</green>
861 <blue>255</blue>
862 </color>
863 </inactive> 629 </inactive>
864 </palette> 630 </palette>
865 </property> 631 </property>
866 <property stdset="1"> 632 <property stdset="1">
867 <name>frameShape</name> 633 <name>text</name>
868 <enum>Box</enum> 634 <string>OK</string>
635 </property>
636 </widget>
637 <widget row="3" column="0" >
638 <class>QPushButton</class>
639 <property stdset="1">
640 <name>name</name>
641 <cstring>button_4</cstring>
869 </property> 642 </property>
870 <property stdset="1"> 643 <property stdset="1">
871 <name>frameShadow</name> 644 <name>sizePolicy</name>
872 <enum>Raised</enum> 645 <sizepolicy>
646 <hsizetype>7</hsizetype>
647 <vsizetype>7</vsizetype>
648 </sizepolicy>
873 </property> 649 </property>
874 <property stdset="1"> 650 <property stdset="1">
875 <name>text</name> 651 <name>text</name>
876 <string>Enter</string> 652 <string>4</string>
877 </property> 653 </property>
654 </widget>
655 <widget row="2" column="1" >
656 <class>QPushButton</class>
878 <property stdset="1"> 657 <property stdset="1">
879 <name>alignment</name> 658 <name>name</name>
880 <set>AlignCenter</set> 659 <cstring>button_2</cstring>
881 </property> 660 </property>
882 <property> 661 <property stdset="1">
883 <name>hAlign</name> 662 <name>sizePolicy</name>
663 <sizepolicy>
664 <hsizetype>7</hsizetype>
665 <vsizetype>7</vsizetype>
666 </sizepolicy>
667 </property>
668 <property stdset="1">
669 <name>text</name>
670 <string>2</string>
671 </property>
672 </widget>
673 <widget row="3" column="1" >
674 <class>QPushButton</class>
675 <property stdset="1">
676 <name>name</name>
677 <cstring>button_5</cstring>
678 </property>
679 <property stdset="1">
680 <name>sizePolicy</name>
681 <sizepolicy>
682 <hsizetype>7</hsizetype>
683 <vsizetype>7</vsizetype>
684 </sizepolicy>
685 </property>
686 <property stdset="1">
687 <name>text</name>
688 <string>5</string>
689 </property>
690 </widget>
691 <widget row="4" column="1" >
692 <class>QPushButton</class>
693 <property stdset="1">
694 <name>name</name>
695 <cstring>button_8</cstring>
696 </property>
697 <property stdset="1">
698 <name>sizePolicy</name>
699 <sizepolicy>
700 <hsizetype>7</hsizetype>
701 <vsizetype>7</vsizetype>
702 </sizepolicy>
703 </property>
704 <property stdset="1">
705 <name>text</name>
706 <string>8</string>
884 </property> 707 </property>
885 </widget> 708 </widget>
886 <widget row="5" column="1" > 709 <widget row="5" column="1" >
887 <class>QLabel</class> 710 <class>QPushButton</class>
888 <property stdset="1"> 711 <property stdset="1">
889 <name>name</name> 712 <name>name</name>
890 <cstring>button_Skip</cstring> 713 <cstring>button_Skip</cstring>
891 </property> 714 </property>
892 <property stdset="1"> 715 <property stdset="1">
893 <name>sizePolicy</name> 716 <name>sizePolicy</name>
894 <sizepolicy> 717 <sizepolicy>
895 <hsizetype>5</hsizetype> 718 <hsizetype>7</hsizetype>
896 <vsizetype>5</vsizetype> 719 <vsizetype>7</vsizetype>
897 </sizepolicy> 720 </sizepolicy>
898 </property> 721 </property>
899 <property stdset="1"> 722 <property stdset="1">
900 <name>palette</name> 723 <name>palette</name>
901 <palette> 724 <palette>
902 <active> 725 <active>
903 <color> 726 <color>
904 <red>0</red> 727 <red>0</red>
905 <green>0</green> 728 <green>0</green>
906 <blue>0</blue> 729 <blue>0</blue>
907 </color> 730 </color>
908 <color> 731 <color>
909 <red>192</red> 732 <red>255</red>
910 <green>192</green> 733 <green>255</green>
911 <blue>192</blue> 734 <blue>127</blue>
912 </color> 735 </color>
913 <color> 736 <color>
914 <red>255</red> 737 <red>255</red>
915 <green>255</green> 738 <green>255</green>
916 <blue>255</blue> 739 <blue>254</blue>
917 </color> 740 </color>
918 <color> 741 <color>
919 <red>223</red> 742 <red>255</red>
920 <green>223</green> 743 <green>255</green>
921 <blue>223</blue> 744 <blue>190</blue>
922 </color> 745 </color>
923 <color> 746 <color>
924 <red>96</red> 747 <red>127</red>
925 <green>96</green> 748 <green>127</green>
926 <blue>96</blue> 749 <blue>63</blue>
927 </color> 750 </color>
928 <color> 751 <color>
929 <red>128</red> 752 <red>170</red>
930 <green>128</green> 753 <green>170</green>
931 <blue>128</blue> 754 <blue>85</blue>
932 </color> 755 </color>
933 <color> 756 <color>
934 <red>0</red> 757 <red>0</red>
935 <green>0</green> 758 <green>0</green>
936 <blue>0</blue> 759 <blue>0</blue>
937 </color> 760 </color>
938 <color> 761 <color>
939 <red>255</red> 762 <red>255</red>
940 <green>255</green> 763 <green>255</green>
941 <blue>255</blue> 764 <blue>255</blue>
942 </color> 765 </color>
943 <color> 766 <color>
944 <red>0</red> 767 <red>0</red>
945 <green>0</green> 768 <green>0</green>
946 <blue>0</blue> 769 <blue>0</blue>
947 </color> 770 </color>
948 <color> 771 <color>
949 <red>255</red> 772 <red>255</red>
950 <green>255</green> 773 <green>255</green>
951 <blue>255</blue> 774 <blue>255</blue>
952 </color> 775 </color>
953 <color> 776 <color>
954 <red>255</red> 777 <red>238</red>
955 <green>255</green> 778 <green>238</green>
956 <blue>127</blue> 779 <blue>230</blue>
957 </color> 780 </color>
958 <color> 781 <color>
959 <red>0</red> 782 <red>0</red>
960 <green>0</green> 783 <green>0</green>
961 <blue>0</blue> 784 <blue>0</blue>
962 </color> 785 </color>
963 <color> 786 <color>
787 <red>255</red>
788 <green>221</green>
789 <blue>118</blue>
790 </color>
791 <color>
964 <red>0</red> 792 <red>0</red>
965 <green>0</green> 793 <green>0</green>
966 <blue>0</blue> 794 <blue>0</blue>
967 </color> 795 </color>
968 <color>
969 <red>255</red>
970 <green>255</green>
971 <blue>255</blue>
972 </color>
973 </active> 796 </active>
974 <disabled> 797 <disabled>
975 <color> 798 <color>
976 <red>128</red> 799 <red>128</red>
977 <green>128</green> 800 <green>128</green>
978 <blue>128</blue> 801 <blue>128</blue>
979 </color> 802 </color>
980 <color> 803 <color>
981 <red>192</red> 804 <red>255</red>
982 <green>192</green> 805 <green>255</green>
983 <blue>192</blue> 806 <blue>127</blue>
984 </color> 807 </color>
985 <color> 808 <color>
986 <red>255</red> 809 <red>255</red>
987 <green>255</green> 810 <green>255</green>
988 <blue>255</blue> 811 <blue>254</blue>
989 </color> 812 </color>
990 <color> 813 <color>
991 <red>220</red> 814 <red>255</red>
992 <green>220</green> 815 <green>255</green>
993 <blue>220</blue> 816 <blue>165</blue>
994 </color> 817 </color>
995 <color> 818 <color>
996 <red>96</red> 819 <red>127</red>
997 <green>96</green> 820 <green>127</green>
998 <blue>96</blue> 821 <blue>63</blue>
999 </color> 822 </color>
1000 <color> 823 <color>
1001 <red>128</red> 824 <red>170</red>
1002 <green>128</green> 825 <green>170</green>
1003 <blue>128</blue> 826 <blue>85</blue>
1004 </color> 827 </color>
1005 <color> 828 <color>
1006 <red>0</red> 829 <red>0</red>
1007 <green>0</green> 830 <green>0</green>
1008 <blue>0</blue> 831 <blue>0</blue>
1009 </color> 832 </color>
1010 <color> 833 <color>
1011 <red>255</red> 834 <red>255</red>
1012 <green>255</green> 835 <green>255</green>
1013 <blue>255</blue> 836 <blue>255</blue>
1014 </color> 837 </color>
1015 <color> 838 <color>
1016 <red>128</red> 839 <red>128</red>
1017 <green>128</green> 840 <green>128</green>
1018 <blue>128</blue> 841 <blue>128</blue>
1019 </color> 842 </color>
1020 <color> 843 <color>
1021 <red>255</red> 844 <red>255</red>
1022 <green>255</green> 845 <green>255</green>
1023 <blue>255</blue> 846 <blue>255</blue>
1024 </color> 847 </color>
1025 <color> 848 <color>
1026 <red>255</red> 849 <red>238</red>
1027 <green>255</green> 850 <green>238</green>
1028 <blue>127</blue> 851 <blue>230</blue>
1029 </color> 852 </color>
1030 <color> 853 <color>
1031 <red>0</red> 854 <red>0</red>
1032 <green>0</green> 855 <green>0</green>
1033 <blue>0</blue> 856 <blue>0</blue>
1034 </color> 857 </color>
1035 <color> 858 <color>
859 <red>255</red>
860 <green>221</green>
861 <blue>118</blue>
862 </color>
863 <color>
1036 <red>0</red> 864 <red>0</red>
1037 <green>0</green> 865 <green>0</green>
1038 <blue>0</blue> 866 <blue>0</blue>
1039 </color> 867 </color>
1040 <color>
1041 <red>255</red>
1042 <green>255</green>
1043 <blue>255</blue>
1044 </color>
1045 </disabled> 868 </disabled>
1046 <inactive> 869 <inactive>
1047 <color> 870 <color>
1048 <red>0</red> 871 <red>0</red>
1049 <green>0</green> 872 <green>0</green>
1050 <blue>0</blue> 873 <blue>0</blue>
1051 </color> 874 </color>
1052 <color> 875 <color>
1053 <red>192</red> 876 <red>255</red>
1054 <green>192</green> 877 <green>255</green>
1055 <blue>192</blue> 878 <blue>127</blue>
1056 </color> 879 </color>
1057 <color> 880 <color>
1058 <red>255</red> 881 <red>255</red>
1059 <green>255</green> 882 <green>255</green>
1060 <blue>255</blue> 883 <blue>254</blue>
1061 </color> 884 </color>
1062 <color> 885 <color>
1063 <red>220</red> 886 <red>255</red>
1064 <green>220</green> 887 <green>255</green>
1065 <blue>220</blue> 888 <blue>165</blue>
1066 </color> 889 </color>
1067 <color> 890 <color>
1068 <red>96</red> 891 <red>127</red>
1069 <green>96</green> 892 <green>127</green>
1070 <blue>96</blue> 893 <blue>63</blue>
1071 </color> 894 </color>
1072 <color> 895 <color>
1073 <red>128</red> 896 <red>170</red>
1074 <green>128</green> 897 <green>170</green>
1075 <blue>128</blue> 898 <blue>85</blue>
1076 </color> 899 </color>
1077 <color> 900 <color>
1078 <red>0</red> 901 <red>0</red>
1079 <green>0</green> 902 <green>0</green>
1080 <blue>0</blue> 903 <blue>0</blue>
1081 </color> 904 </color>
1082 <color> 905 <color>
1083 <red>255</red> 906 <red>255</red>
1084 <green>255</green> 907 <green>255</green>
1085 <blue>255</blue> 908 <blue>255</blue>
1086 </color> 909 </color>
1087 <color> 910 <color>
1088 <red>0</red> 911 <red>0</red>
1089 <green>0</green> 912 <green>0</green>
1090 <blue>0</blue> 913 <blue>0</blue>
1091 </color> 914 </color>
1092 <color> 915 <color>
1093 <red>255</red> 916 <red>255</red>
1094 <green>255</green> 917 <green>255</green>
1095 <blue>255</blue> 918 <blue>255</blue>
1096 </color> 919 </color>
1097 <color> 920 <color>
1098 <red>255</red> 921 <red>238</red>
1099 <green>255</green> 922 <green>238</green>
1100 <blue>127</blue> 923 <blue>230</blue>
1101 </color> 924 </color>
1102 <color> 925 <color>
1103 <red>0</red> 926 <red>0</red>
1104 <green>0</green> 927 <green>0</green>
1105 <blue>0</blue> 928 <blue>0</blue>
1106 </color> 929 </color>
1107 <color> 930 <color>
931 <red>255</red>
932 <green>221</green>
933 <blue>118</blue>
934 </color>
935 <color>
1108 <red>0</red> 936 <red>0</red>
1109 <green>0</green> 937 <green>0</green>
1110 <blue>0</blue> 938 <blue>0</blue>
1111 </color> 939 </color>
1112 <color>
1113 <red>255</red>
1114 <green>255</green>
1115 <blue>255</blue>
1116 </color>
1117 </inactive> 940 </inactive>
1118 </palette> 941 </palette>
1119 </property> 942 </property>
1120 <property stdset="1"> 943 <property stdset="1">
1121 <name>frameShape</name>
1122 <enum>Box</enum>
1123 </property>
1124 <property stdset="1">
1125 <name>frameShadow</name>
1126 <enum>Raised</enum>
1127 </property>
1128 <property stdset="1">
1129 <name>text</name> 944 <name>text</name>
1130 <string>Skip</string> 945 <string>Skip</string>
1131 </property> 946 </property>
1132 <property stdset="1"> 947 <property stdset="1">
1133 <name>alignment</name> 948 <name>autoResize</name>
1134 <set>AlignCenter</set> 949 <bool>false</bool>
1135 </property>
1136 <property>
1137 <name>hAlign</name>
1138 </property> 950 </property>
1139 </widget> 951 </widget>
1140 </grid> 952 </grid>
1141</widget> 953</widget>
954<customwidgets>
955 <customwidget>
956 <class>QWidget</class>
957 <header location="global">qwidget.h</header>
958 <sizehint>
959 <width>-1</width>
960 <height>-1</height>
961 </sizehint>
962 <container>0</container>
963 <sizepolicy>
964 <hordata>5</hordata>
965 <verdata>5</verdata>
966 </sizepolicy>
967 <pixmap>image0</pixmap>
968 </customwidget>
969</customwidgets>
970<images>
971 <image>
972 <name>image0</name>
973 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
974 </image>
975</images>
976<tabstops>
977 <tabstop>display</tabstop>
978 <tabstop>button_1</tabstop>
979 <tabstop>button_2</tabstop>
980 <tabstop>button_3</tabstop>
981 <tabstop>button_4</tabstop>
982 <tabstop>button_5</tabstop>
983 <tabstop>button_6</tabstop>
984 <tabstop>button_7</tabstop>
985 <tabstop>button_8</tabstop>
986 <tabstop>button_9</tabstop>
987 <tabstop>button_0</tabstop>
988 <tabstop>button_Skip</tabstop>
989 <tabstop>button_OK</tabstop>
990</tabstops>
1142</UI> 991</UI>