summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-01-15 01:19:32 (UTC)
committer zautrix <zautrix>2005-01-15 01:19:32 (UTC)
commita423c235d0cbc39292102042ed8f4a953e0e37f9 (patch) (unidiff)
treee6212045a5c20b77692bcc4671c03ac683bf8367
parent80da9080c1c33c4704806c442179522edce06bd2 (diff)
downloadkdepimpi-a423c235d0cbc39292102042ed8f4a953e0e37f9.zip
kdepimpi-a423c235d0cbc39292102042ed8f4a953e0e37f9.tar.gz
kdepimpi-a423c235d0cbc39292102042ed8f4a953e0e37f9.tar.bz2
better todo info
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt1
-rw-r--r--korganizer/koeventviewer.cpp16
-rw-r--r--korganizer/koeventviewerdialog.cpp3
3 files changed, 19 insertions, 1 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index da33d12..ccebf58 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,137 +1,138 @@
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 1.9.17 ************ 3********** VERSION 1.9.17 ************
4 4
5KO/Pi: 5KO/Pi:
6Fixed that tooltips were not updated after moving an item in agenda view. 6Fixed that tooltips were not updated after moving an item in agenda view.
7Fixed a bug in sorting start date for recurring events in list view. 7Fixed a bug in sorting start date for recurring events in list view.
8Changed the left button in todo viewer from "Agenda" to "Set completed". 8Changed the left button in todo viewer from "Agenda" to "Set completed".
9This 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. 9This 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.
10Added more info in the todo viewer: Startdate, parent/sub todos.
10 11
11 12
12KA/Pi: 13KA/Pi:
13All fields search does now actually search all the (possible) fields, 14All fields search does now actually search all the (possible) fields,
14not only those listed in the contact list. 15not only those listed in the contact list.
15Made is possible to inline a picture in a vcard on the Z. 16Made is possible to inline a picture in a vcard on the Z.
16This was only possible on the desktop, now is it possible on the Z as well. 17This was only possible on the desktop, now is it possible on the Z as well.
17Fixed of missing save settings after filter configuration. 18Fixed of missing save settings after filter configuration.
18Made saving of addressbook much faster. 19Made saving of addressbook much faster.
19Fixed extension widget layout problem. 20Fixed extension widget layout problem.
20Fixed saving of default formatted name settings. 21Fixed saving of default formatted name settings.
21Fixed formatted name handling in edit dialog. 22Fixed formatted name handling in edit dialog.
22Added an option for changing formatted names of many contacts 23Added an option for changing formatted names of many contacts
23(menu: File - Change - Set formatted name). 24(menu: File - Change - Set formatted name).
24 25
25QWhatsThis was not working on the Z ( only black rectangle was shown). 26QWhatsThis was not working on the Z ( only black rectangle was shown).
26This is Fixed. 27This is Fixed.
27 28
28KDE-Sync: 29KDE-Sync:
29Now readonly KDE resources are synced as well. 30Now readonly KDE resources are synced as well.
30(They are not changed in KDE itself, of course). 31(They are not changed in KDE itself, of course).
31 32
32 33
33 34
34********** VERSION 1.9.16 ************ 35********** VERSION 1.9.16 ************
35 36
36KO/Pi: 37KO/Pi:
37Fixed search dialog size on Z 6000 (480x640 display). 38Fixed search dialog size on Z 6000 (480x640 display).
38Added setting to hide/show time in agenda items. 39Added setting to hide/show time in agenda items.
39Added setting to hide not running todos in todo view. 40Added setting to hide not running todos in todo view.
40Added columns for start date/time in todo view. 41Added columns for start date/time in todo view.
41Replaced the solid half-hour lines in agenda view by dot lines. 42Replaced the solid half-hour lines in agenda view by dot lines.
42Added possibility of printing the What's Next View on the desktop 43Added possibility of printing the What's Next View on the desktop
43(i.e. Windows and Linux). 44(i.e. Windows and Linux).
44Fixed a crash in KO/Pi when starting KO/Pi with What's Next view. 45Fixed a crash in KO/Pi when starting KO/Pi with What's Next view.
45Added tooltips in month view.(Tooltips only available on desktop) 46Added tooltips in month view.(Tooltips only available on desktop)
46 47
47Fixed a strange problem in KO/Pi alarm applet. 48Fixed a strange problem in KO/Pi alarm applet.
48Did not find the actual problem, 49Did not find the actual problem,
49such that now Qtopia reboots again if deinstalling the alarm applet. 50such that now Qtopia reboots again if deinstalling the alarm applet.
50But the alarm applet should work again. 51But the alarm applet should work again.
51 52
52KA/Pi: 53KA/Pi:
53Fixed the problem, that internal pictures were not saved. 54Fixed the problem, that internal pictures were not saved.
54 55
55Fixed a problem in the pi-sync mode by increasing the timeout for data transfer from 20 seconds to 5 minutes. 56Fixed a problem in the pi-sync mode by increasing the timeout for data transfer from 20 seconds to 5 minutes.
56 57
57Fixed some minor problems. (Like word wrap in help text windows). 58Fixed some minor problems. (Like word wrap in help text windows).
58 59
59Fixed a compiling problem in microkde/kresources. 60Fixed a compiling problem in microkde/kresources.
60 61
61KO/Pi is using zdbat (renamed to db2file) for syncing with Sharp DTM. 62KO/Pi is using zdbat (renamed to db2file) for syncing with Sharp DTM.
62This version now includes zdbat 1.0.0 (old version was zdbat 0.2.9) 63This version now includes zdbat 1.0.0 (old version was zdbat 0.2.9)
63such that now syncing KO/Pi with Sharp DTM should work on the 64such that now syncing KO/Pi with Sharp DTM should work on the
64Zaurus C 3000 model. 65Zaurus C 3000 model.
65 66
66********** VERSION 1.9.15 ************ 67********** VERSION 1.9.15 ************
67 68
68Usebilty enhancements in KO/Pi: 69Usebilty enhancements in KO/Pi:
69When clicking on the date in a month view cell, the day view is shown. 70When clicking on the date in a month view cell, the day view is shown.
70Old behaviour was, that the "new event" dialog popped up. 71Old behaviour was, that the "new event" dialog popped up.
71 72
72Added a one step "undo delete" in KO/Pi (Accessable in the "Action" menu). 73Added a one step "undo delete" in KO/Pi (Accessable in the "Action" menu).
73That means, you can restore the latest 74That means, you can restore the latest
74event/todo/journal you have deleted. 75event/todo/journal you have deleted.
75A journal is deleted, if you clear all the text of the journal. 76A journal is deleted, if you clear all the text of the journal.
76 77
77Fixed the bug of the editor dialogs in KO/Pi of version 1.9.14. 78Fixed the bug of the editor dialogs in KO/Pi of version 1.9.14.
78 79
79KA/Pi starting in 480x640 resolution: 80KA/Pi starting in 480x640 resolution:
80Hide the filter action in toolbar 81Hide the filter action in toolbar
81and added icons for undo/delete/redo in toolbar. 82and added icons for undo/delete/redo in toolbar.
82 83
83Change in OM/Pi ViewMail dialog: 84Change in OM/Pi ViewMail dialog:
84When clicking on the "delete" icon the mail is deleted after confirmation as usual. 85When clicking on the "delete" icon the mail is deleted after confirmation as usual.
85But the edit dialog is not closed as before, now the next mail in the folder is shown automatically (if there is any). 86But the edit dialog is not closed as before, now the next mail in the folder is shown automatically (if there is any).
86 87
87Fixed a crash when deleting mail-accounts in OM/Pi. 88Fixed a crash when deleting mail-accounts in OM/Pi.
88 89
89 90
90********** VERSION 1.9.14 ************ 91********** VERSION 1.9.14 ************
91 92
92Fixed some problems with the dialog sizes when switching 93Fixed some problems with the dialog sizes when switching
93portrait/landscape mode on 640x480 PDA display. 94portrait/landscape mode on 640x480 PDA display.
94 95
95Fixed some other small bugs in KA/Pi KO/Pi and OM/Pi and PwM/Pi. 96Fixed some other small bugs in KA/Pi KO/Pi and OM/Pi and PwM/Pi.
96 97
97Fixed an ugly bug in KOpieMail: 98Fixed an ugly bug in KOpieMail:
98KOpieMail was not able to write files (mails) to MSDOS file system, 99KOpieMail was not able to write files (mails) to MSDOS file system,
99like on an usual preformatted SD card. That should work now. 100like on an usual preformatted SD card. That should work now.
100To save your mail data on the Sd card do the following: 101To save your mail data on the Sd card do the following:
101Create a dir on the SD card: 102Create a dir on the SD card:
102mkdir /mnt/card/localmail 103mkdir /mnt/card/localmail
103Go to your home dir: 104Go to your home dir:
104cd 105cd
105Go to kopiemail data storage dir: 106Go to kopiemail data storage dir:
106cd kdepim/apps/kopiemail 107cd kdepim/apps/kopiemail
107Create a symlink to the SD card: 108Create a symlink to the SD card:
108ls -s /mnt/card/localmail 109ls -s /mnt/card/localmail
109Now KOpieMail will store all mails on the SD card. 110Now KOpieMail will store all mails on the SD card.
110 111
111KO/Pi Monthview: 112KO/Pi Monthview:
112Now "Go to Today" selects the current month from day 1-end, 113Now "Go to Today" selects the current month from day 1-end,
113not the current date + some days. 114not the current date + some days.
114I.e. "Go to Today" shows now always 115I.e. "Go to Today" shows now always
115the current month with first day of month in the first row. 116the current month with first day of month in the first row.
116 117
117Added missing German translation. 118Added missing German translation.
118 119
119Fixed icons of executeable on Wintendo. 120Fixed icons of executeable on Wintendo.
120 121
121Added a "Show next Mail" button to the OM/Pi 122Added a "Show next Mail" button to the OM/Pi
122mail viewer such that the mail below the current mail 123mail viewer such that the mail below the current mail
123in the mail list view of the current folder 124in the mail list view of the current folder
124can be read with a single click. 125can be read with a single click.
125 126
126 127
127********** VERSION 1.9.13 ************ 128********** VERSION 1.9.13 ************
128 129
129Fixed nasty PwM/Pi file reading bug, when 130Fixed nasty PwM/Pi file reading bug, when
130the used hash algo of file is different then the global 131the used hash algo of file is different then the global
131hash algo. 132hash algo.
132 133
133Added KA/Pi support for opie mailit mailapplication. 134Added KA/Pi support for opie mailit mailapplication.
134 135
135Fixed some bugs in OM/Pi. 136Fixed some bugs in OM/Pi.
136Now character conversion tables are available for the Zaurus 137Now character conversion tables are available for the Zaurus
137to make OM/Pi working properly. 138to make OM/Pi working properly.
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp
index 1fcc977..cee0466 100644
--- a/korganizer/koeventviewer.cpp
+++ b/korganizer/koeventviewer.cpp
@@ -235,278 +235,292 @@ void KOEventViewer::appendEvent(Event *event, int mode )
235 mText += "</font>"; 235 mText += "</font>";
236 } 236 }
237 mMailSubject += i18n( "Meeting " )+ event->summary(); 237 mMailSubject += i18n( "Meeting " )+ event->summary();
238 if (event->cancelled ()) { 238 if (event->cancelled ()) {
239 mText +="<font color=\"#B00000\">"; 239 mText +="<font color=\"#B00000\">";
240 addTag("i",i18n("This event has been cancelled!")); 240 addTag("i",i18n("This event has been cancelled!"));
241 mText.append("<br>"); 241 mText.append("<br>");
242 mText += "</font>"; 242 mText += "</font>";
243 mMailSubject += i18n("(cancelled)"); 243 mMailSubject += i18n("(cancelled)");
244 } 244 }
245 if (!event->location().isEmpty()) { 245 if (!event->location().isEmpty()) {
246 addTag("b",i18n("Location: ")); 246 addTag("b",i18n("Location: "));
247 mText.append(event->location()+"<br>"); 247 mText.append(event->location()+"<br>");
248 mMailSubject += i18n(" at ") + event->location(); 248 mMailSubject += i18n(" at ") + event->location();
249 } 249 }
250 if (event->doesFloat()) { 250 if (event->doesFloat()) {
251 if (event->isMultiDay()) { 251 if (event->isMultiDay()) {
252 mText.append(i18n("<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>") 252 mText.append(i18n("<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>")
253 .arg(event->dtStartDateStr(shortDate)) 253 .arg(event->dtStartDateStr(shortDate))
254 .arg(event->dtEndDateStr(shortDate))); 254 .arg(event->dtEndDateStr(shortDate)));
255 } else { 255 } else {
256 mText.append(i18n("<p><b>On:</b> %1</p>").arg(event->dtStartDateStr( shortDate ))); 256 mText.append(i18n("<p><b>On:</b> %1</p>").arg(event->dtStartDateStr( shortDate )));
257 } 257 }
258 } else { 258 } else {
259 if (event->isMultiDay()) { 259 if (event->isMultiDay()) {
260 mText.append(i18n("<p><b>From:</b> %1</p> ") 260 mText.append(i18n("<p><b>From:</b> %1</p> ")
261 .arg(event->dtStartStr( shortDate))); 261 .arg(event->dtStartStr( shortDate)));
262 mText.append(i18n("<p><b>To:</b> %1</p>") 262 mText.append(i18n("<p><b>To:</b> %1</p>")
263 .arg(event->dtEndStr(shortDate))); 263 .arg(event->dtEndStr(shortDate)));
264 } else { 264 } else {
265 mText.append(i18n("<p><b>On:</b> %1</p> ") 265 mText.append(i18n("<p><b>On:</b> %1</p> ")
266 .arg(event->dtStartDateStr( shortDate ))); 266 .arg(event->dtStartDateStr( shortDate )));
267 mText.append(i18n("<p><b>From:</b> %1 <b>To:</b> %2</p>") 267 mText.append(i18n("<p><b>From:</b> %1 <b>To:</b> %2</p>")
268 .arg(event->dtStartTimeStr()) 268 .arg(event->dtStartTimeStr())
269 .arg(event->dtEndTimeStr())); 269 .arg(event->dtEndTimeStr()));
270 } 270 }
271 } 271 }
272 272
273 if (event->recurrence()->doesRecur()) { 273 if (event->recurrence()->doesRecur()) {
274 274
275 QString recurText = event->recurrence()->recurrenceText(); 275 QString recurText = event->recurrence()->recurrenceText();
276 addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>"); 276 addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>");
277 bool last; 277 bool last;
278 QDate start = QDate::currentDate(); 278 QDate start = QDate::currentDate();
279 QDate next; 279 QDate next;
280 next = event->recurrence()->getPreviousDate( start , &last ); 280 next = event->recurrence()->getPreviousDate( start , &last );
281 if ( !last ) { 281 if ( !last ) {
282 next = event->recurrence()->getNextDate( start.addDays( - 1 ) ); 282 next = event->recurrence()->getNextDate( start.addDays( - 1 ) );
283 addTag("p",i18n("<b>Next recurrence is on:</b>") ); 283 addTag("p",i18n("<b>Next recurrence is on:</b>") );
284 addTag("p", KGlobal::locale()->formatDate( next, shortDate )); 284 addTag("p", KGlobal::locale()->formatDate( next, shortDate ));
285 QDateTime nextdt = QDateTime( next, event->dtStart().time()); 285 QDateTime nextdt = QDateTime( next, event->dtStart().time());
286 mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( nextdt, true ); 286 mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( nextdt, true );
287 287
288 } else { 288 } else {
289 addTag("p",i18n("<b>Last recurrence was on:</b>") ); 289 addTag("p",i18n("<b>Last recurrence was on:</b>") );
290 addTag("p", KGlobal::locale()->formatDate( next, shortDate )); 290 addTag("p", KGlobal::locale()->formatDate( next, shortDate ));
291 } 291 }
292 } else { 292 } else {
293 mMailSubject += i18n(" - " )+event->dtStartStr( true ); 293 mMailSubject += i18n(" - " )+event->dtStartStr( true );
294 294
295 } 295 }
296 296
297 297
298 if (event->isAlarmEnabled()) { 298 if (event->isAlarmEnabled()) {
299 Alarm *alarm =event->alarms().first() ; 299 Alarm *alarm =event->alarms().first() ;
300 QDateTime t = alarm->time(); 300 QDateTime t = alarm->time();
301 int min = t.secsTo( event->dtStart() )/60; 301 int min = t.secsTo( event->dtStart() )/60;
302 QString s =i18n("( %1 min before )").arg( min ); 302 QString s =i18n("( %1 min before )").arg( min );
303 addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); 303 addTag("p",i18n("<b>Alarm on: ") + s +" </b>");
304 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); 304 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate ));
305 //addTag("p",s); 305 //addTag("p",s);
306 } 306 }
307 307
308 addTag("b",i18n("Access: ")); 308 addTag("b",i18n("Access: "));
309 mText.append(event->secrecyStr()+"<br>"); 309 mText.append(event->secrecyStr()+"<br>");
310 if (!event->description().isEmpty()) { 310 if (!event->description().isEmpty()) {
311 addTag("p",i18n("<b>Details: </b>")); 311 addTag("p",i18n("<b>Details: </b>"));
312 addTag("p",event->description()); 312 addTag("p",event->description());
313 } 313 }
314 314
315 formatCategories(event); 315 formatCategories(event);
316 316
317 formatReadOnly(event); 317 formatReadOnly(event);
318 formatAttendees(event); 318 formatAttendees(event);
319 319
320 setText(mText); 320 setText(mText);
321 //QWhatsThis::add(this,mText); 321 //QWhatsThis::add(this,mText);
322 322
323} 323}
324 324
325void KOEventViewer::appendTodo(Todo *event, int mode ) 325void KOEventViewer::appendTodo(Todo *event, int mode )
326{ 326{
327 mMailSubject = ""; 327 mMailSubject = "";
328 mCurrentIncidence = event; 328 mCurrentIncidence = event;
329 topLevelWidget()->setCaption(i18n("Todo Viewer")); 329 topLevelWidget()->setCaption(i18n("Todo Viewer"));
330 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 330 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
331 if (mode == 0 ) 331 if (mode == 0 )
332 addTag("h2",event->summary()); 332 addTag("h2",event->summary());
333 else { 333 else {
334 if ( mColorMode == 1 ) { 334 if ( mColorMode == 1 ) {
335 mText +="<font color=\"#00A000\">"; 335 mText +="<font color=\"#00A000\">";
336 } 336 }
337 if ( mColorMode == 2 ) { 337 if ( mColorMode == 2 ) {
338 mText +="<font color=\"#B00000\">"; 338 mText +="<font color=\"#B00000\">";
339 } 339 }
340 if ( mode == 1 ) { 340 if ( mode == 1 ) {
341 addTag("h2",i18n( "Local: " ) +event->summary()); 341 addTag("h2",i18n( "Local: " ) +event->summary());
342 } else { 342 } else {
343 addTag("h2",i18n( "Remote: " ) +event->summary()); 343 addTag("h2",i18n( "Remote: " ) +event->summary());
344 } 344 }
345 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) ); 345 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) );
346 if ( mColorMode ) 346 if ( mColorMode )
347 mText += "</font>"; 347 mText += "</font>";
348 } 348 }
349 mMailSubject += i18n( "Todo " )+ event->summary(); 349 mMailSubject += i18n( "Todo " )+ event->summary();
350 if (event->cancelled ()) { 350 if (event->cancelled ()) {
351 mText +="<font color=\"#B00000\">"; 351 mText +="<font color=\"#B00000\">";
352 addTag("i",i18n("This todo has been cancelled!")); 352 addTag("i",i18n("This todo has been cancelled!"));
353 mText.append("<br>"); 353 mText.append("<br>");
354 mText += "</font>"; 354 mText += "</font>";
355 mMailSubject += i18n("(cancelled)"); 355 mMailSubject += i18n("(cancelled)");
356 } 356 }
357 357
358 if (!event->location().isEmpty()) { 358 if (!event->location().isEmpty()) {
359 addTag("b",i18n("Location: ")); 359 addTag("b",i18n("Location: "));
360 mText.append(event->location()+"<br>"); 360 mText.append(event->location()+"<br>");
361 mMailSubject += i18n(" at ") + event->location(); 361 mMailSubject += i18n(" at ") + event->location();
362 } 362 }
363 if (event->hasStartDate()) {
364 mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer)));
365 }
363 if (event->hasDueDate()) { 366 if (event->hasDueDate()) {
364 mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); 367 mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer)));
365 mMailSubject += i18n(" - " )+event->dtDueStr( true ); 368 mMailSubject += i18n(" - " )+event->dtDueStr( true );
366 } 369 }
367 addTag("b",i18n("Access: ")); 370 addTag("b",i18n("Access: "));
368 mText.append(event->secrecyStr()+"<br>"); 371 mText.append(event->secrecyStr()+"<br>");
369 if (!event->description().isEmpty()) { 372 if (!event->description().isEmpty()) {
370 addTag("p",i18n("<b>Details: </b>")); 373 addTag("p",i18n("<b>Details: </b>"));
371 addTag("p",event->description()); 374 addTag("p",event->description());
372 } 375 }
373 376
374 formatCategories(event); 377 formatCategories(event);
375 378
376 mText.append(i18n("<p><b>Priority:</b> %2</p>") 379 mText.append(i18n("<p><b>Priority:</b> %2</p>")
377 .arg(QString::number(event->priority()))); 380 .arg(QString::number(event->priority())));
378 381
379 mText.append(i18n("<p><i>%1 % completed</i></p>") 382 mText.append(i18n("<p><i>%1 % completed</i></p>")
380 .arg(event->percentComplete())); 383 .arg(event->percentComplete()));
381 384
382 formatReadOnly(event); 385 formatReadOnly(event);
383 formatAttendees(event); 386 formatAttendees(event);
384 387 if ( event->relatedTo() ) {
388 addTag("b",i18n("Parent todo: "));
389 mText.append(event->relatedTo()->summary()+" [" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] <br>");
390 }
391 QPtrList<Incidence> Relations = event->relations();
392 Incidence *to;
393 if ( Relations.first() )
394 addTag("b",i18n("Sub todos:<br>"));
395 for (to=Relations.first();to;to=Relations.next()) {
396 mText.append( to->summary()+" [" +QString::number(to->priority()) + "/" + QString::number(((Todo*)to)->percentComplete())+"%]<br>");
397
398 }
385 setText(mText); 399 setText(mText);
386} 400}
387 401
388void KOEventViewer::formatCategories(Incidence *event) 402void KOEventViewer::formatCategories(Incidence *event)
389{ 403{
390 if (!event->categoriesStr().isEmpty()) { 404 if (!event->categoriesStr().isEmpty()) {
391 if (event->categories().count() == 1) { 405 if (event->categories().count() == 1) {
392 addTag("h3",i18n("Category")); 406 addTag("h3",i18n("Category"));
393 } else { 407 } else {
394 addTag("h3",i18n("Categories")); 408 addTag("h3",i18n("Categories"));
395 } 409 }
396 addTag("p",event->categoriesStr()); 410 addTag("p",event->categoriesStr());
397 } 411 }
398} 412}
399void KOEventViewer::formatAttendees(Incidence *event) 413void KOEventViewer::formatAttendees(Incidence *event)
400{ 414{
401 QPtrList<Attendee> attendees = event->attendees(); 415 QPtrList<Attendee> attendees = event->attendees();
402 if (attendees.count()) { 416 if (attendees.count()) {
403 417
404 418
405 QString iconPath = KGlobal::iconLoader()->iconPath("mailappt",KIcon::Small); 419 QString iconPath = KGlobal::iconLoader()->iconPath("mailappt",KIcon::Small);
406 addTag("h3",i18n("Organizer")); 420 addTag("h3",i18n("Organizer"));
407 mText.append("<ul><li>"); 421 mText.append("<ul><li>");
408#ifndef KORG_NOKABC 422#ifndef KORG_NOKABC
409 423
410#ifdef DESKTOP_VERSION 424#ifdef DESKTOP_VERSION
411 KABC::AddressBook *add_book = KABC::StdAddressBook::self(); 425 KABC::AddressBook *add_book = KABC::StdAddressBook::self();
412 KABC::Addressee::List addressList; 426 KABC::Addressee::List addressList;
413 addressList = add_book->findByEmail(event->organizer()); 427 addressList = add_book->findByEmail(event->organizer());
414 KABC::Addressee o = addressList.first(); 428 KABC::Addressee o = addressList.first();
415 if (!o.isEmpty() && addressList.size()<2) { 429 if (!o.isEmpty() && addressList.size()<2) {
416 mText += "<a href=\"uid:" + o.uid() + "\">"; 430 mText += "<a href=\"uid:" + o.uid() + "\">";
417 mText += o.formattedName(); 431 mText += o.formattedName();
418 mText += "</a>\n"; 432 mText += "</a>\n";
419 } else { 433 } else {
420 mText.append(event->organizer()); 434 mText.append(event->organizer());
421 } 435 }
422#else //DESKTOP_VERSION 436#else //DESKTOP_VERSION
423 mText += "<a href=\"uid:organizer\">"; 437 mText += "<a href=\"uid:organizer\">";
424 mText += event->organizer(); 438 mText += event->organizer();
425 mText += "</a>\n"; 439 mText += "</a>\n";
426#endif //DESKTOP_VERSION 440#endif //DESKTOP_VERSION
427 441
428 442
429#else 443#else
430 mText.append(event->organizer()); 444 mText.append(event->organizer());
431#endif 445#endif
432 446
433 if (iconPath) { 447 if (iconPath) {
434 mText += " <a href=\"mailto:" + event->organizer() + "\">"; 448 mText += " <a href=\"mailto:" + event->organizer() + "\">";
435 mText += "<IMG src=\"" + iconPath + "\">"; 449 mText += "<IMG src=\"" + iconPath + "\">";
436 mText += "</a>\n"; 450 mText += "</a>\n";
437 } 451 }
438 mText.append("</li></ul>"); 452 mText.append("</li></ul>");
439 453
440 addTag("h3",i18n("Attendees")); 454 addTag("h3",i18n("Attendees"));
441 Attendee *a; 455 Attendee *a;
442 mText.append("<ul>"); 456 mText.append("<ul>");
443 for(a=attendees.first();a;a=attendees.next()) { 457 for(a=attendees.first();a;a=attendees.next()) {
444#ifndef KORG_NOKABC 458#ifndef KORG_NOKABC
445#ifdef DESKTOP_VERSION 459#ifdef DESKTOP_VERSION
446 if (a->name().isEmpty()) { 460 if (a->name().isEmpty()) {
447 addressList = add_book->findByEmail(a->email()); 461 addressList = add_book->findByEmail(a->email());
448 KABC::Addressee o = addressList.first(); 462 KABC::Addressee o = addressList.first();
449 if (!o.isEmpty() && addressList.size()<2) { 463 if (!o.isEmpty() && addressList.size()<2) {
450 mText += "<a href=\"uid:" + o.uid() + "\">"; 464 mText += "<a href=\"uid:" + o.uid() + "\">";
451 mText += o.formattedName(); 465 mText += o.formattedName();
452 mText += "</a>\n"; 466 mText += "</a>\n";
453 } else { 467 } else {
454 mText += "<li>"; 468 mText += "<li>";
455 mText.append(a->email()); 469 mText.append(a->email());
456 mText += "\n"; 470 mText += "\n";
457 } 471 }
458 } else { 472 } else {
459 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 473 mText += "<li><a href=\"uid:" + a->uid() + "\">";
460 if (!a->name().isEmpty()) mText += a->name(); 474 if (!a->name().isEmpty()) mText += a->name();
461 else mText += a->email(); 475 else mText += a->email();
462 mText += "</a>\n"; 476 mText += "</a>\n";
463 } 477 }
464#else //DESKTOP_VERSION 478#else //DESKTOP_VERSION
465 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 479 mText += "<li><a href=\"uid:" + a->uid() + "\">";
466 if (!a->name().isEmpty()) mText += a->name(); 480 if (!a->name().isEmpty()) mText += a->name();
467 else mText += a->email(); 481 else mText += a->email();
468 mText += "</a>\n"; 482 mText += "</a>\n";
469#endif //DESKTOP_VERSION 483#endif //DESKTOP_VERSION
470#else 484#else
471 //qDebug("nokabc "); 485 //qDebug("nokabc ");
472 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 486 mText += "<li><a href=\"uid:" + a->uid() + "\">";
473 if (!a->name().isEmpty()) mText += a->name(); 487 if (!a->name().isEmpty()) mText += a->name();
474 else mText += a->email(); 488 else mText += a->email();
475 mText += "</a>\n"; 489 mText += "</a>\n";
476#endif 490#endif
477 491
478 492
479 if (!a->email().isEmpty()) { 493 if (!a->email().isEmpty()) {
480 if (iconPath) { 494 if (iconPath) {
481 mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">"; 495 mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">";
482 mText += "<IMG src=\"" + iconPath + "\">"; 496 mText += "<IMG src=\"" + iconPath + "\">";
483 mText += "</a>\n"; 497 mText += "</a>\n";
484 } 498 }
485 } 499 }
486 if (a->status() != Attendee::NeedsAction ) 500 if (a->status() != Attendee::NeedsAction )
487 mText +="[" + a->statusStr() + "] "; 501 mText +="[" + a->statusStr() + "] ";
488 if (a->role() == Attendee::Chair ) 502 if (a->role() == Attendee::Chair )
489 mText +="(" + a->roleStr().left(1) + ".)"; 503 mText +="(" + a->roleStr().left(1) + ".)";
490 } 504 }
491 mText.append("</li></ul>"); 505 mText.append("</li></ul>");
492 } 506 }
493 507
494} 508}
495void KOEventViewer::appendJournal(Journal *jour, int mode ) 509void KOEventViewer::appendJournal(Journal *jour, int mode )
496{ 510{
497 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 511 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
498 if (mode == 0 ) { 512 if (mode == 0 ) {
499 addTag("h2",i18n("Journal from: ")); 513 addTag("h2",i18n("Journal from: "));
500 } 514 }
501 else { 515 else {
502 if ( mode == 1 ) { 516 if ( mode == 1 ) {
503 addTag("h2",i18n( "Local: " ) +i18n("Journal from: ")); 517 addTag("h2",i18n( "Local: " ) +i18n("Journal from: "));
504 } else { 518 } else {
505 addTag("h2",i18n( "Remote: " ) +i18n("Journal from: ")); 519 addTag("h2",i18n( "Remote: " ) +i18n("Journal from: "));
506 } 520 }
507 } 521 }
508 topLevelWidget()->setCaption("Journal Viewer"); 522 topLevelWidget()->setCaption("Journal Viewer");
509 mText.append(i18n("<h3> %1 </h3> ").arg(jour->dtStartDateStr(KOPrefs::instance()->mShortDateInViewer))); 523 mText.append(i18n("<h3> %1 </h3> ").arg(jour->dtStartDateStr(KOPrefs::instance()->mShortDateInViewer)));
510 addTag("b",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(jour->lastModified(),shortDate ) ); 524 addTag("b",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(jour->lastModified(),shortDate ) );
511 if (!jour->description().isEmpty()) { 525 if (!jour->description().isEmpty()) {
512 addTag("p",jour->description()); 526 addTag("p",jour->description());
diff --git a/korganizer/koeventviewerdialog.cpp b/korganizer/koeventviewerdialog.cpp
index 772fd95..3979ed2 100644
--- a/korganizer/koeventviewerdialog.cpp
+++ b/korganizer/koeventviewerdialog.cpp
@@ -1,251 +1,254 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program 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 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#include <klocale.h> 20#include <klocale.h>
21 21
22#include <libkcal/event.h> 22#include <libkcal/event.h>
23#include <qpushbutton.h> 23#include <qpushbutton.h>
24 24
25#include "koeventviewer.h" 25#include "koeventviewer.h"
26#include "koprefs.h" 26#include "koprefs.h"
27#include <libkcal/todo.h> 27#include <libkcal/todo.h>
28#include "qapp.h" 28#include "qapp.h"
29 29
30#include "koeventviewerdialog.h" 30#include "koeventviewerdialog.h"
31extern int globalFlagBlockAgenda; 31extern int globalFlagBlockAgenda;
32 32
33KOEventViewerDialog::KOEventViewerDialog(QWidget *parent,const char *name) 33KOEventViewerDialog::KOEventViewerDialog(QWidget *parent,const char *name)
34 : KDialogBase(parent,name, 34 : KDialogBase(parent,name,
35#ifndef DESKTOP_VERSION 35#ifndef DESKTOP_VERSION
36 true , 36 true ,
37#else 37#else
38 false, 38 false,
39#endif 39#endif
40 i18n("Event Viewer"),Ok|User1|Close,Close, false, i18n("Agenda")) 40 i18n("Event Viewer"),Ok|User1|Close,Close, false, i18n("Agenda"))
41{ 41{
42 42
43 mEventViewer = new KOEventViewer(this); 43 mEventViewer = new KOEventViewer(this);
44 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont ); 44 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont );
45 setMainWidget(mEventViewer); 45 setMainWidget(mEventViewer);
46 setButtonText(Ok, i18n("Edit") ); 46 setButtonText(Ok, i18n("Edit") );
47 47
48 QObject::connect(findButton( Ok ),SIGNAL(clicked()), 48 QObject::connect(findButton( Ok ),SIGNAL(clicked()),
49 SLOT(editIncidence())); 49 SLOT(editIncidence()));
50 QObject::connect(this,SIGNAL(user1Clicked()), 50 QObject::connect(this,SIGNAL(user1Clicked()),
51 SLOT(showIncidence())); 51 SLOT(showIncidence()));
52 mIncidence = 0; 52 mIncidence = 0;
53 // TODO: Set a sensible size (based on the content?). 53 // TODO: Set a sensible size (based on the content?).
54 //showMaximized(); 54 //showMaximized();
55 //qDebug("++++++++++++KOEventViewerDialog() "); 55 //qDebug("++++++++++++KOEventViewerDialog() ");
56 // if ( KOPrefs::instance()->mCompactDialogs ) { 56 // if ( KOPrefs::instance()->mCompactDialogs ) {
57// setFixedSize( 240,284 ); 57// setFixedSize( 240,284 );
58// move( 0, 15 ); 58// move( 0, 15 );
59// } else { 59// } else {
60// setMinimumSize(300,200); 60// setMinimumSize(300,200);
61// resize(320,300); 61// resize(320,300);
62// } 62// }
63 mSyncMode = false; 63 mSyncMode = false;
64 mSyncResult = 0; 64 mSyncResult = 0;
65 65
66} 66}
67 67
68KOEventViewerDialog::~KOEventViewerDialog() 68KOEventViewerDialog::~KOEventViewerDialog()
69{ 69{
70 //qDebug("-------~KOEventViewerDialog() "); 70 //qDebug("-------~KOEventViewerDialog() ");
71} 71}
72void KOEventViewerDialog::showMe() 72void KOEventViewerDialog::showMe()
73{ 73{
74 74
75#ifdef DESKTOP_VERSION 75#ifdef DESKTOP_VERSION
76 show(); 76 show();
77#else 77#else
78 showMaximized(); 78 showMaximized();
79#endif 79#endif
80 setFocus(); 80 setFocus();
81 setActiveWindow(); 81 setActiveWindow();
82 82
83} 83}
84void KOEventViewerDialog::setSyncMode( bool b ) 84void KOEventViewerDialog::setSyncMode( bool b )
85{ 85{
86 mSyncMode = b; 86 mSyncMode = b;
87 //qDebug("KOEventViewerDialog::setSyncMode %d ",mSyncMode ); 87 //qDebug("KOEventViewerDialog::setSyncMode %d ",mSyncMode );
88 if ( mSyncMode ) { 88 if ( mSyncMode ) {
89 findButton( Close )->setText( i18n("Cancel Sync")); 89 findButton( Close )->setText( i18n("Cancel Sync"));
90 findButton( Ok )->setText( i18n("Remote")); 90 findButton( Ok )->setText( i18n("Remote"));
91 findButton( User1 )->setText( i18n("Local")); 91 findButton( User1 )->setText( i18n("Local"));
92 } else { 92 } else {
93 findButton( Close )->setText( i18n("Close")); 93 findButton( Close )->setText( i18n("Close"));
94 findButton( Ok )->setText( i18n("Edit")); 94 findButton( Ok )->setText( i18n("Edit"));
95 findButton( User1 )->setText( i18n("Agenda")); 95 findButton( User1 )->setText( i18n("Agenda"));
96 } 96 }
97 mEventViewer->setSyncMode( b ); 97 mEventViewer->setSyncMode( b );
98} 98}
99void KOEventViewerDialog::setColorMode( int m ) 99void KOEventViewerDialog::setColorMode( int m )
100{ 100{
101 mEventViewer->setColorMode( m ); 101 mEventViewer->setColorMode( m );
102} 102}
103int KOEventViewerDialog::executeS( bool local ) 103int KOEventViewerDialog::executeS( bool local )
104{ 104{
105 mSyncResult = 3; 105 mSyncResult = 3;
106 if ( local ) 106 if ( local )
107 findButton( User1 )->setFocus(); 107 findButton( User1 )->setFocus();
108 else 108 else
109 findButton( Ok )->setFocus(); 109 findButton( Ok )->setFocus();
110 exec(); 110 exec();
111 return mSyncResult; 111 return mSyncResult;
112} 112}
113 113
114void KOEventViewerDialog::updateConfig() 114void KOEventViewerDialog::updateConfig()
115{ 115{
116 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont ); 116 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont );
117 117
118} 118}
119void KOEventViewerDialog::setEvent(Event *event) 119void KOEventViewerDialog::setEvent(Event *event)
120{ 120{
121 mEventViewer->setEvent(event); 121 mEventViewer->setEvent(event);
122 mIncidence = event; 122 mIncidence = event;
123 findButton( Close )->setFocus(); 123 findButton( Close )->setFocus();
124 if ( !mSyncMode ) {
125 findButton( User1 )->setText( i18n("Agenda"));
126 }
124} 127}
125void KOEventViewerDialog::setIncidence(Incidence *in ) 128void KOEventViewerDialog::setIncidence(Incidence *in )
126{ 129{
127 if ( in->type() == "Event" ) 130 if ( in->type() == "Event" )
128 setEvent( (Event*) in ); 131 setEvent( (Event*) in );
129 else if ( in->type() =="Todo" ) 132 else if ( in->type() =="Todo" )
130 setTodo( (Todo*) in ); 133 setTodo( (Todo*) in );
131 else if ( in->type() =="Journal" ) 134 else if ( in->type() =="Journal" )
132 setJournal( (Journal*) in ); 135 setJournal( (Journal*) in );
133} 136}
134void KOEventViewerDialog::addIncidence(Incidence *in) 137void KOEventViewerDialog::addIncidence(Incidence *in)
135{ 138{
136 if ( in->type() == "Event" ) 139 if ( in->type() == "Event" )
137 addEvent( (Event*) in ); 140 addEvent( (Event*) in );
138 else if ( in->type() =="Todo" ) 141 else if ( in->type() =="Todo" )
139 mEventViewer->setTodo( (Todo*) in, false ); 142 mEventViewer->setTodo( (Todo*) in, false );
140 else if ( in->type() =="Journal" ) 143 else if ( in->type() =="Journal" )
141 mEventViewer->setJournal( (Journal*) in, false ); 144 mEventViewer->setJournal( (Journal*) in, false );
142 if ( mSyncMode ) { 145 if ( mSyncMode ) {
143 findButton( User1 )->setFocus(); 146 findButton( User1 )->setFocus();
144 setCaption(i18n("Conflict! Please choose entry")); 147 setCaption(i18n("Conflict! Please choose entry"));
145 } 148 }
146} 149}
147 150
148void KOEventViewerDialog::addEvent(Event *event) 151void KOEventViewerDialog::addEvent(Event *event)
149{ 152{
150 mEventViewer->addEvent(event); 153 mEventViewer->addEvent(event);
151 mIncidence = event; 154 mIncidence = event;
152 findButton( Close )->setFocus(); 155 findButton( Close )->setFocus();
153 if ( !mSyncMode ) { 156 if ( !mSyncMode ) {
154 findButton( User1 )->setText( i18n("Agenda")); 157 findButton( User1 )->setText( i18n("Agenda"));
155 } 158 }
156} 159}
157 160
158void KOEventViewerDialog::setTodo(Todo *event) 161void KOEventViewerDialog::setTodo(Todo *event)
159{ 162{
160 mEventViewer->setTodo(event); 163 mEventViewer->setTodo(event);
161 mIncidence = (Incidence*)event; 164 mIncidence = (Incidence*)event;
162 findButton( Close )->setFocus(); 165 findButton( Close )->setFocus();
163 if ( !mSyncMode ) { 166 if ( !mSyncMode ) {
164 findButton( User1 )->setText( i18n("Set complete")); 167 findButton( User1 )->setText( i18n("Set complete"));
165 } 168 }
166} 169}
167void KOEventViewerDialog::setJournal(Journal *j) 170void KOEventViewerDialog::setJournal(Journal *j)
168{ 171{
169 mEventViewer->setJournal(j); 172 mEventViewer->setJournal(j);
170 mIncidence = (Incidence*)j; 173 mIncidence = (Incidence*)j;
171 findButton( Close )->setFocus(); 174 findButton( Close )->setFocus();
172 if ( !mSyncMode ) { 175 if ( !mSyncMode ) {
173 findButton( User1 )->setText( i18n("Agenda")); 176 findButton( User1 )->setText( i18n("Agenda"));
174 } 177 }
175} 178}
176 179
177void KOEventViewerDialog::addText(QString text) 180void KOEventViewerDialog::addText(QString text)
178{ 181{
179 mEventViewer->addText(text); 182 mEventViewer->addText(text);
180 findButton( Close )->setFocus(); 183 findButton( Close )->setFocus();
181} 184}
182void KOEventViewerDialog::editIncidence() 185void KOEventViewerDialog::editIncidence()
183{ 186{
184 if ( mSyncMode ) { 187 if ( mSyncMode ) {
185 mSyncResult = 2; 188 mSyncResult = 2;
186 accept(); 189 accept();
187 return; 190 return;
188 } 191 }
189 if ( mIncidence ){ 192 if ( mIncidence ){
190#ifndef DESKTOP_VERSION 193#ifndef DESKTOP_VERSION
191 hide(); 194 hide();
192#endif 195#endif
193 emit editIncidence( mIncidence ); 196 emit editIncidence( mIncidence );
194 } 197 }
195} 198}
196void KOEventViewerDialog::showIncidence() 199void KOEventViewerDialog::showIncidence()
197{ 200{
198 201
199 if ( mSyncMode ) { 202 if ( mSyncMode ) {
200 mSyncResult = 1; 203 mSyncResult = 1;
201 accept(); 204 accept();
202 return; 205 return;
203 } 206 }
204 207
205 if ( mIncidence ){ 208 if ( mIncidence ){
206#ifndef DESKTOP_VERSION 209#ifndef DESKTOP_VERSION
207 hide(); 210 hide();
208#endif 211#endif
209 QDate date; 212 QDate date;
210 if ( mIncidence->type() == "Todo" ) { 213 if ( mIncidence->type() == "Todo" ) {
211 /* 214 /*
212 if ( ((Todo*)mIncidence)->hasDueDate() ) 215 if ( ((Todo*)mIncidence)->hasDueDate() )
213 date = ((Todo*)mIncidence)->dtDue().date(); 216 date = ((Todo*)mIncidence)->dtDue().date();
214 else { 217 else {
215 globalFlagBlockAgenda = 2; 218 globalFlagBlockAgenda = 2;
216 emit showAgendaView( false ); 219 emit showAgendaView( false );
217 return; 220 return;
218 } 221 }
219 */ 222 */
220 ((Todo*)mIncidence)->setCompleted( true ); 223 ((Todo*)mIncidence)->setCompleted( true );
221 hide(); 224 hide();
222 emit todoCompleted(((Todo*)mIncidence)); 225 emit todoCompleted(((Todo*)mIncidence));
223 return; 226 return;
224 227
225 } else 228 } else
226 date = mIncidence->dtStart().date(); 229 date = mIncidence->dtStart().date();
227 globalFlagBlockAgenda = 1; 230 globalFlagBlockAgenda = 1;
228 emit showAgendaView( false ); 231 emit showAgendaView( false );
229 globalFlagBlockAgenda = 2; 232 globalFlagBlockAgenda = 2;
230 emit jumpToTime( date ); 233 emit jumpToTime( date );
231 } 234 }
232} 235}
233void KOEventViewerDialog::keyPressEvent ( QKeyEvent * e ) 236void KOEventViewerDialog::keyPressEvent ( QKeyEvent * e )
234{ 237{
235 switch ( e->key() ) { 238 switch ( e->key() ) {
236 239
237 case Qt::Key_A : 240 case Qt::Key_A :
238 case Qt::Key_L : 241 case Qt::Key_L :
239 showIncidence(); 242 showIncidence();
240 break; 243 break;
241 case Qt::Key_E : 244 case Qt::Key_E :
242 case Qt::Key_R : 245 case Qt::Key_R :
243 editIncidence(); 246 editIncidence();
244 break; 247 break;
245 case Qt::Key_C: 248 case Qt::Key_C:
246 case Qt::Key_Escape: 249 case Qt::Key_Escape:
247 close(); 250 close();
248 break; 251 break;
249 case Qt::Key_I: 252 case Qt::Key_I:
250 accept(); 253 accept();
251 break; 254 break;