-rw-r--r-- | pwmanager/pwmanager/pwmview.cpp | 16 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwmview.h | 10 |
2 files changed, 20 insertions, 6 deletions
diff --git a/pwmanager/pwmanager/pwmview.cpp b/pwmanager/pwmanager/pwmview.cpp index 58c2fca..d192119 100644 --- a/pwmanager/pwmanager/pwmview.cpp +++ b/pwmanager/pwmanager/pwmview.cpp | |||
@@ -1,92 +1,96 @@ | |||
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 "pwmview.h" | 20 | #include "pwmview.h" |
21 | #include "pwmexception.h" | 21 | #include "pwmexception.h" |
22 | #include "globalstuff.h" | 22 | #include "globalstuff.h" |
23 | #include "pwm.h" | 23 | #include "pwm.h" |
24 | #include "rencatwnd.h" | 24 | #include "rencatwnd.h" |
25 | #ifndef PWM_EMBEDDED | 25 | #ifndef PWM_EMBEDDED |
26 | #include "configuration.h" | 26 | #include "configuration.h" |
27 | #else | 27 | #else |
28 | #include "pwmprefs.h" | 28 | #include "pwmprefs.h" |
29 | #endif | 29 | #endif |
30 | #include "commentbox.h" | 30 | #include "commentbox.h" |
31 | 31 | ||
32 | #include <kmessagebox.h> | 32 | #include <kmessagebox.h> |
33 | #include <klocale.h> | 33 | #include <klocale.h> |
34 | 34 | ||
35 | #include <qlineedit.h> | 35 | #include <qlineedit.h> |
36 | #include <qpoint.h> | 36 | #include <qpoint.h> |
37 | #include <qapplication.h> | 37 | #include <qapplication.h> |
38 | 38 | ||
39 | //US ENH: wouldn't it be a good idea if we could use this consts everywhere else. | ||
40 | //US ENH: for examle in listviewpwm.cpp | ||
41 | //US ENH: Because of that I transfer them into the headerfile. | ||
42 | /* | ||
39 | #define COLUMN_DESC 0 | 43 | #define COLUMN_DESC 0 |
40 | #define COLUMN_NAME 1 | 44 | #define COLUMN_NAME 1 |
41 | #define COLUMN_PW 2 | 45 | #define COLUMN_PW 2 |
42 | #define COLUMN_URL 3 | 46 | #define COLUMN_URL 3 |
43 | #define COLUMN_LAUNCHER 4 | 47 | #define COLUMN_LAUNCHER 4 |
44 | 48 | */ | |
45 | 49 | ||
46 | PwMView::PwMView(PwM *_mainClass, | 50 | PwMView::PwMView(PwM *_mainClass, |
47 | QWidget *parent, PwMDoc *_doc, | 51 | QWidget *parent, PwMDoc *_doc, |
48 | const char *name) | 52 | const char *name) |
49 | : PwMViewStyle(parent, name) | 53 | : PwMViewStyle(parent, name) |
50 | { | 54 | { |
51 | PWM_ASSERT(_mainClass); | 55 | PWM_ASSERT(_mainClass); |
52 | PWM_ASSERT(parent); | 56 | PWM_ASSERT(parent); |
53 | PWM_ASSERT(_doc); | 57 | PWM_ASSERT(_doc); |
54 | setView(this); | 58 | setView(this); |
55 | doc = _doc; | 59 | doc = _doc; |
56 | doc->setListViewPointer(this); | 60 | doc->setListViewPointer(this); |
57 | mainClass = _mainClass; | 61 | mainClass = _mainClass; |
58 | resize(_mainClass->size()); | 62 | resize(_mainClass->size()); |
59 | initStyle(conf()->confWndMainViewStyle()); | 63 | initStyle(conf()->confWndMainViewStyle()); |
60 | initCtxMenu(); | 64 | initCtxMenu(); |
61 | doc->setCurrentView(this); | 65 | doc->setCurrentView(this); |
62 | connect(doc, SIGNAL(dataChanged(PwMDoc *)), this, SLOT(updateView())); | 66 | connect(doc, SIGNAL(dataChanged(PwMDoc *)), this, SLOT(updateView())); |
63 | } | 67 | } |
64 | 68 | ||
65 | PwMView::~PwMView() | 69 | PwMView::~PwMView() |
66 | { | 70 | { |
67 | } | 71 | } |
68 | 72 | ||
69 | void PwMView::initCtxMenu() | 73 | void PwMView::initCtxMenu() |
70 | { | 74 | { |
71 | ctxMenu = new QPopupMenu(this); | 75 | ctxMenu = new QPopupMenu(this); |
72 | ctxMenu->insertItem(i18n("&Add password"), mainClass, SLOT(addPwd_slot())); | 76 | ctxMenu->insertItem(i18n("&Add password"), mainClass, SLOT(addPwd_slot())); |
73 | ctxMenu->insertSeparator(); | 77 | ctxMenu->insertSeparator(); |
74 | ctxMenu->insertItem(i18n("&Edit"), mainClass, SLOT(editPwd_slot())); | 78 | ctxMenu->insertItem(i18n("&Edit"), mainClass, SLOT(editPwd_slot())); |
75 | ctxMenu->insertItem(i18n("&Delete"), mainClass, SLOT(deletePwd_slot())); | 79 | ctxMenu->insertItem(i18n("&Delete"), mainClass, SLOT(deletePwd_slot())); |
76 | ctxMenu->insertSeparator(); | 80 | ctxMenu->insertSeparator(); |
77 | ctxMenu->insertItem(i18n("copy password to clipboard"), | 81 | ctxMenu->insertItem(i18n("copy password to clipboard"), |
78 | this, SLOT(copyPwToClip())); | 82 | this, SLOT(copyPwToClip())); |
79 | ctxMenu->insertItem(i18n("copy username to clipboard"), | 83 | ctxMenu->insertItem(i18n("copy username to clipboard"), |
80 | this, SLOT(copyNameToClip())); | 84 | this, SLOT(copyNameToClip())); |
81 | ctxMenu->insertItem(i18n("copy description to clipboard"), | 85 | ctxMenu->insertItem(i18n("copy description to clipboard"), |
82 | this, SLOT(copyDescToClip())); | 86 | this, SLOT(copyDescToClip())); |
83 | ctxMenu->insertItem(i18n("copy url to clipboard"), | 87 | ctxMenu->insertItem(i18n("copy url to clipboard"), |
84 | this, SLOT(copyUrlToClip())); | 88 | this, SLOT(copyUrlToClip())); |
85 | ctxMenu->insertItem(i18n("copy launcher to clipboard"), | 89 | ctxMenu->insertItem(i18n("copy launcher to clipboard"), |
86 | this, SLOT(copyLauncherToClip())); | 90 | this, SLOT(copyLauncherToClip())); |
87 | ctxMenu->insertItem(i18n("copy comment to clipboard"), | 91 | ctxMenu->insertItem(i18n("copy comment to clipboard"), |
88 | this, SLOT(copyCommentToClip())); | 92 | this, SLOT(copyCommentToClip())); |
89 | ctxMenu->insertSeparator(); | 93 | ctxMenu->insertSeparator(); |
90 | ctxMenu->insertItem(i18n("Execute \"Launcher\""), mainClass, | 94 | ctxMenu->insertItem(i18n("Execute \"Launcher\""), mainClass, |
91 | SLOT(execLauncher_slot())); | 95 | SLOT(execLauncher_slot())); |
92 | ctxMenu->insertItem(i18n("Go to \"URL\""), mainClass, | 96 | ctxMenu->insertItem(i18n("Go to \"URL\""), mainClass, |
@@ -320,101 +324,101 @@ void PwMView::reorgLp() | |||
320 | */ | 324 | */ |
321 | const unsigned int searchIn2 = SEARCH_IN_DESC; | 325 | const unsigned int searchIn2 = SEARCH_IN_DESC; |
322 | doc->findEntry(curCat, findThis, searchIn2, | 326 | doc->findEntry(curCat, findThis, searchIn2, |
323 | &foundPos, true); | 327 | &foundPos, true); |
324 | if (unlikely(!foundPos.size())) { | 328 | if (unlikely(!foundPos.size())) { |
325 | BUG(); | 329 | BUG(); |
326 | continue; | 330 | continue; |
327 | } | 331 | } |
328 | /* We assert that it's a binary entry, now. | 332 | /* We assert that it's a binary entry, now. |
329 | * No chance to efficiently verify it here. | 333 | * No chance to efficiently verify it here. |
330 | */ | 334 | */ |
331 | } | 335 | } |
332 | doc->setListViewPos(curCat, foundPos[0], cnt - i - 1); | 336 | doc->setListViewPos(curCat, foundPos[0], cnt - i - 1); |
333 | } | 337 | } |
334 | } | 338 | } |
335 | 339 | ||
336 | void PwMView::selAt(int index) | 340 | void PwMView::selAt(int index) |
337 | { | 341 | { |
338 | QListViewItem *item = lv->itemAtIndex(index); | 342 | QListViewItem *item = lv->itemAtIndex(index); |
339 | if (!item) | 343 | if (!item) |
340 | return; | 344 | return; |
341 | lv->setCurrentItem(item); | 345 | lv->setCurrentItem(item); |
342 | lv->ensureItemVisible(item); | 346 | lv->ensureItemVisible(item); |
343 | } | 347 | } |
344 | 348 | ||
345 | void PwMView::renCatButton_slot() | 349 | void PwMView::renCatButton_slot() |
346 | { | 350 | { |
347 | if (doc->isDeepLocked()) | 351 | if (doc->isDeepLocked()) |
348 | return; | 352 | return; |
349 | RenCatWnd wnd(this); | 353 | RenCatWnd wnd(this); |
350 | if (wnd.exec() == 1) { | 354 | if (wnd.exec() == 1) { |
351 | QString newName(wnd.getNewName()); | 355 | QString newName(wnd.getNewName()); |
352 | if (newName == "") | 356 | if (newName == "") |
353 | return; | 357 | return; |
354 | document()->renameCategory(getCurrentCategory(), | 358 | document()->renameCategory(getCurrentCategory(), |
355 | newName); | 359 | newName); |
356 | } | 360 | } |
357 | } | 361 | } |
358 | 362 | ||
359 | void PwMView::delCatButton_slot() | 363 | void PwMView::delCatButton_slot() |
360 | { | 364 | { |
361 | if (doc->isDeepLocked()) | 365 | if (doc->isDeepLocked()) |
362 | return; | 366 | return; |
363 | if (numCategories() <= 1) { | 367 | if (numCategories() <= 1) { |
364 | mainClass->showStatMsg(i18n("Can't remove the last category.")); | 368 | mainClass->showStatMsg(i18n("Can't remove the last category.")); |
365 | return; | 369 | return; |
366 | } | 370 | } |
367 | if (KMessageBox::questionYesNo(this, | 371 | if (KMessageBox::questionYesNo(this, |
368 | i18n("Do you really want to " | 372 | i18n("Do you really want to\n" |
369 | "delete the selected " | 373 | "delete the selected\n" |
370 | "category? All password-" | 374 | "category? All password-\n" |
371 | "entries will be lost in " | 375 | "entries will be lost in\n" |
372 | "this category!"), | 376 | "this category!\n"), |
373 | i18n("Delete category?")) | 377 | i18n("Delete category?")) |
374 | == KMessageBox::No) { | 378 | == KMessageBox::No) { |
375 | return; | 379 | return; |
376 | } | 380 | } |
377 | document()->delCategory(getCurrentCategory()); | 381 | document()->delCategory(getCurrentCategory()); |
378 | } | 382 | } |
379 | 383 | ||
380 | void PwMView::copyPwToClip() | 384 | void PwMView::copyPwToClip() |
381 | { | 385 | { |
382 | if (doc->isDeepLocked()) | 386 | if (doc->isDeepLocked()) |
383 | return; | 387 | return; |
384 | unsigned int curIndex = 0; | 388 | unsigned int curIndex = 0; |
385 | if (!getCurEntryIndex(&curIndex)) | 389 | if (!getCurEntryIndex(&curIndex)) |
386 | return; | 390 | return; |
387 | PwMDataItem d; | 391 | PwMDataItem d; |
388 | document()->getDataChangedLock(); | 392 | document()->getDataChangedLock(); |
389 | document()->getEntry(getCurrentCategory(), curIndex, &d, true); | 393 | document()->getEntry(getCurrentCategory(), curIndex, &d, true); |
390 | document()->putDataChangedLock(); | 394 | document()->putDataChangedLock(); |
391 | PwM::copyToClipboard(d.pw.c_str()); | 395 | PwM::copyToClipboard(d.pw.c_str()); |
392 | } | 396 | } |
393 | 397 | ||
394 | void PwMView::copyNameToClip() | 398 | void PwMView::copyNameToClip() |
395 | { | 399 | { |
396 | if (doc->isDeepLocked()) | 400 | if (doc->isDeepLocked()) |
397 | return; | 401 | return; |
398 | unsigned int curIndex = 0; | 402 | unsigned int curIndex = 0; |
399 | if (!getCurEntryIndex(&curIndex)) | 403 | if (!getCurEntryIndex(&curIndex)) |
400 | return; | 404 | return; |
401 | PwMDataItem d; | 405 | PwMDataItem d; |
402 | document()->getEntry(getCurrentCategory(), curIndex, &d); | 406 | document()->getEntry(getCurrentCategory(), curIndex, &d); |
403 | PwM::copyToClipboard(d.name.c_str()); | 407 | PwM::copyToClipboard(d.name.c_str()); |
404 | } | 408 | } |
405 | 409 | ||
406 | void PwMView::copyDescToClip() | 410 | void PwMView::copyDescToClip() |
407 | { | 411 | { |
408 | if (doc->isDeepLocked()) | 412 | if (doc->isDeepLocked()) |
409 | return; | 413 | return; |
410 | unsigned int curIndex = 0; | 414 | unsigned int curIndex = 0; |
411 | if (!getCurEntryIndex(&curIndex)) | 415 | if (!getCurEntryIndex(&curIndex)) |
412 | return; | 416 | return; |
413 | PwMDataItem d; | 417 | PwMDataItem d; |
414 | document()->getEntry(getCurrentCategory(), curIndex, &d); | 418 | document()->getEntry(getCurrentCategory(), curIndex, &d); |
415 | PwM::copyToClipboard(d.desc.c_str()); | 419 | PwM::copyToClipboard(d.desc.c_str()); |
416 | } | 420 | } |
417 | 421 | ||
418 | void PwMView::copyUrlToClip() | 422 | void PwMView::copyUrlToClip() |
419 | { | 423 | { |
420 | if (doc->isDeepLocked()) | 424 | if (doc->isDeepLocked()) |
diff --git a/pwmanager/pwmanager/pwmview.h b/pwmanager/pwmanager/pwmview.h index b4cec65..5a326d3 100644 --- a/pwmanager/pwmanager/pwmview.h +++ b/pwmanager/pwmanager/pwmview.h | |||
@@ -1,70 +1,80 @@ | |||
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 PWMVIEW_H | 20 | #ifndef PWMVIEW_H |
21 | #define PWMVIEW_H | 21 | #define PWMVIEW_H |
22 | 22 | ||
23 | //US ENH: wouldn't it be a good idea if we could use this consts everywhere else. | ||
24 | //US ENH: for examle in listviewpwm.cpp | ||
25 | //US ENH: Because of that I transfer them into the headerfile. | ||
26 | #define COLUMN_DESC 0 | ||
27 | #define COLUMN_NAME 1 | ||
28 | #define COLUMN_PW 2 | ||
29 | #define COLUMN_URL 3 | ||
30 | #define COLUMN_LAUNCHER 4 | ||
31 | |||
32 | |||
23 | #include "listviewpwm.h" | 33 | #include "listviewpwm.h" |
24 | #include "pwmdoc.h" | 34 | #include "pwmdoc.h" |
25 | #include "pwmviewstyle.h" | 35 | #include "pwmviewstyle.h" |
26 | 36 | ||
27 | #include <kconfig.h> | 37 | #include <kconfig.h> |
28 | #include <klocale.h> | 38 | #include <klocale.h> |
29 | 39 | ||
30 | #include <qevent.h> | 40 | #include <qevent.h> |
31 | #include <qfont.h> | 41 | #include <qfont.h> |
32 | #include <qobject.h> | 42 | #include <qobject.h> |
33 | 43 | ||
34 | #include <vector> | 44 | #include <vector> |
35 | #include <string> | 45 | #include <string> |
36 | 46 | ||
37 | using std::string; | 47 | using std::string; |
38 | using std::vector; | 48 | using std::vector; |
39 | 49 | ||
40 | class PwM; | 50 | class PwM; |
41 | class ConfFile; | 51 | class ConfFile; |
42 | class PwMStatusBar; | 52 | class PwMStatusBar; |
43 | 53 | ||
44 | 54 | ||
45 | /** View class for PwM */ | 55 | /** View class for PwM */ |
46 | class PwMView : public PwMViewStyle | 56 | class PwMView : public PwMViewStyle |
47 | { | 57 | { |
48 | Q_OBJECT | 58 | Q_OBJECT |
49 | friend class PwMViewStyle; | 59 | friend class PwMViewStyle; |
50 | public: | 60 | public: |
51 | /** construtor */ | 61 | /** construtor */ |
52 | PwMView(PwM *_mainClass, QWidget* parent, PwMDoc *_doc, | 62 | PwMView(PwM *_mainClass, QWidget* parent, PwMDoc *_doc, |
53 | const char *name = 0); | 63 | const char *name = 0); |
54 | /** destructor */ | 64 | /** destructor */ |
55 | ~PwMView(); | 65 | ~PwMView(); |
56 | 66 | ||
57 | /** returns pointer to the document */ | 67 | /** returns pointer to the document */ |
58 | PwMDoc* document() | 68 | PwMDoc* document() |
59 | { return doc; } | 69 | { return doc; } |
60 | /** returns the index of the currently selected entry. | 70 | /** returns the index of the currently selected entry. |
61 | * (index as represented in PwMDoc !) | 71 | * (index as represented in PwMDoc !) |
62 | */ | 72 | */ |
63 | bool getCurEntryIndex(unsigned int *index); | 73 | bool getCurEntryIndex(unsigned int *index); |
64 | /** returns the position of the given item in the document | 74 | /** returns the position of the given item in the document |
65 | * Note: This func only serches in the current category. | 75 | * Note: This func only serches in the current category. |
66 | */ | 76 | */ |
67 | bool getDocEntryIndex(unsigned int *index, | 77 | bool getDocEntryIndex(unsigned int *index, |
68 | const QListViewItem *item); | 78 | const QListViewItem *item); |
69 | 79 | ||
70 | public slots: | 80 | public slots: |