-rw-r--r-- | bin/kdepim/WhatsNew.txt | 5 | ||||
-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 4 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 1 | ||||
-rw-r--r-- | korganizer/koeventviewer.cpp | 26 | ||||
-rw-r--r-- | korganizer/koeventviewer.h | 1 | ||||
-rw-r--r-- | korganizer/koeventviewerdialog.cpp | 1 | ||||
-rw-r--r-- | korganizer/koeventviewerdialog.h | 1 | ||||
-rw-r--r-- | korganizer/kotodoview.cpp | 53 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 6 |
9 files changed, 80 insertions, 18 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 30bb856..71d7208 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt | |||
@@ -1,26 +1,31 @@ | |||
1 | Info about the changes in new versions of KDE-Pim/Pi | 1 | Info about the changes in new versions of KDE-Pim/Pi |
2 | 2 | ||
3 | ********** VERSION 2.1.13 ************ | ||
4 | |||
5 | Fixed a problem in KA/Pi search. | ||
6 | |||
7 | |||
3 | ********** VERSION 2.1.12 ************ | 8 | ********** VERSION 2.1.12 ************ |
4 | 9 | ||
5 | KO/Pi: | 10 | KO/Pi: |
6 | Many small usability fixes, e.g. rearranged the popup menus such that they are better to use on the Zaurus. | 11 | Many small usability fixes, e.g. rearranged the popup menus such that they are better to use on the Zaurus. |
7 | Fixed a problem with the month view when file was saved but KO/Pi was not the active window. | 12 | Fixed a problem with the month view when file was saved but KO/Pi was not the active window. |
8 | Fixed some problems in the resource config dialog (e.g. added a warning if you set all calendars to read-only). | 13 | Fixed some problems in the resource config dialog (e.g. added a warning if you set all calendars to read-only). |
9 | Fixed some other small problems. | 14 | Fixed some other small problems. |
10 | 15 | ||
11 | ********** VERSION 2.1.11 ************ | 16 | ********** VERSION 2.1.11 ************ |
12 | 17 | ||
13 | KO/Pi: | 18 | KO/Pi: |
14 | Because we can have many calendars now in KO/Pi we can have more than one journal entry per day. | 19 | Because we can have many calendars now in KO/Pi we can have more than one journal entry per day. |
15 | Added features to handle (and add ) more than one journal entry per day. | 20 | Added features to handle (and add ) more than one journal entry per day. |
16 | Added option for a journal title. | 21 | Added option for a journal title. |
17 | 22 | ||
18 | Added info about the calendar, the item belongs to, to the event/todo/journal viewer. | 23 | Added info about the calendar, the item belongs to, to the event/todo/journal viewer. |
19 | Fixed a problem of the alarm of completed recurring todos. | 24 | Fixed a problem of the alarm of completed recurring todos. |
20 | Added to the event/todo editor to set quickly the category of an item. | 25 | Added to the event/todo editor to set quickly the category of an item. |
21 | 26 | ||
22 | 27 | ||
23 | Fixed some problems when calling KO/Pi or KA/Pi from the alarm applet. | 28 | Fixed some problems when calling KO/Pi or KA/Pi from the alarm applet. |
24 | 29 | ||
25 | Added KA/Pi multi sync to the multi sync called from the alarm applet. | 30 | Added KA/Pi multi sync to the multi sync called from the alarm applet. |
26 | 31 | ||
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index d7954c6..bc5cbb7 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -1187,50 +1187,50 @@ | |||
1187 | { "This month","Dieser Monat" }, | 1187 | { "This month","Dieser Monat" }, |
1188 | { "Journal view","Journal" }, | 1188 | { "Journal view","Journal" }, |
1189 | { "Display all opened","Zeige alle geöffnet" }, | 1189 | { "Display all opened","Zeige alle geöffnet" }, |
1190 | { "Display all closed","Zeige alle geschlossen" }, | 1190 | { "Display all closed","Zeige alle geschlossen" }, |
1191 | { "Display all flat","Zeige alle flach" }, | 1191 | { "Display all flat","Zeige alle flach" }, |
1192 | { "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, | 1192 | { "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" }, |
1193 | { "Default todo done color:","Standard Todo erledigt Farbe" }, | 1193 | { "Default todo done color:","Standard Todo erledigt Farbe" }, |
1194 | { "Select week %1-%2","Wähle Woche %1-%2" }, | 1194 | { "Select week %1-%2","Wähle Woche %1-%2" }, |
1195 | { "Select Week","Wähle Woche" }, | 1195 | { "Select Week","Wähle Woche" }, |
1196 | { "Set alarm...","Setze Alarm..." }, | 1196 | { "Set alarm...","Setze Alarm..." }, |
1197 | { "Set Alarm!","Setze Alarm!" }, | 1197 | { "Set Alarm!","Setze Alarm!" }, |
1198 | { "Changed alarm for %1 items","Alarm für %1 Items geändert" }, | 1198 | { "Changed alarm for %1 items","Alarm für %1 Items geändert" }, |
1199 | { " and "," und " }, | 1199 | { " and "," und " }, |
1200 | { "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, | 1200 | { "<IMG src="%1"> only )","nur <IMG src="%1"> )" }, |
1201 | { "Mail to selected","Mail an Ausgewählte" }, | 1201 | { "Mail to selected","Mail an Ausgewählte" }, |
1202 | { "Mail to all","Mail an Alle" }, | 1202 | { "Mail to all","Mail an Alle" }, |
1203 | { "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, | 1203 | { "Week view mode uses bigger font","Wochenansicht Modus nutzt größeren Font" }, |
1204 | { "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, | 1204 | { "Set reminder ON with offset to:","Alarm AN mit Offset auf:" }, |
1205 | { " on"," am" }, | 1205 | { " on"," am" }, |
1206 | { " completed on "," erledigt am " }, | 1206 | { " completed on "," erledigt am " }, |
1207 | { "Save as Event template","Speichere als Vorlage" }, | 1207 | { "Save as Event template","Speichere als Vorlage" }, |
1208 | { "Load Event template","Lade Termin Vorlage" }, | 1208 | { "Load Event template","Lade Termin Vorlage" }, |
1209 | { "Save as Journal template","Speichere als Journal Vorlage" }, | 1209 | { "Save as Journal template","Speichere als Journal Vorlage" }, |
1210 | { "Insert Journal template","Füge Journal Vorlage ein" }, | 1210 | { "Insert Journal template","Füge Journal Vorlage ein" }, |
1211 | { "Sub todos:<br>","Unter Todos:<br>" }, | 1211 | { "Sub todos:<br>","Unter-Todos:<br>" }, |
1212 | { "Parent todo:<br>","Über Todo:<br>" }, | 1212 | { "Parent todo:<br>","Über-Todo:<br>" }, |
1213 | { "Set current as color category","Setze Gewählte als Farbkategorie" }, | 1213 | { "Set current as color category","Setze Gewählte als Farbkategorie" }, |
1214 | { " completed"," erledigt" }, | 1214 | { " completed"," erledigt" }, |
1215 | { "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" }, | 1215 | { "(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!","(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi basiert auf KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) und das KDE Team.\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.pi-sync.info --- www.korganizer.org\nBesonderen Dank an Michael und Ben\nfür intensives Testen!" }, |
1216 | { "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, | 1216 | { "Syncing aborted. Nothing synced.","Syncing abgebrochen.Nichts wurde gesynct." }, |
1217 | { "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, | 1217 | { "Connected! Sending request for remote file ...","Verbunden! Sende Daten Anfrage..." }, |
1218 | { "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, | 1218 | { "Trying to connect to remote...","Versuche mit Gegenstelle zu verbinden..." }, |
1219 | { "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" }, | 1219 | { "Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?","Verbindungsversuch wegen\nZeitüberschreitung gescheitert!\nWurde vergessen Pi-Sync auf\nder Gegenstelle anzuschalten?" }, |
1220 | { "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, | 1220 | { "ERROR: Receiving remote file failed.","FEHLER: Empfang der entfernten Daten fehlgeschlagen." }, |
1221 | { "Error","Fehler" }, | 1221 | { "Error","Fehler" }, |
1222 | { ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, | 1222 | { ""You entered an invalid date!\n Date changed to current date.","Ungültiges Datum eingegeben.\nSetze heutiges Datum." }, |
1223 | { "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, | 1223 | { "You entered an invalid date!\n Will use current date instead.","Ungültiges Datum eingegeben.\nSetze stattdessen heutiges Datum." }, |
1224 | { "Warning","Warnung" }, | 1224 | { "Warning","Warnung" }, |
1225 | { "Select week number","Wähle Wochen Nummer" }, | 1225 | { "Select week number","Wähle Wochen Nummer" }, |
1226 | { "Februar","Februar" }, | 1226 | { "Februar","Februar" }, |
1227 | { "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" }, | 1227 | { "Click on the week number to\nshow week zoomed","Klicke auf die Wochennummer\num die Woche groß zu zeigen" }, |
1228 | { "W","W" }, | 1228 | { "W","W" }, |
1229 | { "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" }, | 1229 | { "Click on this to\nselect week number","Klicke hierauf um\ndie Woche auszuwählen" }, |
1230 | { "T: %1","T: %1" }, | 1230 | { "T: %1","T: %1" }, |
1231 | { "Start: ","Start: " }, | 1231 | { "Start: ","Start: " }, |
1232 | { "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " }, | 1232 | { "Pi-Sync options for device: ","Pi-Sync Einstellungen für Gerät: " }, |
1233 | { "Password for remote access:","Passwort für fernen Zugriff:" }, | 1233 | { "Password for remote access:","Passwort für fernen Zugriff:" }, |
1234 | { "Remote IP address:","Ferne IP Adresse:" }, | 1234 | { "Remote IP address:","Ferne IP Adresse:" }, |
1235 | { "Remote port number:","Ferne Port Nummer:" }, | 1235 | { "Remote port number:","Ferne Port Nummer:" }, |
1236 | { "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." }, | 1236 | { "Remote file saved to temp file.","Ferne Daten in temp Datei gespeichert." }, |
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 72221fd..1785b8a 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -3328,48 +3328,49 @@ void CalendarView::editTodo( Todo *todo ) | |||
3328 | showTodo( todo ); | 3328 | showTodo( todo ); |
3329 | return; | 3329 | return; |
3330 | } | 3330 | } |
3331 | showTodoEditor(); | 3331 | showTodoEditor(); |
3332 | mTodoEditor->editTodo( todo ,mFlagEditDescription); | 3332 | mTodoEditor->editTodo( todo ,mFlagEditDescription); |
3333 | mTodoEditor->exec(); | 3333 | mTodoEditor->exec(); |
3334 | setActiveWindow(); | 3334 | setActiveWindow(); |
3335 | 3335 | ||
3336 | } | 3336 | } |
3337 | 3337 | ||
3338 | KOEventViewerDialog* CalendarView::getEventViewerDialog() | 3338 | KOEventViewerDialog* CalendarView::getEventViewerDialog() |
3339 | { | 3339 | { |
3340 | if ( !mEventViewerDialog ) { | 3340 | if ( !mEventViewerDialog ) { |
3341 | mEventViewerDialog = new KOEventViewerDialog(0); | 3341 | mEventViewerDialog = new KOEventViewerDialog(0); |
3342 | connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) ); | 3342 | connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) ); |
3343 | connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig())); | 3343 | connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig())); |
3344 | connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)), | 3344 | connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)), |
3345 | dateNavigator(), SLOT( selectWeek( const QDate & ) ) ); | 3345 | dateNavigator(), SLOT( selectWeek( const QDate & ) ) ); |
3346 | connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ), | 3346 | connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ), |
3347 | viewManager(), SLOT( showAgendaView( bool ) ) ); | 3347 | viewManager(), SLOT( showAgendaView( bool ) ) ); |
3348 | connect( mEventViewerDialog, SIGNAL(signalViewerClosed()), | 3348 | connect( mEventViewerDialog, SIGNAL(signalViewerClosed()), |
3349 | this, SLOT( slotViewerClosed() ) ); | 3349 | this, SLOT( slotViewerClosed() ) ); |
3350 | connect( mEventViewerDialog, SIGNAL( todoCompleted(Todo *) ), | 3350 | connect( mEventViewerDialog, SIGNAL( todoCompleted(Todo *) ), |
3351 | this, SLOT( todoChanged(Todo *) ) ); | 3351 | this, SLOT( todoChanged(Todo *) ) ); |
3352 | connect( mEventViewerDialog, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) )); | ||
3352 | mEventViewerDialog->resize( 640, 480 ); | 3353 | mEventViewerDialog->resize( 640, 480 ); |
3353 | 3354 | ||
3354 | } | 3355 | } |
3355 | return mEventViewerDialog; | 3356 | return mEventViewerDialog; |
3356 | } | 3357 | } |
3357 | void CalendarView::showEvent(Event *event) | 3358 | void CalendarView::showEvent(Event *event) |
3358 | { | 3359 | { |
3359 | getEventViewerDialog()->setEvent(event); | 3360 | getEventViewerDialog()->setEvent(event); |
3360 | getEventViewerDialog()->showMe(); | 3361 | getEventViewerDialog()->showMe(); |
3361 | } | 3362 | } |
3362 | 3363 | ||
3363 | void CalendarView::showTodo(Todo *event) | 3364 | void CalendarView::showTodo(Todo *event) |
3364 | { | 3365 | { |
3365 | getEventViewerDialog()->setTodo(event); | 3366 | getEventViewerDialog()->setTodo(event); |
3366 | getEventViewerDialog()->showMe(); | 3367 | getEventViewerDialog()->showMe(); |
3367 | } | 3368 | } |
3368 | void CalendarView::showJournal( Journal *jour ) | 3369 | void CalendarView::showJournal( Journal *jour ) |
3369 | { | 3370 | { |
3370 | getEventViewerDialog()->setJournal(jour); | 3371 | getEventViewerDialog()->setJournal(jour); |
3371 | getEventViewerDialog()->showMe(); | 3372 | getEventViewerDialog()->showMe(); |
3372 | 3373 | ||
3373 | } | 3374 | } |
3374 | // void CalendarView::todoModified (Todo *event, int changed) | 3375 | // void CalendarView::todoModified (Todo *event, int changed) |
3375 | // { | 3376 | // { |
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp index f6c252b..2d0bfff 100644 --- a/korganizer/koeventviewer.cpp +++ b/korganizer/koeventviewer.cpp | |||
@@ -89,48 +89,58 @@ void KOEventViewer::printMe() | |||
89 | QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); | 89 | QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); |
90 | float dx, dy; | 90 | float dx, dy; |
91 | int wid = (m.width() * 9)/10; | 91 | int wid = (m.width() * 9)/10; |
92 | dx = (float) wid/(float)contentsWidth (); | 92 | dx = (float) wid/(float)contentsWidth (); |
93 | dy = (float)(m.height()) / (float)contentsHeight (); | 93 | dy = (float)(m.height()) / (float)contentsHeight (); |
94 | float scale; | 94 | float scale; |
95 | // scale to fit the width or height of the paper | 95 | // scale to fit the width or height of the paper |
96 | if ( dx < dy ) | 96 | if ( dx < dy ) |
97 | scale = dx; | 97 | scale = dx; |
98 | else | 98 | else |
99 | scale = dy; | 99 | scale = dy; |
100 | 100 | ||
101 | p.translate( m.width()/10,0 ); | 101 | p.translate( m.width()/10,0 ); |
102 | if ( scaleval == 2 || scaleval == 1 && scale < 1.0 ) { | 102 | if ( scaleval == 2 || scaleval == 1 && scale < 1.0 ) { |
103 | p.scale( scale, scale ); | 103 | p.scale( scale, scale ); |
104 | } | 104 | } |
105 | drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); | 105 | drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); |
106 | p.end(); | 106 | p.end(); |
107 | #endif | 107 | #endif |
108 | 108 | ||
109 | } | 109 | } |
110 | void KOEventViewer::setSource(const QString& n) | 110 | void KOEventViewer::setSource(const QString& n) |
111 | { | 111 | { |
112 | 112 | ||
113 | if ( n.left(8) == "todo_uid" ) { | ||
114 | int midstr = 9; | ||
115 | #ifdef DESKTOP_VERSION | ||
116 | midstr = 11; | ||
117 | #endif | ||
118 | qDebug("-%s- ", n.mid(midstr).latin1()); | ||
119 | emit showIncidence( n.mid(midstr) ); | ||
120 | return; | ||
121 | } | ||
122 | |||
113 | if ( n.left(3) == "uid" ) | 123 | if ( n.left(3) == "uid" ) |
114 | #ifdef DESKTOP_VERSION | 124 | #ifdef DESKTOP_VERSION |
115 | { | 125 | { |
116 | KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); | 126 | KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); |
117 | KABC::AddressBook::Iterator it; | 127 | KABC::AddressBook::Iterator it; |
118 | for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { | 128 | for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { |
119 | // LR I do not understand, why the uid string is different on zaurus and desktop | 129 | // LR I do not understand, why the uid string is different on zaurus and desktop |
120 | QString uid = "uid://"+(*it).uid(); | 130 | QString uid = "uid://"+(*it).uid(); |
121 | 131 | ||
122 | //qDebug("for *%s* +%s+ ", n.latin1(), uid.latin1()); | 132 | //qDebug("for *%s* +%s+ ", n.latin1(), uid.latin1()); |
123 | if (n == uid ) { | 133 | if (n == uid ) { |
124 | //qDebug("found %s ",(*it).mobileHomePhone().latin1() ); | 134 | //qDebug("found %s ",(*it).mobileHomePhone().latin1() ); |
125 | QDialog dia( this,"dia123", true ); | 135 | QDialog dia( this,"dia123", true ); |
126 | dia.setCaption( i18n("Details of attendee") ); | 136 | dia.setCaption( i18n("Details of attendee") ); |
127 | QVBoxLayout lay ( &dia ); | 137 | QVBoxLayout lay ( &dia ); |
128 | KABC::AddresseeView av ( &dia ); | 138 | KABC::AddresseeView av ( &dia ); |
129 | av.setAddressee( (*it) ); | 139 | av.setAddressee( (*it) ); |
130 | lay.addWidget( &av ); | 140 | lay.addWidget( &av ); |
131 | if ( QApplication::desktop()->width() < 480 ) | 141 | if ( QApplication::desktop()->width() < 480 ) |
132 | dia.resize( 220, 240); | 142 | dia.resize( 220, 240); |
133 | else { | 143 | else { |
134 | dia.resize( 400,400); | 144 | dia.resize( 400,400); |
135 | } | 145 | } |
136 | dia.exec(); | 146 | dia.exec(); |
@@ -509,56 +519,68 @@ void KOEventViewer::appendTodo(Todo *event, int mode ) | |||
509 | 519 | ||
510 | formatAttendees(event); | 520 | formatAttendees(event); |
511 | 521 | ||
512 | if ( KOPrefs::instance()->mEVshowCreated ) { | 522 | if ( KOPrefs::instance()->mEVshowCreated ) { |
513 | if(wideScreen ){ | 523 | if(wideScreen ){ |
514 | 524 | ||
515 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 525 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
516 | 526 | ||
517 | } else { | 527 | } else { |
518 | addTag("p",i18n("<b>Created: ") +" </b>"); | 528 | addTag("p",i18n("<b>Created: ") +" </b>"); |
519 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 529 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
520 | } | 530 | } |
521 | } | 531 | } |
522 | if ( KOPrefs::instance()->mEVshowChanged ) { | 532 | if ( KOPrefs::instance()->mEVshowChanged ) { |
523 | if(wideScreen ){ | 533 | if(wideScreen ){ |
524 | addTag("p",i18n("<b>Last modified: ") +" </b>" +KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); | 534 | addTag("p",i18n("<b>Last modified: ") +" </b>" +KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); |
525 | 535 | ||
526 | } else { | 536 | } else { |
527 | addTag("p",i18n("<b>Last modified: ") +" </b>"); | 537 | addTag("p",i18n("<b>Last modified: ") +" </b>"); |
528 | addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); | 538 | addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); |
529 | } | 539 | } |
530 | } | 540 | } |
531 | if ( event->relatedTo() ) { | 541 | if ( event->relatedTo() ) { |
532 | addTag("b",i18n("Parent todo:<br>")); | 542 | addTag("b",i18n("Parent todo:<br>")); |
533 | mText.append(deTag(event->relatedTo()->summary())+" [" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] <br>"); | 543 | |
544 | QString t_name = "[" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] ";// +event->relatedTo()->summary()); | ||
545 | |||
546 | mText += t_name; | ||
547 | mText += "<a href=\"todo_uid:" + event->relatedTo()->uid() + "\">"; | ||
548 | mText += deTag(event->relatedTo()->summary()); | ||
549 | mText += "</a><br>"; | ||
550 | |||
551 | // mText.append(deTag("[" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] " +event->relatedTo()->summary()) +"<br>"); | ||
534 | } | 552 | } |
535 | QPtrList<Incidence> Relations = event->relations(); | 553 | QPtrList<Incidence> Relations = event->relations(); |
536 | Incidence *to; | 554 | Incidence *to; |
537 | if ( Relations.first() ) | 555 | if ( Relations.first() ) |
538 | addTag("b",i18n("Sub todos:<br>")); | 556 | addTag("b",i18n("Sub todos:<br>")); |
539 | for (to=Relations.first();to;to=Relations.next()) { | 557 | for (to=Relations.first();to;to=Relations.next()) { |
540 | mText.append( deTag(to->summary())+" [" +QString::number(to->priority()) + "/" + QString::number(((Todo*)to)->percentComplete())+"%]<br>"); | 558 | QString t_name = "[" +QString::number(((Todo*)to)->priority()) + "/" + QString::number(((Todo*)to)->percentComplete())+"%] ";// +to->relatedTo()->summary()); |
559 | mText += t_name; | ||
560 | mText += "<a href=\"todo_uid:" + to->uid() + "\">"; | ||
561 | mText += deTag(to->summary()); | ||
562 | mText += "</a><br>"; | ||
541 | 563 | ||
542 | } | 564 | } |
543 | 565 | ||
544 | if ( KOPrefs::instance()->mEVshowDetails ) { | 566 | if ( KOPrefs::instance()->mEVshowDetails ) { |
545 | if (!event->description().isEmpty()) { | 567 | if (!event->description().isEmpty()) { |
546 | addTag("p",i18n("<b>Details: </b>")); | 568 | addTag("p",i18n("<b>Details: </b>")); |
547 | addTag("p",deTag(event->description())); | 569 | addTag("p",deTag(event->description())); |
548 | } | 570 | } |
549 | } | 571 | } |
550 | setText(mText); | 572 | setText(mText); |
551 | } | 573 | } |
552 | 574 | ||
553 | void KOEventViewer::formatCategories(Incidence *event) | 575 | void KOEventViewer::formatCategories(Incidence *event) |
554 | { | 576 | { |
555 | if (!event->categoriesStr().isEmpty()) { | 577 | if (!event->categoriesStr().isEmpty()) { |
556 | if (event->categories().count() == 1) { | 578 | if (event->categories().count() == 1) { |
557 | addTag("p","<b>"+i18n("Category") + ":</b> " + event->categoriesStrWithSpace()); | 579 | addTag("p","<b>"+i18n("Category") + ":</b> " + event->categoriesStrWithSpace()); |
558 | } else { | 580 | } else { |
559 | addTag("p","<b>"+i18n("Categories")+":</b> " + event->categoriesStrWithSpace() ) ; | 581 | addTag("p","<b>"+i18n("Categories")+":</b> " + event->categoriesStrWithSpace() ) ; |
560 | } | 582 | } |
561 | } | 583 | } |
562 | } | 584 | } |
563 | void KOEventViewer::formatAttendees(Incidence *event) | 585 | void KOEventViewer::formatAttendees(Incidence *event) |
564 | { | 586 | { |
diff --git a/korganizer/koeventviewer.h b/korganizer/koeventviewer.h index 1eeb8d1..64eb4ff 100644 --- a/korganizer/koeventviewer.h +++ b/korganizer/koeventviewer.h | |||
@@ -105,27 +105,28 @@ class KOEventViewer : public QTextBrowser { | |||
105 | void setSyncMode( bool ); | 105 | void setSyncMode( bool ); |
106 | void setColorMode( int ); | 106 | void setColorMode( int ); |
107 | void mailToAttendees( bool all ); | 107 | void mailToAttendees( bool all ); |
108 | void printMe(); | 108 | void printMe(); |
109 | 109 | ||
110 | protected: | 110 | protected: |
111 | int mColorMode; | 111 | int mColorMode; |
112 | void addTag(const QString & tag,const QString & text); | 112 | void addTag(const QString & tag,const QString & text); |
113 | 113 | ||
114 | void formatCategories(Incidence *event); | 114 | void formatCategories(Incidence *event); |
115 | void formatAttendees(Incidence *event); | 115 | void formatAttendees(Incidence *event); |
116 | void formatReadOnly(Incidence *event); | 116 | void formatReadOnly(Incidence *event); |
117 | void keyPressEvent ( QKeyEvent * e ); | 117 | void keyPressEvent ( QKeyEvent * e ); |
118 | 118 | ||
119 | private: | 119 | private: |
120 | QTextBrowser *mEventTextView; | 120 | QTextBrowser *mEventTextView; |
121 | bool mSyncMode; | 121 | bool mSyncMode; |
122 | QString deTag(QString text); | 122 | QString deTag(QString text); |
123 | 123 | ||
124 | QString mText; | 124 | QString mText; |
125 | QString mMailSubject; | 125 | QString mMailSubject; |
126 | Incidence* mCurrentIncidence; | 126 | Incidence* mCurrentIncidence; |
127 | signals: | 127 | signals: |
128 | void launchaddressbook(QString uid); | 128 | void launchaddressbook(QString uid); |
129 | void showIncidence(QString uid); | ||
129 | }; | 130 | }; |
130 | 131 | ||
131 | #endif | 132 | #endif |
diff --git a/korganizer/koeventviewerdialog.cpp b/korganizer/koeventviewerdialog.cpp index 02f13c7..0763825 100644 --- a/korganizer/koeventviewerdialog.cpp +++ b/korganizer/koeventviewerdialog.cpp | |||
@@ -30,48 +30,49 @@ | |||
30 | #include "qapp.h" | 30 | #include "qapp.h" |
31 | 31 | ||
32 | #include "koeventviewerdialog.h" | 32 | #include "koeventviewerdialog.h" |
33 | extern int globalFlagBlockAgenda; | 33 | extern int globalFlagBlockAgenda; |
34 | 34 | ||
35 | KOEventViewerDialog::KOEventViewerDialog(QWidget *parent,const char *name) | 35 | KOEventViewerDialog::KOEventViewerDialog(QWidget *parent,const char *name) |
36 | : KDialogBase(parent,name, | 36 | : KDialogBase(parent,name, |
37 | #ifndef DESKTOP_VERSION | 37 | #ifndef DESKTOP_VERSION |
38 | true , | 38 | true , |
39 | #else | 39 | #else |
40 | false, | 40 | false, |
41 | #endif | 41 | #endif |
42 | i18n("Event Viewer"),Ok|User1|Close,Close, false, i18n("Agenda")) | 42 | i18n("Event Viewer"),Ok|User1|Close,Close, false, i18n("Agenda")) |
43 | { | 43 | { |
44 | sendSignalViewerClosed = true; | 44 | sendSignalViewerClosed = true; |
45 | mEventViewer = new KOEventViewer(this); | 45 | mEventViewer = new KOEventViewer(this); |
46 | mEventViewer->setFont( KOPrefs::instance()->mEventViewFont ); | 46 | mEventViewer->setFont( KOPrefs::instance()->mEventViewFont ); |
47 | setMainWidget(mEventViewer); | 47 | setMainWidget(mEventViewer); |
48 | setButtonText(Ok, i18n("Edit") ); | 48 | setButtonText(Ok, i18n("Edit") ); |
49 | 49 | ||
50 | QObject::connect(findButton( Ok ),SIGNAL(clicked()), | 50 | QObject::connect(findButton( Ok ),SIGNAL(clicked()), |
51 | SLOT(editIncidence())); | 51 | SLOT(editIncidence())); |
52 | QObject::connect(this,SIGNAL(user1Clicked()), | 52 | QObject::connect(this,SIGNAL(user1Clicked()), |
53 | SLOT(showIncidence())); | 53 | SLOT(showIncidence())); |
54 | connect( mEventViewer, SIGNAL( showIncidence( QString ) ),SIGNAL( showIncidence( QString ) )); | ||
54 | mIncidence = 0; | 55 | mIncidence = 0; |
55 | // TODO: Set a sensible size (based on the content?). | 56 | // TODO: Set a sensible size (based on the content?). |
56 | //showMaximized(); | 57 | //showMaximized(); |
57 | //qDebug("++++++++++++KOEventViewerDialog() "); | 58 | //qDebug("++++++++++++KOEventViewerDialog() "); |
58 | // if ( KOPrefs::instance()->mCompactDialogs ) { | 59 | // if ( KOPrefs::instance()->mCompactDialogs ) { |
59 | // setFixedSize( 240,284 ); | 60 | // setFixedSize( 240,284 ); |
60 | // move( 0, 15 ); | 61 | // move( 0, 15 ); |
61 | // } else { | 62 | // } else { |
62 | // setMinimumSize(300,200); | 63 | // setMinimumSize(300,200); |
63 | // resize(320,300); | 64 | // resize(320,300); |
64 | // } | 65 | // } |
65 | mSyncMode = false; | 66 | mSyncMode = false; |
66 | mSyncResult = 0; | 67 | mSyncResult = 0; |
67 | 68 | ||
68 | } | 69 | } |
69 | 70 | ||
70 | KOEventViewerDialog::~KOEventViewerDialog() | 71 | KOEventViewerDialog::~KOEventViewerDialog() |
71 | { | 72 | { |
72 | //qDebug("-------~KOEventViewerDialog() "); | 73 | //qDebug("-------~KOEventViewerDialog() "); |
73 | } | 74 | } |
74 | void KOEventViewerDialog::showMe() | 75 | void KOEventViewerDialog::showMe() |
75 | { | 76 | { |
76 | 77 | ||
77 | #ifdef DESKTOP_VERSION | 78 | #ifdef DESKTOP_VERSION |
diff --git a/korganizer/koeventviewerdialog.h b/korganizer/koeventviewerdialog.h index 29fee49..71696f4 100644 --- a/korganizer/koeventviewerdialog.h +++ b/korganizer/koeventviewerdialog.h | |||
@@ -33,45 +33,46 @@ using namespace KCal; | |||
33 | class KOEventViewer; | 33 | class KOEventViewer; |
34 | 34 | ||
35 | class KOEventViewerDialog : public KDialogBase { | 35 | class KOEventViewerDialog : public KDialogBase { |
36 | Q_OBJECT | 36 | Q_OBJECT |
37 | public: | 37 | public: |
38 | KOEventViewerDialog(QWidget *parent=0,const char *name=0); | 38 | KOEventViewerDialog(QWidget *parent=0,const char *name=0); |
39 | virtual ~KOEventViewerDialog(); | 39 | virtual ~KOEventViewerDialog(); |
40 | 40 | ||
41 | void setEvent(Event *event); | 41 | void setEvent(Event *event); |
42 | void addEvent(Event *event); | 42 | void addEvent(Event *event); |
43 | void setTodo(Todo *event); | 43 | void setTodo(Todo *event); |
44 | void setJournal(Journal *journal); | 44 | void setJournal(Journal *journal); |
45 | void setIncidence(Incidence *inc); | 45 | void setIncidence(Incidence *inc); |
46 | void addIncidence(Incidence *inc); | 46 | void addIncidence(Incidence *inc); |
47 | void addText(QString text); | 47 | void addText(QString text); |
48 | void showMe(); | 48 | void showMe(); |
49 | void setSyncMode( bool ); | 49 | void setSyncMode( bool ); |
50 | void setColorMode( int m ); | 50 | void setColorMode( int m ); |
51 | int executeS( bool ); | 51 | int executeS( bool ); |
52 | public slots: | 52 | public slots: |
53 | void updateConfig(); | 53 | void updateConfig(); |
54 | void print(); | 54 | void print(); |
55 | void setMyFocus(); | 55 | void setMyFocus(); |
56 | signals: | 56 | signals: |
57 | void showIncidence( QString ); | ||
57 | void editIncidence( Incidence* ); | 58 | void editIncidence( Incidence* ); |
58 | void jumpToTime( const QDate &); | 59 | void jumpToTime( const QDate &); |
59 | void showAgendaView( bool ); | 60 | void showAgendaView( bool ); |
60 | void todoCompleted(Todo*); | 61 | void todoCompleted(Todo*); |
61 | void signalViewerClosed(); | 62 | void signalViewerClosed(); |
62 | private slots: | 63 | private slots: |
63 | void slotViewerClosed(); | 64 | void slotViewerClosed(); |
64 | void editIncidence(); | 65 | void editIncidence(); |
65 | void showIncidence(); | 66 | void showIncidence(); |
66 | protected: | 67 | protected: |
67 | void hideEvent ( QHideEvent * e ); | 68 | void hideEvent ( QHideEvent * e ); |
68 | private: | 69 | private: |
69 | bool sendSignalViewerClosed; | 70 | bool sendSignalViewerClosed; |
70 | bool mSyncMode; | 71 | bool mSyncMode; |
71 | int mSyncResult; | 72 | int mSyncResult; |
72 | KOEventViewer *mEventViewer; | 73 | KOEventViewer *mEventViewer; |
73 | Incidence* mIncidence; | 74 | Incidence* mIncidence; |
74 | void keyPressEvent ( QKeyEvent * e ); | 75 | void keyPressEvent ( QKeyEvent * e ); |
75 | }; | 76 | }; |
76 | 77 | ||
77 | #endif | 78 | #endif |
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index e2966f8..4f42c83 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -546,66 +546,80 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : | |||
546 | mTodoListView->setRenameable( 0 ); | 546 | mTodoListView->setRenameable( 0 ); |
547 | mTodoListView->setColumnWidth( 0, 120 ); | 547 | mTodoListView->setColumnWidth( 0, 120 ); |
548 | int iii = 0; | 548 | int iii = 0; |
549 | for ( iii = 0; iii< 10 ; ++iii ) | 549 | for ( iii = 0; iii< 10 ; ++iii ) |
550 | mTodoListView->setColumnWidthMode( iii, QListView::Manual ); | 550 | mTodoListView->setColumnWidthMode( iii, QListView::Manual ); |
551 | 551 | ||
552 | 552 | ||
553 | mKOTodoViewWhatsThis = new KOTodoViewWhatsThis(mTodoListView->viewport(),this); | 553 | mKOTodoViewWhatsThis = new KOTodoViewWhatsThis(mTodoListView->viewport(),this); |
554 | 554 | ||
555 | mPriorityPopupMenu = new QPopupMenu(this); | 555 | mPriorityPopupMenu = new QPopupMenu(this); |
556 | for (int i = 1; i <= 5; i++) { | 556 | for (int i = 1; i <= 5; i++) { |
557 | QString label = QString ("%1").arg (i); | 557 | QString label = QString ("%1").arg (i); |
558 | mPriority[mPriorityPopupMenu->insertItem (label)] = i; | 558 | mPriority[mPriorityPopupMenu->insertItem (label)] = i; |
559 | } | 559 | } |
560 | connect (mPriorityPopupMenu, SIGNAL(activated (int)), SLOT (setNewPriority(int))); | 560 | connect (mPriorityPopupMenu, SIGNAL(activated (int)), SLOT (setNewPriority(int))); |
561 | 561 | ||
562 | mPercentageCompletedPopupMenu = new QPopupMenu(this); | 562 | mPercentageCompletedPopupMenu = new QPopupMenu(this); |
563 | for (int i = 0; i <= 100; i+=20) { | 563 | for (int i = 0; i <= 100; i+=20) { |
564 | QString label = QString ("%1 %").arg (i); | 564 | QString label = QString ("%1 %").arg (i); |
565 | mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i; | 565 | mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i; |
566 | } | 566 | } |
567 | connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int))); | 567 | connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int))); |
568 | 568 | ||
569 | 569 | ||
570 | mCategoryPopupMenu = new QPopupMenu (this); | ||
571 | mCategoryPopupMenu->setCheckable (true); | ||
572 | connect (mCategoryPopupMenu, SIGNAL (activated (int)), SLOT (changedCategories (int))); | ||
573 | connect (mCategoryPopupMenu, SIGNAL (aboutToShow ()), SLOT (fillCategories ())); | ||
574 | |||
575 | mCalPopupMenu = new QPopupMenu (this); | ||
576 | mCalPopupMenu->setCheckable (true); | ||
577 | connect (mCalPopupMenu, SIGNAL (activated (int)), SLOT (changedCal (int))); | ||
578 | connect (mCalPopupMenu, SIGNAL (aboutToShow ()), SLOT (fillCal ())); | ||
579 | |||
580 | |||
581 | |||
570 | 582 | ||
571 | mItemPopupMenu = new QPopupMenu(this); | 583 | mItemPopupMenu = new QPopupMenu(this); |
572 | mItemPopupMenu->insertItem(i18n("Show..."), this, | 584 | mItemPopupMenu->insertItem(i18n("Show"), this, |
573 | SLOT (showTodo())); | 585 | SLOT (showTodo())); |
574 | mItemPopupMenu->insertItem(i18n("Edit..."), this, | 586 | mItemPopupMenu->insertItem(i18n("Edit..."), this, |
575 | SLOT (editTodo())); | 587 | SLOT (editTodo())); |
576 | mItemPopupMenu->insertItem( i18n("Delete"), this, | 588 | mItemPopupMenu->insertItem( i18n("Delete"), this, |
577 | SLOT (deleteTodo())); | 589 | SLOT (deleteTodo())); |
578 | mItemPopupMenu->insertItem( i18n("Clone..."), this, | 590 | mItemPopupMenu->insertItem( i18n("Clone..."), this, |
579 | SLOT (cloneTodo())); | 591 | SLOT (cloneTodo())); |
580 | mItemPopupMenu->insertItem( i18n("Move..."), this, | 592 | mItemPopupMenu->insertItem( i18n("Move..."), this, |
581 | SLOT (moveTodo())); | 593 | SLOT (moveTodo())); |
582 | #ifndef DESKTOP_VERSION | 594 | #ifndef DESKTOP_VERSION |
583 | mItemPopupMenu->insertItem( i18n("Beam..."), this, | 595 | mItemPopupMenu->insertItem( i18n("Beam..."), this, |
584 | SLOT (beamTodo())); | 596 | SLOT (beamTodo())); |
585 | #endif | 597 | #endif |
586 | mItemPopupMenu->insertItem( i18n("Toggle Cancel"), this, | 598 | mItemPopupMenu->insertItem( i18n("Toggle Cancel"), this, |
587 | SLOT (cancelTodo())); | 599 | SLOT (cancelTodo())); |
600 | mItemPopupMenu->insertItem( i18n("Categories"), mCategoryPopupMenu); | ||
601 | mItemPopupMenu->insertItem( i18n("Calendar"), mCalPopupMenu); | ||
588 | mItemPopupMenu->insertSeparator(); | 602 | mItemPopupMenu->insertSeparator(); |
589 | mItemPopupMenu->insertItem( i18n("Start/Stop todo..."), this, | 603 | mItemPopupMenu->insertItem( i18n("Start/Stop todo..."), this, |
590 | SLOT (toggleRunningItem())); | 604 | SLOT (toggleRunningItem())); |
591 | mItemPopupMenu->insertSeparator(); | 605 | mItemPopupMenu->insertSeparator(); |
592 | /* | 606 | /* |
593 | mItemPopupMenu->insertItem( i18n("New Todo..."), this, | 607 | mItemPopupMenu->insertItem( i18n("New Todo..."), this, |
594 | SLOT (newTodo())); | 608 | SLOT (newTodo())); |
595 | */ | 609 | */ |
596 | mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this, | 610 | mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this, |
597 | SLOT (newSubTodo())); | 611 | SLOT (newSubTodo())); |
598 | mItemPopupMenu->insertItem(i18n("Unparent Todo"), this, | 612 | mItemPopupMenu->insertItem(i18n("Unparent Todo"), this, |
599 | SLOT (unparentTodo()),0,21); | 613 | SLOT (unparentTodo()),0,21); |
600 | mItemPopupMenu->insertItem(i18n("Reparent Todo"), this, | 614 | mItemPopupMenu->insertItem(i18n("Reparent Todo"), this, |
601 | SLOT (reparentTodo()),0,22); | 615 | SLOT (reparentTodo()),0,22); |
602 | mItemPopupMenu->insertSeparator(); | 616 | mItemPopupMenu->insertSeparator(); |
603 | #if 0 | 617 | #if 0 |
604 | mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed..."), | 618 | mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed..."), |
605 | this, SLOT( purgeCompleted() ) ); | 619 | this, SLOT( purgeCompleted() ) ); |
606 | mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"), | 620 | mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"), |
607 | this, SLOT( toggleCompleted() ),0, 33 ); | 621 | this, SLOT( toggleCompleted() ),0, 33 ); |
608 | mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), | 622 | mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), |
609 | this, SLOT( toggleQuickTodo() ),0, 34 ); | 623 | this, SLOT( toggleQuickTodo() ),0, 34 ); |
610 | mItemPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), | 624 | mItemPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), |
611 | this, SLOT( toggleRunning() ),0, 35 ); | 625 | this, SLOT( toggleRunning() ),0, 35 ); |
@@ -1032,49 +1046,51 @@ void KOTodoView::printPreview(CalPrinter *calPrinter, const QDate &fd, | |||
1032 | void KOTodoView::editItem(QListViewItem *item ) | 1046 | void KOTodoView::editItem(QListViewItem *item ) |
1033 | { | 1047 | { |
1034 | emit editTodoSignal(((KOTodoViewItem *)item)->todo()); | 1048 | emit editTodoSignal(((KOTodoViewItem *)item)->todo()); |
1035 | } | 1049 | } |
1036 | 1050 | ||
1037 | void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) | 1051 | void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) |
1038 | { | 1052 | { |
1039 | emit showTodoSignal(((KOTodoViewItem *)item)->todo()); | 1053 | emit showTodoSignal(((KOTodoViewItem *)item)->todo()); |
1040 | } | 1054 | } |
1041 | 1055 | ||
1042 | void KOTodoView::popupMenu(QListViewItem *item,const QPoint &p,int column) | 1056 | void KOTodoView::popupMenu(QListViewItem *item,const QPoint &p,int column) |
1043 | { | 1057 | { |
1044 | pendingSubtodo = 0; | 1058 | pendingSubtodo = 0; |
1045 | mActiveItem = (KOTodoViewItem *)item; | 1059 | mActiveItem = (KOTodoViewItem *)item; |
1046 | if (item) { | 1060 | if (item) { |
1047 | switch (column){ | 1061 | switch (column){ |
1048 | case 1: | 1062 | case 1: |
1049 | mPriorityPopupMenu->popup(QCursor::pos ()); break; | 1063 | mPriorityPopupMenu->popup(QCursor::pos ()); break; |
1050 | case 2: | 1064 | case 2: |
1051 | mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; | 1065 | mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; |
1052 | case 3: | 1066 | case 3: |
1053 | moveTodo(); | 1067 | moveTodo(); |
1054 | break; | 1068 | break; |
1055 | case 8: | 1069 | case 8: |
1056 | getCategoryPopupMenu((KOTodoViewItem *)item)->popup(QCursor::pos ()); break; | 1070 | mCategoryPopupMenu->popup(QCursor::pos ()); break; |
1071 | case 9: | ||
1072 | mCalPopupMenu->popup(QCursor::pos ()); break; | ||
1057 | default: | 1073 | default: |
1058 | mItemPopupMenu->popup(QCursor::pos()); | 1074 | mItemPopupMenu->popup(QCursor::pos()); |
1059 | } | 1075 | } |
1060 | } else mPopupMenu->popup(QCursor::pos()); | 1076 | } else mPopupMenu->popup(QCursor::pos()); |
1061 | } | 1077 | } |
1062 | void KOTodoView::newTodo() | 1078 | void KOTodoView::newTodo() |
1063 | { | 1079 | { |
1064 | emit newTodoSignal(); | 1080 | emit newTodoSignal(); |
1065 | } | 1081 | } |
1066 | 1082 | ||
1067 | void KOTodoView::newSubTodo() | 1083 | void KOTodoView::newSubTodo() |
1068 | { | 1084 | { |
1069 | if (mActiveItem) { | 1085 | if (mActiveItem) { |
1070 | emit newSubTodoSignal(mActiveItem->todo()); | 1086 | emit newSubTodoSignal(mActiveItem->todo()); |
1071 | } | 1087 | } |
1072 | } | 1088 | } |
1073 | void KOTodoView::unparentTodo() | 1089 | void KOTodoView::unparentTodo() |
1074 | { | 1090 | { |
1075 | if (mActiveItem) { | 1091 | if (mActiveItem) { |
1076 | emit unparentTodoSignal(mActiveItem->todo()); | 1092 | emit unparentTodoSignal(mActiveItem->todo()); |
1077 | } | 1093 | } |
1078 | } | 1094 | } |
1079 | 1095 | ||
1080 | void KOTodoView::reparentTodo() | 1096 | void KOTodoView::reparentTodo() |
@@ -1143,67 +1159,80 @@ void KOTodoView::setNewPriority(int index) | |||
1143 | void KOTodoView::setNewPercentage(int index) | 1159 | void KOTodoView::setNewPercentage(int index) |
1144 | { | 1160 | { |
1145 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { | 1161 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { |
1146 | 1162 | ||
1147 | if ( mPercentage[index] == 100 && !mActiveItem->isOn() ) { | 1163 | if ( mPercentage[index] == 100 && !mActiveItem->isOn() ) { |
1148 | mActiveItem->setOn( true ); | 1164 | mActiveItem->setOn( true ); |
1149 | return; | 1165 | return; |
1150 | } else if ( mPercentage[index] != 100 && mActiveItem->isOn() ) { | 1166 | } else if ( mPercentage[index] != 100 && mActiveItem->isOn() ) { |
1151 | KOTodoViewItem* par = (static_cast<KOTodoViewItem*>(mActiveItem->parent())); | 1167 | KOTodoViewItem* par = (static_cast<KOTodoViewItem*>(mActiveItem->parent())); |
1152 | if ( par && par->isOn() ) | 1168 | if ( par && par->isOn() ) |
1153 | par->setOn( false ); | 1169 | par->setOn( false ); |
1154 | } | 1170 | } |
1155 | if (mPercentage[index] == 100) { | 1171 | if (mPercentage[index] == 100) { |
1156 | mActiveItem->todo()->setCompleted(QDateTime::currentDateTime()); | 1172 | mActiveItem->todo()->setCompleted(QDateTime::currentDateTime()); |
1157 | } else { | 1173 | } else { |
1158 | mActiveItem->todo()->setCompleted(false); | 1174 | mActiveItem->todo()->setCompleted(false); |
1159 | } | 1175 | } |
1160 | mActiveItem->todo()->setPercentComplete(mPercentage[index]); | 1176 | mActiveItem->todo()->setPercentComplete(mPercentage[index]); |
1161 | mActiveItem->construct(); | 1177 | mActiveItem->construct(); |
1162 | todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED); | 1178 | todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED); |
1163 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); | 1179 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); |
1164 | } | 1180 | } |
1165 | } | 1181 | } |
1166 | 1182 | ||
1167 | 1183 | void KOTodoView::fillCategories () | |
1168 | QPopupMenu * KOTodoView::getCategoryPopupMenu (KOTodoViewItem *todoItem) | ||
1169 | { | 1184 | { |
1170 | if ( !mCategoryPopupMenu ) { | ||
1171 | mCategoryPopupMenu = new QPopupMenu (this); | ||
1172 | mCategoryPopupMenu->setCheckable (true); | ||
1173 | connect (mCategoryPopupMenu, SIGNAL (activated (int)), SLOT (changedCategories (int))); | ||
1174 | } | ||
1175 | mCategoryPopupMenu->clear(); | 1185 | mCategoryPopupMenu->clear(); |
1176 | QStringList checkedCategories = todoItem->todo()->categories (); | 1186 | if ( ! mActiveItem ) return; |
1177 | 1187 | QStringList checkedCategories = mActiveItem->todo()->categories (); | |
1178 | for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); | 1188 | for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); |
1179 | it != KOPrefs::instance()->mCustomCategories.end (); | 1189 | it != KOPrefs::instance()->mCustomCategories.end (); |
1180 | ++it) { | 1190 | ++it) { |
1181 | int index = mCategoryPopupMenu->insertItem (*it); | 1191 | int index = mCategoryPopupMenu->insertItem (*it); |
1182 | mCategory[index] = *it; | 1192 | mCategory[index] = *it; |
1183 | if (checkedCategories.find (*it) != checkedCategories.end ()) mCategoryPopupMenu->setItemChecked (index, true); | 1193 | if (checkedCategories.find (*it) != checkedCategories.end ()) mCategoryPopupMenu->setItemChecked (index, true); |
1184 | } | 1194 | } |
1185 | return mCategoryPopupMenu; | 1195 | } |
1196 | void KOTodoView::fillCal () | ||
1197 | { | ||
1198 | mCalPopupMenu->clear(); | ||
1199 | if (!mActiveItem) return; | ||
1200 | bool readO = mActiveItem->todo()->isReadOnly(); | ||
1201 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); | ||
1202 | while ( kkf ) { | ||
1203 | int index = mCalPopupMenu->insertItem( kkf->mName, kkf->mCalNumber); | ||
1204 | if ( kkf->mErrorOnLoad || kkf->isReadOnly || readO ) | ||
1205 | mCalPopupMenu->setItemEnabled( index, false ); | ||
1206 | mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID()); | ||
1207 | kkf = KOPrefs::instance()->mCalendars.next(); | ||
1208 | } | ||
1209 | } | ||
1210 | void KOTodoView::changedCal (int index ) | ||
1211 | { | ||
1212 | if (!mActiveItem) return; | ||
1213 | mActiveItem->todo()->setCalID( index ); | ||
1214 | mActiveItem->construct(); | ||
1186 | } | 1215 | } |
1187 | void KOTodoView::changedCategories(int index) | 1216 | void KOTodoView::changedCategories(int index) |
1188 | { | 1217 | { |
1189 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { | 1218 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { |
1190 | QStringList categories = mActiveItem->todo()->categories (); | 1219 | QStringList categories = mActiveItem->todo()->categories (); |
1191 | QString colcat = categories.first(); | 1220 | QString colcat = categories.first(); |
1192 | if (categories.find (mCategory[index]) != categories.end ()) | 1221 | if (categories.find (mCategory[index]) != categories.end ()) |
1193 | categories.remove (mCategory[index]); | 1222 | categories.remove (mCategory[index]); |
1194 | else | 1223 | else |
1195 | categories.insert (categories.end(), mCategory[index]); | 1224 | categories.insert (categories.end(), mCategory[index]); |
1196 | categories.sort (); | 1225 | categories.sort (); |
1197 | if ( !colcat.isEmpty() ) { | 1226 | if ( !colcat.isEmpty() ) { |
1198 | if ( categories.find ( colcat ) != categories.end () ) { | 1227 | if ( categories.find ( colcat ) != categories.end () ) { |
1199 | categories.remove( colcat ); | 1228 | categories.remove( colcat ); |
1200 | categories.prepend( colcat ); | 1229 | categories.prepend( colcat ); |
1201 | } | 1230 | } |
1202 | } | 1231 | } |
1203 | mActiveItem->todo()->setCategories (categories); | 1232 | mActiveItem->todo()->setCategories (categories); |
1204 | mActiveItem->construct(); | 1233 | mActiveItem->construct(); |
1205 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); | 1234 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); |
1206 | todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); | 1235 | todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); |
1207 | } | 1236 | } |
1208 | } | 1237 | } |
1209 | void KOTodoView::itemDoubleClicked(QListViewItem *item) | 1238 | void KOTodoView::itemDoubleClicked(QListViewItem *item) |
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h index 9ae7f53..79cc756 100644 --- a/korganizer/kotodoview.h +++ b/korganizer/kotodoview.h | |||
@@ -151,50 +151,48 @@ class KOQuickTodo : public QLineEdit | |||
151 | */ | 151 | */ |
152 | class KOTodoView : public KOrg::BaseView | 152 | class KOTodoView : public KOrg::BaseView |
153 | { | 153 | { |
154 | Q_OBJECT | 154 | Q_OBJECT |
155 | public: | 155 | public: |
156 | KOTodoView(Calendar *, QWidget* parent=0, const char* name=0 ); | 156 | KOTodoView(Calendar *, QWidget* parent=0, const char* name=0 ); |
157 | ~KOTodoView(); | 157 | ~KOTodoView(); |
158 | 158 | ||
159 | QPtrList<Incidence> selectedIncidences(); | 159 | QPtrList<Incidence> selectedIncidences(); |
160 | QPtrList<Todo> selectedTodos(); | 160 | QPtrList<Todo> selectedTodos(); |
161 | 161 | ||
162 | DateList selectedDates() | 162 | DateList selectedDates() |
163 | {DateList q; | 163 | {DateList q; |
164 | return q;} | 164 | return q;} |
165 | 165 | ||
166 | /** Return number of shown dates. TodoView does not show dates, */ | 166 | /** Return number of shown dates. TodoView does not show dates, */ |
167 | int currentDateCount() { return 0; } | 167 | int currentDateCount() { return 0; } |
168 | 168 | ||
169 | void printPreview(CalPrinter *calPrinter, const QDate &fd, const QDate &td); | 169 | void printPreview(CalPrinter *calPrinter, const QDate &fd, const QDate &td); |
170 | 170 | ||
171 | void setDocumentId( const QString & ); | 171 | void setDocumentId( const QString & ); |
172 | 172 | ||
173 | void saveLayout(KConfig *config, const QString &group) const; | 173 | void saveLayout(KConfig *config, const QString &group) const; |
174 | void restoreLayout(KConfig *config, const QString &group); | 174 | void restoreLayout(KConfig *config, const QString &group); |
175 | /** Create a popup menu to set categories */ | ||
176 | QPopupMenu *getCategoryPopupMenu (KOTodoViewItem *todoItem); | ||
177 | void setNavigator( DateNavigator* nav ) {mNavigator = nav;} | 175 | void setNavigator( DateNavigator* nav ) {mNavigator = nav;} |
178 | QString getWhatsThisText(QPoint p); | 176 | QString getWhatsThisText(QPoint p); |
179 | void clearList() {mTodoListView->clear(); } | 177 | void clearList() {mTodoListView->clear(); } |
180 | 178 | ||
181 | public slots: | 179 | public slots: |
182 | void updateView(); | 180 | void updateView(); |
183 | void updateConfig(); | 181 | void updateConfig(); |
184 | 182 | ||
185 | void changeEventDisplay(Event *, int); | 183 | void changeEventDisplay(Event *, int); |
186 | 184 | ||
187 | void showDates(const QDate &start, const QDate &end); | 185 | void showDates(const QDate &start, const QDate &end); |
188 | void showEvents(QPtrList<Event> eventList); | 186 | void showEvents(QPtrList<Event> eventList); |
189 | 187 | ||
190 | void clearSelection(); | 188 | void clearSelection(); |
191 | void jumpToDate (); | 189 | void jumpToDate (); |
192 | 190 | ||
193 | void editItem(QListViewItem *item); | 191 | void editItem(QListViewItem *item); |
194 | void showItem(QListViewItem *item,const QPoint &,int); | 192 | void showItem(QListViewItem *item,const QPoint &,int); |
195 | void popupMenu(QListViewItem *item,const QPoint &,int); | 193 | void popupMenu(QListViewItem *item,const QPoint &,int); |
196 | void newTodo(); | 194 | void newTodo(); |
197 | void newSubTodo(); | 195 | void newSubTodo(); |
198 | void unparentTodo(); | 196 | void unparentTodo(); |
199 | void reparentTodo(); | 197 | void reparentTodo(); |
200 | void showTodo(); | 198 | void showTodo(); |
@@ -204,48 +202,51 @@ class KOTodoView : public KOrg::BaseView | |||
204 | void moveTodo(); | 202 | void moveTodo(); |
205 | void beamTodo(); | 203 | void beamTodo(); |
206 | void deleteTodo(); | 204 | void deleteTodo(); |
207 | 205 | ||
208 | void setNewPriority(int); | 206 | void setNewPriority(int); |
209 | void setNewPercentage(int); | 207 | void setNewPercentage(int); |
210 | void changedCategories(int); | 208 | void changedCategories(int); |
211 | 209 | ||
212 | void setAllOpen(); | 210 | void setAllOpen(); |
213 | void setAllClose(); | 211 | void setAllClose(); |
214 | void setAllFlat(); | 212 | void setAllFlat(); |
215 | void displayAllFlat(); | 213 | void displayAllFlat(); |
216 | 214 | ||
217 | void purgeCompleted(); | 215 | void purgeCompleted(); |
218 | void toggleCompleted(); | 216 | void toggleCompleted(); |
219 | void toggleRunning(); | 217 | void toggleRunning(); |
220 | void toggleQuickTodo(); | 218 | void toggleQuickTodo(); |
221 | void updateTodo( Todo *, int ); | 219 | void updateTodo( Todo *, int ); |
222 | 220 | ||
223 | void itemClicked(QListViewItem *); | 221 | void itemClicked(QListViewItem *); |
224 | void itemStateChanged(QListViewItem *); | 222 | void itemStateChanged(QListViewItem *); |
225 | void modified(bool); | 223 | void modified(bool); |
226 | void itemDoubleClicked(QListViewItem *item); | 224 | void itemDoubleClicked(QListViewItem *item); |
227 | void resetFocusToList(); | 225 | void resetFocusToList(); |
226 | void fillCategories (); | ||
227 | void fillCal (); | ||
228 | void changedCal (int); | ||
228 | 229 | ||
229 | signals: | 230 | signals: |
230 | void newTodoSignal(); | 231 | void newTodoSignal(); |
231 | void newSubTodoSignal(Todo *); | 232 | void newSubTodoSignal(Todo *); |
232 | void unparentTodoSignal(Todo *); | 233 | void unparentTodoSignal(Todo *); |
233 | void reparentTodoSignal( Todo *,Todo * ); | 234 | void reparentTodoSignal( Todo *,Todo * ); |
234 | void showTodoSignal(Todo *); | 235 | void showTodoSignal(Todo *); |
235 | 236 | ||
236 | void editTodoSignal(Todo *); | 237 | void editTodoSignal(Todo *); |
237 | void deleteTodoSignal(Todo *); | 238 | void deleteTodoSignal(Todo *); |
238 | void todoModifiedSignal (Todo *, int); | 239 | void todoModifiedSignal (Todo *, int); |
239 | 240 | ||
240 | void isModified(bool); | 241 | void isModified(bool); |
241 | void cloneTodoSignal( Incidence * ); | 242 | void cloneTodoSignal( Incidence * ); |
242 | void cancelTodoSignal( Incidence * ); | 243 | void cancelTodoSignal( Incidence * ); |
243 | void moveTodoSignal( Incidence * ); | 244 | void moveTodoSignal( Incidence * ); |
244 | void beamTodoSignal( Incidence * ); | 245 | void beamTodoSignal( Incidence * ); |
245 | void purgeCompletedSignal(); | 246 | void purgeCompletedSignal(); |
246 | 247 | ||
247 | protected slots: | 248 | protected slots: |
248 | void toggleRunningItem(); | 249 | void toggleRunningItem(); |
249 | void paintNeeded(); | 250 | void paintNeeded(); |
250 | void processSelectionChange(); | 251 | void processSelectionChange(); |
251 | void addQuickTodo(); | 252 | void addQuickTodo(); |
@@ -258,46 +259,47 @@ class KOTodoView : public KOrg::BaseView | |||
258 | * run. | 259 | * run. |
259 | * Korganizer keeps it in memory and we need to update | 260 | * Korganizer keeps it in memory and we need to update |
260 | * 1. make KOTodoViewItem a QObject again? | 261 | * 1. make KOTodoViewItem a QObject again? |
261 | * 2. add a public method for setting one todo modified? | 262 | * 2. add a public method for setting one todo modified? |
262 | * 3. add a private method for setting a todo modified + friend here? | 263 | * 3. add a private method for setting a todo modified + friend here? |
263 | * -- zecke 2002-07-08 | 264 | * -- zecke 2002-07-08 |
264 | */ | 265 | */ |
265 | KOTodoViewWhatsThis* mKOTodoViewWhatsThis; | 266 | KOTodoViewWhatsThis* mKOTodoViewWhatsThis; |
266 | friend class KOTodoListView; | 267 | friend class KOTodoListView; |
267 | void paintEvent(QPaintEvent * pevent); | 268 | void paintEvent(QPaintEvent * pevent); |
268 | bool mPendingUpdateBeforeRepaint; | 269 | bool mPendingUpdateBeforeRepaint; |
269 | friend class KOTodoViewItem; | 270 | friend class KOTodoViewItem; |
270 | QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo); | 271 | QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo); |
271 | void restoreItemState( QListViewItem * ); | 272 | void restoreItemState( QListViewItem * ); |
272 | 273 | ||
273 | bool checkTodo( Todo * ); | 274 | bool checkTodo( Todo * ); |
274 | bool isFlatDisplay; | 275 | bool isFlatDisplay; |
275 | void setOpen( QListViewItem*, bool setOpen); | 276 | void setOpen( QListViewItem*, bool setOpen); |
276 | KOTodoListView *mTodoListView; | 277 | KOTodoListView *mTodoListView; |
277 | QPopupMenu *mItemPopupMenu; | 278 | QPopupMenu *mItemPopupMenu; |
278 | QPopupMenu *mPopupMenu; | 279 | QPopupMenu *mPopupMenu; |
279 | QPopupMenu *mPriorityPopupMenu; | 280 | QPopupMenu *mPriorityPopupMenu; |
280 | QPopupMenu *mPercentageCompletedPopupMenu; | 281 | QPopupMenu *mPercentageCompletedPopupMenu; |
281 | QPopupMenu *mCategoryPopupMenu; | 282 | QPopupMenu *mCategoryPopupMenu; |
283 | QPopupMenu *mCalPopupMenu; | ||
282 | 284 | ||
283 | QMap<int, int> mPercentage; | 285 | QMap<int, int> mPercentage; |
284 | QMap<int, int> mPriority; | 286 | QMap<int, int> mPriority; |
285 | QMap<int, QString> mCategory; | 287 | QMap<int, QString> mCategory; |
286 | KOTodoViewItem *mActiveItem; | 288 | KOTodoViewItem *mActiveItem; |
287 | 289 | ||
288 | QMap<Todo *,KOTodoViewItem *> mTodoMap; | 290 | QMap<Todo *,KOTodoViewItem *> mTodoMap; |
289 | QString mName; | 291 | QString mName; |
290 | 292 | ||
291 | DocPrefs *mDocPrefs; | 293 | DocPrefs *mDocPrefs; |
292 | QString mCurrentDoc; | 294 | QString mCurrentDoc; |
293 | KOQuickTodo *mQuickAdd; | 295 | KOQuickTodo *mQuickAdd; |
294 | bool mBlockUpdate; | 296 | bool mBlockUpdate; |
295 | void keyPressEvent ( QKeyEvent * ) ; | 297 | void keyPressEvent ( QKeyEvent * ) ; |
296 | KOTodoViewItem * pendingSubtodo; | 298 | KOTodoViewItem * pendingSubtodo; |
297 | DateNavigator* mNavigator; | 299 | DateNavigator* mNavigator; |
298 | void storeCurrentItem(); | 300 | void storeCurrentItem(); |
299 | void resetCurrentItem(); | 301 | void resetCurrentItem(); |
300 | Incidence * mCurItem, *mCurItemRootParent, *mCurItemParent,*mCurItemAbove; | 302 | Incidence * mCurItem, *mCurItemRootParent, *mCurItemParent,*mCurItemAbove; |
301 | }; | 303 | }; |
302 | 304 | ||
303 | #endif | 305 | #endif |