summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt4
-rw-r--r--bin/kdepim/pwmanager/germantranslation.txt2
-rw-r--r--bin/kdepim/pwmanager/icons16/decrypted.pngbin1009 -> 855 bytes
-rw-r--r--bin/kdepim/pwmanager/icons22/decrypted.pngbin939 -> 1117 bytes
-rw-r--r--pwmanager/pwmanager/addentrywndimpl.cpp1
-rw-r--r--pwmanager/pwmanager/pwm.cpp11
-rw-r--r--pwmanager/pwmanager/pwmviewstyle_0.cpp22
-rw-r--r--pwmanager/pwmanager/pwmviewstyle_1.cpp4
8 files changed, 29 insertions, 15 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 11c50f8..657d1de 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,102 +1,104 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 2.0.14 ************ 3********** VERSION 2.0.14 ************
4 4
5Made Passwordmanager PwM/Pi more userfriendly: 5Made Passwordmanager PwM/Pi more userfriendly:
6Rearranged some toolbar icons and optimized setting of focus. 6Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more.
7Fixed bug in KO/Pi todo printing.
8Made Qtopia calendar import possible on desktop .
7 9
8********** VERSION 2.0.13 ************ 10********** VERSION 2.0.13 ************
9 11
10Fixed a problem in the addressee select dialog and made it more user friendly by adding a minimize splitter. 12Fixed a problem in the addressee select dialog and made it more user friendly by adding a minimize splitter.
11 13
12In the search dialog you can switch now the focus from search line edit to the list view by pressing key "arrow down". 14In the search dialog you can switch now the focus from search line edit to the list view by pressing key "arrow down".
13 15
14OM/Pi: 16OM/Pi:
15Fixed a refresh problem of outgoing/sent/sendfailed folders after sending mails. 17Fixed a refresh problem of outgoing/sent/sendfailed folders after sending mails.
16Added missing German translation. 18Added missing German translation.
17Added warning if path is specified in local folder settings of account config. 19Added warning if path is specified in local folder settings of account config.
18 20
19********** VERSION 2.0.12 ************ 21********** VERSION 2.0.12 ************
20 22
21KO/Pi: 23KO/Pi:
22Fixed a bug in todo start/due date handling for non recurring todos with a start and due date. 24Fixed a bug in todo start/due date handling for non recurring todos with a start and due date.
23Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes. 25Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes.
24Fixed several problems of the keyboard focus in the desktop versions when opening the search dialog/event viewer. 26Fixed several problems of the keyboard focus in the desktop versions when opening the search dialog/event viewer.
25 27
26Fixed problem in pi-sync mode when wrong password was sent. 28Fixed problem in pi-sync mode when wrong password was sent.
27 29
28OM/Pi: 30OM/Pi:
29Fixed a crash when displaying mails with "Show mail as html" was checked in the config. 31Fixed a crash when displaying mails with "Show mail as html" was checked in the config.
30Added a check before displaying the mail if the mail is in html format, if "Show mail as html" is enabled. 32Added a check before displaying the mail if the mail is in html format, if "Show mail as html" is enabled.
31 33
32********** VERSION 2.0.11 ************ 34********** VERSION 2.0.11 ************
33 35
34Fixed some problems in pi-sync mode 36Fixed some problems in pi-sync mode
35(e.g. details of events were not synced properly) 37(e.g. details of events were not synced properly)
36 38
37********** VERSION 2.0.10 ************ 39********** VERSION 2.0.10 ************
38 40
39KO/Pi: 41KO/Pi:
40In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view. 42In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view.
41This is fixed. 43This is fixed.
42Changed the search dialog a bit to make it more user friendly. 44Changed the search dialog a bit to make it more user friendly.
43(E.g.: Removed message box about "no items found" and set key focus to search line edit after search). 45(E.g.: Removed message box about "no items found" and set key focus to search line edit after search).
44 46
45Added config option to hide the week number in KO/Pi toolbar. 47Added config option to hide the week number in KO/Pi toolbar.
46 48
47********** VERSION 2.0.9 ************ 49********** VERSION 2.0.9 ************
48 50
49Made month view icons for multiday events a bit nicer. 51Made month view icons for multiday events a bit nicer.
50Some minor fixes in KO/Pi 52Some minor fixes in KO/Pi
51(e.g. go to today did not work for new week view properly). 53(e.g. go to today did not work for new week view properly).
52 54
53 55
54********** VERSION 2.0.8 ************ 56********** VERSION 2.0.8 ************
55 57
56Fixed a problem in dependency info in the ipk files for the Zaurus. 58Fixed a problem in dependency info in the ipk files for the Zaurus.
57 59
58Added icon for the stealth new week view and made navigation more user friendly in monthview by adding a prev/next week button to the navigator bar. 60Added icon for the stealth new week view and made navigation more user friendly in monthview by adding a prev/next week button to the navigator bar.
59 61
60Added a "go today" button to the datepicker. 62Added a "go today" button to the datepicker.
61 63
62Added "created" and "last modified" to event/todo viewer (and What'sThis viewer) 64Added "created" and "last modified" to event/todo viewer (and What'sThis viewer)
63and made it configureable to show these values. 65and made it configureable to show these values.
64 66
65Fixed a problem for events (from external iCal files) that do have a duration but no end date. 67Fixed a problem for events (from external iCal files) that do have a duration but no end date.
66 68
67 69
68********** VERSION 2.0.7 ************ 70********** VERSION 2.0.7 ************
69 71
70Added global application font settings 72Added global application font settings
71(for all KDE-Pim/Pi apps) to the general settings. 73(for all KDE-Pim/Pi apps) to the general settings.
72 74
73Fixed a problem in OM/Pi when trying to login to some IMAP servers 75Fixed a problem in OM/Pi when trying to login to some IMAP servers
74(like the IMAP server of Apple: mail.mac.com ) 76(like the IMAP server of Apple: mail.mac.com )
75 77
76Added recurring todos to KO/Pi. 78Added recurring todos to KO/Pi.
77 79
78 80
79********** VERSION 2.0.6 ************ 81********** VERSION 2.0.6 ************
80 82
81Some bugfixes in the pi-sync mode. 83Some bugfixes in the pi-sync mode.
82Added German translation for pi-sync mode. 84Added German translation for pi-sync mode.
83 85
84KO/Pi: 86KO/Pi:
85Made the todolist using alternate background. 87Made the todolist using alternate background.
86 88
87Other minor fixes in KO/Pi. 89Other minor fixes in KO/Pi.
88 90
89 91
90********** VERSION 2.0.5 ************ 92********** VERSION 2.0.5 ************
91 93
92Bugfixes in KO/Pi. 94Bugfixes in KO/Pi.
93 95
94********** VERSION 2.0.4 ************ 96********** VERSION 2.0.4 ************
95 97
96KO/Pi: 98KO/Pi:
97Fixed problem loading translations for summary/location edit boxes in event/todo editor. 99Fixed problem loading translations for summary/location edit boxes in event/todo editor.
98 100
99Added a general "select week number" to the toolbar. 101Added a general "select week number" to the toolbar.
100 102
101Fixed some small problem of the new features introduced in version 2.0.3. 103Fixed some small problem of the new features introduced in version 2.0.3.
102 104
diff --git a/bin/kdepim/pwmanager/germantranslation.txt b/bin/kdepim/pwmanager/germantranslation.txt
index a63be31..ccc9d83 100644
--- a/bin/kdepim/pwmanager/germantranslation.txt
+++ b/bin/kdepim/pwmanager/germantranslation.txt
@@ -256,101 +256,101 @@
256{ "<LOCKED>","<GESPERRT>" }, 256{ "<LOCKED>","<GESPERRT>" },
257{ "To unlock click the icon on the left.","Zum Entsperren auf linkes Icon klicken." }, 257{ "To unlock click the icon on the left.","Zum Entsperren auf linkes Icon klicken." },
258{ "PwManager","PwManager" }, 258{ "PwManager","PwManager" },
259{ "Window-style:","Window-Stil:" }, 259{ "Window-style:","Window-Stil:" },
260{ "Category on top","Kategorien oben" }, 260{ "Category on top","Kategorien oben" },
261{ "Category-list left/top","Kategorien links oben" }, 261{ "Category-list left/top","Kategorien links oben" },
262{ "Font for Password entries:","Schrift für Passwort Einträge:" }, 262{ "Font for Password entries:","Schrift für Passwort Einträge:" },
263{ "Font for Password summary:","Schrift für Passwort Übersicht:" }, 263{ "Font for Password summary:","Schrift für Passwort Übersicht:" },
264{ "Font:","Schriftart:" }, 264{ "Font:","Schriftart:" },
265{ "Summary","Übersicht" }, 265{ "Summary","Übersicht" },
266{ "Compression:","Kompression:" }, 266{ "Compression:","Kompression:" },
267{ "gzip","gzip" }, 267{ "gzip","gzip" },
268{ "Encryption:","Verschlüsselung:" }, 268{ "Encryption:","Verschlüsselung:" },
269{ "Blowfish (128 bit)","Blowfish (128 bit)" }, 269{ "Blowfish (128 bit)","Blowfish (128 bit)" },
270{ "AES-128, Rijndael (128 bit)","AES-128, Rijndael (128 bit)" }, 270{ "AES-128, Rijndael (128 bit)","AES-128, Rijndael (128 bit)" },
271{ "AES-192, Rijndael (192 bit)","AES-192, Rijndael (192 bit)" }, 271{ "AES-192, Rijndael (192 bit)","AES-192, Rijndael (192 bit)" },
272{ "AES-256, Rijndael (256 bit)","AES-256, Rijndael (256 bit)" }, 272{ "AES-256, Rijndael (256 bit)","AES-256, Rijndael (256 bit)" },
273{ "Triple-DES (168 bit)","Triple-DES (168 bit)" }, 273{ "Triple-DES (168 bit)","Triple-DES (168 bit)" },
274{ "Twofish (256 bit)","Twofish (256 bit)" }, 274{ "Twofish (256 bit)","Twofish (256 bit)" },
275{ "Twofish-128 (128 bit)","Twofish-128 (128 bit)" }, 275{ "Twofish-128 (128 bit)","Twofish-128 (128 bit)" },
276{ "Hashing:","Hashing:" }, 276{ "Hashing:","Hashing:" },
277{ "SHA-160, SHA1 (160 bit)","SHA-160, SHA1 (160 bit)" }, 277{ "SHA-160, SHA1 (160 bit)","SHA-160, SHA1 (160 bit)" },
278{ "SHA-256 (256 bit)","SHA-256 (256 bit)" }, 278{ "SHA-256 (256 bit)","SHA-256 (256 bit)" },
279{ "SHA-384 (384 bit)","SHA-384 (384 bit)" }, 279{ "SHA-384 (384 bit)","SHA-384 (384 bit)" },
280{ "SHA-512 (512 bit)","SHA-512 (512 bit)" }, 280{ "SHA-512 (512 bit)","SHA-512 (512 bit)" },
281{ "MD5 (128 bit)","MD5 (128 bit)" }, 281{ "MD5 (128 bit)","MD5 (128 bit)" },
282{ "RIPE-MD-160 (160 bit)","RIPE-MD-160 (160 bit)" }, 282{ "RIPE-MD-160 (160 bit)","RIPE-MD-160 (160 bit)" },
283{ "Tiger (192 bit)","Tiger (192 bit)" }, 283{ "Tiger (192 bit)","Tiger (192 bit)" },
284{ "Permissions:","Zugriffsrechte:" }, 284{ "Permissions:","Zugriffsrechte:" },
285{ "Make backup before saving","Mache Backup vor dem Speichern" }, 285{ "Make backup before saving","Mache Backup vor dem Speichern" },
286{ "Password timeout\n(timeout to hold password in\nmemory,so you don't have to\nre-enter it,if you\nalready have entered it)\n[set to 0 to disable]:","Passwort Timeout\n(Timeout um das Passwort\nim Speicher zu halten,\nso dass es nicht noch mal\neingegeben werden muß.)\n[Setze auf 0 zum deaktivieren]:" }, 286{ "Password timeout\n(timeout to hold password in\nmemory,so you don't have to\nre-enter it,if you\nalready have entered it)\n[set to 0 to disable]:","Passwort Timeout\n(Timeout um das Passwort\nim Speicher zu halten,\nso dass es nicht noch mal\neingegeben werden muß.)\n[Setze auf 0 zum deaktivieren]:" },
287{ "Auto-lock timeout\n(auto lock document after this\namount of seconds)\n[set to 0 to disable]:","(Total-)Sperr-Timeout\n(Sperre Dokument total nach\ndieser Anzahl Sekunden)\n[Setze auf 0 zum deaktivieren]:" }, 287{ "Auto-lock timeout\n(auto lock document after this\namount of seconds)\n[set to 0 to disable]:","(Total-)Sperr-Timeout\n(Sperre Dokument total nach\ndieser Anzahl Sekunden)\n[Setze auf 0 zum deaktivieren]:" },
288{ "deep-lock on autolock","Sperre total beim Sperr-Timeout" }, 288{ "deep-lock on autolock","Sperre total beim Sperr-Timeout" },
289{ "open deeplocked","Öffne total gesperrt" }, 289{ "open deeplocked","Öffne total gesperrt" },
290{ "Favourite browser:","Bevorzugter Browser:" }, 290{ "Favourite browser:","Bevorzugter Browser:" },
291{ "Favourite x-terminal:","Bevorzugtes x-terminal:" }, 291{ "Favourite x-terminal:","Bevorzugtes x-terminal:" },
292{ "Open document with passwords unlocked","Öffne Dokument mit Passwort ungesperrt" }, 292{ "Open document with passwords unlocked","Öffne Dokument mit Passwort ungesperrt" },
293{ "Look && feel","Aussehen" }, 293{ "Look && feel","Aussehen" },
294{ "File","Datei" }, 294{ "File","Datei" },
295{ "Timeout","Timeout" }, 295{ "Timeout","Timeout" },
296{ "Autostart","Autostart" }, 296{ "Autostart","Autostart" },
297{ "External apps","Externe Applik." }, 297{ "External apps","Externe Applik." },
298{ "Miscellaneous","Verschiedenes" }, 298{ "Miscellaneous","Verschiedenes" },
299{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" }, 299{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" },
300{ "edit category descriptions","Ändere Label für Kategorie" }, 300{ "edit category descriptions","Ändere Label für Kategorie" },
301{ "Close","Schließen" }, 301{ "Close","Schließen" },
302{ "Category:","Category:" }, 302{ "Category:","Category:" },
303{ "Text1 (Description):","Text1 (Beschreibung):" }, 303{ "Text1 (Description):","Text1 (Beschreibung):" },
304{ "Text2 (Username):","Text2 (Benutzername):" }, 304{ "Text2 (Username):","Text2 (Benutzername):" },
305{ "Text3 (Password):","Text3 (Passwort):" }, 305{ "Text3 (Password):","Text3 (Passwort):" },
306{ "edit/add a password entry","Ändere/hinzufüge Passwort Eintrag" }, 306{ "edit/add a password entry","Ändere/hinzufüge Passwort Eintrag" },
307{ "Description:","Beschreibung:" }, 307{ "Description:","Beschreibung:" },
308{ "Username:","Benutzername:" }, 308{ "Username:","Benutzername:" },
309{ "Password:","Passwort:" }, 309{ "Password:","Passwort:" },
310{ "&Reveal","&Offen zeigen" }, 310{ "&Reveal","&Offen zeigen" },
311{ "&Generate","&Generiere" }, 311{ "&Generate","&Generiere" },
312{ "&Password","&Passwort" }, 312{ "&Password","&Passwort" },
313{ "&Comments","Kommentar" }, 313{ "&Comments","Kommentar" },
314{ "Launcher:","Launcher:" }, 314{ "Launcher:","Launcher:" },
315{ "$d = Description","$d = Beschreibung" }, 315{ "$d = Description","$d = Beschreibung" },
316{ "$n = Username","$n = Benutzername" }, 316{ "$n = Username","$n = Benutzername" },
317{ "$c = Comment","$c = Kommentar" }, 317{ "$c = Comment","$c = Kommentar" },
318{ "$u = URL","$u = URL" }, 318{ "$u = URL","$u = URL" },
319{ "$p = Password","$p = Passwort" }, 319{ "$p = Password","$p = Passwort" },
320{ "&Launcher","&Launcher" }, 320{ "&Launcher","&Launcher" },
321{ "Password generator","Passwort Generator" }, 321{ "Password generator","Passwort Generator" },
322{ "Character set:","Buchstaben Set:" }, 322{ "Character set:","Buchstaben Set:" },
323{ "Lowercase (abc)","Klein (abc)" }, 323{ "Lowercase (abc)","Klein (abc)" },
324{ "Uppercase (ABC)","Groß (ABC)" }, 324{ "Uppercase (ABC)","Groß (ABC)" },
325{ "Numbers (123)","Nummmern (123)" }, 325{ "Numbers (123)","Nummmern (123)" },
326{ "Special characters:","Spezielle Buchstaben:" }, 326{ "Special characters:","Spezielle Buchstaben:" },
327{ "Spaces (blank characters)","Leerzeichen" }, 327{ "Spaces (blank characters)","Leerzeichen" },
328{ "User defined:","Benutzer definiert:" }, 328{ "User defined:","Benutzer definiert:" },
329{ "Password Length:","Passwort Länge:" }, 329{ "Password Length:","Passwort Länge:" },
330{ "Enable Filtering to get better passwords","Enable Filtering to get better passwords" }, 330{ "Enable Filtering to get better passwords","Enable Filtering to get better passwords" },
331{ "no password","Kein Passwort" }, 331{ "no password","Kein Passwort" },
332{ "Sorry, you haven't set a password.","Sorry, Sie haben kein Passwort angegeben." }, 332{ "Sorry, you haven't set a password.","Sorry, Sie haben kein Passwort angegeben." },
333{ "not saved, yet","not saved, yet" }, 333{ "not saved, yet","not saved, yet" },
334{ "Can't deep-lock, because the document\nhasn't been saved, yet. Please save\nto a file and try again.","Kann nicht tiefsperren, weil das\nDokument noch nicht gespeichert wurde.\nBitte speichern und noch einmal versuchen." }, 334{ "Can't deep-lock, because the document\nhasn't been saved, yet. Please save\nto a file and try again.","Kann nicht tiefsperren, weil das\nDokument noch nicht gespeichert wurde.\nBitte speichern und noch einmal versuchen." },
335{ "Find","Finde" }, 335{ "Find","Finde" },
336{ "&Exact match","Genaue Übereinstimmung" }, 336{ "&Exact match","Genaue Übereinstimmung" },
337{ "&Case sensitive","Großschrift abhängig" }, 337{ "&Case sensitive","Großschrift abhängig" },
338{ "Search in Column","Suche in Spalten" }, 338{ "Search in Column","Suche in Spalten" },
339{ "&Description","Beschreibung" }, 339{ "&Description","Beschreibung" },
340{ "C&omment","Kommentar" }, 340{ "C&omment","Kommentar" },
341{ "&Username","Benutzername" }, 341{ "&Username","Benutzername" },
342{ "U&RL","URL" }, 342{ "U&RL","URL" },
343{ "delete?","Löschen?" }, 343{ "delete?","Löschen?" },
344{ "Do you really want to delete\nthe selected entry","Wollen Sie wirklich\nden Eintrag löschen:" }, 344{ "Do you really want to delete\nthe selected entry","Wollen Sie wirklich\nden Eintrag löschen:" },
345{ "Save?","Speichern?" }, 345{ "Save?","Speichern?" },
346{ ""\nhas been modified.\nDo you want to save it?",""\nwurde geändert.\nMöchten Sie speichern?" }, 346{ ""\nhas been modified.\nDo you want to save it?",""\nwurde geändert.\nMöchten Sie speichern?" },
347{ "The list\n "","Die Liste\n "" }, 347{ "The list\n "","Die Liste\n "" },
348{ "nothing to do","Nichts zu tun" }, 348{ "nothing to do","Nichts zu tun" },
349{ "Sorry, there's nothing to save.\nPlease first add some passwords.","Sorry, es gibt nichts zu speichern.\nBitte erst Passwörter hinzufügen." }, 349{ "Sorry, there's nothing to save.\nPlease first add some passwords.","Sorry, es gibt nichts zu speichern.\nBitte erst Passwörter hinzufügen." },
350{ "Add new password","Passwort hinzufügen" }, 350{ "Add new password","Passwort hinzufügen" },
351{ "Successfully saved data.","Datei gespeichert." }, 351{ "Successfully saved data.","Datei gespeichert." },
352{ "","" }, 352{ "Category:","Kategorie:" },
353{ "","" }, 353{ "","" },
354{ "","" }, 354{ "","" },
355{ "","" }, 355{ "","" },
356 356
diff --git a/bin/kdepim/pwmanager/icons16/decrypted.png b/bin/kdepim/pwmanager/icons16/decrypted.png
index a52d790..3777a12 100644
--- a/bin/kdepim/pwmanager/icons16/decrypted.png
+++ b/bin/kdepim/pwmanager/icons16/decrypted.png
Binary files differ
diff --git a/bin/kdepim/pwmanager/icons22/decrypted.png b/bin/kdepim/pwmanager/icons22/decrypted.png
index 2228639..ea770ea 100644
--- a/bin/kdepim/pwmanager/icons22/decrypted.png
+++ b/bin/kdepim/pwmanager/icons22/decrypted.png
Binary files differ
diff --git a/pwmanager/pwmanager/addentrywndimpl.cpp b/pwmanager/pwmanager/addentrywndimpl.cpp
index fa6b6c0..09efd1c 100644
--- a/pwmanager/pwmanager/addentrywndimpl.cpp
+++ b/pwmanager/pwmanager/addentrywndimpl.cpp
@@ -1,142 +1,143 @@
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 * Many very good improvements and the original implementations of * 6 * Many very good improvements and the original implementations of *
7 * them came from Matt Scifo <mscifo@o1.com> * 7 * them came from Matt Scifo <mscifo@o1.com> *
8 * * 8 * *
9 * This program is free software; you can redistribute it and/or modify * 9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License version 2 * 10 * it under the terms of the GNU General Public License version 2 *
11 * as published by the Free Software Foundation. * 11 * as published by the Free Software Foundation. *
12 * * 12 * *
13 ***************************************************************************/ 13 ***************************************************************************/
14 14
15/*************************************************************************** 15/***************************************************************************
16 * copyright (C) 2004 by Ulf Schenk 16 * copyright (C) 2004 by Ulf Schenk
17 * This file is originaly based on version 1.0.1 of pwmanager 17 * This file is originaly based on version 1.0.1 of pwmanager
18 * and was modified to run on embedded devices that run microkde 18 * and was modified to run on embedded devices that run microkde
19 * 19 *
20 * $Id$ 20 * $Id$
21 **************************************************************************/ 21 **************************************************************************/
22 22
23#include "addentrywndimpl.h" 23#include "addentrywndimpl.h"
24#include "pwmexception.h" 24#include "pwmexception.h"
25#include "pwgenwndimpl.h" 25#include "pwgenwndimpl.h"
26#ifndef PWM_EMBEDDED 26#ifndef PWM_EMBEDDED
27#include "advcommeditimpl.h" 27#include "advcommeditimpl.h"
28#endif 28#endif
29#include "htmlgen.h" 29#include "htmlgen.h"
30 30
31#include <kmessagebox.h> 31#include <kmessagebox.h>
32#include <klocale.h> 32#include <klocale.h>
33 33
34#include <qpushbutton.h> 34#include <qpushbutton.h>
35#include <qlabel.h> 35#include <qlabel.h>
36#include <qlayout.h> 36#include <qlayout.h>
37 37
38 38
39#ifndef PWM_EMBEDDED 39#ifndef PWM_EMBEDDED
40AddEntryWndImpl::AddEntryWndImpl() 40AddEntryWndImpl::AddEntryWndImpl()
41 : addEntryWnd( 0, "AddEntryWndImpl", TRUE) 41 : addEntryWnd( 0, "AddEntryWndImpl", TRUE)
42#else 42#else
43AddEntryWndImpl::AddEntryWndImpl( PwMDoc* doc, QWidget* parent, const char* name) 43AddEntryWndImpl::AddEntryWndImpl( PwMDoc* doc, QWidget* parent, const char* name)
44 : addEntryWnd( doc, parent, name) 44 : addEntryWnd( doc, parent, name)
45#endif 45#endif
46{ 46{
47 categoryComboBox->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred ));
47#ifndef PWM_EMBEDDED 48#ifndef PWM_EMBEDDED
48 editAdvCommentButton = 0; 49 editAdvCommentButton = 0;
49 commentTextEdit = 0; 50 commentTextEdit = 0;
50#endif 51#endif
51 switchComment(false); 52 switchComment(false);
52 pwGen = new PwGenWndImpl(this); 53 pwGen = new PwGenWndImpl(this);
53} 54}
54 55
55AddEntryWndImpl::~AddEntryWndImpl() 56AddEntryWndImpl::~AddEntryWndImpl()
56{ 57{
57#ifndef PWM_EMBEDDED 58#ifndef PWM_EMBEDDED
58 delete_ifnot_null(editAdvCommentButton); 59 delete_ifnot_null(editAdvCommentButton);
59 delete_ifnot_null(commentTextEdit); 60 delete_ifnot_null(commentTextEdit);
60#endif 61#endif
61 delete pwGen; 62 delete pwGen;
62} 63}
63 64
64#ifdef PWM_EMBEDDED 65#ifdef PWM_EMBEDDED
65void AddEntryWndImpl::slotOk() 66void AddEntryWndImpl::slotOk()
66{ 67{
67 slotApply(); 68 slotApply();
68 69
69 if (pwLineEdit->text().isEmpty()) { 70 if (pwLineEdit->text().isEmpty()) {
70 KMessageBox::error(this, 71 KMessageBox::error(this,
71 i18n("Sorry, you haven't set a password."), 72 i18n("Sorry, you haven't set a password."),
72 i18n("no password")); 73 i18n("no password"));
73 return; 74 return;
74 } 75 }
75 76
76 if (descLineEdit->text().isEmpty()) { 77 if (descLineEdit->text().isEmpty()) {
77 KMessageBox::error(this, 78 KMessageBox::error(this,
78 i18n("You haven't set a \"Description\"."), 79 i18n("You haven't set a \"Description\"."),
79 i18n("Description not set")); 80 i18n("Description not set"));
80 return; 81 return;
81 } 82 }
82 83
83 KDialogBase::slotOk(); 84 KDialogBase::slotOk();
84} 85}
85#else 86#else
86 87
87void AddEntryWndImpl::okButton_slot() 88void AddEntryWndImpl::okButton_slot()
88{ 89{
89 if (pwLineEdit->text().isEmpty()) { 90 if (pwLineEdit->text().isEmpty()) {
90 KMessageBox::error(this, 91 KMessageBox::error(this,
91 i18n("Sorry, you haven't set a password."), 92 i18n("Sorry, you haven't set a password."),
92 i18n("no password")); 93 i18n("no password"));
93 return; 94 return;
94 } 95 }
95 if (descLineEdit->text().isEmpty()) { 96 if (descLineEdit->text().isEmpty()) {
96 KMessageBox::error(this, 97 KMessageBox::error(this,
97 i18n 98 i18n
98 ("You haven't set a \"Description\"."), 99 ("You haven't set a \"Description\"."),
99 i18n("Description not set")); 100 i18n("Description not set"));
100 return; 101 return;
101 } 102 }
102 done(1); 103 done(1);
103} 104}
104 105
105void AddEntryWndImpl::cancelButton_slot() 106void AddEntryWndImpl::cancelButton_slot()
106{ 107{
107 done(2); 108 done(2);
108} 109}
109#endif 110#endif
110 111
111void AddEntryWndImpl::setCurrCategory(const QString &cat) 112void AddEntryWndImpl::setCurrCategory(const QString &cat)
112{ 113{
113 int i, count = categoryComboBox->count(); 114 int i, count = categoryComboBox->count();
114 115
115 for (i = 0; i < count; ++i) { 116 for (i = 0; i < count; ++i) {
116 if (categoryComboBox->text(i) == cat) { 117 if (categoryComboBox->text(i) == cat) {
117 categoryComboBox->setCurrentItem(i); 118 categoryComboBox->setCurrentItem(i);
118#ifdef PWM_EMBEDDED 119#ifdef PWM_EMBEDDED
119 categorySelected(cat); 120 categorySelected(cat);
120#endif 121#endif
121 return; 122 return;
122 } 123 }
123 } 124 }
124 BUG(); 125 BUG();
125} 126}
126 127
127void AddEntryWndImpl::revealButton_slot() 128void AddEntryWndImpl::revealButton_slot()
128{ 129{
129 if (revealButton->isOn()) { 130 if (revealButton->isOn()) {
130 pwLineEdit->setEchoMode(QLineEdit::Normal); 131 pwLineEdit->setEchoMode(QLineEdit::Normal);
131 } else { 132 } else {
132 pwLineEdit->setEchoMode(QLineEdit::Password); 133 pwLineEdit->setEchoMode(QLineEdit::Password);
133 } 134 }
134} 135}
135 136
136void AddEntryWndImpl::generateButton_slot() 137void AddEntryWndImpl::generateButton_slot()
137{ 138{
138 if (!pwGen->exec()) 139 if (!pwGen->exec())
139 return; 140 return;
140 setPassword(pwGen->getPassword()); 141 setPassword(pwGen->getPassword());
141} 142}
142 143
diff --git a/pwmanager/pwmanager/pwm.cpp b/pwmanager/pwmanager/pwm.cpp
index 9187380..a751fce 100644
--- a/pwmanager/pwmanager/pwm.cpp
+++ b/pwmanager/pwmanager/pwm.cpp
@@ -156,311 +156,310 @@ enum {
156enum { 156enum {
157 BUTTON_TOOL_NEW = 0, 157 BUTTON_TOOL_NEW = 0,
158 BUTTON_TOOL_OPEN, 158 BUTTON_TOOL_OPEN,
159 BUTTON_TOOL_SAVE, 159 BUTTON_TOOL_SAVE,
160 BUTTON_TOOL_SAVEAS, 160 BUTTON_TOOL_SAVEAS,
161 BUTTON_TOOL_PRINT, 161 BUTTON_TOOL_PRINT,
162 BUTTON_TOOL_ADD, 162 BUTTON_TOOL_ADD,
163 BUTTON_TOOL_EDIT, 163 BUTTON_TOOL_EDIT,
164 BUTTON_TOOL_DEL, 164 BUTTON_TOOL_DEL,
165 BUTTON_TOOL_FIND, 165 BUTTON_TOOL_FIND,
166 BUTTON_TOOL_LOCK, 166 BUTTON_TOOL_LOCK,
167 BUTTON_TOOL_DEEPLOCK, 167 BUTTON_TOOL_DEEPLOCK,
168 BUTTON_TOOL_UNLOCK 168 BUTTON_TOOL_UNLOCK
169}; 169};
170 170
171 171
172PwM::PwM(PwMInit *_init, PwMDoc *doc, 172PwM::PwM(PwMInit *_init, PwMDoc *doc,
173 bool virginity, 173 bool virginity,
174 QWidget *parent, const char *name) 174 QWidget *parent, const char *name)
175 : KMainWindow(parent, "HALLO") 175 : KMainWindow(parent, "HALLO")
176 , forceQuit (false) 176 , forceQuit (false)
177 , forceMinimizeToTray (false) 177 , forceMinimizeToTray (false)
178{ 178{
179 syncManager = 0; 179 syncManager = 0;
180 virgin = !virginity; 180 virgin = !virginity;
181 init = _init; 181 init = _init;
182 connect(doc, SIGNAL(docClosed(PwMDoc *)), 182 connect(doc, SIGNAL(docClosed(PwMDoc *)),
183 this, SLOT(docClosed(PwMDoc *))); 183 this, SLOT(docClosed(PwMDoc *)));
184 initMenubar(); 184 initMenubar();
185 initToolbar(); 185 initToolbar();
186 initMetrics(); 186 initMetrics();
187 setVirgin(virginity); 187 setVirgin(virginity);
188 setFocusPolicy(QWidget::WheelFocus); 188 setFocusPolicy(QWidget::WheelFocus);
189#ifndef PWM_EMBEDDED 189#ifndef PWM_EMBEDDED
190 statusBar()->show(); 190 statusBar()->show();
191#endif 191#endif
192 view = makeNewListView(doc); 192 view = makeNewListView(doc);
193 setCentralWidget(view); 193 setCentralWidget(view);
194 updateCaption(); 194 updateCaption();
195 showStatMsg(i18n("Ready.")); 195 showStatMsg(i18n("Ready."));
196} 196}
197 197
198PwM::~PwM() 198PwM::~PwM()
199{ 199{
200 //qDebug("PwM::~PwM() %x", this); 200 //qDebug("PwM::~PwM() %x", this);
201 disconnect(curDoc(), SIGNAL(docClosed(PwMDoc *)), 201 disconnect(curDoc(), SIGNAL(docClosed(PwMDoc *)),
202 this, SLOT(docClosed(PwMDoc *))); 202 this, SLOT(docClosed(PwMDoc *)));
203 conf()->confWndMainWndSize(size()); 203 conf()->confWndMainWndSize(size());
204 //LR closing of windows changed 204 //LR closing of windows changed
205 //needed for fastload option on PDA 205 //needed for fastload option on PDA
206 //emit closed(this); 206 //emit closed(this);
207 //qDebug("PwM::~PwM() emited closed(this)"); 207 //qDebug("PwM::~PwM() emited closed(this)");
208 delete view; 208 delete view;
209 delete syncManager; 209 delete syncManager;
210} 210}
211 211
212void PwM::initMenubar() 212void PwM::initMenubar()
213{ 213{
214 KIconLoader* picons; 214 KIconLoader* picons;
215#ifndef PWM_EMBEDDED 215#ifndef PWM_EMBEDDED
216 KIconLoader icons; 216 KIconLoader icons;
217 picons = &icons; 217 picons = &icons;
218#else 218#else
219 picons = KGlobal::iconLoader(); 219 picons = KGlobal::iconLoader();
220 220
221 221
222 syncPopup = new KPopupMenu(this); 222 syncPopup = new KPopupMenu(this);
223 223
224 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::PWMPI, PWMPrefs::instance(), syncPopup); 224 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::PWMPI, PWMPrefs::instance(), syncPopup);
225 syncManager->setBlockSave(false); 225 syncManager->setBlockSave(false);
226 226
227 connect ( syncPopup, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 227 connect ( syncPopup, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
228 syncManager->fillSyncMenu(); 228 syncManager->fillSyncMenu();
229 229
230#endif 230#endif
231 filePopup = new KPopupMenu(this); 231 filePopup = new KPopupMenu(this);
232 importPopup = new KPopupMenu(filePopup); 232 importPopup = new KPopupMenu(filePopup);
233 exportPopup = new KPopupMenu(filePopup); 233 exportPopup = new KPopupMenu(filePopup);
234 managePopup = new KPopupMenu(this); 234 managePopup = new KPopupMenu(this);
235#ifdef CONFIG_KEYCARD 235#ifdef CONFIG_KEYCARD
236 chipcardPopup = new KPopupMenu(this); 236 chipcardPopup = new KPopupMenu(this);
237#endif // CONFIG_KEYCARD 237#endif // CONFIG_KEYCARD
238 viewPopup = new KPopupMenu(this); 238 viewPopup = new KPopupMenu(this);
239 optionsPopup = new KPopupMenu(this); 239 optionsPopup = new KPopupMenu(this);
240 240
241// "file" popup menu 241// "file" popup menu
242 filePopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)), 242 filePopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)),
243 i18n("&New"), this, 243 i18n("&New"), this,
244 SLOT(new_slot()), 0, BUTTON_POPUP_FILE_NEW); 244 SLOT(new_slot()), 0, BUTTON_POPUP_FILE_NEW);
245 filePopup->insertItem(QIconSet(picons->loadIcon("fileopen", KIcon::Small)), 245 filePopup->insertItem(QIconSet(picons->loadIcon("fileopen", KIcon::Small)),
246 i18n("&Open"), this, 246 i18n("&Open"), this,
247 SLOT(open_slot()), 0, BUTTON_POPUP_FILE_OPEN); 247 SLOT(open_slot()), 0, BUTTON_POPUP_FILE_OPEN);
248 filePopup->insertItem(QIconSet(picons->loadIcon("fileclose", KIcon::Small)), 248 filePopup->insertItem(QIconSet(picons->loadIcon("fileclose", KIcon::Small)),
249 i18n("&Close"), this, 249 i18n("&Close"), this,
250 SLOT(close_slot()), 0, BUTTON_POPUP_FILE_CLOSE); 250 SLOT(close_slot()), 0, BUTTON_POPUP_FILE_CLOSE);
251 filePopup->insertSeparator(); 251 filePopup->insertSeparator();
252 filePopup->insertItem(QIconSet(picons->loadIcon("pencil", KIcon::Small)),
253 i18n("&Add password"), this,
254 SLOT(addPwd_slot()), 0,
255 BUTTON_POPUP_MANAGE_ADD);
256 filePopup->insertSeparator();
257 filePopup->insertItem(QIconSet(picons->loadIcon("filesave", KIcon::Small)), 252 filePopup->insertItem(QIconSet(picons->loadIcon("filesave", KIcon::Small)),
258 i18n("&Save"), this, 253 i18n("&Save"), this,
259 SLOT(save_slot()), 0, BUTTON_POPUP_FILE_SAVE); 254 SLOT(save_slot()), 0, BUTTON_POPUP_FILE_SAVE);
260 filePopup->insertItem(QIconSet(picons->loadIcon("filesaveas", KIcon::Small)), 255 filePopup->insertItem(QIconSet(picons->loadIcon("filesaveas", KIcon::Small)),
261 i18n("Save &as..."), 256 i18n("Save &as..."),
262 this, SLOT(saveAs_slot()), 0, 257 this, SLOT(saveAs_slot()), 0,
263 BUTTON_POPUP_FILE_SAVEAS); 258 BUTTON_POPUP_FILE_SAVEAS);
264 filePopup->insertSeparator(); 259 filePopup->insertSeparator();
265 // "file/export" popup menu 260 // "file/export" popup menu
266 exportPopup->insertItem(i18n("&Text-file..."), this, 261 exportPopup->insertItem(i18n("&Text-file..."), this,
267 SLOT(exportToText()), 0, BUTTON_POPUP_EXPORT_TEXT); 262 SLOT(exportToText()), 0, BUTTON_POPUP_EXPORT_TEXT);
268 exportPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, 263 exportPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this,
269 SLOT(exportToGpasman()), 0, BUTTON_POPUP_EXPORT_GPASMAN); 264 SLOT(exportToGpasman()), 0, BUTTON_POPUP_EXPORT_GPASMAN);
270 exportPopup->insertItem(i18n("&CSV (Comma Separated Value) ..."), this, 265 exportPopup->insertItem(i18n("&CSV (Comma Separated Value) ..."), this,
271 SLOT(exportToCsv()), 0, BUTTON_POPUP_EXPORT_CSV); 266 SLOT(exportToCsv()), 0, BUTTON_POPUP_EXPORT_CSV);
272#ifdef CONFIG_KWALLETIF 267#ifdef CONFIG_KWALLETIF
273 exportPopup->insertItem(i18n("&KWallet..."), this, 268 exportPopup->insertItem(i18n("&KWallet..."), this,
274 SLOT(exportToKWallet()), 0, BUTTON_POPUP_EXPORT_KWALLET); 269 SLOT(exportToKWallet()), 0, BUTTON_POPUP_EXPORT_KWALLET);
275#endif 270#endif
276 filePopup->insertItem(QIconSet(picons->loadIcon("fileexport", KIcon::Small)), 271 filePopup->insertItem(QIconSet(picons->loadIcon("fileexport", KIcon::Small)),
277 i18n("E&xport"), exportPopup, 272 i18n("E&xport"), exportPopup,
278 BUTTON_POPUP_FILE_EXPORT); 273 BUTTON_POPUP_FILE_EXPORT);
279 // "file/import" popup menu 274 // "file/import" popup menu
280 importPopup->insertItem(i18n("&Text-file..."), this, 275 importPopup->insertItem(i18n("&Text-file..."), this,
281 SLOT(importFromText()), 0, BUTTON_POPUP_IMPORT_TEXT); 276 SLOT(importFromText()), 0, BUTTON_POPUP_IMPORT_TEXT);
282 importPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, 277 importPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this,
283 SLOT(importFromGpasman()), 0, BUTTON_POPUP_IMPORT_GPASMAN); 278 SLOT(importFromGpasman()), 0, BUTTON_POPUP_IMPORT_GPASMAN);
284 importPopup->insertItem(i18n("&CSV (Comma Separated Value) ..."), this, 279 importPopup->insertItem(i18n("&CSV (Comma Separated Value) ..."), this,
285 SLOT(importCsv()), 0, BUTTON_POPUP_IMPORT_CSV); 280 SLOT(importCsv()), 0, BUTTON_POPUP_IMPORT_CSV);
286#ifdef CONFIG_KWALLETIF 281#ifdef CONFIG_KWALLETIF
287 importPopup->insertItem(i18n("&KWallet..."), this, 282 importPopup->insertItem(i18n("&KWallet..."), this,
288 SLOT(importKWallet()), 0, BUTTON_POPUP_IMPORT_KWALLET); 283 SLOT(importKWallet()), 0, BUTTON_POPUP_IMPORT_KWALLET);
289#endif 284#endif
290 filePopup->insertItem(QIconSet(picons->loadIcon("fileimport", KIcon::Small)), 285 filePopup->insertItem(QIconSet(picons->loadIcon("fileimport", KIcon::Small)),
291 i18n("I&mport"), importPopup, 286 i18n("I&mport"), importPopup,
292 BUTTON_POPUP_FILE_IMPORT); 287 BUTTON_POPUP_FILE_IMPORT);
293 filePopup->insertSeparator(); 288 filePopup->insertSeparator();
294#if 0 289#if 0
295 filePopup->insertItem(QIconSet(picons->loadIcon("fileprint", KIcon::Small)), 290 filePopup->insertItem(QIconSet(picons->loadIcon("fileprint", KIcon::Small)),
296 i18n("&Print..."), this, 291 i18n("&Print..."), this,
297 SLOT(print_slot()), 0, BUTTON_POPUP_FILE_PRINT); 292 SLOT(print_slot()), 0, BUTTON_POPUP_FILE_PRINT);
298 filePopup->insertSeparator(); 293 filePopup->insertSeparator();
299#endif 294#endif
300 filePopup->insertItem(QIconSet(picons->loadIcon("exit", KIcon::Small)), 295 filePopup->insertItem(QIconSet(picons->loadIcon("exit", KIcon::Small)),
301 i18n("&Quit"), this, 296 i18n("&Quit"), this,
302 SLOT(quitButton_slot()), 0, BUTTON_POPUP_FILE_QUIT); 297 SLOT(quitButton_slot()), 0, BUTTON_POPUP_FILE_QUIT);
303 menuBar()->insertItem(i18n("&File"), filePopup); 298 menuBar()->insertItem(i18n("&File"), filePopup);
304// "manage" popup menu 299// "manage" popup menu
305 managePopup->insertItem(QIconSet(picons->loadIcon("pencil", KIcon::Small)), 300 managePopup->insertItem(QIconSet(picons->loadIcon("pencil", KIcon::Small)),
306 i18n("&Add password"), this, 301 i18n("&Add password"), this,
307 SLOT(addPwd_slot()), 0, 302 SLOT(addPwd_slot()), 0,
308 BUTTON_POPUP_MANAGE_ADD); 303 BUTTON_POPUP_MANAGE_ADD);
309 managePopup->insertSeparator(); 304 managePopup->insertSeparator();
310 managePopup->insertItem(QIconSet(picons->loadIcon("edit", KIcon::Small)), 305 managePopup->insertItem(QIconSet(picons->loadIcon("edit", KIcon::Small)),
311 i18n("&Edit"), this, SLOT(editPwd_slot()), 0, 306 i18n("&Edit"), this, SLOT(editPwd_slot()), 0,
312 BUTTON_POPUP_MANAGE_EDIT); 307 BUTTON_POPUP_MANAGE_EDIT);
313 managePopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)), 308 managePopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)),
314 i18n("&Delete"), this, SLOT(deletePwd_slot()), 309 i18n("&Delete"), this, SLOT(deletePwd_slot()),
315 0, BUTTON_POPUP_MANAGE_DEL); 310 0, BUTTON_POPUP_MANAGE_DEL);
316 managePopup->insertSeparator(); 311 managePopup->insertSeparator();
317 managePopup->insertItem(QIconSet(picons->loadIcon("rotate", KIcon::Small)), 312 managePopup->insertItem(QIconSet(picons->loadIcon("rotate", KIcon::Small)),
318 i18n("Change &Master Password"), this, 313 i18n("Change &Master Password"), this,
319 SLOT(changeMasterPwd_slot()), 0, 314 SLOT(changeMasterPwd_slot()), 0,
320 BUTTON_POPUP_MANAGE_CHANGEMP); 315 BUTTON_POPUP_MANAGE_CHANGEMP);
321 menuBar()->insertItem(i18n("&Manage"), managePopup); 316 menuBar()->insertItem(i18n("&Manage"), managePopup);
322// "chipcard" popup menu 317// "chipcard" popup menu
323#ifdef CONFIG_KEYCARD 318#ifdef CONFIG_KEYCARD
324 chipcardPopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)), 319 chipcardPopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)),
325 i18n("&Generate new key-card"), this, 320 i18n("&Generate new key-card"), this,
326 SLOT(genNewCard_slot()), 0, 321 SLOT(genNewCard_slot()), 0,
327 BUTTON_POPUP_CHIPCARD_GENNEW); 322 BUTTON_POPUP_CHIPCARD_GENNEW);
328 chipcardPopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)), 323 chipcardPopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)),
329 i18n("&Erase key-card"), this, 324 i18n("&Erase key-card"), this,
330 SLOT(eraseCard_slot()), 0, 325 SLOT(eraseCard_slot()), 0,
331 BUTTON_POPUP_CHIPCARD_DEL); 326 BUTTON_POPUP_CHIPCARD_DEL);
332 chipcardPopup->insertItem(QIconSet(picons->loadIcon("", KIcon::Small)), 327 chipcardPopup->insertItem(QIconSet(picons->loadIcon("", KIcon::Small)),
333 i18n("Read card-&ID"), this, 328 i18n("Read card-&ID"), this,
334 SLOT(readCardId_slot()), 0, 329 SLOT(readCardId_slot()), 0,
335 BUTTON_POPUP_CHIPCARD_READID); 330 BUTTON_POPUP_CHIPCARD_READID);
336 chipcardPopup->insertSeparator(); 331 chipcardPopup->insertSeparator();
337 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2rightarrow", KIcon::Small)), 332 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2rightarrow", KIcon::Small)),
338 i18n("&Make card backup-image"), this, 333 i18n("&Make card backup-image"), this,
339 SLOT(makeCardBackup_slot()), 0, 334 SLOT(makeCardBackup_slot()), 0,
340 BUTTON_POPUP_CHIPCARD_SAVEBACKUP); 335 BUTTON_POPUP_CHIPCARD_SAVEBACKUP);
341 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2leftarrow", KIcon::Small)), 336 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2leftarrow", KIcon::Small)),
342 i18n("&Replay card backup-image"), this, 337 i18n("&Replay card backup-image"), this,
343 SLOT(replayCardBackup_slot()), 0, 338 SLOT(replayCardBackup_slot()), 0,
344 BUTTON_POPUP_CHIPCARD_REPLAYBACKUP); 339 BUTTON_POPUP_CHIPCARD_REPLAYBACKUP);
345 menuBar()->insertItem(i18n("&Chipcard manager"), chipcardPopup); 340 menuBar()->insertItem(i18n("&Chipcard manager"), chipcardPopup);
346#endif // CONFIG_KEYCARD 341#endif // CONFIG_KEYCARD
347// "view" popup menu 342// "view" popup menu
348 viewPopup->insertItem(QIconSet(picons->loadIcon("find", KIcon::Small)), 343 viewPopup->insertItem(QIconSet(picons->loadIcon("find", KIcon::Small)),
349 i18n("&Find"), this, 344 i18n("&Find"), this,
350 SLOT(find_slot()), 0, BUTTON_POPUP_VIEW_FIND); 345 SLOT(find_slot()), 0, BUTTON_POPUP_VIEW_FIND);
351 viewPopup->insertSeparator(); 346 viewPopup->insertSeparator();
352 viewPopup->insertItem(QIconSet(picons->loadIcon("halfencrypted", KIcon::Small)), 347 viewPopup->insertItem(QIconSet(picons->loadIcon("halfencrypted", KIcon::Small)),
353 i18n("&Lock all entries"), this, 348 i18n("&Lock all entries"), this,
354 SLOT(lockWnd_slot()), 0, 349 SLOT(lockWnd_slot()), 0,
355 BUTTON_POPUP_VIEW_LOCK); 350 BUTTON_POPUP_VIEW_LOCK);
356 viewPopup->insertItem(QIconSet(picons->loadIcon("encrypted", KIcon::Small)), 351 viewPopup->insertItem(QIconSet(picons->loadIcon("encrypted", KIcon::Small)),
357 i18n("&Deep-lock all entries"), this, 352 i18n("&Deep-lock all entries"), this,
358 SLOT(deepLockWnd_slot()), 0, 353 SLOT(deepLockWnd_slot()), 0,
359 BUTTON_POPUP_VIEW_DEEPLOCK); 354 BUTTON_POPUP_VIEW_DEEPLOCK);
360 viewPopup->insertItem(QIconSet(picons->loadIcon("decrypted", KIcon::Small)), 355 viewPopup->insertItem(QIconSet(picons->loadIcon("decrypted", KIcon::Small)),
361 i18n("&Unlock all entries"), this, 356 i18n("&Unlock all entries"), this,
362 SLOT(unlockWnd_slot()), 0, 357 SLOT(unlockWnd_slot()), 0,
363 BUTTON_POPUP_VIEW_UNLOCK); 358 BUTTON_POPUP_VIEW_UNLOCK);
364 menuBar()->insertItem(i18n("&View"), viewPopup); 359 menuBar()->insertItem(i18n("&View"), viewPopup);
365// "options" popup menu 360// "options" popup menu
366 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)), 361 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)),
367 i18n("&Configure..."), this, 362 i18n("&Configure..."), this,
368 SLOT(config_slot()),0, 363 SLOT(config_slot()),0,
369 BUTTON_POPUP_OPTIONS_CONFIG); 364 BUTTON_POPUP_OPTIONS_CONFIG);
370 menuBar()->insertItem(i18n("&Options"), optionsPopup); 365 if ( QApplication::desktop()->width() <= 240 ) {
366 managePopup->insertSeparator();
367 managePopup->insertItem(i18n("&Options"), optionsPopup);
368 } else
369 menuBar()->insertItem(i18n("&Options"), optionsPopup);
371// "help" popup menu 370// "help" popup menu
372#ifndef PWM_EMBEDDED 371#ifndef PWM_EMBEDDED
373 helpPopup = helpMenu(QString::null, false); 372 helpPopup = helpMenu(QString::null, false);
374#else 373#else
375 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)), 374 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)),
376 i18n("C&ategories..."), this, 375 i18n("C&ategories..."), this,
377 SLOT(category_slot()),0, 376 SLOT(category_slot()),0,
378 BUTTON_POPUP_OPTIONS_CATEGORY); 377 BUTTON_POPUP_OPTIONS_CATEGORY);
379 378
380 379
381 menuBar()->insertItem(i18n("&Sync"), syncPopup); 380 menuBar()->insertItem(i18n("&Sync"), syncPopup);
382 381
383 382
384 383
385 384
386 385
387 helpPopup = new KPopupMenu(this); 386 helpPopup = new KPopupMenu(this);
388 387
389 388
390 helpPopup->insertItem(i18n("&License"), this, 389 helpPopup->insertItem(i18n("&License"), this,
391 SLOT(showLicense_slot()), 0, 390 SLOT(showLicense_slot()), 0,
392 BUTTON_POPUP_HELP_LICENSE); 391 BUTTON_POPUP_HELP_LICENSE);
393 392
394 helpPopup->insertItem(i18n("&Faq"), this, 393 helpPopup->insertItem(i18n("&Faq"), this,
395 SLOT(faq_slot()), 0, 394 SLOT(faq_slot()), 0,
396 BUTTON_POPUP_HELP_FAQ); 395 BUTTON_POPUP_HELP_FAQ);
397 396
398 helpPopup->insertItem(i18n("&About PwManager"), this, 397 helpPopup->insertItem(i18n("&About PwManager"), this,
399 SLOT(createAboutData_slot()), 0, 398 SLOT(createAboutData_slot()), 0,
400 BUTTON_POPUP_HELP_ABOUT); 399 BUTTON_POPUP_HELP_ABOUT);
401 400
402 helpPopup->insertItem(i18n("&Sync HowTo"), this, 401 helpPopup->insertItem(i18n("&Sync HowTo"), this,
403 SLOT(syncHowTo_slot()), 0, 402 SLOT(syncHowTo_slot()), 0,
404 BUTTON_POPUP_HELP_SYNC); 403 BUTTON_POPUP_HELP_SYNC);
405 404
406 helpPopup->insertItem(i18n("&What's New"), this, 405 helpPopup->insertItem(i18n("&What's New"), this,
407 SLOT(whatsnew_slot()), 0, 406 SLOT(whatsnew_slot()), 0,
408 BUTTON_POPUP_HELP_WHATSNEW); 407 BUTTON_POPUP_HELP_WHATSNEW);
409 408
410#endif 409#endif
411 menuBar()->insertItem(i18n("&Help"), helpPopup); 410 menuBar()->insertItem(i18n("&Help"), helpPopup);
412 411
413} 412}
414 413
415void PwM::initToolbar() 414void PwM::initToolbar()
416{ 415{
417 KIconLoader* picons; 416 KIconLoader* picons;
418#ifndef PWM_EMBEDDED 417#ifndef PWM_EMBEDDED
419 KIconLoader icons; 418 KIconLoader icons;
420 picons = &icons; 419 picons = &icons;
421#else 420#else
422 picons = KGlobal::iconLoader(); 421 picons = KGlobal::iconLoader();
423#endif 422#endif
424 423
425#if 0 424#if 0
426 toolBar()->insertButton(picons->loadIcon("filenew", KIcon::Toolbar), 425 toolBar()->insertButton(picons->loadIcon("filenew", KIcon::Toolbar),
427 BUTTON_TOOL_NEW, SIGNAL(clicked(int)), this, 426 BUTTON_TOOL_NEW, SIGNAL(clicked(int)), this,
428 SLOT(new_slot()), true, i18n("New")); 427 SLOT(new_slot()), true, i18n("New"));
429#endif 428#endif
430 toolBar()->insertButton(picons->loadIcon("fileopen", KIcon::Toolbar), 429 toolBar()->insertButton(picons->loadIcon("fileopen", KIcon::Toolbar),
431 BUTTON_TOOL_OPEN, SIGNAL(clicked(int)), this, 430 BUTTON_TOOL_OPEN, SIGNAL(clicked(int)), this,
432 SLOT(open_slot()), true, i18n("Open")); 431 SLOT(open_slot()), true, i18n("Open"));
433 toolBar()->insertButton(picons->loadIcon("pencil", KIcon::Toolbar), 432 toolBar()->insertButton(picons->loadIcon("pencil", KIcon::Toolbar),
434 BUTTON_TOOL_ADD, SIGNAL(clicked(int)), this, 433 BUTTON_TOOL_ADD, SIGNAL(clicked(int)), this,
435 SLOT(addPwd_slot()), true, 434 SLOT(addPwd_slot()), true,
436 i18n("Add password")); 435 i18n("Add password"));
437 toolBar()->insertSeparator(); 436 toolBar()->insertSeparator();
438 437
439 toolBar()->insertButton(picons->loadIcon("find", KIcon::Toolbar), 438 toolBar()->insertButton(picons->loadIcon("find", KIcon::Toolbar),
440 BUTTON_TOOL_FIND, SIGNAL(clicked(int)), this, 439 BUTTON_TOOL_FIND, SIGNAL(clicked(int)), this,
441 SLOT(find_slot()), true, i18n("Find entry")); 440 SLOT(find_slot()), true, i18n("Find entry"));
442 toolBar()->insertSeparator(); 441 toolBar()->insertSeparator();
443 toolBar()->insertButton(picons->loadIcon("filesave", KIcon::Toolbar), 442 toolBar()->insertButton(picons->loadIcon("filesave", KIcon::Toolbar),
444 BUTTON_TOOL_SAVE, SIGNAL(clicked(int)), this, 443 BUTTON_TOOL_SAVE, SIGNAL(clicked(int)), this,
445 SLOT(save_slot()), true, i18n("Save")); 444 SLOT(save_slot()), true, i18n("Save"));
446#if 0 445#if 0
447 toolBar()->insertButton(picons->loadIcon("filesaveas", KIcon::Toolbar), 446 toolBar()->insertButton(picons->loadIcon("filesaveas", KIcon::Toolbar),
448 BUTTON_TOOL_SAVEAS, SIGNAL(clicked(int)), this, 447 BUTTON_TOOL_SAVEAS, SIGNAL(clicked(int)), this,
449 SLOT(saveAs_slot()), true, i18n("Save as")); 448 SLOT(saveAs_slot()), true, i18n("Save as"));
450#endif 449#endif
451 450
452 451
453#if 0 452#if 0
454 toolBar()->insertButton(picons->loadIcon("fileprint", KIcon::Toolbar), 453 toolBar()->insertButton(picons->loadIcon("fileprint", KIcon::Toolbar),
455 BUTTON_TOOL_PRINT, SIGNAL(clicked(int)), this, 454 BUTTON_TOOL_PRINT, SIGNAL(clicked(int)), this,
456 SLOT(print_slot()), true, i18n("Print...")); 455 SLOT(print_slot()), true, i18n("Print..."));
457#endif 456#endif
458 toolBar()->insertSeparator(); 457 toolBar()->insertSeparator();
459 toolBar()->insertButton(picons->loadIcon("edit", KIcon::Toolbar), 458 toolBar()->insertButton(picons->loadIcon("edit", KIcon::Toolbar),
460 BUTTON_TOOL_EDIT, SIGNAL(clicked(int)), this, 459 BUTTON_TOOL_EDIT, SIGNAL(clicked(int)), this,
461 SLOT(editPwd_slot()), true, 460 SLOT(editPwd_slot()), true,
462 i18n("Edit password")); 461 i18n("Edit password"));
463 toolBar()->insertButton(picons->loadIcon("editdelete", KIcon::Toolbar), 462 toolBar()->insertButton(picons->loadIcon("editdelete", KIcon::Toolbar),
464 BUTTON_TOOL_DEL, SIGNAL(clicked(int)), this, 463 BUTTON_TOOL_DEL, SIGNAL(clicked(int)), this,
465 SLOT(deletePwd_slot()), true, 464 SLOT(deletePwd_slot()), true,
466 i18n("Delete password")); 465 i18n("Delete password"));
diff --git a/pwmanager/pwmanager/pwmviewstyle_0.cpp b/pwmanager/pwmanager/pwmviewstyle_0.cpp
index d82eb15..1d88a34 100644
--- a/pwmanager/pwmanager/pwmviewstyle_0.cpp
+++ b/pwmanager/pwmanager/pwmviewstyle_0.cpp
@@ -1,132 +1,144 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * copyright (C) 2004 by Michael Buesch * 3 * copyright (C) 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 "pwmviewstyle_0.h" 20#include "pwmviewstyle_0.h"
21#include "pwmview.h" 21#include "pwmview.h"
22#include "listviewpwm.h" 22#include "listviewpwm.h"
23#include "commentbox.h" 23#include "commentbox.h"
24 24
25#include <klocale.h> 25#include <klocale.h>
26#include <kglobal.h>
27#include <kiconloader.h>
26#include "pwmprefs.h" 28#include "pwmprefs.h"
27 29
28PwMViewStyle_0::PwMViewStyle_0(PwMView *view) 30PwMViewStyle_0::PwMViewStyle_0(PwMView *view)
29 : QObject() 31 : QObject()
30{ 32{
31 vbox1 = new QVBox(view); 33 vbox1 = new QVBox(view);
32 vbox1->setSpacing(3); 34 vbox1->setSpacing(0);
33 hbox1 = new QHBox(vbox1); 35 hbox1 = new QHBox(vbox1);
34 hbox1->setSpacing(3); 36 hbox1->setSpacing(0);
35 categoriesTitle = new QLabel(hbox1); 37 categoriesTitle = new QLabel(hbox1);
36 categoriesTitle->setText(i18n("Categories:")); 38 categoriesTitle->setText(i18n("Category:"));
37 categoriesCombo = new QComboBox(hbox1); 39 categoriesCombo = new QComboBox(hbox1);
38 renCatButton = new QPushButton(i18n("&Rename"), hbox1); 40 categoriesCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred ));
39 delCatButton = new QPushButton(i18n("&Delete"), hbox1); 41 renCatButton = new QPushButton( hbox1);
42 renCatButton->setPixmap (KGlobal::iconLoader()->loadIcon("edit", KIcon::Small) );
43 int maxsi = renCatButton->sizeHint().height()+4;
44 renCatButton->setMinimumSize( maxsi, maxsi );
45 delCatButton = new QPushButton( hbox1);
46 delCatButton->setPixmap (KGlobal::iconLoader()->loadIcon("editdelete", KIcon::Small) );
47 maxsi = delCatButton->sizeHint().height()+4;
48 delCatButton->setMinimumSize( maxsi, maxsi );
49 delCatButton->setFocusPolicy( QWidget::NoFocus );
50 renCatButton->setFocusPolicy( QWidget::NoFocus );
51
40#ifndef PWM_EMBEDDED 52#ifndef PWM_EMBEDDED
41 splitter1 = new QSplitter(vbox1); 53 splitter1 = new QSplitter(vbox1);
42 splitter1->setOrientation(Qt::Vertical); 54 splitter1->setOrientation(Qt::Vertical);
43#else 55#else
44 splitter1 = new KDGanttMinimizeSplitter( Qt::Vertical, vbox1); 56 splitter1 = new KDGanttMinimizeSplitter( Qt::Vertical, vbox1);
45 splitter1->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 57 splitter1->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
46 58
47 //US topLayout->addWidget(mMiniSplitter ); 59 //US topLayout->addWidget(mMiniSplitter );
48#endif 60#endif
49 lv = new ListViewPwM(splitter1); 61 lv = new ListViewPwM(splitter1);
50 commentBox = new CommentBox(splitter1); 62 commentBox = new CommentBox(splitter1);
51 // set sizes and styles 63 // set sizes and styles
52 commentBox->resize(commentBox->size().width(), 60); 64 commentBox->resize(commentBox->size().width(), 60);
53 categoriesTitle->setAlignment(Qt::AlignVCenter | Qt::AlignRight); 65 categoriesTitle->setAlignment(Qt::AlignVCenter | Qt::AlignRight);
54 // connections 66 // connections
55 connect(categoriesCombo, SIGNAL(activated(int)), 67 connect(categoriesCombo, SIGNAL(activated(int)),
56 view, SLOT(shiftToView())); 68 view, SLOT(shiftToView()));
57 connect(renCatButton, SIGNAL(clicked()), 69 connect(renCatButton, SIGNAL(clicked()),
58 view, SLOT(renCatButton_slot())); 70 view, SLOT(renCatButton_slot()));
59 connect(delCatButton, SIGNAL(clicked()), 71 connect(delCatButton, SIGNAL(clicked()),
60 view, SLOT(delCatButton_slot())); 72 view, SLOT(delCatButton_slot()));
61 connect(lv, SIGNAL(toggleOverview()), 73 connect(lv, SIGNAL(toggleOverview()),
62 this, SLOT(toggleSplitter())); 74 this, SLOT(toggleSplitter()));
63} 75}
64 76
65PwMViewStyle_0::~PwMViewStyle_0() 77PwMViewStyle_0::~PwMViewStyle_0()
66{ 78{
67 delete vbox1; 79 delete vbox1;
68} 80}
69void PwMViewStyle_0::toggleSplitter() 81void PwMViewStyle_0::toggleSplitter()
70{ 82{
71 83
72 QValueList<int> si = splitter1->sizes(); 84 QValueList<int> si = splitter1->sizes();
73 splitter1->toggle(); 85 splitter1->toggle();
74 QValueList<int> si2 = splitter1->sizes(); 86 QValueList<int> si2 = splitter1->sizes();
75 //qDebug("PwMViewStyle_0::toggleSplitter() %d %d %d %d", si[0],si[1],si2[0],si2[1] ); 87 //qDebug("PwMViewStyle_0::toggleSplitter() %d %d %d %d", si[0],si[1],si2[0],si2[1] );
76 if ( si[0] == si2[0] && si[1] == si2[1] && si2[1] == 1 ) { 88 if ( si[0] == si2[0] && si[1] == si2[1] && si2[1] == 1 ) {
77 int diff = si[0]/2; 89 int diff = si[0]/2;
78 if ( diff > 200 ) 90 if ( diff > 200 )
79 diff = 200; 91 diff = 200;
80 si[0] -= diff; 92 si[0] -= diff;
81 si[1] += diff; 93 si[1] += diff;
82 splitter1->toggle(); 94 splitter1->toggle();
83 splitter1->setSizes( si ); 95 splitter1->setSizes( si );
84 } 96 }
85 97
86} 98}
87 99
88void PwMViewStyle_0::delCategory(const QString &cat) 100void PwMViewStyle_0::delCategory(const QString &cat)
89{ 101{
90 PWM_ASSERT(categoriesCombo); 102 PWM_ASSERT(categoriesCombo);
91 int i, count = categoriesCombo->count(); 103 int i, count = categoriesCombo->count();
92 for (i = 0; i < count; ++i) { 104 for (i = 0; i < count; ++i) {
93 if (categoriesCombo->text(i) == cat) { 105 if (categoriesCombo->text(i) == cat) {
94 categoriesCombo->removeItem(i); 106 categoriesCombo->removeItem(i);
95 return; 107 return;
96 } 108 }
97 } 109 }
98 BUG(); 110 BUG();
99} 111}
100 112
101void PwMViewStyle_0::selectCategory(const QString &cat) 113void PwMViewStyle_0::selectCategory(const QString &cat)
102{ 114{
103 PWM_ASSERT(categoriesCombo); 115 PWM_ASSERT(categoriesCombo);
104 int i, count = categoriesCombo->count(); 116 int i, count = categoriesCombo->count();
105 for (i = 0; i < count; ++i) { 117 for (i = 0; i < count; ++i) {
106 if (categoriesCombo->text(i) == cat) { 118 if (categoriesCombo->text(i) == cat) {
107 categoriesCombo->setCurrentItem(i); 119 categoriesCombo->setCurrentItem(i);
108 return; 120 return;
109 } 121 }
110 } 122 }
111 // fall back to 0 123 // fall back to 0
112 categoriesCombo->setCurrentItem(0); 124 categoriesCombo->setCurrentItem(0);
113} 125}
114 126
115 127
116//US ENH: I need a place to load the view dependend settings. Eg. splittersize 128//US ENH: I need a place to load the view dependend settings. Eg. splittersize
117void PwMViewStyle_0::restoreSettings(PWMPrefs* prefs) 129void PwMViewStyle_0::restoreSettings(PWMPrefs* prefs)
118{ 130{
119 //load and store the size of the listviewcolumns 131 //load and store the size of the listviewcolumns
120 lv->restoreLayout(prefs->getConfig(), "listview"); 132 lv->restoreLayout(prefs->getConfig(), "listview");
121 splitter1->setSizes( prefs->mCommentSplitter ); 133 splitter1->setSizes( prefs->mCommentSplitter );
122 commentBox->setFont( prefs->mViewFont ); 134 commentBox->setFont( prefs->mViewFont );
123} 135}
124 136
125//US ENH: I need a place to load the view dependend settings. Eg. splittersize 137//US ENH: I need a place to load the view dependend settings. Eg. splittersize
126void PwMViewStyle_0::saveSettings(PWMPrefs* prefs) 138void PwMViewStyle_0::saveSettings(PWMPrefs* prefs)
127{ 139{
128 //store the size of the listviewcolumns 140 //store the size of the listviewcolumns
129 lv->saveLayout(prefs->getConfig(), "listview"); 141 lv->saveLayout(prefs->getConfig(), "listview");
130 prefs->mCommentSplitter = splitter1->sizes(); 142 prefs->mCommentSplitter = splitter1->sizes();
131 143
132} 144}
diff --git a/pwmanager/pwmanager/pwmviewstyle_1.cpp b/pwmanager/pwmanager/pwmviewstyle_1.cpp
index 7294f34..e335a3f 100644
--- a/pwmanager/pwmanager/pwmviewstyle_1.cpp
+++ b/pwmanager/pwmanager/pwmviewstyle_1.cpp
@@ -1,184 +1,184 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * copyright (C) 2004 by Michael Buesch * 3 * copyright (C) 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 "pwmviewstyle_1.h" 20#include "pwmviewstyle_1.h"
21#include "pwmview.h" 21#include "pwmview.h"
22#include "listviewpwm.h" 22#include "listviewpwm.h"
23#include "commentbox.h" 23#include "commentbox.h"
24 24
25#include <klocale.h> 25#include <klocale.h>
26#include "pwmprefs.h" 26#include "pwmprefs.h"
27 27
28#ifndef DESKTOP_VERSION 28#ifndef DESKTOP_VERSION
29#include <qpe/qpeapplication.h> 29#include <qpe/qpeapplication.h>
30#else 30#else
31#include <qapplication.h> 31#include <qapplication.h>
32#endif 32#endif
33 #define INITIAL_CATEGORIES_WIDTH100 33 #define INITIAL_CATEGORIES_WIDTH100
34 34
35PwMViewStyle_1::PwMViewStyle_1(PwMView *view) 35PwMViewStyle_1::PwMViewStyle_1(PwMView *view)
36 : QObject() 36 : QObject()
37{ 37{
38#ifndef PWM_EMBEDDED 38#ifndef PWM_EMBEDDED
39 splitter = new QSplitter(view); 39 splitter = new QSplitter(view);
40#else 40#else
41 if ( QApplication::desktop()->width() > 240 ) { 41 if ( QApplication::desktop()->width() > 240 ) {
42 splitter = new KDGanttMinimizeSplitter( Qt::Horizontal, view); 42 splitter = new KDGanttMinimizeSplitter( Qt::Horizontal, view);
43 splitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Left ); 43 splitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Left );
44 // topLayout = new QHBoxLayout( this ); 44 // topLayout = new QHBoxLayout( this );
45 // mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 45 // mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
46 // mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 46 // mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
47 } else { 47 } else {
48 splitter = new KDGanttMinimizeSplitter( Qt::Vertical, view); 48 splitter = new KDGanttMinimizeSplitter( Qt::Vertical, view);
49 splitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 49 splitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
50 // topLayout = new QHBoxLayout( this ); 50 // topLayout = new QHBoxLayout( this );
51 // mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); 51 // mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this);
52 // mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 52 // mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
53 } 53 }
54 //US topLayout->addWidget(mMiniSplitter ); 54 //US topLayout->addWidget(mMiniSplitter );
55#endif 55#endif
56 56
57 vbox1 = new QVBox(splitter); 57 vbox1 = new QVBox(splitter);
58 categoriesTitle = new QLabel(vbox1); 58 categoriesTitle = new QLabel(vbox1);
59 categoriesList = new QListBox(vbox1); 59 categoriesList = new QListBox(vbox1);
60#ifndef PWM_EMBEDDED 60#ifndef PWM_EMBEDDED
61 splitter2 = new QSplitter(splitter); 61 splitter2 = new QSplitter(splitter);
62 splitter2->setOrientation(Qt::Vertical); 62 splitter2->setOrientation(Qt::Vertical);
63#else 63#else
64 splitter2 = new KDGanttMinimizeSplitter( Qt::Vertical, splitter); 64 splitter2 = new KDGanttMinimizeSplitter( Qt::Vertical, splitter);
65 splitter2->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 65 splitter2->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
66 66
67 //US topLayout->addWidget(mMiniSplitter ); 67 //US topLayout->addWidget(mMiniSplitter );
68#endif 68#endif
69 lv = new ListViewPwM(splitter2); 69 lv = new ListViewPwM(splitter2);
70 commentBox = new CommentBox(splitter2); 70 commentBox = new CommentBox(splitter2);
71 // set sizes and styles 71 // set sizes and styles
72 //UScommentBox->resize(commentBox->size().width(), 60); 72 //UScommentBox->resize(commentBox->size().width(), 60);
73 QValueList<int> sizes; 73 QValueList<int> sizes;
74#ifndef PWM_EMBEDDED 74#ifndef PWM_EMBEDDED
75 sizes.push_back(INITIAL_CATEGORIES_WIDTH); 75 sizes.push_back(INITIAL_CATEGORIES_WIDTH);
76 sizes.push_back(view->height() - INITIAL_CATEGORIES_WIDTH); 76 sizes.push_back(view->height() - INITIAL_CATEGORIES_WIDTH);
77#else 77#else
78 sizes.append(INITIAL_CATEGORIES_WIDTH); 78 sizes.append(INITIAL_CATEGORIES_WIDTH);
79 sizes.append(view->height() - INITIAL_CATEGORIES_WIDTH); 79 sizes.append(view->height() - INITIAL_CATEGORIES_WIDTH);
80#endif 80#endif
81 //USsplitter->setSizes(sizes); 81 //USsplitter->setSizes(sizes);
82 categoriesTitle->setAlignment(Qt::AlignHCenter); 82 categoriesTitle->setAlignment(Qt::AlignHCenter);
83#ifndef PWM_EMBEDDED 83#ifndef PWM_EMBEDDED
84 categoriesTitle->setFrameShape(QFrame::MenuBarPanel); 84 categoriesTitle->setFrameShape(QFrame::MenuBarPanel);
85#else 85#else
86 categoriesTitle->setFrameShape(QFrame::StyledPanel); 86 //categoriesTitle->setFrameShape(QFrame::StyledPanel);
87#endif 87#endif
88 categoriesTitle->setText(i18n("Categories:")); 88 categoriesTitle->setText(i18n("Category:"));
89 catCtxMenu = new QPopupMenu(view); 89 catCtxMenu = new QPopupMenu(view);
90 catCtxMenu->insertItem(i18n("&Rename"), 90 catCtxMenu->insertItem(i18n("&Rename"),
91 view, SLOT(renCatButton_slot())); 91 view, SLOT(renCatButton_slot()));
92 catCtxMenu->insertItem(i18n("&Delete"), 92 catCtxMenu->insertItem(i18n("&Delete"),
93 view, SLOT(delCatButton_slot())); 93 view, SLOT(delCatButton_slot()));
94 94
95#ifndef DESKTOP_VERSION 95#ifndef DESKTOP_VERSION
96 QPEApplication::setStylusOperation( categoriesList->viewport(), QPEApplication::RightOnHold ); 96 QPEApplication::setStylusOperation( categoriesList->viewport(), QPEApplication::RightOnHold );
97#endif 97#endif
98 98
99 // connections 99 // connections
100 connect(categoriesList, SIGNAL(highlighted(int)), 100 connect(categoriesList, SIGNAL(highlighted(int)),
101 view, SLOT(shiftToView())); 101 view, SLOT(shiftToView()));
102 connect(categoriesList, 102 connect(categoriesList,
103 SIGNAL(rightButtonClicked(QListBoxItem *, const QPoint &)), 103 SIGNAL(rightButtonClicked(QListBoxItem *, const QPoint &)),
104 this, 104 this,
105 SLOT(catRightClick(QListBoxItem *, const QPoint &))); 105 SLOT(catRightClick(QListBoxItem *, const QPoint &)));
106 106
107 connect(lv, SIGNAL(toggleOverview()), 107 connect(lv, SIGNAL(toggleOverview()),
108 this, SLOT(toggleSplitter())); 108 this, SLOT(toggleSplitter()));
109} 109}
110 110
111PwMViewStyle_1::~PwMViewStyle_1() 111PwMViewStyle_1::~PwMViewStyle_1()
112{ 112{
113 delete catCtxMenu; 113 delete catCtxMenu;
114 delete splitter; 114 delete splitter;
115} 115}
116void PwMViewStyle_1::toggleSplitter() 116void PwMViewStyle_1::toggleSplitter()
117{ 117{
118 QValueList<int> si = splitter2->sizes(); 118 QValueList<int> si = splitter2->sizes();
119 splitter2->toggle(); 119 splitter2->toggle();
120 QValueList<int> si2 = splitter2->sizes(); 120 QValueList<int> si2 = splitter2->sizes();
121 //qDebug("PwMViewStyle_1::toggleSplitter() %d %d %d %d", si[0],si[1],si2[0],si2[1] ); 121 //qDebug("PwMViewStyle_1::toggleSplitter() %d %d %d %d", si[0],si[1],si2[0],si2[1] );
122 if ( si[0] == si2[0] && si[1] == si2[1] && si2[1] == 1 ) { 122 if ( si[0] == si2[0] && si[1] == si2[1] && si2[1] == 1 ) {
123 int diff = si[0]/2; 123 int diff = si[0]/2;
124 if ( diff > 200 ) 124 if ( diff > 200 )
125 diff = 200; 125 diff = 200;
126 si[0] -= diff; 126 si[0] -= diff;
127 si[1] += diff; 127 si[1] += diff;
128 splitter2->toggle(); 128 splitter2->toggle();
129 splitter2->setSizes( si ); 129 splitter2->setSizes( si );
130 } 130 }
131} 131}
132 132
133void PwMViewStyle_1::catRightClick(QListBoxItem *item, const QPoint &point) 133void PwMViewStyle_1::catRightClick(QListBoxItem *item, const QPoint &point)
134{ 134{
135 if (!item) 135 if (!item)
136 return; 136 return;
137 catCtxMenu->move(point); 137 catCtxMenu->move(point);
138 catCtxMenu->show(); 138 catCtxMenu->show();
139} 139}
140 140
141void PwMViewStyle_1::delCategory(const QString &cat) 141void PwMViewStyle_1::delCategory(const QString &cat)
142{ 142{
143 PWM_ASSERT(categoriesList); 143 PWM_ASSERT(categoriesList);
144 int i, count = categoriesList->count(); 144 int i, count = categoriesList->count();
145 for (i = 0; i < count; ++i) { 145 for (i = 0; i < count; ++i) {
146 if (categoriesList->text(i) == cat) { 146 if (categoriesList->text(i) == cat) {
147 categoriesList->removeItem(i); 147 categoriesList->removeItem(i);
148 return; 148 return;
149 } 149 }
150 } 150 }
151 BUG(); 151 BUG();
152} 152}
153 153
154void PwMViewStyle_1::selectCategory(const QString &cat) 154void PwMViewStyle_1::selectCategory(const QString &cat)
155{ 155{
156 PWM_ASSERT(categoriesList); 156 PWM_ASSERT(categoriesList);
157 int i, count = categoriesList->count(); 157 int i, count = categoriesList->count();
158 for (i = 0; i < count; ++i) { 158 for (i = 0; i < count; ++i) {
159 if (categoriesList->text(i) == cat) { 159 if (categoriesList->text(i) == cat) {
160 categoriesList->setCurrentItem(i); 160 categoriesList->setCurrentItem(i);
161 return; 161 return;
162 } 162 }
163 } 163 }
164 // fall back to 0 164 // fall back to 0
165 categoriesList->setCurrentItem(0); 165 categoriesList->setCurrentItem(0);
166} 166}
167 167
168//US ENH: I need a place to load the view dependend settings. Eg. splittersize 168//US ENH: I need a place to load the view dependend settings. Eg. splittersize
169void PwMViewStyle_1::restoreSettings(PWMPrefs* prefs) 169void PwMViewStyle_1::restoreSettings(PWMPrefs* prefs)
170{ 170{
171 //load and store the size of the listviewcolumns 171 //load and store the size of the listviewcolumns
172 lv->restoreLayout(prefs->getConfig(), "listview"); 172 lv->restoreLayout(prefs->getConfig(), "listview");
173 splitter->setSizes( prefs->mCategorySplitter ); 173 splitter->setSizes( prefs->mCategorySplitter );
174 splitter2->setSizes( prefs->mCommentSplitter ); 174 splitter2->setSizes( prefs->mCommentSplitter );
175 commentBox->setFont( prefs->mViewFont ); 175 commentBox->setFont( prefs->mViewFont );
176 176
177} 177}
178 178
179//US ENH: I need a place to load the view dependend settings. Eg. splittersize 179//US ENH: I need a place to load the view dependend settings. Eg. splittersize
180void PwMViewStyle_1::saveSettings(PWMPrefs* prefs) 180void PwMViewStyle_1::saveSettings(PWMPrefs* prefs)
181{ 181{
182 //store the size of the listviewcolumns 182 //store the size of the listviewcolumns
183 lv->saveLayout(prefs->getConfig(), "listview"); 183 lv->saveLayout(prefs->getConfig(), "listview");
184 prefs->mCategorySplitter = splitter->sizes(); 184 prefs->mCategorySplitter = splitter->sizes();