author | ulf69 <ulf69> | 2004-09-15 22:39:25 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-09-15 22:39:25 (UTC) |
commit | 610cf2a6c7aaf9855b54cd0453f347edf9c1a855 (patch) (unidiff) | |
tree | 5ef182e00afa3fbc6cb9a2d6f59654c599c6118a | |
parent | 7fae8b87a05c3572bf0c9218d300d99fdc02adc4 (diff) | |
download | kdepimpi-610cf2a6c7aaf9855b54cd0453f347edf9c1a855.zip kdepimpi-610cf2a6c7aaf9855b54cd0453f347edf9c1a855.tar.gz kdepimpi-610cf2a6c7aaf9855b54cd0453f347edf9c1a855.tar.bz2 |
enhanced code
-rw-r--r-- | pwmanager/pwmanager/pwm.cpp | 167 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwm.h | 6 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwmdocui.cpp | 17 |
3 files changed, 152 insertions, 38 deletions
diff --git a/pwmanager/pwmanager/pwm.cpp b/pwmanager/pwmanager/pwm.cpp index 0e57650..e5579f8 100644 --- a/pwmanager/pwmanager/pwm.cpp +++ b/pwmanager/pwmanager/pwm.cpp | |||
@@ -1,635 +1,675 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * copyright (C) 2003, 2004 by Michael Buesch * | 3 | * copyright (C) 2003, 2004 by Michael Buesch * |
4 | * email: mbuesch@freenet.de * | 4 | * email: mbuesch@freenet.de * |
5 | * * | 5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * | 6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License version 2 * | 7 | * it under the terms of the GNU General Public License version 2 * |
8 | * as published by the Free Software Foundation. * | 8 | * as published by the Free Software Foundation. * |
9 | * * | 9 | * * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | 11 | ||
12 | /*************************************************************************** | 12 | /*************************************************************************** |
13 | * copyright (C) 2004 by Ulf Schenk | 13 | * copyright (C) 2004 by Ulf Schenk |
14 | * This file is originaly based on version 1.0.1 of pwmanager | 14 | * This file is originaly based on version 1.0.1 of pwmanager |
15 | * and was modified to run on embedded devices that run microkde | 15 | * and was modified to run on embedded devices that run microkde |
16 | * | 16 | * |
17 | * $Id$ | 17 | * $Id$ |
18 | **************************************************************************/ | 18 | **************************************************************************/ |
19 | 19 | ||
20 | #include <klocale.h> | 20 | #include <klocale.h> |
21 | #include <klistview.h> | 21 | #include <klistview.h> |
22 | #include <ktoolbar.h> | 22 | #include <ktoolbar.h> |
23 | #include <kfiledialog.h> | 23 | #include <kfiledialog.h> |
24 | #include <kiconloader.h> | 24 | #include <kiconloader.h> |
25 | #include <kmessagebox.h> | 25 | #include <kmessagebox.h> |
26 | 26 | ||
27 | #ifndef PWM_EMBEDDED | 27 | #ifndef PWM_EMBEDDED |
28 | #include <kmenubar.h> | 28 | #include <kmenubar.h> |
29 | #include <kstatusbar.h> | 29 | #include <kstatusbar.h> |
30 | #include <dcopclient.h> | 30 | #include <dcopclient.h> |
31 | #else | 31 | #else |
32 | #include <qmenubar.h> | 32 | #include <qmenubar.h> |
33 | #include <qmessagebox.h> | ||
33 | #endif | 34 | #endif |
34 | 35 | ||
35 | #include <qpixmap.h> | 36 | #include <qpixmap.h> |
36 | #include <qcheckbox.h> | 37 | #include <qcheckbox.h> |
37 | #include <qspinbox.h> | 38 | #include <qspinbox.h> |
38 | #include <qlineedit.h> | 39 | #include <qlineedit.h> |
39 | #include <qfileinfo.h> | 40 | #include <qfileinfo.h> |
40 | #include <qclipboard.h> | 41 | #include <qclipboard.h> |
41 | 42 | ||
42 | 43 | ||
43 | #include <stdio.h> | 44 | #include <stdio.h> |
44 | 45 | ||
45 | #include "pwm.h" | 46 | #include "pwm.h" |
46 | #include "pwminit.h" | 47 | #include "pwminit.h" |
47 | #include "configwndimpl.h" | 48 | #include "configwndimpl.h" |
48 | #include "pwmprint.h" | 49 | #include "pwmprint.h" |
49 | #include "addentrywndimpl.h" | 50 | #include "addentrywndimpl.h" |
50 | #include "globalstuff.h" | 51 | #include "globalstuff.h" |
51 | #include "findwndimpl.h" | 52 | #include "findwndimpl.h" |
52 | #include "configuration.h" | 53 | #include "configuration.h" |
53 | 54 | ||
54 | #ifdef CONFIG_KWALLETIF | 55 | #ifdef CONFIG_KWALLETIF |
55 | # include "kwalletif.h" | 56 | # include "kwalletif.h" |
56 | # include "kwalletemu.h" | 57 | # include "kwalletemu.h" |
57 | #endif | 58 | #endif |
58 | #ifdef CONFIG_KEYCARD | 59 | #ifdef CONFIG_KEYCARD |
59 | # include "pwmkeycard.h" | 60 | # include "pwmkeycard.h" |
60 | #endif | 61 | #endif |
61 | 62 | ||
62 | 63 | ||
63 | #define DEFAULT_SIZE (QSize(700, 400)) | 64 | #define DEFAULT_SIZE (QSize(700, 400)) |
64 | 65 | ||
65 | // Button IDs for "file" popup menu | 66 | // Button IDs for "file" popup menu |
66 | enum { | 67 | enum { |
67 | BUTTON_POPUP_FILE_NEW = 0, | 68 | BUTTON_POPUP_FILE_NEW = 0, |
68 | BUTTON_POPUP_FILE_OPEN, | 69 | BUTTON_POPUP_FILE_OPEN, |
69 | BUTTON_POPUP_FILE_CLOSE, | 70 | BUTTON_POPUP_FILE_CLOSE, |
70 | BUTTON_POPUP_FILE_SAVE, | 71 | BUTTON_POPUP_FILE_SAVE, |
71 | BUTTON_POPUP_FILE_SAVEAS, | 72 | BUTTON_POPUP_FILE_SAVEAS, |
72 | BUTTON_POPUP_FILE_EXPORT, | 73 | BUTTON_POPUP_FILE_EXPORT, |
73 | BUTTON_POPUP_FILE_IMPORT, | 74 | BUTTON_POPUP_FILE_IMPORT, |
74 | BUTTON_POPUP_FILE_PRINT, | 75 | BUTTON_POPUP_FILE_PRINT, |
75 | BUTTON_POPUP_FILE_QUIT | 76 | BUTTON_POPUP_FILE_QUIT |
76 | }; | 77 | }; |
77 | // Button IDs for "manage" popup menu | 78 | // Button IDs for "manage" popup menu |
78 | enum { | 79 | enum { |
79 | BUTTON_POPUP_MANAGE_ADD = 0, | 80 | BUTTON_POPUP_MANAGE_ADD = 0, |
80 | BUTTON_POPUP_MANAGE_EDIT, | 81 | BUTTON_POPUP_MANAGE_EDIT, |
81 | BUTTON_POPUP_MANAGE_DEL, | 82 | BUTTON_POPUP_MANAGE_DEL, |
82 | BUTTON_POPUP_MANAGE_CHANGEMP | 83 | BUTTON_POPUP_MANAGE_CHANGEMP |
83 | }; | 84 | }; |
84 | // Button IDs for chipcard popup menu | 85 | // Button IDs for chipcard popup menu |
85 | enum { | 86 | enum { |
86 | #ifdef CONFIG_KEYCARD | 87 | #ifdef CONFIG_KEYCARD |
87 | BUTTON_POPUP_CHIPCARD_GENNEW = 0, | 88 | BUTTON_POPUP_CHIPCARD_GENNEW = 0, |
88 | BUTTON_POPUP_CHIPCARD_DEL, | 89 | BUTTON_POPUP_CHIPCARD_DEL, |
89 | BUTTON_POPUP_CHIPCARD_READID, | 90 | BUTTON_POPUP_CHIPCARD_READID, |
90 | BUTTON_POPUP_CHIPCARD_SAVEBACKUP, | 91 | BUTTON_POPUP_CHIPCARD_SAVEBACKUP, |
91 | BUTTON_POPUP_CHIPCARD_REPLAYBACKUP | 92 | BUTTON_POPUP_CHIPCARD_REPLAYBACKUP |
92 | #else // CONFIG_KEYCARD | 93 | #else // CONFIG_KEYCARD |
93 | BUTTON_POPUP_CHIPCARD_NO = 0 | 94 | BUTTON_POPUP_CHIPCARD_NO = 0 |
94 | #endif // CONFIG_KEYCARD | 95 | #endif // CONFIG_KEYCARD |
95 | }; | 96 | }; |
96 | // Button IDs for "view" popup menu | 97 | // Button IDs for "view" popup menu |
97 | enum { | 98 | enum { |
98 | BUTTON_POPUP_VIEW_FIND = 0, | 99 | BUTTON_POPUP_VIEW_FIND = 0, |
99 | BUTTON_POPUP_VIEW_LOCK, | 100 | BUTTON_POPUP_VIEW_LOCK, |
100 | BUTTON_POPUP_VIEW_DEEPLOCK, | 101 | BUTTON_POPUP_VIEW_DEEPLOCK, |
101 | BUTTON_POPUP_VIEW_UNLOCK | 102 | BUTTON_POPUP_VIEW_UNLOCK |
102 | }; | 103 | }; |
103 | // Button IDs for "options" popup menu | 104 | // Button IDs for "options" popup menu |
104 | enum { | 105 | enum { |
105 | BUTTON_POPUP_OPTIONS_CONFIG = 0 | 106 | BUTTON_POPUP_OPTIONS_CONFIG = 0 |
106 | }; | 107 | }; |
107 | // Button IDs for "export" popup menu (in "file" popup menu) | 108 | // Button IDs for "export" popup menu (in "file" popup menu) |
108 | enum { | 109 | enum { |
109 | BUTTON_POPUP_EXPORT_TEXT = 0, | 110 | BUTTON_POPUP_EXPORT_TEXT = 0, |
110 | BUTTON_POPUP_EXPORT_GPASMAN | 111 | BUTTON_POPUP_EXPORT_GPASMAN |
111 | #ifdef CONFIG_KWALLETIF | 112 | #ifdef CONFIG_KWALLETIF |
112 | ,BUTTON_POPUP_EXPORT_KWALLET | 113 | ,BUTTON_POPUP_EXPORT_KWALLET |
113 | #endif | 114 | #endif |
114 | }; | 115 | }; |
115 | // Button IDs for "import" popup menu (in "file" popup menu) | 116 | // Button IDs for "import" popup menu (in "file" popup menu) |
116 | enum { | 117 | enum { |
117 | BUTTON_POPUP_IMPORT_TEXT = 0, | 118 | BUTTON_POPUP_IMPORT_TEXT = 0, |
118 | BUTTON_POPUP_IMPORT_GPASMAN | 119 | BUTTON_POPUP_IMPORT_GPASMAN |
119 | #ifdef CONFIG_KWALLETIF | 120 | #ifdef CONFIG_KWALLETIF |
120 | ,BUTTON_POPUP_IMPORT_KWALLET | 121 | ,BUTTON_POPUP_IMPORT_KWALLET |
121 | #endif | 122 | #endif |
122 | }; | 123 | }; |
124 | |||
125 | #ifdef PWM_EMBEDDED | ||
126 | // Button IDs for "help" popup menu | ||
127 | enum { | ||
128 | BUTTON_POPUP_HELP_LICENSE = 0, | ||
129 | BUTTON_POPUP_HELP_FAQ, | ||
130 | BUTTON_POPUP_HELP_ABOUT | ||
131 | }; | ||
132 | #endif | ||
133 | |||
123 | // Button IDs for toolbar | 134 | // Button IDs for toolbar |
124 | enum { | 135 | enum { |
125 | BUTTON_TOOL_NEW = 0, | 136 | BUTTON_TOOL_NEW = 0, |
126 | BUTTON_TOOL_OPEN, | 137 | BUTTON_TOOL_OPEN, |
127 | BUTTON_TOOL_SAVE, | 138 | BUTTON_TOOL_SAVE, |
128 | BUTTON_TOOL_SAVEAS, | 139 | BUTTON_TOOL_SAVEAS, |
129 | BUTTON_TOOL_PRINT, | 140 | BUTTON_TOOL_PRINT, |
130 | BUTTON_TOOL_ADD, | 141 | BUTTON_TOOL_ADD, |
131 | BUTTON_TOOL_EDIT, | 142 | BUTTON_TOOL_EDIT, |
132 | BUTTON_TOOL_DEL, | 143 | BUTTON_TOOL_DEL, |
133 | BUTTON_TOOL_FIND, | 144 | BUTTON_TOOL_FIND, |
134 | BUTTON_TOOL_LOCK, | 145 | BUTTON_TOOL_LOCK, |
135 | BUTTON_TOOL_DEEPLOCK, | 146 | BUTTON_TOOL_DEEPLOCK, |
136 | BUTTON_TOOL_UNLOCK | 147 | BUTTON_TOOL_UNLOCK |
137 | }; | 148 | }; |
138 | 149 | ||
139 | 150 | ||
140 | PwM::PwM(PwMInit *_init, PwMDoc *doc, | 151 | PwM::PwM(PwMInit *_init, PwMDoc *doc, |
141 | bool virginity, | 152 | bool virginity, |
142 | QWidget *parent, const char *name) | 153 | QWidget *parent, const char *name) |
143 | : KMainWindow(parent, name) | 154 | : KMainWindow(parent, name) |
144 | , forceQuit (false) | 155 | , forceQuit (false) |
145 | , forceMinimizeToTray (false) | 156 | , forceMinimizeToTray (false) |
146 | { | 157 | { |
147 | init = _init; | 158 | init = _init; |
148 | connect(doc, SIGNAL(docClosed(PwMDoc *)), | 159 | connect(doc, SIGNAL(docClosed(PwMDoc *)), |
149 | this, SLOT(docClosed(PwMDoc *))); | 160 | this, SLOT(docClosed(PwMDoc *))); |
150 | initMenubar(); | 161 | initMenubar(); |
151 | initToolbar(); | 162 | initToolbar(); |
152 | initMetrics(); | 163 | initMetrics(); |
153 | setVirgin(virginity); | 164 | setVirgin(virginity); |
154 | setFocusPolicy(QWidget::WheelFocus); | 165 | setFocusPolicy(QWidget::WheelFocus); |
155 | #ifndef PWM_EMBEDDED | 166 | #ifndef PWM_EMBEDDED |
156 | statusBar()->show(); | 167 | statusBar()->show(); |
157 | #endif | 168 | #endif |
158 | view = makeNewListView(doc); | 169 | view = makeNewListView(doc); |
159 | setCentralWidget(view); | 170 | setCentralWidget(view); |
160 | updateCaption(); | 171 | updateCaption(); |
161 | showStatMsg(i18n("Ready.")); | 172 | showStatMsg(i18n("Ready.")); |
162 | } | 173 | } |
163 | 174 | ||
164 | PwM::~PwM() | 175 | PwM::~PwM() |
165 | { | 176 | { |
166 | disconnect(curDoc(), SIGNAL(docClosed(PwMDoc *)), | 177 | disconnect(curDoc(), SIGNAL(docClosed(PwMDoc *)), |
167 | this, SLOT(docClosed(PwMDoc *))); | 178 | this, SLOT(docClosed(PwMDoc *))); |
168 | conf()->confWndMainWndSize(size()); | 179 | conf()->confWndMainWndSize(size()); |
169 | emit closed(this); | 180 | emit closed(this); |
170 | delete view; | 181 | delete view; |
171 | } | 182 | } |
172 | 183 | ||
173 | void PwM::initMenubar() | 184 | void PwM::initMenubar() |
174 | { | 185 | { |
186 | KIconLoader* picons; | ||
187 | #ifndef PWM_EMBEDDED | ||
175 | KIconLoader icons; | 188 | KIconLoader icons; |
176 | 189 | picons = &icons; | |
190 | #else | ||
191 | picons = KGlobal::iconLoader(); | ||
192 | #endif | ||
177 | filePopup = new KPopupMenu(this); | 193 | filePopup = new KPopupMenu(this); |
178 | importPopup = new KPopupMenu(filePopup); | 194 | importPopup = new KPopupMenu(filePopup); |
179 | exportPopup = new KPopupMenu(filePopup); | 195 | exportPopup = new KPopupMenu(filePopup); |
180 | managePopup = new KPopupMenu(this); | 196 | managePopup = new KPopupMenu(this); |
181 | #ifdef CONFIG_KEYCARD | 197 | #ifdef CONFIG_KEYCARD |
182 | chipcardPopup = new KPopupMenu(this); | 198 | chipcardPopup = new KPopupMenu(this); |
183 | #endif // CONFIG_KEYCARD | 199 | #endif // CONFIG_KEYCARD |
184 | viewPopup = new KPopupMenu(this); | 200 | viewPopup = new KPopupMenu(this); |
185 | optionsPopup = new KPopupMenu(this); | 201 | optionsPopup = new KPopupMenu(this); |
186 | 202 | ||
187 | // "file" popup menu | 203 | // "file" popup menu |
188 | filePopup->insertItem(QIconSet(icons.loadIcon("filenew", KIcon::Small)), | 204 | filePopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)), |
189 | i18n("&New"), this, | 205 | i18n("&New"), this, |
190 | SLOT(new_slot()), 0, BUTTON_POPUP_FILE_NEW); | 206 | SLOT(new_slot()), 0, BUTTON_POPUP_FILE_NEW); |
191 | filePopup->insertItem(QIconSet(icons.loadIcon("fileopen", KIcon::Small)), | 207 | filePopup->insertItem(QIconSet(picons->loadIcon("fileopen", KIcon::Small)), |
192 | i18n("&Open"), this, | 208 | i18n("&Open"), this, |
193 | SLOT(open_slot()), 0, BUTTON_POPUP_FILE_OPEN); | 209 | SLOT(open_slot()), 0, BUTTON_POPUP_FILE_OPEN); |
194 | filePopup->insertItem(QIconSet(icons.loadIcon("fileclose", KIcon::Small)), | 210 | filePopup->insertItem(QIconSet(picons->loadIcon("fileclose", KIcon::Small)), |
195 | i18n("&Close"), this, | 211 | i18n("&Close"), this, |
196 | SLOT(close_slot()), 0, BUTTON_POPUP_FILE_CLOSE); | 212 | SLOT(close_slot()), 0, BUTTON_POPUP_FILE_CLOSE); |
197 | filePopup->insertSeparator(); | 213 | filePopup->insertSeparator(); |
198 | filePopup->insertItem(QIconSet(icons.loadIcon("filesave", KIcon::Small)), | 214 | filePopup->insertItem(QIconSet(picons->loadIcon("filesave", KIcon::Small)), |
199 | i18n("&Save"), this, | 215 | i18n("&Save"), this, |
200 | SLOT(save_slot()), 0, BUTTON_POPUP_FILE_SAVE); | 216 | SLOT(save_slot()), 0, BUTTON_POPUP_FILE_SAVE); |
201 | filePopup->insertItem(QIconSet(icons.loadIcon("filesaveas", KIcon::Small)), | 217 | filePopup->insertItem(QIconSet(picons->loadIcon("filesaveas", KIcon::Small)), |
202 | i18n("Save &as..."), | 218 | i18n("Save &as..."), |
203 | this, SLOT(saveAs_slot()), 0, | 219 | this, SLOT(saveAs_slot()), 0, |
204 | BUTTON_POPUP_FILE_SAVEAS); | 220 | BUTTON_POPUP_FILE_SAVEAS); |
205 | filePopup->insertSeparator(); | 221 | filePopup->insertSeparator(); |
206 | // "file/export" popup menu | 222 | // "file/export" popup menu |
207 | exportPopup->insertItem(i18n("&Text-file..."), this, | 223 | exportPopup->insertItem(i18n("&Text-file..."), this, |
208 | SLOT(exportToText()), 0, BUTTON_POPUP_EXPORT_TEXT); | 224 | SLOT(exportToText()), 0, BUTTON_POPUP_EXPORT_TEXT); |
209 | exportPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, | 225 | exportPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, |
210 | SLOT(exportToGpasman()), 0, BUTTON_POPUP_EXPORT_GPASMAN); | 226 | SLOT(exportToGpasman()), 0, BUTTON_POPUP_EXPORT_GPASMAN); |
211 | #ifdef CONFIG_KWALLETIF | 227 | #ifdef CONFIG_KWALLETIF |
212 | exportPopup->insertItem(i18n("&KWallet..."), this, | 228 | exportPopup->insertItem(i18n("&KWallet..."), this, |
213 | SLOT(exportToKWallet()), 0, BUTTON_POPUP_EXPORT_KWALLET); | 229 | SLOT(exportToKWallet()), 0, BUTTON_POPUP_EXPORT_KWALLET); |
214 | #endif | 230 | #endif |
215 | filePopup->insertItem(QIconSet(icons.loadIcon("fileexport", KIcon::Small)), | 231 | filePopup->insertItem(QIconSet(picons->loadIcon("fileexport", KIcon::Small)), |
216 | i18n("E&xport"), exportPopup, | 232 | i18n("E&xport"), exportPopup, |
217 | BUTTON_POPUP_FILE_EXPORT); | 233 | BUTTON_POPUP_FILE_EXPORT); |
218 | // "file/import" popup menu | 234 | // "file/import" popup menu |
219 | importPopup->insertItem(i18n("&Text-file..."), this, | 235 | importPopup->insertItem(i18n("&Text-file..."), this, |
220 | SLOT(importFromText()), 0, BUTTON_POPUP_IMPORT_TEXT); | 236 | SLOT(importFromText()), 0, BUTTON_POPUP_IMPORT_TEXT); |
221 | importPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, | 237 | importPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, |
222 | SLOT(importFromGpasman()), 0, BUTTON_POPUP_IMPORT_GPASMAN); | 238 | SLOT(importFromGpasman()), 0, BUTTON_POPUP_IMPORT_GPASMAN); |
223 | #ifdef CONFIG_KWALLETIF | 239 | #ifdef CONFIG_KWALLETIF |
224 | importPopup->insertItem(i18n("&KWallet..."), this, | 240 | importPopup->insertItem(i18n("&KWallet..."), this, |
225 | SLOT(importKWallet()), 0, BUTTON_POPUP_IMPORT_KWALLET); | 241 | SLOT(importKWallet()), 0, BUTTON_POPUP_IMPORT_KWALLET); |
226 | #endif | 242 | #endif |
227 | filePopup->insertItem(QIconSet(icons.loadIcon("fileimport", KIcon::Small)), | 243 | filePopup->insertItem(QIconSet(picons->loadIcon("fileimport", KIcon::Small)), |
228 | i18n("I&mport"), importPopup, | 244 | i18n("I&mport"), importPopup, |
229 | BUTTON_POPUP_FILE_IMPORT); | 245 | BUTTON_POPUP_FILE_IMPORT); |
230 | filePopup->insertSeparator(); | 246 | filePopup->insertSeparator(); |
231 | filePopup->insertItem(QIconSet(icons.loadIcon("fileprint", KIcon::Small)), | 247 | filePopup->insertItem(QIconSet(picons->loadIcon("fileprint", KIcon::Small)), |
232 | i18n("&Print..."), this, | 248 | i18n("&Print..."), this, |
233 | SLOT(print_slot()), 0, BUTTON_POPUP_FILE_PRINT); | 249 | SLOT(print_slot()), 0, BUTTON_POPUP_FILE_PRINT); |
234 | filePopup->insertSeparator(); | 250 | filePopup->insertSeparator(); |
235 | filePopup->insertItem(QIconSet(icons.loadIcon("exit", KIcon::Small)), | 251 | filePopup->insertItem(QIconSet(picons->loadIcon("exit", KIcon::Small)), |
236 | i18n("&Quit"), this, | 252 | i18n("&Quit"), this, |
237 | SLOT(quitButton_slot()), 0, BUTTON_POPUP_FILE_QUIT); | 253 | SLOT(quitButton_slot()), 0, BUTTON_POPUP_FILE_QUIT); |
238 | menuBar()->insertItem(i18n("&File"), filePopup); | 254 | menuBar()->insertItem(i18n("&File"), filePopup); |
239 | // "manage" popup menu | 255 | // "manage" popup menu |
240 | managePopup->insertItem(QIconSet(icons.loadIcon("pencil", KIcon::Small)), | 256 | managePopup->insertItem(QIconSet(picons->loadIcon("pencil", KIcon::Small)), |
241 | i18n("&Add password"), this, | 257 | i18n("&Add password"), this, |
242 | SLOT(addPwd_slot()), 0, | 258 | SLOT(addPwd_slot()), 0, |
243 | BUTTON_POPUP_MANAGE_ADD); | 259 | BUTTON_POPUP_MANAGE_ADD); |
244 | managePopup->insertItem(QIconSet(icons.loadIcon("edit", KIcon::Small)), | 260 | managePopup->insertItem(QIconSet(picons->loadIcon("edit", KIcon::Small)), |
245 | i18n("&Edit"), this, SLOT(editPwd_slot()), 0, | 261 | i18n("&Edit"), this, SLOT(editPwd_slot()), 0, |
246 | BUTTON_POPUP_MANAGE_EDIT); | 262 | BUTTON_POPUP_MANAGE_EDIT); |
247 | managePopup->insertItem(QIconSet(icons.loadIcon("editdelete", KIcon::Small)), | 263 | managePopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)), |
248 | i18n("&Delete"), this, SLOT(deletePwd_slot()), | 264 | i18n("&Delete"), this, SLOT(deletePwd_slot()), |
249 | 0, BUTTON_POPUP_MANAGE_DEL); | 265 | 0, BUTTON_POPUP_MANAGE_DEL); |
250 | managePopup->insertSeparator(); | 266 | managePopup->insertSeparator(); |
251 | managePopup->insertItem(QIconSet(icons.loadIcon("rotate", KIcon::Small)), | 267 | managePopup->insertItem(QIconSet(picons->loadIcon("rotate", KIcon::Small)), |
252 | i18n("Change &Master Password"), this, | 268 | i18n("Change &Master Password"), this, |
253 | SLOT(changeMasterPwd_slot()), 0, | 269 | SLOT(changeMasterPwd_slot()), 0, |
254 | BUTTON_POPUP_MANAGE_CHANGEMP); | 270 | BUTTON_POPUP_MANAGE_CHANGEMP); |
255 | menuBar()->insertItem(i18n("&Manage"), managePopup); | 271 | menuBar()->insertItem(i18n("&Manage"), managePopup); |
256 | // "chipcard" popup menu | 272 | // "chipcard" popup menu |
257 | #ifdef CONFIG_KEYCARD | 273 | #ifdef CONFIG_KEYCARD |
258 | chipcardPopup->insertItem(QIconSet(icons.loadIcon("filenew", KIcon::Small)), | 274 | chipcardPopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)), |
259 | i18n("&Generate new key-card"), this, | 275 | i18n("&Generate new key-card"), this, |
260 | SLOT(genNewCard_slot()), 0, | 276 | SLOT(genNewCard_slot()), 0, |
261 | BUTTON_POPUP_CHIPCARD_GENNEW); | 277 | BUTTON_POPUP_CHIPCARD_GENNEW); |
262 | chipcardPopup->insertItem(QIconSet(icons.loadIcon("editdelete", KIcon::Small)), | 278 | chipcardPopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)), |
263 | i18n("&Erase key-card"), this, | 279 | i18n("&Erase key-card"), this, |
264 | SLOT(eraseCard_slot()), 0, | 280 | SLOT(eraseCard_slot()), 0, |
265 | BUTTON_POPUP_CHIPCARD_DEL); | 281 | BUTTON_POPUP_CHIPCARD_DEL); |
266 | chipcardPopup->insertItem(QIconSet(icons.loadIcon("", KIcon::Small)), | 282 | chipcardPopup->insertItem(QIconSet(picons->loadIcon("", KIcon::Small)), |
267 | i18n("Read card-&ID"), this, | 283 | i18n("Read card-&ID"), this, |
268 | SLOT(readCardId_slot()), 0, | 284 | SLOT(readCardId_slot()), 0, |
269 | BUTTON_POPUP_CHIPCARD_READID); | 285 | BUTTON_POPUP_CHIPCARD_READID); |
270 | chipcardPopup->insertSeparator(); | 286 | chipcardPopup->insertSeparator(); |
271 | chipcardPopup->insertItem(QIconSet(icons.loadIcon("2rightarrow", KIcon::Small)), | 287 | chipcardPopup->insertItem(QIconSet(picons->loadIcon("2rightarrow", KIcon::Small)), |
272 | i18n("&Make card backup-image"), this, | 288 | i18n("&Make card backup-image"), this, |
273 | SLOT(makeCardBackup_slot()), 0, | 289 | SLOT(makeCardBackup_slot()), 0, |
274 | BUTTON_POPUP_CHIPCARD_SAVEBACKUP); | 290 | BUTTON_POPUP_CHIPCARD_SAVEBACKUP); |
275 | chipcardPopup->insertItem(QIconSet(icons.loadIcon("2leftarrow", KIcon::Small)), | 291 | chipcardPopup->insertItem(QIconSet(picons->loadIcon("2leftarrow", KIcon::Small)), |
276 | i18n("&Replay card backup-image"), this, | 292 | i18n("&Replay card backup-image"), this, |
277 | SLOT(replayCardBackup_slot()), 0, | 293 | SLOT(replayCardBackup_slot()), 0, |
278 | BUTTON_POPUP_CHIPCARD_REPLAYBACKUP); | 294 | BUTTON_POPUP_CHIPCARD_REPLAYBACKUP); |
279 | menuBar()->insertItem(i18n("&Chipcard manager"), chipcardPopup); | 295 | menuBar()->insertItem(i18n("&Chipcard manager"), chipcardPopup); |
280 | #endif // CONFIG_KEYCARD | 296 | #endif // CONFIG_KEYCARD |
281 | // "view" popup menu | 297 | // "view" popup menu |
282 | viewPopup->insertItem(QIconSet(icons.loadIcon("find", KIcon::Small)), | 298 | viewPopup->insertItem(QIconSet(picons->loadIcon("find", KIcon::Small)), |
283 | i18n("&Find"), this, | 299 | i18n("&Find"), this, |
284 | SLOT(find_slot()), 0, BUTTON_POPUP_VIEW_FIND); | 300 | SLOT(find_slot()), 0, BUTTON_POPUP_VIEW_FIND); |
285 | viewPopup->insertSeparator(); | 301 | viewPopup->insertSeparator(); |
286 | viewPopup->insertItem(QIconSet(icons.loadIcon("halfencrypted", KIcon::Small)), | 302 | viewPopup->insertItem(QIconSet(picons->loadIcon("halfencrypted", KIcon::Small)), |
287 | i18n("&Lock all entries"), this, | 303 | i18n("&Lock all entries"), this, |
288 | SLOT(lockWnd_slot()), 0, | 304 | SLOT(lockWnd_slot()), 0, |
289 | BUTTON_POPUP_VIEW_LOCK); | 305 | BUTTON_POPUP_VIEW_LOCK); |
290 | viewPopup->insertItem(QIconSet(icons.loadIcon("encrypted", KIcon::Small)), | 306 | viewPopup->insertItem(QIconSet(picons->loadIcon("encrypted", KIcon::Small)), |
291 | i18n("&Deep-lock all entries"), this, | 307 | i18n("&Deep-lock all entries"), this, |
292 | SLOT(deepLockWnd_slot()), 0, | 308 | SLOT(deepLockWnd_slot()), 0, |
293 | BUTTON_POPUP_VIEW_DEEPLOCK); | 309 | BUTTON_POPUP_VIEW_DEEPLOCK); |
294 | viewPopup->insertItem(QIconSet(icons.loadIcon("decrypted", KIcon::Small)), | 310 | viewPopup->insertItem(QIconSet(picons->loadIcon("decrypted", KIcon::Small)), |
295 | i18n("&Unlock all entries"), this, | 311 | i18n("&Unlock all entries"), this, |
296 | SLOT(unlockWnd_slot()), 0, | 312 | SLOT(unlockWnd_slot()), 0, |
297 | BUTTON_POPUP_VIEW_UNLOCK); | 313 | BUTTON_POPUP_VIEW_UNLOCK); |
298 | menuBar()->insertItem(i18n("&View"), viewPopup); | 314 | menuBar()->insertItem(i18n("&View"), viewPopup); |
299 | // "options" popup menu | 315 | // "options" popup menu |
300 | optionsPopup->insertItem(QIconSet(icons.loadIcon("configure", KIcon::Small)), | 316 | optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)), |
301 | i18n("&Configure..."), this, | 317 | i18n("&Configure..."), this, |
302 | SLOT(config_slot()), | 318 | SLOT(config_slot()), |
303 | BUTTON_POPUP_OPTIONS_CONFIG); | 319 | BUTTON_POPUP_OPTIONS_CONFIG); |
304 | menuBar()->insertItem(i18n("&Options"), optionsPopup); | 320 | menuBar()->insertItem(i18n("&Options"), optionsPopup); |
305 | // "help" popup menu | 321 | // "help" popup menu |
306 | #ifndef PWM_EMBEDDED | 322 | #ifndef PWM_EMBEDDED |
307 | helpPopup = helpMenu(QString::null, false); | 323 | helpPopup = helpMenu(QString::null, false); |
308 | menuBar()->insertItem(i18n("&Help"), helpPopup); | 324 | #else |
325 | helpPopup = new KPopupMenu(this); | ||
326 | |||
327 | |||
328 | helpPopup->insertItem(i18n("&License"), this, | ||
329 | SLOT(showLicense_slot()), 0, | ||
330 | BUTTON_POPUP_HELP_LICENSE); | ||
331 | |||
332 | helpPopup->insertItem(i18n("&Faq"), this, | ||
333 | SLOT(faq_slot()), 0, | ||
334 | BUTTON_POPUP_HELP_FAQ); | ||
335 | |||
336 | helpPopup->insertItem(i18n("&About PwManager"), this, | ||
337 | SLOT(createAboutData_slot()), 0, | ||
338 | BUTTON_POPUP_HELP_ABOUT); | ||
339 | |||
309 | #endif | 340 | #endif |
341 | menuBar()->insertItem(i18n("&Help"), helpPopup); | ||
342 | |||
310 | } | 343 | } |
311 | 344 | ||
312 | void PwM::initToolbar() | 345 | void PwM::initToolbar() |
313 | { | 346 | { |
347 | KIconLoader* picons; | ||
348 | #ifndef PWM_EMBEDDED | ||
314 | KIconLoader icons; | 349 | KIconLoader icons; |
350 | picons = &icons; | ||
351 | #else | ||
352 | picons = KGlobal::iconLoader(); | ||
353 | #endif | ||
315 | 354 | ||
316 | toolBar()->insertButton(icons.loadIcon("filenew", KIcon::Toolbar), | 355 | toolBar()->insertButton(picons->loadIcon("filenew", KIcon::Toolbar), |
317 | BUTTON_TOOL_NEW, SIGNAL(clicked(int)), this, | 356 | BUTTON_TOOL_NEW, SIGNAL(clicked(int)), this, |
318 | SLOT(new_slot()), true, i18n("New")); | 357 | SLOT(new_slot()), true, i18n("New")); |
319 | toolBar()->insertButton(icons.loadIcon("fileopen", KIcon::Toolbar), | 358 | toolBar()->insertButton(picons->loadIcon("fileopen", KIcon::Toolbar), |
320 | BUTTON_TOOL_OPEN, SIGNAL(clicked(int)), this, | 359 | BUTTON_TOOL_OPEN, SIGNAL(clicked(int)), this, |
321 | SLOT(open_slot()), true, i18n("Open")); | 360 | SLOT(open_slot()), true, i18n("Open")); |
322 | toolBar()->insertSeparator(); | 361 | toolBar()->insertSeparator(); |
323 | toolBar()->insertButton(icons.loadIcon("filesave", KIcon::Toolbar), | 362 | toolBar()->insertButton(picons->loadIcon("filesave", KIcon::Toolbar), |
324 | BUTTON_TOOL_SAVE, SIGNAL(clicked(int)), this, | 363 | BUTTON_TOOL_SAVE, SIGNAL(clicked(int)), this, |
325 | SLOT(save_slot()), true, i18n("Save")); | 364 | SLOT(save_slot()), true, i18n("Save")); |
326 | toolBar()->insertButton(icons.loadIcon("filesaveas", KIcon::Toolbar), | 365 | toolBar()->insertButton(picons->loadIcon("filesaveas", KIcon::Toolbar), |
327 | BUTTON_TOOL_SAVEAS, SIGNAL(clicked(int)), this, | 366 | BUTTON_TOOL_SAVEAS, SIGNAL(clicked(int)), this, |
328 | SLOT(saveAs_slot()), true, i18n("Save as")); | 367 | SLOT(saveAs_slot()), true, i18n("Save as")); |
329 | toolBar()->insertButton(icons.loadIcon("fileprint", KIcon::Toolbar), | 368 | toolBar()->insertButton(picons->loadIcon("fileprint", KIcon::Toolbar), |
330 | BUTTON_TOOL_PRINT, SIGNAL(clicked(int)), this, | 369 | BUTTON_TOOL_PRINT, SIGNAL(clicked(int)), this, |
331 | SLOT(print_slot()), true, i18n("Print...")); | 370 | SLOT(print_slot()), true, i18n("Print...")); |
332 | toolBar()->insertSeparator(); | 371 | toolBar()->insertSeparator(); |
333 | toolBar()->insertButton(icons.loadIcon("pencil", KIcon::Toolbar), | 372 | toolBar()->insertButton(picons->loadIcon("pencil", KIcon::Toolbar), |
334 | BUTTON_TOOL_ADD, SIGNAL(clicked(int)), this, | 373 | BUTTON_TOOL_ADD, SIGNAL(clicked(int)), this, |
335 | SLOT(addPwd_slot()), true, | 374 | SLOT(addPwd_slot()), true, |
336 | i18n("Add password")); | 375 | i18n("Add password")); |
337 | toolBar()->insertButton(icons.loadIcon("edit", KIcon::Toolbar), | 376 | toolBar()->insertButton(picons->loadIcon("edit", KIcon::Toolbar), |
338 | BUTTON_TOOL_EDIT, SIGNAL(clicked(int)), this, | 377 | BUTTON_TOOL_EDIT, SIGNAL(clicked(int)), this, |
339 | SLOT(editPwd_slot()), true, | 378 | SLOT(editPwd_slot()), true, |
340 | i18n("Edit password")); | 379 | i18n("Edit password")); |
341 | toolBar()->insertButton(icons.loadIcon("editdelete", KIcon::Toolbar), | 380 | toolBar()->insertButton(picons->loadIcon("editdelete", KIcon::Toolbar), |
342 | BUTTON_TOOL_DEL, SIGNAL(clicked(int)), this, | 381 | BUTTON_TOOL_DEL, SIGNAL(clicked(int)), this, |
343 | SLOT(deletePwd_slot()), true, | 382 | SLOT(deletePwd_slot()), true, |
344 | i18n("Delete password")); | 383 | i18n("Delete password")); |
345 | toolBar()->insertSeparator(); | 384 | toolBar()->insertSeparator(); |
346 | toolBar()->insertButton(icons.loadIcon("find", KIcon::Toolbar), | 385 | toolBar()->insertButton(picons->loadIcon("find", KIcon::Toolbar), |
347 | BUTTON_TOOL_FIND, SIGNAL(clicked(int)), this, | 386 | BUTTON_TOOL_FIND, SIGNAL(clicked(int)), this, |
348 | SLOT(find_slot()), true, i18n("Find entry")); | 387 | SLOT(find_slot()), true, i18n("Find entry")); |
349 | toolBar()->insertSeparator(); | 388 | toolBar()->insertSeparator(); |
350 | toolBar()->insertButton(icons.loadIcon("halfencrypted", KIcon::Toolbar), | 389 | toolBar()->insertButton(picons->loadIcon("halfencrypted", KIcon::Toolbar), |
351 | BUTTON_TOOL_LOCK, SIGNAL(clicked(int)), this, | 390 | BUTTON_TOOL_LOCK, SIGNAL(clicked(int)), this, |
352 | SLOT(lockWnd_slot()), true, | 391 | SLOT(lockWnd_slot()), true, |
353 | i18n("Lock all entries")); | 392 | i18n("Lock all entries")); |
354 | toolBar()->insertButton(icons.loadIcon("encrypted", KIcon::Toolbar), | 393 | toolBar()->insertButton(picons->loadIcon("encrypted", KIcon::Toolbar), |
355 | BUTTON_TOOL_DEEPLOCK, SIGNAL(clicked(int)), this, | 394 | BUTTON_TOOL_DEEPLOCK, SIGNAL(clicked(int)), this, |
356 | SLOT(deepLockWnd_slot()), true, | 395 | SLOT(deepLockWnd_slot()), true, |
357 | i18n("Deep-Lock all entries")); | 396 | i18n("Deep-Lock all entries")); |
358 | toolBar()->insertButton(icons.loadIcon("decrypted", KIcon::Toolbar), | 397 | toolBar()->insertButton(picons->loadIcon("decrypted", KIcon::Toolbar), |
359 | BUTTON_TOOL_UNLOCK, SIGNAL(clicked(int)), this, | 398 | BUTTON_TOOL_UNLOCK, SIGNAL(clicked(int)), this, |
360 | SLOT(unlockWnd_slot()), true, | 399 | SLOT(unlockWnd_slot()), true, |
361 | i18n("Unlock all entries")); | 400 | i18n("Unlock all entries")); |
362 | } | 401 | } |
363 | 402 | ||
364 | void PwM::initMetrics() | 403 | void PwM::initMetrics() |
365 | { | 404 | { |
366 | QSize s = conf()->confWndMainWndSize(); | 405 | QSize s = conf()->confWndMainWndSize(); |
367 | if (s.isValid()) | 406 | if (s.isValid()) |
368 | resize(s); | 407 | resize(s); |
369 | else | 408 | else |
370 | resize(DEFAULT_SIZE); | 409 | resize(DEFAULT_SIZE); |
371 | } | 410 | } |
372 | 411 | ||
373 | void PwM::updateCaption() | 412 | void PwM::updateCaption() |
374 | { | 413 | { |
375 | setPlainCaption(curDoc()->getTitle() + " - " PROG_NAME " " PACKAGE_VER); | 414 | setPlainCaption(curDoc()->getTitle() + " - " PROG_NAME " " PACKAGE_VER); |
376 | } | 415 | } |
377 | 416 | ||
378 | void PwM::hideEvent(QHideEvent *) | 417 | void PwM::hideEvent(QHideEvent *) |
379 | { | 418 | { |
380 | if (isMinimized()) { | 419 | if (isMinimized()) { |
381 | if (init->tray()) { | 420 | if (init->tray()) { |
382 | forceMinimizeToTray = true; | 421 | forceMinimizeToTray = true; |
383 | close(); | 422 | close(); |
384 | } | 423 | } |
385 | int mmlock = conf()->confGlobMinimizeLock(); | 424 | int mmlock = conf()->confGlobMinimizeLock(); |
386 | switch (mmlock) { | 425 | switch (mmlock) { |
387 | case 0: // don't lock anything | 426 | case 0: // don't lock anything |
388 | break; | 427 | break; |
389 | case 1: {// normal lock | 428 | case 1: {// normal lock |
390 | curDoc()->lockAll(true); | 429 | curDoc()->lockAll(true); |
391 | break; | 430 | break; |
392 | } case 2: {// deep-lock | 431 | } case 2: {// deep-lock |
393 | curDoc()->deepLock(); | 432 | curDoc()->deepLock(); |
394 | break; | 433 | break; |
395 | } default: | 434 | } default: |
396 | WARN(); | 435 | WARN(); |
397 | } | 436 | } |
398 | } | 437 | } |
399 | } | 438 | } |
400 | 439 | ||
401 | void PwM::setVirgin(bool v) | 440 | void PwM::setVirgin(bool v) |
402 | { | 441 | { |
403 | if (virgin == v) | 442 | if (virgin == v) |
404 | return; | 443 | return; |
405 | virgin = v; | 444 | virgin = v; |
406 | filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVE, !v); | 445 | filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVE, !v); |
407 | filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVEAS, !v); | 446 | filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVEAS, !v); |
408 | filePopup->setItemEnabled(BUTTON_POPUP_FILE_EXPORT, !v); | 447 | filePopup->setItemEnabled(BUTTON_POPUP_FILE_EXPORT, !v); |
409 | filePopup->setItemEnabled(BUTTON_POPUP_FILE_PRINT, !v); | 448 | filePopup->setItemEnabled(BUTTON_POPUP_FILE_PRINT, !v); |
410 | managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_EDIT, !v); | 449 | managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_EDIT, !v); |
411 | managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_DEL, !v); | 450 | managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_DEL, !v); |
412 | managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_CHANGEMP, !v); | 451 | managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_CHANGEMP, !v); |
413 | viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_LOCK, !v); | 452 | viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_LOCK, !v); |
414 | viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_DEEPLOCK, !v); | 453 | viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_DEEPLOCK, !v); |
415 | viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_UNLOCK, !v); | 454 | viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_UNLOCK, !v); |
416 | viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_FIND, !v); | 455 | viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_FIND, !v); |
417 | toolBar()->setItemEnabled(BUTTON_TOOL_SAVE, !v); | 456 | toolBar()->setItemEnabled(BUTTON_TOOL_SAVE, !v); |
418 | toolBar()->setItemEnabled(BUTTON_TOOL_SAVEAS, !v); | 457 | toolBar()->setItemEnabled(BUTTON_TOOL_SAVEAS, !v); |
419 | toolBar()->setItemEnabled(BUTTON_TOOL_PRINT, !v); | 458 | toolBar()->setItemEnabled(BUTTON_TOOL_PRINT, !v); |
420 | toolBar()->setItemEnabled(BUTTON_TOOL_EDIT, !v); | 459 | toolBar()->setItemEnabled(BUTTON_TOOL_EDIT, !v); |
421 | toolBar()->setItemEnabled(BUTTON_TOOL_DEL, !v); | 460 | toolBar()->setItemEnabled(BUTTON_TOOL_DEL, !v); |
422 | toolBar()->setItemEnabled(BUTTON_TOOL_LOCK, !v); | 461 | toolBar()->setItemEnabled(BUTTON_TOOL_LOCK, !v); |
423 | toolBar()->setItemEnabled(BUTTON_TOOL_DEEPLOCK, !v); | 462 | toolBar()->setItemEnabled(BUTTON_TOOL_DEEPLOCK, !v); |
424 | toolBar()->setItemEnabled(BUTTON_TOOL_UNLOCK, !v); | 463 | toolBar()->setItemEnabled(BUTTON_TOOL_UNLOCK, !v); |
425 | toolBar()->setItemEnabled(BUTTON_TOOL_FIND, !v); | 464 | toolBar()->setItemEnabled(BUTTON_TOOL_FIND, !v); |
426 | } | 465 | } |
427 | 466 | ||
428 | void PwM::new_slot() | 467 | void PwM::new_slot() |
429 | { | 468 | { |
430 | init->createMainWnd(); | 469 | init->createMainWnd(); |
431 | } | 470 | } |
432 | 471 | ||
433 | //US ENH | 472 | //US ENH |
434 | void PwM::open_slot() | 473 | void PwM::open_slot() |
435 | { | 474 | { |
436 | open_slot(""); | 475 | open_slot(""); |
437 | } | 476 | } |
438 | 477 | ||
439 | void PwM::open_slot(QString fn) | 478 | void PwM::open_slot(QString fn) |
440 | { | 479 | { |
441 | openDoc(fn); | 480 | openDoc(fn); |
442 | } | 481 | } |
443 | 482 | ||
444 | PwMDoc * PwM::openDoc(QString filename, bool openDeepLocked) | 483 | PwMDoc * PwM::openDoc(QString filename, bool openDeepLocked) |
445 | { | 484 | { |
446 | if (!isVirgin()) { | 485 | if (!isVirgin()) { |
447 | // open the document in a new window. | 486 | // open the document in a new window. |
448 | PwM *newInstance = init->createMainWnd(); | 487 | PwM *newInstance = init->createMainWnd(); |
449 | PwMDoc *newDoc = newInstance->openDoc(filename, openDeepLocked); | 488 | PwMDoc *newDoc = newInstance->openDoc(filename, openDeepLocked); |
450 | if (!newDoc) { | 489 | if (!newDoc) { |
451 | newInstance->setForceQuit(true); | 490 | newInstance->setForceQuit(true); |
452 | delete_and_null(newInstance); | 491 | delete_and_null(newInstance); |
453 | } | 492 | } |
454 | return newDoc; | 493 | return newDoc; |
455 | } | 494 | } |
456 | 495 | ||
457 | if (!curDoc()->openDocUi(curDoc(), filename, openDeepLocked)) | 496 | if (!curDoc()->openDocUi(curDoc(), filename, openDeepLocked)) |
458 | return 0; | 497 | return 0; |
459 | showStatMsg(i18n("Successfully opened file.")); | 498 | showStatMsg(i18n("Successfully opened file.")); |
460 | updateCaption(); | 499 | updateCaption(); |
461 | setVirgin(false); | 500 | setVirgin(false); |
462 | return curDoc(); | 501 | return curDoc(); |
463 | } | 502 | } |
464 | 503 | ||
465 | PwMView * PwM::makeNewListView(PwMDoc *doc) | 504 | PwMView * PwM::makeNewListView(PwMDoc *doc) |
466 | { | 505 | { |
467 | PwMView *ret = new PwMView(this, this, doc); | 506 | PwMView *ret = new PwMView(this, this, doc); |
468 | ret->setFont(conf()->confGlobEntryFont()); | 507 | ret->setFont(conf()->confGlobEntryFont()); |
469 | ret->show(); | 508 | ret->show(); |
470 | return ret; | 509 | return ret; |
471 | } | 510 | } |
472 | 511 | ||
473 | void PwM::close_slot() | 512 | void PwM::close_slot() |
474 | { | 513 | { |
475 | close(); | 514 | close(); |
476 | } | 515 | } |
477 | 516 | ||
478 | void PwM::quitButton_slot() | 517 | void PwM::quitButton_slot() |
479 | { | 518 | { |
480 | init->shutdownApp(0); | 519 | init->shutdownApp(0); |
481 | } | 520 | } |
482 | 521 | ||
483 | void PwM::save_slot() | 522 | void PwM::save_slot() |
484 | { | 523 | { |
485 | save(); | 524 | save(); |
486 | } | 525 | } |
487 | 526 | ||
488 | bool PwM::save() | 527 | bool PwM::save() |
489 | { | 528 | { |
490 | if (!curDoc()->saveDocUi(curDoc())) | 529 | if (!curDoc()->saveDocUi(curDoc())) |
491 | return false; | 530 | return false; |
492 | showStatMsg(i18n("Successfully saved data.")); | 531 | showStatMsg(i18n("Successfully saved data.")); |
493 | updateCaption(); | 532 | updateCaption(); |
494 | return true; | 533 | return true; |
495 | } | 534 | } |
496 | 535 | ||
497 | void PwM::saveAs_slot() | 536 | void PwM::saveAs_slot() |
498 | { | 537 | { |
499 | saveAs(); | 538 | saveAs(); |
500 | } | 539 | } |
501 | 540 | ||
502 | bool PwM::saveAs() | 541 | bool PwM::saveAs() |
503 | { | 542 | { |
504 | if (!curDoc()->saveAsDocUi(curDoc())) | 543 | if (!curDoc()->saveAsDocUi(curDoc())) |
505 | return false; | 544 | return false; |
506 | showStatMsg(i18n("Successfully saved data.")); | 545 | showStatMsg(i18n("Successfully saved data.")); |
507 | updateCaption(); | 546 | updateCaption(); |
508 | return true; | 547 | return true; |
509 | } | 548 | } |
510 | 549 | ||
511 | //US ENH : changed code to run with older MOC | 550 | //US ENH : changed code to run with older MOC |
512 | void PwM::addPwd_slot() | 551 | void PwM::addPwd_slot() |
513 | { | 552 | { |
514 | addPwd_slot(0, 0); | 553 | addPwd_slot(0, 0); |
515 | } | 554 | } |
516 | 555 | ||
517 | void PwM::addPwd_slot(QString *pw, PwMDoc *_doc) | 556 | void PwM::addPwd_slot(QString *pw, PwMDoc *_doc) |
518 | { | 557 | { |
519 | PwMDoc *doc; | 558 | PwMDoc *doc; |
520 | if (_doc) { | 559 | if (_doc) { |
521 | doc = _doc; | 560 | doc = _doc; |
522 | } else { | 561 | } else { |
523 | doc = curDoc(); | 562 | doc = curDoc(); |
524 | } | 563 | } |
525 | PWM_ASSERT(doc); | 564 | PWM_ASSERT(doc); |
526 | doc->timer()->getLock(DocTimer::id_autoLockTimer); | 565 | doc->timer()->getLock(DocTimer::id_autoLockTimer); |
527 | AddEntryWndImpl w; | 566 | AddEntryWndImpl w; |
528 | vector<string> catList; | 567 | vector<string> catList; |
529 | doc->getCategoryList(&catList); | 568 | doc->getCategoryList(&catList); |
530 | unsigned i, size = catList.size(); | 569 | unsigned i, size = catList.size(); |
531 | for (i = 0; i < size; ++i) { | 570 | for (i = 0; i < size; ++i) { |
532 | w.addCategory(catList[i].c_str()); | 571 | w.addCategory(catList[i].c_str()); |
533 | } | 572 | } |
534 | w.setCurrCategory(view->getCurrentCategory()); | 573 | w.setCurrCategory(view->getCurrentCategory()); |
535 | if (pw) | 574 | if (pw) |
536 | w.pwLineEdit->setText(*pw); | 575 | w.pwLineEdit->setText(*pw); |
537 | 576 | ||
538 | tryAgain: | 577 | tryAgain: |
539 | if (w.exec() == 1) { | 578 | if (w.exec() == 1) |
579 | { | ||
540 | PwMDataItem d; | 580 | PwMDataItem d; |
541 | d.desc = w.getDescription().latin1(); | 581 | d.desc = w.getDescription().latin1(); |
542 | d.name = w.getUsername().latin1(); | 582 | d.name = w.getUsername().latin1(); |
543 | d.pw = w.getPassword().latin1(); | 583 | d.pw = w.getPassword().latin1(); |
544 | d.comment = w.getComment().latin1(); | 584 | d.comment = w.getComment().latin1(); |
545 | d.url = w.getUrl().latin1(); | 585 | d.url = w.getUrl().latin1(); |
546 | d.launcher = w.getLauncher().latin1(); | 586 | d.launcher = w.getLauncher().latin1(); |
547 | PwMerror ret = doc->addEntry(w.getCategory(), &d); | 587 | PwMerror ret = doc->addEntry(w.getCategory(), &d); |
548 | if (ret == e_entryExists) { | 588 | if (ret == e_entryExists) { |
549 | KMessageBox::error(this, | 589 | KMessageBox::error(this, |
550 | i18n | 590 | i18n |
551 | ("An entry with this \"Description\", " | 591 | ("An entry with this \"Description\", " |
552 | "does already exist.\n" | 592 | "does already exist.\n" |
553 | "Please select another description."), | 593 | "Please select another description."), |
554 | i18n("entry already exists.")); | 594 | i18n("entry already exists.")); |
555 | goto tryAgain; | 595 | goto tryAgain; |
556 | } else if (ret == e_maxAllowedEntr) { | 596 | } else if (ret == e_maxAllowedEntr) { |
557 | KMessageBox::error(this, i18n("The maximum possible number of entries " | 597 | KMessageBox::error(this, i18n("The maximum possible number of entries " |
558 | "has been reached. You can't add more entries."), | 598 | "has been reached. You can't add more entries."), |
559 | i18n("maximum number of entries")); | 599 | i18n("maximum number of entries")); |
560 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 600 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
561 | return; | 601 | return; |
562 | } | 602 | } |
563 | } | 603 | } |
564 | setVirgin(false); | 604 | setVirgin(false); |
565 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 605 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
566 | } | 606 | } |
567 | 607 | ||
568 | //US ENH : changed code to run with older MOC | 608 | //US ENH : changed code to run with older MOC |
569 | void PwM::editPwd_slot() | 609 | void PwM::editPwd_slot() |
570 | { | 610 | { |
571 | editPwd_slot(0,0,0); | 611 | editPwd_slot(0,0,0); |
572 | } | 612 | } |
573 | 613 | ||
574 | void PwM::editPwd_slot(const QString *category) | 614 | void PwM::editPwd_slot(const QString *category) |
575 | { | 615 | { |
576 | editPwd_slot(category, 0, 0); | 616 | editPwd_slot(category, 0, 0); |
577 | } | 617 | } |
578 | 618 | ||
579 | void PwM::editPwd_slot(const QString *category, const int *index, | 619 | void PwM::editPwd_slot(const QString *category, const int *index, |
580 | PwMDoc *_doc) | 620 | PwMDoc *_doc) |
581 | { | 621 | { |
582 | PwMDoc *doc; | 622 | PwMDoc *doc; |
583 | if (_doc) { | 623 | if (_doc) { |
584 | doc = _doc; | 624 | doc = _doc; |
585 | } else { | 625 | } else { |
586 | doc = curDoc(); | 626 | doc = curDoc(); |
587 | } | 627 | } |
588 | PWM_ASSERT(doc); | 628 | PWM_ASSERT(doc); |
589 | if (doc->isDocEmpty()) | 629 | if (doc->isDocEmpty()) |
590 | return; | 630 | return; |
591 | if (doc->isDeepLocked()) | 631 | if (doc->isDeepLocked()) |
592 | return; | 632 | return; |
593 | doc->timer()->getLock(DocTimer::id_autoLockTimer); | 633 | doc->timer()->getLock(DocTimer::id_autoLockTimer); |
594 | unsigned int curEntryIndex; | 634 | unsigned int curEntryIndex; |
595 | if (index) { | 635 | if (index) { |
596 | curEntryIndex = *index; | 636 | curEntryIndex = *index; |
597 | } else { | 637 | } else { |
598 | if (!(view->getCurEntryIndex(&curEntryIndex))) { | 638 | if (!(view->getCurEntryIndex(&curEntryIndex))) { |
599 | printDebug("couldn't get index. Maybe we have a binary entry here."); | 639 | printDebug("couldn't get index. Maybe we have a binary entry here."); |
600 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 640 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
601 | return; | 641 | return; |
602 | } | 642 | } |
603 | } | 643 | } |
604 | QString curCategory; | 644 | QString curCategory; |
605 | if (category) { | 645 | if (category) { |
606 | curCategory = *category; | 646 | curCategory = *category; |
607 | } else { | 647 | } else { |
608 | curCategory = view->getCurrentCategory(); | 648 | curCategory = view->getCurrentCategory(); |
609 | } | 649 | } |
610 | PwMDataItem currItem; | 650 | PwMDataItem currItem; |
611 | if (!doc->getEntry(curCategory, curEntryIndex, &currItem, true)) { | 651 | if (!doc->getEntry(curCategory, curEntryIndex, &currItem, true)) { |
612 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 652 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
613 | return; | 653 | return; |
614 | } | 654 | } |
615 | BUG_ON(currItem.binary); | 655 | BUG_ON(currItem.binary); |
616 | 656 | ||
617 | AddEntryWndImpl w; | 657 | AddEntryWndImpl w; |
618 | vector<string> catList; | 658 | vector<string> catList; |
619 | doc->getCategoryList(&catList); | 659 | doc->getCategoryList(&catList); |
620 | unsigned i, size = catList.size(); | 660 | unsigned i, size = catList.size(); |
621 | for (i = 0; i < size; ++i) { | 661 | for (i = 0; i < size; ++i) { |
622 | w.addCategory(catList[i].c_str()); | 662 | w.addCategory(catList[i].c_str()); |
623 | } | 663 | } |
624 | w.setCurrCategory(curCategory); | 664 | w.setCurrCategory(curCategory); |
625 | w.setDescription(currItem.desc.c_str()); | 665 | w.setDescription(currItem.desc.c_str()); |
626 | w.setUsername(currItem.name.c_str()); | 666 | w.setUsername(currItem.name.c_str()); |
627 | w.setPassword(currItem.pw.c_str()); | 667 | w.setPassword(currItem.pw.c_str()); |
628 | w.setUrl(currItem.url.c_str()); | 668 | w.setUrl(currItem.url.c_str()); |
629 | w.setLauncher(currItem.launcher.c_str()); | 669 | w.setLauncher(currItem.launcher.c_str()); |
630 | w.setComment(currItem.comment.c_str()); | 670 | w.setComment(currItem.comment.c_str()); |
631 | if (w.exec() == 1) { | 671 | if (w.exec() == 1) { |
632 | currItem.desc = w.getDescription().latin1(); | 672 | currItem.desc = w.getDescription().latin1(); |
633 | currItem.name = w.getUsername().latin1(); | 673 | currItem.name = w.getUsername().latin1(); |
634 | currItem.pw = w.getPassword().latin1(); | 674 | currItem.pw = w.getPassword().latin1(); |
635 | currItem.comment = w.getComment().latin1(); | 675 | currItem.comment = w.getComment().latin1(); |
@@ -1094,99 +1134,150 @@ void PwM::genNewCard_slot() | |||
1094 | #endif | 1134 | #endif |
1095 | } | 1135 | } |
1096 | 1136 | ||
1097 | void PwM::eraseCard_slot() | 1137 | void PwM::eraseCard_slot() |
1098 | { | 1138 | { |
1099 | #ifdef CONFIG_KEYCARD | 1139 | #ifdef CONFIG_KEYCARD |
1100 | init->keycard()->eraseCard(); | 1140 | init->keycard()->eraseCard(); |
1101 | #endif | 1141 | #endif |
1102 | } | 1142 | } |
1103 | 1143 | ||
1104 | void PwM::readCardId_slot() | 1144 | void PwM::readCardId_slot() |
1105 | { | 1145 | { |
1106 | #ifdef CONFIG_KEYCARD | 1146 | #ifdef CONFIG_KEYCARD |
1107 | init->keycard()->displayKey(); | 1147 | init->keycard()->displayKey(); |
1108 | #endif | 1148 | #endif |
1109 | } | 1149 | } |
1110 | 1150 | ||
1111 | void PwM::makeCardBackup_slot() | 1151 | void PwM::makeCardBackup_slot() |
1112 | { | 1152 | { |
1113 | #ifdef CONFIG_KEYCARD | 1153 | #ifdef CONFIG_KEYCARD |
1114 | init->keycard()->makeBackupImage(); | 1154 | init->keycard()->makeBackupImage(); |
1115 | #endif | 1155 | #endif |
1116 | } | 1156 | } |
1117 | 1157 | ||
1118 | void PwM::replayCardBackup_slot() | 1158 | void PwM::replayCardBackup_slot() |
1119 | { | 1159 | { |
1120 | #ifdef CONFIG_KEYCARD | 1160 | #ifdef CONFIG_KEYCARD |
1121 | init->keycard()->replayBackupImage(); | 1161 | init->keycard()->replayBackupImage(); |
1122 | #endif | 1162 | #endif |
1123 | } | 1163 | } |
1124 | 1164 | ||
1125 | void PwM::execLauncher_slot() | 1165 | void PwM::execLauncher_slot() |
1126 | { | 1166 | { |
1127 | PWM_ASSERT(curDoc()); | 1167 | PWM_ASSERT(curDoc()); |
1128 | if (curDoc()->isDeepLocked()) | 1168 | if (curDoc()->isDeepLocked()) |
1129 | return; | 1169 | return; |
1130 | unsigned int curEntryIndex; | 1170 | unsigned int curEntryIndex; |
1131 | if (!view->getCurEntryIndex(&curEntryIndex)) | 1171 | if (!view->getCurEntryIndex(&curEntryIndex)) |
1132 | return; | 1172 | return; |
1133 | bool ret = curDoc()->execLauncher(view->getCurrentCategory(), | 1173 | bool ret = curDoc()->execLauncher(view->getCurrentCategory(), |
1134 | curEntryIndex); | 1174 | curEntryIndex); |
1135 | if (ret) | 1175 | if (ret) |
1136 | showStatMsg(i18n("Executed the \"Launcher\".")); | 1176 | showStatMsg(i18n("Executed the \"Launcher\".")); |
1137 | else | 1177 | else |
1138 | showStatMsg(i18n("ERROR: Couldn't execute the \"Launcher\"!")); | 1178 | showStatMsg(i18n("ERROR: Couldn't execute the \"Launcher\"!")); |
1139 | } | 1179 | } |
1140 | 1180 | ||
1141 | void PwM::goToURL_slot() | 1181 | void PwM::goToURL_slot() |
1142 | { | 1182 | { |
1143 | PWM_ASSERT(curDoc()); | 1183 | PWM_ASSERT(curDoc()); |
1144 | if (curDoc()->isDeepLocked()) | 1184 | if (curDoc()->isDeepLocked()) |
1145 | return; | 1185 | return; |
1146 | unsigned int curEntryIndex; | 1186 | unsigned int curEntryIndex; |
1147 | if (!view->getCurEntryIndex(&curEntryIndex)) | 1187 | if (!view->getCurEntryIndex(&curEntryIndex)) |
1148 | return; | 1188 | return; |
1149 | bool ret = curDoc()->goToURL(view->getCurrentCategory(), | 1189 | bool ret = curDoc()->goToURL(view->getCurrentCategory(), |
1150 | curEntryIndex); | 1190 | curEntryIndex); |
1151 | if (ret) | 1191 | if (ret) |
1152 | showStatMsg(i18n("started browser with current URL.")); | 1192 | showStatMsg(i18n("started browser with current URL.")); |
1153 | else | 1193 | else |
1154 | showStatMsg(i18n("ERROR: Couldn't start browser! Maybe invalid URL?")); | 1194 | showStatMsg(i18n("ERROR: Couldn't start browser! Maybe invalid URL?")); |
1155 | } | 1195 | } |
1156 | 1196 | ||
1157 | void PwM::copyToClipboard(const QString &s) | 1197 | void PwM::copyToClipboard(const QString &s) |
1158 | { | 1198 | { |
1159 | QClipboard *cb = QApplication::clipboard(); | 1199 | QClipboard *cb = QApplication::clipboard(); |
1160 | #ifndef PWM_EMBEDDED | 1200 | #ifndef PWM_EMBEDDED |
1161 | if (cb->supportsSelection()) | 1201 | if (cb->supportsSelection()) |
1162 | cb->setText(s, QClipboard::Selection); | 1202 | cb->setText(s, QClipboard::Selection); |
1163 | cb->setText(s, QClipboard::Clipboard); | 1203 | cb->setText(s, QClipboard::Clipboard); |
1164 | #else | 1204 | #else |
1165 | cb->setText(s); | 1205 | cb->setText(s); |
1166 | 1206 | ||
1167 | #endif | 1207 | #endif |
1168 | 1208 | ||
1169 | } | 1209 | } |
1170 | 1210 | ||
1171 | void PwM::showStatMsg(const QString &msg) | 1211 | void PwM::showStatMsg(const QString &msg) |
1172 | { | 1212 | { |
1173 | #ifndef PWM_EMBEDDED | 1213 | #ifndef PWM_EMBEDDED |
1174 | KStatusBar *statBar = statusBar(); | 1214 | KStatusBar *statBar = statusBar(); |
1175 | statBar->message(msg, STATUSBAR_MSG_TIMEOUT * 1000); | 1215 | statBar->message(msg, STATUSBAR_MSG_TIMEOUT * 1000); |
1176 | #else | 1216 | #else |
1177 | qDebug("Statusbar : %s",msg.latin1()); | 1217 | qDebug("Statusbar : %s",msg.latin1()); |
1178 | #endif | 1218 | #endif |
1179 | } | 1219 | } |
1180 | 1220 | ||
1181 | void PwM::focusInEvent(QFocusEvent *e) | 1221 | void PwM::focusInEvent(QFocusEvent *e) |
1182 | { | 1222 | { |
1183 | if (e->gotFocus()) { | 1223 | if (e->gotFocus()) { |
1184 | emit gotFocus(this); | 1224 | emit gotFocus(this); |
1185 | } else if (e->lostFocus()) { | 1225 | } else if (e->lostFocus()) { |
1186 | emit lostFocus(this); | 1226 | emit lostFocus(this); |
1187 | } | 1227 | } |
1188 | } | 1228 | } |
1189 | 1229 | ||
1230 | |||
1231 | #ifdef PWM_EMBEDDED | ||
1232 | |||
1233 | void PwM::showLicense_slot() | ||
1234 | { | ||
1235 | KApplication::showLicence(); | ||
1236 | } | ||
1237 | |||
1238 | void PwM::faq_slot() | ||
1239 | { | ||
1240 | KApplication::showFile( "PWM/Pi FAQ", "kdepim/pwmanager/pwmanagerFAQ.txt" ); | ||
1241 | } | ||
1242 | |||
1243 | void PwM::createAboutData_slot() | ||
1244 | { | ||
1245 | QString version; | ||
1246 | #include <../version> | ||
1247 | QMessageBox::about( this, "About PwManager/Pi", | ||
1248 | "PwManager/Platform-independent\n" | ||
1249 | "(PWM/Pi) " +version + " - " + | ||
1250 | #ifdef DESKTOP_VERSION | ||
1251 | "Desktop Edition\n" | ||
1252 | #else | ||
1253 | "PDA-Edition\n" | ||
1254 | "for: Zaurus 5500 / 7x0 / 8x0\n" | ||
1255 | #endif | ||
1256 | |||
1257 | "(c) 2004 Ulf Schenk\n" | ||
1258 | "(c) 2004 Lutz Rogowski\n" | ||
1259 | "(c) 1997-2003, The KDE PIM Team\n" | ||
1260 | |||
1261 | "Michael Buesch - main programming and current maintainer\nmbuesch@freenet.de\n" | ||
1262 | "Matt Scifo - original implementaion of \n" | ||
1263 | "\"categories\" and the password-tree \n" | ||
1264 | "in the system-tray. Original implementations of \n" | ||
1265 | "numerous view-improvements.\n" | ||
1266 | "mscifo@o1.com\n" | ||
1267 | "Elias Probst - Gentoo ebuild maintainer.\nelias.probst@gmx.de\n" | ||
1268 | "George Staikos - KWallet\nstaikos@kde.org\n" | ||
1269 | "Matthew Palmer - rc2 code\nmjp16@uow.edu.au\n" | ||
1270 | "Olivier Sessink - gpasman\ngpasman@nl.linux.org\n" | ||
1271 | "The libgcrypt developers - Blowfish and SHA1 algorithms\nftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/\n" | ||
1272 | "Troy Engel - kpasman\n tengel@sonic.net\n" | ||
1273 | "Wickey - graphics-design in older versions\nwickey@gmx.at\n" | ||
1274 | "Ian MacGregor - original documentation author.\n" | ||
1275 | ); | ||
1276 | } | ||
1277 | |||
1278 | #endif | ||
1279 | |||
1280 | |||
1190 | #ifndef PWM_EMBEDDED | 1281 | #ifndef PWM_EMBEDDED |
1191 | #include "pwm.moc" | 1282 | #include "pwm.moc" |
1192 | #endif | 1283 | #endif |
diff --git a/pwmanager/pwmanager/pwm.h b/pwmanager/pwmanager/pwm.h index 3a79e67..36a8b5b 100644 --- a/pwmanager/pwmanager/pwm.h +++ b/pwmanager/pwmanager/pwm.h | |||
@@ -73,183 +73,189 @@ public: | |||
73 | PwMDoc * openDoc(QString filename, bool openDeepLocked = false); | 73 | PwMDoc * openDoc(QString filename, bool openDeepLocked = false); |
74 | /** show a message on the global status bar. | 74 | /** show a message on the global status bar. |
75 | * The message times out after some seconds. | 75 | * The message times out after some seconds. |
76 | */ | 76 | */ |
77 | void showStatMsg(const QString &msg); | 77 | void showStatMsg(const QString &msg); |
78 | /** ask the user where to save the doc (if it has not been saved, yet) | 78 | /** ask the user where to save the doc (if it has not been saved, yet) |
79 | * and write the data to disk. | 79 | * and write the data to disk. |
80 | */ | 80 | */ |
81 | bool save(); | 81 | bool save(); |
82 | /** ask the user where to save the doc | 82 | /** ask the user where to save the doc |
83 | * and write the data to disk. | 83 | * and write the data to disk. |
84 | */ | 84 | */ |
85 | bool saveAs(); | 85 | bool saveAs(); |
86 | /** force quit. Quit this window, always! Don't minimize it */ | 86 | /** force quit. Quit this window, always! Don't minimize it */ |
87 | bool isForceQuit() | 87 | bool isForceQuit() |
88 | { return forceQuit; } | 88 | { return forceQuit; } |
89 | /** set forceQuit */ | 89 | /** set forceQuit */ |
90 | void setForceQuit(bool force) | 90 | void setForceQuit(bool force) |
91 | { forceQuit = force; } | 91 | { forceQuit = force; } |
92 | /** force minimize this window */ | 92 | /** force minimize this window */ |
93 | bool isForceMinimizeToTray() | 93 | bool isForceMinimizeToTray() |
94 | { return forceMinimizeToTray; } | 94 | { return forceMinimizeToTray; } |
95 | /** set forceMinimizeToTray */ | 95 | /** set forceMinimizeToTray */ |
96 | void setForceMinimizeToTray(bool force) | 96 | void setForceMinimizeToTray(bool force) |
97 | { forceMinimizeToTray = force; } | 97 | { forceMinimizeToTray = force; } |
98 | 98 | ||
99 | public slots: | 99 | public slots: |
100 | /** file/new triggered */ | 100 | /** file/new triggered */ |
101 | void new_slot(); | 101 | void new_slot(); |
102 | /** file/open triggered */ | 102 | /** file/open triggered */ |
103 | //US ENH | 103 | //US ENH |
104 | void open_slot(); | 104 | void open_slot(); |
105 | void open_slot(QString fn); | 105 | void open_slot(QString fn); |
106 | /** file/close triggered */ | 106 | /** file/close triggered */ |
107 | void close_slot(); | 107 | void close_slot(); |
108 | /** file/quit triggered */ | 108 | /** file/quit triggered */ |
109 | void quitButton_slot(); | 109 | void quitButton_slot(); |
110 | /** file/save triggered */ | 110 | /** file/save triggered */ |
111 | void save_slot(); | 111 | void save_slot(); |
112 | /** file/saveAs triggered */ | 112 | /** file/saveAs triggered */ |
113 | void saveAs_slot(); | 113 | void saveAs_slot(); |
114 | /** file/export/text triggered */ | 114 | /** file/export/text triggered */ |
115 | void exportToText(); | 115 | void exportToText(); |
116 | /** file/export/gpasman triggered */ | 116 | /** file/export/gpasman triggered */ |
117 | void exportToGpasman(); | 117 | void exportToGpasman(); |
118 | /** file/export/kwallet triggered */ | 118 | /** file/export/kwallet triggered */ |
119 | void exportToKWallet(); | 119 | void exportToKWallet(); |
120 | /** file/import/text triggered */ | 120 | /** file/import/text triggered */ |
121 | bool importFromText(); | 121 | bool importFromText(); |
122 | /** file/import/gpasman triggered */ | 122 | /** file/import/gpasman triggered */ |
123 | bool importFromGpasman(); | 123 | bool importFromGpasman(); |
124 | /** file/import/kwallet triggered */ | 124 | /** file/import/kwallet triggered */ |
125 | bool importKWallet(); | 125 | bool importKWallet(); |
126 | /** file/print triggered */ | 126 | /** file/print triggered */ |
127 | void print_slot(); | 127 | void print_slot(); |
128 | /** manage/add triggered */ | 128 | /** manage/add triggered */ |
129 | //US ENH : changed code to run with older MOC | 129 | //US ENH : changed code to run with older MOC |
130 | void addPwd_slot(); | 130 | void addPwd_slot(); |
131 | void addPwd_slot(QString *pw, PwMDoc *_doc); | 131 | void addPwd_slot(QString *pw, PwMDoc *_doc); |
132 | /** manage/edit triggered */ | 132 | /** manage/edit triggered */ |
133 | //US ENH : changed code to run with older MOC | 133 | //US ENH : changed code to run with older MOC |
134 | void editPwd_slot(); | 134 | void editPwd_slot(); |
135 | void editPwd_slot(const QString *category); | 135 | void editPwd_slot(const QString *category); |
136 | void editPwd_slot(const QString *category = 0, const int *index = 0, | 136 | void editPwd_slot(const QString *category = 0, const int *index = 0, |
137 | PwMDoc *_doc = 0); | 137 | PwMDoc *_doc = 0); |
138 | /** manage/delete triggered */ | 138 | /** manage/delete triggered */ |
139 | void deletePwd_slot(); | 139 | void deletePwd_slot(); |
140 | /** execute the "Launcher" entry */ | 140 | /** execute the "Launcher" entry */ |
141 | void execLauncher_slot(); | 141 | void execLauncher_slot(); |
142 | /** open browser with URL entry */ | 142 | /** open browser with URL entry */ |
143 | void goToURL_slot(); | 143 | void goToURL_slot(); |
144 | /** manage/changeMasterPwd triggered */ | 144 | /** manage/changeMasterPwd triggered */ |
145 | void changeMasterPwd_slot(); | 145 | void changeMasterPwd_slot(); |
146 | /** lock current document */ | 146 | /** lock current document */ |
147 | void lockWnd_slot(); | 147 | void lockWnd_slot(); |
148 | /** deeplock current document */ | 148 | /** deeplock current document */ |
149 | void deepLockWnd_slot(); | 149 | void deepLockWnd_slot(); |
150 | /** window/unlock triggered */ | 150 | /** window/unlock triggered */ |
151 | void unlockWnd_slot(); | 151 | void unlockWnd_slot(); |
152 | /** find item */ | 152 | /** find item */ |
153 | void find_slot(); | 153 | void find_slot(); |
154 | /** configure clicked */ | 154 | /** configure clicked */ |
155 | void config_slot(); | 155 | void config_slot(); |
156 | /** (de)activate the "change master pw" button in the menu-bar */ | 156 | /** (de)activate the "change master pw" button in the menu-bar */ |
157 | void activateMpButton(bool activate = true); | 157 | void activateMpButton(bool activate = true); |
158 | /** generate a new chipcard */ | 158 | /** generate a new chipcard */ |
159 | void genNewCard_slot(); | 159 | void genNewCard_slot(); |
160 | /** completely erase the current card */ | 160 | /** completely erase the current card */ |
161 | void eraseCard_slot(); | 161 | void eraseCard_slot(); |
162 | /** returns the ID number of the current card */ | 162 | /** returns the ID number of the current card */ |
163 | void readCardId_slot(); | 163 | void readCardId_slot(); |
164 | /** make backup image of the current card */ | 164 | /** make backup image of the current card */ |
165 | void makeCardBackup_slot(); | 165 | void makeCardBackup_slot(); |
166 | /** write backup image to current card */ | 166 | /** write backup image to current card */ |
167 | void replayCardBackup_slot(); | 167 | void replayCardBackup_slot(); |
168 | 168 | ||
169 | #ifdef PWM_EMBEDDED | ||
170 | void showLicense_slot(); | ||
171 | void faq_slot(); | ||
172 | void createAboutData_slot(); | ||
173 | #endif | ||
174 | |||
169 | protected: | 175 | protected: |
170 | /** is this window virgin? */ | 176 | /** is this window virgin? */ |
171 | bool isVirgin() | 177 | bool isVirgin() |
172 | { return virgin; } | 178 | { return virgin; } |
173 | /** add/remove virginity */ | 179 | /** add/remove virginity */ |
174 | void setVirgin(bool v); | 180 | void setVirgin(bool v); |
175 | /** initialize the menubar */ | 181 | /** initialize the menubar */ |
176 | void initMenubar(); | 182 | void initMenubar(); |
177 | /** initialize the toolbar */ | 183 | /** initialize the toolbar */ |
178 | void initToolbar(); | 184 | void initToolbar(); |
179 | /** initialize the window-metrics */ | 185 | /** initialize the window-metrics */ |
180 | void initMetrics(); | 186 | void initMetrics(); |
181 | /** close-event */ | 187 | /** close-event */ |
182 | void closeEvent(QCloseEvent *e); | 188 | void closeEvent(QCloseEvent *e); |
183 | /** creates a new PwM-ListView and returns it */ | 189 | /** creates a new PwM-ListView and returns it */ |
184 | PwMView * makeNewListView(PwMDoc *doc); | 190 | PwMView * makeNewListView(PwMDoc *doc); |
185 | /** Window hide-event */ | 191 | /** Window hide-event */ |
186 | void hideEvent(QHideEvent *); | 192 | void hideEvent(QHideEvent *); |
187 | /** is this window minimized? */ | 193 | /** is this window minimized? */ |
188 | bool isMinimized() | 194 | bool isMinimized() |
189 | { | 195 | { |
190 | #ifndef PWM_EMBEDDED | 196 | #ifndef PWM_EMBEDDED |
191 | #if KDE_VERSION >= KDE_MAKE_VERSION(3, 2, 0) | 197 | #if KDE_VERSION >= KDE_MAKE_VERSION(3, 2, 0) |
192 | return KWin::windowInfo(winId()).isMinimized(); | 198 | return KWin::windowInfo(winId()).isMinimized(); |
193 | #else // KDE_VERSION | 199 | #else // KDE_VERSION |
194 | return KWin::info(winId()).isIconified(); | 200 | return KWin::info(winId()).isIconified(); |
195 | #endif // KDE_VERSION | 201 | #endif // KDE_VERSION |
196 | #else | 202 | #else |
197 | return false; | 203 | return false; |
198 | #endif | 204 | #endif |
199 | } | 205 | } |
200 | /** window got the focus */ | 206 | /** window got the focus */ |
201 | void focusInEvent(QFocusEvent *e); | 207 | void focusInEvent(QFocusEvent *e); |
202 | /** update the caption string */ | 208 | /** update the caption string */ |
203 | void updateCaption(); | 209 | void updateCaption(); |
204 | #ifdef CONFIG_KWALLETIF | 210 | #ifdef CONFIG_KWALLETIF |
205 | /** check if kwalletemu is enabled and ask the user what to do */ | 211 | /** check if kwalletemu is enabled and ask the user what to do */ |
206 | bool checkAndAskForKWalletEmu(); | 212 | bool checkAndAskForKWalletEmu(); |
207 | #endif // CONFIG_KWALLETIF | 213 | #endif // CONFIG_KWALLETIF |
208 | 214 | ||
209 | protected slots: | 215 | protected slots: |
210 | /** doc got closed */ | 216 | /** doc got closed */ |
211 | void docClosed(PwMDoc *doc); | 217 | void docClosed(PwMDoc *doc); |
212 | 218 | ||
213 | signals: | 219 | signals: |
214 | /** window got closed (by user or someone else) */ | 220 | /** window got closed (by user or someone else) */ |
215 | void closed(PwM *wnd); | 221 | void closed(PwM *wnd); |
216 | /** window got the focus (was brought to foreground) */ | 222 | /** window got the focus (was brought to foreground) */ |
217 | void gotFocus(PwM *wnd); | 223 | void gotFocus(PwM *wnd); |
218 | /** window lost the focus */ | 224 | /** window lost the focus */ |
219 | void lostFocus(PwM *wnd); | 225 | void lostFocus(PwM *wnd); |
220 | 226 | ||
221 | protected: | 227 | protected: |
222 | /** pointer to the view active in this KMainWindow */ | 228 | /** pointer to the view active in this KMainWindow */ |
223 | PwMView *view; | 229 | PwMView *view; |
224 | /** pointer to the init class */ | 230 | /** pointer to the init class */ |
225 | PwMInit *init; | 231 | PwMInit *init; |
226 | /** has this window already lost its virginity? | 232 | /** has this window already lost its virginity? |
227 | * Means is there an open working document | 233 | * Means is there an open working document |
228 | */ | 234 | */ |
229 | bool virgin; | 235 | bool virgin; |
230 | /** "file" popup-menu */ | 236 | /** "file" popup-menu */ |
231 | KPopupMenu *filePopup; | 237 | KPopupMenu *filePopup; |
232 | 238 | ||
233 | /** "manage" popup-menu */ | 239 | /** "manage" popup-menu */ |
234 | KPopupMenu *managePopup; | 240 | KPopupMenu *managePopup; |
235 | #ifdef CONFIG_KEYCARD | 241 | #ifdef CONFIG_KEYCARD |
236 | /** "chipcard" popup-menu */ | 242 | /** "chipcard" popup-menu */ |
237 | KPopupMenu *chipcardPopup; | 243 | KPopupMenu *chipcardPopup; |
238 | #endif // CONFIG_KEYCARD | 244 | #endif // CONFIG_KEYCARD |
239 | /** "view" popup-menu */ | 245 | /** "view" popup-menu */ |
240 | KPopupMenu *viewPopup; | 246 | KPopupMenu *viewPopup; |
241 | /** "options" popup-menu */ | 247 | /** "options" popup-menu */ |
242 | KPopupMenu *optionsPopup; | 248 | KPopupMenu *optionsPopup; |
243 | /** "help" popup-menu */ | 249 | /** "help" popup-menu */ |
244 | KPopupMenu *helpPopup; | 250 | KPopupMenu *helpPopup; |
245 | /** "export" popup-menu */ | 251 | /** "export" popup-menu */ |
246 | KPopupMenu *exportPopup; | 252 | KPopupMenu *exportPopup; |
247 | /** "import" popup-menu */ | 253 | /** "import" popup-menu */ |
248 | KPopupMenu *importPopup; | 254 | KPopupMenu *importPopup; |
249 | /** force quit this window? */ | 255 | /** force quit this window? */ |
250 | bool forceQuit; | 256 | bool forceQuit; |
251 | /** force minimize this window to the tray */ | 257 | /** force minimize this window to the tray */ |
252 | bool forceMinimizeToTray; | 258 | bool forceMinimizeToTray; |
253 | }; | 259 | }; |
254 | 260 | ||
255 | #endif | 261 | #endif |
diff --git a/pwmanager/pwmanager/pwmdocui.cpp b/pwmanager/pwmanager/pwmdocui.cpp index 66a1b59..b308b40 100644 --- a/pwmanager/pwmanager/pwmdocui.cpp +++ b/pwmanager/pwmanager/pwmdocui.cpp | |||
@@ -1,133 +1,134 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * copyright (C) 2003, 2004 by Michael Buesch * | 3 | * copyright (C) 2003, 2004 by Michael Buesch * |
4 | * email: mbuesch@freenet.de * | 4 | * email: mbuesch@freenet.de * |
5 | * * | 5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * | 6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License version 2 * | 7 | * it under the terms of the GNU General Public License version 2 * |
8 | * as published by the Free Software Foundation. * | 8 | * as published by the Free Software Foundation. * |
9 | * * | 9 | * * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | 11 | ||
12 | /*************************************************************************** | 12 | /*************************************************************************** |
13 | * copyright (C) 2004 by Ulf Schenk | 13 | * copyright (C) 2004 by Ulf Schenk |
14 | * This file is originaly based on version 1.0.1 of pwmanager | 14 | * This file is originaly based on version 1.0.1 of pwmanager |
15 | * and was modified to run on embedded devices that run microkde | 15 | * and was modified to run on embedded devices that run microkde |
16 | * | 16 | * |
17 | * $Id$ | 17 | * $Id$ |
18 | **************************************************************************/ | 18 | **************************************************************************/ |
19 | 19 | ||
20 | #include "pwmdocui.h" | 20 | #include "pwmdocui.h" |
21 | #include "setmasterpwwndimpl.h" | 21 | #include "setmasterpwwndimpl.h" |
22 | #include "getmasterpwwndimpl.h" | 22 | #include "getmasterpwwndimpl.h" |
23 | #include "pwmexception.h" | 23 | #include "pwmexception.h" |
24 | #include "getkeycardwnd.h" | 24 | #include "getkeycardwnd.h" |
25 | #include "pwm.h" | 25 | #include "pwm.h" |
26 | #include "globalstuff.h" | 26 | #include "globalstuff.h" |
27 | #include "spinforsignal.h" | 27 | #include "spinforsignal.h" |
28 | 28 | ||
29 | #include <qlineedit.h> | 29 | #include <qlineedit.h> |
30 | #include <qtabwidget.h> | 30 | #include <qtabwidget.h> |
31 | 31 | ||
32 | #include <kmessagebox.h> | 32 | #include <kmessagebox.h> |
33 | #include <kfiledialog.h> | 33 | #include <kfiledialog.h> |
34 | 34 | ||
35 | #ifndef PWM_EMBEDDED | 35 | #ifndef PWM_EMBEDDED |
36 | #include <kwin.h> | 36 | #include <kwin.h> |
37 | #else | 37 | #else |
38 | #include <qdir.h> | ||
38 | #endif | 39 | #endif |
39 | 40 | ||
40 | 41 | ||
41 | #ifdef CONFIG_KEYCARD | 42 | #ifdef CONFIG_KEYCARD |
42 | # include "pwmkeycard.h" | 43 | # include "pwmkeycard.h" |
43 | #endif | 44 | #endif |
44 | 45 | ||
45 | 46 | ||
46 | PwMDocUi::PwMDocUi(QObject *parent, const char *name) | 47 | PwMDocUi::PwMDocUi(QObject *parent, const char *name) |
47 | : QObject(parent, name) | 48 | : QObject(parent, name) |
48 | { | 49 | { |
49 | currentView = 0; | 50 | currentView = 0; |
50 | keyCard = 0; | 51 | keyCard = 0; |
51 | } | 52 | } |
52 | 53 | ||
53 | PwMDocUi::~PwMDocUi() | 54 | PwMDocUi::~PwMDocUi() |
54 | { | 55 | { |
55 | } | 56 | } |
56 | 57 | ||
57 | QString PwMDocUi::requestMpw(bool chipcard) | 58 | QString PwMDocUi::requestMpw(bool chipcard) |
58 | { | 59 | { |
59 | QString pw; | 60 | QString pw; |
60 | 61 | ||
61 | if (chipcard) { | 62 | if (chipcard) { |
62 | #ifdef CONFIG_KEYCARD | 63 | #ifdef CONFIG_KEYCARD |
63 | PWM_ASSERT(keyCard); | 64 | PWM_ASSERT(keyCard); |
64 | uint32_t id; | 65 | uint32_t id; |
65 | string ret; | 66 | string ret; |
66 | SpinForSignal *spinner = keyCard->getSpinner(); | 67 | SpinForSignal *spinner = keyCard->getSpinner(); |
67 | connect(keyCard, SIGNAL(keyAvailable(uint32_t, const string &)), | 68 | connect(keyCard, SIGNAL(keyAvailable(uint32_t, const string &)), |
68 | spinner, SLOT(u32_str_slot(uint32_t, const string &))); | 69 | spinner, SLOT(u32_str_slot(uint32_t, const string &))); |
69 | keyCard->getKey(); | 70 | keyCard->getKey(); |
70 | spinner->spin(&id, &ret); | 71 | spinner->spin(&id, &ret); |
71 | disconnect(keyCard, SIGNAL(keyAvailable(uint32_t, const string &)), | 72 | disconnect(keyCard, SIGNAL(keyAvailable(uint32_t, const string &)), |
72 | spinner, SLOT(u32_str_slot(uint32_t, const string &))); | 73 | spinner, SLOT(u32_str_slot(uint32_t, const string &))); |
73 | if (ret == "") | 74 | if (ret == "") |
74 | return ""; | 75 | return ""; |
75 | pw = ret.c_str(); | 76 | pw = ret.c_str(); |
76 | #else // CONFIG_KEYCARD | 77 | #else // CONFIG_KEYCARD |
77 | no_keycard_support_msg_box(currentView); | 78 | no_keycard_support_msg_box(currentView); |
78 | #endif // CONFIG_KEYCARD | 79 | #endif // CONFIG_KEYCARD |
79 | } else { | 80 | } else { |
80 | GetMasterPwWndImpl pwWnd; | 81 | GetMasterPwWndImpl pwWnd; |
81 | #ifndef PWM_EMBEDDED | 82 | #ifndef PWM_EMBEDDED |
82 | KWin::setState(pwWnd.winId(), NET::StaysOnTop); | 83 | KWin::setState(pwWnd.winId(), NET::StaysOnTop); |
83 | #endif | 84 | #endif |
84 | if (pwWnd.exec() != 1) | 85 | if (pwWnd.exec() != 1) |
85 | return ""; | 86 | return ""; |
86 | pw = pwWnd.pwLineEdit->text(); | 87 | pw = pwWnd.pwLineEdit->text(); |
87 | } | 88 | } |
88 | 89 | ||
89 | return pw; | 90 | return pw; |
90 | } | 91 | } |
91 | 92 | ||
92 | QString PwMDocUi::requestNewMpw(bool *chipcard) | 93 | QString PwMDocUi::requestNewMpw(bool *chipcard) |
93 | { | 94 | { |
94 | QString pw; | 95 | QString pw; |
95 | SetMasterPwWndImpl pwWnd(currentView); | 96 | SetMasterPwWndImpl pwWnd(currentView); |
96 | pwWnd.setPwMKeyCard(keyCard); | 97 | pwWnd.setPwMKeyCard(keyCard); |
97 | #ifndef PWM_EMBEDDED | 98 | #ifndef PWM_EMBEDDED |
98 | if (!chipcard) { | 99 | if (!chipcard) { |
99 | pwWnd.mainTab->removePage(pwWnd.mainTab->page(1)); | 100 | pwWnd.mainTab->removePage(pwWnd.mainTab->page(1)); |
100 | } | 101 | } |
101 | #else | 102 | #else |
102 | qDebug("PwMDocUi::requestNewMpw must be implemented"); | 103 | qDebug("PwMDocUi::requestNewMpw must be implemented"); |
103 | #endif | 104 | #endif |
104 | 105 | ||
105 | if (pwWnd.exec() != 1) | 106 | if (pwWnd.exec() != 1) |
106 | return ""; | 107 | return ""; |
107 | pw = pwWnd.getPw(chipcard).c_str(); | 108 | pw = pwWnd.getPw(chipcard).c_str(); |
108 | 109 | ||
109 | return pw; | 110 | return pw; |
110 | } | 111 | } |
111 | 112 | ||
112 | QString PwMDocUi::requestMpwChange(const QString *currentPw, bool *chipcard) | 113 | QString PwMDocUi::requestMpwChange(const QString *currentPw, bool *chipcard) |
113 | { | 114 | { |
114 | QString pw(requestMpw(*chipcard)); | 115 | QString pw(requestMpw(*chipcard)); |
115 | if (pw == "") | 116 | if (pw == "") |
116 | return ""; | 117 | return ""; |
117 | if (pw != *currentPw) { | 118 | if (pw != *currentPw) { |
118 | wrongMpwMsgBox(*chipcard); | 119 | wrongMpwMsgBox(*chipcard); |
119 | return ""; | 120 | return ""; |
120 | } | 121 | } |
121 | 122 | ||
122 | pw = requestNewMpw(chipcard); | 123 | pw = requestNewMpw(chipcard); |
123 | if (pw == "") | 124 | if (pw == "") |
124 | return ""; | 125 | return ""; |
125 | return pw; | 126 | return pw; |
126 | } | 127 | } |
127 | 128 | ||
128 | void PwMDocUi::wrongMpwMsgBox(bool chipcard, QString prefix, QString postfix) | 129 | void PwMDocUi::wrongMpwMsgBox(bool chipcard, QString prefix, QString postfix) |
129 | { | 130 | { |
130 | QString msg; | 131 | QString msg; |
131 | if (prefix != "") { | 132 | if (prefix != "") { |
132 | msg += prefix; | 133 | msg += prefix; |
133 | msg += "\n"; | 134 | msg += "\n"; |
@@ -202,224 +203,240 @@ void PwMDocUi::gpmPwLenErrMsgBox() | |||
202 | "again with a longer password."), | 203 | "again with a longer password."), |
203 | i18n("password too short")); | 204 | i18n("password too short")); |
204 | } | 205 | } |
205 | 206 | ||
206 | int PwMDocUi::dirtyAskSave(const QString &docTitle) | 207 | int PwMDocUi::dirtyAskSave(const QString &docTitle) |
207 | { | 208 | { |
208 | int ret; | 209 | int ret; |
209 | #ifndef PWM_EMBEDDED | 210 | #ifndef PWM_EMBEDDED |
210 | ret = KMessageBox::questionYesNoCancel(currentView, | 211 | ret = KMessageBox::questionYesNoCancel(currentView, |
211 | i18n("The list \"") + | 212 | i18n("The list \"") + |
212 | docTitle + | 213 | docTitle + |
213 | i18n | 214 | i18n |
214 | ("\" has been modified.\n" | 215 | ("\" has been modified.\n" |
215 | "Do you want to save it?"), | 216 | "Do you want to save it?"), |
216 | i18n("save?")); | 217 | i18n("save?")); |
217 | if (ret == KMessageBox::Yes) { | 218 | if (ret == KMessageBox::Yes) { |
218 | return 0; | 219 | return 0; |
219 | } else if (ret == KMessageBox::No) { | 220 | } else if (ret == KMessageBox::No) { |
220 | return 1; | 221 | return 1; |
221 | } | 222 | } |
222 | #else | 223 | #else |
223 | ret = KMessageBox::warningYesNoCancel(currentView, | 224 | ret = KMessageBox::warningYesNoCancel(currentView, |
224 | i18n("The list \"") + | 225 | i18n("The list \"") + |
225 | docTitle + | 226 | docTitle + |
226 | i18n | 227 | i18n |
227 | ("\" has been modified.\n" | 228 | ("\" has been modified.\n" |
228 | "Do you want to save it?"), | 229 | "Do you want to save it?"), |
229 | i18n("save?")); | 230 | i18n("save?")); |
230 | if (ret == KMessageBox::Yes) { | 231 | if (ret == KMessageBox::Yes) { |
231 | return 0; | 232 | return 0; |
232 | } else if (ret == KMessageBox::No) { | 233 | } else if (ret == KMessageBox::No) { |
233 | return 1; | 234 | return 1; |
234 | } | 235 | } |
235 | 236 | ||
236 | #endif | 237 | #endif |
237 | 238 | ||
238 | // cancel | 239 | // cancel |
239 | return -1; | 240 | return -1; |
240 | } | 241 | } |
241 | 242 | ||
242 | bool PwMDocUi::saveDocUi(PwMDoc *doc) | 243 | bool PwMDocUi::saveDocUi(PwMDoc *doc) |
243 | { | 244 | { |
244 | PWM_ASSERT(doc); | 245 | PWM_ASSERT(doc); |
245 | doc->timer()->getLock(DocTimer::id_autoLockTimer); | 246 | doc->timer()->getLock(DocTimer::id_autoLockTimer); |
246 | if (doc->isDocEmpty()) { | 247 | if (doc->isDocEmpty()) { |
247 | KMessageBox::information(currentView, | 248 | KMessageBox::information(currentView, |
248 | i18n | 249 | i18n |
249 | ("Sorry, there's nothing to save.\n" | 250 | ("Sorry, there's nothing to save.\n" |
250 | "Please first add some passwords."), | 251 | "Please first add some passwords."), |
251 | i18n("nothing to do")); | 252 | i18n("nothing to do")); |
252 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 253 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
253 | return true; | 254 | return true; |
254 | } | 255 | } |
255 | PwMerror ret = doc->saveDoc(conf()->confGlobCompression()); | 256 | PwMerror ret = doc->saveDoc(conf()->confGlobCompression()); |
256 | if (ret == e_filename) { | 257 | if (ret == e_filename) { |
257 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 258 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
258 | return saveAsDocUi(doc); | 259 | return saveAsDocUi(doc); |
259 | } else if (ret == e_weakPw) { | 260 | } else if (ret == e_weakPw) { |
260 | KMessageBox::error(currentView, | 261 | KMessageBox::error(currentView, |
261 | i18n("Error: This is a weak password.\n" | 262 | i18n("Error: This is a weak password.\n" |
262 | "Please select another password."), | 263 | "Please select another password."), |
263 | i18n("weak password")); | 264 | i18n("weak password")); |
264 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 265 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
265 | return false; | 266 | return false; |
266 | } else if (ret == e_fileBackup) { | 267 | } else if (ret == e_fileBackup) { |
267 | KMessageBox::error(currentView, | 268 | KMessageBox::error(currentView, |
268 | i18n("Error: Couldn't make backup-file!"), | 269 | i18n("Error: Couldn't make backup-file!"), |
269 | i18n("backup failed")); | 270 | i18n("backup failed")); |
270 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 271 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
271 | return false; | 272 | return false; |
272 | } else if (ret != e_success) { | 273 | } else if (ret != e_success) { |
273 | KMessageBox::error(currentView, | 274 | KMessageBox::error(currentView, |
274 | i18n("Error: Couldn't write to file.\n" | 275 | i18n("Error: Couldn't write to file.\n" |
275 | "Please check if you have permission to " | 276 | "Please check if you have permission to " |
276 | "write to the file in that directory."), | 277 | "write to the file in that directory."), |
277 | i18n("error while writing")); | 278 | i18n("error while writing")); |
278 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 279 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
279 | return false; | 280 | return false; |
280 | } | 281 | } |
281 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 282 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
282 | return true; | 283 | return true; |
283 | } | 284 | } |
284 | 285 | ||
285 | bool PwMDocUi::saveAsDocUi(PwMDoc *doc) | 286 | bool PwMDocUi::saveAsDocUi(PwMDoc *doc) |
286 | { | 287 | { |
287 | PWM_ASSERT(doc); | 288 | PWM_ASSERT(doc); |
288 | doc->timer()->getLock(DocTimer::id_autoLockTimer); | 289 | doc->timer()->getLock(DocTimer::id_autoLockTimer); |
289 | if (doc->isDocEmpty()) { | 290 | if (doc->isDocEmpty()) { |
290 | KMessageBox::information(currentView, | 291 | KMessageBox::information(currentView, |
291 | i18n | 292 | i18n |
292 | ("Sorry, there's nothing to save.\n" | 293 | ("Sorry, there's nothing to save.\n" |
293 | "Please first add some passwords."), | 294 | "Please first add some passwords."), |
294 | i18n("nothing to do")); | 295 | i18n("nothing to do")); |
295 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 296 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
296 | return true; | 297 | return true; |
297 | } | 298 | } |
299 | #ifndef PWM_EMBEDDED | ||
298 | QString fn(KFileDialog::getSaveFileName(QString::null, | 300 | QString fn(KFileDialog::getSaveFileName(QString::null, |
299 | i18n("*.pwm|PwManager Password file"), | 301 | i18n("*.pwm|PwManager Password file"), |
300 | currentView)); | 302 | currentView)); |
303 | #else | ||
304 | QString fn = locateLocal( "data", KGlobal::getAppName() + "/*.pwm" ); | ||
305 | fn = KFileDialog::getSaveFileName(fn, | ||
306 | i18n("password filename(*.pwm)"), | ||
307 | currentView); | ||
308 | |||
309 | #endif | ||
301 | if (fn == "") { | 310 | if (fn == "") { |
302 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 311 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
303 | return false; | 312 | return false; |
304 | } | 313 | } |
305 | if (fn.right(4) != ".pwm") | 314 | if (fn.right(4) != ".pwm") |
306 | fn += ".pwm"; | 315 | fn += ".pwm"; |
307 | 316 | ||
308 | PwMerror ret = doc->saveDoc(conf()->confGlobCompression(), &fn); | 317 | PwMerror ret = doc->saveDoc(conf()->confGlobCompression(), &fn); |
309 | if (ret != e_success) { | 318 | if (ret != e_success) { |
310 | KMessageBox::error(currentView, | 319 | KMessageBox::error(currentView, |
311 | i18n("Error: Couldn't write to file.\n" | 320 | i18n("Error: Couldn't write to file.\n" |
312 | "Please check if you have permission to " | 321 | "Please check if you have permission to " |
313 | "write to the file in that directory."), | 322 | "write to the file in that directory."), |
314 | i18n("error while writing")); | 323 | i18n("error while writing")); |
315 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 324 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
316 | return false; | 325 | return false; |
317 | } | 326 | } |
318 | doc->timer()->putLock(DocTimer::id_autoLockTimer); | 327 | doc->timer()->putLock(DocTimer::id_autoLockTimer); |
319 | return true; | 328 | return true; |
320 | } | 329 | } |
321 | 330 | ||
322 | bool PwMDocUi::openDocUi(PwMDoc *doc, | 331 | bool PwMDocUi::openDocUi(PwMDoc *doc, |
323 | QString filename, | 332 | QString filename, |
324 | bool openDeepLocked) | 333 | bool openDeepLocked) |
325 | { | 334 | { |
326 | if (filename.isEmpty()) | 335 | if (filename.isEmpty()) |
336 | { | ||
337 | #ifndef PWM_EMBEDDED | ||
327 | filename = KFileDialog::getOpenFileName(QString::null, | 338 | filename = KFileDialog::getOpenFileName(QString::null, |
328 | i18n("*.pwm|PwManager Password file\n" | 339 | i18n("*.pwm|PwManager Password file\n" |
329 | "*|All files"), getCurrentView()); | 340 | "*|All files"), getCurrentView()); |
341 | #else | ||
342 | filename = locateLocal( "data", KGlobal::getAppName() + "/*.pwm"); | ||
343 | filename = KFileDialog::getOpenFileName(filename, | ||
344 | i18n("password filename(*.pwm)"), getCurrentView()); | ||
345 | #endif | ||
346 | } | ||
330 | if (filename.isEmpty()) | 347 | if (filename.isEmpty()) |
331 | goto cancelOpen; | 348 | goto cancelOpen; |
332 | PwMerror ret; | 349 | PwMerror ret; |
333 | while (true) { | 350 | while (true) { |
334 | int lockStat = -1; | 351 | int lockStat = -1; |
335 | if (openDeepLocked) { | 352 | if (openDeepLocked) { |
336 | lockStat = 2; | 353 | lockStat = 2; |
337 | } else { | 354 | } else { |
338 | if (conf()->confGlobUnlockOnOpen()) { | 355 | if (conf()->confGlobUnlockOnOpen()) { |
339 | lockStat = 0; | 356 | lockStat = 0; |
340 | } else { | 357 | } else { |
341 | lockStat = 1; | 358 | lockStat = 1; |
342 | } | 359 | } |
343 | } | 360 | } |
344 | ret = doc->openDoc(&filename, lockStat); | 361 | ret = doc->openDoc(&filename, lockStat); |
345 | if (ret != e_success) { | 362 | if (ret != e_success) { |
346 | if (ret == e_readFile || ret == e_openFile) { | 363 | if (ret == e_readFile || ret == e_openFile) { |
347 | KMessageBox::error(getCurrentView(), | 364 | KMessageBox::error(getCurrentView(), |
348 | i18n("Could not read file!") | 365 | i18n("Could not read file!") |
349 | + "\n" | 366 | + "\n" |
350 | + filename, | 367 | + filename, |
351 | i18n("file error")); | 368 | i18n("file error")); |
352 | goto cancelOpen; | 369 | goto cancelOpen; |
353 | } | 370 | } |
354 | if (ret == e_alreadyOpen) { | 371 | if (ret == e_alreadyOpen) { |
355 | KMessageBox::error(getCurrentView(), | 372 | KMessageBox::error(getCurrentView(), |
356 | i18n("This file is already open."), | 373 | i18n("This file is already open."), |
357 | i18n("already open")); | 374 | i18n("already open")); |
358 | goto cancelOpen; | 375 | goto cancelOpen; |
359 | } | 376 | } |
360 | if (ret == e_fileVer) { | 377 | if (ret == e_fileVer) { |
361 | KMessageBox::error(getCurrentView(), | 378 | KMessageBox::error(getCurrentView(), |
362 | i18n | 379 | i18n |
363 | ("File-version is not supported!\n" | 380 | ("File-version is not supported!\n" |
364 | "Did you create this file with an older or newer version of PwM?"), | 381 | "Did you create this file with an older or newer version of PwM?"), |
365 | i18n | 382 | i18n |
366 | ("incompatible version")); | 383 | ("incompatible version")); |
367 | goto cancelOpen; | 384 | goto cancelOpen; |
368 | } | 385 | } |
369 | if (ret == e_wrongPw) { | 386 | if (ret == e_wrongPw) { |
370 | continue; | 387 | continue; |
371 | } | 388 | } |
372 | if (ret == e_noPw) { | 389 | if (ret == e_noPw) { |
373 | goto cancelOpen; | 390 | goto cancelOpen; |
374 | } | 391 | } |
375 | if (ret == e_fileFormat) { | 392 | if (ret == e_fileFormat) { |
376 | KMessageBox::error(getCurrentView(), | 393 | KMessageBox::error(getCurrentView(), |
377 | i18n | 394 | i18n |
378 | ("Sorry, this file has not been recognized " | 395 | ("Sorry, this file has not been recognized " |
379 | "as a PwM Password file.\n" | 396 | "as a PwM Password file.\n" |
380 | "Probably you have selected the wrong file."), | 397 | "Probably you have selected the wrong file."), |
381 | i18n | 398 | i18n |
382 | ("no PwM password-file")); | 399 | ("no PwM password-file")); |
383 | goto cancelOpen; | 400 | goto cancelOpen; |
384 | } | 401 | } |
385 | if (ret == e_fileCorrupt) { | 402 | if (ret == e_fileCorrupt) { |
386 | KMessageBox::error(getCurrentView(), | 403 | KMessageBox::error(getCurrentView(), |
387 | i18n | 404 | i18n |
388 | ("File corrupt!\n" | 405 | ("File corrupt!\n" |
389 | "Maybe the media, you stored this file on, " | 406 | "Maybe the media, you stored this file on, " |
390 | "had bad sectors?"), | 407 | "had bad sectors?"), |
391 | i18n | 408 | i18n |
392 | ("checksum error")); | 409 | ("checksum error")); |
393 | goto cancelOpen; | 410 | goto cancelOpen; |
394 | } | 411 | } |
395 | } | 412 | } |
396 | break; | 413 | break; |
397 | } | 414 | } |
398 | return true; | 415 | return true; |
399 | 416 | ||
400 | cancelOpen: | 417 | cancelOpen: |
401 | return false; | 418 | return false; |
402 | } | 419 | } |
403 | 420 | ||
404 | QString PwMDocUi::string_defaultCategory() | 421 | QString PwMDocUi::string_defaultCategory() |
405 | { | 422 | { |
406 | return i18n("Default"); | 423 | return i18n("Default"); |
407 | } | 424 | } |
408 | 425 | ||
409 | QString PwMDocUi::string_locked() | 426 | QString PwMDocUi::string_locked() |
410 | { | 427 | { |
411 | return i18n("<LOCKED>"); | 428 | return i18n("<LOCKED>"); |
412 | } | 429 | } |
413 | 430 | ||
414 | QString PwMDocUi::string_deepLockedShort() | 431 | QString PwMDocUi::string_deepLockedShort() |
415 | { | 432 | { |
416 | return i18n("DEEP-LOCKED"); | 433 | return i18n("DEEP-LOCKED"); |
417 | } | 434 | } |
418 | 435 | ||
419 | QString PwMDocUi::string_deepLockedLong() | 436 | QString PwMDocUi::string_deepLockedLong() |
420 | { | 437 | { |
421 | return i18n("This file is DEEP-LOCKED!\n" | 438 | return i18n("This file is DEEP-LOCKED!\n" |
422 | "That means all data has been encrypted " | 439 | "That means all data has been encrypted " |
423 | "and written out to the file. If you want " | 440 | "and written out to the file. If you want " |
424 | "to see the entries, please UNLOCK the file. " | 441 | "to see the entries, please UNLOCK the file. " |
425 | "While unlocking, you will be prompted for the " | 442 | "While unlocking, you will be prompted for the " |