From 5c03b6da2ff31c72d8c8b37d3e94f666a22081d0 Mon Sep 17 00:00:00 2001 From: zautrix Date: Fri, 01 Jul 2005 20:58:33 +0000 Subject: more fixes --- (limited to 'korganizer/kolistview.cpp') diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index 4c815d8..1b4397f 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp @@ -471,63 +471,49 @@ void KOListView::setAlarm() KOAlarmPrefs kap( this); if ( !kap.exec() ) return; - QPtrList 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 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(); - ++count; - if (kap.mAlarmButton->isChecked()) { - if (inc->alarms().count() == 0) - inc->newAlarm(); - QPtrList 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) - j = j * (60 * 24); - alarm->setStartOffset( j ); - - if (!kap.mAlarmProgram.isEmpty() && kap.mAlarmProgramButton->isOn()) { - alarm->setProcedureAlarm(kap.mAlarmProgram); - } - else if (!kap.mAlarmSound.isEmpty() && kap.mAlarmSoundButton->isOn()) - alarm->setAudioAlarm(kap.mAlarmSound); - else - alarm->setType(Alarm::Invalid); - //alarm->setAudioAlarm("default"); - // TODO: Deal with multiple alarms - break; // For now, stop after the first alarm + while ( inc ) { + ++count; + if (kap.mAlarmButton->isChecked()) { + if (inc->alarms().count() == 0) + inc->newAlarm(); + QPtrList 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) + j = j * (60 * 24); + alarm->setStartOffset( j ); + + if (!kap.mAlarmProgram.isEmpty() && kap.mAlarmProgramButton->isOn()) { + alarm->setProcedureAlarm(kap.mAlarmProgram); } - } else { - Alarm* alarm = inc->alarms().first(); - if ( alarm ) { - alarm->setEnabled(false); + else if (!kap.mAlarmSound.isEmpty() && kap.mAlarmSoundButton->isOn()) + alarm->setAudioAlarm(kap.mAlarmSound); + else 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); @@ -699,7 +685,19 @@ QPtrList KOListView::getSelectedIncidences( bool includeEvents, bool askSubTodos = false; } if ( addSubTodos ) { - inc->addRelationsToList( &delSel ); + QPtrList 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(); + } } } } -- cgit v0.9.0.2