summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-10-19 01:12:41 (UTC)
committer ulf69 <ulf69>2004-10-19 01:12:41 (UTC)
commit6fdb13cb4142ecde29fd537ff32a3e8e6cc30b26 (patch) (unidiff)
tree760ad21fcdc4e2d885c5d875d91629a70ce89843
parentda724334d46c01ee9d4f04101dab5d048c35c833 (diff)
downloadkdepimpi-6fdb13cb4142ecde29fd537ff32a3e8e6cc30b26.zip
kdepimpi-6fdb13cb4142ecde29fd537ff32a3e8e6cc30b26.tar.gz
kdepimpi-6fdb13cb4142ecde29fd537ff32a3e8e6cc30b26.tar.bz2
added whats new page
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/pwm.cpp13
-rw-r--r--pwmanager/pwmanager/pwm.h1
2 files changed, 12 insertions, 2 deletions
diff --git a/pwmanager/pwmanager/pwm.cpp b/pwmanager/pwmanager/pwm.cpp
index 57b4432..26a44b1 100644
--- a/pwmanager/pwmanager/pwm.cpp
+++ b/pwmanager/pwmanager/pwm.cpp
@@ -1,621 +1,626 @@
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#include "configwndimpl.h" 31#include "configwndimpl.h"
32#include "configuration.h" 32#include "configuration.h"
33#else 33#else
34#include <qmenubar.h> 34#include <qmenubar.h>
35#include <qmessagebox.h> 35#include <qmessagebox.h>
36#include <pwmprefs.h> 36#include <pwmprefs.h>
37#include <kpimglobalprefs.h> 37#include <kpimglobalprefs.h>
38#include <kcmconfigs/kcmpwmconfig.h> 38#include <kcmconfigs/kcmpwmconfig.h>
39#include <kcmconfigs/kcmkdepimconfig.h> 39#include <kcmconfigs/kcmkdepimconfig.h>
40#include <kcmultidialog.h> 40#include <kcmultidialog.h>
41#endif 41#endif
42 42
43#include <qpixmap.h> 43#include <qpixmap.h>
44#include <qcheckbox.h> 44#include <qcheckbox.h>
45#include <qspinbox.h> 45#include <qspinbox.h>
46#include <qlineedit.h> 46#include <qlineedit.h>
47#include <qfileinfo.h> 47#include <qfileinfo.h>
48#include <qclipboard.h> 48#include <qclipboard.h>
49 49
50 50
51#include <stdio.h> 51#include <stdio.h>
52 52
53#include "pwm.h" 53#include "pwm.h"
54#include "pwminit.h" 54#include "pwminit.h"
55#include "pwmprint.h" 55#include "pwmprint.h"
56#include "addentrywndimpl.h" 56#include "addentrywndimpl.h"
57#include "globalstuff.h" 57#include "globalstuff.h"
58#include "findwndimpl.h" 58#include "findwndimpl.h"
59 59
60#ifdef CONFIG_KWALLETIF 60#ifdef CONFIG_KWALLETIF
61# include "kwalletif.h" 61# include "kwalletif.h"
62# include "kwalletemu.h" 62# include "kwalletemu.h"
63#endif 63#endif
64#ifdef CONFIG_KEYCARD 64#ifdef CONFIG_KEYCARD
65# include "pwmkeycard.h" 65# include "pwmkeycard.h"
66#endif 66#endif
67 67
68 68
69 #define DEFAULT_SIZE (QSize(700, 400)) 69 #define DEFAULT_SIZE (QSize(700, 400))
70 70
71// Button IDs for "file" popup menu 71// Button IDs for "file" popup menu
72enum { 72enum {
73 BUTTON_POPUP_FILE_NEW = 0, 73 BUTTON_POPUP_FILE_NEW = 0,
74 BUTTON_POPUP_FILE_OPEN, 74 BUTTON_POPUP_FILE_OPEN,
75 BUTTON_POPUP_FILE_CLOSE, 75 BUTTON_POPUP_FILE_CLOSE,
76 BUTTON_POPUP_FILE_SAVE, 76 BUTTON_POPUP_FILE_SAVE,
77 BUTTON_POPUP_FILE_SAVEAS, 77 BUTTON_POPUP_FILE_SAVEAS,
78 BUTTON_POPUP_FILE_EXPORT, 78 BUTTON_POPUP_FILE_EXPORT,
79 BUTTON_POPUP_FILE_IMPORT, 79 BUTTON_POPUP_FILE_IMPORT,
80 BUTTON_POPUP_FILE_PRINT, 80 BUTTON_POPUP_FILE_PRINT,
81 BUTTON_POPUP_FILE_QUIT 81 BUTTON_POPUP_FILE_QUIT
82}; 82};
83// Button IDs for "manage" popup menu 83// Button IDs for "manage" popup menu
84enum { 84enum {
85 BUTTON_POPUP_MANAGE_ADD = 0, 85 BUTTON_POPUP_MANAGE_ADD = 0,
86 BUTTON_POPUP_MANAGE_EDIT, 86 BUTTON_POPUP_MANAGE_EDIT,
87 BUTTON_POPUP_MANAGE_DEL, 87 BUTTON_POPUP_MANAGE_DEL,
88 BUTTON_POPUP_MANAGE_CHANGEMP 88 BUTTON_POPUP_MANAGE_CHANGEMP
89}; 89};
90// Button IDs for chipcard popup menu 90// Button IDs for chipcard popup menu
91enum { 91enum {
92#ifdef CONFIG_KEYCARD 92#ifdef CONFIG_KEYCARD
93 BUTTON_POPUP_CHIPCARD_GENNEW = 0, 93 BUTTON_POPUP_CHIPCARD_GENNEW = 0,
94 BUTTON_POPUP_CHIPCARD_DEL, 94 BUTTON_POPUP_CHIPCARD_DEL,
95 BUTTON_POPUP_CHIPCARD_READID, 95 BUTTON_POPUP_CHIPCARD_READID,
96 BUTTON_POPUP_CHIPCARD_SAVEBACKUP, 96 BUTTON_POPUP_CHIPCARD_SAVEBACKUP,
97 BUTTON_POPUP_CHIPCARD_REPLAYBACKUP 97 BUTTON_POPUP_CHIPCARD_REPLAYBACKUP
98#else // CONFIG_KEYCARD 98#else // CONFIG_KEYCARD
99 BUTTON_POPUP_CHIPCARD_NO = 0 99 BUTTON_POPUP_CHIPCARD_NO = 0
100#endif // CONFIG_KEYCARD 100#endif // CONFIG_KEYCARD
101}; 101};
102// Button IDs for "view" popup menu 102// Button IDs for "view" popup menu
103enum { 103enum {
104 BUTTON_POPUP_VIEW_FIND = 0, 104 BUTTON_POPUP_VIEW_FIND = 0,
105 BUTTON_POPUP_VIEW_LOCK, 105 BUTTON_POPUP_VIEW_LOCK,
106 BUTTON_POPUP_VIEW_DEEPLOCK, 106 BUTTON_POPUP_VIEW_DEEPLOCK,
107 BUTTON_POPUP_VIEW_UNLOCK 107 BUTTON_POPUP_VIEW_UNLOCK
108}; 108};
109// Button IDs for "options" popup menu 109// Button IDs for "options" popup menu
110enum { 110enum {
111 BUTTON_POPUP_OPTIONS_CONFIG = 0 111 BUTTON_POPUP_OPTIONS_CONFIG = 0
112}; 112};
113// Button IDs for "export" popup menu (in "file" popup menu) 113// Button IDs for "export" popup menu (in "file" popup menu)
114enum { 114enum {
115 BUTTON_POPUP_EXPORT_TEXT = 0, 115 BUTTON_POPUP_EXPORT_TEXT = 0,
116 BUTTON_POPUP_EXPORT_GPASMAN 116 BUTTON_POPUP_EXPORT_GPASMAN
117#ifdef CONFIG_KWALLETIF 117#ifdef CONFIG_KWALLETIF
118 ,BUTTON_POPUP_EXPORT_KWALLET 118 ,BUTTON_POPUP_EXPORT_KWALLET
119#endif 119#endif
120}; 120};
121// Button IDs for "import" popup menu (in "file" popup menu) 121// Button IDs for "import" popup menu (in "file" popup menu)
122enum { 122enum {
123 BUTTON_POPUP_IMPORT_TEXT = 0, 123 BUTTON_POPUP_IMPORT_TEXT = 0,
124 BUTTON_POPUP_IMPORT_GPASMAN 124 BUTTON_POPUP_IMPORT_GPASMAN
125#ifdef CONFIG_KWALLETIF 125#ifdef CONFIG_KWALLETIF
126 ,BUTTON_POPUP_IMPORT_KWALLET 126 ,BUTTON_POPUP_IMPORT_KWALLET
127#endif 127#endif
128}; 128};
129 129
130#ifdef PWM_EMBEDDED 130#ifdef PWM_EMBEDDED
131// Button IDs for "help" popup menu 131// Button IDs for "help" popup menu
132enum { 132enum {
133 BUTTON_POPUP_HELP_LICENSE = 0, 133 BUTTON_POPUP_HELP_LICENSE = 0,
134 BUTTON_POPUP_HELP_FAQ, 134 BUTTON_POPUP_HELP_FAQ,
135 BUTTON_POPUP_HELP_ABOUT, 135 BUTTON_POPUP_HELP_ABOUT,
136 BUTTON_POPUP_HELP_SYNC 136 BUTTON_POPUP_HELP_SYNC,
137 BUTTON_POPUP_HELP_WHATSNEW
137}; 138};
138#endif 139#endif
139 140
140// Button IDs for toolbar 141// Button IDs for toolbar
141enum { 142enum {
142 BUTTON_TOOL_NEW = 0, 143 BUTTON_TOOL_NEW = 0,
143 BUTTON_TOOL_OPEN, 144 BUTTON_TOOL_OPEN,
144 BUTTON_TOOL_SAVE, 145 BUTTON_TOOL_SAVE,
145 BUTTON_TOOL_SAVEAS, 146 BUTTON_TOOL_SAVEAS,
146 BUTTON_TOOL_PRINT, 147 BUTTON_TOOL_PRINT,
147 BUTTON_TOOL_ADD, 148 BUTTON_TOOL_ADD,
148 BUTTON_TOOL_EDIT, 149 BUTTON_TOOL_EDIT,
149 BUTTON_TOOL_DEL, 150 BUTTON_TOOL_DEL,
150 BUTTON_TOOL_FIND, 151 BUTTON_TOOL_FIND,
151 BUTTON_TOOL_LOCK, 152 BUTTON_TOOL_LOCK,
152 BUTTON_TOOL_DEEPLOCK, 153 BUTTON_TOOL_DEEPLOCK,
153 BUTTON_TOOL_UNLOCK 154 BUTTON_TOOL_UNLOCK
154}; 155};
155 156
156 157
157PwM::PwM(PwMInit *_init, PwMDoc *doc, 158PwM::PwM(PwMInit *_init, PwMDoc *doc,
158 bool virginity, 159 bool virginity,
159 QWidget *parent, const char *name) 160 QWidget *parent, const char *name)
160 : KMainWindow(parent, "HALLO") 161 : KMainWindow(parent, "HALLO")
161 , forceQuit (false) 162 , forceQuit (false)
162 , forceMinimizeToTray (false) 163 , forceMinimizeToTray (false)
163{ 164{
164 init = _init; 165 init = _init;
165 connect(doc, SIGNAL(docClosed(PwMDoc *)), 166 connect(doc, SIGNAL(docClosed(PwMDoc *)),
166 this, SLOT(docClosed(PwMDoc *))); 167 this, SLOT(docClosed(PwMDoc *)));
167 initMenubar(); 168 initMenubar();
168 initToolbar(); 169 initToolbar();
169 initMetrics(); 170 initMetrics();
170 setVirgin(virginity); 171 setVirgin(virginity);
171 setFocusPolicy(QWidget::WheelFocus); 172 setFocusPolicy(QWidget::WheelFocus);
172#ifndef PWM_EMBEDDED 173#ifndef PWM_EMBEDDED
173 statusBar()->show(); 174 statusBar()->show();
174#endif 175#endif
175 view = makeNewListView(doc); 176 view = makeNewListView(doc);
176 setCentralWidget(view); 177 setCentralWidget(view);
177 updateCaption(); 178 updateCaption();
178 showStatMsg(i18n("Ready.")); 179 showStatMsg(i18n("Ready."));
179} 180}
180 181
181PwM::~PwM() 182PwM::~PwM()
182{ 183{
183 disconnect(curDoc(), SIGNAL(docClosed(PwMDoc *)), 184 disconnect(curDoc(), SIGNAL(docClosed(PwMDoc *)),
184 this, SLOT(docClosed(PwMDoc *))); 185 this, SLOT(docClosed(PwMDoc *)));
185 conf()->confWndMainWndSize(size()); 186 conf()->confWndMainWndSize(size());
186 emit closed(this); 187 emit closed(this);
187 delete view; 188 delete view;
188} 189}
189 190
190void PwM::initMenubar() 191void PwM::initMenubar()
191{ 192{
192 KIconLoader* picons; 193 KIconLoader* picons;
193#ifndef PWM_EMBEDDED 194#ifndef PWM_EMBEDDED
194 KIconLoader icons; 195 KIconLoader icons;
195 picons = &icons; 196 picons = &icons;
196#else 197#else
197 picons = KGlobal::iconLoader(); 198 picons = KGlobal::iconLoader();
198 199
199 200
200 syncPopup = new KPopupMenu(this); 201 syncPopup = new KPopupMenu(this);
201 202
202 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::PWMPI, PWMPrefs::instance(), syncPopup); 203 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::PWMPI, PWMPrefs::instance(), syncPopup);
203 syncManager->setBlockSave(false); 204 syncManager->setBlockSave(false);
204 205
205 connect ( syncPopup, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 206 connect ( syncPopup, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
206 syncManager->fillSyncMenu(); 207 syncManager->fillSyncMenu();
207 208
208#endif 209#endif
209 filePopup = new KPopupMenu(this); 210 filePopup = new KPopupMenu(this);
210 importPopup = new KPopupMenu(filePopup); 211 importPopup = new KPopupMenu(filePopup);
211 exportPopup = new KPopupMenu(filePopup); 212 exportPopup = new KPopupMenu(filePopup);
212 managePopup = new KPopupMenu(this); 213 managePopup = new KPopupMenu(this);
213#ifdef CONFIG_KEYCARD 214#ifdef CONFIG_KEYCARD
214 chipcardPopup = new KPopupMenu(this); 215 chipcardPopup = new KPopupMenu(this);
215#endif // CONFIG_KEYCARD 216#endif // CONFIG_KEYCARD
216 viewPopup = new KPopupMenu(this); 217 viewPopup = new KPopupMenu(this);
217 optionsPopup = new KPopupMenu(this); 218 optionsPopup = new KPopupMenu(this);
218 219
219// "file" popup menu 220// "file" popup menu
220 filePopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)), 221 filePopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)),
221 i18n("&New"), this, 222 i18n("&New"), this,
222 SLOT(new_slot()), 0, BUTTON_POPUP_FILE_NEW); 223 SLOT(new_slot()), 0, BUTTON_POPUP_FILE_NEW);
223 filePopup->insertItem(QIconSet(picons->loadIcon("fileopen", KIcon::Small)), 224 filePopup->insertItem(QIconSet(picons->loadIcon("fileopen", KIcon::Small)),
224 i18n("&Open"), this, 225 i18n("&Open"), this,
225 SLOT(open_slot()), 0, BUTTON_POPUP_FILE_OPEN); 226 SLOT(open_slot()), 0, BUTTON_POPUP_FILE_OPEN);
226 filePopup->insertItem(QIconSet(picons->loadIcon("fileclose", KIcon::Small)), 227 filePopup->insertItem(QIconSet(picons->loadIcon("fileclose", KIcon::Small)),
227 i18n("&Close"), this, 228 i18n("&Close"), this,
228 SLOT(close_slot()), 0, BUTTON_POPUP_FILE_CLOSE); 229 SLOT(close_slot()), 0, BUTTON_POPUP_FILE_CLOSE);
229 filePopup->insertSeparator(); 230 filePopup->insertSeparator();
230 filePopup->insertItem(QIconSet(picons->loadIcon("filesave", KIcon::Small)), 231 filePopup->insertItem(QIconSet(picons->loadIcon("filesave", KIcon::Small)),
231 i18n("&Save"), this, 232 i18n("&Save"), this,
232 SLOT(save_slot()), 0, BUTTON_POPUP_FILE_SAVE); 233 SLOT(save_slot()), 0, BUTTON_POPUP_FILE_SAVE);
233 filePopup->insertItem(QIconSet(picons->loadIcon("filesaveas", KIcon::Small)), 234 filePopup->insertItem(QIconSet(picons->loadIcon("filesaveas", KIcon::Small)),
234 i18n("Save &as..."), 235 i18n("Save &as..."),
235 this, SLOT(saveAs_slot()), 0, 236 this, SLOT(saveAs_slot()), 0,
236 BUTTON_POPUP_FILE_SAVEAS); 237 BUTTON_POPUP_FILE_SAVEAS);
237 filePopup->insertSeparator(); 238 filePopup->insertSeparator();
238 // "file/export" popup menu 239 // "file/export" popup menu
239 exportPopup->insertItem(i18n("&Text-file..."), this, 240 exportPopup->insertItem(i18n("&Text-file..."), this,
240 SLOT(exportToText()), 0, BUTTON_POPUP_EXPORT_TEXT); 241 SLOT(exportToText()), 0, BUTTON_POPUP_EXPORT_TEXT);
241 exportPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, 242 exportPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this,
242 SLOT(exportToGpasman()), 0, BUTTON_POPUP_EXPORT_GPASMAN); 243 SLOT(exportToGpasman()), 0, BUTTON_POPUP_EXPORT_GPASMAN);
243#ifdef CONFIG_KWALLETIF 244#ifdef CONFIG_KWALLETIF
244 exportPopup->insertItem(i18n("&KWallet..."), this, 245 exportPopup->insertItem(i18n("&KWallet..."), this,
245 SLOT(exportToKWallet()), 0, BUTTON_POPUP_EXPORT_KWALLET); 246 SLOT(exportToKWallet()), 0, BUTTON_POPUP_EXPORT_KWALLET);
246#endif 247#endif
247 filePopup->insertItem(QIconSet(picons->loadIcon("fileexport", KIcon::Small)), 248 filePopup->insertItem(QIconSet(picons->loadIcon("fileexport", KIcon::Small)),
248 i18n("E&xport"), exportPopup, 249 i18n("E&xport"), exportPopup,
249 BUTTON_POPUP_FILE_EXPORT); 250 BUTTON_POPUP_FILE_EXPORT);
250 // "file/import" popup menu 251 // "file/import" popup menu
251 importPopup->insertItem(i18n("&Text-file..."), this, 252 importPopup->insertItem(i18n("&Text-file..."), this,
252 SLOT(importFromText()), 0, BUTTON_POPUP_IMPORT_TEXT); 253 SLOT(importFromText()), 0, BUTTON_POPUP_IMPORT_TEXT);
253 importPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, 254 importPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this,
254 SLOT(importFromGpasman()), 0, BUTTON_POPUP_IMPORT_GPASMAN); 255 SLOT(importFromGpasman()), 0, BUTTON_POPUP_IMPORT_GPASMAN);
255#ifdef CONFIG_KWALLETIF 256#ifdef CONFIG_KWALLETIF
256 importPopup->insertItem(i18n("&KWallet..."), this, 257 importPopup->insertItem(i18n("&KWallet..."), this,
257 SLOT(importKWallet()), 0, BUTTON_POPUP_IMPORT_KWALLET); 258 SLOT(importKWallet()), 0, BUTTON_POPUP_IMPORT_KWALLET);
258#endif 259#endif
259 filePopup->insertItem(QIconSet(picons->loadIcon("fileimport", KIcon::Small)), 260 filePopup->insertItem(QIconSet(picons->loadIcon("fileimport", KIcon::Small)),
260 i18n("I&mport"), importPopup, 261 i18n("I&mport"), importPopup,
261 BUTTON_POPUP_FILE_IMPORT); 262 BUTTON_POPUP_FILE_IMPORT);
262 filePopup->insertSeparator(); 263 filePopup->insertSeparator();
263 filePopup->insertItem(QIconSet(picons->loadIcon("fileprint", KIcon::Small)), 264 filePopup->insertItem(QIconSet(picons->loadIcon("fileprint", KIcon::Small)),
264 i18n("&Print..."), this, 265 i18n("&Print..."), this,
265 SLOT(print_slot()), 0, BUTTON_POPUP_FILE_PRINT); 266 SLOT(print_slot()), 0, BUTTON_POPUP_FILE_PRINT);
266 filePopup->insertSeparator(); 267 filePopup->insertSeparator();
267 filePopup->insertItem(QIconSet(picons->loadIcon("exit", KIcon::Small)), 268 filePopup->insertItem(QIconSet(picons->loadIcon("exit", KIcon::Small)),
268 i18n("&Quit"), this, 269 i18n("&Quit"), this,
269 SLOT(quitButton_slot()), 0, BUTTON_POPUP_FILE_QUIT); 270 SLOT(quitButton_slot()), 0, BUTTON_POPUP_FILE_QUIT);
270 menuBar()->insertItem(i18n("&File"), filePopup); 271 menuBar()->insertItem(i18n("&File"), filePopup);
271// "manage" popup menu 272// "manage" popup menu
272 managePopup->insertItem(QIconSet(picons->loadIcon("pencil", KIcon::Small)), 273 managePopup->insertItem(QIconSet(picons->loadIcon("pencil", KIcon::Small)),
273 i18n("&Add password"), this, 274 i18n("&Add password"), this,
274 SLOT(addPwd_slot()), 0, 275 SLOT(addPwd_slot()), 0,
275 BUTTON_POPUP_MANAGE_ADD); 276 BUTTON_POPUP_MANAGE_ADD);
276 managePopup->insertItem(QIconSet(picons->loadIcon("edit", KIcon::Small)), 277 managePopup->insertItem(QIconSet(picons->loadIcon("edit", KIcon::Small)),
277 i18n("&Edit"), this, SLOT(editPwd_slot()), 0, 278 i18n("&Edit"), this, SLOT(editPwd_slot()), 0,
278 BUTTON_POPUP_MANAGE_EDIT); 279 BUTTON_POPUP_MANAGE_EDIT);
279 managePopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)), 280 managePopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)),
280 i18n("&Delete"), this, SLOT(deletePwd_slot()), 281 i18n("&Delete"), this, SLOT(deletePwd_slot()),
281 0, BUTTON_POPUP_MANAGE_DEL); 282 0, BUTTON_POPUP_MANAGE_DEL);
282 managePopup->insertSeparator(); 283 managePopup->insertSeparator();
283 managePopup->insertItem(QIconSet(picons->loadIcon("rotate", KIcon::Small)), 284 managePopup->insertItem(QIconSet(picons->loadIcon("rotate", KIcon::Small)),
284 i18n("Change &Master Password"), this, 285 i18n("Change &Master Password"), this,
285 SLOT(changeMasterPwd_slot()), 0, 286 SLOT(changeMasterPwd_slot()), 0,
286 BUTTON_POPUP_MANAGE_CHANGEMP); 287 BUTTON_POPUP_MANAGE_CHANGEMP);
287 menuBar()->insertItem(i18n("&Manage"), managePopup); 288 menuBar()->insertItem(i18n("&Manage"), managePopup);
288// "chipcard" popup menu 289// "chipcard" popup menu
289#ifdef CONFIG_KEYCARD 290#ifdef CONFIG_KEYCARD
290 chipcardPopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)), 291 chipcardPopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)),
291 i18n("&Generate new key-card"), this, 292 i18n("&Generate new key-card"), this,
292 SLOT(genNewCard_slot()), 0, 293 SLOT(genNewCard_slot()), 0,
293 BUTTON_POPUP_CHIPCARD_GENNEW); 294 BUTTON_POPUP_CHIPCARD_GENNEW);
294 chipcardPopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)), 295 chipcardPopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)),
295 i18n("&Erase key-card"), this, 296 i18n("&Erase key-card"), this,
296 SLOT(eraseCard_slot()), 0, 297 SLOT(eraseCard_slot()), 0,
297 BUTTON_POPUP_CHIPCARD_DEL); 298 BUTTON_POPUP_CHIPCARD_DEL);
298 chipcardPopup->insertItem(QIconSet(picons->loadIcon("", KIcon::Small)), 299 chipcardPopup->insertItem(QIconSet(picons->loadIcon("", KIcon::Small)),
299 i18n("Read card-&ID"), this, 300 i18n("Read card-&ID"), this,
300 SLOT(readCardId_slot()), 0, 301 SLOT(readCardId_slot()), 0,
301 BUTTON_POPUP_CHIPCARD_READID); 302 BUTTON_POPUP_CHIPCARD_READID);
302 chipcardPopup->insertSeparator(); 303 chipcardPopup->insertSeparator();
303 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2rightarrow", KIcon::Small)), 304 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2rightarrow", KIcon::Small)),
304 i18n("&Make card backup-image"), this, 305 i18n("&Make card backup-image"), this,
305 SLOT(makeCardBackup_slot()), 0, 306 SLOT(makeCardBackup_slot()), 0,
306 BUTTON_POPUP_CHIPCARD_SAVEBACKUP); 307 BUTTON_POPUP_CHIPCARD_SAVEBACKUP);
307 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2leftarrow", KIcon::Small)), 308 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2leftarrow", KIcon::Small)),
308 i18n("&Replay card backup-image"), this, 309 i18n("&Replay card backup-image"), this,
309 SLOT(replayCardBackup_slot()), 0, 310 SLOT(replayCardBackup_slot()), 0,
310 BUTTON_POPUP_CHIPCARD_REPLAYBACKUP); 311 BUTTON_POPUP_CHIPCARD_REPLAYBACKUP);
311 menuBar()->insertItem(i18n("&Chipcard manager"), chipcardPopup); 312 menuBar()->insertItem(i18n("&Chipcard manager"), chipcardPopup);
312#endif // CONFIG_KEYCARD 313#endif // CONFIG_KEYCARD
313// "view" popup menu 314// "view" popup menu
314 viewPopup->insertItem(QIconSet(picons->loadIcon("find", KIcon::Small)), 315 viewPopup->insertItem(QIconSet(picons->loadIcon("find", KIcon::Small)),
315 i18n("&Find"), this, 316 i18n("&Find"), this,
316 SLOT(find_slot()), 0, BUTTON_POPUP_VIEW_FIND); 317 SLOT(find_slot()), 0, BUTTON_POPUP_VIEW_FIND);
317 viewPopup->insertSeparator(); 318 viewPopup->insertSeparator();
318 viewPopup->insertItem(QIconSet(picons->loadIcon("halfencrypted", KIcon::Small)), 319 viewPopup->insertItem(QIconSet(picons->loadIcon("halfencrypted", KIcon::Small)),
319 i18n("&Lock all entries"), this, 320 i18n("&Lock all entries"), this,
320 SLOT(lockWnd_slot()), 0, 321 SLOT(lockWnd_slot()), 0,
321 BUTTON_POPUP_VIEW_LOCK); 322 BUTTON_POPUP_VIEW_LOCK);
322 viewPopup->insertItem(QIconSet(picons->loadIcon("encrypted", KIcon::Small)), 323 viewPopup->insertItem(QIconSet(picons->loadIcon("encrypted", KIcon::Small)),
323 i18n("&Deep-lock all entries"), this, 324 i18n("&Deep-lock all entries"), this,
324 SLOT(deepLockWnd_slot()), 0, 325 SLOT(deepLockWnd_slot()), 0,
325 BUTTON_POPUP_VIEW_DEEPLOCK); 326 BUTTON_POPUP_VIEW_DEEPLOCK);
326 viewPopup->insertItem(QIconSet(picons->loadIcon("decrypted", KIcon::Small)), 327 viewPopup->insertItem(QIconSet(picons->loadIcon("decrypted", KIcon::Small)),
327 i18n("&Unlock all entries"), this, 328 i18n("&Unlock all entries"), this,
328 SLOT(unlockWnd_slot()), 0, 329 SLOT(unlockWnd_slot()), 0,
329 BUTTON_POPUP_VIEW_UNLOCK); 330 BUTTON_POPUP_VIEW_UNLOCK);
330 menuBar()->insertItem(i18n("&View"), viewPopup); 331 menuBar()->insertItem(i18n("&View"), viewPopup);
331// "options" popup menu 332// "options" popup menu
332 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)), 333 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)),
333 i18n("&Configure..."), this, 334 i18n("&Configure..."), this,
334 SLOT(config_slot()), 335 SLOT(config_slot()),
335 BUTTON_POPUP_OPTIONS_CONFIG); 336 BUTTON_POPUP_OPTIONS_CONFIG);
336 menuBar()->insertItem(i18n("&Options"), optionsPopup); 337 menuBar()->insertItem(i18n("&Options"), optionsPopup);
337// "help" popup menu 338// "help" popup menu
338#ifndef PWM_EMBEDDED 339#ifndef PWM_EMBEDDED
339 helpPopup = helpMenu(QString::null, false); 340 helpPopup = helpMenu(QString::null, false);
340#else 341#else
341 menuBar()->insertItem(i18n("&Sync"), syncPopup); 342 menuBar()->insertItem(i18n("&Sync"), syncPopup);
342 343
343 344
344 345
345 346
346 347
347 helpPopup = new KPopupMenu(this); 348 helpPopup = new KPopupMenu(this);
348 349
349 350
350 helpPopup->insertItem(i18n("&License"), this, 351 helpPopup->insertItem(i18n("&License"), this,
351 SLOT(showLicense_slot()), 0, 352 SLOT(showLicense_slot()), 0,
352 BUTTON_POPUP_HELP_LICENSE); 353 BUTTON_POPUP_HELP_LICENSE);
353 354
354 helpPopup->insertItem(i18n("&Faq"), this, 355 helpPopup->insertItem(i18n("&Faq"), this,
355 SLOT(faq_slot()), 0, 356 SLOT(faq_slot()), 0,
356 BUTTON_POPUP_HELP_FAQ); 357 BUTTON_POPUP_HELP_FAQ);
357 358
358 helpPopup->insertItem(i18n("&About PwManager"), this, 359 helpPopup->insertItem(i18n("&About PwManager"), this,
359 SLOT(createAboutData_slot()), 0, 360 SLOT(createAboutData_slot()), 0,
360 BUTTON_POPUP_HELP_ABOUT); 361 BUTTON_POPUP_HELP_ABOUT);
361 362
362 helpPopup->insertItem(i18n("&Sync HowTo"), this, 363 helpPopup->insertItem(i18n("&Sync HowTo"), this,
363 SLOT(syncHowTo_slot()), 0, 364 SLOT(syncHowTo_slot()), 0,
364 BUTTON_POPUP_HELP_SYNC); 365 BUTTON_POPUP_HELP_SYNC);
365 366
367 helpPopup->insertItem(i18n("&What's New"), this,
368 SLOT(whatsnew_slot()), 0,
369 BUTTON_POPUP_HELP_WHATSNEW);
370
366#endif 371#endif
367 menuBar()->insertItem(i18n("&Help"), helpPopup); 372 menuBar()->insertItem(i18n("&Help"), helpPopup);
368 373
369} 374}
370 375
371void PwM::initToolbar() 376void PwM::initToolbar()
372{ 377{
373 KIconLoader* picons; 378 KIconLoader* picons;
374#ifndef PWM_EMBEDDED 379#ifndef PWM_EMBEDDED
375 KIconLoader icons; 380 KIconLoader icons;
376 picons = &icons; 381 picons = &icons;
377#else 382#else
378 picons = KGlobal::iconLoader(); 383 picons = KGlobal::iconLoader();
379#endif 384#endif
380 385
381#ifdef PWM_EMBEDDED 386#ifdef PWM_EMBEDDED
382 if ( QApplication::desktop()->width() > 320 ) 387 if ( QApplication::desktop()->width() > 320 )
383#endif 388#endif
384 { 389 {
385 toolBar()->insertButton(picons->loadIcon("filenew", KIcon::Toolbar), 390 toolBar()->insertButton(picons->loadIcon("filenew", KIcon::Toolbar),
386 BUTTON_TOOL_NEW, SIGNAL(clicked(int)), this, 391 BUTTON_TOOL_NEW, SIGNAL(clicked(int)), this,
387 SLOT(new_slot()), true, i18n("New")); 392 SLOT(new_slot()), true, i18n("New"));
388 toolBar()->insertButton(picons->loadIcon("fileopen", KIcon::Toolbar), 393 toolBar()->insertButton(picons->loadIcon("fileopen", KIcon::Toolbar),
389 BUTTON_TOOL_OPEN, SIGNAL(clicked(int)), this, 394 BUTTON_TOOL_OPEN, SIGNAL(clicked(int)), this,
390 SLOT(open_slot()), true, i18n("Open")); 395 SLOT(open_slot()), true, i18n("Open"));
391 toolBar()->insertSeparator(); 396 toolBar()->insertSeparator();
392 } 397 }
393 toolBar()->insertButton(picons->loadIcon("filesave", KIcon::Toolbar), 398 toolBar()->insertButton(picons->loadIcon("filesave", KIcon::Toolbar),
394 BUTTON_TOOL_SAVE, SIGNAL(clicked(int)), this, 399 BUTTON_TOOL_SAVE, SIGNAL(clicked(int)), this,
395 SLOT(save_slot()), true, i18n("Save")); 400 SLOT(save_slot()), true, i18n("Save"));
396 toolBar()->insertButton(picons->loadIcon("filesaveas", KIcon::Toolbar), 401 toolBar()->insertButton(picons->loadIcon("filesaveas", KIcon::Toolbar),
397 BUTTON_TOOL_SAVEAS, SIGNAL(clicked(int)), this, 402 BUTTON_TOOL_SAVEAS, SIGNAL(clicked(int)), this,
398 SLOT(saveAs_slot()), true, i18n("Save as")); 403 SLOT(saveAs_slot()), true, i18n("Save as"));
399 toolBar()->insertButton(picons->loadIcon("fileprint", KIcon::Toolbar), 404 toolBar()->insertButton(picons->loadIcon("fileprint", KIcon::Toolbar),
400 BUTTON_TOOL_PRINT, SIGNAL(clicked(int)), this, 405 BUTTON_TOOL_PRINT, SIGNAL(clicked(int)), this,
401 SLOT(print_slot()), true, i18n("Print...")); 406 SLOT(print_slot()), true, i18n("Print..."));
402 toolBar()->insertSeparator(); 407 toolBar()->insertSeparator();
403 toolBar()->insertButton(picons->loadIcon("pencil", KIcon::Toolbar), 408 toolBar()->insertButton(picons->loadIcon("pencil", KIcon::Toolbar),
404 BUTTON_TOOL_ADD, SIGNAL(clicked(int)), this, 409 BUTTON_TOOL_ADD, SIGNAL(clicked(int)), this,
405 SLOT(addPwd_slot()), true, 410 SLOT(addPwd_slot()), true,
406 i18n("Add password")); 411 i18n("Add password"));
407 toolBar()->insertButton(picons->loadIcon("edit", KIcon::Toolbar), 412 toolBar()->insertButton(picons->loadIcon("edit", KIcon::Toolbar),
408 BUTTON_TOOL_EDIT, SIGNAL(clicked(int)), this, 413 BUTTON_TOOL_EDIT, SIGNAL(clicked(int)), this,
409 SLOT(editPwd_slot()), true, 414 SLOT(editPwd_slot()), true,
410 i18n("Edit password")); 415 i18n("Edit password"));
411 toolBar()->insertButton(picons->loadIcon("editdelete", KIcon::Toolbar), 416 toolBar()->insertButton(picons->loadIcon("editdelete", KIcon::Toolbar),
412 BUTTON_TOOL_DEL, SIGNAL(clicked(int)), this, 417 BUTTON_TOOL_DEL, SIGNAL(clicked(int)), this,
413 SLOT(deletePwd_slot()), true, 418 SLOT(deletePwd_slot()), true,
414 i18n("Delete password")); 419 i18n("Delete password"));
415 toolBar()->insertSeparator(); 420 toolBar()->insertSeparator();
416 toolBar()->insertButton(picons->loadIcon("find", KIcon::Toolbar), 421 toolBar()->insertButton(picons->loadIcon("find", KIcon::Toolbar),
417 BUTTON_TOOL_FIND, SIGNAL(clicked(int)), this, 422 BUTTON_TOOL_FIND, SIGNAL(clicked(int)), this,
418 SLOT(find_slot()), true, i18n("Find entry")); 423 SLOT(find_slot()), true, i18n("Find entry"));
419 toolBar()->insertSeparator(); 424 toolBar()->insertSeparator();
420 toolBar()->insertButton(picons->loadIcon("halfencrypted", KIcon::Toolbar), 425 toolBar()->insertButton(picons->loadIcon("halfencrypted", KIcon::Toolbar),
421 BUTTON_TOOL_LOCK, SIGNAL(clicked(int)), this, 426 BUTTON_TOOL_LOCK, SIGNAL(clicked(int)), this,
422 SLOT(lockWnd_slot()), true, 427 SLOT(lockWnd_slot()), true,
423 i18n("Lock all entries")); 428 i18n("Lock all entries"));
424 toolBar()->insertButton(picons->loadIcon("encrypted", KIcon::Toolbar), 429 toolBar()->insertButton(picons->loadIcon("encrypted", KIcon::Toolbar),
425 BUTTON_TOOL_DEEPLOCK, SIGNAL(clicked(int)), this, 430 BUTTON_TOOL_DEEPLOCK, SIGNAL(clicked(int)), this,
426 SLOT(deepLockWnd_slot()), true, 431 SLOT(deepLockWnd_slot()), true,
427 i18n("Deep-Lock all entries")); 432 i18n("Deep-Lock all entries"));
428 toolBar()->insertButton(picons->loadIcon("decrypted", KIcon::Toolbar), 433 toolBar()->insertButton(picons->loadIcon("decrypted", KIcon::Toolbar),
429 BUTTON_TOOL_UNLOCK, SIGNAL(clicked(int)), this, 434 BUTTON_TOOL_UNLOCK, SIGNAL(clicked(int)), this,
430 SLOT(unlockWnd_slot()), true, 435 SLOT(unlockWnd_slot()), true,
431 i18n("Unlock all entries")); 436 i18n("Unlock all entries"));
432} 437}
433 438
434void PwM::initMetrics() 439void PwM::initMetrics()
435{ 440{
436 QSize s = conf()->confWndMainWndSize(); 441 QSize s = conf()->confWndMainWndSize();
437 if (s.isValid()) 442 if (s.isValid())
438 resize(s); 443 resize(s);
439 else 444 else
440 resize(DEFAULT_SIZE); 445 resize(DEFAULT_SIZE);
441} 446}
442 447
443void PwM::updateCaption() 448void PwM::updateCaption()
444{ 449{
445 setPlainCaption(curDoc()->getTitle() + " - " PROG_NAME " " PACKAGE_VER); 450 setPlainCaption(curDoc()->getTitle() + " - " PROG_NAME " " PACKAGE_VER);
446} 451}
447 452
448void PwM::hideEvent(QHideEvent *) 453void PwM::hideEvent(QHideEvent *)
449{ 454{
450 if (isMinimized()) { 455 if (isMinimized()) {
451 if (init->tray()) { 456 if (init->tray()) {
452 forceMinimizeToTray = true; 457 forceMinimizeToTray = true;
453 close(); 458 close();
454 } 459 }
455 int mmlock = conf()->confGlobMinimizeLock(); 460 int mmlock = conf()->confGlobMinimizeLock();
456 switch (mmlock) { 461 switch (mmlock) {
457 case 0: // don't lock anything 462 case 0: // don't lock anything
458 break; 463 break;
459 case 1: {// normal lock 464 case 1: {// normal lock
460 curDoc()->lockAll(true); 465 curDoc()->lockAll(true);
461 break; 466 break;
462 } case 2: {// deep-lock 467 } case 2: {// deep-lock
463 curDoc()->deepLock(); 468 curDoc()->deepLock();
464 break; 469 break;
465 } default: 470 } default:
466 WARN(); 471 WARN();
467 } 472 }
468 } 473 }
469} 474}
470 475
471void PwM::setVirgin(bool v) 476void PwM::setVirgin(bool v)
472{ 477{
473 if (virgin == v) 478 if (virgin == v)
474 return; 479 return;
475 virgin = v; 480 virgin = v;
476 filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVE, !v); 481 filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVE, !v);
477 filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVEAS, !v); 482 filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVEAS, !v);
478 filePopup->setItemEnabled(BUTTON_POPUP_FILE_EXPORT, !v); 483 filePopup->setItemEnabled(BUTTON_POPUP_FILE_EXPORT, !v);
479 filePopup->setItemEnabled(BUTTON_POPUP_FILE_PRINT, !v); 484 filePopup->setItemEnabled(BUTTON_POPUP_FILE_PRINT, !v);
480 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_EDIT, !v); 485 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_EDIT, !v);
481 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_DEL, !v); 486 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_DEL, !v);
482 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_CHANGEMP, !v); 487 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_CHANGEMP, !v);
483 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_LOCK, !v); 488 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_LOCK, !v);
484 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_DEEPLOCK, !v); 489 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_DEEPLOCK, !v);
485 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_UNLOCK, !v); 490 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_UNLOCK, !v);
486 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_FIND, !v); 491 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_FIND, !v);
487 toolBar()->setItemEnabled(BUTTON_TOOL_SAVE, !v); 492 toolBar()->setItemEnabled(BUTTON_TOOL_SAVE, !v);
488 toolBar()->setItemEnabled(BUTTON_TOOL_SAVEAS, !v); 493 toolBar()->setItemEnabled(BUTTON_TOOL_SAVEAS, !v);
489 toolBar()->setItemEnabled(BUTTON_TOOL_PRINT, !v); 494 toolBar()->setItemEnabled(BUTTON_TOOL_PRINT, !v);
490 toolBar()->setItemEnabled(BUTTON_TOOL_EDIT, !v); 495 toolBar()->setItemEnabled(BUTTON_TOOL_EDIT, !v);
491 toolBar()->setItemEnabled(BUTTON_TOOL_DEL, !v); 496 toolBar()->setItemEnabled(BUTTON_TOOL_DEL, !v);
492 toolBar()->setItemEnabled(BUTTON_TOOL_LOCK, !v); 497 toolBar()->setItemEnabled(BUTTON_TOOL_LOCK, !v);
493 toolBar()->setItemEnabled(BUTTON_TOOL_DEEPLOCK, !v); 498 toolBar()->setItemEnabled(BUTTON_TOOL_DEEPLOCK, !v);
494 toolBar()->setItemEnabled(BUTTON_TOOL_UNLOCK, !v); 499 toolBar()->setItemEnabled(BUTTON_TOOL_UNLOCK, !v);
495 toolBar()->setItemEnabled(BUTTON_TOOL_FIND, !v); 500 toolBar()->setItemEnabled(BUTTON_TOOL_FIND, !v);
496} 501}
497 502
498void PwM::new_slot() 503void PwM::new_slot()
499{ 504{
500 init->createMainWnd(); 505 init->createMainWnd();
501} 506}
502 507
503//US ENH 508//US ENH
504void PwM::open_slot() 509void PwM::open_slot()
505{ 510{
506 open_slot(""); 511 open_slot("");
507} 512}
508 513
509void PwM::open_slot(QString fn) 514void PwM::open_slot(QString fn)
510{ 515{
511 openDoc(fn); 516 openDoc(fn);
512} 517}
513 518
514PwMDoc * PwM::openDoc(QString filename, bool openDeepLocked) 519PwMDoc * PwM::openDoc(QString filename, bool openDeepLocked)
515{ 520{
516 if (!isVirgin()) { 521 if (!isVirgin()) {
517 // open the document in a new window. 522 // open the document in a new window.
518 PwM *newInstance = init->createMainWnd(); 523 PwM *newInstance = init->createMainWnd();
519 PwMDoc *newDoc = newInstance->openDoc(filename, openDeepLocked); 524 PwMDoc *newDoc = newInstance->openDoc(filename, openDeepLocked);
520 if (!newDoc) { 525 if (!newDoc) {
521 newInstance->setForceQuit(true); 526 newInstance->setForceQuit(true);
522 delete_and_null(newInstance); 527 delete_and_null(newInstance);
523 } 528 }
524 return newDoc; 529 return newDoc;
525 } 530 }
526 531
527 if (!curDoc()->openDocUi(curDoc(), filename, openDeepLocked)) 532 if (!curDoc()->openDocUi(curDoc(), filename, openDeepLocked))
528 return 0; 533 return 0;
529 showStatMsg(i18n("Successfully opened file.")); 534 showStatMsg(i18n("Successfully opened file."));
530 updateCaption(); 535 updateCaption();
531 setVirgin(false); 536 setVirgin(false);
532 return curDoc(); 537 return curDoc();
533} 538}
534 539
535PwMView * PwM::makeNewListView(PwMDoc *doc) 540PwMView * PwM::makeNewListView(PwMDoc *doc)
536{ 541{
537 PwMView *ret = new PwMView(this, this, doc); 542 PwMView *ret = new PwMView(this, this, doc);
538 ret->setFont(conf()->confGlobEntryFont()); 543 ret->setFont(conf()->confGlobEntryFont());
539 ret->show(); 544 ret->show();
540 return ret; 545 return ret;
541} 546}
542 547
543void PwM::close_slot() 548void PwM::close_slot()
544{ 549{
545 close(); 550 close();
546} 551}
547 552
548void PwM::quitButton_slot() 553void PwM::quitButton_slot()
549{ 554{
550 init->shutdownApp(0); 555 init->shutdownApp(0);
551} 556}
552 557
553void PwM::save_slot() 558void PwM::save_slot()
554{ 559{
555 save(); 560 save();
556} 561}
557 562
558bool PwM::save() 563bool PwM::save()
559{ 564{
560 if (!curDoc()->saveDocUi(curDoc())) 565 if (!curDoc()->saveDocUi(curDoc()))
561 return false; 566 return false;
562 showStatMsg(i18n("Successfully saved data.")); 567 showStatMsg(i18n("Successfully saved data."));
563 updateCaption(); 568 updateCaption();
564 return true; 569 return true;
565} 570}
566 571
567void PwM::saveAs_slot() 572void PwM::saveAs_slot()
568{ 573{
569 saveAs(); 574 saveAs();
570} 575}
571 576
572bool PwM::saveAs() 577bool PwM::saveAs()
573{ 578{
574 if (!curDoc()->saveAsDocUi(curDoc())) 579 if (!curDoc()->saveAsDocUi(curDoc()))
575 return false; 580 return false;
576 showStatMsg(i18n("Successfully saved data.")); 581 showStatMsg(i18n("Successfully saved data."));
577 updateCaption(); 582 updateCaption();
578 return true; 583 return true;
579} 584}
580 585
581//US ENH : changed code to run with older MOC 586//US ENH : changed code to run with older MOC
582void PwM::addPwd_slot() 587void PwM::addPwd_slot()
583{ 588{
584 addPwd_slot(0, 0); 589 addPwd_slot(0, 0);
585} 590}
586 591
587void PwM::addPwd_slot(QString *pw, PwMDoc *_doc) 592void PwM::addPwd_slot(QString *pw, PwMDoc *_doc)
588{ 593{
589 PwMDoc *doc; 594 PwMDoc *doc;
590 if (_doc) { 595 if (_doc) {
591 doc = _doc; 596 doc = _doc;
592 } else { 597 } else {
593 doc = curDoc(); 598 doc = curDoc();
594 } 599 }
595 PWM_ASSERT(doc); 600 PWM_ASSERT(doc);
596 doc->timer()->getLock(DocTimer::id_autoLockTimer); 601 doc->timer()->getLock(DocTimer::id_autoLockTimer);
597#ifndef PWM_EMBEDDED 602#ifndef PWM_EMBEDDED
598 AddEntryWndImpl w; 603 AddEntryWndImpl w;
599#else 604#else
600 AddEntryWndImpl w(this, "addentrywndimpl"); 605 AddEntryWndImpl w(this, "addentrywndimpl");
601#endif 606#endif
602 607
603 vector<string> catList; 608 vector<string> catList;
604 doc->getCategoryList(&catList); 609 doc->getCategoryList(&catList);
605 unsigned i, size = catList.size(); 610 unsigned i, size = catList.size();
606 for (i = 0; i < size; ++i) { 611 for (i = 0; i < size; ++i) {
607 w.addCategory(catList[i].c_str()); 612 w.addCategory(catList[i].c_str());
608 } 613 }
609 w.setCurrCategory(view->getCurrentCategory()); 614 w.setCurrCategory(view->getCurrentCategory());
610 if (pw) 615 if (pw)
611 w.pwLineEdit->setText(*pw); 616 w.pwLineEdit->setText(*pw);
612 617
613 tryAgain: 618 tryAgain:
614 if (w.exec() == 1) 619 if (w.exec() == 1)
615 { 620 {
616 PwMDataItem d; 621 PwMDataItem d;
617 622
618 //US BUG: to initialize all values of curEntr with meaningfulldata, 623 //US BUG: to initialize all values of curEntr with meaningfulldata,
619 // we call clear on it. Reason: Metadata will be uninitialized otherwise. 624 // we call clear on it. Reason: Metadata will be uninitialized otherwise.
620 // another option would be to create a constructor for PwMDataItem 625 // another option would be to create a constructor for PwMDataItem
621 d.clear(true); 626 d.clear(true);
@@ -1035,330 +1040,334 @@ void PwM::exportToKWallet()
1035 i18n("Successfully exported data.")); 1040 i18n("Successfully exported data."));
1036 showStatMsg(i18n("Successfully exported data.")); 1041 showStatMsg(i18n("Successfully exported data."));
1037 } 1042 }
1038 init->initKWalletEmu(); 1043 init->initKWalletEmu();
1039 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 1044 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
1040#endif // CONFIG_KWALLETIF 1045#endif // CONFIG_KWALLETIF
1041} 1046}
1042 1047
1043bool PwM::importFromGpasman() 1048bool PwM::importFromGpasman()
1044{ 1049{
1045 if (!isVirgin()) { 1050 if (!isVirgin()) {
1046 if (KMessageBox::questionYesNo(this, 1051 if (KMessageBox::questionYesNo(this,
1047 i18n("Do you want to import the data " 1052 i18n("Do you want to import the data "
1048 "into the current document? (If you " 1053 "into the current document? (If you "
1049 "select \"no\", a new document will be " 1054 "select \"no\", a new document will be "
1050 "opened.)"), 1055 "opened.)"),
1051 i18n("import into this document?")) 1056 i18n("import into this document?"))
1052 == KMessageBox::No) { 1057 == KMessageBox::No) {
1053 // import the data to a new window. 1058 // import the data to a new window.
1054 PwM *newInstance = init->createMainWnd(); 1059 PwM *newInstance = init->createMainWnd();
1055 bool ok = newInstance->importFromGpasman(); 1060 bool ok = newInstance->importFromGpasman();
1056 if (!ok) { 1061 if (!ok) {
1057 newInstance->setForceQuit(true); 1062 newInstance->setForceQuit(true);
1058 delete_and_null(newInstance); 1063 delete_and_null(newInstance);
1059 } 1064 }
1060 return ok; 1065 return ok;
1061 } 1066 }
1062 } 1067 }
1063 1068
1064 curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); 1069 curDoc()->timer()->getLock(DocTimer::id_autoLockTimer);
1065 PwMerror ret; 1070 PwMerror ret;
1066 QString path(KFileDialog::getOpenFileName(QString::null, 1071 QString path(KFileDialog::getOpenFileName(QString::null,
1067 i18n("*|Gpasman or Kpasman file"), this)); 1072 i18n("*|Gpasman or Kpasman file"), this));
1068 if (path == "") 1073 if (path == "")
1069 goto cancelImport; 1074 goto cancelImport;
1070 ret = curDoc()->importFromGpasman(&path); 1075 ret = curDoc()->importFromGpasman(&path);
1071 if (ret == e_wrongPw) { 1076 if (ret == e_wrongPw) {
1072 if (KMessageBox::questionYesNo(this, 1077 if (KMessageBox::questionYesNo(this,
1073 i18n 1078 i18n
1074 ("This is probably the wrong master-password" 1079 ("This is probably the wrong master-password"
1075 "you have typed in.\n" 1080 "you have typed in.\n"
1076 "There is no real way to determine the " 1081 "There is no real way to determine the "
1077 "correctness of the password in the Gpasman " 1082 "correctness of the password in the Gpasman "
1078 "file-format. But I think this " 1083 "file-format. But I think this "
1079 "password ist wrong.\n" 1084 "password ist wrong.\n"
1080 "Do you want to continue nevertheless?"), 1085 "Do you want to continue nevertheless?"),
1081 i18n("password error")) 1086 i18n("password error"))
1082 == KMessageBox::No) { 1087 == KMessageBox::No) {
1083 goto cancelImport; 1088 goto cancelImport;
1084 } 1089 }
1085 } else if (ret != e_success) { 1090 } else if (ret != e_success) {
1086 KMessageBox::error(this, 1091 KMessageBox::error(this,
1087 i18n("Could not import file!\n" 1092 i18n("Could not import file!\n"
1088 "Do you have permission to read this file?"), 1093 "Do you have permission to read this file?"),
1089 i18n("import failed")); 1094 i18n("import failed"));
1090 goto cancelImport; 1095 goto cancelImport;
1091 } 1096 }
1092 setVirgin(false); 1097 setVirgin(false);
1093 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 1098 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
1094 return true; 1099 return true;
1095 1100
1096cancelImport: 1101cancelImport:
1097 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 1102 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
1098 return false; 1103 return false;
1099} 1104}
1100 1105
1101#ifdef CONFIG_KWALLETIF 1106#ifdef CONFIG_KWALLETIF
1102bool PwM::checkAndAskForKWalletEmu() 1107bool PwM::checkAndAskForKWalletEmu()
1103{ 1108{
1104 if (init->kwalletEmu()) { 1109 if (init->kwalletEmu()) {
1105 /* KWallet emulation is enabled. We can't import/export 1110 /* KWallet emulation is enabled. We can't import/export
1106 * data from/to it, while emulation is active. 1111 * data from/to it, while emulation is active.
1107 */ 1112 */
1108 if (KMessageBox::questionYesNo(this, 1113 if (KMessageBox::questionYesNo(this,
1109 i18n("KWallet emulation is enabled.\n" 1114 i18n("KWallet emulation is enabled.\n"
1110 "You can't import or export data from/to " 1115 "You can't import or export data from/to "
1111 "the original KWallet, while the emulation " 1116 "the original KWallet, while the emulation "
1112 "is active.\n" 1117 "is active.\n"
1113 "Do you want to tempoarly disable the KWallet emulation?"), 1118 "Do you want to tempoarly disable the KWallet emulation?"),
1114 i18n("Tempoarly disable KWallet emulation?")) 1119 i18n("Tempoarly disable KWallet emulation?"))
1115 == KMessageBox::Yes) { 1120 == KMessageBox::Yes) {
1116 init->initKWalletEmu(true); 1121 init->initKWalletEmu(true);
1117 PWM_ASSERT(!init->kwalletEmu()); 1122 PWM_ASSERT(!init->kwalletEmu());
1118 return true; 1123 return true;
1119 } 1124 }
1120 return false; 1125 return false;
1121 } 1126 }
1122 return true; 1127 return true;
1123} 1128}
1124#endif // CONFIG_KWALLETIF 1129#endif // CONFIG_KWALLETIF
1125 1130
1126bool PwM::importKWallet() 1131bool PwM::importKWallet()
1127{ 1132{
1128#ifdef CONFIG_KWALLETIF 1133#ifdef CONFIG_KWALLETIF
1129 if (!checkAndAskForKWalletEmu()) 1134 if (!checkAndAskForKWalletEmu())
1130 return false; 1135 return false;
1131 KWalletIf walletIf(this); 1136 KWalletIf walletIf(this);
1132 if (!isVirgin()) { 1137 if (!isVirgin()) {
1133 if (KMessageBox::questionYesNo(this, 1138 if (KMessageBox::questionYesNo(this,
1134 i18n("Do you want to import the data " 1139 i18n("Do you want to import the data "
1135 "into the current document? (If you " 1140 "into the current document? (If you "
1136 "select \"no\", a new document will be " 1141 "select \"no\", a new document will be "
1137 "opened.)"), 1142 "opened.)"),
1138 i18n("import into this document?")) 1143 i18n("import into this document?"))
1139 == KMessageBox::No) { 1144 == KMessageBox::No) {
1140 // import the data to a new window. 1145 // import the data to a new window.
1141 PwM *newInstance = init->createMainWnd(); 1146 PwM *newInstance = init->createMainWnd();
1142 bool ok = newInstance->importKWallet(); 1147 bool ok = newInstance->importKWallet();
1143 if (!ok) { 1148 if (!ok) {
1144 newInstance->setForceQuit(true); 1149 newInstance->setForceQuit(true);
1145 delete_and_null(newInstance); 1150 delete_and_null(newInstance);
1146 goto exit_fail; 1151 goto exit_fail;
1147 } else { 1152 } else {
1148 goto exit_ok; 1153 goto exit_ok;
1149 } 1154 }
1150 } 1155 }
1151 } 1156 }
1152 curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); 1157 curDoc()->timer()->getLock(DocTimer::id_autoLockTimer);
1153 if (!walletIf.kwalletImport(curDoc())) { 1158 if (!walletIf.kwalletImport(curDoc())) {
1154 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 1159 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
1155 showStatMsg(i18n("KWallet import failed")); 1160 showStatMsg(i18n("KWallet import failed"));
1156 goto exit_fail; 1161 goto exit_fail;
1157 } 1162 }
1158 KMessageBox::information(this, 1163 KMessageBox::information(this,
1159 i18n("Successfully imported the KWallet data " 1164 i18n("Successfully imported the KWallet data "
1160 "into the current document."), 1165 "into the current document."),
1161 i18n("successfully imported")); 1166 i18n("successfully imported"));
1162 showStatMsg(i18n("successfully imported")); 1167 showStatMsg(i18n("successfully imported"));
1163 setVirgin(false); 1168 setVirgin(false);
1164 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 1169 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
1165 1170
1166exit_ok: 1171exit_ok:
1167 init->initKWalletEmu(); 1172 init->initKWalletEmu();
1168 return true; 1173 return true;
1169 1174
1170exit_fail: 1175exit_fail:
1171 init->initKWalletEmu(); 1176 init->initKWalletEmu();
1172#endif // CONFIG_KWALLETIF 1177#endif // CONFIG_KWALLETIF
1173 return false; 1178 return false;
1174} 1179}
1175 1180
1176void PwM::print_slot() 1181void PwM::print_slot()
1177{ 1182{
1178 curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); 1183 curDoc()->timer()->getLock(DocTimer::id_autoLockTimer);
1179#ifndef PWM_EMBEDDED 1184#ifndef PWM_EMBEDDED
1180 PwMPrint p(curDoc(), this); 1185 PwMPrint p(curDoc(), this);
1181 p.printNow(); 1186 p.printNow();
1182#else 1187#else
1183 qDebug("PwM::print_slot , PRINTING IS NOT IMPLEMENTED"); 1188 qDebug("PwM::print_slot , PRINTING IS NOT IMPLEMENTED");
1184#endif 1189#endif
1185 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 1190 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
1186} 1191}
1187 1192
1188void PwM::genNewCard_slot() 1193void PwM::genNewCard_slot()
1189{ 1194{
1190#ifdef CONFIG_KEYCARD 1195#ifdef CONFIG_KEYCARD
1191 init->keycard()->genNewCard(); 1196 init->keycard()->genNewCard();
1192#endif 1197#endif
1193} 1198}
1194 1199
1195void PwM::eraseCard_slot() 1200void PwM::eraseCard_slot()
1196{ 1201{
1197#ifdef CONFIG_KEYCARD 1202#ifdef CONFIG_KEYCARD
1198 init->keycard()->eraseCard(); 1203 init->keycard()->eraseCard();
1199#endif 1204#endif
1200} 1205}
1201 1206
1202void PwM::readCardId_slot() 1207void PwM::readCardId_slot()
1203{ 1208{
1204#ifdef CONFIG_KEYCARD 1209#ifdef CONFIG_KEYCARD
1205 init->keycard()->displayKey(); 1210 init->keycard()->displayKey();
1206#endif 1211#endif
1207} 1212}
1208 1213
1209void PwM::makeCardBackup_slot() 1214void PwM::makeCardBackup_slot()
1210{ 1215{
1211#ifdef CONFIG_KEYCARD 1216#ifdef CONFIG_KEYCARD
1212 init->keycard()->makeBackupImage(); 1217 init->keycard()->makeBackupImage();
1213#endif 1218#endif
1214} 1219}
1215 1220
1216void PwM::replayCardBackup_slot() 1221void PwM::replayCardBackup_slot()
1217{ 1222{
1218#ifdef CONFIG_KEYCARD 1223#ifdef CONFIG_KEYCARD
1219 init->keycard()->replayBackupImage(); 1224 init->keycard()->replayBackupImage();
1220#endif 1225#endif
1221} 1226}
1222 1227
1223void PwM::execLauncher_slot() 1228void PwM::execLauncher_slot()
1224{ 1229{
1225 PWM_ASSERT(curDoc()); 1230 PWM_ASSERT(curDoc());
1226 if (curDoc()->isDeepLocked()) 1231 if (curDoc()->isDeepLocked())
1227 return; 1232 return;
1228 unsigned int curEntryIndex; 1233 unsigned int curEntryIndex;
1229 if (!view->getCurEntryIndex(&curEntryIndex)) 1234 if (!view->getCurEntryIndex(&curEntryIndex))
1230 return; 1235 return;
1231 bool ret = curDoc()->execLauncher(view->getCurrentCategory(), 1236 bool ret = curDoc()->execLauncher(view->getCurrentCategory(),
1232 curEntryIndex); 1237 curEntryIndex);
1233 if (ret) 1238 if (ret)
1234 showStatMsg(i18n("Executed the \"Launcher\".")); 1239 showStatMsg(i18n("Executed the \"Launcher\"."));
1235 else 1240 else
1236 showStatMsg(i18n("ERROR: Couldn't execute the \"Launcher\"!")); 1241 showStatMsg(i18n("ERROR: Couldn't execute the \"Launcher\"!"));
1237} 1242}
1238 1243
1239void PwM::goToURL_slot() 1244void PwM::goToURL_slot()
1240{ 1245{
1241 PWM_ASSERT(curDoc()); 1246 PWM_ASSERT(curDoc());
1242 if (curDoc()->isDeepLocked()) 1247 if (curDoc()->isDeepLocked())
1243 return; 1248 return;
1244 unsigned int curEntryIndex; 1249 unsigned int curEntryIndex;
1245 if (!view->getCurEntryIndex(&curEntryIndex)) 1250 if (!view->getCurEntryIndex(&curEntryIndex))
1246 return; 1251 return;
1247 bool ret = curDoc()->goToURL(view->getCurrentCategory(), 1252 bool ret = curDoc()->goToURL(view->getCurrentCategory(),
1248 curEntryIndex); 1253 curEntryIndex);
1249 if (ret) 1254 if (ret)
1250 showStatMsg(i18n("started browser with current URL.")); 1255 showStatMsg(i18n("started browser with current URL."));
1251 else 1256 else
1252 showStatMsg(i18n("ERROR: Couldn't start browser! Maybe invalid URL?")); 1257 showStatMsg(i18n("ERROR: Couldn't start browser! Maybe invalid URL?"));
1253} 1258}
1254 1259
1255void PwM::copyToClipboard(const QString &s) 1260void PwM::copyToClipboard(const QString &s)
1256{ 1261{
1257 QClipboard *cb = QApplication::clipboard(); 1262 QClipboard *cb = QApplication::clipboard();
1258#ifndef PWM_EMBEDDED 1263#ifndef PWM_EMBEDDED
1259 if (cb->supportsSelection()) 1264 if (cb->supportsSelection())
1260 cb->setText(s, QClipboard::Selection); 1265 cb->setText(s, QClipboard::Selection);
1261 cb->setText(s, QClipboard::Clipboard); 1266 cb->setText(s, QClipboard::Clipboard);
1262#else 1267#else
1263 cb->setText(s); 1268 cb->setText(s);
1264 1269
1265#endif 1270#endif
1266 1271
1267} 1272}
1268 1273
1269void PwM::showStatMsg(const QString &msg) 1274void PwM::showStatMsg(const QString &msg)
1270{ 1275{
1271#ifndef PWM_EMBEDDED 1276#ifndef PWM_EMBEDDED
1272 KStatusBar *statBar = statusBar(); 1277 KStatusBar *statBar = statusBar();
1273 statBar->message(msg, STATUSBAR_MSG_TIMEOUT * 1000); 1278 statBar->message(msg, STATUSBAR_MSG_TIMEOUT * 1000);
1274#else 1279#else
1275 qDebug("Statusbar : %s",msg.latin1()); 1280 qDebug("Statusbar : %s",msg.latin1());
1276#endif 1281#endif
1277} 1282}
1278 1283
1279void PwM::focusInEvent(QFocusEvent *e) 1284void PwM::focusInEvent(QFocusEvent *e)
1280{ 1285{
1281 if (e->gotFocus()) { 1286 if (e->gotFocus()) {
1282 emit gotFocus(this); 1287 emit gotFocus(this);
1283 } else if (e->lostFocus()) { 1288 } else if (e->lostFocus()) {
1284 emit lostFocus(this); 1289 emit lostFocus(this);
1285 } 1290 }
1286} 1291}
1287 1292
1288 1293
1289#ifdef PWM_EMBEDDED 1294#ifdef PWM_EMBEDDED
1290 1295
1296void PwM::whatsnew_slot()
1297{
1298 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1299}
1300
1291void PwM::showLicense_slot() 1301void PwM::showLicense_slot()
1292{ 1302{
1293 KApplication::showLicence(); 1303 KApplication::showLicence();
1294} 1304}
1295 1305
1296void PwM::faq_slot() 1306void PwM::faq_slot()
1297{ 1307{
1298 KApplication::showFile( "PWM/Pi FAQ", "kdepim/pwmanager/pwmanagerFAQ.txt" ); 1308 KApplication::showFile( "PWM/Pi FAQ", "kdepim/pwmanager/pwmanagerFAQ.txt" );
1299} 1309}
1300 1310
1301void PwM::syncHowTo_slot() 1311void PwM::syncHowTo_slot()
1302{ 1312{
1303 qDebug("PwM::syncHowTo_slot");
1304 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 1313 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1305} 1314}
1306 1315
1307 1316
1308void PwM::createAboutData_slot() 1317void PwM::createAboutData_slot()
1309{ 1318{
1310 QString version; 1319 QString version;
1311#include <../version> 1320#include <../version>
1312 QMessageBox::about( this, "About PwManager/Pi", 1321 QMessageBox::about( this, "About PwManager/Pi",
1313 "PwManager/Platform-independent\n" 1322 "PwManager/Platform-independent\n"
1314 "(PWM/Pi) " +version + " - " + 1323 "(PWM/Pi) " +version + " - " +
1315#ifdef DESKTOP_VERSION 1324#ifdef DESKTOP_VERSION
1316 "Desktop Edition\n" 1325 "Desktop Edition\n"
1317#else 1326#else
1318 "PDA-Edition\n" 1327 "PDA-Edition\n"
1319 "for: Zaurus 5500 / 7x0 / 8x0\n" 1328 "for: Zaurus 5500 / 7x0 / 8x0\n"
1320#endif 1329#endif
1321 1330
1322 "(c) 2004 Ulf Schenk\n" 1331 "(c) 2004 Ulf Schenk\n"
1323 "(c) 2004 Lutz Rogowski\n" 1332 "(c) 2004 Lutz Rogowski\n"
1324 "(c) 1997-2004, The KDE PIM Team\n" 1333 "(c) 1997-2004, The KDE PIM Team\n"
1325 1334
1326 "(c) Michael Buesch - main programming\nand current maintainer\nmbuesch@freenet.de\n" 1335 "(c) Michael Buesch - main programming\nand current maintainer\nmbuesch@freenet.de\n"
1327 "Matt Scifo - mscifo@o1.com\n" 1336 "Matt Scifo - mscifo@o1.com\n"
1328 "Elias Probst - elias.probst@gmx.de\n" 1337 "Elias Probst - elias.probst@gmx.de\n"
1329 "George Staikos - staikos@kde.org\n" 1338 "George Staikos - staikos@kde.org\n"
1330 "Matthew Palmer - mjp16@uow.edu.au\n" 1339 "Matthew Palmer - mjp16@uow.edu.au\n"
1331 "Olivier Sessink - gpasman@nl.linux.org\n" 1340 "Olivier Sessink - gpasman@nl.linux.org\n"
1332 "The libgcrypt developers -\nBlowfish and SHA1 algorithms\nftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/\n" 1341 "The libgcrypt developers -\nBlowfish and SHA1 algorithms\nftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/\n"
1333 "Troy Engel - tengel@sonic.net\n" 1342 "Troy Engel - tengel@sonic.net\n"
1334 "Wickey - wickey@gmx.at\n" 1343 "Wickey - wickey@gmx.at\n"
1335 "Ian MacGregor - original documentation author.\n" 1344 "Ian MacGregor - original documentation author.\n"
1336 ); 1345 );
1337} 1346}
1338 1347
1339 1348
1340//this are the overwritten callbackmethods from the syncinterface 1349//this are the overwritten callbackmethods from the syncinterface
1341bool PwM::sync(KSyncManager* manager, QString filename, int mode) 1350bool PwM::sync(KSyncManager* manager, QString filename, int mode)
1342{ 1351{
1343 PWM_ASSERT(curDoc()); 1352 PWM_ASSERT(curDoc());
1344 1353
1345 bool ret = curDoc()->sync(manager, filename, mode); 1354 bool ret = curDoc()->sync(manager, filename, mode);
1346 1355
1347 qDebug("PwM::sync save now: ret=%i", ret); 1356 qDebug("PwM::sync save now: ret=%i", ret);
1348 1357
1349 if (ret == true) { 1358 if (ret == true) {
1350 //US BUG: what can we call here to update the view of the current doc? 1359 //US BUG: what can we call here to update the view of the current doc?
1351 //mViewManager->refreshView(); 1360 //mViewManager->refreshView();
1352 1361
1353 //US curDoc()->sync sets the dirtyFlag in case the sync was successfull. 1362 //US curDoc()->sync sets the dirtyFlag in case the sync was successfull.
1354 save(); 1363 save();
1355 } 1364 }
1356 1365
1357 return ret; 1366 return ret;
1358} 1367}
1359#endif 1368#endif
1360 1369
1361 1370
1362#ifndef PWM_EMBEDDED 1371#ifndef PWM_EMBEDDED
1363#include "pwm.moc" 1372#include "pwm.moc"
1364#endif 1373#endif
diff --git a/pwmanager/pwmanager/pwm.h b/pwmanager/pwmanager/pwm.h
index 6ed9d34..fe1f7a1 100644
--- a/pwmanager/pwmanager/pwm.h
+++ b/pwmanager/pwmanager/pwm.h
@@ -1,291 +1,292 @@
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#ifndef __PWM_H 20#ifndef __PWM_H
21#define __PWM_H 21#define __PWM_H
22 22
23 23
24#include <kpopupmenu.h> 24#include <kpopupmenu.h>
25#include <klistview.h> 25#include <klistview.h>
26#include <kmainwindow.h> 26#include <kmainwindow.h>
27 27
28#ifndef PWM_EMBEDDED 28#ifndef PWM_EMBEDDED
29#include <kwin.h> 29#include <kwin.h>
30#include <kapp.h> 30#include <kapp.h>
31#include <kdeversion.h> 31#include <kdeversion.h>
32#else 32#else
33#include <ksyncmanager.h> 33#include <ksyncmanager.h>
34#endif 34#endif
35 35
36#include <kaction.h> 36#include <kaction.h>
37 37
38#include <qglobal.h> 38#include <qglobal.h>
39 39
40#include "pwmview.h" 40#include "pwmview.h"
41#include "pwmexception.h" 41#include "pwmexception.h"
42 42
43 43
44/** timeout for displaying a message on the status-bar (in seconds) */ 44/** timeout for displaying a message on the status-bar (in seconds) */
45 #define STATUSBAR_MSG_TIMEOUT5 45 #define STATUSBAR_MSG_TIMEOUT5
46 46
47 47
48class PwMInit; 48class PwMInit;
49class KSyncManager; 49class KSyncManager;
50 50
51/** PwM is the base class of the project */ 51/** PwM is the base class of the project */
52#ifndef PWM_EMBEDDED 52#ifndef PWM_EMBEDDED
53//MOC_SKIP_BEGIN 53//MOC_SKIP_BEGIN
54class PwM : public KMainWindow 54class PwM : public KMainWindow
55//MOC_SKIP_END 55//MOC_SKIP_END
56#else 56#else
57class PwM : public KMainWindow, public KSyncInterface 57class PwM : public KMainWindow, public KSyncInterface
58#endif 58#endif
59{ 59{
60 Q_OBJECT 60 Q_OBJECT
61public: 61public:
62 friend class PwMView; 62 friend class PwMView;
63 /** construtor */ 63 /** construtor */
64 PwM(PwMInit *_init, PwMDoc *doc, 64 PwM(PwMInit *_init, PwMDoc *doc,
65 bool virginity = true, 65 bool virginity = true,
66 QWidget* parent = 0, const char *name = 0); 66 QWidget* parent = 0, const char *name = 0);
67 /** destructor */ 67 /** destructor */
68 ~PwM(); 68 ~PwM();
69 69
70 /** copy some text to the global clipboard */ 70 /** copy some text to the global clipboard */
71 static void copyToClipboard(const QString &s); 71 static void copyToClipboard(const QString &s);
72 72
73 /** returns pointer to the view */ 73 /** returns pointer to the view */
74 PwMView * curView() 74 PwMView * curView()
75 { return view; } 75 { return view; }
76 /** returns pointer to the currently using document. */ 76 /** returns pointer to the currently using document. */
77 PwMDoc * curDoc() 77 PwMDoc * curDoc()
78 { return curView()->document(); } 78 { return curView()->document(); }
79 /** open a new doc with the given filename */ 79 /** open a new doc with the given filename */
80 PwMDoc * openDoc(QString filename, bool openDeepLocked = false); 80 PwMDoc * openDoc(QString filename, bool openDeepLocked = false);
81 /** show a message on the global status bar. 81 /** show a message on the global status bar.
82 * The message times out after some seconds. 82 * The message times out after some seconds.
83 */ 83 */
84 void showStatMsg(const QString &msg); 84 void showStatMsg(const QString &msg);
85 /** ask the user where to save the doc (if it has not been saved, yet) 85 /** ask the user where to save the doc (if it has not been saved, yet)
86 * and write the data to disk. 86 * and write the data to disk.
87 */ 87 */
88 bool save(); 88 bool save();
89 /** ask the user where to save the doc 89 /** ask the user where to save the doc
90 * and write the data to disk. 90 * and write the data to disk.
91 */ 91 */
92 bool saveAs(); 92 bool saveAs();
93 /** force quit. Quit this window, always! Don't minimize it */ 93 /** force quit. Quit this window, always! Don't minimize it */
94 bool isForceQuit() 94 bool isForceQuit()
95 { return forceQuit; } 95 { return forceQuit; }
96 /** set forceQuit */ 96 /** set forceQuit */
97 void setForceQuit(bool force) 97 void setForceQuit(bool force)
98 { forceQuit = force; } 98 { forceQuit = force; }
99 /** force minimize this window */ 99 /** force minimize this window */
100 bool isForceMinimizeToTray() 100 bool isForceMinimizeToTray()
101 { return forceMinimizeToTray; } 101 { return forceMinimizeToTray; }
102 /** set forceMinimizeToTray */ 102 /** set forceMinimizeToTray */
103 void setForceMinimizeToTray(bool force) 103 void setForceMinimizeToTray(bool force)
104 { forceMinimizeToTray = force; } 104 { forceMinimizeToTray = force; }
105 105
106public slots: 106public slots:
107 /** file/new triggered */ 107 /** file/new triggered */
108 void new_slot(); 108 void new_slot();
109 /** file/open triggered */ 109 /** file/open triggered */
110//US ENH 110//US ENH
111 void open_slot(); 111 void open_slot();
112 void open_slot(QString fn); 112 void open_slot(QString fn);
113 /** file/close triggered */ 113 /** file/close triggered */
114 void close_slot(); 114 void close_slot();
115 /** file/quit triggered */ 115 /** file/quit triggered */
116 void quitButton_slot(); 116 void quitButton_slot();
117 /** file/save triggered */ 117 /** file/save triggered */
118 void save_slot(); 118 void save_slot();
119 /** file/saveAs triggered */ 119 /** file/saveAs triggered */
120 void saveAs_slot(); 120 void saveAs_slot();
121 /** file/export/text triggered */ 121 /** file/export/text triggered */
122 void exportToText(); 122 void exportToText();
123 /** file/export/gpasman triggered */ 123 /** file/export/gpasman triggered */
124 void exportToGpasman(); 124 void exportToGpasman();
125 /** file/export/kwallet triggered */ 125 /** file/export/kwallet triggered */
126 void exportToKWallet(); 126 void exportToKWallet();
127 /** file/import/text triggered */ 127 /** file/import/text triggered */
128 bool importFromText(); 128 bool importFromText();
129 /** file/import/gpasman triggered */ 129 /** file/import/gpasman triggered */
130 bool importFromGpasman(); 130 bool importFromGpasman();
131 /** file/import/kwallet triggered */ 131 /** file/import/kwallet triggered */
132 bool importKWallet(); 132 bool importKWallet();
133 /** file/print triggered */ 133 /** file/print triggered */
134 void print_slot(); 134 void print_slot();
135 /** manage/add triggered */ 135 /** manage/add triggered */
136 //US ENH : changed code to run with older MOC 136 //US ENH : changed code to run with older MOC
137 void addPwd_slot(); 137 void addPwd_slot();
138 void addPwd_slot(QString *pw, PwMDoc *_doc); 138 void addPwd_slot(QString *pw, PwMDoc *_doc);
139 /** manage/edit triggered */ 139 /** manage/edit triggered */
140 //US ENH : changed code to run with older MOC 140 //US ENH : changed code to run with older MOC
141 void editPwd_slot(); 141 void editPwd_slot();
142 void editPwd_slot(const QString *category); 142 void editPwd_slot(const QString *category);
143 void editPwd_slot(const QString *category = 0, const int *index = 0, 143 void editPwd_slot(const QString *category = 0, const int *index = 0,
144 PwMDoc *_doc = 0); 144 PwMDoc *_doc = 0);
145 /** manage/delete triggered */ 145 /** manage/delete triggered */
146 void deletePwd_slot(); 146 void deletePwd_slot();
147 /** execute the "Launcher" entry */ 147 /** execute the "Launcher" entry */
148 void execLauncher_slot(); 148 void execLauncher_slot();
149 /** open browser with URL entry */ 149 /** open browser with URL entry */
150 void goToURL_slot(); 150 void goToURL_slot();
151 /** manage/changeMasterPwd triggered */ 151 /** manage/changeMasterPwd triggered */
152 void changeMasterPwd_slot(); 152 void changeMasterPwd_slot();
153 /** lock current document */ 153 /** lock current document */
154 void lockWnd_slot(); 154 void lockWnd_slot();
155 /** deeplock current document */ 155 /** deeplock current document */
156 void deepLockWnd_slot(); 156 void deepLockWnd_slot();
157 /** window/unlock triggered */ 157 /** window/unlock triggered */
158 void unlockWnd_slot(); 158 void unlockWnd_slot();
159 /** find item */ 159 /** find item */
160 void find_slot(); 160 void find_slot();
161 /** configure clicked */ 161 /** configure clicked */
162 void config_slot(); 162 void config_slot();
163 /** (de)activate the "change master pw" button in the menu-bar */ 163 /** (de)activate the "change master pw" button in the menu-bar */
164 void activateMpButton(bool activate = true); 164 void activateMpButton(bool activate = true);
165 /** generate a new chipcard */ 165 /** generate a new chipcard */
166 void genNewCard_slot(); 166 void genNewCard_slot();
167 /** completely erase the current card */ 167 /** completely erase the current card */
168 void eraseCard_slot(); 168 void eraseCard_slot();
169 /** returns the ID number of the current card */ 169 /** returns the ID number of the current card */
170 void readCardId_slot(); 170 void readCardId_slot();
171 /** make backup image of the current card */ 171 /** make backup image of the current card */
172 void makeCardBackup_slot(); 172 void makeCardBackup_slot();
173 /** write backup image to current card */ 173 /** write backup image to current card */
174 void replayCardBackup_slot(); 174 void replayCardBackup_slot();
175 175
176#ifdef PWM_EMBEDDED 176#ifdef PWM_EMBEDDED
177 void whatsnew_slot();
177 void showLicense_slot(); 178 void showLicense_slot();
178 void faq_slot(); 179 void faq_slot();
179 void createAboutData_slot(); 180 void createAboutData_slot();
180 void syncHowTo_slot(); 181 void syncHowTo_slot();
181#endif 182#endif
182 183
183protected: 184protected:
184 /** is this window virgin? */ 185 /** is this window virgin? */
185 bool isVirgin() 186 bool isVirgin()
186 { return virgin; } 187 { return virgin; }
187 /** add/remove virginity */ 188 /** add/remove virginity */
188 void setVirgin(bool v); 189 void setVirgin(bool v);
189 /** initialize the menubar */ 190 /** initialize the menubar */
190 void initMenubar(); 191 void initMenubar();
191 /** initialize the toolbar */ 192 /** initialize the toolbar */
192 void initToolbar(); 193 void initToolbar();
193 /** initialize the window-metrics */ 194 /** initialize the window-metrics */
194 void initMetrics(); 195 void initMetrics();
195 /** close-event */ 196 /** close-event */
196 void closeEvent(QCloseEvent *e); 197 void closeEvent(QCloseEvent *e);
197 /** creates a new PwM-ListView and returns it */ 198 /** creates a new PwM-ListView and returns it */
198 PwMView * makeNewListView(PwMDoc *doc); 199 PwMView * makeNewListView(PwMDoc *doc);
199 /** Window hide-event */ 200 /** Window hide-event */
200 void hideEvent(QHideEvent *); 201 void hideEvent(QHideEvent *);
201 /** is this window minimized? */ 202 /** is this window minimized? */
202 bool isMinimized() 203 bool isMinimized()
203 { 204 {
204#ifndef PWM_EMBEDDED 205#ifndef PWM_EMBEDDED
205 #if KDE_VERSION >= KDE_MAKE_VERSION(3, 2, 0) 206 #if KDE_VERSION >= KDE_MAKE_VERSION(3, 2, 0)
206 return KWin::windowInfo(winId()).isMinimized(); 207 return KWin::windowInfo(winId()).isMinimized();
207 #else // KDE_VERSION 208 #else // KDE_VERSION
208 return KWin::info(winId()).isIconified(); 209 return KWin::info(winId()).isIconified();
209 #endif // KDE_VERSION 210 #endif // KDE_VERSION
210#else 211#else
211 return false; 212 return false;
212#endif 213#endif
213 } 214 }
214 /** window got the focus */ 215 /** window got the focus */
215 void focusInEvent(QFocusEvent *e); 216 void focusInEvent(QFocusEvent *e);
216 /** update the caption string */ 217 /** update the caption string */
217 void updateCaption(); 218 void updateCaption();
218#ifdef CONFIG_KWALLETIF 219#ifdef CONFIG_KWALLETIF
219 /** check if kwalletemu is enabled and ask the user what to do */ 220 /** check if kwalletemu is enabled and ask the user what to do */
220 bool checkAndAskForKWalletEmu(); 221 bool checkAndAskForKWalletEmu();
221#endif // CONFIG_KWALLETIF 222#endif // CONFIG_KWALLETIF
222 223
223protected slots: 224protected slots:
224 /** doc got closed */ 225 /** doc got closed */
225 void docClosed(PwMDoc *doc); 226 void docClosed(PwMDoc *doc);
226 227
227signals: 228signals:
228 /** window got closed (by user or someone else) */ 229 /** window got closed (by user or someone else) */
229 void closed(PwM *wnd); 230 void closed(PwM *wnd);
230 /** window got the focus (was brought to foreground) */ 231 /** window got the focus (was brought to foreground) */
231 void gotFocus(PwM *wnd); 232 void gotFocus(PwM *wnd);
232 /** window lost the focus */ 233 /** window lost the focus */
233 void lostFocus(PwM *wnd); 234 void lostFocus(PwM *wnd);
234 235
235protected: 236protected:
236 /** pointer to the view active in this KMainWindow */ 237 /** pointer to the view active in this KMainWindow */
237 PwMView *view; 238 PwMView *view;
238 /** pointer to the init class */ 239 /** pointer to the init class */
239 PwMInit *init; 240 PwMInit *init;
240 /** has this window already lost its virginity? 241 /** has this window already lost its virginity?
241 * Means is there an open working document 242 * Means is there an open working document
242 */ 243 */
243 bool virgin; 244 bool virgin;
244 /** "file" popup-menu */ 245 /** "file" popup-menu */
245 KPopupMenu *filePopup; 246 KPopupMenu *filePopup;
246 247
247 /** "manage" popup-menu */ 248 /** "manage" popup-menu */
248 KPopupMenu *managePopup; 249 KPopupMenu *managePopup;
249#ifdef CONFIG_KEYCARD 250#ifdef CONFIG_KEYCARD
250 /** "chipcard" popup-menu */ 251 /** "chipcard" popup-menu */
251 KPopupMenu *chipcardPopup; 252 KPopupMenu *chipcardPopup;
252#endif // CONFIG_KEYCARD 253#endif // CONFIG_KEYCARD
253 /** "view" popup-menu */ 254 /** "view" popup-menu */
254 KPopupMenu *viewPopup; 255 KPopupMenu *viewPopup;
255 /** "options" popup-menu */ 256 /** "options" popup-menu */
256 KPopupMenu *optionsPopup; 257 KPopupMenu *optionsPopup;
257 /** "help" popup-menu */ 258 /** "help" popup-menu */
258 KPopupMenu *helpPopup; 259 KPopupMenu *helpPopup;
259 /** "export" popup-menu */ 260 /** "export" popup-menu */
260 KPopupMenu *exportPopup; 261 KPopupMenu *exportPopup;
261 /** "import" popup-menu */ 262 /** "import" popup-menu */
262 KPopupMenu *importPopup; 263 KPopupMenu *importPopup;
263 /** force quit this window? */ 264 /** force quit this window? */
264 bool forceQuit; 265 bool forceQuit;
265 /** force minimize this window to the tray */ 266 /** force minimize this window to the tray */
266 bool forceMinimizeToTray; 267 bool forceMinimizeToTray;
267 268
268 269
269 270
270 271
271 private: 272 private:
272#ifdef PWM_EMBEDDED 273#ifdef PWM_EMBEDDED
273 //this are the overwritten callbackmethods from the syncinterface 274 //this are the overwritten callbackmethods from the syncinterface
274 virtual bool sync(KSyncManager* manager, QString filename, int mode); 275 virtual bool sync(KSyncManager* manager, QString filename, int mode);
275 276
276 // LR ******************************* 277 // LR *******************************
277 // sync stuff! 278 // sync stuff!
278 QPopupMenu *syncPopup; 279 QPopupMenu *syncPopup;
279 KSyncManager* syncManager; 280 KSyncManager* syncManager;
280#endif 281#endif
281 282
282 283
283 284
284 285
285 286
286 287
287 288
288 289
289}; 290};
290 291
291#endif 292#endif