-rw-r--r-- | library/password.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/library/password.cpp b/library/password.cpp index 3be6efe..41b3358 100644 --- a/library/password.cpp +++ b/library/password.cpp | |||
@@ -1,170 +1,182 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #include "password.h" | 20 | #include "password.h" |
21 | #include "config.h" | 21 | #include "config.h" |
22 | #include "global.h" | 22 | #include "global.h" |
23 | #include "backend/contact.h" | 23 | #include "backend/contact.h" |
24 | #include <qlabel.h> | 24 | #include <qlabel.h> |
25 | #include <qlineedit.h> | 25 | #include <qlineedit.h> |
26 | #include <qtextview.h> | 26 | #include <qtextview.h> |
27 | #include <qstring.h> | 27 | #include <qstring.h> |
28 | #include <qapplication.h> | 28 | #include <qapplication.h> |
29 | #include <qfile.h> | 29 | #include <qfile.h> |
30 | #ifdef QWS | ||
30 | #include <qwindowsystem_qws.h> | 31 | #include <qwindowsystem_qws.h> |
32 | #endif | ||
31 | 33 | ||
32 | #include <qdialog.h> | 34 | #include <qdialog.h> |
33 | 35 | ||
34 | #include <unistd.h> //for sleep | 36 | #include <unistd.h> //for sleep |
35 | #include "passwordbase_p.h" | 37 | #include "passwordbase_p.h" |
36 | 38 | ||
37 | class PasswordDialog : public PasswordBase | 39 | class PasswordDialog : public PasswordBase |
38 | { | 40 | { |
39 | Q_OBJECT | 41 | Q_OBJECT |
40 | 42 | ||
41 | public: | 43 | public: |
42 | PasswordDialog( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); | 44 | PasswordDialog( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); |
43 | ~PasswordDialog(); | 45 | ~PasswordDialog(); |
44 | 46 | ||
45 | void clear(); | 47 | void clear(); |
46 | void setPrompt( const QString& ); | 48 | void setPrompt( const QString& ); |
47 | 49 | ||
48 | signals: | 50 | signals: |
49 | void passwordEntered( const QString& ); | 51 | void passwordEntered( const QString& ); |
50 | 52 | ||
51 | protected: | 53 | protected: |
52 | bool eventFilter( QObject*, QEvent* ); | 54 | bool eventFilter( QObject*, QEvent* ); |
53 | void keyPressEvent( QKeyEvent * ); | 55 | void keyPressEvent( QKeyEvent * ); |
54 | 56 | ||
55 | private: | 57 | private: |
56 | void input( QString ); | 58 | void input( QString ); |
57 | friend class Password; | 59 | friend class Password; |
58 | QString text; | 60 | QString text; |
59 | }; | 61 | }; |
60 | 62 | ||
61 | 63 | ||
62 | extern "C" char *crypt(const char *key, const char *salt); | 64 | extern "C" char *crypt(const char *key, const char *salt); |
63 | static QString qcrypt(const QString& k, const char *salt) | 65 | static QString qcrypt(const QString& k, const char *salt) |
64 | { | 66 | { |
65 | return QString::fromUtf8(crypt(k.utf8(),salt)); | 67 | return QString::fromUtf8(crypt(k.utf8(),salt)); |
66 | } | 68 | } |
67 | 69 | ||
68 | /* | 70 | /* |
69 | * Constructs a PasswordDialog which is a child of 'parent', with the | 71 | * Constructs a PasswordDialog which is a child of 'parent', with the |
70 | * name 'name' and widget flags set to 'f' | 72 | * name 'name' and widget flags set to 'f' |
71 | */ | 73 | */ |
72 | PasswordDialog::PasswordDialog( QWidget* parent, const char* name, WFlags fl ) | 74 | PasswordDialog::PasswordDialog( QWidget* parent, const char* name, WFlags fl ) |
73 | : PasswordBase( parent, name, fl ) | 75 | : PasswordBase( parent, name, fl ) |
74 | { | 76 | { |
77 | QRect desk = qApp->desktop()->geometry(); | ||
78 | |||
79 | if ( desk.width() < 220 ) { | ||
80 | QFont f( font() ); | ||
81 | f.setPointSize( 18 ); | ||
82 | setFont( f ); | ||
83 | f.setPointSize( 12 ); | ||
84 | prompt->setFont( f ); | ||
85 | } | ||
86 | |||
75 | button_0->installEventFilter( this ); | 87 | button_0->installEventFilter( this ); |
76 | button_1->installEventFilter( this ); | 88 | button_1->installEventFilter( this ); |
77 | button_2->installEventFilter( this ); | 89 | button_2->installEventFilter( this ); |
78 | button_3->installEventFilter( this ); | 90 | button_3->installEventFilter( this ); |
79 | button_4->installEventFilter( this ); | 91 | button_4->installEventFilter( this ); |
80 | button_5->installEventFilter( this ); | 92 | button_5->installEventFilter( this ); |
81 | button_6->installEventFilter( this ); | 93 | button_6->installEventFilter( this ); |
82 | button_7->installEventFilter( this ); | 94 | button_7->installEventFilter( this ); |
83 | button_8->installEventFilter( this ); | 95 | button_8->installEventFilter( this ); |
84 | button_9->installEventFilter( this ); | 96 | button_9->installEventFilter( this ); |
85 | button_OK->installEventFilter( this ); | 97 | button_OK->installEventFilter( this ); |
86 | setFocus(); | 98 | setFocus(); |
87 | } | 99 | } |
88 | 100 | ||
89 | /* | 101 | /* |
90 | * Destroys the object and frees any allocated resources | 102 | * Destroys the object and frees any allocated resources |
91 | */ | 103 | */ |
92 | PasswordDialog::~PasswordDialog() | 104 | PasswordDialog::~PasswordDialog() |
93 | { | 105 | { |
94 | // no need to delete child widgets, Qt does it all for us | 106 | // no need to delete child widgets, Qt does it all for us |
95 | } | 107 | } |
96 | 108 | ||
97 | 109 | ||
98 | 110 | ||
99 | /*! | 111 | /*! |
100 | \reimp | 112 | \reimp |
101 | */ | 113 | */ |
102 | 114 | ||
103 | bool PasswordDialog::eventFilter( QObject*o, QEvent*e ) | 115 | bool PasswordDialog::eventFilter( QObject*o, QEvent*e ) |
104 | { | 116 | { |
105 | if ( e->type() == QEvent::MouseButtonRelease ) { | 117 | if ( e->type() == QEvent::MouseButtonRelease ) { |
106 | if ( o == button_OK ) { | 118 | if ( o == button_OK ) { |
107 | emit passwordEntered( text ); | 119 | emit passwordEntered( text ); |
108 | } else { | 120 | } else { |
109 | QLabel *l = (QLabel*)o; | 121 | QLabel *l = (QLabel*)o; |
110 | input(l->text()); | 122 | input(l->text()); |
111 | } | 123 | } |
112 | } | 124 | } |
113 | return FALSE; | 125 | return FALSE; |
114 | } | 126 | } |
115 | 127 | ||
116 | 128 | ||
117 | /*! | 129 | /*! |
118 | \reimp | 130 | \reimp |
119 | */ | 131 | */ |
120 | 132 | ||
121 | void PasswordDialog::keyPressEvent( QKeyEvent * ) | 133 | void PasswordDialog::keyPressEvent( QKeyEvent * ) |
122 | { | 134 | { |
123 | #if 0 | 135 | #if 0 |
124 | if ( e->key() == Key_Enter || e->key() == Key_Return ) | 136 | if ( e->key() == Key_Enter || e->key() == Key_Return ) |
125 | emit passwordEntered( text ); | 137 | emit passwordEntered( text ); |
126 | else | 138 | else |
127 | input( e->text() ); | 139 | input( e->text() ); |
128 | #endif | 140 | #endif |
129 | } | 141 | } |
130 | 142 | ||
131 | 143 | ||
132 | /*! | 144 | /*! |
133 | 145 | ||
134 | */ | 146 | */ |
135 | 147 | ||
136 | void PasswordDialog::input( QString c ) | 148 | void PasswordDialog::input( QString c ) |
137 | { | 149 | { |
138 | text += c; | 150 | text += c; |
139 | display->setText( text ); | 151 | display->setText( text ); |
140 | } | 152 | } |
141 | 153 | ||
142 | /*! | 154 | /*! |
143 | 155 | ||
144 | */ | 156 | */ |
145 | 157 | ||
146 | void PasswordDialog::setPrompt( const QString& s ) | 158 | void PasswordDialog::setPrompt( const QString& s ) |
147 | { | 159 | { |
148 | prompt->setText( s ); | 160 | prompt->setText( s ); |
149 | } | 161 | } |
150 | 162 | ||
151 | void PasswordDialog::clear() | 163 | void PasswordDialog::clear() |
152 | { | 164 | { |
153 | text = ""; | 165 | text = ""; |
154 | input(""); | 166 | input(""); |
155 | } | 167 | } |
156 | 168 | ||
157 | class PasswdDlg : public QDialog | 169 | class PasswdDlg : public QDialog |
158 | { | 170 | { |
159 | public: | 171 | public: |
160 | PasswdDlg( QWidget *parent, const char * name, bool modal, bool fullscreen = FALSE ) | 172 | PasswdDlg( QWidget *parent, const char * name, bool modal, bool fullscreen = FALSE ) |
161 | : QDialog( parent, name, modal, fullscreen ? WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ), | 173 | : QDialog( parent, name, modal, fullscreen ? WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ), |
162 | modl(modal) | 174 | modl(modal) |
163 | { | 175 | { |
164 | passw = new PasswordDialog( this ); | 176 | passw = new PasswordDialog( this ); |
165 | 177 | ||
166 | if ( fullscreen ) { | 178 | if ( fullscreen ) { |
167 | QRect desk = qApp->desktop()->geometry(); | 179 | QRect desk = qApp->desktop()->geometry(); |
168 | setGeometry( 0, 0, desk.width(), desk.height() ); | 180 | setGeometry( 0, 0, desk.width(), desk.height() ); |
169 | } | 181 | } |
170 | 182 | ||