summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-02-16 22:38:07 (UTC)
committer zautrix <zautrix>2005-02-16 22:38:07 (UTC)
commit0eca506b6b4c7d7ef52bcecc5ad64193698dc3f3 (patch) (unidiff)
tree5bc6d924f1a71cc04cb8f1ee0001fce7cde0fa71
parentf33a37a0f7c9b37cfea1346ed373ce1c27c1d6ba (diff)
downloadkdepimpi-0eca506b6b4c7d7ef52bcecc5ad64193698dc3f3.zip
kdepimpi-0eca506b6b4c7d7ef52bcecc5ad64193698dc3f3.tar.gz
kdepimpi-0eca506b6b4c7d7ef52bcecc5ad64193698dc3f3.tar.bz2
added today but to datepicker
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt2
-rw-r--r--libkdepim/kdatepicker.cpp12
-rw-r--r--libkdepim/kdatepicker.h2
3 files changed, 15 insertions, 1 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 3d8edfc..62c8447 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,967 +1,969 @@
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.8 ************ 3********** VERSION 2.0.8 ************
4 4
5Fixed a problem in dependency info in the ipk files for the Zaurus. 5Fixed a problem in dependency info in the ipk files for the Zaurus.
6 6
7Added 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. 7Added 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.
8 8
9Added a "go today" button to the datepicker.
10
9 11
10********** VERSION 2.0.7 ************ 12********** VERSION 2.0.7 ************
11 13
12Added global application font settings 14Added global application font settings
13(for all KDE-Pim/Pi apps) to the general settings. 15(for all KDE-Pim/Pi apps) to the general settings.
14 16
15Fixed a problem in OM/Pi when trying to login to some IMAP servers 17Fixed a problem in OM/Pi when trying to login to some IMAP servers
16(like the IMAP server of Apple: mail.mac.com ) 18(like the IMAP server of Apple: mail.mac.com )
17 19
18Added recurring todos to KO/Pi. 20Added recurring todos to KO/Pi.
19 21
20 22
21********** VERSION 2.0.6 ************ 23********** VERSION 2.0.6 ************
22 24
23Some bugfixes in the pi-sync mode. 25Some bugfixes in the pi-sync mode.
24Added German translation for pi-sync mode. 26Added German translation for pi-sync mode.
25 27
26KO/Pi: 28KO/Pi:
27Made the todolist using alternate background. 29Made the todolist using alternate background.
28 30
29Other minor fixes in KO/Pi. 31Other minor fixes in KO/Pi.
30 32
31 33
32********** VERSION 2.0.5 ************ 34********** VERSION 2.0.5 ************
33 35
34Bugfixes in KO/Pi. 36Bugfixes in KO/Pi.
35 37
36********** VERSION 2.0.4 ************ 38********** VERSION 2.0.4 ************
37 39
38KO/Pi: 40KO/Pi:
39Fixed problem loading translations for summary/location edit boxes in event/todo editor. 41Fixed problem loading translations for summary/location edit boxes in event/todo editor.
40 42
41Added a general "select week number" to the toolbar. 43Added a general "select week number" to the toolbar.
42 44
43Fixed some small problem of the new features introduced in version 2.0.3. 45Fixed some small problem of the new features introduced in version 2.0.3.
44 46
45Made it possible to specify one specific category as category color, 47Made it possible to specify one specific category as category color,
46if more than one categories are selected. 48if more than one categories are selected.
47 49
48Fixed a bug in saving colors for categories with non-ascii characters. 50Fixed a bug in saving colors for categories with non-ascii characters.
49(Like, e.g. German Umlauts). 51(Like, e.g. German Umlauts).
50Propably you have to set your colors again for those categories. 52Propably you have to set your colors again for those categories.
51 53
52 54
53********** VERSION 2.0.3 ************ 55********** VERSION 2.0.3 ************
54 56
55KO/Pi: 57KO/Pi:
56Added feature for changing alarm settings for many items at once: 58Added feature for changing alarm settings for many items at once:
57Open list view (or search dialog), select the desired items and choose in 59Open list view (or search dialog), select the desired items and choose in
58the popup menu: Set alarm for selected... 60the popup menu: Set alarm for selected...
59 61
60Added to the event/todo viewer the option to send an email to 62Added to the event/todo viewer the option to send an email to
61all attendees or all selected (with RSVP) attendees. 63all attendees or all selected (with RSVP) attendees.
62 64
63Made the week-month mode changing in month view faster. 65Made the week-month mode changing in month view faster.
64 66
65Made month view better useable with keyboard. 67Made month view better useable with keyboard.
66Now TAB key jumps to next cell with an event/todo. 68Now TAB key jumps to next cell with an event/todo.
67Scroll in cell with coursor keys, scroll in time (next week) with 69Scroll in cell with coursor keys, scroll in time (next week) with
68Shift/Control + coursorkeys. 70Shift/Control + coursorkeys.
69 71
70Fixed bug that the todo view flat mode was reset after first view update. 72Fixed bug that the todo view flat mode was reset after first view update.
71 73
72If a todo is displayed closed in the todo view, 74If a todo is displayed closed in the todo view,
73it is now displayed in overdue/due today color depending on the subtodos overdue/due today properties. 75it is now displayed in overdue/due today color depending on the subtodos overdue/due today properties.
74 76
75Added info about the numbers of years to the caption (title) information about a birthday event. 77Added info about the numbers of years to the caption (title) information about a birthday event.
76 78
77Made completion date in todo editor editable. 79Made completion date in todo editor editable.
78 80
79Added possibility to save/load templates for journals. 81Added possibility to save/load templates for journals.
80(Which is just a simple "save text to file" or "insert text from file". 82(Which is just a simple "save text to file" or "insert text from file".
81 83
82********** VERSION 2.0.2 ************ 84********** VERSION 2.0.2 ************
83 85
84KO/Pi: 86KO/Pi:
85Fixed the layout problem of the day label buttons 87Fixed the layout problem of the day label buttons
86of the agenda view introduced in version 2.0.1. 88of the agenda view introduced in version 2.0.1.
87 89
88Added WhatsThis support for the todo view and the list view. 90Added WhatsThis support for the todo view and the list view.
89 91
90Added a quite useful feature to the montview. 92Added a quite useful feature to the montview.
91Just click on the week numbers on the left. 93Just click on the week numbers on the left.
92And in the top right corner of month view/agenda view 94And in the top right corner of month view/agenda view
93there is now a "week number quick selector". 95there is now a "week number quick selector".
94(Click on the black triangle). 96(Click on the black triangle).
95 97
96Made the quite difficult timezone change in KO/Pi easy. 98Made the quite difficult timezone change in KO/Pi easy.
97 99
98OM/Pi: 100OM/Pi:
99Fixed too small icons on desktop. 101Fixed too small icons on desktop.
100Fixed non visible icons in mainwindow on Z with fastload enabled. 102Fixed non visible icons in mainwindow on Z with fastload enabled.
101Added signature file setting to smtp account config. 103Added signature file setting to smtp account config.
102And the signature can be edited and saved in the edit mail dialog. 104And the signature can be edited and saved in the edit mail dialog.
103That does mean: 105That does mean:
104Simply edit the signature for the selected smtp account in the 106Simply edit the signature for the selected smtp account in the
105edit new mail dialog and press the "save signature" button there. 107edit new mail dialog and press the "save signature" button there.
106Then the signature is saved to the file specified in the smtp account settings. 108Then the signature is saved to the file specified in the smtp account settings.
107If there is no file specified, it is saved automatically to the file 109If there is no file specified, it is saved automatically to the file
108kdepim/apps/kopiemail/<accountname>.sig. 110kdepim/apps/kopiemail/<accountname>.sig.
109 111
110 112
111 113
112********** VERSION 2.0.1 ************ 114********** VERSION 2.0.1 ************
113 115
114Oooops ... I forgot to test on the Zaurus 5500 ... 116Oooops ... I forgot to test on the Zaurus 5500 ...
115 117
116Fixed many problems of new (english) strings (and german translations) 118Fixed many problems of new (english) strings (and german translations)
117introduced in the latest versions, where the text was not fitting on the 119introduced in the latest versions, where the text was not fitting on the
118240x320 display of the Zaurus 5500. 120240x320 display of the Zaurus 5500.
119 121
120KO/Pi: 122KO/Pi:
121Added a popup menu ( press pen and hold to get popup ) to the agenda view 123Added a popup menu ( press pen and hold to get popup ) to the agenda view
122with many useful items (add event/todo, show next week, two weeks, month, journal). 124with many useful items (add event/todo, show next week, two weeks, month, journal).
123 125
124Added items to the todolist popup menu for: 126Added items to the todolist popup menu for:
125Display all opened, all closed or all todos flat. 127Display all opened, all closed or all todos flat.
126The "flat" view makes is possible to sort all todos after ,e.g., prio or date. 128The "flat" view makes is possible to sort all todos after ,e.g., prio or date.
127Made the reparenting of todos on the desktop possible via Drag&Drop. 129Made the reparenting of todos on the desktop possible via Drag&Drop.
128Fixed several bugs in setting the completed datetime for todos. 130Fixed several bugs in setting the completed datetime for todos.
129Added info about completed datetime of todos to the todo viewer. 131Added info about completed datetime of todos to the todo viewer.
130Now displaying a completed todo (with completed datetime set) in the agenda view 132Now displaying a completed todo (with completed datetime set) in the agenda view
131at the time of the completion. Such that now it is possible to see in the agenda view 133at the time of the completion. Such that now it is possible to see in the agenda view
132when what todo was completed. 134when what todo was completed.
133Fixed behaviour of automatic setting completion of todos with sub-todos/parent todos. 135Fixed behaviour of automatic setting completion of todos with sub-todos/parent todos.
134Now the behaviour is: 136Now the behaviour is:
135Setting a parent to complete sets all (sub)childs to complete. 137Setting a parent to complete sets all (sub)childs to complete.
136Setting a parent to uncomplete does not change the childs. 138Setting a parent to uncomplete does not change the childs.
137Setting a child to uncomplete sets all parent to uncomplete. 139Setting a child to uncomplete sets all parent to uncomplete.
138Setting a child to complete does not change the parents. 140Setting a child to complete does not change the parents.
139 141
140Smart updating and double buffering of the daymatrix. 142Smart updating and double buffering of the daymatrix.
141Showing holidays in the day matrix. 143Showing holidays in the day matrix.
142Many other small performance updates. 144Many other small performance updates.
143 145
144Made day labels in agenda clickable. By clicking a label, the day is displayed in single day mode. 146Made day labels in agenda clickable. By clicking a label, the day is displayed in single day mode.
145 147
146Now the translation file usertranslation.txt is supposed to be in utf8 format. 148Now the translation file usertranslation.txt is supposed to be in utf8 format.
147If 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. 149If 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.
148 150
149 151
150********** VERSION 2.0.0 ************ 152********** VERSION 2.0.0 ************
151 153
152Stable release 2.0.0! 154Stable release 2.0.0!
153 155
154KO/Pi: 156KO/Pi:
155Fixed problem in edit dialog recreation at startup. 157Fixed problem in edit dialog recreation at startup.
156Made "toggle view*" menu items enabled context sensitive. 158Made "toggle view*" menu items enabled context sensitive.
157Changed agenda size menu to items 1-10. 159Changed agenda size menu to items 1-10.
158Made it possible to change agenda size quickly by pressing mouse on timelabels in agenda view and move mouse up/down. 160Made it possible to change agenda size quickly by pressing mouse on timelabels in agenda view and move mouse up/down.
159Usebility enhancements in the KO/Pi menus. 161Usebility enhancements in the KO/Pi menus.
160Birthday import now adds year to summary. 162Birthday import now adds year to summary.
161What's Next view shows age in years for birthday. 163What's Next view shows age in years for birthday.
162 164
163OM/Pi: 165OM/Pi:
164Added three info lines to display subject, from and to of selected mails. 166Added three info lines to display subject, from and to of selected mails.
165 167
166KA/Pi: 168KA/Pi:
167Fixed jump bar behaviour on Zaurus. 169Fixed jump bar behaviour on Zaurus.
168Now KA/Pi search field supports searching for a range of starting characters. 170Now KA/Pi search field supports searching for a range of starting characters.
169E.g. to search for all contact beginning with b to n, type 171E.g. to search for all contact beginning with b to n, type
170b-n 172b-n
171in the search field. 173in the search field.
172 174
173********** VERSION 1.9.20 ************ 175********** VERSION 1.9.20 ************
174 176
175KO/Pi: 177KO/Pi:
176Added for the "dislplay one day" agenda mode 178Added for the "dislplay one day" agenda mode
177info in the caption and in the day lables: 179info in the caption and in the day lables:
178Now it is displayed, if the selected day is from "day before yesterday" 180Now it is displayed, if the selected day is from "day before yesterday"
179to "day after tomorrow". 181to "day after tomorrow".
180Made it possible to delete a Todo, which has sub-todos. 182Made it possible to delete a Todo, which has sub-todos.
181Fixed two small problems in the todo view. 183Fixed two small problems in the todo view.
182Added missing German translation for filter edit and print dialog. 184Added missing German translation for filter edit and print dialog.
183Made search dialog closeable by cancel key. 185Made search dialog closeable by cancel key.
184 186
185Made it possible to select in the date picker the (ligt grey ) 187Made it possible to select in the date picker the (ligt grey )
186dates of the prev./next month with the mouse. 188dates of the prev./next month with the mouse.
187 189
188OM/Pi: 190OM/Pi:
189"Delete mail" icon in main window now deletes all selected mails. 191"Delete mail" icon in main window now deletes all selected mails.
190Fixed the problem, that the state flag of imap mails was ignored. 192Fixed the problem, that the state flag of imap mails was ignored.
191Now mails with "FLAG_SEEN" on the imap server get no icon in the list view 193Now mails with "FLAG_SEEN" on the imap server get no icon in the list view
192to indecate that they are already seen. 194to indecate that they are already seen.
193Fixed the problem that the body of some mails was not displayed in the 195Fixed the problem that the body of some mails was not displayed in the
194mail viewer when fetching them from the imap server directly to read them. 196mail viewer when fetching them from the imap server directly to read them.
195Made it (configurable) possible to show the "To:" field in the list view. 197Made it (configurable) possible to show the "To:" field in the list view.
196Added to the mail viewer the option "View Source" to make it possible to see the raw mail data. 198Added to the mail viewer the option "View Source" to make it possible to see the raw mail data.
197Added a "Download Mail" button to the mail viewer to quickly download the viewed mail to the 199Added a "Download Mail" button to the mail viewer to quickly download the viewed mail to the
198local storage folder (specified in account settings) of the account of the mail. 200local storage folder (specified in account settings) of the account of the mail.
199Removed some memory leaks in OM/Pi. 201Removed some memory leaks in OM/Pi.
200 202
201 203
202********** VERSION 1.9.19 ************ 204********** VERSION 1.9.19 ************
203 205
204Added a lot of missing translations to KA/Pi, 206Added a lot of missing translations to KA/Pi,
205Added some missing translations to KO/Pi and OM/Pi. 207Added some missing translations to KO/Pi and OM/Pi.
206 208
207Fixed some minor problems in KA/Pi + KO/Pi. 209Fixed some minor problems in KA/Pi + KO/Pi.
208 210
209Fixed a crash when closing PwM/Pi. 211Fixed a crash when closing PwM/Pi.
210Added German translation for PwM/Pi. 212Added German translation for PwM/Pi.
211 213
212Made view change and Month View update faster in KO/Pi. 214Made view change and Month View update faster in KO/Pi.
213 215
214 216
215********** VERSION 1.9.18 ************ 217********** VERSION 1.9.18 ************
216 218
217FYI: The VERSION 1.9.17 was a testing release only. 219FYI: The VERSION 1.9.17 was a testing release only.
218Please read the changelog of VERSION 1.9.17 as well. 220Please read the changelog of VERSION 1.9.17 as well.
219 221
220Cleaned up the syncing config dialog. 222Cleaned up the syncing config dialog.
221Added sync config options for date range for events. 223Added sync config options for date range for events.
222Added sync config options for filters on incoming data. 224Added sync config options for filters on incoming data.
223Added sync config options for filters on outgoing data. 225Added sync config options for filters on outgoing data.
224Please read the updated SyncHowTo about the new filter settings. 226Please read the updated SyncHowTo about the new filter settings.
225These filter settings make it now possible to sync with shared 227These filter settings make it now possible to sync with shared
226calendars without writing back private or confidential data 228calendars without writing back private or confidential data
227(via the outgoing filters). 229(via the outgoing filters).
228To sync only with particular parts of a shared calendar, 230To sync only with particular parts of a shared calendar,
229the incoming filter settings can be used. 231the incoming filter settings can be used.
230An example can be found in the SyncHowTo. 232An example can be found in the SyncHowTo.
231Same for shared addressbooks. 233Same for shared addressbooks.
232 234
233Added a setting for the global kdepim data storage. 235Added a setting for the global kdepim data storage.
234Usually the data is stored in (yourhomedir/kdepim). 236Usually the data is stored in (yourhomedir/kdepim).
235Now you can set in the Global config dialog TAB, subTAB "Data storage path" 237Now you can set in the Global config dialog TAB, subTAB "Data storage path"
236a directory where all the kdepim data is stored. 238a directory where all the kdepim data is stored.
237That makes it easy to save all kdepim data on a SD card on the Z, for example. 239That makes it easy to save all kdepim data on a SD card on the Z, for example.
238 240
239KO/Pi: 241KO/Pi:
240The timeedit input has a pulldown list for times. 242The timeedit input has a pulldown list for times.
241If opened, this pulldown list should now has the right time highlighted. 243If opened, this pulldown list should now has the right time highlighted.
242Added the possibility to exclude events/todos/journals in a filter. 244Added the possibility to exclude events/todos/journals in a filter.
243You should exclude journals, if you do not want them to sync with a public calendar. 245You should exclude journals, if you do not want them to sync with a public calendar.
244 246
245KA/Pi: 247KA/Pi:
246Added the possibility to in/exclude public/private/confidential contacts to a filter. 248Added the possibility to in/exclude public/private/confidential contacts to a filter.
247If 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 ... 249If 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 ...
248Added printing of card view and details view on desktop. 250Added printing of card view and details view on desktop.
249Printing of list view is not working... 251Printing of list view is not working...
250Added button for removing pictures in contact editor. 252Added button for removing pictures in contact editor.
251Parsing data fix of KA/Pi version 1.9.17. 253Parsing data fix of KA/Pi version 1.9.17.
252Fixed the "parse name automatically" problem of KA/Pi version 1.9.17. 254Fixed the "parse name automatically" problem of KA/Pi version 1.9.17.
253Fixed some syncing merging problems. 255Fixed some syncing merging problems.
254 256
255 257
256********** VERSION 1.9.17 ************ 258********** VERSION 1.9.17 ************
257 259
258KO/Pi: 260KO/Pi:
259Fixed that tooltips were not updated after moving an item in agenda view. 261Fixed that tooltips were not updated after moving an item in agenda view.
260Fixed a bug in sorting start date for recurring events in list view. 262Fixed a bug in sorting start date for recurring events in list view.
261Changed the left button in todo viewer from "Agenda" to "Set completed". 263Changed the left button in todo viewer from "Agenda" to "Set completed".
262This 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. 264This 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.
263Added more info in the todo viewer: Startdate, parent/sub todos. 265Added more info in the todo viewer: Startdate, parent/sub todos.
264 266
265 267
266KA/Pi: 268KA/Pi:
267All fields search does now actually search all the (possible) fields, 269All fields search does now actually search all the (possible) fields,
268not only those listed in the contact list. 270not only those listed in the contact list.
269Made is possible to inline a picture in a vcard on the Z. 271Made is possible to inline a picture in a vcard on the Z.
270This was only possible on the desktop, now is it possible on the Z as well. 272This was only possible on the desktop, now is it possible on the Z as well.
271Fixed of missing save settings after filter configuration. 273Fixed of missing save settings after filter configuration.
272Made saving of addressbook much faster. 274Made saving of addressbook much faster.
273Fixed extension widget layout problem. 275Fixed extension widget layout problem.
274Fixed saving of default formatted name settings. 276Fixed saving of default formatted name settings.
275Fixed formatted name handling in edit dialog. 277Fixed formatted name handling in edit dialog.
276Added an option for changing formatted names of many contacts 278Added an option for changing formatted names of many contacts
277(menu: File - Change - Set formatted name). 279(menu: File - Change - Set formatted name).
278 280
279QWhatsThis was not working on the Z ( only black rectangle was shown). 281QWhatsThis was not working on the Z ( only black rectangle was shown).
280This is Fixed. 282This is Fixed.
281 283
282KDE-Sync: 284KDE-Sync:
283Now readonly KDE resources are synced as well. 285Now readonly KDE resources are synced as well.
284(They are not changed in KDE itself, of course). 286(They are not changed in KDE itself, of course).
285 287
286 288
287 289
288********** VERSION 1.9.16 ************ 290********** VERSION 1.9.16 ************
289 291
290KO/Pi: 292KO/Pi:
291Fixed search dialog size on Z 6000 (480x640 display). 293Fixed search dialog size on Z 6000 (480x640 display).
292Added setting to hide/show time in agenda items. 294Added setting to hide/show time in agenda items.
293Added setting to hide not running todos in todo view. 295Added setting to hide not running todos in todo view.
294Added columns for start date/time in todo view. 296Added columns for start date/time in todo view.
295Replaced the solid half-hour lines in agenda view by dot lines. 297Replaced the solid half-hour lines in agenda view by dot lines.
296Added possibility of printing the What's Next View on the desktop 298Added possibility of printing the What's Next View on the desktop
297(i.e. Windows and Linux). 299(i.e. Windows and Linux).
298Fixed a crash in KO/Pi when starting KO/Pi with What's Next view. 300Fixed a crash in KO/Pi when starting KO/Pi with What's Next view.
299Added tooltips in month view.(Tooltips only available on desktop) 301Added tooltips in month view.(Tooltips only available on desktop)
300 302
301Fixed a strange problem in KO/Pi alarm applet. 303Fixed a strange problem in KO/Pi alarm applet.
302Did not find the actual problem, 304Did not find the actual problem,
303such that now Qtopia reboots again if deinstalling the alarm applet. 305such that now Qtopia reboots again if deinstalling the alarm applet.
304But the alarm applet should work again. 306But the alarm applet should work again.
305 307
306KA/Pi: 308KA/Pi:
307Fixed the problem, that internal pictures were not saved. 309Fixed the problem, that internal pictures were not saved.
308 310
309Fixed a problem in the pi-sync mode by increasing the timeout for data transfer from 20 seconds to 5 minutes. 311Fixed a problem in the pi-sync mode by increasing the timeout for data transfer from 20 seconds to 5 minutes.
310 312
311Fixed some minor problems. (Like word wrap in help text windows). 313Fixed some minor problems. (Like word wrap in help text windows).
312 314
313Fixed a compiling problem in microkde/kresources. 315Fixed a compiling problem in microkde/kresources.
314 316
315KO/Pi is using zdbat (renamed to db2file) for syncing with Sharp DTM. 317KO/Pi is using zdbat (renamed to db2file) for syncing with Sharp DTM.
316This version now includes zdbat 1.0.0 (old version was zdbat 0.2.9) 318This version now includes zdbat 1.0.0 (old version was zdbat 0.2.9)
317such that now syncing KO/Pi with Sharp DTM should work on the 319such that now syncing KO/Pi with Sharp DTM should work on the
318Zaurus C 3000 model. 320Zaurus C 3000 model.
319 321
320********** VERSION 1.9.15 ************ 322********** VERSION 1.9.15 ************
321 323
322Usebilty enhancements in KO/Pi: 324Usebilty enhancements in KO/Pi:
323When clicking on the date in a month view cell, the day view is shown. 325When clicking on the date in a month view cell, the day view is shown.
324Old behaviour was, that the "new event" dialog popped up. 326Old behaviour was, that the "new event" dialog popped up.
325 327
326Added a one step "undo delete" in KO/Pi (Accessable in the "Action" menu). 328Added a one step "undo delete" in KO/Pi (Accessable in the "Action" menu).
327That means, you can restore the latest 329That means, you can restore the latest
328event/todo/journal you have deleted. 330event/todo/journal you have deleted.
329A journal is deleted, if you clear all the text of the journal. 331A journal is deleted, if you clear all the text of the journal.
330 332
331Fixed the bug of the editor dialogs in KO/Pi of version 1.9.14. 333Fixed the bug of the editor dialogs in KO/Pi of version 1.9.14.
332 334
333KA/Pi starting in 480x640 resolution: 335KA/Pi starting in 480x640 resolution:
334Hide the filter action in toolbar 336Hide the filter action in toolbar
335and added icons for undo/delete/redo in toolbar. 337and added icons for undo/delete/redo in toolbar.
336 338
337Change in OM/Pi ViewMail dialog: 339Change in OM/Pi ViewMail dialog:
338When clicking on the "delete" icon the mail is deleted after confirmation as usual. 340When clicking on the "delete" icon the mail is deleted after confirmation as usual.
339But the edit dialog is not closed as before, now the next mail in the folder is shown automatically (if there is any). 341But the edit dialog is not closed as before, now the next mail in the folder is shown automatically (if there is any).
340 342
341Fixed a crash when deleting mail-accounts in OM/Pi. 343Fixed a crash when deleting mail-accounts in OM/Pi.
342 344
343 345
344********** VERSION 1.9.14 ************ 346********** VERSION 1.9.14 ************
345 347
346Fixed some problems with the dialog sizes when switching 348Fixed some problems with the dialog sizes when switching
347portrait/landscape mode on 640x480 PDA display. 349portrait/landscape mode on 640x480 PDA display.
348 350
349Fixed some other small bugs in KA/Pi KO/Pi and OM/Pi and PwM/Pi. 351Fixed some other small bugs in KA/Pi KO/Pi and OM/Pi and PwM/Pi.
350 352
351Fixed an ugly bug in KOpieMail: 353Fixed an ugly bug in KOpieMail:
352KOpieMail was not able to write files (mails) to MSDOS file system, 354KOpieMail was not able to write files (mails) to MSDOS file system,
353like on an usual preformatted SD card. That should work now. 355like on an usual preformatted SD card. That should work now.
354To save your mail data on the Sd card do the following: 356To save your mail data on the Sd card do the following:
355Create a dir on the SD card: 357Create a dir on the SD card:
356mkdir /mnt/card/localmail 358mkdir /mnt/card/localmail
357Go to your home dir: 359Go to your home dir:
358cd 360cd
359Go to kopiemail data storage dir: 361Go to kopiemail data storage dir:
360cd kdepim/apps/kopiemail 362cd kdepim/apps/kopiemail
361Create a symlink to the SD card: 363Create a symlink to the SD card:
362ls -s /mnt/card/localmail 364ls -s /mnt/card/localmail
363Now KOpieMail will store all mails on the SD card. 365Now KOpieMail will store all mails on the SD card.
364 366
365KO/Pi Monthview: 367KO/Pi Monthview:
366Now "Go to Today" selects the current month from day 1-end, 368Now "Go to Today" selects the current month from day 1-end,
367not the current date + some days. 369not the current date + some days.
368I.e. "Go to Today" shows now always 370I.e. "Go to Today" shows now always
369the current month with first day of month in the first row. 371the current month with first day of month in the first row.
370 372
371Added missing German translation. 373Added missing German translation.
372 374
373Fixed icons of executeable on Wintendo. 375Fixed icons of executeable on Wintendo.
374 376
375Added a "Show next Mail" button to the OM/Pi 377Added a "Show next Mail" button to the OM/Pi
376mail viewer such that the mail below the current mail 378mail viewer such that the mail below the current mail
377in the mail list view of the current folder 379in the mail list view of the current folder
378can be read with a single click. 380can be read with a single click.
379 381
380 382
381********** VERSION 1.9.13 ************ 383********** VERSION 1.9.13 ************
382 384
383Fixed nasty PwM/Pi file reading bug, when 385Fixed nasty PwM/Pi file reading bug, when
384the used hash algo of file is different then the global 386the used hash algo of file is different then the global
385hash algo. 387hash algo.
386 388
387Added KA/Pi support for opie mailit mailapplication. 389Added KA/Pi support for opie mailit mailapplication.
388 390
389Fixed some bugs in OM/Pi. 391Fixed some bugs in OM/Pi.
390Now character conversion tables are available for the Zaurus 392Now character conversion tables are available for the Zaurus
391to make OM/Pi working properly. 393to make OM/Pi working properly.
392To get the character conversion in OM/Pi working, please download 394To get the character conversion in OM/Pi working, please download
393at the sourceforge project site the package 395at the sourceforge project site the package
394sr-character-conversion_SharpROM_arm.ipk.zip 396sr-character-conversion_SharpROM_arm.ipk.zip
395(or oz-character-conversion_OZ-gcc3xx_arm.ipk.zip for OZ roms) 397(or oz-character-conversion_OZ-gcc3xx_arm.ipk.zip for OZ roms)
396from the section "general files for KDE/Pim" 398from the section "general files for KDE/Pim"
397Instructions how to install this package are in a ReadMe in this file. 399Instructions how to install this package are in a ReadMe in this file.
398 400
399 401
400Fixed the orientation change problem in KA/Pi when switching 402Fixed the orientation change problem in KA/Pi when switching
401portrait/landscape mode. 403portrait/landscape mode.
402 404
403French translation available for KA/Pi and OM/Pi. 405French translation available for KA/Pi and OM/Pi.
404 406
405Fixed some problems with categories in KO/Pi in DTM sync. 407Fixed some problems with categories in KO/Pi in DTM sync.
406 408
407Added selection dialog for export to phone in KA/Pi. 409Added selection dialog for export to phone in KA/Pi.
408 410
409If in KO/Pi is an attendee selected to add to a meeting and this 411If in KO/Pi is an attendee selected to add to a meeting and this
410attendee is already in the list of attendees, this person is not added 412attendee is already in the list of attendees, this person is not added
411again. 413again.
412 414
413Some menu cleanup in KA/Pi. 415Some menu cleanup in KA/Pi.
414 416
415********** VERSION 1.9.12 ************ 417********** VERSION 1.9.12 ************
416 418
417Fix for the bug in KO/Pi What's Next view of version 1.9.11. 419Fix for the bug in KO/Pi What's Next view of version 1.9.11.
418 420
419Bugfix: Licence file is now shown again. 421Bugfix: Licence file is now shown again.
420 422
421OM/Pi now supports Unicode (utf8 charset). 423OM/Pi now supports Unicode (utf8 charset).
422Fixed some bugs in OM/Pi. 424Fixed some bugs in OM/Pi.
423 425
424KA/Pi has more German translation. 426KA/Pi has more German translation.
425 427
426 428
427********** VERSION 1.9.11 ************ 429********** VERSION 1.9.11 ************
428 430
429Fixed several problems in PWM/Pi, like 431Fixed several problems in PWM/Pi, like
430asking the user, if unsaved changed are pending 432asking the user, if unsaved changed are pending
431when closing the app. 433when closing the app.
432And PwM/Pi handles now different texts for the 434And PwM/Pi handles now different texts for the
433fields Description, Username, Password, configurable per category. 435fields Description, Username, Password, configurable per category.
434 436
435Fixed a crash in KO/Pi , when importing/loading vcs files 437Fixed a crash in KO/Pi , when importing/loading vcs files
436which have an entry with an attendee with state: 438which have an entry with an attendee with state:
437NEEDS ACTION 439NEEDS ACTION
438 440
439Fixed some problems in the German translation of OM/Pi, 441Fixed some problems in the German translation of OM/Pi,
440which makes some dialogs not fitting on the screen 442which makes some dialogs not fitting on the screen
441of the Z 5500. 443of the Z 5500.
442 444
443Fixed Qtopia crash, when disabling/deinstalling 445Fixed Qtopia crash, when disabling/deinstalling
444KO/Pi alarm applet. 446KO/Pi alarm applet.
445 447
446Implemented direct KDE<->KA/Pi sync for KA/Pi running 448Implemented direct KDE<->KA/Pi sync for KA/Pi running
447on Linux desktop. 449on Linux desktop.
448 450
449Added feature "remove sync info" to sync menu. 451Added feature "remove sync info" to sync menu.
450 452
451Tweaked the KO/Pi What's next view a bit, added 453Tweaked the KO/Pi What's next view a bit, added
452setting to hide events that are done. 454setting to hide events that are done.
453 455
454Disabled "beam receive enabled" on startup to 456Disabled "beam receive enabled" on startup to
455avoid problems if Fastload is enabled. 457avoid problems if Fastload is enabled.
456Please set "beam receive enabled", 458Please set "beam receive enabled",
457if you want to receive data via IR. 459if you want to receive data via IR.
458 460
459Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running 461Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running
460on Linux desktop. 462on Linux desktop.
461 463
462Made in KA/Pi scrolling possible, if details view is selected. 464Made in KA/Pi scrolling possible, if details view is selected.
463(The keyboard focus is set automatically to the search line) 465(The keyboard focus is set automatically to the search line)
464 466
465Fixed a bug in DMT sync, that a new entry in DTM was added 467Fixed a bug in DMT sync, that a new entry in DTM was added
466on every sync to Kx/Pi. 468on every sync to Kx/Pi.
467 469
468Fixed missing writing of KA/Pi categories to DMT entries when syncing. 470Fixed missing writing of KA/Pi categories to DMT entries when syncing.
469 471
470Fixed a bug in DMT sync with todos created in KO/Pi containing 472Fixed a bug in DMT sync with todos created in KO/Pi containing
471non-latin1 characters. 473non-latin1 characters.
472 474
473Rearranged package contents of Sharp-ipks and made all 475Rearranged package contents of Sharp-ipks and made all
474packages installable on SD again. 476packages installable on SD again.
475 477
476Fixed the writing of addressbook data in DTM sync. 478Fixed the writing of addressbook data in DTM sync.
477Empty fields in KA/Pi were not removed. 479Empty fields in KA/Pi were not removed.
478 480
479Added better category handling in KA/Pi: 481Added better category handling in KA/Pi:
480Added item 482Added item
481Edit Categories and 483Edit Categories and
482Manage new categories 484Manage new categories
483to the settings menu. 485to the settings menu.
484Possible to configure a view to display categories. 486Possible to configure a view to display categories.
485 487
486Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu. 488Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu.
487 489
488Fixed displaying of "free" days and time in KO Monthview and Agendaview. 490Fixed displaying of "free" days and time in KO Monthview and Agendaview.
489 491
490... and many other bugfixes. 492... and many other bugfixes.
491 493
492********** VERSION 1.9.10 ************ 494********** VERSION 1.9.10 ************
493 495
494Many internal small bugfixes. 496Many internal small bugfixes.
495And fix of the "big" bug in KO/Pi, 497And fix of the "big" bug in KO/Pi,
496that after Syncing the appointments had an offset by several hours. 498that after Syncing the appointments had an offset by several hours.
497That was a problem with the internal timezone setting, 499That was a problem with the internal timezone setting,
498introduced by the changed timezone configuration settings. 500introduced by the changed timezone configuration settings.
499 501
500German translation for OM/Pi is now available. 502German translation for OM/Pi is now available.
501 503
502 504
503********** VERSION 1.9.9 ************ 505********** VERSION 1.9.9 ************
504 506
505KDE-Pim/Pi has a new Member! 507KDE-Pim/Pi has a new Member!
506It is called PWM/Pi (Passwordmanager/platform-independent) 508It is called PWM/Pi (Passwordmanager/platform-independent)
507and it is available for the Zaurus. 509and it is available for the Zaurus.
508It is planned, that it will be available later for Windows. 510It is planned, that it will be available later for Windows.
509(And for Linux, of course). 511(And for Linux, of course).
510It is a port of the Passwordmanager of KDE. 512It is a port of the Passwordmanager of KDE.
511It will need the MicroKDElibs to run. 513It will need the MicroKDElibs to run.
512 514
513Made loading of addressbooks in KA/Pi up to 7 times faster! 515Made loading of addressbooks in KA/Pi up to 7 times faster!
514The bigger your addressbook file, the more starting speed 516The bigger your addressbook file, the more starting speed
515will you gain. (relatively) 517will you gain. (relatively)
516 518
517The Qtopia addressbook connector is now platform independend 519The Qtopia addressbook connector is now platform independend
518as well and should work on any platform for importing/exporting 520as well and should work on any platform for importing/exporting
519Qtopia and Opie XML files. 521Qtopia and Opie XML files.
520 522
521Added a +30min feature to the timezone settings to make 523Added a +30min feature to the timezone settings to make
522KDE-Pim/Pi useable in Australia and other parts on the 524KDE-Pim/Pi useable in Australia and other parts on the
523world with strange timezones ;-) 525world with strange timezones ;-)
524 526
525German "Umlaute" should now be sorted correctly on the Z in KA/Pi. 527German "Umlaute" should now be sorted correctly on the Z in KA/Pi.
526 528
527It is now possible to disable the 529It is now possible to disable the
528"receive data via infrared" feature, such that syncing with 530"receive data via infrared" feature, such that syncing with
529Outlook is now possible again with Kx/Pi runing. 531Outlook is now possible again with Kx/Pi runing.
530Please disable it, before syncing Sharp DTM with Outlook. 532Please disable it, before syncing Sharp DTM with Outlook.
531For your convenience, the "receive data via infrared" feature 533For your convenience, the "receive data via infrared" feature
532is disabled automatically, if you sync Kx/Pi with DTM. 534is disabled automatically, if you sync Kx/Pi with DTM.
533You have to enable it again manually after syncing. 535You have to enable it again manually after syncing.
534Enabling this feature makes it impossible to start the 536Enabling this feature makes it impossible to start the
535Sharp DTM apps. If this feature is enabled, you will only get the 537Sharp DTM apps. If this feature is enabled, you will only get the
536alarm notification from KO/Pi and not from the Sharp calendar. 538alarm notification from KO/Pi and not from the Sharp calendar.
537This is very useful if you sync KO/Pi with Sharp DTM, 539This is very useful if you sync KO/Pi with Sharp DTM,
538because after syncing you usually would get notified about 540because after syncing you usually would get notified about
539an alarm by KO/Pi and the Sharp Calendar. 541an alarm by KO/Pi and the Sharp Calendar.
540 542
541Together with the Linux desktop version of KO/Pi 543Together with the Linux desktop version of KO/Pi
542it is now possible to sync KO/Pi on the Zaurus 544it is now possible to sync KO/Pi on the Zaurus
543with the complete KDE-desktop (3.3 or later) 545with the complete KDE-desktop (3.3 or later)
544calendar data easily. 546calendar data easily.
545That makes it possible to sync the Z with one 547That makes it possible to sync the Z with one
546click of a mouse with the KDE-Desktop. 548click of a mouse with the KDE-Desktop.
547This feature it available for all Zaurus platforms KO/Pi 549This feature it available for all Zaurus platforms KO/Pi
548is running on. 550is running on.
549The only thing needed is a running KO/Pi on Linux and 551The only thing needed is a running KO/Pi on Linux and
550a compiled version of the small 552a compiled version of the small
551KDE-Pim/Pi<->KDE-Desktop access command line program, 553KDE-Pim/Pi<->KDE-Desktop access command line program,
552which is in the KDE-Pim/Pi sources available. 554which is in the KDE-Pim/Pi sources available.
553 555
554The "KDE-desktop" syncing feature for KA/Pi will follow 556The "KDE-desktop" syncing feature for KA/Pi will follow
555in the next releases. 557in the next releases.
556 558
557Fixed the vcard export bug, which had the version 1.9.8. 559Fixed the vcard export bug, which had the version 1.9.8.
558 560
559Added missing GERMAN translation to KO/Pi. 561Added missing GERMAN translation to KO/Pi.
560Hi PsionX, could you add the missing french translation?Thx! 562Hi PsionX, could you add the missing french translation?Thx!
561 563
562Translation files for KA/Pi are available as well. 564Translation files for KA/Pi are available as well.
563GERMAN translation will be available in the next release. 565GERMAN translation will be available in the next release.
564PsionX ( yres, you again ;-) ), could you start translating 566PsionX ( yres, you again ;-) ), could you start translating
565KA/Pi? Thx! 567KA/Pi? Thx!
566 568
567You can download the version 1.9.9 at 569You can download the version 1.9.9 at
568 570
569http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=112604 571http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=112604
570 572
571Note: 573Note:
572To run the mail program OM/Pi you need libopenssl. 574To run the mail program OM/Pi you need libopenssl.
573A link to a download loaction is available at 575A link to a download loaction is available at
574ZSI at www.killefiz.de 576ZSI at www.killefiz.de
575 577
576 578
577********** VERSION 1.9.8 ************ 579********** VERSION 1.9.8 ************
578 580
579Fixed character decoding in OM/Pi. 581Fixed character decoding in OM/Pi.
580(e.g. German "Umlaute" were not displayed properly.) 582(e.g. German "Umlaute" were not displayed properly.)
581 583
582Made is possible to reparent todos in KO/Pi. 584Made is possible to reparent todos in KO/Pi.
583Use contextmenu or keys (look at Help-Keys + Colors) for that. 585Use contextmenu or keys (look at Help-Keys + Colors) for that.
584 586
585Added the missing Sync-Howto and WhatsNew to the packages. 587Added the missing Sync-Howto and WhatsNew to the packages.
586 588
587KO/Pi on Linux desktop can now sync with KDE desktop. 589KO/Pi on Linux desktop can now sync with KDE desktop.
588That means: When using KO/Pi on Linux desktop for syncing with 590That means: When using KO/Pi on Linux desktop for syncing with
589KDE desktop and the Zaurus, the Zaurus can be synced now 591KDE desktop and the Zaurus, the Zaurus can be synced now
590with all KDE-Calendar resources, not only with one local file. 592with all KDE-Calendar resources, not only with one local file.
591(That makes it possible to sync the Zaurus with the 593(That makes it possible to sync the Zaurus with the
592calendar data on a Kolab server) 594calendar data on a Kolab server)
593 595
594KA/Pi syncing with KDE desktop will be available in the next version. 596KA/Pi syncing with KDE desktop will be available in the next version.
595 597
596 598
597********** VERSION 1.9.7 ************ 599********** VERSION 1.9.7 ************
598 600
599KO/Pi - KA/Pi on Windows: 601KO/Pi - KA/Pi on Windows:
600Now a directory can be defined by the user, where the 602Now a directory can be defined by the user, where the
601application/config data should be saved. 603application/config data should be saved.
602 Define your desired path in the evironment variable 604 Define your desired path in the evironment variable
603 MICROKDEHOME 605 MICROKDEHOME
604 before starting KO/Pi or KA/Pi. 606 before starting KO/Pi or KA/Pi.
605 607
606An easy Kx/Pi to Kx/Pi syncing is now possible 608An easy Kx/Pi to Kx/Pi syncing is now possible
607(it is called Pi-Sync) via network. 609(it is called Pi-Sync) via network.
608Please look at the Sync Howto. 610Please look at the Sync Howto.
609 611
610Exporting of calendar data and contacts to mobile phones is now possible. 612Exporting of calendar data and contacts to mobile phones is now possible.
611The SyncHowto is updated with information howto 613The SyncHowto is updated with information howto
612access/sync mobile phones. 614access/sync mobile phones.
613Please look at the Sync Howto. 615Please look at the Sync Howto.
614 616
615Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly. 617Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly.
616Please disable Fastload for the original contact/calendar applications 618Please disable Fastload for the original contact/calendar applications
617and close them. 619and close them.
618KO/Pi and KA/Pi must be running in order to receive the data. 620KO/Pi and KA/Pi must be running in order to receive the data.
619(KO/Pi and KA/Pi are always running if Fastload for them is enabled!) 621(KO/Pi and KA/Pi are always running if Fastload for them is enabled!)
620 622
621In the KA/Pi details view are now the preferred tel. numbers displayed on top 623In the KA/Pi details view are now the preferred tel. numbers displayed on top
622of the other data ( emails/tel.numbers/addresses) 624of the other data ( emails/tel.numbers/addresses)
623 625
624Fixed some syncing problems in KA/Pi. 626Fixed some syncing problems in KA/Pi.
625 627
626Added font settings for the KA/Pi details view. 628Added font settings for the KA/Pi details view.
627Added fields "children's name" and "gender" to KA/Pi. 629Added fields "children's name" and "gender" to KA/Pi.
628 630
629Made searching in KA/Pi better: 631Made searching in KA/Pi better:
630Now the first item in a view is selected after a search automatically and 632Now the first item in a view is selected after a search automatically and
631the views can be scrolled up/down when the search input field has the keyboard focus. 633the views can be scrolled up/down when the search input field has the keyboard focus.
632 634
633And, of course, fixed a bunch of reported bugs in KO/Pi and KA/Pi. 635And, of course, fixed a bunch of reported bugs in KO/Pi and KA/Pi.
634 636
635 637
636********** VERSION 1.9.6 ************ 638********** VERSION 1.9.6 ************
637 639
638Changes in the external application communication on the Zaurus 640Changes in the external application communication on the Zaurus
639in order to use less RAM when the apps are running. 641in order to use less RAM when the apps are running.
640First syncing of addressbooks (KA/Pi) is possible. 642First syncing of addressbooks (KA/Pi) is possible.
641 643
642 644
643********** VERSION 1.9.5a ************ 645********** VERSION 1.9.5a ************
644 646
645Fixed a bug in KO/Pi in the SharpDTM sync of version 1.9.5. 647Fixed a bug in KO/Pi in the SharpDTM sync of version 1.9.5.
646Fixed some small bugs. 648Fixed some small bugs.
647KA/Pi shows now the birthday in summary view. 649KA/Pi shows now the birthday in summary view.
648Now OM/Pi and KA/Pi are using the date format defined in KO/Pi 650Now OM/Pi and KA/Pi are using the date format defined in KO/Pi
649for displaying dates. 651for displaying dates.
650 652
651 653
652********** VERSION 1.9.5 ************ 654********** VERSION 1.9.5 ************
653 655
654There is still no Addressbook syncing! 656There is still no Addressbook syncing!
655 657
656New in 1.9.5: 658New in 1.9.5:
657 659
658Many bugfixes. 660Many bugfixes.
659Better searching in KA/Pi. 661Better searching in KA/Pi.
660You can configure in KA/Pi if you want to search only after 662You can configure in KA/Pi if you want to search only after
661<return> key pressed. 663<return> key pressed.
662 664
663Better mail downloading in OM/Pi. 665Better mail downloading in OM/Pi.
664 666
665First experimental alpha version of sync of KO/Pi with mobile phones. 667First experimental alpha version of sync of KO/Pi with mobile phones.
666See gammu documentation for supported phones. 668See gammu documentation for supported phones.
667You need to install the package kammu_1.9.5_arm.ipk for sync of KO/Pi with mobile phones. kammu_1.9.5_arm.ipk needs libbluetooth and libsdp. 669You need to install the package kammu_1.9.5_arm.ipk for sync of KO/Pi with mobile phones. kammu_1.9.5_arm.ipk needs libbluetooth and libsdp.
668Quick hint how to use: 670Quick hint how to use:
669NOTE: MOBILE PHONE SYNC IS EXPERIMENTAL! 671NOTE: MOBILE PHONE SYNC IS EXPERIMENTAL!
670Install kammu_1.9.5_arm.ipk , libbluetooth and libsdp. 672Install kammu_1.9.5_arm.ipk , libbluetooth and libsdp.
671Create syncprofile - mobile device 673Create syncprofile - mobile device
672Remove entry for model. (Leave empty ). 674Remove entry for model. (Leave empty ).
673Enable infrared on Zaurus and your Phone. 675Enable infrared on Zaurus and your Phone.
674Sync. 676Sync.
675To get a more detailed log, start kopi from konsole. 677To get a more detailed log, start kopi from konsole.
676 678
677********** VERSION 1.9.4 ************ 679********** VERSION 1.9.4 ************
678 680
679This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus. 681This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus.
680 682
681WARNING: 683WARNING:
682PLEASE BACKUP ALL YOUR DATA! 684PLEASE BACKUP ALL YOUR DATA!
683We have changed a lot and maybe there are some unknown problems. 685We have changed a lot and maybe there are some unknown problems.
684 686
685SYNC HANDLING HAS CHANGED! 687SYNC HANDLING HAS CHANGED!
686Such that, if you sync now with an already synded device, you will duplicated entries after the first sync. 688Such that, if you sync now with an already synded device, you will duplicated entries after the first sync.
687(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks). 689(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks).
688 690
689You need the kmicrokdelibs_1.9.4_arm.ipk as a base for the other programs. 691You need the kmicrokdelibs_1.9.4_arm.ipk as a base for the other programs.
690If you get the error: "Install only possible in main memory", just try it again to install it on SD card. That worked for me. And it was reported that rebooting Qtopia did help in this case as well. 692If you get the error: "Install only possible in main memory", just try it again to install it on SD card. That worked for me. And it was reported that rebooting Qtopia did help in this case as well.
691 693
692As programs are available: 694As programs are available:
693KO/Pi (korganizer ipk) - a calendar program. 695KO/Pi (korganizer ipk) - a calendar program.
694KA/Pi (kaddressbook ipk ) - an addressbook 696KA/Pi (kaddressbook ipk ) - an addressbook
695OM/Pi (kopiemail ipk ) an email program with pop/smtp and IMAP support. 697OM/Pi (kopiemail ipk ) an email program with pop/smtp and IMAP support.
696 698
697An alarm notification program ( korganizer-alarm ipk ) for KO/Pi that notifies you about alarms, even if the Zaurus is in suspend mode. 699An alarm notification program ( korganizer-alarm ipk ) for KO/Pi that notifies you about alarms, even if the Zaurus is in suspend mode.
698(If you do not see an icon in the taskbar after installing korganizer-alarm, please restart Qtopia) 700(If you do not see an icon in the taskbar after installing korganizer-alarm, please restart Qtopia)
699 701
700All the applications are installed in a "Pim" TAB. 702All the applications are installed in a "Pim" TAB.
701If this TAB is new on your system, you can get an icon in this TAB by installing pim_TAB_icon_1.9.4_arm.ipk 703If this TAB is new on your system, you can get an icon in this TAB by installing pim_TAB_icon_1.9.4_arm.ipk
702 704
703All the application are integrated. 705All the application are integrated.
704Such that you can choose in KO/Pi the attendees of a meeting from the addresses in KA/Pi. When you click in KA/Pi on the email address, OM/Pi is started to write the mail. 706Such that you can choose in KO/Pi the attendees of a meeting from the addresses in KA/Pi. When you click in KA/Pi on the email address, OM/Pi is started to write the mail.
705 707
706HINT: 708HINT:
707If you install KPhone/Pi 0.9.7, it will be called, if you click in KA/Pi on a phone number. 709If you install KPhone/Pi 0.9.7, it will be called, if you click in KA/Pi on a phone number.
708 710
709What's new? 711What's new?
710 712
711SYNC HANDLING HAS CHANGED! 713SYNC HANDLING HAS CHANGED!
712Such that, if you sync now with an already synded device, you will duplicated entries after the first sync. 714Such that, if you sync now with an already synded device, you will duplicated entries after the first sync.
713(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks). 715(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks).
714 716
715New in OM/Pi: 717New in OM/Pi:
716When copying(i.e. downloading mails) , you can specify, that only mails of a given size should be downloaded. Added mail copy possibility for selected mails. 718When copying(i.e. downloading mails) , you can specify, that only mails of a given size should be downloaded. Added mail copy possibility for selected mails.
717 719
718New in KO/Pi: 720New in KO/Pi:
719French is now available for KO/Pi. 721French is now available for KO/Pi.
720Choose menu:Actions - Configure:TAB locale 722Choose menu:Actions - Configure:TAB locale
721Syncing has changed. 723Syncing has changed.
722Phone sync available soon. 724Phone sync available soon.
723Not much changes, I cannot remember them ... 725Not much changes, I cannot remember them ...
724 726
725New in KA/Pi: 727New in KA/Pi:
726Beaming possible. 728Beaming possible.
727Sharp DTM readonly access possible( create a new DTM resource ); 729Sharp DTM readonly access possible( create a new DTM resource );
728Better searching possible. 730Better searching possible.
729Search is performed only after pressing the return key. 731Search is performed only after pressing the return key.
730Use wildcard * to specify parts of a name. 732Use wildcard * to specify parts of a name.
731 733
732Better name/email selection dialog (called from KO/Pi or OM/Pi). In this dialog, now searching is possible. Like in KA/Pi, use return key and wildcard * . 734Better name/email selection dialog (called from KO/Pi or OM/Pi). In this dialog, now searching is possible. Like in KA/Pi, use return key and wildcard * .
733 735
734A big improvement is the new management of the contact access. 736A big improvement is the new management of the contact access.
735In version 1.9.3, every application was using their own addressbook access data. 737In version 1.9.3, every application was using their own addressbook access data.
736That means, the addressbook was loaded up to three times in the memory, when accessed by KA/Pi, KO/Pi and OM/Pi. 738That means, the addressbook was loaded up to three times in the memory, when accessed by KA/Pi, KO/Pi and OM/Pi.
737That was wasting of memory, if you had several hundreds of contacts. 739That was wasting of memory, if you had several hundreds of contacts.
738 740
739Now only KA/Pi accesses the addressbook. 741Now only KA/Pi accesses the addressbook.
740If KO/Pi or OM/Pi want to get some name/email data, they request KA/Pi to open the name/email selection dialog and send it back to them. 742If KO/Pi or OM/Pi want to get some name/email data, they request KA/Pi to open the name/email selection dialog and send it back to them.
741If you click on an attendee in a meeting, its contact data is displayed in KA/Pi directly. 743If you click on an attendee in a meeting, its contact data is displayed in KA/Pi directly.
742That means, if KO/Pi or OM/Pi want to access contact data, KA/Pi is started first. 744That means, if KO/Pi or OM/Pi want to access contact data, KA/Pi is started first.
743 745
744New in the KO/Pi alarm applet: 746New in the KO/Pi alarm applet:
745Configure your own timer popup menu! 747Configure your own timer popup menu!
746(Text and minutes for timer countdown) 748(Text and minutes for timer countdown)
747Just edit the file 749Just edit the file
748(yourhomedir)/.kopialarmtimerrc 750(yourhomedir)/.kopialarmtimerrc
749and start/stop a timer to get a new menu with the data of this file. 751and start/stop a timer to get a new menu with the data of this file.
750 752
751********** VERSION 1.9.3 ************ 753********** VERSION 1.9.3 ************
7521) 7541)
753Now KO/Pi on Windows imports directly the calendar data of 755Now KO/Pi on Windows imports directly the calendar data of
754an installed Outlook. Should work with OL version >= 2000. 756an installed Outlook. Should work with OL version >= 2000.
755 757
756********** VERSION 1.9.2 ************ 758********** VERSION 1.9.2 ************
7571) 7591)
758KDE-Pim/Pi has got a new member: 760KDE-Pim/Pi has got a new member:
759KmicroMail (KM/Pi) is a mail program, 761KmicroMail (KM/Pi) is a mail program,
760which can handle IMAP and POP mail access. 762which can handle IMAP and POP mail access.
761It is based on Opie-Mail v3. 763It is based on Opie-Mail v3.
762All dependencies to the Opie libraries ar removed, 764All dependencies to the Opie libraries ar removed,
763such that no additional Opie lib is needed. 765such that no additional Opie lib is needed.
764It is already integrated in KO/Pi and KA/Pi. 766It is already integrated in KO/Pi and KA/Pi.
765It it now available for the Zaurus,probably it 767It it now available for the Zaurus,probably it
766will be available for other platforms later. 768will be available for other platforms later.
767Hint: 769Hint:
768Create your own contact (name + email) 770Create your own contact (name + email)
769in KA/Pi, select this contact and choose menu: 771in KA/Pi, select this contact and choose menu:
770Settings - Set Who Am I. 772Settings - Set Who Am I.
771Now the settings of this contact are used as 773Now the settings of this contact are used as
772the sender data in KM/Pi. 774the sender data in KM/Pi.
7732) 7752)
774KDE-Pim/Pi is split up in five different 776KDE-Pim/Pi is split up in five different
775packages now precompiled for Sharp Zaurus: 777packages now precompiled for Sharp Zaurus:
776--kmicrokdelibs_1.9.2_arm.ipk 778--kmicrokdelibs_1.9.2_arm.ipk
777The libs are needed for any 779The libs are needed for any
778of the following programs: 780of the following programs:
779--kaddressbook_1.9.2_arm.ipk 781--kaddressbook_1.9.2_arm.ipk
780--kmicromail_1.9.2_arm.ipk 782--kmicromail_1.9.2_arm.ipk
781--korganizer_1.9.2_arm.ipk 783--korganizer_1.9.2_arm.ipk
782Independ from that, there is the alarm applet 784Independ from that, there is the alarm applet
783available for KO/Pi, which also offers 785available for KO/Pi, which also offers
784quick access for a new mail or 786quick access for a new mail or
785showing the addressbook.: 787showing the addressbook.:
786--korganizer-alarm_1.9.2_arm.ipk 788--korganizer-alarm_1.9.2_arm.ipk
787Independend means, that the alarm applet 789Independend means, that the alarm applet
788does not need any of the libs or programs above to run. 790does not need any of the libs or programs above to run.
789But it would be quite useless without these programs. 791But it would be quite useless without these programs.
790NOTE: 792NOTE:
791If you get a 793If you get a
792"This application depends on other programs" 794"This application depends on other programs"
793during installation of 795during installation of
794--kmicrokdelibs_1.9.2_arm.ipk 796--kmicrokdelibs_1.9.2_arm.ipk
795you probably do not have to care about that. 797you probably do not have to care about that.
796kmicrokdelibs_1.9.2 will come with some 798kmicrokdelibs_1.9.2 will come with some
797resource plugins, which needs additional libraries. 799resource plugins, which needs additional libraries.
798(E.g. libopie1, if you want to use the 800(E.g. libopie1, if you want to use the
799opie resource connector in KA/Pi). 801opie resource connector in KA/Pi).
800If you do not have this libraries installed, 802If you do not have this libraries installed,
801you simply cannot use the resource. 803you simply cannot use the resource.
802To make it clear: 804To make it clear:
803If the libraries are missing, the applications 805If the libraries are missing, the applications
804using kmicrokdelibs will start, 806using kmicrokdelibs will start,
805because the resources are plugins. 807because the resources are plugins.
8063) 8083)
807KO/Pi and friends are now installable on SD-Card! 809KO/Pi and friends are now installable on SD-Card!
808It is recommended to install all libs and apps 810It is recommended to install all libs and apps
809on the SD card or all in the internal storage. 811on the SD card or all in the internal storage.
810There may be problems, if this is mixed. 812There may be problems, if this is mixed.
8114) 8134)
812Fixed two bugs in the alarm notification on Windows. 814Fixed two bugs in the alarm notification on Windows.
8135) 8155)
814Great improvement! 816Great improvement!
815KO/Pi uses now the latest version of libical. 817KO/Pi uses now the latest version of libical.
816Libical is the library which actually reads 818Libical is the library which actually reads
817the calendar files and extract the data from it. 819the calendar files and extract the data from it.
818With the old version, there were problems 820With the old version, there were problems
819(crashes or program hangs) when licical did read 821(crashes or program hangs) when licical did read
820files, which were not stored from KO/Pi. 822files, which were not stored from KO/Pi.
821I do not know, if the new libical works perfect, 823I do not know, if the new libical works perfect,
822but actually it works much better than 824but actually it works much better than
823the old version. 825the old version.
824There are no problems with compatibility with 826There are no problems with compatibility with
825old calendar files of KO/Pi, of course! 827old calendar files of KO/Pi, of course!
8266) 8286)
827New in KA/Pi: 829New in KA/Pi:
828Opie addressbook resource connector available! 830Opie addressbook resource connector available!
829You will need libopie1 and the opie addressbook, 831You will need libopie1 and the opie addressbook,
830of course. 832of course.
831With the Opie addressbook resource connector, 833With the Opie addressbook resource connector,
832you can access the Opie addressbook readonly in KA/Pi. 834you can access the Opie addressbook readonly in KA/Pi.
833If you want to edit or import the data into KA/Pi, 835If you want to edit or import the data into KA/Pi,
834do this: 836do this:
835a) Create an Opie resource. 837a) Create an Opie resource.
836 (Menu: Settings-Configure Resources). 838 (Menu: Settings-Configure Resources).
837After configuration and restarting KA/Pi you should see 839After configuration and restarting KA/Pi you should see
838the Opie contacts in KA/Pi. 840the Opie contacts in KA/Pi.
839b) Select some or all Opie contacts. 841b) Select some or all Opie contacts.
840(NOTE: +++++ 842(NOTE: +++++
841To know exactly, what contacts are Opie contacts, 843To know exactly, what contacts are Opie contacts,
842do this: Choose menu: 844do this: Choose menu:
843View-Modify View - TAB Fields. 845View-Modify View - TAB Fields.
844Select in the above list "Resource" and click 846Select in the above list "Resource" and click
845down arrow to add it to the "Selected fields". 847down arrow to add it to the "Selected fields".
846Click OK. 848Click OK.
847Now you have a new column "Resource" in your list, 849Now you have a new column "Resource" in your list,
848where you can see, what an Opie resource is. 850where you can see, what an Opie resource is.
849++++ NOTE end.) 851++++ NOTE end.)
850Ok, we do have now some Opie contacts seleted. 852Ok, we do have now some Opie contacts seleted.
851(Use SHIFT or CTRL key in order to multiple select). 853(Use SHIFT or CTRL key in order to multiple select).
852c) Choose menu: Edit-Copy. 854c) Choose menu: Edit-Copy.
853d) Choose menu: Edit-Paste. 855d) Choose menu: Edit-Paste.
854e) Select the resource, you want to add the contacts to. 856e) Select the resource, you want to add the contacts to.
855Congrats! Now you have read/write access to the copied 857Congrats! Now you have read/write access to the copied
856opie contacts as "real" KA/Pi contacts. 858opie contacts as "real" KA/Pi contacts.
857 859
858 860
859********** VERSION 1.9.1 ************ 861********** VERSION 1.9.1 ************
8601) 8621)
861 +++ IMPORTANT 1 +++ 863 +++ IMPORTANT 1 +++
862 864
863The storing place of the default calendar 865The storing place of the default calendar
864file has changed! 866file has changed!
865The default calendar file was 867The default calendar file was
866Applications/korganizer/mycalendar.ics 868Applications/korganizer/mycalendar.ics
867on Zaurus and 869on Zaurus and
868(yourHomeDir)/korganizer/mycalendar.ics 870(yourHomeDir)/korganizer/mycalendar.ics
869on Windows/Linux desktop. Now it is 871on Windows/Linux desktop. Now it is
870(yourHomeDir)/kdepim/korganizer/mycalendar.ics 872(yourHomeDir)/kdepim/korganizer/mycalendar.ics
871on Zaurus, Windows and Linux. 873on Zaurus, Windows and Linux.
872To load the old file, choose menu 874To load the old file, choose menu
873File-Load calendar backup. 875File-Load calendar backup.
874(It should be loaded automatically 876(It should be loaded automatically
875at startup with a warning message displayed). 877at startup with a warning message displayed).
876The place of the configuration file has changed too. 878The place of the configuration file has changed too.
877If you want to use your old KO/Pi config, 879If you want to use your old KO/Pi config,
878copy it to 880copy it to
879(yourHomeDir)/kdepim/config/korganizerrc 881(yourHomeDir)/kdepim/config/korganizerrc
880Please read VERSION 1.9.0 - topic 3) as well! 882Please read VERSION 1.9.0 - topic 3) as well!
881 883
882 +++ IMPORTANT 2 +++ 884 +++ IMPORTANT 2 +++
883 885
884Because of the new paths, you will need 886Because of the new paths, you will need
885a new version of the KO/Pi alarm applet 887a new version of the KO/Pi alarm applet
886for Zaurus. 888for Zaurus.
887Use version >= 1.9.1 889Use version >= 1.9.1
888 890
8892) 8912)
890Now the QWhat'sThis Icon works for items 892Now the QWhat'sThis Icon works for items
891in the month view as well. 893in the month view as well.
892(See VERSION 1.7.8 Topic 1) ). 894(See VERSION 1.7.8 Topic 1) ).
8933) 8953)
894You can import birtsdays/anniversaries 896You can import birtsdays/anniversaries
895from KA/Pi into KO/Pi. 897from KA/Pi into KO/Pi.
896Choose menu File-Import birthdays. 898Choose menu File-Import birthdays.
897If you import twice, already imported items 899If you import twice, already imported items
898will not be imported again, if they 900will not be imported again, if they
899have not been changed in KO/Pi. 901have not been changed in KO/Pi.
9004) 9024)
901When syncing with sharp DTM, now a progress 903When syncing with sharp DTM, now a progress
902is shown, when the data is written back. 904is shown, when the data is written back.
903If there is much data in KO/Pi and no data 905If there is much data in KO/Pi and no data
904in DTM, that can take a long time. 906in DTM, that can take a long time.
905(But only for the first time ). 907(But only for the first time ).
9065) 9085)
907In the search dialog, you can search 909In the search dialog, you can search
908now for the name/email of an attendee 910now for the name/email of an attendee
909of an event/todo. 911of an event/todo.
910To get more space for displaying 912To get more space for displaying
911search results, the buttons 913search results, the buttons
912for "search" and "close" on the 914for "search" and "close" on the
913bottom are removed in the PDA version. 915bottom are removed in the PDA version.
914You have to click OK in the top right 916You have to click OK in the top right
915corner to do a search. 917corner to do a search.
9166) 9186)
917Now it is possible to disable the displaying 919Now it is possible to disable the displaying
918of todo items in the Allday part of the Agenda. 920of todo items in the Allday part of the Agenda.
919Choose Menu Action-Configure, 921Choose Menu Action-Configure,
920TAB Todo View, checkbox 922TAB Todo View, checkbox
921"Allday Agenda view shows todos" 923"Allday Agenda view shows todos"
9227) 9247)
923If FastLoad is enabled, now the settings and the 925If FastLoad is enabled, now the settings and the
924calendar data are saved, when KO/Pi is closed. 926calendar data are saved, when KO/Pi is closed.
925(If no Fastload is enabled, KO/Pi saves 927(If no Fastload is enabled, KO/Pi saves
926the data as well, of course) 928the data as well, of course)
9278) 9298)
928The Agenda View has a minimize-splitter now, 930The Agenda View has a minimize-splitter now,
929such that the height of the allday part can be 931such that the height of the allday part can be
930changed quickly. 932changed quickly.
931 933
932********** VERSION 1.9.0 ************ 934********** VERSION 1.9.0 ************
9331) 9351)
934KO/Pi is now merged with the new microKDE from KA/Pi. 936KO/Pi is now merged with the new microKDE from KA/Pi.
935KO/Pi accesses now KA/Pi as the addressbook. 937KO/Pi accesses now KA/Pi as the addressbook.
936The other ddressbook-plugins are not working any longer. 938The other ddressbook-plugins are not working any longer.
937(It is planned, that later KA/Pi itself uses these plugins) 939(It is planned, that later KA/Pi itself uses these plugins)
938New versions of KO/Pi are only available 940New versions of KO/Pi are only available
939together with KA/Pi as the KDE-Pim/Pi package. 941together with KA/Pi as the KDE-Pim/Pi package.
9402) 9422)
941If you click on an attendee of a meeting in the 943If you click on an attendee of a meeting in the
942event viewer, a detailed summary of the 944event viewer, a detailed summary of the
943attendee is shown. 945attendee is shown.
9443) 9463)
945The place of the configuration file has changed. 947The place of the configuration file has changed.
946If you want to use your old KO/Pi config, copy 948If you want to use your old KO/Pi config, copy
947Applications/korganizer/config_korganizerrc 949Applications/korganizer/config_korganizerrc
948to 950to
949Applications/korganizer/config/korganizerrc 951Applications/korganizer/config/korganizerrc
950 952
951********** VERSION 1.7.8 ************ 953********** VERSION 1.7.8 ************
9521) 9541)
953Now the QWhat'sThis ist working. 955Now the QWhat'sThis ist working.
954Enable the QWhat'sThis icon in the toolbar. 956Enable the QWhat'sThis icon in the toolbar.
955(You have to restart to reload the changed toolbar config). 957(You have to restart to reload the changed toolbar config).
956Now click on the QWhat'sThis Icon 958Now click on the QWhat'sThis Icon
957in the top right corner of KO/Pi. 959in the top right corner of KO/Pi.
958Then click on an item in the Agenda View: 960Then click on an item in the Agenda View:
959You will get a detailed display of the items content. 961You will get a detailed display of the items content.
9602) 9622)
961Some other very minor changes. 963Some other very minor changes.
962But I have forgotten the details ... 964But I have forgotten the details ...
963For that reason I start this log here: 965For that reason I start this log here:
964To document my changes, when I am doing it. 966To document my changes, when I am doing it.
965 967
966********** VERSION 1.7.7 ************ 968********** VERSION 1.7.7 ************
967Stable Version of KO/Pi 969Stable Version of KO/Pi
diff --git a/libkdepim/kdatepicker.cpp b/libkdepim/kdatepicker.cpp
index c13734f..77793c4 100644
--- a/libkdepim/kdatepicker.cpp
+++ b/libkdepim/kdatepicker.cpp
@@ -1,476 +1,486 @@
1/* -*- C++ -*- 1/* -*- C++ -*-
2 This file is part of the KDE libraries 2 This file is part of the KDE libraries
3 Copyright (C) 1997 Tim D. Gilman (tdgilman@best.org) 3 Copyright (C) 1997 Tim D. Gilman (tdgilman@best.org)
4 (C) 1998-2001 Mirko Boehm (mirko@kde.org) 4 (C) 1998-2001 Mirko Boehm (mirko@kde.org)
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include "kdatepicker.h" 21#include "kdatepicker.h"
22#include <kglobal.h> 22#include <kglobal.h>
23#include <kapplication.h> 23#include <kapplication.h>
24#include <klocale.h> 24#include <klocale.h>
25#include <kiconloader.h> 25#include <kiconloader.h>
26#include <qframe.h> 26#include <qframe.h>
27#include <qpainter.h> 27#include <qpainter.h>
28#include <qdialog.h> 28#include <qdialog.h>
29#include <qtoolbutton.h> 29#include <qtoolbutton.h>
30#include <qfont.h> 30#include <qfont.h>
31#include <qapplication.h> 31#include <qapplication.h>
32#include <qlineedit.h> 32#include <qlineedit.h>
33#include <qvalidator.h> 33#include <qvalidator.h>
34#include <kdebug.h> 34#include <kdebug.h>
35#include <knotifyclient.h> 35#include <knotifyclient.h>
36#include <kglobalsettings.h> 36#include <kglobalsettings.h>
37#include "kdatetbl.h" 37#include "kdatetbl.h"
38#include "kdateedit.h" 38#include "kdateedit.h"
39//#include "kdatepicker.moc" 39//#include "kdatepicker.moc"
40 40
41 41
42KDatePicker::KDatePicker(QWidget *parent, QDate dt, const char *name) 42KDatePicker::KDatePicker(QWidget *parent, QDate dt, const char *name)
43 : QFrame(parent,name), 43 : QFrame(parent,name),
44 yearForward(new QToolButton(this)), 44 yearForward(new QToolButton(this)),
45 yearBackward(new QToolButton(this)), 45 yearBackward(new QToolButton(this)),
46 monthForward(new QToolButton(this)), 46 monthForward(new QToolButton(this)),
47 monthBackward(new QToolButton(this)), 47 monthBackward(new QToolButton(this)),
48 selectMonth(new QToolButton(this)), 48 selectMonth(new QToolButton(this)),
49 selectYear(new QToolButton(this)), 49 selectYear(new QToolButton(this)),
50 todayBut(new QToolButton(this)),
50 //line(new QLineEdit(this)), 51 //line(new QLineEdit(this)),
51 val(new KDateValidator(this)) 52 val(new KDateValidator(this))
52 //table(new KDateTable(this)), 53 //table(new KDateTable(this)),
53 //fontsize(1) 54 //fontsize(1)
54{ 55{
55 QFont fo = KGlobalSettings::generalFont(); 56 QFont fo = KGlobalSettings::generalFont();
56 int add = 2; 57 int add = 2;
57 if ( QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 ) 58 if ( QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
58 add += 4; 59 add += 4;
59 fo.setPointSize(fo.pointSize()+add ); 60 fo.setPointSize(fo.pointSize()+add );
60 setFont( fo ); 61 setFont( fo );
61 table = new KDateTable(this); 62 table = new KDateTable(this);
62 setFontSize(font().pointSize()); 63 setFontSize(font().pointSize());
63 //line->setValidator(val); 64 //line->setValidator(val);
64 lineDate = new KDateEdit( this, "dateediipicker", true ); 65 lineDate = new KDateEdit( this, "dateediipicker", true );
65 yearForward->setPixmap(SmallIcon("2rightarrowB")); 66 yearForward->setPixmap(SmallIcon("2rightarrowB"));
66 yearBackward->setPixmap(SmallIcon("2leftarrowB")); 67 yearBackward->setPixmap(SmallIcon("2leftarrowB"));
67 monthForward->setPixmap(SmallIcon("1rightarrowB")); 68 monthForward->setPixmap(SmallIcon("1rightarrowB"));
68 monthBackward->setPixmap(SmallIcon("1leftarrowB")); 69 monthBackward->setPixmap(SmallIcon("1leftarrowB"));
70 todayBut->setPixmap(SmallIcon("today"));
69 setDate(dt); // set button texts 71 setDate(dt); // set button texts
70 connect(table, SIGNAL(dateChanged(QDate)), SLOT(dateChangedSlot(QDate))); 72 connect(table, SIGNAL(dateChanged(QDate)), SLOT(dateChangedSlot(QDate)));
71 connect(table, SIGNAL(tableClicked()), SLOT(tableClickedSlot())); 73 connect(table, SIGNAL(tableClicked()), SLOT(tableClickedSlot()));
72 connect(monthForward, SIGNAL(clicked()), SLOT(monthForwardClicked())); 74 connect(monthForward, SIGNAL(clicked()), SLOT(monthForwardClicked()));
73 connect(monthBackward, SIGNAL(clicked()), SLOT(monthBackwardClicked())); 75 connect(monthBackward, SIGNAL(clicked()), SLOT(monthBackwardClicked()));
74 connect(yearForward, SIGNAL(clicked()), SLOT(yearForwardClicked())); 76 connect(yearForward, SIGNAL(clicked()), SLOT(yearForwardClicked()));
75 connect(yearBackward, SIGNAL(clicked()), SLOT(yearBackwardClicked())); 77 connect(yearBackward, SIGNAL(clicked()), SLOT(yearBackwardClicked()));
76 connect(selectMonth, SIGNAL(clicked()), SLOT(selectMonthClicked())); 78 connect(selectMonth, SIGNAL(clicked()), SLOT(selectMonthClicked()));
77 connect(selectYear, SIGNAL(clicked()), SLOT(selectYearClicked())); 79 connect(selectYear, SIGNAL(clicked()), SLOT(selectYearClicked()));
80 connect(todayBut, SIGNAL(clicked()), SLOT(goToday()));
78 //connect(line, SIGNAL(returnPressed()), SLOT(lineEnterPressed())); 81 //connect(line, SIGNAL(returnPressed()), SLOT(lineEnterPressed()));
79 connect(lineDate, SIGNAL(dateChanged(QDate)), SLOT(slotSetDate(QDate))); 82 connect(lineDate, SIGNAL(dateChanged(QDate)), SLOT(slotSetDate(QDate)));
80 connect(lineDate, SIGNAL(returnPressed()), SLOT(lineEnterPressed())); 83 connect(lineDate, SIGNAL(returnPressed()), SLOT(lineEnterPressed()));
81 table->setFocus(); 84 table->setFocus();
82 85
83} 86}
84 87
85KDatePicker::~KDatePicker() 88KDatePicker::~KDatePicker()
86{ 89{
87} 90}
88 91
89void 92void
90KDatePicker::resizeEvent(QResizeEvent*) 93KDatePicker::resizeEvent(QResizeEvent*)
91{ 94{
92 QWidget *buttons[] = { 95 QWidget *buttons[] = {
93 yearBackward, 96 yearBackward,
94 monthBackward, 97 monthBackward,
95 selectMonth, 98 selectMonth,
96 selectYear, 99 selectYear,
97 monthForward, 100 monthForward,
98 yearForward }; 101 yearForward };
99 const int NoOfButtons=sizeof(buttons)/sizeof(buttons[0]); 102 const int NoOfButtons=sizeof(buttons)/sizeof(buttons[0]);
100 QSize sizes[NoOfButtons]; 103 QSize sizes[NoOfButtons];
101 int buttonHeight=0; 104 int buttonHeight=0;
102 int count; 105 int count;
103 int w; 106 int w;
104 int x=0; 107 int x=0;
105 // ----- calculate button row height: 108 // ----- calculate button row height:
106 for(count=0; count<NoOfButtons; ++count) { 109 for(count=0; count<NoOfButtons; ++count) {
107 int xS = buttons[count]->sizeHint().width(); 110 int xS = buttons[count]->sizeHint().width();
108 int yS = buttons[count]->sizeHint().height(); 111 int yS = buttons[count]->sizeHint().height();
109 if ( QApplication::desktop()->width() < 320 ) 112 if ( QApplication::desktop()->width() < 320 )
110 sizes[count]=QSize ( xS+4, yS ); 113 sizes[count]=QSize ( xS+4, yS );
111 else 114 else
112 sizes[count]=QSize ( xS+10, yS ); 115 sizes[count]=QSize ( xS+10, yS );
113 116
114 buttonHeight=QMAX(buttonHeight, sizes[count].height()); 117 buttonHeight=QMAX(buttonHeight, sizes[count].height());
115 } 118 }
116 buttonHeight += 10; 119 buttonHeight += 10;
117 // ----- calculate size of the month button: 120 // ----- calculate size of the month button:
118 w=0; 121 w=0;
119 for(count=0; count<NoOfButtons; ++count) { 122 for(count=0; count<NoOfButtons; ++count) {
120 if(buttons[count]!=selectMonth) 123 if(buttons[count]!=selectMonth)
121 { 124 {
122 w+=sizes[count].width(); 125 w+=sizes[count].width();
123 } else { 126 } else {
124 x=count; 127 x=count;
125 } 128 }
126 } 129 }
127 sizes[x].setWidth(width()-w); // stretch the month button 130 sizes[x].setWidth(width()-w); // stretch the month button
128 // ----- place the buttons: 131 // ----- place the buttons:
129 x=0; 132 x=0;
130 for(count=0; count<NoOfButtons; ++count) 133 for(count=0; count<NoOfButtons; ++count)
131 { 134 {
132 w=sizes[count].width(); 135 w=sizes[count].width();
133 buttons[count]->setGeometry(x, 0, w, buttonHeight); 136 buttons[count]->setGeometry(x, 0, w, buttonHeight);
134 x+=w; 137 x+=w;
135 } 138 }
136 // ----- place the line edit for direct input: 139 // ----- place the line edit for direct input:
137 sizes[0]=lineDate->sizeHint(); 140 sizes[0]=lineDate->sizeHint();
138 //line->setGeometry(0, height()-sizes[0].height(), width(), sizes[0].height()); 141 //line->setGeometry(0, height()-sizes[0].height(), width(), sizes[0].height());
139 lineDate->setGeometry(0, height()-sizes[0].height(), width(), sizes[0].height()); 142 int todaywid = todayBut->sizeHint().width();
143todayBut->setGeometry(0, height()-sizes[0].height(),todaywid, sizes[0].height());
144 lineDate->setGeometry(0+todaywid, height()-sizes[0].height(), width()-todaywid, sizes[0].height());
140 // ----- adjust the table: 145 // ----- adjust the table:
141 table->setGeometry(0, buttonHeight, width(), 146 table->setGeometry(0, buttonHeight, width(),
142 height()-buttonHeight-sizes[0].height()); 147 height()-buttonHeight-sizes[0].height());
143} 148}
144 149
145void 150void
146KDatePicker::dateChangedSlot(QDate date) 151KDatePicker::dateChangedSlot(QDate date)
147{ 152{
148 lineDate->setDate( date );//(KGlobal::locale()->formatDate(date, true)); 153 lineDate->setDate( date );//(KGlobal::locale()->formatDate(date, true));
149 //line->setText(KGlobal::locale()->formatDate(date, true)); 154 //line->setText(KGlobal::locale()->formatDate(date, true));
150 emit(dateChanged(date)); 155 emit(dateChanged(date));
151} 156}
152 157
153void 158void
154KDatePicker::tableClickedSlot() 159KDatePicker::tableClickedSlot()
155{ 160{
156 161
157 emit(dateSelected(table->getDate())); 162 emit(dateSelected(table->getDate()));
158 emit(tableClicked()); 163 emit(tableClicked());
159} 164}
160 165
161const QDate& 166const QDate&
162KDatePicker::getDate() const 167KDatePicker::getDate() const
163{ 168{
164 return table->getDate(); 169 return table->getDate();
165} 170}
166 171
167const QDate & 172const QDate &
168KDatePicker::date() const 173KDatePicker::date() const
169{ 174{
170 return table->getDate(); 175 return table->getDate();
171} 176}
172 177
178void KDatePicker::goToday()
179{
180 slotSetDate( QDate::currentDate() );
181
182}
173void KDatePicker::slotSetDate( QDate date ) 183void KDatePicker::slotSetDate( QDate date )
174{ 184{
175 185
176 if(date.isValid()) { 186 if(date.isValid()) {
177 QString temp; 187 QString temp;
178 // ----- 188 // -----
179 table->setDate(date); 189 table->setDate(date);
180 selectMonth->setText(KGlobal::locale()->monthName(date.month(), false)); 190 selectMonth->setText(KGlobal::locale()->monthName(date.month(), false));
181 temp.setNum(date.year()); 191 temp.setNum(date.year());
182 selectYear->setText(temp); 192 selectYear->setText(temp);
183 //line->setText(KGlobal::locale()->formatDate(date, true)); 193 //line->setText(KGlobal::locale()->formatDate(date, true));
184 lineDate->setDate( date ); 194 lineDate->setDate( date );
185 } 195 }
186 196
187} 197}
188bool 198bool
189KDatePicker::setDate(const QDate& date) 199KDatePicker::setDate(const QDate& date)
190{ 200{
191 table->setFocus(); 201 table->setFocus();
192 if(date.isValid()) { 202 if(date.isValid()) {
193 QString temp; 203 QString temp;
194 // ----- 204 // -----
195 table->setDate(date); 205 table->setDate(date);
196 selectMonth->setText(KGlobal::locale()->monthName(date.month(), false)); 206 selectMonth->setText(KGlobal::locale()->monthName(date.month(), false));
197 temp.setNum(date.year()); 207 temp.setNum(date.year());
198 selectYear->setText(temp); 208 selectYear->setText(temp);
199 //line->setText(KGlobal::locale()->formatDate(date, true)); 209 //line->setText(KGlobal::locale()->formatDate(date, true));
200 lineDate->setDate( date ); 210 lineDate->setDate( date );
201 return true; 211 return true;
202 } else { 212 } else {
203 213
204 return false; 214 return false;
205 } 215 }
206 216
207 217
208} 218}
209 219
210void 220void
211KDatePicker::monthForwardClicked() 221KDatePicker::monthForwardClicked()
212{ 222{
213 QDate temp=table->getDate(); 223 QDate temp=table->getDate();
214 int day=temp.day(); 224 int day=temp.day();
215 // ----- 225 // -----
216 if(temp.month()==12) { 226 if(temp.month()==12) {
217 temp.setYMD(temp.year()+1, 1, 1); 227 temp.setYMD(temp.year()+1, 1, 1);
218 } else { 228 } else {
219 temp.setYMD(temp.year(), temp.month()+1, 1); 229 temp.setYMD(temp.year(), temp.month()+1, 1);
220 } 230 }
221 if(temp.daysInMonth()<day) { 231 if(temp.daysInMonth()<day) {
222 temp.setYMD(temp.year(), temp.month(), temp.daysInMonth()); 232 temp.setYMD(temp.year(), temp.month(), temp.daysInMonth());
223 } else { 233 } else {
224 temp.setYMD(temp.year(), temp.month(), day); 234 temp.setYMD(temp.year(), temp.month(), day);
225 } 235 }
226 // assert(temp.isValid()); 236 // assert(temp.isValid());
227 setDate(temp); 237 setDate(temp);
228} 238}
229 239
230void 240void
231KDatePicker::monthBackwardClicked() 241KDatePicker::monthBackwardClicked()
232{ 242{
233 QDate temp=table->getDate(); 243 QDate temp=table->getDate();
234 int day=temp.day(); 244 int day=temp.day();
235 // ----- 245 // -----
236 if(temp.month()==1) 246 if(temp.month()==1)
237 { 247 {
238 temp.setYMD(temp.year()-1, 12, 1); 248 temp.setYMD(temp.year()-1, 12, 1);
239 } else { 249 } else {
240 temp.setYMD(temp.year(), temp.month()-1, 1); 250 temp.setYMD(temp.year(), temp.month()-1, 1);
241 } 251 }
242 if(temp.daysInMonth()<day) 252 if(temp.daysInMonth()<day)
243 { 253 {
244 temp.setYMD(temp.year(), temp.month(), temp.daysInMonth()); 254 temp.setYMD(temp.year(), temp.month(), temp.daysInMonth());
245 } else { 255 } else {
246 temp.setYMD(temp.year(), temp.month(), day); 256 temp.setYMD(temp.year(), temp.month(), day);
247 } 257 }
248 // assert(temp.isValid()); 258 // assert(temp.isValid());
249 setDate(temp); 259 setDate(temp);
250} 260}
251 261
252void 262void
253KDatePicker::yearForwardClicked() 263KDatePicker::yearForwardClicked()
254{ 264{
255 QDate temp=table->getDate(); 265 QDate temp=table->getDate();
256 int day=temp.day(); 266 int day=temp.day();
257 // ----- 267 // -----
258 temp.setYMD(temp.year()+1, temp.month(), 1); 268 temp.setYMD(temp.year()+1, temp.month(), 1);
259 if(temp.daysInMonth()<day) 269 if(temp.daysInMonth()<day)
260 { 270 {
261 temp.setYMD(temp.year(), temp.month(), temp.daysInMonth()); 271 temp.setYMD(temp.year(), temp.month(), temp.daysInMonth());
262 } else { 272 } else {
263 temp.setYMD(temp.year(), temp.month(), day); 273 temp.setYMD(temp.year(), temp.month(), day);
264 } 274 }
265 // assert(temp.isValid()); 275 // assert(temp.isValid());
266 setDate(temp); 276 setDate(temp);
267} 277}
268 278
269void 279void
270KDatePicker::yearBackwardClicked() 280KDatePicker::yearBackwardClicked()
271{ 281{
272 QDate temp=table->getDate(); 282 QDate temp=table->getDate();
273 int day=temp.day(); 283 int day=temp.day();
274 // ----- 284 // -----
275 temp.setYMD(temp.year()-1, temp.month(), 1); 285 temp.setYMD(temp.year()-1, temp.month(), 1);
276 if(temp.daysInMonth()<day) 286 if(temp.daysInMonth()<day)
277 { 287 {
278 temp.setYMD(temp.year(), temp.month(), temp.daysInMonth()); 288 temp.setYMD(temp.year(), temp.month(), temp.daysInMonth());
279 } else { 289 } else {
280 temp.setYMD(temp.year(), temp.month(), day); 290 temp.setYMD(temp.year(), temp.month(), day);
281 } 291 }
282 // assert(temp.isValid()); 292 // assert(temp.isValid());
283 setDate(temp); 293 setDate(temp);
284} 294}
285 295
286void 296void
287KDatePicker::selectMonthClicked() 297KDatePicker::selectMonthClicked()
288{ 298{
289 int month; 299 int month;
290 KPopupFrame* popup = new KPopupFrame(this); 300 KPopupFrame* popup = new KPopupFrame(this);
291 KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup); 301 KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup);
292 // ----- 302 // -----
293 picker->resize(picker->sizeHint()); 303 picker->resize(picker->sizeHint());
294 popup->setMainWidget(picker); 304 popup->setMainWidget(picker);
295 picker->setFocus(); 305 picker->setFocus();
296 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); 306 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int)));
297 if(popup->exec(selectMonth->mapToGlobal(QPoint(0, selectMonth->height())))) 307 if(popup->exec(selectMonth->mapToGlobal(QPoint(0, selectMonth->height()))))
298 { 308 {
299 QDate date; 309 QDate date;
300 int day; 310 int day;
301 // ----- 311 // -----
302 month=picker->getResult(); 312 month=picker->getResult();
303 date=table->getDate(); 313 date=table->getDate();
304 day=date.day(); 314 day=date.day();
305 // ----- construct a valid date in this month: 315 // ----- construct a valid date in this month:
306 date.setYMD(date.year(), month, 1); 316 date.setYMD(date.year(), month, 1);
307 date.setYMD(date.year(), month, QMIN(day, date.daysInMonth())); 317 date.setYMD(date.year(), month, QMIN(day, date.daysInMonth()));
308 // ----- set this month 318 // ----- set this month
309 setDate(date); 319 setDate(date);
310 } else { 320 } else {
311 KNotifyClient::beep(); 321 KNotifyClient::beep();
312 } 322 }
313 delete popup; 323 delete popup;
314} 324}
315 325
316void 326void
317KDatePicker::selectYearClicked() 327KDatePicker::selectYearClicked()
318{ 328{
319 int year; 329 int year;
320 KPopupFrame* popup = new KPopupFrame(this); 330 KPopupFrame* popup = new KPopupFrame(this);
321 KDateInternalYearSelector* picker = new KDateInternalYearSelector(fontsize, popup); 331 KDateInternalYearSelector* picker = new KDateInternalYearSelector(fontsize, popup);
322 // ----- 332 // -----
323 picker->resize(picker->sizeHint()); 333 picker->resize(picker->sizeHint());
324 popup->setMainWidget(picker); 334 popup->setMainWidget(picker);
325 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); 335 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int)));
326 picker->setFocus(); 336 picker->setFocus();
327 if(popup->exec(selectYear->mapToGlobal(QPoint(0, selectMonth->height())))) 337 if(popup->exec(selectYear->mapToGlobal(QPoint(0, selectMonth->height()))))
328 { 338 {
329 QDate date; 339 QDate date;
330 int day; 340 int day;
331 // ----- 341 // -----
332 year=picker->getYear(); 342 year=picker->getYear();
333 date=table->getDate(); 343 date=table->getDate();
334 day=date.day(); 344 day=date.day();
335 // ----- construct a valid date in this month: 345 // ----- construct a valid date in this month:
336 date.setYMD(year, date.month(), 1); 346 date.setYMD(year, date.month(), 1);
337 date.setYMD(year, date.month(), QMIN(day, date.daysInMonth())); 347 date.setYMD(year, date.month(), QMIN(day, date.daysInMonth()));
338 // ----- set this month 348 // ----- set this month
339 setDate(date); 349 setDate(date);
340 } else { 350 } else {
341 KNotifyClient::beep(); 351 KNotifyClient::beep();
342 } 352 }
343 delete popup; 353 delete popup;
344} 354}
345 355
346void 356void
347KDatePicker::setEnabled(bool enable) 357KDatePicker::setEnabled(bool enable)
348{ 358{
349 QWidget *widgets[]= { 359 QWidget *widgets[]= {
350 yearForward, yearBackward, monthForward, monthBackward, 360 yearForward, yearBackward, monthForward, monthBackward,
351 selectMonth, selectYear, 361 selectMonth, selectYear,
352 lineDate, table }; 362 lineDate, table };
353 const int Size=sizeof(widgets)/sizeof(widgets[0]); 363 const int Size=sizeof(widgets)/sizeof(widgets[0]);
354 int count; 364 int count;
355 // ----- 365 // -----
356 for(count=0; count<Size; ++count) 366 for(count=0; count<Size; ++count)
357 { 367 {
358 widgets[count]->setEnabled(enable); 368 widgets[count]->setEnabled(enable);
359 } 369 }
360} 370}
361 371
362void 372void
363KDatePicker::lineEnterPressed() 373KDatePicker::lineEnterPressed()
364{ 374{
365 QDate temp; 375 QDate temp;
366 // ----- 376 // -----
367 temp = lineDate->date(); 377 temp = lineDate->date();
368 //if(val->date(line->text(), temp)==QValidator::Acceptable) 378 //if(val->date(line->text(), temp)==QValidator::Acceptable)
369 //{ 379 //{
370 emit(dateEntered(temp)); 380 emit(dateEntered(temp));
371 setDate(temp); 381 setDate(temp);
372 // } else { 382 // } else {
373// KNotifyClient::beep(); 383// KNotifyClient::beep();
374// } 384// }
375} 385}
376 386
377QSize 387QSize
378KDatePicker::sizeHint() const 388KDatePicker::sizeHint() const
379{ 389{
380 QSize tableSize=table->sizeHint(); 390 QSize tableSize=table->sizeHint();
381 QWidget *buttons[]={ 391 QWidget *buttons[]={
382 yearBackward, 392 yearBackward,
383 monthBackward, 393 monthBackward,
384 selectMonth, 394 selectMonth,
385 selectYear, 395 selectYear,
386 monthForward, 396 monthForward,
387 yearForward }; 397 yearForward };
388 const int NoOfButtons=sizeof(buttons)/sizeof(buttons[0]); 398 const int NoOfButtons=sizeof(buttons)/sizeof(buttons[0]);
389 QSize sizes[NoOfButtons]; 399 QSize sizes[NoOfButtons];
390 int cx=0, cy=0, count; 400 int cx=0, cy=0, count;
391 // ----- store the size hints: 401 // ----- store the size hints:
392 for(count=0; count<NoOfButtons; ++count) 402 for(count=0; count<NoOfButtons; ++count)
393 { 403 {
394 sizes[count]=buttons[count]->sizeHint(); 404 sizes[count]=buttons[count]->sizeHint();
395 if(buttons[count]==selectMonth) 405 if(buttons[count]==selectMonth)
396 { 406 {
397 cx+=maxMonthRect.width()+15; 407 cx+=maxMonthRect.width()+15;
398 } else { 408 } else {
399 cx+=sizes[count].width()+15; 409 cx+=sizes[count].width()+15;
400 } 410 }
401 cy=QMAX(sizes[count].height(), cy); 411 cy=QMAX(sizes[count].height(), cy);
402 } 412 }
403 // ----- calculate width hint: 413 // ----- calculate width hint:
404 cx=QMAX(cx, tableSize.width()); // line edit ignored 414 cx=QMAX(cx, tableSize.width()); // line edit ignored
405 if ( cx > QApplication::desktop()->width() -5 ) 415 if ( cx > QApplication::desktop()->width() -5 )
406 cx = QApplication::desktop()->width() -5; 416 cx = QApplication::desktop()->width() -5;
407 // ----- calculate height hint: 417 // ----- calculate height hint:
408 cy+=tableSize.height()+lineDate->sizeHint().height(); 418 cy+=tableSize.height()+lineDate->sizeHint().height();
409 419
410 return QSize(cx, cy); 420 return QSize(cx, cy);
411} 421}
412 422
413void 423void
414KDatePicker::setFontSize(int s) 424KDatePicker::setFontSize(int s)
415{ 425{
416 QWidget *buttons[]= { 426 QWidget *buttons[]= {
417 // yearBackward, 427 // yearBackward,
418 // monthBackward, 428 // monthBackward,
419 selectMonth, 429 selectMonth,
420 selectYear, 430 selectYear,
421 // monthForward, 431 // monthForward,
422 // yearForward 432 // yearForward
423 }; 433 };
424 const int NoOfButtons=sizeof(buttons)/sizeof(buttons[0]); 434 const int NoOfButtons=sizeof(buttons)/sizeof(buttons[0]);
425 int count; 435 int count;
426 QFont font; 436 QFont font;
427 QRect r; 437 QRect r;
428 // ----- 438 // -----
429 fontsize=s; 439 fontsize=s;
430 for(count=0; count<NoOfButtons; ++count) 440 for(count=0; count<NoOfButtons; ++count)
431 { 441 {
432 font=buttons[count]->font(); 442 font=buttons[count]->font();
433 font.setPointSize(s); 443 font.setPointSize(s);
434 buttons[count]->setFont(font); 444 buttons[count]->setFont(font);
435 } 445 }
436 QFontMetrics metrics(selectMonth->fontMetrics()); 446 QFontMetrics metrics(selectMonth->fontMetrics());
437 for(int i=1; i <= 12; ++i) 447 for(int i=1; i <= 12; ++i)
438 { // maxMonthRect is used by sizeHint() 448 { // maxMonthRect is used by sizeHint()
439 r=metrics.boundingRect(KGlobal::locale()->monthName(i, false)); 449 r=metrics.boundingRect(KGlobal::locale()->monthName(i, false));
440 maxMonthRect.setWidth(QMAX(r.width(), maxMonthRect.width())); 450 maxMonthRect.setWidth(QMAX(r.width(), maxMonthRect.width()));
441 maxMonthRect.setHeight(QMAX(r.height(), maxMonthRect.height())); 451 maxMonthRect.setHeight(QMAX(r.height(), maxMonthRect.height()));
442 } 452 }
443 table->setFontSize(s); 453 table->setFontSize(s);
444} 454}
445 455
446void KDatePicker::virtual_hook( int id, void* data ) 456void KDatePicker::virtual_hook( int id, void* data )
447{ /*BASE::virtual_hook( id, data );*/ } 457{ /*BASE::virtual_hook( id, data );*/ }
448 458
449void KDatePicker::keyPressEvent ( QKeyEvent * e ) 459void KDatePicker::keyPressEvent ( QKeyEvent * e )
450{ 460{
451 switch ( e->key() ) { 461 switch ( e->key() ) {
452 case Qt::Key_Right: 462 case Qt::Key_Right:
453 monthForwardClicked(); 463 monthForwardClicked();
454 break; 464 break;
455 case Qt::Key_Left: 465 case Qt::Key_Left:
456 monthBackwardClicked(); 466 monthBackwardClicked();
457 break; 467 break;
458 468
459 case Qt::Key_Down: 469 case Qt::Key_Down:
460 yearForwardClicked(); 470 yearForwardClicked();
461 471
462 break; 472 break;
463 473
464 case Qt::Key_Up: 474 case Qt::Key_Up:
465 yearBackwardClicked(); 475 yearBackwardClicked();
466 break; 476 break;
467 477
468 case Qt::Key_Return: 478 case Qt::Key_Return:
469 tableClickedSlot(); 479 tableClickedSlot();
470 break; 480 break;
471 481
472 default: 482 default:
473 break; 483 break;
474 } 484 }
475 485
476} 486}
diff --git a/libkdepim/kdatepicker.h b/libkdepim/kdatepicker.h
index 6625357..3db9a89 100644
--- a/libkdepim/kdatepicker.h
+++ b/libkdepim/kdatepicker.h
@@ -1,181 +1,183 @@
1/* -*- C++ -*- 1/* -*- C++ -*-
2 This file is part of the KDE libraries 2 This file is part of the KDE libraries
3 Copyright (C) 1997 Tim D. Gilman (tdgilman@best.org) 3 Copyright (C) 1997 Tim D. Gilman (tdgilman@best.org)
4 (C) 1998-2001 Mirko Boehm (mirko@kde.org) 4 (C) 1998-2001 Mirko Boehm (mirko@kde.org)
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20#ifndef MICROKDE_KDATEPICKER_H 20#ifndef MICROKDE_KDATEPICKER_H
21#define MICROKDE_KDATEPICKER_H 21#define MICROKDE_KDATEPICKER_H
22#include <qdatetime.h> 22#include <qdatetime.h>
23#include <qframe.h> 23#include <qframe.h>
24#include <qevent.h> 24#include <qevent.h>
25 25
26class QLineEdit; 26class QLineEdit;
27class QToolButton; 27class QToolButton;
28class KDateValidator; 28class KDateValidator;
29class KDateTable; 29class KDateTable;
30class KDateEdit; 30class KDateEdit;
31 31
32/** 32/**
33 * Provides a widget for calendar date input. 33 * Provides a widget for calendar date input.
34 * 34 *
35 * Different from the 35 * Different from the
36 * previous versions, it now emits two types of signals, either 36 * previous versions, it now emits two types of signals, either
37 * @ref dateSelected() or @ref dateEntered() (see documentation for both 37 * @ref dateSelected() or @ref dateEntered() (see documentation for both
38 * signals). 38 * signals).
39 * 39 *
40 * A line edit has been added in the newer versions to allow the user 40 * A line edit has been added in the newer versions to allow the user
41 * to select a date directly by entering numbers like 19990101 41 * to select a date directly by entering numbers like 19990101
42 * or 990101. 42 * or 990101.
43 * 43 *
44 * @image kdatepicker.png KDatePicker 44 * @image kdatepicker.png KDatePicker
45 * 45 *
46 * @version $Id$ 46 * @version $Id$
47 * @author Tim Gilman, Mirko Boehm 47 * @author Tim Gilman, Mirko Boehm
48 * 48 *
49 * @short A date selection widget. 49 * @short A date selection widget.
50 **/ 50 **/
51class KDatePicker: public QFrame 51class KDatePicker: public QFrame
52{ 52{
53 Q_OBJECT 53 Q_OBJECT
54public: 54public:
55 /** The usual constructor. The given date will be displayed 55 /** The usual constructor. The given date will be displayed
56 * initially. 56 * initially.
57 **/ 57 **/
58 KDatePicker(QWidget *parent=0, 58 KDatePicker(QWidget *parent=0,
59 QDate=QDate::currentDate(), 59 QDate=QDate::currentDate(),
60 const char *name=0); 60 const char *name=0);
61 /** 61 /**
62 * The destructor. 62 * The destructor.
63 **/ 63 **/
64 virtual ~KDatePicker(); 64 virtual ~KDatePicker();
65 65
66 /** The size hint for date pickers. The size hint recommends the 66 /** The size hint for date pickers. The size hint recommends the
67 * minimum size of the widget so that all elements may be placed 67 * minimum size of the widget so that all elements may be placed
68 * without clipping. This sometimes looks ugly, so when using the 68 * without clipping. This sometimes looks ugly, so when using the
69 * size hint, try adding 28 to each of the reported numbers of 69 * size hint, try adding 28 to each of the reported numbers of
70 * pixels. 70 * pixels.
71 **/ 71 **/
72 QSize sizeHint() const; 72 QSize sizeHint() const;
73 73
74 /** 74 /**
75 * Sets the date. 75 * Sets the date.
76 * 76 *
77 * @returns @p false and does not change anything 77 * @returns @p false and does not change anything
78 * if the date given is invalid. 78 * if the date given is invalid.
79 **/ 79 **/
80 bool setDate(const QDate&); 80 bool setDate(const QDate&);
81 81
82 /** 82 /**
83 * Returns the selected date. 83 * Returns the selected date.
84 * @deprecated 84 * @deprecated
85 **/ 85 **/
86 const QDate& getDate() const; 86 const QDate& getDate() const;
87 87
88 /** 88 /**
89 * @returns the selected date. 89 * @returns the selected date.
90 */ 90 */
91 const QDate &date() const; 91 const QDate &date() const;
92 92
93 /** 93 /**
94 * Enables or disables the widget. 94 * Enables or disables the widget.
95 **/ 95 **/
96 void setEnabled(bool); 96 void setEnabled(bool);
97 97
98 /** 98 /**
99 * Sets the font size of the widgets elements. 99 * Sets the font size of the widgets elements.
100 **/ 100 **/
101 void setFontSize(int); 101 void setFontSize(int);
102 /** 102 /**
103 * Returns the font size of the widget elements. 103 * Returns the font size of the widget elements.
104 */ 104 */
105 int fontSize() const 105 int fontSize() const
106 { return fontsize; } 106 { return fontsize; }
107protected: 107protected:
108 /// the resize event 108 /// the resize event
109 void resizeEvent(QResizeEvent*); 109 void resizeEvent(QResizeEvent*);
110 QToolButton *todayBut;
110 /// the year forward button 111 /// the year forward button
111 QToolButton *yearForward; 112 QToolButton *yearForward;
112 /// the year backward button 113 /// the year backward button
113 QToolButton *yearBackward; 114 QToolButton *yearBackward;
114 /// the month forward button 115 /// the month forward button
115 QToolButton *monthForward; 116 QToolButton *monthForward;
116 /// the month backward button 117 /// the month backward button
117 QToolButton *monthBackward; 118 QToolButton *monthBackward;
118 /// the button for selecting the month directly 119 /// the button for selecting the month directly
119 QToolButton *selectMonth; 120 QToolButton *selectMonth;
120 /// the button for selecting the year directly 121 /// the button for selecting the year directly
121 QToolButton *selectYear; 122 QToolButton *selectYear;
122 /// the line edit to enter the date directly 123 /// the line edit to enter the date directly
123 //QLineEdit *line; 124 //QLineEdit *line;
124 KDateEdit *lineDate; 125 KDateEdit *lineDate;
125 /// the validator for the line edit: 126 /// the validator for the line edit:
126 KDateValidator *val; 127 KDateValidator *val;
127 /// the date table 128 /// the date table
128 KDateTable *table; 129 KDateTable *table;
129 /// the size calculated during resize events 130 /// the size calculated during resize events
130 // QSize sizehint; 131 // QSize sizehint;
131 /// the widest month string in pixels: 132 /// the widest month string in pixels:
132 QSize maxMonthRect; 133 QSize maxMonthRect;
133protected slots: 134protected slots:
134 void dateChangedSlot(QDate); 135 void dateChangedSlot(QDate);
135 void tableClickedSlot(); 136 void tableClickedSlot();
136 void monthForwardClicked(); 137 void monthForwardClicked();
137 void monthBackwardClicked(); 138 void monthBackwardClicked();
138 void yearForwardClicked(); 139 void yearForwardClicked();
139 void yearBackwardClicked(); 140 void yearBackwardClicked();
140 void selectMonthClicked(); 141 void selectMonthClicked();
141 void selectYearClicked(); 142 void selectYearClicked();
142 void lineEnterPressed(); 143 void lineEnterPressed();
143 void slotSetDate(QDate); 144 void slotSetDate(QDate);
145 void goToday();
144signals: 146signals:
145 /** This signal is emitted each time the selected date is changed. 147 /** This signal is emitted each time the selected date is changed.
146 * Usually, this does not mean that the date has been entered, 148 * Usually, this does not mean that the date has been entered,
147 * since the date also changes, for example, when another month is 149 * since the date also changes, for example, when another month is
148 * selected. 150 * selected.
149 * @see dateSelected 151 * @see dateSelected
150 */ 152 */
151 void dateChanged(QDate); 153 void dateChanged(QDate);
152 /** This signal is emitted each time a day has been selected by 154 /** This signal is emitted each time a day has been selected by
153 * clicking on the table (hitting a day in the current month). It 155 * clicking on the table (hitting a day in the current month). It
154 * has the same meaning as dateSelected() in older versions of 156 * has the same meaning as dateSelected() in older versions of
155 * KDatePicker. 157 * KDatePicker.
156 */ 158 */
157 void dateSelected(QDate); 159 void dateSelected(QDate);
158 /** This signal is emitted when enter is pressed and a VALID date 160 /** This signal is emitted when enter is pressed and a VALID date
159 * has been entered before into the line edit. Connect to both 161 * has been entered before into the line edit. Connect to both
160 * dateEntered() and dateSelected() to receive all events where the 162 * dateEntered() and dateSelected() to receive all events where the
161 * user really enters a date. 163 * user really enters a date.
162 */ 164 */
163 void dateEntered(QDate); 165 void dateEntered(QDate);
164 /** This signal is emitted when the day has been selected by 166 /** This signal is emitted when the day has been selected by
165 * clicking on it in the table. 167 * clicking on it in the table.
166 */ 168 */
167 void tableClicked(); 169 void tableClicked();
168 170
169private: 171private:
170 /// the font size for the widget 172 /// the font size for the widget
171 int fontsize; 173 int fontsize;
172 174
173protected: 175protected:
174 virtual void virtual_hook( int id, void* data ); 176 virtual void virtual_hook( int id, void* data );
175private: 177private:
176 class KDatePickerPrivate; 178 class KDatePickerPrivate;
177 KDatePickerPrivate *d; 179 KDatePickerPrivate *d;
178 void keyPressEvent ( QKeyEvent * ) ; 180 void keyPressEvent ( QKeyEvent * ) ;
179}; 181};
180 182
181#endif // KDATEPICKER_H 183#endif // KDATEPICKER_H