author | zautrix <zautrix> | 2005-07-01 20:58:33 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-07-01 20:58:33 (UTC) |
commit | 5c03b6da2ff31c72d8c8b37d3e94f666a22081d0 (patch) (side-by-side diff) | |
tree | fb0197957a16aed93322ba61f7c6db2edd453011 /korganizer | |
parent | 541878bcf52030d8597d5e79afb6ae1185b2ac2c (diff) | |
download | kdepimpi-5c03b6da2ff31c72d8c8b37d3e94f666a22081d0.zip kdepimpi-5c03b6da2ff31c72d8c8b37d3e94f666a22081d0.tar.gz kdepimpi-5c03b6da2ff31c72d8c8b37d3e94f666a22081d0.tar.bz2 |
more fixes
-rw-r--r-- | korganizer/kolistview.cpp | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index 4c815d8..1b4397f 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp @@ -466,37 +466,20 @@ void KOListView::setCat() setCategories( set ); } void KOListView::setAlarm() { KOAlarmPrefs kap( this); if ( !kap.exec() ) return; - QPtrList<KOListViewItem> sel ; - QListViewItem *qitem = mListView->firstChild (); - while ( qitem ) { - if ( qitem->isSelected() ) { - Incidence* inc = ((KOListViewItem *) qitem)->data(); - if ( inc->typeID() != journalID ) { - if ( inc->typeID() == todoID ) { - if ( ((Todo*)inc)->hasDueDate() ) - sel.append(((KOListViewItem *)qitem)); - } else - sel.append(((KOListViewItem *)qitem)); - } - } - qitem = qitem->nextSibling(); - } + QPtrList<Incidence> delSel = getSelectedIncidences( true, true, false, true ); // no journals, only due todos + Incidence* inc = delSel.first(); int count = 0; - KOListViewItem * item, *temp; - item = sel.first(); - Incidence* inc; - while ( item ) { - inc = item->data(); + while ( inc ) { ++count; if (kap.mAlarmButton->isChecked()) { if (inc->alarms().count() == 0) inc->newAlarm(); QPtrList<Alarm> alarms = inc->alarms(); Alarm *alarm; for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { alarm->setEnabled(true); @@ -520,19 +503,22 @@ void KOListView::setAlarm() } } else { Alarm* alarm = inc->alarms().first(); if ( alarm ) { alarm->setEnabled(false); alarm->setType(Alarm::Invalid); } } + KOListViewItem* item = getItemForEvent(inc); + if (item) { ListItemVisitor v(item, mStartDate ); inc->accept(v); - item = sel.next(); + } + inc = delSel.next(); } topLevelWidget()->setCaption( i18n("Changed alarm for %1 items").arg( count ) ); qDebug("KO: Set alarm for %d items", count); calendar()->reInitAlarmSettings(); QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); } void KOListView::setCategories( bool removeOld ) { @@ -694,17 +680,29 @@ QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents, bool delSel.clear(); return delSel; } if (result == KMessageBox::Yes) addSubTodos = true; askSubTodos = false; } if ( addSubTodos ) { - inc->addRelationsToList( &delSel ); + QPtrList<Incidence> tempSel ; + inc->addRelationsToList( &tempSel ); + Incidence* tempinc = tempSel.first(); + while ( tempinc ) { + if ( delSel.findRef( tempinc ) == -1 ) { + if ( tempinc->typeID() == todoID && onlyDueTodos ) { + if ( ((Todo*)tempinc)->hasDueDate() ) + delSel.append( tempinc ); + } else + delSel.append( tempinc ); + } + tempinc = tempSel.next(); + } } } } } item = item->nextSibling(); } return delSel; } |