author | zautrix <zautrix> | 2005-01-30 12:08:19 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-01-30 12:08:19 (UTC) |
commit | 1bcef8b3f53419e7155e0862ad61e3e419763d70 (patch) (side-by-side diff) | |
tree | 166b82db7bc30b7d55b042bd37bb92facea6cdf2 /korganizer/kotodoview.cpp | |
parent | 446ea98a9f6550c4a3e64bcfc6aab8e8b58776e8 (diff) | |
download | kdepimpi-1bcef8b3f53419e7155e0862ad61e3e419763d70.zip kdepimpi-1bcef8b3f53419e7155e0862ad61e3e419763d70.tar.gz kdepimpi-1bcef8b3f53419e7155e0862ad61e3e419763d70.tar.bz2 |
fixes
-rw-r--r-- | korganizer/kotodoview.cpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 14e8b5c..902f3f4 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -828,75 +828,84 @@ void KOTodoView::beamTodo() if (mActiveItem) { emit beamTodoSignal((Incidence*)mActiveItem->todo()); } } void KOTodoView::showTodo() { if (mActiveItem) { emit showTodoSignal(mActiveItem->todo()); } } void KOTodoView::deleteTodo() { if (mActiveItem) { emit deleteTodoSignal(mActiveItem->todo()); } } void KOTodoView::setNewPriority(int index) { if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { mActiveItem->todo()->setPriority(mPriority[index]); mActiveItem->construct(); todoModified (mActiveItem->todo(), KOGlobals::PRIORITY_MODIFIED); mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); } } void KOTodoView::setNewPercentage(int index) { - if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { - if (mPercentage[index] == 100) { - mActiveItem->todo()->setCompleted(QDateTime::currentDateTime()); - } else { - mActiveItem->todo()->setCompleted(false); + if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { + + if ( mPercentage[index] == 100 && !mActiveItem->isOn() ) { + mActiveItem->setOn( true ); + return; + } else if ( mPercentage[index] != 100 && mActiveItem->isOn() ) { + KOTodoViewItem* par = (static_cast<KOTodoViewItem*>(mActiveItem->parent())); + if ( par && par->isOn() ) + par->setOn( false ); + } + if (mPercentage[index] == 100) { + mActiveItem->todo()->setCompleted(QDateTime::currentDateTime()); + } else { + mActiveItem->todo()->setCompleted(false); + } + mActiveItem->todo()->setPercentComplete(mPercentage[index]); + mActiveItem->construct(); + todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED); + mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); } - mActiveItem->todo()->setPercentComplete(mPercentage[index]); - mActiveItem->construct(); - todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED); - mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); - } } QPopupMenu * KOTodoView::getCategoryPopupMenu (KOTodoViewItem *todoItem) { QPopupMenu* tempMenu = new QPopupMenu (this); QStringList checkedCategories = todoItem->todo()->categories (); tempMenu->setCheckable (true); for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); it != KOPrefs::instance()->mCustomCategories.end (); ++it) { int index = tempMenu->insertItem (*it); mCategory[index] = *it; if (checkedCategories.find (*it) != checkedCategories.end ()) tempMenu->setItemChecked (index, true); } connect (tempMenu, SIGNAL (activated (int)), SLOT (changedCategories (int))); return tempMenu; } void KOTodoView::changedCategories(int index) { if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { QStringList categories = mActiveItem->todo()->categories (); if (categories.find (mCategory[index]) != categories.end ()) categories.remove (mCategory[index]); else categories.insert (categories.end(), mCategory[index]); categories.sort (); mActiveItem->todo()->setCategories (categories); |