Remove Orphan events to be safe
[timedsilencer] / alarmd_backend.h
index 4060bcd..4d9f272 100644 (file)
@@ -92,11 +92,28 @@ public:
       }
       delete pe;
     }
+    // Delete possible orphan events
+    cookie_t *orphan_cookies = alarmd_event_query(0,0,0,0, "TimedSilencer");
+    int i = 0;
+    while(orphan_cookies && orphan_cookies[i] != 0) {
+      alarmd_event_del(orphan_cookies[i]);
+      ++i;
+    }
     // Save in QSettings
     events.clear();
     settings.setValue("events", events);
   }
 
+  static void deleteOrphanEvents(QList<long> known_cookies) {
+    cookie_t *orphan_cookies = alarmd_event_query(0,0,0,0, "TimedSilencer");
+    int i = 0;
+    while(orphan_cookies && orphan_cookies[i] != 0) {
+      if(!known_cookies.contains(orphan_cookies[i]))
+        alarmd_event_del(orphan_cookies[i]);
+      ++i;
+    }
+  }
+
   static void deleteEvents(QByteArray event_id) {
     deleteEvents(ProfileEvent::findByID(event_id));
   }