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 | |
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 @@ -462,45 +462,28 @@ void KOListView::setCat() i18n("Add"), i18n("Reset")); if (result == KMessageBox::Cancel) return; if (result == KMessageBox::Yes) set = false; 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); int j = kap.mAlarmTimeEdit->value()* -60; if (kap.mAlarmIncrCombo->currentItem() == 1) j = j * 60; else if (kap.mAlarmIncrCombo->currentItem() == 2) @@ -516,27 +499,30 @@ void KOListView::setAlarm() alarm->setType(Alarm::Invalid); //alarm->setAudioAlarm("default"); // TODO: Deal with multiple alarms break; // For now, stop after the first alarm } } 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 ) { KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); csd->setColorEnabled(); if (! csd->exec()) { @@ -690,25 +676,37 @@ QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents, bool i18n("Todo has subtodos"), i18n("Yes"), i18n("No")); if ( result == KMessageBox::Cancel ) { 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; } void KOListView::writeToFile( bool iCal ) { QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed; |