From 409e329447a7d00a93a56855fcddadbb0f793163 Mon Sep 17 00:00:00 2001 From: zautrix Date: Mon, 18 Apr 2005 10:41:31 +0000 Subject: morefixes --- (limited to 'korganizer/kotodoeditor.cpp') diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp index 6a05cc8..5513e8b 100644 --- a/korganizer/kotodoeditor.cpp +++ b/korganizer/kotodoeditor.cpp @@ -110,11 +110,11 @@ void KOTodoEditor::setupGeneral() QBoxLayout *topLayout = new QVBoxLayout(topFrame); if ( QApplication::desktop()->width() < 480 ) { - topLayout->setMargin(1); - topLayout->setSpacing(1); + topLayout->setMargin(marginHintSmall()); + topLayout->setSpacing(spacingHintSmall()); } else { - topLayout->setMargin(marginHint()-1); - topLayout->setSpacing(spacingHint()-1); + topLayout->setMargin(marginHint()); + topLayout->setSpacing(spacingHint()); } mGeneral->initHeader(topFrame,topLayout); mGeneral->initTime(topFrame,topLayout); @@ -344,25 +344,32 @@ void KOTodoEditor::readTodo(Todo *todo) void KOTodoEditor::writeTodo(Todo *event) { - mGeneral->writeTodo(event); - mDetails->writeEvent(event); - - // set related event, i.e. parent to-do in this case. - if (mRelatedTodo) { - event->setRelatedTo(mRelatedTodo); - } - if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) { - mRecurrence->writeEvent(event); - if ( event->doesRecur() ) { - event->setRecurrenceID( event->dtStart().addSecs(-1) ); - event->setRecurDates(); - } else { - event->setHasRecurrenceID( false ); - } - } else { - event->setHasRecurrenceID( false ); - event->recurrence()->unsetRecurs(); - } + bool maybeComputeRecurrenceTime = false; + if( event->hasRecurrenceID() && event->percentComplete() < 100) + maybeComputeRecurrenceTime = true; + event->setHasRecurrenceID( false ); + mGeneral->writeTodo(event); + mDetails->writeEvent(event); + + // set related event, i.e. parent to-do in this case. + if (mRelatedTodo) { + event->setRelatedTo(mRelatedTodo); + } + if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) { + mRecurrence->writeEvent(event); + if ( event->doesRecur() ) { + int addSec = -1 ; + if ( maybeComputeRecurrenceTime && event->percentComplete() == 100 ) + addSec = 1; + event->setRecurrenceID( event->dtStart().addSecs( addSec ) ); + event->setRecurDates(); + } else { + event->setHasRecurrenceID( false ); + } + } else { + event->setHasRecurrenceID( false ); + event->recurrence()->unsetRecurs(); + } } bool KOTodoEditor::validateInput() -- cgit v0.9.0.2