summaryrefslogtreecommitdiffabout
path: root/korganizer/kolistview.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/kolistview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/kolistview.cpp42
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
@@ -468,33 +468,16 @@ void KOListView::setCat()
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;
@@ -522,15 +505,18 @@ void KOListView::setAlarm()
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() ) );
}
@@ -696,13 +682,25 @@ QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents, bool
}
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();
}