-rw-r--r-- | noncore/securityplugins/pin/pin.cpp | 67 | ||||
-rw-r--r-- | noncore/securityplugins/pin/pinDialogBase.ui | 775 |
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,328 +1,369 @@ | |||
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 | ||
41 | extern "C" char *crypt(const char *key, const char *salt); | 41 | extern "C" char *crypt(const char *key, const char *salt); |
42 | 42 | ||
43 | using Opie::Security::MultiauthConfigWidget; | 43 | using Opie::Security::MultiauthConfigWidget; |
44 | using Opie::Security::MultiauthPluginObject; | 44 | using 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 |
47 | static bool isSkip = FALSE; | 47 | static 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 | */ |
56 | class PinDialog : public PinDialogBase | 56 | class 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 | ||
67 | signals: | 67 | signals: |
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 |
84 | PinDialog::PinDialog( QWidget* parent, const char* name, WFlags fl ) | 90 | PinDialog::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 |
113 | PinDialog::~PinDialog() | 132 | PinDialog::~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 |
119 | bool PinDialog::eventFilter( QObject*o, QEvent*e ) | 138 | bool 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 | ||
153 | void PinDialog::slotInput() | ||
154 | { | ||
155 | QPushButton *l = (QPushButton*)sender(); | ||
156 | input(l->text().stripWhiteSpace()); | ||
157 | } | ||
158 | |||
159 | void PinDialog::slotSkip() | ||
160 | { | ||
161 | isSkip = TRUE; | ||
162 | emit skip(); | ||
163 | } | ||
164 | |||
165 | void PinDialog::slotOK() | ||
166 | { | ||
167 | emit passwordEntered( text ); | ||
168 | } | ||
169 | |||
170 | void PinDialog::slotBackspace() | ||
171 | { | ||
172 | if(text.length() > 0) { | ||
173 | text.truncate( text.length() - 1 ); | ||
174 | display->setText( text ); | ||
175 | } | ||
176 | } | ||
177 | |||
137 | void PinDialog::input( QString c ) | 178 | void PinDialog::input( QString c ) |
138 | { | 179 | { |
139 | text += c; | 180 | text += c; |
140 | display->setText( text ); | 181 | display->setText( text ); |
141 | } | 182 | } |
142 | 183 | ||
143 | void PinDialog::setPrompt( const QString& s ) | 184 | void PinDialog::setPrompt( const QString& s ) |
144 | { | 185 | { |
145 | prompt->setText( s ); | 186 | prompt->setText( s ); |
146 | } | 187 | } |
147 | 188 | ||
148 | void PinDialog::clear() | 189 | void 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 | */ |
159 | class PinDlg : public QDialog | 200 | class 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() |
201 | QString PinPlugin::encrypt(const QString& pin) | 242 | QString 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 | */ |
221 | bool PinPlugin::verify(const QString& pin, const QString& hash) | 262 | bool 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 | */ |
233 | QString PinPlugin::getPIN( const QString& prompt ) | 274 | QString PinPlugin::getPIN( const QString& prompt ) |
234 | { | 275 | { |
235 | PinDlg pd(0,0,TRUE); | 276 | PinDlg pd(0,0,TRUE); |
236 | pd.pinD->setPrompt( prompt ); | 277 | pd.pinD->setPrompt( prompt ); |
237 | 278 | ||
238 | pd.showMaximized(); | 279 | pd.showMaximized(); |
239 | int r = pd.exec(); | 280 | int r = pd.exec(); |
240 | 281 | ||
241 | if ( r == QDialog::Accepted ) { | 282 | if ( r == QDialog::Accepted ) { |
242 | if (pd.pinD->text.isEmpty()) | 283 | if (pd.pinD->text.isEmpty()) |
243 | return ""; | 284 | return ""; |
244 | else | 285 | else |
245 | return pd.pinD->text; | 286 | return pd.pinD->text; |
246 | } | 287 | } |
247 | else | 288 | else |
248 | return QString::null; | 289 | return QString::null; |
249 | } | 290 | } |
250 | 291 | ||
251 | /// Displays the PIN dialog and returns a hash of the typed in PIN | 292 | /// Displays the PIN dialog and returns a hash of the typed in PIN |
252 | /** | 293 | /** |
253 | * \return the hashed ( =one-way encrypted) PIN typed in by the user | 294 | * \return the hashed ( =one-way encrypted) PIN typed in by the user |
254 | * \param prompt the prompt to display in the PinDialog | 295 | * \param prompt the prompt to display in the PinDialog |
255 | */ | 296 | */ |
256 | QString PinPlugin::getCryptedPIN( const QString& prompt ) | 297 | QString PinPlugin::getCryptedPIN( const QString& prompt ) |
257 | { | 298 | { |
258 | return encrypt(getPIN(prompt)); | 299 | return encrypt(getPIN(prompt)); |
259 | } | 300 | } |
260 | 301 | ||
261 | /// Displays the PIN dialog, asks 2 times for a new PIN, saves it if entered two times | 302 | /// Displays the PIN dialog, asks 2 times for a new PIN, saves it if entered two times |
262 | /** | 303 | /** |
263 | * writes nothing if we enter nothing the first time | 304 | * writes nothing if we enter nothing the first time |
264 | */ | 305 | */ |
265 | void PinPlugin::changePIN() | 306 | void PinPlugin::changePIN() |
266 | { | 307 | { |
267 | QString new1, new2; | 308 | QString new1, new2; |
268 | do { | 309 | do { |
269 | new1 = getPIN(QObject::tr("Enter new PIN")); | 310 | new1 = getPIN(QObject::tr("Enter new PIN")); |
270 | if ( new1.isNull() ) | 311 | if ( new1.isNull() ) |
271 | return; | 312 | return; |
272 | new2 = getPIN(QObject::tr("Re-enter new PIN")); | 313 | new2 = getPIN(QObject::tr("Re-enter new PIN")); |
273 | } while (new1 != new2); | 314 | } while (new1 != new2); |
274 | 315 | ||
275 | odebug << "writing new PIN hash in Security.conf" << oendl; | 316 | odebug << "writing new PIN hash in Security.conf" << oendl; |
276 | Config cfg("Security"); | 317 | Config cfg("Security"); |
277 | cfg.setGroup("PinPlugin"); | 318 | cfg.setGroup("PinPlugin"); |
278 | cfg.writeEntry("hashedPIN", encrypt(new1)); | 319 | cfg.writeEntry("hashedPIN", encrypt(new1)); |
279 | } | 320 | } |
280 | 321 | ||
281 | /// Removes the PIN hashed value in the config file | 322 | /// Removes the PIN hashed value in the config file |
282 | void PinPlugin::clearPIN() | 323 | void PinPlugin::clearPIN() |
283 | { | 324 | { |
284 | Config cfg("Security"); | 325 | Config cfg("Security"); |
285 | cfg.setGroup("PinPlugin"); | 326 | cfg.setGroup("PinPlugin"); |
286 | cfg.removeEntry("hashedPIN"); | 327 | cfg.removeEntry("hashedPIN"); |
287 | } | 328 | } |
288 | 329 | ||
289 | /// Prompt, fullscreen, for the user's PIN and compare it to the stored one. | 330 | /// Prompt, fullscreen, for the user's PIN and compare it to the stored one. |
290 | /** | 331 | /** |
291 | * \return the result code, as a MultiauthPluginObject::authResult object | 332 | * \return the result code, as a MultiauthPluginObject::authResult object |
292 | */ | 333 | */ |
293 | int PinPlugin::authenticate() | 334 | int PinPlugin::authenticate() |
294 | { | 335 | { |
295 | // reset skip (if we ran Pin two times in a row, skipping the first time, it must be put to 0 again) | 336 | // reset skip (if we ran Pin two times in a row, skipping the first time, it must be put to 0 again) |
296 | isSkip = FALSE; | 337 | isSkip = FALSE; |
297 | // fetch value in config | 338 | // fetch value in config |
298 | Config cfg("Security"); | 339 | Config cfg("Security"); |
299 | cfg.setGroup("PinPlugin"); | 340 | cfg.setGroup("PinPlugin"); |
300 | QString hashedPin = cfg.readEntry("hashedPIN"); | 341 | QString hashedPin = cfg.readEntry("hashedPIN"); |
301 | if (!hashedPin.isEmpty()) | 342 | if (!hashedPin.isEmpty()) |
302 | { | 343 | { |
303 | // prompt for the PIN in a fullscreen modal dialog | 344 | // prompt for the PIN in a fullscreen modal dialog |
304 | PinDlg pd(0,0,TRUE,TRUE); | 345 | PinDlg pd(0,0,TRUE,TRUE); |
305 | pd.reset(); | 346 | pd.reset(); |
306 | pd.exec(); | 347 | pd.exec(); |
307 | 348 | ||
308 | // analyse the result | 349 | // analyse the result |
309 | if (isSkip == TRUE) | 350 | if (isSkip == TRUE) |
310 | return MultiauthPluginObject::Skip; | 351 | return MultiauthPluginObject::Skip; |
311 | else if (verify(pd.pinD->text, hashedPin)) | 352 | else if (verify(pd.pinD->text, hashedPin)) |
312 | return MultiauthPluginObject::Success; | 353 | return MultiauthPluginObject::Success; |
313 | else | 354 | else |
314 | return MultiauthPluginObject::Failure; | 355 | return MultiauthPluginObject::Failure; |
315 | } | 356 | } |
316 | owarn << "No PIN has been defined! We consider it as a successful authentication though." << oendl; | 357 | owarn << "No PIN has been defined! We consider it as a successful authentication though." << oendl; |
317 | return MultiauthPluginObject::Success; | 358 | return MultiauthPluginObject::Success; |
318 | } | 359 | } |
319 | 360 | ||
320 | /// Standard c'tor | 361 | /// Standard c'tor |
321 | PinPlugin::PinPlugin() : MultiauthPluginObject(), m_pinW(0) { | 362 | PinPlugin::PinPlugin() : MultiauthPluginObject(), m_pinW(0) { |
322 | } | 363 | } |
323 | 364 | ||
324 | /// deletes m_pinW if we need to | 365 | /// deletes m_pinW if we need to |
325 | PinPlugin::~PinPlugin() { | 366 | PinPlugin::~PinPlugin() { |
326 | if (m_pinW != 0) | 367 | if (m_pinW != 0) |
327 | delete m_pinW; | 368 | delete m_pinW; |
328 | } | 369 | } |
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,1142 +1,991 @@ | |||
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> |
197 | <blue>137</blue> | 239 | <blue>137</blue> |
198 | </color> | 240 | </color> |
199 | <color> | 241 | <color> |
200 | <red>255</red> | 242 | <red>255</red> |
201 | <green>255</green> | 243 | <green>255</green> |
202 | <blue>255</blue> | 244 | <blue>255</blue> |
203 | </color> | 245 | </color> |
204 | </active> | 246 | </active> |
205 | <disabled> | 247 | <disabled> |
206 | <color> | 248 | <color> |
207 | <red>128</red> | 249 | <red>128</red> |
208 | <green>128</green> | 250 | <green>128</green> |
209 | <blue>128</blue> | 251 | <blue>128</blue> |
210 | </color> | 252 | </color> |
211 | <color> | 253 | <color> |
212 | <red>228</red> | 254 | <red>228</red> |
213 | <green>228</green> | 255 | <green>228</green> |
214 | <blue>228</blue> | 256 | <blue>228</blue> |
215 | </color> | 257 | </color> |
216 | <color> | 258 | <color> |
217 | <red>255</red> | 259 | <red>255</red> |
218 | <green>255</green> | 260 | <green>255</green> |
219 | <blue>255</blue> | 261 | <blue>255</blue> |
220 | </color> | 262 | </color> |
221 | <color> | 263 | <color> |
222 | <red>255</red> | 264 | <red>255</red> |
223 | <green>255</green> | 265 | <green>255</green> |
224 | <blue>255</blue> | 266 | <blue>255</blue> |
225 | </color> | 267 | </color> |
226 | <color> | 268 | <color> |
227 | <red>114</red> | 269 | <red>114</red> |
228 | <green>114</green> | 270 | <green>114</green> |
229 | <blue>114</blue> | 271 | <blue>114</blue> |
230 | </color> | 272 | </color> |
231 | <color> | 273 | <color> |
232 | <red>152</red> | 274 | <red>152</red> |
233 | <green>152</green> | 275 | <green>152</green> |
234 | <blue>152</blue> | 276 | <blue>152</blue> |
235 | </color> | 277 | </color> |
236 | <color> | 278 | <color> |
237 | <red>0</red> | 279 | <red>0</red> |
238 | <green>0</green> | 280 | <green>0</green> |
239 | <blue>0</blue> | 281 | <blue>0</blue> |
240 | </color> | 282 | </color> |
241 | <color> | 283 | <color> |
242 | <red>255</red> | 284 | <red>255</red> |
243 | <green>255</green> | 285 | <green>255</green> |
244 | <blue>255</blue> | 286 | <blue>255</blue> |
245 | </color> | 287 | </color> |
246 | <color> | 288 | <color> |
247 | <red>0</red> | 289 | <red>0</red> |
248 | <green>0</green> | 290 | <green>0</green> |
249 | <blue>0</blue> | 291 | <blue>0</blue> |
250 | </color> | 292 | </color> |
251 | <color> | 293 | <color> |
252 | <red>255</red> | 294 | <red>255</red> |
253 | <green>255</green> | 295 | <green>255</green> |
254 | <blue>255</blue> | 296 | <blue>255</blue> |
255 | </color> | 297 | </color> |
256 | <color> | 298 | <color> |
257 | <red>220</red> | 299 | <red>220</red> |
258 | <green>220</green> | 300 | <green>220</green> |
259 | <blue>220</blue> | 301 | <blue>220</blue> |
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> |