-rw-r--r-- | korganizer/kolistview.cpp | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index bbf83d9..fd86095 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp @@ -373,4 +373,2 @@ void KOListView::setAlarm() return; - - QStringList itemList; @@ -430,7 +428,5 @@ void KOListView::setAlarm() } - temp = item; - item = sel.next(); - mUidDict.remove( inc->uid() ); - delete temp;; - addIncidence( inc ); + ListItemVisitor v(item, mStartDate ); + inc->accept(v); + item = sel.next(); } @@ -445,2 +441,3 @@ void KOListView::setCategories( bool removeOld ) KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); + csd->setColorEnabled(); if (! csd->exec()) { @@ -453,3 +450,3 @@ void KOListView::setCategories( bool removeOld ) // return; - catList.sort(); + //catList.sort(); QString categoriesStr = catList.join(","); @@ -467,21 +464,25 @@ void KOListView::setCategories( bool removeOld ) item = sel.first(); - Incidence* inc; - while ( item ) { - inc = item->data(); - if ( removeOld ) { - inc->setCategories( categoriesStr ); - } else { - itemList = QStringList::split (",", inc->categoriesStr() ); - for( i = 0; i< catList.count(); ++i ) { - if ( !itemList.contains (catList[i])) - itemList.append( catList[i] ); - } - itemList.sort(); - inc->setCategories( itemList.join(",") ); + if( item ) { + Incidence* inc = item->data() ; + bool setSub = false; + if( inc->type() == "Todo" && sel.count() == 1 && inc->relations().count() > 0 ) { + int result = KMessageBox::warningYesNoCancel(this, + i18n("The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?").arg( inc->summary().left ( 25 ) ), + i18n("Todo has subtodos"), + i18n("Yes"), + i18n("No")); + if (result == KMessageBox::Cancel) item = 0; + if (result == KMessageBox::Yes) setSub = true; + } + while ( item ) { + inc = item->data(); + if ( removeOld ) { + inc->setCategories( catList, setSub ); + } else { + inc->addCategories( catList, setSub ); + } + ListItemVisitor v(item, mStartDate ); + inc->accept(v); + item = sel.next(); } - temp = item; - item = sel.next(); - mUidDict.remove( inc->uid() ); - delete temp;; - addIncidence( inc ); } |