summaryrefslogtreecommitdiffabout
path: root/korganizer/calendarview.cpp
Unidiff
Diffstat (limited to 'korganizer/calendarview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/calendarview.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 98e0ac1..bc1c0c7 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -2810,46 +2810,50 @@ void CalendarView::slotSelectPickerDate( QDate d)
2810 QDateTime dt ( d,tim ); 2810 QDateTime dt ( d,tim );
2811 to->setDtDue( dt ); 2811 to->setDtDue( dt );
2812 2812
2813 if ( to->hasStartDate() ) { 2813 if ( to->hasStartDate() ) {
2814 if ( len>0 ) 2814 if ( len>0 )
2815 to->setDtStart(to->dtDue().addSecs( -len )); 2815 to->setDtStart(to->dtDue().addSecs( -len ));
2816 else 2816 else
2817 if (to->dtStart() > to->dtDue() ) 2817 if (to->dtStart() > to->dtDue() )
2818 to->setDtStart(to->dtDue().addDays( -3 )); 2818 to->setDtStart(to->dtDue().addDays( -3 ));
2819 } 2819 }
2820 2820
2821 todoChanged( to ); 2821 todoChanged( to );
2822 } else { 2822 } else if ( mMoveIncidence->typeID() == eventID ) {
2823 if ( mMoveIncidence->doesRecur() ) { 2823 if ( mMoveIncidence->doesRecur() ) {
2824#if 0 2824#if 0
2825 // PENDING implement this 2825 // PENDING implement this
2826 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate ); 2826 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate );
2827 mCalendar()->addIncidence( newInc ); 2827 mCalendar()->addIncidence( newInc );
2828 if ( mMoveIncidence->typeID() == todoID ) 2828 if ( mMoveIncidence->typeID() == todoID )
2829 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED ); 2829 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED );
2830 else 2830 else
2831 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED); 2831 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED);
2832 mMoveIncidence = newInc; 2832 mMoveIncidence = newInc;
2833 2833
2834#endif 2834#endif
2835 } 2835 }
2836 QTime tim = mMoveIncidence->dtStart().time(); 2836 QTime tim = mMoveIncidence->dtStart().time();
2837 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 2837 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
2838 QDateTime dt ( d,tim ); 2838 QDateTime dt ( d,tim );
2839 mMoveIncidence->setDtStart( dt ); 2839 mMoveIncidence->setDtStart( dt );
2840 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 2840 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
2841 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 2841 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
2842 } else if ( mMoveIncidence->typeID() == journalID ) {
2843 QTime tim = mMoveIncidence->dtStart().time();
2844 QDateTime dt ( d,tim );
2845 mMoveIncidence->setDtStart( dt );
2846 updateView();
2842 } 2847 }
2843
2844 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); 2848 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 );
2845 } 2849 }
2846} 2850}
2847 2851
2848void CalendarView::removeCategories() 2852void CalendarView::removeCategories()
2849{ 2853{
2850 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2854 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2851 QStringList catList = KOPrefs::instance()->mCustomCategories; 2855 QStringList catList = KOPrefs::instance()->mCustomCategories;
2852 QStringList catIncList; 2856 QStringList catIncList;
2853 QStringList newCatList; 2857 QStringList newCatList;
2854 Incidence* inc = incList.first(); 2858 Incidence* inc = incList.first();
2855 uint i; 2859 uint i;
@@ -3176,34 +3180,37 @@ void CalendarView::cloneIncidence(Incidence * orgInc )
3176 orgInc->cloneRelations( t ); 3180 orgInc->cloneRelations( t );
3177 mCalendar->addIncidenceBranch( t ); 3181 mCalendar->addIncidenceBranch( t );
3178 updateView(); 3182 updateView();
3179 3183
3180 } else { 3184 } else {
3181 mCalendar->addTodo( t ); 3185 mCalendar->addTodo( t );
3182 updateView(); 3186 updateView();
3183 } 3187 }
3184 } else { 3188 } else {
3185 delete t; 3189 delete t;
3186 } 3190 }
3187 } 3191 }
3188 else { 3192 else if ( newInc->typeID() == eventID ) {
3189 Event* e = (Event*) newInc; 3193 Event* e = (Event*) newInc;
3190 showEventEditor(); 3194 showEventEditor();
3191 mEventEditor->editEvent( e ); 3195 mEventEditor->editEvent( e );
3192 if ( mEventEditor->exec() ) { 3196 if ( mEventEditor->exec() ) {
3193 mCalendar->addEvent( e ); 3197 mCalendar->addEvent( e );
3194 updateView(); 3198 updateView();
3195 } else { 3199 } else {
3196 delete e; 3200 delete e;
3197 } 3201 }
3202 } if ( newInc->typeID() == journalID ) {
3203 mCalendar->addJournal( (Journal*) newInc );
3204 editJournal( (Journal*) newInc );
3198 } 3205 }
3199 setActiveWindow(); 3206 setActiveWindow();
3200} 3207}
3201 3208
3202void CalendarView::newEvent() 3209void CalendarView::newEvent()
3203{ 3210{
3204 // TODO: Replace this code by a common eventDurationHint of KOBaseView. 3211 // TODO: Replace this code by a common eventDurationHint of KOBaseView.
3205 KOAgendaView *aView = mViewManager->agendaView(); 3212 KOAgendaView *aView = mViewManager->agendaView();
3206 if (aView) { 3213 if (aView) {
3207 if (aView->selectionStart().isValid()) { 3214 if (aView->selectionStart().isValid()) {
3208 if (aView->selectedIsAllDay()) { 3215 if (aView->selectedIsAllDay()) {
3209 newEvent(aView->selectionStart(),aView->selectionEnd(),true); 3216 newEvent(aView->selectionStart(),aView->selectionEnd(),true);
@@ -3489,25 +3496,25 @@ void CalendarView::todo_unsub(Todo *anTodo )
3489void CalendarView::deleteTodo(Todo *todo) 3496void CalendarView::deleteTodo(Todo *todo)
3490{ 3497{
3491 if (!todo) { 3498 if (!todo) {
3492 KNotifyClient::beep(); 3499 KNotifyClient::beep();
3493 return; 3500 return;
3494 } 3501 }
3495 if (KOPrefs::instance()->mConfirm) { 3502 if (KOPrefs::instance()->mConfirm) {
3496 QString text = todo->summary().left(20); 3503 QString text = todo->summary().left(20);
3497 if (!todo->relations().isEmpty()) { 3504 if (!todo->relations().isEmpty()) {
3498 text += i18n("\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!"); 3505 text += i18n("\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!");
3499 3506
3500 } 3507 }
3501 switch (msgItemDelete(text)) { 3508 switch (msgItemDelete(i18n("Todo:") +"\n"+text)) {
3502 case KMessageBox::Continue: // OK 3509 case KMessageBox::Continue: // OK
3503 bool deleteT = false; 3510 bool deleteT = false;
3504 if (!todo->relations().isEmpty()) { 3511 if (!todo->relations().isEmpty()) {
3505 deleteT = removeCompletedSubTodos( todo ); 3512 deleteT = removeCompletedSubTodos( todo );
3506 } 3513 }
3507 // deleteT == true: todo already deleted in removeCompletedSubTodos 3514 // deleteT == true: todo already deleted in removeCompletedSubTodos
3508 if ( !deleteT ) { 3515 if ( !deleteT ) {
3509 checkExternalId( todo ); 3516 checkExternalId( todo );
3510 calendar()->deleteTodo(todo); 3517 calendar()->deleteTodo(todo);
3511 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 3518 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
3512 updateView(); 3519 updateView();
3513 } 3520 }
@@ -3520,25 +3527,35 @@ void CalendarView::deleteTodo(Todo *todo)
3520 updateView(); 3527 updateView();
3521 } 3528 }
3522 3529
3523 emit updateSearchDialog(); 3530 emit updateSearchDialog();
3524} 3531}
3525void CalendarView::deleteJournal(Journal *jour) 3532void CalendarView::deleteJournal(Journal *jour)
3526{ 3533{
3527 if (!jour) { 3534 if (!jour) {
3528 KNotifyClient::beep(); 3535 KNotifyClient::beep();
3529 return; 3536 return;
3530 } 3537 }
3531 if (KOPrefs::instance()->mConfirm) { 3538 if (KOPrefs::instance()->mConfirm) {
3532 switch (msgItemDelete( jour->description().left(20))) { 3539
3540 QString des;
3541 if ( !jour->summary().isEmpty() ) {
3542 des = jour->summary();
3543 } else {
3544 des = jour->description().left(30);
3545 des = des.simplifyWhiteSpace ();
3546 des.replace (QRegExp ("\\n"),"" );
3547 des.replace (QRegExp ("\\r"),"" );
3548 }
3549 switch (msgItemDelete( i18n("Journal:") +"\n"+des.left(20))) {
3533 case KMessageBox::Continue: // OK 3550 case KMessageBox::Continue: // OK
3534 calendar()->deleteJournal(jour); 3551 calendar()->deleteJournal(jour);
3535 updateView(); 3552 updateView();
3536 break; 3553 break;
3537 } // switch 3554 } // switch
3538 } else { 3555 } else {
3539 calendar()->deleteJournal(jour);; 3556 calendar()->deleteJournal(jour);;
3540 updateView(); 3557 updateView();
3541 } 3558 }
3542 emit updateSearchDialog(); 3559 emit updateSearchDialog();
3543} 3560}
3544 3561