void KOTodoView::setNewDate( QDate date ) { if ( !mActiveItem || !mChanger ) return; Todo *todo = mActiveItem->todo(); if ( !todo ) return; if ( !todo->isReadOnly() && mChanger->beginChange( todo ) ) { Todo *oldTodo = todo->clone(); QDateTime dt; dt.setDate( date ); if ( !todo->doesFloat() ) dt.setTime( todo->dtDue().time() ); if ( date.isNull() ) todo->setHasDueDate( false ); else if ( !todo->hasDueDate() ) todo->setHasDueDate( true ); todo->setDtDue( dt ); mActiveItem->construct(); mChanger->changeIncidence( oldTodo, todo, KOGlobals::COMPLETION_MODIFIED ); mChanger->endChange( todo ); delete oldTodo; } else { kdDebug(5850) << "No active item, active item is read-only, or locking failed" << endl; } }
void KOTodoView::copyTodoToDate( QDate date ) { QDateTime dt( date ); if ( mActiveItem && mChanger ) { Todo *newTodo = mActiveItem->todo()->clone(); newTodo->recreate(); newTodo->setHasDueDate( !date.isNull() ); newTodo->setDtDue( dt ); newTodo->setPercentComplete( 0 ); // avoid forking if ( newTodo->doesRecur() ) newTodo->recurrence()->unsetRecurs(); mChanger->addIncidence( newTodo, this ); } }