summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt274
-rw-r--r--changelog.txt136
-rw-r--r--desktop/rpm/kdepim_rpm2
-rw-r--r--korganizer/koeventviewer.cpp112
-rw-r--r--korganizer/kotodoview.cpp10
-rw-r--r--libkcal/incidence.cpp4
-rw-r--r--libkcal/incidence.h1
-rw-r--r--version2
8 files changed, 229 insertions, 312 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 03895fd..ef0bd8b 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,279 +1,41 @@
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.28 ************ 3********** VERSION 2.1.0 ************
4 4
5KO/Pi: 5Stable release 2.1.0!
6Fixed two problems in KO/Pi timetracking.
7Added context menu to month view for creating new events/todos.
8Fixed some other small bugs.
9 6
7Summary of changes/fixes compared to version 2.0.6:
10 8
11********** VERSION 2.0.27 ************ 9Many bugs of version 2.0.6 fixed.
10Most of them were small bugs, but some of them were important.
11It is recommended to use version 2.1.0 and not version 2.0.6.
12 12
13More bugfixes. 13Important changes:
14Added possibility to clone in KO/Pi a todo with all its subtodos.
15Added config option for alternate background in list views.
16
17Added a timetracker funtionality in KO/Pi for todos in the todo view.
18If a todo is set to started and then to stopped it is saving information about the runtime in
19<yourhome>/kdepim/apps/timetrackerdir.
20To read, display, print this information an external program is needed which will be developed.
21It will display the data in a Gantt timetable view with one row for each todo.
22It will have many possibilities sorting the data after category, parent todos, attendees, ... and for creating/printing status reports/summaries.
23Merging of data from different computers/users will be quite easy because every run is stored in a single file.
24
25********** VERSION 2.0.26 ************
26
27Added two more fields to the KA/Pi view config:
28A "Mobile (home)" and a "Mobile (work)" field.
29Fixed utf8 import (e.g. for Japaneese text) in KA/Pi.
30
31Some alarm applet enhancements, e.g. sound stops automatically if value of suspend spinbox changes.
32And again fixed some more small bugs.
33
34********** VERSION 2.0.25 ************
35
36And again fixed some bugs.
37
38********** VERSION 2.0.24 ************
39
40Fixed again a lot of small bugs.
41Some performance optimizations in date navigator.
42Month view displays now multi days events on top of each cell, such that it is more likely that all multi days items of one event are in the same row.
43
44********** VERSION 2.0.23 ************
45
46Fixed again a lot of small and strange bugs, e.g. the missing toolbar of KA/Pi after a new installation.
47Fixed the (agenda) layout of KO/Pi on 5500er.
48Some usebility enhancements (e.g. reselection the current item of the todo view after some changes).
49
50********** VERSION 2.0.22 ************
51
52KO/Pi:
53Fix for creating events/todos via the abgenda context menu.
54Added option to split toolbar to 3 toolbars.
55(Toolbar moving s disabled for this option due to a bug in Qt somewhere).
56Added option to show one small filter-view-toolbar.
57Added a print option to the desktop version:
58Now you can print out the view of the "Event Viewer".
59That means you can print all data of one particular event/todo.
60Added scaling options to printout of Event Viewer and What'sNext View.
61Fixed some problems in the month view in "week start sunday" mode.
62KA/Pi:
63Added two more config options.
64Fixed resizing problem of address request dialog when orientation was switched.
65Cleaned up the menu structure.
66Fixed some more problems.
67
68Fixed the annoying problem that scrolling continued after the key was released in KO/Pi Monthview and the KA/Pi views.
69
70And, this is a really cool option (Ben did suggest it):
71Now KO/Pi and KA/Pi can be run from a USB stick:
72All data is read from and written to the stick.
73You can enable this in the global configure option TAB with:
74Save using LOCAL storage.
75Just put KDE-Pim/Pi on a memory stick and you can access all your PIM data on every computer with Windows XP. It will work with the ME and Linux versions as well. I will put a memory stick version for teh next stable release online.
76
77********** VERSION 2.0.21 ************
78
79Fixed another SMTP problem in OM/Pi.
80Some small changed in the new datenavigator in KO/Pi.
81Changed default setting for new filter in KA/Pi to "exclude categories".
82Changed the default font size for 640x480 display .
83Changed popup menu behaviour in agenda and list view.
84Fixed some layout problems of the date label size in the month view.
85Made month view update faster.
86Made first datenavigator repainting faster.
87Changed the title of the event/todo edit dialogs.
88Timelabels in agenga changed from 22:00 to 22 oo. ( the oo higher, of course).
89Many small usebility fixes in KO/Pi.
90Pressing the "Calendar" button on the Z switches now to the next view in KO/Pi.
91The set of possible "next views" are the views you have toolbar buttons for.
92
93Made alarm sound working on Linux.
94
95KO/Pi alarm applet changed:
96Made buttons in alarm dialog much bigger.
97Made setting of timer more user friendly by showing the actual timer fire time and making the buttons in the timer settings much bigger.
98The goal was it to make it possible to use a finger tip ( and not the stylus ) on the touchscreen to adjust the settings.
99
100And because this version is realeased at Easter, I added an Easter-egg:
101With a new undocumented command you can get a message box about the next alarm.
102Good luck to find it!
103
104
105
106********** VERSION 2.0.20 ************
107
108Two small fixes in OM/Pi.
109
110Better resizing of the new datenavigator in KO/Pi.
111
112********** VERSION 2.0.19 ************
113KO/Pi:
114Enhancements and bugfixes in the new datenavigator.
115Bugfix in this changelog:
116The datenavigator was changed in version 2.0.18, not the datepicker.
117
118********** VERSION 2.0.18 ************
119KO/Pi:
120Fixed some minor problems.
121Cleaned up the KO/Pi config dialog.
122Fixed problem moving events in aganda view.
123Made datepicker scaleable, i.e. if the datenavigator shows now a
124datenavigator matrix depending on its size.
125Birthdays are now displayed green in the datenavigator.
126What'sThis Help in datenavigator shows all events of the day.
127
128OM/Pi:
129Updated the backend mail library to the latest version.
130Please backup your mail before using this version.
131
132********** VERSION 2.0.17 ************
133
134KO/Pi:
135Tooltips in month view were not sorted. Fixed.
136Daylabel in agenda view ( for display of one day ) was too short. Fixed.
137Conflict display dialog for syncing was not on top of other windows. Fixed.
138Fixed some minor problems.
139
140Fixed an endless loop when importing vcs file with RESOURCES entry.
141
142********** VERSION 2.0.16 ************
143OM/Pi:
144Fixed the SMTP account setting the option.
145Fixed something in mail sending.
146
147KO/Pi:
148Added possibility to export selected events/todos as vcal file.
149
150********** VERSION 2.0.15 ************
151
152PwM/Pi:
153Added keyboard shorcuts for
154- toggling summary view (space bar)
155- delete item (delete + backspace key)
156- add new item ( i + n key)
157Fixed length of info in the title.
158
159KO/Pi-KA/Pi:
160Changed "ME" menu bar entry to an icon.
161
162KO/Pi:
163Fixed two minor bugs in displaying todos.
164If in month view a cell is selected, the key shortcut "d" shows now that date.
165Added complete info for a todo in month view as an icon left of the text.
166Fixed problems of displaying data when "<" or ">" are used in summary/location/description.
167Fixed problem of search dialog size when switching displays.
168Cancel key now closes date picker.
169Rearranged KO/Pi file menu structure.
170
171OM/Pi:
172Added to the SMTP account setting the option
173"No secure connection".
174You have to configure your SMTP accounts again, sorry.
175
176KA/Pi:
177Added support for importing quoted-printable.
178Support was added by Peter P.. Thanks, Peter!
179
180
181********** VERSION 2.0.14 ************
182
183Made Passwordmanager PwM/Pi more userfriendly:
184Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more.
185Fixed bug in KO/Pi todo printing.
186Made Qtopia calendar import possible on desktop .
187
188********** VERSION 2.0.13 ************
189
190Fixed a problem in the addressee select dialog and made it more user friendly by adding a minimize splitter.
191
192In the search dialog you can switch now the focus from search line edit to the list view by pressing key "arrow down".
193
194OM/Pi:
195Fixed a refresh problem of outgoing/sent/sendfailed folders after sending mails.
196Added missing German translation.
197Added warning if path is specified in local folder settings of account config.
198
199********** VERSION 2.0.12 ************
200
201KO/Pi:
202Fixed a bug in todo start/due date handling for non recurring todos with a start and due date.
203Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes.
204Fixed several problems of the keyboard focus in the desktop versions when opening the search dialog/event viewer.
205
206Fixed problem in pi-sync mode when wrong password was sent.
207
208OM/Pi:
209Fixed a crash when displaying mails with "Show mail as html" was checked in the config.
210Added a check before displaying the mail if the mail is in html format, if "Show mail as html" is enabled.
211
212********** VERSION 2.0.11 ************
213
214Fixed some problems in pi-sync mode
215(e.g. details of events were not synced properly)
216
217********** VERSION 2.0.10 ************
218
219KO/Pi:
220In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view.
221This is fixed.
222Changed the search dialog a bit to make it more user friendly.
223(E.g.: Removed message box about "no items found" and set key focus to search line edit after search).
224
225Added config option to hide the week number in KO/Pi toolbar.
226
227********** VERSION 2.0.9 ************
228
229Made month view icons for multiday events a bit nicer.
230Some minor fixes in KO/Pi
231(e.g. go to today did not work for new week view properly).
232
233
234********** VERSION 2.0.8 ************
235
236Fixed a problem in dependency info in the ipk files for the Zaurus.
237
238Added 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.
239
240Added a "go today" button to the datepicker.
241
242Added "created" and "last modified" to event/todo viewer (and What'sThis viewer)
243and made it configureable to show these values.
244
245Fixed a problem for events (from external iCal files) that do have a duration but no end date.
246
247
248********** VERSION 2.0.7 ************
249
250Added global application font settings
251(for all KDE-Pim/Pi apps) to the general settings.
252
253Fixed a problem in OM/Pi when trying to login to some IMAP servers
254(like the IMAP server of Apple: mail.mac.com )
255 14
256Added recurring todos to KO/Pi. 15Added recurring todos to KO/Pi.
257 16
17Added global application font settings (for all KDE-Pim/Pi apps) to the general settings.
18
19Made Passwordmanager PwM/Pi more userfriendly: Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more.
258 20
259********** VERSION 2.0.6 ************ 21Datenavigator can now display many months. Very useful on the desktop.
260 22
261Stable release 2.0.6! 23KO/Pi alarm applet changed: Made buttons in alarm dialog much bigger and other usebility enhancements.
262 24
263Some bugfixes in the pi-sync mode. 25Made alarm sound working on Linux desktop.
264Added German translation for pi-sync mode.
265 26
266KO/Pi: 27Made KO/Pi and KA/Pi running from a memory stick. Please read storage HowTo for details.
267Made the todolist using alternate background.
268 28
269Other minor fixes in KO/Pi. 29Added timetracking feature in KO/Pi todo view. Please read timetraker HowTo for details.
270 30
31Many other usebility enhancements.
32Special thanks to Ben for his suggestions!
271 33
272You can find the complete changelog 34You can find the complete changelog
273from version 1.7.7 to 2.0.5 35from version 1.7.7 to 2.1.0
274in the source package or on 36in the source package or on
275 37
276http://www.pi-sync.net/html/changelog.html 38http://www.pi-sync.net/html/changelog.html
277 39
278 40
279 41
diff --git a/changelog.txt b/changelog.txt
index 99be167..45e0322 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,10 +1,146 @@
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.1.0 ************
4
5Stable release 2.1.0!
6
7Summary of changes/fixes compared to version 2.0.6:
8
9Many bugs of version 2.0.6 fixed.
10Most of them were small bugs, but some of them were important.
11It is recommended to use version 2.1.0 and not version 2.0.6.
12
13Important changes:
14
15Added recurring todos to KO/Pi.
16
17Added global application font settings (for all KDE-Pim/Pi apps) to the general settings.
18
19Made Passwordmanager PwM/Pi more userfriendly: Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more.
20
21Datenavigator can now display many months. Very useful on the desktop.
22
23KO/Pi alarm applet changed: Made buttons in alarm dialog much bigger and other usebility enhancements.
24
25Made alarm sound working on Linux desktop.
26
27Made KO/Pi and KA/Pi running from a memory stick. Please read storage HowTo for details.
28
29Added timetracking feature in KO/Pi todo view. Please read timetraker HowTo for details.
30
31Many other usebility enhancements.
32Special thanks to Ben for his suggestions!
33
34You can find the complete changelog
35from version 1.7.7 to 2.1.0
36in the source package or on
37
38http://www.pi-sync.net/html/changelog.html
39
40********** VERSION 2.0.28 ************
41
42KO/Pi:
43Fixed two problems in KO/Pi timetracking.
44Added context menu to month view for creating new events/todos.
45Fixed some other small bugs.
46
47
48********** VERSION 2.0.27 ************
49
50More bugfixes.
51Added possibility to clone in KO/Pi a todo with all its subtodos.
52Added config option for alternate background in list views.
53
54Added a timetracker funtionality in KO/Pi for todos in the todo view.
55If a todo is set to started and then to stopped it is saving information about the runtime in
56<yourhome>/kdepim/apps/timetrackerdir.
57To read, display, print this information an external program is needed which will be developed.
58It will display the data in a Gantt timetable view with one row for each todo.
59It will have many possibilities sorting the data after category, parent todos, attendees, ... and for creating/printing status reports/summaries.
60Merging of data from different computers/users will be quite easy because every run is stored in a single file.
61
62********** VERSION 2.0.26 ************
63
64Added two more fields to the KA/Pi view config:
65A "Mobile (home)" and a "Mobile (work)" field.
66Fixed utf8 import (e.g. for Japaneese text) in KA/Pi.
67
68Some alarm applet enhancements, e.g. sound stops automatically if value of suspend spinbox changes.
69And again fixed some more small bugs.
70
71********** VERSION 2.0.25 ************
72
73And again fixed some bugs.
74
75********** VERSION 2.0.24 ************
76
77Fixed again a lot of small bugs.
78Some performance optimizations in date navigator.
79Month view displays now multi days events on top of each cell, such that it is more likely that all multi days items of one event are in the same row.
80
81********** VERSION 2.0.23 ************
82
83Fixed again a lot of small and strange bugs, e.g. the missing toolbar of KA/Pi after a new installation.
84Fixed the (agenda) layout of KO/Pi on 5500er.
85Some usebility enhancements (e.g. reselection the current item of the todo view after some changes).
86
87********** VERSION 2.0.22 ************
88
89KO/Pi:
90Fix for creating events/todos via the abgenda context menu.
91Added option to split toolbar to 3 toolbars.
92(Toolbar moving s disabled for this option due to a bug in Qt somewhere).
93Added option to show one small filter-view-toolbar.
94Added a print option to the desktop version:
95Now you can print out the view of the "Event Viewer".
96That means you can print all data of one particular event/todo.
97Added scaling options to printout of Event Viewer and What'sNext View.
98Fixed some problems in the month view in "week start sunday" mode.
99KA/Pi:
100Added two more config options.
101Fixed resizing problem of address request dialog when orientation was switched.
102Cleaned up the menu structure.
103Fixed some more problems.
104
105Fixed the annoying problem that scrolling continued after the key was released in KO/Pi Monthview and the KA/Pi views.
106
107And, this is a really cool option (Ben did suggest it):
108Now KO/Pi and KA/Pi can be run from a USB stick:
109All data is read from and written to the stick.
110You can enable this in the global configure option TAB with:
111Save using LOCAL storage.
112Just put KDE-Pim/Pi on a memory stick and you can access all your PIM data on every computer with Windows XP. It will work with the ME and Linux versions as well. I will put a memory stick version for teh next stable release online.
113
3********** VERSION 2.0.21 ************ 114********** VERSION 2.0.21 ************
4 115
116Fixed another SMTP problem in OM/Pi.
117Some small changed in the new datenavigator in KO/Pi.
118Changed default setting for new filter in KA/Pi to "exclude categories".
119Changed the default font size for 640x480 display .
120Changed popup menu behaviour in agenda and list view.
121Fixed some layout problems of the date label size in the month view.
122Made month view update faster.
123Made first datenavigator repainting faster.
124Changed the title of the event/todo edit dialogs.
125Timelabels in agenga changed from 22:00 to 22 oo. ( the oo higher, of course).
126Many small usebility fixes in KO/Pi.
127Pressing the "Calendar" button on the Z switches now to the next view in KO/Pi.
128The set of possible "next views" are the views you have toolbar buttons for.
129
130Made alarm sound working on Linux.
131
132KO/Pi alarm applet changed:
133Made buttons in alarm dialog much bigger.
134Made setting of timer more user friendly by showing the actual timer fire time and making the buttons in the timer settings much bigger.
135The goal was it to make it possible to use a finger tip ( and not the stylus ) on the touchscreen to adjust the settings.
136
137And because this version is realeased at Easter, I added an Easter-egg:
138With a new undocumented command you can get a message box about the next alarm.
139Good luck to find it!
140
5 141
6********** VERSION 2.0.20 ************ 142********** VERSION 2.0.20 ************
7 143
8Two small fixes in OM/Pi. 144Two small fixes in OM/Pi.
9 145
10Better resizing of the new datenavigator in KO/Pi. 146Better resizing of the new datenavigator in KO/Pi.
diff --git a/desktop/rpm/kdepim_rpm b/desktop/rpm/kdepim_rpm
index 3889b6f..3b6b52e 100644
--- a/desktop/rpm/kdepim_rpm
+++ b/desktop/rpm/kdepim_rpm
@@ -1,9 +1,9 @@
1Summary: A collection of PIM programs 1Summary: A collection of PIM programs
2Name: KDE-Pim-Pi 2Name: KDE-Pim-Pi
3Version: 2.0.28 3Version: 2.1.0
4Release: SuSE_9.2 4Release: SuSE_9.2
5Copyright:GPL 5Copyright:GPL
6Group: Productivity/Pim 6Group: Productivity/Pim
7Source:http://sourceforge.net/projects/kdepimpi/ 7Source:http://sourceforge.net/projects/kdepimpi/
8URL:http://sourceforge.net/projects/kdepimpi/ 8URL:http://sourceforge.net/projects/kdepimpi/
9Packager: zautrix 9Packager: zautrix
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp
index f39b5e1..c8c2f28 100644
--- a/korganizer/koeventviewer.cpp
+++ b/korganizer/koeventviewer.cpp
@@ -275,12 +275,13 @@ void KOEventViewer::setColorMode( int m )
275} 275}
276void KOEventViewer::appendEvent(Event *event, int mode ) 276void KOEventViewer::appendEvent(Event *event, int mode )
277{ 277{
278 mMailSubject = ""; 278 mMailSubject = "";
279 mCurrentIncidence = event; 279 mCurrentIncidence = event;
280 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 280 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
281 bool wideScreen = ( QApplication::desktop()->width() >= 640 );
281 topLevelWidget()->setCaption(i18n("Event Viewer")); 282 topLevelWidget()->setCaption(i18n("Event Viewer"));
282 if ( mode == 0 ) { 283 if ( mode == 0 ) {
283 addTag("h2",deTag(event->summary())); 284 addTag("h2",deTag(event->summary()));
284 } 285 }
285 else { 286 else {
286 if ( mColorMode == 1 ) { 287 if ( mColorMode == 1 ) {
@@ -328,79 +329,88 @@ void KOEventViewer::appendEvent(Event *event, int mode )
328 .arg(event->dtEndTimeStr())); 329 .arg(event->dtEndTimeStr()));
329 mText.append(i18n("<p><b>On:</b> %1</p> ") 330 mText.append(i18n("<p><b>On:</b> %1</p> ")
330 .arg(event->dtStartDateStr( shortDate ))); 331 .arg(event->dtStartDateStr( shortDate )));
331 } 332 }
332 } 333 }
333 if (!event->location().isEmpty()) { 334 if (!event->location().isEmpty()) {
334 addTag("b",i18n("Location: ")); 335 addTag("p","<b>"+i18n("Location: ")+"</b>"+ deTag(event->location() ) );
335 mText.append(deTag(event->location())+"<br>");
336 mMailSubject += i18n(" at ") + event->location(); 336 mMailSubject += i18n(" at ") + event->location();
337 } 337 }
338 if (event->recurrence()->doesRecur()) { 338 if (event->recurrence()->doesRecur()) {
339 339
340 QString recurText = event->recurrence()->recurrenceText(); 340 QString recurText = event->recurrence()->recurrenceText();
341 addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>"); 341 addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>");
342 bool ok; 342 bool ok;
343 QDate start = QDate::currentDate(); 343 QDate start = QDate::currentDate();
344 QDateTime next; 344 QDateTime next;
345 next = event->getNextOccurence( QDateTime::currentDateTime() , &ok ); 345 next = event->getNextOccurence( QDateTime::currentDateTime() , &ok );
346 if ( ok ) { 346 if ( ok ) {
347 addTag("p",i18n("<b>Next recurrence is on:</b>") ); 347 if ( wideScreen ){
348 addTag("p", KGlobal::locale()->formatDate( next.date(), shortDate )); 348 addTag("p",i18n("<b>Next recurrence is on:</b>") +" " + KGlobal::locale()->formatDate( next.date(), shortDate ) );
349 } else {
350 addTag("p",i18n("<b>Next recurrence is on:</b>") );
351 addTag("p", KGlobal::locale()->formatDate( next.date(), shortDate ));
352 }
349 mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( next, true ); 353 mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( next, true );
350 354
351 } else { 355 } else {
352 bool last; 356 bool last;
353 QDate nextd; 357 QDate nextd;
354 nextd = event->recurrence()->getPreviousDate( QDate::currentDate() , &last ); 358 nextd = event->recurrence()->getPreviousDate( QDate::currentDate() , &last );
355 if ( last ) { 359 if ( last ) {
356 addTag("p",i18n("<b>Last recurrence was on:</b>") ); 360 if ( wideScreen ){
357 addTag("p", KGlobal::locale()->formatDate( nextd, shortDate )); 361 addTag("p",i18n("<b>Last recurrence was on:</b>") +" " + KGlobal::locale()->formatDate( nextd, shortDate ));
362 } else{
363 addTag("p",i18n("<b>Last recurrence was on:</b>") );
364 addTag("p", KGlobal::locale()->formatDate( nextd, shortDate ));
365 }
358 } 366 }
359 } 367 }
360 } else { 368 } else {
361 mMailSubject += i18n(" - " )+event->dtStartStr( true ); 369 mMailSubject += i18n(" - " )+event->dtStartStr( true );
362 370
363 } 371 }
364 372
365 373
366 if (event->isAlarmEnabled()) { 374 if (event->isAlarmEnabled()) {
367 Alarm *alarm =event->alarms().first() ; 375 Alarm *alarm =event->alarms().first() ;
368 QDateTime t = alarm->time(); 376 QDateTime t = alarm->time();
369 QString s =i18n("( %1 before )").arg( alarm->offsetText() ); 377 QString s =i18n("( %1 before )").arg( alarm->offsetText() );
370 addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); 378 if(wideScreen ){
371 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); 379 addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate ));
380 }else{
381 addTag("p",i18n("<b>Alarm on: ") + s +" </b>");
382 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate ));
383 }
372 //addTag("p",s); 384 //addTag("p",s);
373 } 385 }
374 386
375 addTag("b",i18n("Access: ")); 387 addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr());
376 mText.append(event->secrecyStr()+"<br>");
377 388
378
379
380 formatCategories(event); 389 formatCategories(event);
381 390
382 formatReadOnly(event); 391 formatReadOnly(event);
383 formatAttendees(event); 392 formatAttendees(event);
384 393
385 if ( KOPrefs::instance()->mEVshowCreated ) { 394 if ( KOPrefs::instance()->mEVshowCreated ) {
386#ifdef DESKTOP_VERSION 395 if(wideScreen ){
387 addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); 396 addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate ));
388#else 397 }else{
389 addTag("p",i18n("<b>Created: ") +" </b>"); 398 addTag("p",i18n("<b>Created: ") +" </b>");
390 addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); 399 addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate ));
391#endif 400 }
401
392 402
393 } 403 }
394 if ( KOPrefs::instance()->mEVshowChanged ) { 404 if ( KOPrefs::instance()->mEVshowChanged ) {
395#ifdef DESKTOP_VERSION 405 if(wideScreen ){
396 addTag("p",i18n("<b>Last modified: ") +" </b>" + KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); 406 addTag("p",i18n("<b>Last modified: ") +" </b>" + KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) );
397#else 407 }else{
398 addTag("p",i18n("<b>Last modified: ") +" </b>"); 408 addTag("p",i18n("<b>Last modified: ") +" </b>");
399 addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); 409 addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ));
400#endif 410 }
401 411
402 } 412 }
403 if ( KOPrefs::instance()->mEVshowDetails ) { 413 if ( KOPrefs::instance()->mEVshowDetails ) {
404 if (!event->description().isEmpty()) { 414 if (!event->description().isEmpty()) {
405 addTag("p",i18n("<b>Details: </b>")); 415 addTag("p",i18n("<b>Details: </b>"));
406 addTag("p",deTag(event->description())); 416 addTag("p",deTag(event->description()));
@@ -414,12 +424,13 @@ void KOEventViewer::appendEvent(Event *event, int mode )
414void KOEventViewer::appendTodo(Todo *event, int mode ) 424void KOEventViewer::appendTodo(Todo *event, int mode )
415{ 425{
416 mMailSubject = ""; 426 mMailSubject = "";
417 mCurrentIncidence = event; 427 mCurrentIncidence = event;
418 topLevelWidget()->setCaption(i18n("Todo Viewer")); 428 topLevelWidget()->setCaption(i18n("Todo Viewer"));
419 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 429 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
430 bool wideScreen = ( QApplication::desktop()->width() >= 640 );
420 if (mode == 0 ) 431 if (mode == 0 )
421 addTag("h2",deTag(event->summary())); 432 addTag("h2",deTag(event->summary()));
422 else { 433 else {
423 if ( mColorMode == 1 ) { 434 if ( mColorMode == 1 ) {
424 mText +="<font color=\"#00A000\">"; 435 mText +="<font color=\"#00A000\">";
425 } 436 }
@@ -466,54 +477,56 @@ void KOEventViewer::appendTodo(Todo *event, int mode )
466 mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer))); 477 mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer)));
467 } 478 }
468 if (event->hasDueDate()) { 479 if (event->hasDueDate()) {
469 mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); 480 mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer)));
470 mMailSubject += i18n(" - " )+event->dtDueStr( true ); 481 mMailSubject += i18n(" - " )+event->dtDueStr( true );
471 } 482 }
472 if (!event->location().isEmpty()) { 483 if (!event->location().isEmpty()) {
473 addTag("b",i18n("Location: ")); 484 addTag("p","<b>"+i18n("Location: ")+"</b>"+ deTag(event->location() ) );
474 mText.append(deTag(event->location())+"<br>");
475 mMailSubject += i18n(" at ") + event->location(); 485 mMailSubject += i18n(" at ") + event->location();
476 } 486 }
477 mText.append(i18n("<p><b>Priority:</b> %2</p>") 487 mText.append(i18n("<p><b>Priority:</b> %2</p>")
478 .arg(QString::number(event->priority()))); 488 .arg(QString::number(event->priority())));
479 489
480 if (event->isAlarmEnabled()) { 490 if (event->isAlarmEnabled()) {
481 Alarm *alarm =event->alarms().first() ; 491 Alarm *alarm =event->alarms().first() ;
482 QDateTime t = alarm->time(); 492 QDateTime t = alarm->time();
483 QString s =i18n("( %1 before )").arg( alarm->offsetText() ); 493 QString s =i18n("( %1 before )").arg( alarm->offsetText() );
484 addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); 494 if ( wideScreen ) {
485 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); 495 addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate ));
486 //addTag("p",s); 496 } else {
497 addTag("p",i18n("<b>Alarm on: ") + s +" </b>");
498 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate ));
499 }
487 } 500 }
488 501
489 addTag("b",i18n("Access: ")); 502 addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr());
490 mText.append(event->secrecyStr()+"<br>");
491 503
492 formatCategories(event); 504 formatCategories(event);
493 505
494 formatReadOnly(event); 506 formatReadOnly(event);
495 formatAttendees(event); 507 formatAttendees(event);
496 508
497 if ( KOPrefs::instance()->mEVshowCreated ) { 509 if ( KOPrefs::instance()->mEVshowCreated ) {
498#ifdef DESKTOP_VERSION 510 if(wideScreen ){
499 addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); 511
500#else 512 addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate ));
501 addTag("p",i18n("<b>Created: ") +" </b>"); 513
502 addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); 514 } else {
503#endif 515 addTag("p",i18n("<b>Created: ") +" </b>");
504 516 addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate ));
517 }
505 } 518 }
506 if ( KOPrefs::instance()->mEVshowChanged ) { 519 if ( KOPrefs::instance()->mEVshowChanged ) {
507#ifdef DESKTOP_VERSION 520 if(wideScreen ){
508 addTag("p",i18n("<b>Last modified: ") +" </b>" +KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); 521 addTag("p",i18n("<b>Last modified: ") +" </b>" +KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) );
509#else 522
510 addTag("p",i18n("<b>Last modified: ") +" </b>"); 523 } else {
511 addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); 524 addTag("p",i18n("<b>Last modified: ") +" </b>");
512#endif 525 addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ));
513 526 }
514 } 527 }
515 if ( event->relatedTo() ) { 528 if ( event->relatedTo() ) {
516 addTag("b",i18n("Parent todo:<br>")); 529 addTag("b",i18n("Parent todo:<br>"));
517 mText.append(deTag(event->relatedTo()->summary())+" [" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] <br>"); 530 mText.append(deTag(event->relatedTo()->summary())+" [" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] <br>");
518 } 531 }
519 QPtrList<Incidence> Relations = event->relations(); 532 QPtrList<Incidence> Relations = event->relations();
@@ -535,17 +548,16 @@ void KOEventViewer::appendTodo(Todo *event, int mode )
535} 548}
536 549
537void KOEventViewer::formatCategories(Incidence *event) 550void KOEventViewer::formatCategories(Incidence *event)
538{ 551{
539 if (!event->categoriesStr().isEmpty()) { 552 if (!event->categoriesStr().isEmpty()) {
540 if (event->categories().count() == 1) { 553 if (event->categories().count() == 1) {
541 addTag("h3",i18n("Category")); 554 addTag("p","<b>"+i18n("Category") + ":</b> " + event->categoriesStrWithSpace());
542 } else { 555 } else {
543 addTag("h3",i18n("Categories")); 556 addTag("p","<b>"+i18n("Categories")+":</b> " + event->categoriesStrWithSpace() ) ;
544 } 557 }
545 addTag("p",event->categoriesStr());
546 } 558 }
547} 559}
548void KOEventViewer::formatAttendees(Incidence *event) 560void KOEventViewer::formatAttendees(Incidence *event)
549{ 561{
550 QPtrList<Attendee> attendees = event->attendees(); 562 QPtrList<Attendee> attendees = event->attendees();
551 if (attendees.count()) { 563 if (attendees.count()) {
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 0a608dc..25be63a 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -461,13 +461,16 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
461 mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i; 461 mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i;
462 } 462 }
463 connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int))); 463 connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int)));
464 464
465 465
466 466
467 mItemPopupMenu = new QPopupMenu(this); 467 mItemPopupMenu = new QPopupMenu(this);
468 mItemPopupMenu->insertItem( i18n("Start/Stop todo..."), this,
469 SLOT (toggleRunningItem()));
470 mItemPopupMenu->insertSeparator();
468 mItemPopupMenu->insertItem(i18n("Show..."), this, 471 mItemPopupMenu->insertItem(i18n("Show..."), this,
469 SLOT (showTodo())); 472 SLOT (showTodo()));
470 mItemPopupMenu->insertItem(i18n("Edit..."), this, 473 mItemPopupMenu->insertItem(i18n("Edit..."), this,
471 SLOT (editTodo())); 474 SLOT (editTodo()));
472 mItemPopupMenu->insertItem( i18n("Delete"), this, 475 mItemPopupMenu->insertItem( i18n("Delete"), this,
473 SLOT (deleteTodo())); 476 SLOT (deleteTodo()));
@@ -477,17 +480,16 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
477 SLOT (moveTodo())); 480 SLOT (moveTodo()));
478 mItemPopupMenu->insertItem( i18n("Beam..."), this, 481 mItemPopupMenu->insertItem( i18n("Beam..."), this,
479 SLOT (beamTodo())); 482 SLOT (beamTodo()));
480 mItemPopupMenu->insertItem( i18n("Toggle Cancel"), this, 483 mItemPopupMenu->insertItem( i18n("Toggle Cancel"), this,
481 SLOT (cancelTodo())); 484 SLOT (cancelTodo()));
482 mItemPopupMenu->insertSeparator(); 485 mItemPopupMenu->insertSeparator();
483 486 /*
484 mItemPopupMenu->insertItem( i18n("Start/Stop todo..."), this,
485 SLOT (toggleRunningItem()));
486 mItemPopupMenu->insertItem( i18n("New Todo..."), this, 487 mItemPopupMenu->insertItem( i18n("New Todo..."), this,
487 SLOT (newTodo())); 488 SLOT (newTodo()));
489 */
488 mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this, 490 mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this,
489 SLOT (newSubTodo())); 491 SLOT (newSubTodo()));
490 mItemPopupMenu->insertItem(i18n("Unparent Todo"), this, 492 mItemPopupMenu->insertItem(i18n("Unparent Todo"), this,
491 SLOT (unparentTodo()),0,21); 493 SLOT (unparentTodo()),0,21);
492 mItemPopupMenu->insertItem(i18n("Reparent Todo"), this, 494 mItemPopupMenu->insertItem(i18n("Reparent Todo"), this,
493 SLOT (reparentTodo()),0,22); 495 SLOT (reparentTodo()),0,22);
diff --git a/libkcal/incidence.cpp b/libkcal/incidence.cpp
index 78fa24f..9c35b1d 100644
--- a/libkcal/incidence.cpp
+++ b/libkcal/incidence.cpp
@@ -377,12 +377,16 @@ QStringList Incidence::categories() const
377} 377}
378 378
379QString Incidence::categoriesStr() 379QString Incidence::categoriesStr()
380{ 380{
381 return mCategories.join(","); 381 return mCategories.join(",");
382} 382}
383QString Incidence::categoriesStrWithSpace()
384{
385 return mCategories.join(", ");
386}
383 387
384void Incidence::setRelatedToUid(const QString &relatedToUid) 388void Incidence::setRelatedToUid(const QString &relatedToUid)
385{ 389{
386 if (mReadOnly) return; 390 if (mReadOnly) return;
387 mRelatedToUid = relatedToUid; 391 mRelatedToUid = relatedToUid;
388} 392}
diff --git a/libkcal/incidence.h b/libkcal/incidence.h
index 60070a2..327e7dd 100644
--- a/libkcal/incidence.h
+++ b/libkcal/incidence.h
@@ -155,12 +155,13 @@ class Incidence : public IncidenceBase
155 /** set event's categories based on a comma delimited string */ 155 /** set event's categories based on a comma delimited string */
156 void setCategories(const QString &catStr); 156 void setCategories(const QString &catStr);
157 /** return categories in a list */ 157 /** return categories in a list */
158 QStringList categories() const; 158 QStringList categories() const;
159 /** return categories as a comma separated string */ 159 /** return categories as a comma separated string */
160 QString categoriesStr(); 160 QString categoriesStr();
161 QString categoriesStrWithSpace();
161 162
162 /** point at some other event to which the event relates. This function should 163 /** point at some other event to which the event relates. This function should
163 * only be used when constructing a calendar before the related Event 164 * only be used when constructing a calendar before the related Event
164 * exists. */ 165 * exists. */
165 void setRelatedToUid(const QString &); 166 void setRelatedToUid(const QString &);
166 /** what event does this one relate to? This function should 167 /** what event does this one relate to? This function should
diff --git a/version b/version
index a87e533..da7dcfc 100644
--- a/version
+++ b/version
@@ -1 +1 @@
version = "2.0.28"; version = "2.1.0";