-rw-r--r-- | korganizer/koagendaview.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index 4ff6899..db66413 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp | |||
@@ -992,34 +992,28 @@ void KOAgendaView::updateEventDates(KOAgendaItem *item, int type) | |||
992 | else | 992 | else |
993 | endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time()); | 993 | endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time()); |
994 | endDt.setDate(startDate); | 994 | endDt.setDate(startDate); |
995 | } | 995 | } |
996 | } | 996 | } |
997 | } | 997 | } |
998 | if ( item->incidence()->type() == "Event" ) { | 998 | if ( item->incidence()->type() == "Event" ) { |
999 | item->incidence()->setDtStart(startDt); | 999 | item->incidence()->setDtStart(startDt); |
1000 | (static_cast<Event*>(item->incidence()))->setDtEnd(endDt); | 1000 | (static_cast<Event*>(item->incidence()))->setDtEnd(endDt); |
1001 | } else if ( item->incidence()->type() == "Todo" ) { | 1001 | } else if ( item->incidence()->type() == "Todo" ) { |
1002 | Todo* to = static_cast<Todo*>(item->incidence()); | 1002 | Todo* to = static_cast<Todo*>(item->incidence()); |
1003 | 1003 | ||
1004 | int len = 0; | ||
1005 | if ( to->hasStartDate() && to->hasDueDate() ) | ||
1006 | len = to->dtStart().secsTo( to->dtDue()); | ||
1007 | to->setDtDue(endDt); | 1004 | to->setDtDue(endDt); |
1008 | if ( to->hasStartDate() ) { | 1005 | if ( to->hasStartDate() ) { |
1009 | if ( len>0 ) | 1006 | if (to->dtStart() >= to->dtDue() ) |
1010 | to->setDtStart(to->dtDue().addSecs( -len )); | 1007 | to->setDtStart(to->dtDue().addDays( -2 )); |
1011 | else | ||
1012 | if (to->dtStart() > to->dtDue() ) | ||
1013 | to->setDtStart(to->dtDue().addDays( -3 )); | ||
1014 | } | 1008 | } |
1015 | 1009 | ||
1016 | } | 1010 | } |
1017 | //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() ); | 1011 | //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() ); |
1018 | item->incidence()->setRevision(item->incidence()->revision()+1); | 1012 | item->incidence()->setRevision(item->incidence()->revision()+1); |
1019 | item->setItemDate(startDt.date()); | 1013 | item->setItemDate(startDt.date()); |
1020 | //item->updateItem(); | 1014 | //item->updateItem(); |
1021 | if ( item->incidence()->type() == "Todo" ) { | 1015 | if ( item->incidence()->type() == "Todo" ) { |
1022 | emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED ); | 1016 | emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED ); |
1023 | 1017 | ||
1024 | } | 1018 | } |
1025 | else | 1019 | else |