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::setNewPriority(int index) { if ( !mActiveItem || !mChanger ) return; Todo *todo = mActiveItem->todo(); if ( !todo->isReadOnly () && mChanger->beginChange( todo ) ) { Todo *oldTodo = todo->clone(); todo->setPriority(mPriority[index]); mActiveItem->construct(); mChanger->changeIncidence( oldTodo, todo, KOGlobals::PRIORITY_MODIFIED ); mChanger->endChange( todo ); delete oldTodo; } }
void KOTodoView::setNewPercentage( KOTodoViewItem *item, int percentage ) { kdDebug(5850) << "KOTodoView::setNewPercentage( " << percentage << "), item = " << item << endl; if ( !item || !mChanger ) return; Todo *todo = item->todo(); if ( !todo ) return; if ( !todo->isReadOnly () && mChanger->beginChange( todo ) ) { Todo *oldTodo = todo->clone(); /* Old code to make sub-items's percentage related to this one's: QListViewItem *myChild = firstChild(); KOTodoViewItem *item; while( myChild ) { item = static_cast<KOTodoViewItem*>(myChild); item->stateChange(state); myChild = myChild->nextSibling(); }*/ if ( percentage == 100 ) { todo->setCompleted( QDateTime::currentDateTime() ); // If the todo does recur, it doesn't get set as completed. However, the // item is still checked. Uncheck it again. if ( !todo->isCompleted() ) item->setState( QCheckListItem::Off ); else todo->setPercentComplete( percentage ); } else { todo->setCompleted( false ); todo->setPercentComplete( percentage ); } item->construct(); if ( todo->doesRecur() && percentage == 100 ) mChanger->changeIncidence( oldTodo, todo, KOGlobals::COMPLETION_MODIFIED_WITH_RECURRENCE ); else mChanger->changeIncidence( oldTodo, todo, KOGlobals::COMPLETION_MODIFIED ); mChanger->endChange( todo ); delete oldTodo; } else { item->construct(); kdDebug(5850) << "No active item, active item is read-only, or locking failed" << endl; } }
void KOTodoView::changedCategories(int index) { if ( !mActiveItem || !mChanger ) return; Todo *todo = mActiveItem->todo(); if ( !todo ) return; if ( !todo->isReadOnly() && mChanger->beginChange( todo ) ) { Todo *oldTodo = todo->clone(); QStringList categories = todo->categories (); if ( categories.find( mCategory[index] ) != categories.end() ) categories.remove( mCategory[index] ); else categories.insert( categories.end(), mCategory[index] ); categories.sort(); todo->setCategories( categories ); mActiveItem->construct(); mChanger->changeIncidence( oldTodo, todo, KOGlobals::CATEGORY_MODIFIED ); mChanger->endChange( todo ); delete oldTodo; } else { kdDebug(5850) << "No active item, active item is read-only, or locking failed" << endl; } }