// we need to get count of all events in order to emit 'progressStatus' signal
int totalEventsCount = scheduleElement.elementsByTagName("event").count();
+ // collect all event IDs so that we can identify previously existing events that were deleted
+ // when refreshing the conference
+ QSet<QString> importedEventIds;
+
// parsing day elements
int currentEvent = 0; // hold global idx of processed event
QDomNodeList dayList = scheduleElement.elementsByTagName("day");
// process event's nodes
QHash<QString,QString> event;
event["id"] = eventElement.attribute("id");
+ importedEventIds.insert(event["id"]);
event["conference_id"] = QString::number(conferenceId, 10);
QTime event_start = QTime::fromString(eventElement.firstChildElement("start").text(), sqlEngine->TIME_FORMAT);
event["start"] = event_start.toString(sqlEngine->TIME_FORMAT); // time eg. 10:00
} // parsing room elements
} // parsing day elements
+ // Delete events that exist from a previous import but have not been imported again
+ sqlEngine->deleteStaleEvents(conferenceId, importedEventIds);
+
// Re-write conference as utc_offset was not known previously
if (!conference.value("utc_offset").isEmpty()) {
sqlEngine->addConferenceToDB(conference, conferenceId, conferenceId != 0);