[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdepim/kalarm
From: David Jarvie <software () astrojar ! org ! uk>
Date: 2006-11-30 20:04:23
Message-ID: 1164917063.922916.20881.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 609441 by djarvie:
Bug 138124: fix crash when an alarm triggers while the user is answering the \
confirmation prompt while deleting it. Clearer error message when alarm deletion \
fails.
M +12 -9 mainwindow.cpp
--- branches/KDE/3.5/kdepim/kalarm/mainwindow.cpp #609440:609441
@@ -686,6 +686,14 @@
void MainWindow::slotDelete()
{
QValueList<EventListViewItemBase*> items = mListView->selectedItems();
+ // Copy the events to be deleted, in case any are deleted by being
+ // triggered while the confirmation prompt is displayed.
+ QValueList<KAEvent> events;
+ for (QValueList<EventListViewItemBase*>::Iterator iit = items.begin(); iit != \
items.end(); ++iit) + {
+ AlarmListViewItem* item = (AlarmListViewItem*)(*iit);
+ events.append(item->event());
+ }
if (Preferences::confirmAlarmDeletion())
{
int n = items.count();
@@ -700,17 +708,12 @@
int warnErr = 0;
int warnKOrg = 0;
- QValueList<KAEvent> events;
AlarmCalendar::activeCalendar()->startUpdate(); // prevent multiple saves of the \
calendars until we're finished AlarmCalendar::expiredCalendar()->startUpdate();
- for (QValueList<EventListViewItemBase*>::Iterator it = items.begin(); it != \
items.end(); ++it) + for (QValueList<KAEvent>::Iterator it = events.begin(); it != \
events.end(); ++it) {
- AlarmListViewItem* item = (AlarmListViewItem*)(*it);
- KAEvent event = item->event();
-
// Delete the event from the calendar and displays
- events.append(event);
- switch (KAlarm::deleteEvent(event))
+ switch (KAlarm::deleteEvent(*it))
{
case KAlarm::UPDATE_ERROR:
case KAlarm::UPDATE_FAILED:
@@ -725,12 +728,12 @@
}
}
if (!AlarmCalendar::activeCalendar()->endUpdate()) // save the calendars now
- warnErr = items.count();
+ warnErr = events.count();
AlarmCalendar::expiredCalendar()->endUpdate();
Undo::saveDeletes(events);
if (warnErr)
- KAlarm::displayUpdateError(this, KAlarm::UPDATE_FAILED, KAlarm::ERR_ADD, warnErr);
+ KAlarm::displayUpdateError(this, KAlarm::UPDATE_FAILED, KAlarm::ERR_DELETE, \
warnErr); else if (warnKOrg)
KAlarm::displayKOrgUpdateError(this, KAlarm::KORG_ERR_DELETE, warnKOrg);
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic