summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-03-10 09:13:29 (UTC)
committer zautrix <zautrix>2005-03-10 09:13:29 (UTC)
commit4b05d69b961309df5d56714889c62ca530580914 (patch) (unidiff)
treec6b7b0651889a88ffe44c570f7e557523cfa1044
parentf20f8ca063abd322387a72f3f5a65c480f6a4233 (diff)
downloadkdepimpi-4b05d69b961309df5d56714889c62ca530580914.zip
kdepimpi-4b05d69b961309df5d56714889c62ca530580914.tar.gz
kdepimpi-4b05d69b961309df5d56714889c62ca530580914.tar.bz2
pwmp fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt1
-rw-r--r--pwmanager/pwmanager/pwm.cpp13
2 files changed, 13 insertions, 1 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index a7b8530..d4b7971 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,393 +1,394 @@
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.15 ************ 3********** VERSION 2.0.15 ************
4 4
5PwM/Pi: 5PwM/Pi:
6Added keyboard shorcuts for 6Added keyboard shorcuts for
7- toggling summary view (space bar) 7- toggling summary view (space bar)
8- delete item (delete + backspace key) 8- delete item (delete + backspace key)
9- add new item ( i + n key) 9- add new item ( i + n key)
10Fixed length of info in the title.
10 11
11KO/Pi-KA/Pi: 12KO/Pi-KA/Pi:
12Changed "ME" menu bar entry to an icon. 13Changed "ME" menu bar entry to an icon.
13 14
14KO/Pi: 15KO/Pi:
15Fixed two minor bugs in displaying todos. 16Fixed two minor bugs in displaying todos.
16 17
17 18
18********** VERSION 2.0.14 ************ 19********** VERSION 2.0.14 ************
19 20
20Made Passwordmanager PwM/Pi more userfriendly: 21Made Passwordmanager PwM/Pi more userfriendly:
21Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more. 22Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more.
22Fixed bug in KO/Pi todo printing. 23Fixed bug in KO/Pi todo printing.
23Made Qtopia calendar import possible on desktop . 24Made Qtopia calendar import possible on desktop .
24 25
25********** VERSION 2.0.13 ************ 26********** VERSION 2.0.13 ************
26 27
27Fixed a problem in the addressee select dialog and made it more user friendly by adding a minimize splitter. 28Fixed a problem in the addressee select dialog and made it more user friendly by adding a minimize splitter.
28 29
29In the search dialog you can switch now the focus from search line edit to the list view by pressing key "arrow down". 30In the search dialog you can switch now the focus from search line edit to the list view by pressing key "arrow down".
30 31
31OM/Pi: 32OM/Pi:
32Fixed a refresh problem of outgoing/sent/sendfailed folders after sending mails. 33Fixed a refresh problem of outgoing/sent/sendfailed folders after sending mails.
33Added missing German translation. 34Added missing German translation.
34Added warning if path is specified in local folder settings of account config. 35Added warning if path is specified in local folder settings of account config.
35 36
36********** VERSION 2.0.12 ************ 37********** VERSION 2.0.12 ************
37 38
38KO/Pi: 39KO/Pi:
39Fixed a bug in todo start/due date handling for non recurring todos with a start and due date. 40Fixed a bug in todo start/due date handling for non recurring todos with a start and due date.
40Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes. 41Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes.
41Fixed several problems of the keyboard focus in the desktop versions when opening the search dialog/event viewer. 42Fixed several problems of the keyboard focus in the desktop versions when opening the search dialog/event viewer.
42 43
43Fixed problem in pi-sync mode when wrong password was sent. 44Fixed problem in pi-sync mode when wrong password was sent.
44 45
45OM/Pi: 46OM/Pi:
46Fixed a crash when displaying mails with "Show mail as html" was checked in the config. 47Fixed a crash when displaying mails with "Show mail as html" was checked in the config.
47Added a check before displaying the mail if the mail is in html format, if "Show mail as html" is enabled. 48Added a check before displaying the mail if the mail is in html format, if "Show mail as html" is enabled.
48 49
49********** VERSION 2.0.11 ************ 50********** VERSION 2.0.11 ************
50 51
51Fixed some problems in pi-sync mode 52Fixed some problems in pi-sync mode
52(e.g. details of events were not synced properly) 53(e.g. details of events were not synced properly)
53 54
54********** VERSION 2.0.10 ************ 55********** VERSION 2.0.10 ************
55 56
56KO/Pi: 57KO/Pi:
57In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view. 58In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view.
58This is fixed. 59This is fixed.
59Changed the search dialog a bit to make it more user friendly. 60Changed the search dialog a bit to make it more user friendly.
60(E.g.: Removed message box about "no items found" and set key focus to search line edit after search). 61(E.g.: Removed message box about "no items found" and set key focus to search line edit after search).
61 62
62Added config option to hide the week number in KO/Pi toolbar. 63Added config option to hide the week number in KO/Pi toolbar.
63 64
64********** VERSION 2.0.9 ************ 65********** VERSION 2.0.9 ************
65 66
66Made month view icons for multiday events a bit nicer. 67Made month view icons for multiday events a bit nicer.
67Some minor fixes in KO/Pi 68Some minor fixes in KO/Pi
68(e.g. go to today did not work for new week view properly). 69(e.g. go to today did not work for new week view properly).
69 70
70 71
71********** VERSION 2.0.8 ************ 72********** VERSION 2.0.8 ************
72 73
73Fixed a problem in dependency info in the ipk files for the Zaurus. 74Fixed a problem in dependency info in the ipk files for the Zaurus.
74 75
75Added 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. 76Added 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.
76 77
77Added a "go today" button to the datepicker. 78Added a "go today" button to the datepicker.
78 79
79Added "created" and "last modified" to event/todo viewer (and What'sThis viewer) 80Added "created" and "last modified" to event/todo viewer (and What'sThis viewer)
80and made it configureable to show these values. 81and made it configureable to show these values.
81 82
82Fixed a problem for events (from external iCal files) that do have a duration but no end date. 83Fixed a problem for events (from external iCal files) that do have a duration but no end date.
83 84
84 85
85********** VERSION 2.0.7 ************ 86********** VERSION 2.0.7 ************
86 87
87Added global application font settings 88Added global application font settings
88(for all KDE-Pim/Pi apps) to the general settings. 89(for all KDE-Pim/Pi apps) to the general settings.
89 90
90Fixed a problem in OM/Pi when trying to login to some IMAP servers 91Fixed a problem in OM/Pi when trying to login to some IMAP servers
91(like the IMAP server of Apple: mail.mac.com ) 92(like the IMAP server of Apple: mail.mac.com )
92 93
93Added recurring todos to KO/Pi. 94Added recurring todos to KO/Pi.
94 95
95 96
96********** VERSION 2.0.6 ************ 97********** VERSION 2.0.6 ************
97 98
98Some bugfixes in the pi-sync mode. 99Some bugfixes in the pi-sync mode.
99Added German translation for pi-sync mode. 100Added German translation for pi-sync mode.
100 101
101KO/Pi: 102KO/Pi:
102Made the todolist using alternate background. 103Made the todolist using alternate background.
103 104
104Other minor fixes in KO/Pi. 105Other minor fixes in KO/Pi.
105 106
106 107
107********** VERSION 2.0.5 ************ 108********** VERSION 2.0.5 ************
108 109
109Bugfixes in KO/Pi. 110Bugfixes in KO/Pi.
110 111
111********** VERSION 2.0.4 ************ 112********** VERSION 2.0.4 ************
112 113
113KO/Pi: 114KO/Pi:
114Fixed problem loading translations for summary/location edit boxes in event/todo editor. 115Fixed problem loading translations for summary/location edit boxes in event/todo editor.
115 116
116Added a general "select week number" to the toolbar. 117Added a general "select week number" to the toolbar.
117 118
118Fixed some small problem of the new features introduced in version 2.0.3. 119Fixed some small problem of the new features introduced in version 2.0.3.
119 120
120Made it possible to specify one specific category as category color, 121Made it possible to specify one specific category as category color,
121if more than one categories are selected. 122if more than one categories are selected.
122 123
123Fixed a bug in saving colors for categories with non-ascii characters. 124Fixed a bug in saving colors for categories with non-ascii characters.
124(Like, e.g. German Umlauts). 125(Like, e.g. German Umlauts).
125Propably you have to set your colors again for those categories. 126Propably you have to set your colors again for those categories.
126 127
127 128
128********** VERSION 2.0.3 ************ 129********** VERSION 2.0.3 ************
129 130
130KO/Pi: 131KO/Pi:
131Added feature for changing alarm settings for many items at once: 132Added feature for changing alarm settings for many items at once:
132Open list view (or search dialog), select the desired items and choose in 133Open list view (or search dialog), select the desired items and choose in
133the popup menu: Set alarm for selected... 134the popup menu: Set alarm for selected...
134 135
135Added to the event/todo viewer the option to send an email to 136Added to the event/todo viewer the option to send an email to
136all attendees or all selected (with RSVP) attendees. 137all attendees or all selected (with RSVP) attendees.
137 138
138Made the week-month mode changing in month view faster. 139Made the week-month mode changing in month view faster.
139 140
140Made month view better useable with keyboard. 141Made month view better useable with keyboard.
141Now TAB key jumps to next cell with an event/todo. 142Now TAB key jumps to next cell with an event/todo.
142Scroll in cell with coursor keys, scroll in time (next week) with 143Scroll in cell with coursor keys, scroll in time (next week) with
143Shift/Control + coursorkeys. 144Shift/Control + coursorkeys.
144 145
145Fixed bug that the todo view flat mode was reset after first view update. 146Fixed bug that the todo view flat mode was reset after first view update.
146 147
147If a todo is displayed closed in the todo view, 148If a todo is displayed closed in the todo view,
148it is now displayed in overdue/due today color depending on the subtodos overdue/due today properties. 149it is now displayed in overdue/due today color depending on the subtodos overdue/due today properties.
149 150
150Added info about the numbers of years to the caption (title) information about a birthday event. 151Added info about the numbers of years to the caption (title) information about a birthday event.
151 152
152Made completion date in todo editor editable. 153Made completion date in todo editor editable.
153 154
154Added possibility to save/load templates for journals. 155Added possibility to save/load templates for journals.
155(Which is just a simple "save text to file" or "insert text from file". 156(Which is just a simple "save text to file" or "insert text from file".
156 157
157********** VERSION 2.0.2 ************ 158********** VERSION 2.0.2 ************
158 159
159KO/Pi: 160KO/Pi:
160Fixed the layout problem of the day label buttons 161Fixed the layout problem of the day label buttons
161of the agenda view introduced in version 2.0.1. 162of the agenda view introduced in version 2.0.1.
162 163
163Added WhatsThis support for the todo view and the list view. 164Added WhatsThis support for the todo view and the list view.
164 165
165Added a quite useful feature to the montview. 166Added a quite useful feature to the montview.
166Just click on the week numbers on the left. 167Just click on the week numbers on the left.
167And in the top right corner of month view/agenda view 168And in the top right corner of month view/agenda view
168there is now a "week number quick selector". 169there is now a "week number quick selector".
169(Click on the black triangle). 170(Click on the black triangle).
170 171
171Made the quite difficult timezone change in KO/Pi easy. 172Made the quite difficult timezone change in KO/Pi easy.
172 173
173OM/Pi: 174OM/Pi:
174Fixed too small icons on desktop. 175Fixed too small icons on desktop.
175Fixed non visible icons in mainwindow on Z with fastload enabled. 176Fixed non visible icons in mainwindow on Z with fastload enabled.
176Added signature file setting to smtp account config. 177Added signature file setting to smtp account config.
177And the signature can be edited and saved in the edit mail dialog. 178And the signature can be edited and saved in the edit mail dialog.
178That does mean: 179That does mean:
179Simply edit the signature for the selected smtp account in the 180Simply edit the signature for the selected smtp account in the
180edit new mail dialog and press the "save signature" button there. 181edit new mail dialog and press the "save signature" button there.
181Then the signature is saved to the file specified in the smtp account settings. 182Then the signature is saved to the file specified in the smtp account settings.
182If there is no file specified, it is saved automatically to the file 183If there is no file specified, it is saved automatically to the file
183kdepim/apps/kopiemail/<accountname>.sig. 184kdepim/apps/kopiemail/<accountname>.sig.
184 185
185 186
186 187
187********** VERSION 2.0.1 ************ 188********** VERSION 2.0.1 ************
188 189
189Oooops ... I forgot to test on the Zaurus 5500 ... 190Oooops ... I forgot to test on the Zaurus 5500 ...
190 191
191Fixed many problems of new (english) strings (and german translations) 192Fixed many problems of new (english) strings (and german translations)
192introduced in the latest versions, where the text was not fitting on the 193introduced in the latest versions, where the text was not fitting on the
193240x320 display of the Zaurus 5500. 194240x320 display of the Zaurus 5500.
194 195
195KO/Pi: 196KO/Pi:
196Added a popup menu ( press pen and hold to get popup ) to the agenda view 197Added a popup menu ( press pen and hold to get popup ) to the agenda view
197with many useful items (add event/todo, show next week, two weeks, month, journal). 198with many useful items (add event/todo, show next week, two weeks, month, journal).
198 199
199Added items to the todolist popup menu for: 200Added items to the todolist popup menu for:
200Display all opened, all closed or all todos flat. 201Display all opened, all closed or all todos flat.
201The "flat" view makes is possible to sort all todos after ,e.g., prio or date. 202The "flat" view makes is possible to sort all todos after ,e.g., prio or date.
202Made the reparenting of todos on the desktop possible via Drag&Drop. 203Made the reparenting of todos on the desktop possible via Drag&Drop.
203Fixed several bugs in setting the completed datetime for todos. 204Fixed several bugs in setting the completed datetime for todos.
204Added info about completed datetime of todos to the todo viewer. 205Added info about completed datetime of todos to the todo viewer.
205Now displaying a completed todo (with completed datetime set) in the agenda view 206Now displaying a completed todo (with completed datetime set) in the agenda view
206at the time of the completion. Such that now it is possible to see in the agenda view 207at the time of the completion. Such that now it is possible to see in the agenda view
207when what todo was completed. 208when what todo was completed.
208Fixed behaviour of automatic setting completion of todos with sub-todos/parent todos. 209Fixed behaviour of automatic setting completion of todos with sub-todos/parent todos.
209Now the behaviour is: 210Now the behaviour is:
210Setting a parent to complete sets all (sub)childs to complete. 211Setting a parent to complete sets all (sub)childs to complete.
211Setting a parent to uncomplete does not change the childs. 212Setting a parent to uncomplete does not change the childs.
212Setting a child to uncomplete sets all parent to uncomplete. 213Setting a child to uncomplete sets all parent to uncomplete.
213Setting a child to complete does not change the parents. 214Setting a child to complete does not change the parents.
214 215
215Smart updating and double buffering of the daymatrix. 216Smart updating and double buffering of the daymatrix.
216Showing holidays in the day matrix. 217Showing holidays in the day matrix.
217Many other small performance updates. 218Many other small performance updates.
218 219
219Made day labels in agenda clickable. By clicking a label, the day is displayed in single day mode. 220Made day labels in agenda clickable. By clicking a label, the day is displayed in single day mode.
220 221
221Now the translation file usertranslation.txt is supposed to be in utf8 format. 222Now the translation file usertranslation.txt is supposed to be in utf8 format.
222If you want to translate a language from western europe, just change the germantranslation.txt file. Please read the updated Usertranslation HowTo in KO/Pi Help menu. 223If you want to translate a language from western europe, just change the germantranslation.txt file. Please read the updated Usertranslation HowTo in KO/Pi Help menu.
223 224
224 225
225********** VERSION 2.0.0 ************ 226********** VERSION 2.0.0 ************
226 227
227Stable release 2.0.0! 228Stable release 2.0.0!
228 229
229KO/Pi: 230KO/Pi:
230Fixed problem in edit dialog recreation at startup. 231Fixed problem in edit dialog recreation at startup.
231Made "toggle view*" menu items enabled context sensitive. 232Made "toggle view*" menu items enabled context sensitive.
232Changed agenda size menu to items 1-10. 233Changed agenda size menu to items 1-10.
233Made it possible to change agenda size quickly by pressing mouse on timelabels in agenda view and move mouse up/down. 234Made it possible to change agenda size quickly by pressing mouse on timelabels in agenda view and move mouse up/down.
234Usebility enhancements in the KO/Pi menus. 235Usebility enhancements in the KO/Pi menus.
235Birthday import now adds year to summary. 236Birthday import now adds year to summary.
236What's Next view shows age in years for birthday. 237What's Next view shows age in years for birthday.
237 238
238OM/Pi: 239OM/Pi:
239Added three info lines to display subject, from and to of selected mails. 240Added three info lines to display subject, from and to of selected mails.
240 241
241KA/Pi: 242KA/Pi:
242Fixed jump bar behaviour on Zaurus. 243Fixed jump bar behaviour on Zaurus.
243Now KA/Pi search field supports searching for a range of starting characters. 244Now KA/Pi search field supports searching for a range of starting characters.
244E.g. to search for all contact beginning with b to n, type 245E.g. to search for all contact beginning with b to n, type
245b-n 246b-n
246in the search field. 247in the search field.
247 248
248********** VERSION 1.9.20 ************ 249********** VERSION 1.9.20 ************
249 250
250KO/Pi: 251KO/Pi:
251Added for the "dislplay one day" agenda mode 252Added for the "dislplay one day" agenda mode
252info in the caption and in the day lables: 253info in the caption and in the day lables:
253Now it is displayed, if the selected day is from "day before yesterday" 254Now it is displayed, if the selected day is from "day before yesterday"
254to "day after tomorrow". 255to "day after tomorrow".
255Made it possible to delete a Todo, which has sub-todos. 256Made it possible to delete a Todo, which has sub-todos.
256Fixed two small problems in the todo view. 257Fixed two small problems in the todo view.
257Added missing German translation for filter edit and print dialog. 258Added missing German translation for filter edit and print dialog.
258Made search dialog closeable by cancel key. 259Made search dialog closeable by cancel key.
259 260
260Made it possible to select in the date picker the (ligt grey ) 261Made it possible to select in the date picker the (ligt grey )
261dates of the prev./next month with the mouse. 262dates of the prev./next month with the mouse.
262 263
263OM/Pi: 264OM/Pi:
264"Delete mail" icon in main window now deletes all selected mails. 265"Delete mail" icon in main window now deletes all selected mails.
265Fixed the problem, that the state flag of imap mails was ignored. 266Fixed the problem, that the state flag of imap mails was ignored.
266Now mails with "FLAG_SEEN" on the imap server get no icon in the list view 267Now mails with "FLAG_SEEN" on the imap server get no icon in the list view
267to indecate that they are already seen. 268to indecate that they are already seen.
268Fixed the problem that the body of some mails was not displayed in the 269Fixed the problem that the body of some mails was not displayed in the
269mail viewer when fetching them from the imap server directly to read them. 270mail viewer when fetching them from the imap server directly to read them.
270Made it (configurable) possible to show the "To:" field in the list view. 271Made it (configurable) possible to show the "To:" field in the list view.
271Added to the mail viewer the option "View Source" to make it possible to see the raw mail data. 272Added to the mail viewer the option "View Source" to make it possible to see the raw mail data.
272Added a "Download Mail" button to the mail viewer to quickly download the viewed mail to the 273Added a "Download Mail" button to the mail viewer to quickly download the viewed mail to the
273local storage folder (specified in account settings) of the account of the mail. 274local storage folder (specified in account settings) of the account of the mail.
274Removed some memory leaks in OM/Pi. 275Removed some memory leaks in OM/Pi.
275 276
276 277
277********** VERSION 1.9.19 ************ 278********** VERSION 1.9.19 ************
278 279
279Added a lot of missing translations to KA/Pi, 280Added a lot of missing translations to KA/Pi,
280Added some missing translations to KO/Pi and OM/Pi. 281Added some missing translations to KO/Pi and OM/Pi.
281 282
282Fixed some minor problems in KA/Pi + KO/Pi. 283Fixed some minor problems in KA/Pi + KO/Pi.
283 284
284Fixed a crash when closing PwM/Pi. 285Fixed a crash when closing PwM/Pi.
285Added German translation for PwM/Pi. 286Added German translation for PwM/Pi.
286 287
287Made view change and Month View update faster in KO/Pi. 288Made view change and Month View update faster in KO/Pi.
288 289
289 290
290********** VERSION 1.9.18 ************ 291********** VERSION 1.9.18 ************
291 292
292FYI: The VERSION 1.9.17 was a testing release only. 293FYI: The VERSION 1.9.17 was a testing release only.
293Please read the changelog of VERSION 1.9.17 as well. 294Please read the changelog of VERSION 1.9.17 as well.
294 295
295Cleaned up the syncing config dialog. 296Cleaned up the syncing config dialog.
296Added sync config options for date range for events. 297Added sync config options for date range for events.
297Added sync config options for filters on incoming data. 298Added sync config options for filters on incoming data.
298Added sync config options for filters on outgoing data. 299Added sync config options for filters on outgoing data.
299Please read the updated SyncHowTo about the new filter settings. 300Please read the updated SyncHowTo about the new filter settings.
300These filter settings make it now possible to sync with shared 301These filter settings make it now possible to sync with shared
301calendars without writing back private or confidential data 302calendars without writing back private or confidential data
302(via the outgoing filters). 303(via the outgoing filters).
303To sync only with particular parts of a shared calendar, 304To sync only with particular parts of a shared calendar,
304the incoming filter settings can be used. 305the incoming filter settings can be used.
305An example can be found in the SyncHowTo. 306An example can be found in the SyncHowTo.
306Same for shared addressbooks. 307Same for shared addressbooks.
307 308
308Added a setting for the global kdepim data storage. 309Added a setting for the global kdepim data storage.
309Usually the data is stored in (yourhomedir/kdepim). 310Usually the data is stored in (yourhomedir/kdepim).
310Now you can set in the Global config dialog TAB, subTAB "Data storage path" 311Now you can set in the Global config dialog TAB, subTAB "Data storage path"
311a directory where all the kdepim data is stored. 312a directory where all the kdepim data is stored.
312That makes it easy to save all kdepim data on a SD card on the Z, for example. 313That makes it easy to save all kdepim data on a SD card on the Z, for example.
313 314
314KO/Pi: 315KO/Pi:
315The timeedit input has a pulldown list for times. 316The timeedit input has a pulldown list for times.
316If opened, this pulldown list should now has the right time highlighted. 317If opened, this pulldown list should now has the right time highlighted.
317Added the possibility to exclude events/todos/journals in a filter. 318Added the possibility to exclude events/todos/journals in a filter.
318You should exclude journals, if you do not want them to sync with a public calendar. 319You should exclude journals, if you do not want them to sync with a public calendar.
319 320
320KA/Pi: 321KA/Pi:
321Added the possibility to in/exclude public/private/confidential contacts to a filter. 322Added the possibility to in/exclude public/private/confidential contacts to a filter.
322If you have already defined filterrules in KA/Pi you have to adjust them all by setting the "include public/private/confidential" property manually. Sorry for that ... 323If you have already defined filterrules in KA/Pi you have to adjust them all by setting the "include public/private/confidential" property manually. Sorry for that ...
323Added printing of card view and details view on desktop. 324Added printing of card view and details view on desktop.
324Printing of list view is not working... 325Printing of list view is not working...
325Added button for removing pictures in contact editor. 326Added button for removing pictures in contact editor.
326Parsing data fix of KA/Pi version 1.9.17. 327Parsing data fix of KA/Pi version 1.9.17.
327Fixed the "parse name automatically" problem of KA/Pi version 1.9.17. 328Fixed the "parse name automatically" problem of KA/Pi version 1.9.17.
328Fixed some syncing merging problems. 329Fixed some syncing merging problems.
329 330
330 331
331********** VERSION 1.9.17 ************ 332********** VERSION 1.9.17 ************
332 333
333KO/Pi: 334KO/Pi:
334Fixed that tooltips were not updated after moving an item in agenda view. 335Fixed that tooltips were not updated after moving an item in agenda view.
335Fixed a bug in sorting start date for recurring events in list view. 336Fixed a bug in sorting start date for recurring events in list view.
336Changed the left button in todo viewer from "Agenda" to "Set completed". 337Changed the left button in todo viewer from "Agenda" to "Set completed".
337This makes it possible to change a todo in the What's Next View quickly to the completed state without leaving the What's Next View. 338This makes it possible to change a todo in the What's Next View quickly to the completed state without leaving the What's Next View.
338Added more info in the todo viewer: Startdate, parent/sub todos. 339Added more info in the todo viewer: Startdate, parent/sub todos.
339 340
340 341
341KA/Pi: 342KA/Pi:
342All fields search does now actually search all the (possible) fields, 343All fields search does now actually search all the (possible) fields,
343not only those listed in the contact list. 344not only those listed in the contact list.
344Made is possible to inline a picture in a vcard on the Z. 345Made is possible to inline a picture in a vcard on the Z.
345This was only possible on the desktop, now is it possible on the Z as well. 346This was only possible on the desktop, now is it possible on the Z as well.
346Fixed of missing save settings after filter configuration. 347Fixed of missing save settings after filter configuration.
347Made saving of addressbook much faster. 348Made saving of addressbook much faster.
348Fixed extension widget layout problem. 349Fixed extension widget layout problem.
349Fixed saving of default formatted name settings. 350Fixed saving of default formatted name settings.
350Fixed formatted name handling in edit dialog. 351Fixed formatted name handling in edit dialog.
351Added an option for changing formatted names of many contacts 352Added an option for changing formatted names of many contacts
352(menu: File - Change - Set formatted name). 353(menu: File - Change - Set formatted name).
353 354
354QWhatsThis was not working on the Z ( only black rectangle was shown). 355QWhatsThis was not working on the Z ( only black rectangle was shown).
355This is Fixed. 356This is Fixed.
356 357
357KDE-Sync: 358KDE-Sync:
358Now readonly KDE resources are synced as well. 359Now readonly KDE resources are synced as well.
359(They are not changed in KDE itself, of course). 360(They are not changed in KDE itself, of course).
360 361
361 362
362 363
363********** VERSION 1.9.16 ************ 364********** VERSION 1.9.16 ************
364 365
365KO/Pi: 366KO/Pi:
366Fixed search dialog size on Z 6000 (480x640 display). 367Fixed search dialog size on Z 6000 (480x640 display).
367Added setting to hide/show time in agenda items. 368Added setting to hide/show time in agenda items.
368Added setting to hide not running todos in todo view. 369Added setting to hide not running todos in todo view.
369Added columns for start date/time in todo view. 370Added columns for start date/time in todo view.
370Replaced the solid half-hour lines in agenda view by dot lines. 371Replaced the solid half-hour lines in agenda view by dot lines.
371Added possibility of printing the What's Next View on the desktop 372Added possibility of printing the What's Next View on the desktop
372(i.e. Windows and Linux). 373(i.e. Windows and Linux).
373Fixed a crash in KO/Pi when starting KO/Pi with What's Next view. 374Fixed a crash in KO/Pi when starting KO/Pi with What's Next view.
374Added tooltips in month view.(Tooltips only available on desktop) 375Added tooltips in month view.(Tooltips only available on desktop)
375 376
376Fixed a strange problem in KO/Pi alarm applet. 377Fixed a strange problem in KO/Pi alarm applet.
377Did not find the actual problem, 378Did not find the actual problem,
378such that now Qtopia reboots again if deinstalling the alarm applet. 379such that now Qtopia reboots again if deinstalling the alarm applet.
379But the alarm applet should work again. 380But the alarm applet should work again.
380 381
381KA/Pi: 382KA/Pi:
382Fixed the problem, that internal pictures were not saved. 383Fixed the problem, that internal pictures were not saved.
383 384
384Fixed a problem in the pi-sync mode by increasing the timeout for data transfer from 20 seconds to 5 minutes. 385Fixed a problem in the pi-sync mode by increasing the timeout for data transfer from 20 seconds to 5 minutes.
385 386
386Fixed some minor problems. (Like word wrap in help text windows). 387Fixed some minor problems. (Like word wrap in help text windows).
387 388
388Fixed a compiling problem in microkde/kresources. 389Fixed a compiling problem in microkde/kresources.
389 390
390KO/Pi is using zdbat (renamed to db2file) for syncing with Sharp DTM. 391KO/Pi is using zdbat (renamed to db2file) for syncing with Sharp DTM.
391This version now includes zdbat 1.0.0 (old version was zdbat 0.2.9) 392This version now includes zdbat 1.0.0 (old version was zdbat 0.2.9)
392such that now syncing KO/Pi with Sharp DTM should work on the 393such that now syncing KO/Pi with Sharp DTM should work on the
393Zaurus C 3000 model. 394Zaurus C 3000 model.
diff --git a/pwmanager/pwmanager/pwm.cpp b/pwmanager/pwmanager/pwm.cpp
index a751fce..9c8d12d 100644
--- a/pwmanager/pwmanager/pwm.cpp
+++ b/pwmanager/pwmanager/pwm.cpp
@@ -108,769 +108,780 @@ enum {
108 BUTTON_POPUP_CHIPCARD_NO = 0 108 BUTTON_POPUP_CHIPCARD_NO = 0
109#endif // CONFIG_KEYCARD 109#endif // CONFIG_KEYCARD
110}; 110};
111// Button IDs for "view" popup menu 111// Button IDs for "view" popup menu
112enum { 112enum {
113 BUTTON_POPUP_VIEW_FIND = 0, 113 BUTTON_POPUP_VIEW_FIND = 0,
114 BUTTON_POPUP_VIEW_LOCK, 114 BUTTON_POPUP_VIEW_LOCK,
115 BUTTON_POPUP_VIEW_DEEPLOCK, 115 BUTTON_POPUP_VIEW_DEEPLOCK,
116 BUTTON_POPUP_VIEW_UNLOCK 116 BUTTON_POPUP_VIEW_UNLOCK
117}; 117};
118// Button IDs for "options" popup menu 118// Button IDs for "options" popup menu
119enum { 119enum {
120 BUTTON_POPUP_OPTIONS_CONFIG = 0 120 BUTTON_POPUP_OPTIONS_CONFIG = 0
121#ifdef PWM_EMBEDDED 121#ifdef PWM_EMBEDDED
122 ,BUTTON_POPUP_OPTIONS_CATEGORY 122 ,BUTTON_POPUP_OPTIONS_CATEGORY
123#endif 123#endif
124}; 124};
125// Button IDs for "export" popup menu (in "file" popup menu) 125// Button IDs for "export" popup menu (in "file" popup menu)
126enum { 126enum {
127 BUTTON_POPUP_EXPORT_TEXT = 0, 127 BUTTON_POPUP_EXPORT_TEXT = 0,
128 BUTTON_POPUP_EXPORT_GPASMAN, 128 BUTTON_POPUP_EXPORT_GPASMAN,
129 BUTTON_POPUP_EXPORT_CSV 129 BUTTON_POPUP_EXPORT_CSV
130#ifdef CONFIG_KWALLETIF 130#ifdef CONFIG_KWALLETIF
131 ,BUTTON_POPUP_EXPORT_KWALLET 131 ,BUTTON_POPUP_EXPORT_KWALLET
132#endif 132#endif
133}; 133};
134// Button IDs for "import" popup menu (in "file" popup menu) 134// Button IDs for "import" popup menu (in "file" popup menu)
135enum { 135enum {
136 BUTTON_POPUP_IMPORT_TEXT = 0, 136 BUTTON_POPUP_IMPORT_TEXT = 0,
137 BUTTON_POPUP_IMPORT_GPASMAN, 137 BUTTON_POPUP_IMPORT_GPASMAN,
138 BUTTON_POPUP_IMPORT_CSV 138 BUTTON_POPUP_IMPORT_CSV
139#ifdef CONFIG_KWALLETIF 139#ifdef CONFIG_KWALLETIF
140 ,BUTTON_POPUP_IMPORT_KWALLET 140 ,BUTTON_POPUP_IMPORT_KWALLET
141#endif 141#endif
142}; 142};
143 143
144#ifdef PWM_EMBEDDED 144#ifdef PWM_EMBEDDED
145// Button IDs for "help" popup menu 145// Button IDs for "help" popup menu
146enum { 146enum {
147 BUTTON_POPUP_HELP_LICENSE = 0, 147 BUTTON_POPUP_HELP_LICENSE = 0,
148 BUTTON_POPUP_HELP_FAQ, 148 BUTTON_POPUP_HELP_FAQ,
149 BUTTON_POPUP_HELP_ABOUT, 149 BUTTON_POPUP_HELP_ABOUT,
150 BUTTON_POPUP_HELP_SYNC, 150 BUTTON_POPUP_HELP_SYNC,
151 BUTTON_POPUP_HELP_WHATSNEW 151 BUTTON_POPUP_HELP_WHATSNEW
152}; 152};
153#endif 153#endif
154 154
155// Button IDs for toolbar 155// Button IDs for toolbar
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("filesave", KIcon::Small)), 252 filePopup->insertItem(QIconSet(picons->loadIcon("filesave", KIcon::Small)),
253 i18n("&Save"), this, 253 i18n("&Save"), this,
254 SLOT(save_slot()), 0, BUTTON_POPUP_FILE_SAVE); 254 SLOT(save_slot()), 0, BUTTON_POPUP_FILE_SAVE);
255 filePopup->insertItem(QIconSet(picons->loadIcon("filesaveas", KIcon::Small)), 255 filePopup->insertItem(QIconSet(picons->loadIcon("filesaveas", KIcon::Small)),
256 i18n("Save &as..."), 256 i18n("Save &as..."),
257 this, SLOT(saveAs_slot()), 0, 257 this, SLOT(saveAs_slot()), 0,
258 BUTTON_POPUP_FILE_SAVEAS); 258 BUTTON_POPUP_FILE_SAVEAS);
259 filePopup->insertSeparator(); 259 filePopup->insertSeparator();
260 // "file/export" popup menu 260 // "file/export" popup menu
261 exportPopup->insertItem(i18n("&Text-file..."), this, 261 exportPopup->insertItem(i18n("&Text-file..."), this,
262 SLOT(exportToText()), 0, BUTTON_POPUP_EXPORT_TEXT); 262 SLOT(exportToText()), 0, BUTTON_POPUP_EXPORT_TEXT);
263 exportPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, 263 exportPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this,
264 SLOT(exportToGpasman()), 0, BUTTON_POPUP_EXPORT_GPASMAN); 264 SLOT(exportToGpasman()), 0, BUTTON_POPUP_EXPORT_GPASMAN);
265 exportPopup->insertItem(i18n("&CSV (Comma Separated Value) ..."), this, 265 exportPopup->insertItem(i18n("&CSV (Comma Separated Value) ..."), this,
266 SLOT(exportToCsv()), 0, BUTTON_POPUP_EXPORT_CSV); 266 SLOT(exportToCsv()), 0, BUTTON_POPUP_EXPORT_CSV);
267#ifdef CONFIG_KWALLETIF 267#ifdef CONFIG_KWALLETIF
268 exportPopup->insertItem(i18n("&KWallet..."), this, 268 exportPopup->insertItem(i18n("&KWallet..."), this,
269 SLOT(exportToKWallet()), 0, BUTTON_POPUP_EXPORT_KWALLET); 269 SLOT(exportToKWallet()), 0, BUTTON_POPUP_EXPORT_KWALLET);
270#endif 270#endif
271 filePopup->insertItem(QIconSet(picons->loadIcon("fileexport", KIcon::Small)), 271 filePopup->insertItem(QIconSet(picons->loadIcon("fileexport", KIcon::Small)),
272 i18n("E&xport"), exportPopup, 272 i18n("E&xport"), exportPopup,
273 BUTTON_POPUP_FILE_EXPORT); 273 BUTTON_POPUP_FILE_EXPORT);
274 // "file/import" popup menu 274 // "file/import" popup menu
275 importPopup->insertItem(i18n("&Text-file..."), this, 275 importPopup->insertItem(i18n("&Text-file..."), this,
276 SLOT(importFromText()), 0, BUTTON_POPUP_IMPORT_TEXT); 276 SLOT(importFromText()), 0, BUTTON_POPUP_IMPORT_TEXT);
277 importPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this, 277 importPopup->insertItem(i18n("&Gpasman / Kpasman ..."), this,
278 SLOT(importFromGpasman()), 0, BUTTON_POPUP_IMPORT_GPASMAN); 278 SLOT(importFromGpasman()), 0, BUTTON_POPUP_IMPORT_GPASMAN);
279 importPopup->insertItem(i18n("&CSV (Comma Separated Value) ..."), this, 279 importPopup->insertItem(i18n("&CSV (Comma Separated Value) ..."), this,
280 SLOT(importCsv()), 0, BUTTON_POPUP_IMPORT_CSV); 280 SLOT(importCsv()), 0, BUTTON_POPUP_IMPORT_CSV);
281#ifdef CONFIG_KWALLETIF 281#ifdef CONFIG_KWALLETIF
282 importPopup->insertItem(i18n("&KWallet..."), this, 282 importPopup->insertItem(i18n("&KWallet..."), this,
283 SLOT(importKWallet()), 0, BUTTON_POPUP_IMPORT_KWALLET); 283 SLOT(importKWallet()), 0, BUTTON_POPUP_IMPORT_KWALLET);
284#endif 284#endif
285 filePopup->insertItem(QIconSet(picons->loadIcon("fileimport", KIcon::Small)), 285 filePopup->insertItem(QIconSet(picons->loadIcon("fileimport", KIcon::Small)),
286 i18n("I&mport"), importPopup, 286 i18n("I&mport"), importPopup,
287 BUTTON_POPUP_FILE_IMPORT); 287 BUTTON_POPUP_FILE_IMPORT);
288 filePopup->insertSeparator(); 288 filePopup->insertSeparator();
289#if 0 289#if 0
290 filePopup->insertItem(QIconSet(picons->loadIcon("fileprint", KIcon::Small)), 290 filePopup->insertItem(QIconSet(picons->loadIcon("fileprint", KIcon::Small)),
291 i18n("&Print..."), this, 291 i18n("&Print..."), this,
292 SLOT(print_slot()), 0, BUTTON_POPUP_FILE_PRINT); 292 SLOT(print_slot()), 0, BUTTON_POPUP_FILE_PRINT);
293 filePopup->insertSeparator(); 293 filePopup->insertSeparator();
294#endif 294#endif
295 filePopup->insertItem(QIconSet(picons->loadIcon("exit", KIcon::Small)), 295 filePopup->insertItem(QIconSet(picons->loadIcon("exit", KIcon::Small)),
296 i18n("&Quit"), this, 296 i18n("&Quit"), this,
297 SLOT(quitButton_slot()), 0, BUTTON_POPUP_FILE_QUIT); 297 SLOT(quitButton_slot()), 0, BUTTON_POPUP_FILE_QUIT);
298 menuBar()->insertItem(i18n("&File"), filePopup); 298 menuBar()->insertItem(i18n("&File"), filePopup);
299// "manage" popup menu 299// "manage" popup menu
300 managePopup->insertItem(QIconSet(picons->loadIcon("pencil", KIcon::Small)), 300 managePopup->insertItem(QIconSet(picons->loadIcon("pencil", KIcon::Small)),
301 i18n("&Add password"), this, 301 i18n("&Add password"), this,
302 SLOT(addPwd_slot()), 0, 302 SLOT(addPwd_slot()), 0,
303 BUTTON_POPUP_MANAGE_ADD); 303 BUTTON_POPUP_MANAGE_ADD);
304 managePopup->insertSeparator(); 304 managePopup->insertSeparator();
305 managePopup->insertItem(QIconSet(picons->loadIcon("edit", KIcon::Small)), 305 managePopup->insertItem(QIconSet(picons->loadIcon("edit", KIcon::Small)),
306 i18n("&Edit"), this, SLOT(editPwd_slot()), 0, 306 i18n("&Edit"), this, SLOT(editPwd_slot()), 0,
307 BUTTON_POPUP_MANAGE_EDIT); 307 BUTTON_POPUP_MANAGE_EDIT);
308 managePopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)), 308 managePopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)),
309 i18n("&Delete"), this, SLOT(deletePwd_slot()), 309 i18n("&Delete"), this, SLOT(deletePwd_slot()),
310 0, BUTTON_POPUP_MANAGE_DEL); 310 0, BUTTON_POPUP_MANAGE_DEL);
311 managePopup->insertSeparator(); 311 managePopup->insertSeparator();
312 managePopup->insertItem(QIconSet(picons->loadIcon("rotate", KIcon::Small)), 312 managePopup->insertItem(QIconSet(picons->loadIcon("rotate", KIcon::Small)),
313 i18n("Change &Master Password"), this, 313 i18n("Change &Master Password"), this,
314 SLOT(changeMasterPwd_slot()), 0, 314 SLOT(changeMasterPwd_slot()), 0,
315 BUTTON_POPUP_MANAGE_CHANGEMP); 315 BUTTON_POPUP_MANAGE_CHANGEMP);
316 menuBar()->insertItem(i18n("&Manage"), managePopup); 316 menuBar()->insertItem(i18n("&Manage"), managePopup);
317// "chipcard" popup menu 317// "chipcard" popup menu
318#ifdef CONFIG_KEYCARD 318#ifdef CONFIG_KEYCARD
319 chipcardPopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)), 319 chipcardPopup->insertItem(QIconSet(picons->loadIcon("filenew", KIcon::Small)),
320 i18n("&Generate new key-card"), this, 320 i18n("&Generate new key-card"), this,
321 SLOT(genNewCard_slot()), 0, 321 SLOT(genNewCard_slot()), 0,
322 BUTTON_POPUP_CHIPCARD_GENNEW); 322 BUTTON_POPUP_CHIPCARD_GENNEW);
323 chipcardPopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)), 323 chipcardPopup->insertItem(QIconSet(picons->loadIcon("editdelete", KIcon::Small)),
324 i18n("&Erase key-card"), this, 324 i18n("&Erase key-card"), this,
325 SLOT(eraseCard_slot()), 0, 325 SLOT(eraseCard_slot()), 0,
326 BUTTON_POPUP_CHIPCARD_DEL); 326 BUTTON_POPUP_CHIPCARD_DEL);
327 chipcardPopup->insertItem(QIconSet(picons->loadIcon("", KIcon::Small)), 327 chipcardPopup->insertItem(QIconSet(picons->loadIcon("", KIcon::Small)),
328 i18n("Read card-&ID"), this, 328 i18n("Read card-&ID"), this,
329 SLOT(readCardId_slot()), 0, 329 SLOT(readCardId_slot()), 0,
330 BUTTON_POPUP_CHIPCARD_READID); 330 BUTTON_POPUP_CHIPCARD_READID);
331 chipcardPopup->insertSeparator(); 331 chipcardPopup->insertSeparator();
332 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2rightarrow", KIcon::Small)), 332 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2rightarrow", KIcon::Small)),
333 i18n("&Make card backup-image"), this, 333 i18n("&Make card backup-image"), this,
334 SLOT(makeCardBackup_slot()), 0, 334 SLOT(makeCardBackup_slot()), 0,
335 BUTTON_POPUP_CHIPCARD_SAVEBACKUP); 335 BUTTON_POPUP_CHIPCARD_SAVEBACKUP);
336 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2leftarrow", KIcon::Small)), 336 chipcardPopup->insertItem(QIconSet(picons->loadIcon("2leftarrow", KIcon::Small)),
337 i18n("&Replay card backup-image"), this, 337 i18n("&Replay card backup-image"), this,
338 SLOT(replayCardBackup_slot()), 0, 338 SLOT(replayCardBackup_slot()), 0,
339 BUTTON_POPUP_CHIPCARD_REPLAYBACKUP); 339 BUTTON_POPUP_CHIPCARD_REPLAYBACKUP);
340 menuBar()->insertItem(i18n("&Chipcard manager"), chipcardPopup); 340 menuBar()->insertItem(i18n("&Chipcard manager"), chipcardPopup);
341#endif // CONFIG_KEYCARD 341#endif // CONFIG_KEYCARD
342// "view" popup menu 342// "view" popup menu
343 viewPopup->insertItem(QIconSet(picons->loadIcon("find", KIcon::Small)), 343 viewPopup->insertItem(QIconSet(picons->loadIcon("find", KIcon::Small)),
344 i18n("&Find"), this, 344 i18n("&Find"), this,
345 SLOT(find_slot()), 0, BUTTON_POPUP_VIEW_FIND); 345 SLOT(find_slot()), 0, BUTTON_POPUP_VIEW_FIND);
346 viewPopup->insertSeparator(); 346 viewPopup->insertSeparator();
347 viewPopup->insertItem(QIconSet(picons->loadIcon("halfencrypted", KIcon::Small)), 347 viewPopup->insertItem(QIconSet(picons->loadIcon("halfencrypted", KIcon::Small)),
348 i18n("&Lock all entries"), this, 348 i18n("&Lock all entries"), this,
349 SLOT(lockWnd_slot()), 0, 349 SLOT(lockWnd_slot()), 0,
350 BUTTON_POPUP_VIEW_LOCK); 350 BUTTON_POPUP_VIEW_LOCK);
351 viewPopup->insertItem(QIconSet(picons->loadIcon("encrypted", KIcon::Small)), 351 viewPopup->insertItem(QIconSet(picons->loadIcon("encrypted", KIcon::Small)),
352 i18n("&Deep-lock all entries"), this, 352 i18n("&Deep-lock all entries"), this,
353 SLOT(deepLockWnd_slot()), 0, 353 SLOT(deepLockWnd_slot()), 0,
354 BUTTON_POPUP_VIEW_DEEPLOCK); 354 BUTTON_POPUP_VIEW_DEEPLOCK);
355 viewPopup->insertItem(QIconSet(picons->loadIcon("decrypted", KIcon::Small)), 355 viewPopup->insertItem(QIconSet(picons->loadIcon("decrypted", KIcon::Small)),
356 i18n("&Unlock all entries"), this, 356 i18n("&Unlock all entries"), this,
357 SLOT(unlockWnd_slot()), 0, 357 SLOT(unlockWnd_slot()), 0,
358 BUTTON_POPUP_VIEW_UNLOCK); 358 BUTTON_POPUP_VIEW_UNLOCK);
359 menuBar()->insertItem(i18n("&View"), viewPopup); 359 menuBar()->insertItem(i18n("&View"), viewPopup);
360// "options" popup menu 360// "options" popup menu
361 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)), 361 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)),
362 i18n("&Configure..."), this, 362 i18n("&Configure..."), this,
363 SLOT(config_slot()),0, 363 SLOT(config_slot()),0,
364 BUTTON_POPUP_OPTIONS_CONFIG); 364 BUTTON_POPUP_OPTIONS_CONFIG);
365 if ( QApplication::desktop()->width() <= 240 ) { 365 if ( QApplication::desktop()->width() <= 240 ) {
366 managePopup->insertSeparator(); 366 managePopup->insertSeparator();
367 managePopup->insertItem(i18n("&Options"), optionsPopup); 367 managePopup->insertItem(i18n("&Options"), optionsPopup);
368 } else 368 } else
369 menuBar()->insertItem(i18n("&Options"), optionsPopup); 369 menuBar()->insertItem(i18n("&Options"), optionsPopup);
370// "help" popup menu 370// "help" popup menu
371#ifndef PWM_EMBEDDED 371#ifndef PWM_EMBEDDED
372 helpPopup = helpMenu(QString::null, false); 372 helpPopup = helpMenu(QString::null, false);
373#else 373#else
374 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)), 374 optionsPopup->insertItem(QIconSet(picons->loadIcon("configure", KIcon::Small)),
375 i18n("C&ategories..."), this, 375 i18n("C&ategories..."), this,
376 SLOT(category_slot()),0, 376 SLOT(category_slot()),0,
377 BUTTON_POPUP_OPTIONS_CATEGORY); 377 BUTTON_POPUP_OPTIONS_CATEGORY);
378 378
379 379
380 menuBar()->insertItem(i18n("&Sync"), syncPopup); 380 menuBar()->insertItem(i18n("&Sync"), syncPopup);
381 381
382 382
383 383
384 384
385 385
386 helpPopup = new KPopupMenu(this); 386 helpPopup = new KPopupMenu(this);
387 387
388 388
389 helpPopup->insertItem(i18n("&License"), this, 389 helpPopup->insertItem(i18n("&License"), this,
390 SLOT(showLicense_slot()), 0, 390 SLOT(showLicense_slot()), 0,
391 BUTTON_POPUP_HELP_LICENSE); 391 BUTTON_POPUP_HELP_LICENSE);
392 392
393 helpPopup->insertItem(i18n("&Faq"), this, 393 helpPopup->insertItem(i18n("&Faq"), this,
394 SLOT(faq_slot()), 0, 394 SLOT(faq_slot()), 0,
395 BUTTON_POPUP_HELP_FAQ); 395 BUTTON_POPUP_HELP_FAQ);
396 396
397 helpPopup->insertItem(i18n("&About PwManager"), this, 397 helpPopup->insertItem(i18n("&About PwManager"), this,
398 SLOT(createAboutData_slot()), 0, 398 SLOT(createAboutData_slot()), 0,
399 BUTTON_POPUP_HELP_ABOUT); 399 BUTTON_POPUP_HELP_ABOUT);
400 400
401 helpPopup->insertItem(i18n("&Sync HowTo"), this, 401 helpPopup->insertItem(i18n("&Sync HowTo"), this,
402 SLOT(syncHowTo_slot()), 0, 402 SLOT(syncHowTo_slot()), 0,
403 BUTTON_POPUP_HELP_SYNC); 403 BUTTON_POPUP_HELP_SYNC);
404 404
405 helpPopup->insertItem(i18n("&What's New"), this, 405 helpPopup->insertItem(i18n("&What's New"), this,
406 SLOT(whatsnew_slot()), 0, 406 SLOT(whatsnew_slot()), 0,
407 BUTTON_POPUP_HELP_WHATSNEW); 407 BUTTON_POPUP_HELP_WHATSNEW);
408 408
409#endif 409#endif
410 menuBar()->insertItem(i18n("&Help"), helpPopup); 410 menuBar()->insertItem(i18n("&Help"), helpPopup);
411 411
412} 412}
413 413
414void PwM::initToolbar() 414void PwM::initToolbar()
415{ 415{
416 KIconLoader* picons; 416 KIconLoader* picons;
417#ifndef PWM_EMBEDDED 417#ifndef PWM_EMBEDDED
418 KIconLoader icons; 418 KIconLoader icons;
419 picons = &icons; 419 picons = &icons;
420#else 420#else
421 picons = KGlobal::iconLoader(); 421 picons = KGlobal::iconLoader();
422#endif 422#endif
423 423
424#if 0 424#if 0
425 toolBar()->insertButton(picons->loadIcon("filenew", KIcon::Toolbar), 425 toolBar()->insertButton(picons->loadIcon("filenew", KIcon::Toolbar),
426 BUTTON_TOOL_NEW, SIGNAL(clicked(int)), this, 426 BUTTON_TOOL_NEW, SIGNAL(clicked(int)), this,
427 SLOT(new_slot()), true, i18n("New")); 427 SLOT(new_slot()), true, i18n("New"));
428#endif 428#endif
429 toolBar()->insertButton(picons->loadIcon("fileopen", KIcon::Toolbar), 429 toolBar()->insertButton(picons->loadIcon("fileopen", KIcon::Toolbar),
430 BUTTON_TOOL_OPEN, SIGNAL(clicked(int)), this, 430 BUTTON_TOOL_OPEN, SIGNAL(clicked(int)), this,
431 SLOT(open_slot()), true, i18n("Open")); 431 SLOT(open_slot()), true, i18n("Open"));
432 toolBar()->insertButton(picons->loadIcon("pencil", KIcon::Toolbar), 432 toolBar()->insertButton(picons->loadIcon("pencil", KIcon::Toolbar),
433 BUTTON_TOOL_ADD, SIGNAL(clicked(int)), this, 433 BUTTON_TOOL_ADD, SIGNAL(clicked(int)), this,
434 SLOT(addPwd_slot()), true, 434 SLOT(addPwd_slot()), true,
435 i18n("Add password")); 435 i18n("Add password"));
436 toolBar()->insertSeparator(); 436 toolBar()->insertSeparator();
437 437
438 toolBar()->insertButton(picons->loadIcon("find", KIcon::Toolbar), 438 toolBar()->insertButton(picons->loadIcon("find", KIcon::Toolbar),
439 BUTTON_TOOL_FIND, SIGNAL(clicked(int)), this, 439 BUTTON_TOOL_FIND, SIGNAL(clicked(int)), this,
440 SLOT(find_slot()), true, i18n("Find entry")); 440 SLOT(find_slot()), true, i18n("Find entry"));
441 toolBar()->insertSeparator(); 441 toolBar()->insertSeparator();
442 toolBar()->insertButton(picons->loadIcon("filesave", KIcon::Toolbar), 442 toolBar()->insertButton(picons->loadIcon("filesave", KIcon::Toolbar),
443 BUTTON_TOOL_SAVE, SIGNAL(clicked(int)), this, 443 BUTTON_TOOL_SAVE, SIGNAL(clicked(int)), this,
444 SLOT(save_slot()), true, i18n("Save")); 444 SLOT(save_slot()), true, i18n("Save"));
445#if 0 445#if 0
446 toolBar()->insertButton(picons->loadIcon("filesaveas", KIcon::Toolbar), 446 toolBar()->insertButton(picons->loadIcon("filesaveas", KIcon::Toolbar),
447 BUTTON_TOOL_SAVEAS, SIGNAL(clicked(int)), this, 447 BUTTON_TOOL_SAVEAS, SIGNAL(clicked(int)), this,
448 SLOT(saveAs_slot()), true, i18n("Save as")); 448 SLOT(saveAs_slot()), true, i18n("Save as"));
449#endif 449#endif
450 450
451 451
452#if 0 452#if 0
453 toolBar()->insertButton(picons->loadIcon("fileprint", KIcon::Toolbar), 453 toolBar()->insertButton(picons->loadIcon("fileprint", KIcon::Toolbar),
454 BUTTON_TOOL_PRINT, SIGNAL(clicked(int)), this, 454 BUTTON_TOOL_PRINT, SIGNAL(clicked(int)), this,
455 SLOT(print_slot()), true, i18n("Print...")); 455 SLOT(print_slot()), true, i18n("Print..."));
456#endif 456#endif
457 toolBar()->insertSeparator(); 457 toolBar()->insertSeparator();
458 toolBar()->insertButton(picons->loadIcon("edit", KIcon::Toolbar), 458 toolBar()->insertButton(picons->loadIcon("edit", KIcon::Toolbar),
459 BUTTON_TOOL_EDIT, SIGNAL(clicked(int)), this, 459 BUTTON_TOOL_EDIT, SIGNAL(clicked(int)), this,
460 SLOT(editPwd_slot()), true, 460 SLOT(editPwd_slot()), true,
461 i18n("Edit password")); 461 i18n("Edit password"));
462 toolBar()->insertButton(picons->loadIcon("editdelete", KIcon::Toolbar), 462 toolBar()->insertButton(picons->loadIcon("editdelete", KIcon::Toolbar),
463 BUTTON_TOOL_DEL, SIGNAL(clicked(int)), this, 463 BUTTON_TOOL_DEL, SIGNAL(clicked(int)), this,
464 SLOT(deletePwd_slot()), true, 464 SLOT(deletePwd_slot()), true,
465 i18n("Delete password")); 465 i18n("Delete password"));
466 toolBar()->insertSeparator(); 466 toolBar()->insertSeparator();
467 toolBar()->insertButton(picons->loadIcon("halfencrypted", KIcon::Toolbar), 467 toolBar()->insertButton(picons->loadIcon("halfencrypted", KIcon::Toolbar),
468 BUTTON_TOOL_LOCK, SIGNAL(clicked(int)), this, 468 BUTTON_TOOL_LOCK, SIGNAL(clicked(int)), this,
469 SLOT(lockWnd_slot()), true, 469 SLOT(lockWnd_slot()), true,
470 i18n("Lock all entries")); 470 i18n("Lock all entries"));
471 toolBar()->insertButton(picons->loadIcon("encrypted", KIcon::Toolbar), 471 toolBar()->insertButton(picons->loadIcon("encrypted", KIcon::Toolbar),
472 BUTTON_TOOL_DEEPLOCK, SIGNAL(clicked(int)), this, 472 BUTTON_TOOL_DEEPLOCK, SIGNAL(clicked(int)), this,
473 SLOT(deepLockWnd_slot()), true, 473 SLOT(deepLockWnd_slot()), true,
474 i18n("Deep-Lock all entries")); 474 i18n("Deep-Lock all entries"));
475 toolBar()->insertButton(picons->loadIcon("decrypted", KIcon::Toolbar), 475 toolBar()->insertButton(picons->loadIcon("decrypted", KIcon::Toolbar),
476 BUTTON_TOOL_UNLOCK, SIGNAL(clicked(int)), this, 476 BUTTON_TOOL_UNLOCK, SIGNAL(clicked(int)), this,
477 SLOT(unlockWnd_slot()), true, 477 SLOT(unlockWnd_slot()), true,
478 i18n("Unlock all entries")); 478 i18n("Unlock all entries"));
479} 479}
480 480
481void PwM::initMetrics() 481void PwM::initMetrics()
482{ 482{
483 QSize s = conf()->confWndMainWndSize(); 483 QSize s = conf()->confWndMainWndSize();
484 if (s.isValid()) 484 if (s.isValid())
485 resize(s); 485 resize(s);
486 else 486 else
487 resize(DEFAULT_SIZE); 487 resize(DEFAULT_SIZE);
488} 488}
489 489
490void PwM::updateCaption() 490void PwM::updateCaption()
491{ 491{
492 setPlainCaption(curDoc()->getTitle() + " - " PROG_NAME " " PACKAGE_VER); 492 QString s = curDoc()->getTitle();
493 int maxlen = 50;
494 if ( QApplication::desktop()->width() < 640 ) {
495 if ( QApplication::desktop()->width() < 320 )
496 maxlen = 22;
497 else
498 maxlen = 35;
499 }
500 if ( s.length() > maxlen ) {
501 s = "..."+s.right(maxlen -3);
502 }
503 setPlainCaption( s );
493} 504}
494 505
495void PwM::hideEvent(QHideEvent *) 506void PwM::hideEvent(QHideEvent *)
496{ 507{
497 if (isMinimized()) { 508 if (isMinimized()) {
498 if (init->tray()) { 509 if (init->tray()) {
499 forceMinimizeToTray = true; 510 forceMinimizeToTray = true;
500 close(); 511 close();
501 } 512 }
502 int mmlock = conf()->confGlobMinimizeLock(); 513 int mmlock = conf()->confGlobMinimizeLock();
503 switch (mmlock) { 514 switch (mmlock) {
504 case 0: // don't lock anything 515 case 0: // don't lock anything
505 break; 516 break;
506 case 1: {// normal lock 517 case 1: {// normal lock
507 curDoc()->lockAll(true); 518 curDoc()->lockAll(true);
508 break; 519 break;
509 } case 2: {// deep-lock 520 } case 2: {// deep-lock
510 curDoc()->deepLock(); 521 curDoc()->deepLock();
511 break; 522 break;
512 } default: 523 } default:
513 WARN(); 524 WARN();
514 } 525 }
515 } 526 }
516} 527}
517 528
518void PwM::setVirgin(bool v) 529void PwM::setVirgin(bool v)
519{ 530{
520 if (virgin == v) 531 if (virgin == v)
521 return; 532 return;
522 virgin = v; 533 virgin = v;
523 filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVE, !v); 534 filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVE, !v);
524 filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVEAS, !v); 535 filePopup->setItemEnabled(BUTTON_POPUP_FILE_SAVEAS, !v);
525 filePopup->setItemEnabled(BUTTON_POPUP_FILE_EXPORT, !v); 536 filePopup->setItemEnabled(BUTTON_POPUP_FILE_EXPORT, !v);
526 filePopup->setItemEnabled(BUTTON_POPUP_FILE_PRINT, !v); 537 filePopup->setItemEnabled(BUTTON_POPUP_FILE_PRINT, !v);
527 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_EDIT, !v); 538 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_EDIT, !v);
528 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_DEL, !v); 539 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_DEL, !v);
529 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_CHANGEMP, !v); 540 managePopup->setItemEnabled(BUTTON_POPUP_MANAGE_CHANGEMP, !v);
530 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_LOCK, !v); 541 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_LOCK, !v);
531 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_DEEPLOCK, !v); 542 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_DEEPLOCK, !v);
532 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_UNLOCK, !v); 543 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_UNLOCK, !v);
533 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_FIND, !v); 544 viewPopup->setItemEnabled(BUTTON_POPUP_VIEW_FIND, !v);
534 toolBar()->setItemEnabled(BUTTON_TOOL_SAVE, !v); 545 toolBar()->setItemEnabled(BUTTON_TOOL_SAVE, !v);
535 toolBar()->setItemEnabled(BUTTON_TOOL_SAVEAS, !v); 546 toolBar()->setItemEnabled(BUTTON_TOOL_SAVEAS, !v);
536 toolBar()->setItemEnabled(BUTTON_TOOL_PRINT, !v); 547 toolBar()->setItemEnabled(BUTTON_TOOL_PRINT, !v);
537 toolBar()->setItemEnabled(BUTTON_TOOL_EDIT, !v); 548 toolBar()->setItemEnabled(BUTTON_TOOL_EDIT, !v);
538 toolBar()->setItemEnabled(BUTTON_TOOL_DEL, !v); 549 toolBar()->setItemEnabled(BUTTON_TOOL_DEL, !v);
539 toolBar()->setItemEnabled(BUTTON_TOOL_LOCK, !v); 550 toolBar()->setItemEnabled(BUTTON_TOOL_LOCK, !v);
540 toolBar()->setItemEnabled(BUTTON_TOOL_DEEPLOCK, !v); 551 toolBar()->setItemEnabled(BUTTON_TOOL_DEEPLOCK, !v);
541 toolBar()->setItemEnabled(BUTTON_TOOL_UNLOCK, !v); 552 toolBar()->setItemEnabled(BUTTON_TOOL_UNLOCK, !v);
542 toolBar()->setItemEnabled(BUTTON_TOOL_FIND, !v); 553 toolBar()->setItemEnabled(BUTTON_TOOL_FIND, !v);
543} 554}
544 555
545void PwM::new_slot() 556void PwM::new_slot()
546{ 557{
547 init->createMainWnd(); 558 init->createMainWnd();
548} 559}
549 560
550//US ENH 561//US ENH
551void PwM::open_slot() 562void PwM::open_slot()
552{ 563{
553 open_slot(""); 564 open_slot("");
554} 565}
555 566
556void PwM::open_slot(QString fn) 567void PwM::open_slot(QString fn)
557{ 568{
558 openDoc(fn); 569 openDoc(fn);
559} 570}
560 571
561PwMDoc * PwM::openDoc(QString filename, bool openDeepLocked) 572PwMDoc * PwM::openDoc(QString filename, bool openDeepLocked)
562{ 573{
563 if (!isVirgin()) { 574 if (!isVirgin()) {
564 // open the document in a new window. 575 // open the document in a new window.
565 PwM *newInstance = init->createMainWnd(); 576 PwM *newInstance = init->createMainWnd();
566 PwMDoc *newDoc = newInstance->openDoc(filename, openDeepLocked); 577 PwMDoc *newDoc = newInstance->openDoc(filename, openDeepLocked);
567 if (!newDoc) { 578 if (!newDoc) {
568 newInstance->setForceQuit(true); 579 newInstance->setForceQuit(true);
569 delete_and_null(newInstance); 580 delete_and_null(newInstance);
570 } 581 }
571 return newDoc; 582 return newDoc;
572 } 583 }
573 584
574 if (!curDoc()->openDocUi(curDoc(), filename, openDeepLocked)) 585 if (!curDoc()->openDocUi(curDoc(), filename, openDeepLocked))
575 return 0; 586 return 0;
576 showStatMsg(i18n("Successfully opened file.")); 587 showStatMsg(i18n("Successfully opened file."));
577 updateCaption(); 588 updateCaption();
578 setVirgin(false); 589 setVirgin(false);
579 return curDoc(); 590 return curDoc();
580} 591}
581 592
582PwMView * PwM::makeNewListView(PwMDoc *doc) 593PwMView * PwM::makeNewListView(PwMDoc *doc)
583{ 594{
584 PwMView *ret = new PwMView(this, this, doc); 595 PwMView *ret = new PwMView(this, this, doc);
585 ret->setFont(conf()->confGlobEntryFont()); 596 ret->setFont(conf()->confGlobEntryFont());
586 ret->show(); 597 ret->show();
587 return ret; 598 return ret;
588} 599}
589 600
590void PwM::close_slot() 601void PwM::close_slot()
591{ 602{
592 close(); 603 close();
593} 604}
594 605
595void PwM::quitButton_slot() 606void PwM::quitButton_slot()
596{ 607{
597 init->shutdownApp(0); 608 init->shutdownApp(0);
598} 609}
599 610
600void PwM::save_slot() 611void PwM::save_slot()
601{ 612{
602 save(); 613 save();
603} 614}
604 615
605bool PwM::save() 616bool PwM::save()
606{ 617{
607 if (!curDoc()->saveDocUi(curDoc())) 618 if (!curDoc()->saveDocUi(curDoc()))
608 return false; 619 return false;
609 showStatMsg(i18n("Successfully saved data.")); 620 showStatMsg(i18n("Successfully saved data."));
610 updateCaption(); 621 updateCaption();
611 return true; 622 return true;
612} 623}
613 624
614void PwM::saveAs_slot() 625void PwM::saveAs_slot()
615{ 626{
616 saveAs(); 627 saveAs();
617} 628}
618 629
619bool PwM::saveAs() 630bool PwM::saveAs()
620{ 631{
621 if (!curDoc()->saveAsDocUi(curDoc())) 632 if (!curDoc()->saveAsDocUi(curDoc()))
622 return false; 633 return false;
623 showStatMsg(i18n("Successfully saved data.")); 634 showStatMsg(i18n("Successfully saved data."));
624 updateCaption(); 635 updateCaption();
625 return true; 636 return true;
626} 637}
627 638
628//US ENH : changed code to run with older MOC 639//US ENH : changed code to run with older MOC
629void PwM::addPwd_slot() 640void PwM::addPwd_slot()
630{ 641{
631 addPwd_slot1(0, 0); 642 addPwd_slot1(0, 0);
632} 643}
633 644
634void PwM::addPwd_slot1(QString *pw, PwMDoc *_doc) 645void PwM::addPwd_slot1(QString *pw, PwMDoc *_doc)
635{ 646{
636 PwMDoc *doc; 647 PwMDoc *doc;
637 if (_doc) { 648 if (_doc) {
638 doc = _doc; 649 doc = _doc;
639 } else { 650 } else {
640 doc = curDoc(); 651 doc = curDoc();
641 } 652 }
642 PWM_ASSERT(doc); 653 PWM_ASSERT(doc);
643 doc->timer()->getLock(DocTimer::id_autoLockTimer); 654 doc->timer()->getLock(DocTimer::id_autoLockTimer);
644#ifndef PWM_EMBEDDED 655#ifndef PWM_EMBEDDED
645 AddEntryWndImpl w; 656 AddEntryWndImpl w;
646#else 657#else
647 AddEntryWndImpl w(doc, this, "addentrywndimpl"); 658 AddEntryWndImpl w(doc, this, "addentrywndimpl");
648#endif 659#endif
649 w.setCaption( i18n ("Add new password") ); 660 w.setCaption( i18n ("Add new password") );
650 vector<string> catList; 661 vector<string> catList;
651 doc->getCategoryList(&catList); 662 doc->getCategoryList(&catList);
652 unsigned i, size = catList.size(); 663 unsigned i, size = catList.size();
653 for (i = 0; i < size; ++i) { 664 for (i = 0; i < size; ++i) {
654 w.addCategory(catList[i].c_str()); 665 w.addCategory(catList[i].c_str());
655 } 666 }
656 w.setCurrCategory(view->getCurrentCategory()); 667 w.setCurrCategory(view->getCurrentCategory());
657 if (pw) 668 if (pw)
658 w.pwLineEdit->setText(*pw); 669 w.pwLineEdit->setText(*pw);
659 670
660 tryAgain: 671 tryAgain:
661 w.descLineEdit->setFocus(); 672 w.descLineEdit->setFocus();
662 if (w.exec() == 1) 673 if (w.exec() == 1)
663 { 674 {
664 PwMDataItem d; 675 PwMDataItem d;
665 676
666 //US BUG: to initialize all values of curEntr with meaningfulldata, 677 //US BUG: to initialize all values of curEntr with meaningfulldata,
667 // we call clear on it. Reason: Metadata will be uninitialized otherwise. 678 // we call clear on it. Reason: Metadata will be uninitialized otherwise.
668 // another option would be to create a constructor for PwMDataItem 679 // another option would be to create a constructor for PwMDataItem
669 d.clear(true); 680 d.clear(true);
670 681
671 d.desc = w.getDescription().latin1(); 682 d.desc = w.getDescription().latin1();
672 d.name = w.getUsername().latin1(); 683 d.name = w.getUsername().latin1();
673 d.pw = w.getPassword().latin1(); 684 d.pw = w.getPassword().latin1();
674 d.comment = w.getComment().latin1(); 685 d.comment = w.getComment().latin1();
675 d.url = w.getUrl().latin1(); 686 d.url = w.getUrl().latin1();
676 d.launcher = w.getLauncher().latin1(); 687 d.launcher = w.getLauncher().latin1();
677 PwMerror ret = doc->addEntry(w.getCategory(), &d); 688 PwMerror ret = doc->addEntry(w.getCategory(), &d);
678 if (ret == e_entryExists) { 689 if (ret == e_entryExists) {
679 KMessageBox::error(this, 690 KMessageBox::error(this,
680 i18n 691 i18n
681 ("An entry with this \"Description\",\n" 692 ("An entry with this \"Description\",\n"
682 "does already exist.\n" 693 "does already exist.\n"
683 "Please select another description."), 694 "Please select another description."),
684 i18n("entry already exists.")); 695 i18n("entry already exists."));
685 goto tryAgain; 696 goto tryAgain;
686 } else if (ret == e_maxAllowedEntr) { 697 } else if (ret == e_maxAllowedEntr) {
687 KMessageBox::error(this, i18n("The maximum possible number of\nentries" 698 KMessageBox::error(this, i18n("The maximum possible number of\nentries"
688 "has been reached.\nYou can't add more entries."), 699 "has been reached.\nYou can't add more entries."),
689 i18n("maximum number of entries")); 700 i18n("maximum number of entries"));
690 doc->timer()->putLock(DocTimer::id_autoLockTimer); 701 doc->timer()->putLock(DocTimer::id_autoLockTimer);
691 return; 702 return;
692 } 703 }
693 } 704 }
694 setVirgin(false); 705 setVirgin(false);
695 doc->timer()->putLock(DocTimer::id_autoLockTimer); 706 doc->timer()->putLock(DocTimer::id_autoLockTimer);
696} 707}
697 708
698//US ENH : changed code to run with older MOC 709//US ENH : changed code to run with older MOC
699void PwM::editPwd_slot() 710void PwM::editPwd_slot()
700{ 711{
701 editPwd_slot3(0,0,0); 712 editPwd_slot3(0,0,0);
702} 713}
703 714
704void PwM::editPwd_slot1(const QString *category) 715void PwM::editPwd_slot1(const QString *category)
705{ 716{
706 editPwd_slot3(category, 0, 0); 717 editPwd_slot3(category, 0, 0);
707} 718}
708 719
709void PwM::editPwd_slot3(const QString *category, const int *index, 720void PwM::editPwd_slot3(const QString *category, const int *index,
710 PwMDoc *_doc) 721 PwMDoc *_doc)
711{ 722{
712 PwMDoc *doc; 723 PwMDoc *doc;
713 if (_doc) { 724 if (_doc) {
714 doc = _doc; 725 doc = _doc;
715 } else { 726 } else {
716 doc = curDoc(); 727 doc = curDoc();
717 } 728 }
718 PWM_ASSERT(doc); 729 PWM_ASSERT(doc);
719 if (doc->isDocEmpty()) 730 if (doc->isDocEmpty())
720 return; 731 return;
721 if (doc->isDeepLocked()) 732 if (doc->isDeepLocked())
722 return; 733 return;
723 doc->timer()->getLock(DocTimer::id_autoLockTimer); 734 doc->timer()->getLock(DocTimer::id_autoLockTimer);
724 unsigned int curEntryIndex; 735 unsigned int curEntryIndex;
725 if (index) { 736 if (index) {
726 curEntryIndex = *index; 737 curEntryIndex = *index;
727 } else { 738 } else {
728 if (!(view->getCurEntryIndex(&curEntryIndex))) { 739 if (!(view->getCurEntryIndex(&curEntryIndex))) {
729 qDebug("couldn't get index. Maybe we have a binary entry here. "); 740 qDebug("couldn't get index. Maybe we have a binary entry here. ");
730 printDebug("couldn't get index. Maybe we have a binary entry here."); 741 printDebug("couldn't get index. Maybe we have a binary entry here.");
731 doc->timer()->putLock(DocTimer::id_autoLockTimer); 742 doc->timer()->putLock(DocTimer::id_autoLockTimer);
732 return; 743 return;
733 } 744 }
734 } 745 }
735 QString curCategory; 746 QString curCategory;
736 if (category) { 747 if (category) {
737 curCategory = *category; 748 curCategory = *category;
738 } else { 749 } else {
739 curCategory = view->getCurrentCategory(); 750 curCategory = view->getCurrentCategory();
740 } 751 }
741 PwMDataItem currItem; 752 PwMDataItem currItem;
742 if (!doc->getEntry(curCategory, curEntryIndex, &currItem, true)) { 753 if (!doc->getEntry(curCategory, curEntryIndex, &currItem, true)) {
743 doc->timer()->putLock(DocTimer::id_autoLockTimer); 754 doc->timer()->putLock(DocTimer::id_autoLockTimer);
744 return; 755 return;
745 } 756 }
746 BUG_ON(currItem.binary); 757 BUG_ON(currItem.binary);
747 AddEntryWndImpl w(doc); 758 AddEntryWndImpl w(doc);
748 w.setCaption( i18n ("Edit password") ); 759 w.setCaption( i18n ("Edit password") );
749 vector<string> catList; 760 vector<string> catList;
750 doc->getCategoryList(&catList); 761 doc->getCategoryList(&catList);
751 unsigned i, size = catList.size(); 762 unsigned i, size = catList.size();
752 for (i = 0; i < size; ++i) { 763 for (i = 0; i < size; ++i) {
753 w.addCategory(catList[i].c_str()); 764 w.addCategory(catList[i].c_str());
754 } 765 }
755 w.setCurrCategory(curCategory); 766 w.setCurrCategory(curCategory);
756 w.setDescription(currItem.desc.c_str()); 767 w.setDescription(currItem.desc.c_str());
757 w.setUsername(currItem.name.c_str()); 768 w.setUsername(currItem.name.c_str());
758 w.setPassword(currItem.pw.c_str()); 769 w.setPassword(currItem.pw.c_str());
759 w.setUrl(currItem.url.c_str()); 770 w.setUrl(currItem.url.c_str());
760 w.setLauncher(currItem.launcher.c_str()); 771 w.setLauncher(currItem.launcher.c_str());
761 w.setComment(currItem.comment.c_str()); 772 w.setComment(currItem.comment.c_str());
762 w.descLineEdit->setFocus(); 773 w.descLineEdit->setFocus();
763 if (w.exec() == 1) { 774 if (w.exec() == 1) {
764 currItem.desc = w.getDescription().latin1(); 775 currItem.desc = w.getDescription().latin1();
765 currItem.name = w.getUsername().latin1(); 776 currItem.name = w.getUsername().latin1();
766 currItem.pw = w.getPassword().latin1(); 777 currItem.pw = w.getPassword().latin1();
767 currItem.comment = w.getComment().latin1(); 778 currItem.comment = w.getComment().latin1();
768 currItem.url = w.getUrl().latin1(); 779 currItem.url = w.getUrl().latin1();
769 currItem.launcher = w.getLauncher().latin1(); 780 currItem.launcher = w.getLauncher().latin1();
770 if (!doc->editEntry(curCategory, w.getCategory(), 781 if (!doc->editEntry(curCategory, w.getCategory(),
771 curEntryIndex, &currItem)) { 782 curEntryIndex, &currItem)) {
772 KMessageBox::error(this, 783 KMessageBox::error(this,
773 i18n("Couldn't edit the entry.\n" 784 i18n("Couldn't edit the entry.\n"
774 "Maybe you changed the category and\n" 785 "Maybe you changed the category and\n"
775 "this entry is already present\nin the new " 786 "this entry is already present\nin the new "
776 "category?"), 787 "category?"),
777 i18n("couldn't edit entry.")); 788 i18n("couldn't edit entry."));
778 doc->timer()->putLock(DocTimer::id_autoLockTimer); 789 doc->timer()->putLock(DocTimer::id_autoLockTimer);
779 return; 790 return;
780 } 791 }
781 } 792 }
782 doc->timer()->putLock(DocTimer::id_autoLockTimer); 793 doc->timer()->putLock(DocTimer::id_autoLockTimer);
783} 794}
784 795
785void PwM::deletePwd_slot() 796void PwM::deletePwd_slot()
786{ 797{
787 PWM_ASSERT(curDoc()); 798 PWM_ASSERT(curDoc());
788 if (curDoc()->isDocEmpty()) 799 if (curDoc()->isDocEmpty())
789 return; 800 return;
790 if (curDoc()->isDeepLocked()) 801 if (curDoc()->isDeepLocked())
791 return; 802 return;
792 curDoc()->timer()->getLock(DocTimer::id_autoLockTimer); 803 curDoc()->timer()->getLock(DocTimer::id_autoLockTimer);
793 unsigned int curEntryIndex = 0; 804 unsigned int curEntryIndex = 0;
794 if (!(view->getCurEntryIndex(&curEntryIndex))) { 805 if (!(view->getCurEntryIndex(&curEntryIndex))) {
795 printDebug("couldn't get index"); 806 printDebug("couldn't get index");
796 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 807 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
797 return; 808 return;
798 } 809 }
799 810
800 PwMDataItem currItem; 811 PwMDataItem currItem;
801 QString curCategory = view->getCurrentCategory(); 812 QString curCategory = view->getCurrentCategory();
802 if (!curDoc()->getEntry(curCategory, curEntryIndex, &currItem)) { 813 if (!curDoc()->getEntry(curCategory, curEntryIndex, &currItem)) {
803 printDebug("couldn't get entry"); 814 printDebug("couldn't get entry");
804 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 815 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
805 return; 816 return;
806 } 817 }
807 if (KMessageBox:: 818 if (KMessageBox::
808 questionYesNo(this, 819 questionYesNo(this,
809 i18n 820 i18n
810 ("Do you really want to delete\nthe selected entry") + 821 ("Do you really want to delete\nthe selected entry") +
811 " \n\"" + QString(currItem.desc.c_str()) 822 " \n\"" + QString(currItem.desc.c_str())
812 + "\" ?", i18n("delete?")) 823 + "\" ?", i18n("delete?"))
813 == KMessageBox::Yes) { 824 == KMessageBox::Yes) {
814 825
815 curDoc()->delEntry(curCategory, curEntryIndex); 826 curDoc()->delEntry(curCategory, curEntryIndex);
816 } 827 }
817 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer); 828 curDoc()->timer()->putLock(DocTimer::id_autoLockTimer);
818} 829}
819 830
820void PwM::changeMasterPwd_slot() 831void PwM::changeMasterPwd_slot()
821{ 832{
822 PWM_ASSERT(curDoc()); 833 PWM_ASSERT(curDoc());
823 curDoc()->changeCurrentPw(); 834 curDoc()->changeCurrentPw();
824} 835}
825 836
826void PwM::lockWnd_slot() 837void PwM::lockWnd_slot()
827{ 838{
828 PWM_ASSERT(curDoc()); 839 PWM_ASSERT(curDoc());
829 curDoc()->lockAll(true); 840 curDoc()->lockAll(true);
830} 841}
831 842
832void PwM::deepLockWnd_slot() 843void PwM::deepLockWnd_slot()
833{ 844{
834 PWM_ASSERT(curDoc()); 845 PWM_ASSERT(curDoc());
835 curDoc()->deepLock(); 846 curDoc()->deepLock();
836} 847}
837 848
838void PwM::unlockWnd_slot() 849void PwM::unlockWnd_slot()
839{ 850{
840 PWM_ASSERT(curDoc()); 851 PWM_ASSERT(curDoc());
841 curDoc()->lockAll(false); 852 curDoc()->lockAll(false);
842} 853}
843 854
844void PwM::config_slot() 855void PwM::config_slot()
845{ 856{
846 int oldStyle = conf()->confWndMainViewStyle(); 857 int oldStyle = conf()->confWndMainViewStyle();
847#ifdef PWM_EMBEDDED 858#ifdef PWM_EMBEDDED
848 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"pwmconfigdialog", true ); 859 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"pwmconfigdialog", true );
849 860
850 KCMPwmConfig* pwmcfg = new KCMPwmConfig( ConfigureDialog->getNewVBoxPage(i18n( "PwManager")) , "KCMPwmConfig" ); 861 KCMPwmConfig* pwmcfg = new KCMPwmConfig( ConfigureDialog->getNewVBoxPage(i18n( "PwManager")) , "KCMPwmConfig" );
851 ConfigureDialog->addModule(pwmcfg ); 862 ConfigureDialog->addModule(pwmcfg );
852 863
853 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" ); 864 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" );
854 ConfigureDialog->addModule(kdelibcfg ); 865 ConfigureDialog->addModule(kdelibcfg );
855 866
856#ifndef DESKTOP_VERSION 867#ifndef DESKTOP_VERSION
857 ConfigureDialog->showMaximized(); 868 ConfigureDialog->showMaximized();
858#endif 869#endif
859 if ( ConfigureDialog->exec() ) 870 if ( ConfigureDialog->exec() )
860 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") ); 871 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") );
861 delete ConfigureDialog; 872 delete ConfigureDialog;
862 873
863#else //PWM_EMBEDDED 874#else //PWM_EMBEDDED
864 // display the configuration window (modal mode) 875 // display the configuration window (modal mode)
865 if (!conf()->showConfWnd(this)) 876 if (!conf()->showConfWnd(this))
866 return; 877 return;
867#endif 878#endif
868 879
869 int newStyle = conf()->confWndMainViewStyle(); 880 int newStyle = conf()->confWndMainViewStyle();
870 // reinitialize tray 881 // reinitialize tray
871 init->initTray(); 882 init->initTray();
872 // reinitialize KWallet emulation 883 // reinitialize KWallet emulation
873 init->initKWalletEmu(); 884 init->initKWalletEmu();
874 885
875 PwMDocList *_dl = PwMDoc::getOpenDocList(); 886 PwMDocList *_dl = PwMDoc::getOpenDocList();
876 const vector<PwMDocList::listItem> *dl = _dl->getList(); 887 const vector<PwMDocList::listItem> *dl = _dl->getList();