Fixed bug when deallocating EContact from GList.
[qwerkisync] / DBBackends / RtcomEventLoggerComponents / TriggerDisabler.h
diff --git a/DBBackends/RtcomEventLoggerComponents/TriggerDisabler.h b/DBBackends/RtcomEventLoggerComponents/TriggerDisabler.h
new file mode 100644 (file)
index 0000000..fe26af9
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2011, Jamie Thompson
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef DBBACKENDS_RTCOMEVENTLOGGERCOMPONENTS_TRIGGERDISABLER_H
+#define DBBACKENDS_RTCOMEVENTLOGGERCOMPONENTS_TRIGGERDISABLER_H
+
+class Settings;
+
+#include <QHash>
+class QSqlDatabase;
+#include <QString>
+
+namespace DBBackends
+{
+       namespace RtcomEventLoggerComponents
+       {
+               class TriggerDisabler
+               {
+               public:
+                       TriggerDisabler(const Settings &settings);
+                       ~TriggerDisabler();
+
+                       void Reenable();
+
+               protected:
+                       const Settings &CurrentSettings() const { return m_Settings; }
+
+                       const QHash<QString, QString> &Triggers() const { return m_Triggers; }
+
+                       const bool Reenabled() const { return m_Reenabled; }
+
+                       void RestoreTriggers(QSqlDatabase &db);
+                       void UpdateGroupCache(QSqlDatabase &db);
+
+               private:
+                       const Settings &m_Settings;
+
+                       QHash<QString, QString> &Triggers() { return m_Triggers; }
+                       QHash<QString, QString> m_Triggers;
+
+                       void Reenabled(bool reenabled) { m_Reenabled = reenabled; }
+                       bool m_Reenabled;
+               };
+       }
+}
+
+#endif // DBBACKENDS_RTCOMEVENTLOGGERCOMPONENTS_TRIGGERDISABLER_H