+ // determine if an alarm is set on an event that's starting soon
+ QList<Event> events = Event::getImminentAlarmEvents(AppSettings::preEventAlarmSec(), Conference::activeConference());
+ if (events.empty()) return;
+
+ // build a message string
+ Event event;
+ QString title;
+ QString message;
+ if (events.size() == 1) {
+ event = events.first();
+ title = tr("Next event at %1").arg(event.start().toString());
+ message = tr("Title: %1\nRoom: %2").arg(event.title()).arg(event.room()->name());
+ } else {
+ title = tr("%1 upcoming events").arg(events.size());
+ QStringList messages;
+ foreach (event, events) {
+ messages += tr("Start: %1; Title: %2; Room: %3").arg(event.start().toString()).arg(event.title()).arg(event.room()->name());
+ }
+ message = messages.join("\n");
+ }
+
+ // and delete the corresponding alarm
+ foreach (event, events) {
+ event.setHasAlarm(false);
+ event.update("alarm");
+ onEventChanged(event.id(), false);
+ }
+
+ // show message