Fix in profile detection
[timedsilencer] / profileevent.h
index 643dbfb..cb536c7 100644 (file)
@@ -52,7 +52,7 @@ public:
       foreach(int i, days) hasher.addData(QByteArray::number(i));
       id = hasher.result();
     }
-    qDebug("getID(): %s", id.constData());
+    //qDebug("getID(): %s", id.constData());
     return id;
   }
 
@@ -82,10 +82,10 @@ public:
     bool in_silent_mode = false;
     QTime ctime = QTime::currentTime();
     if(from_time < to_time) {
-      in_silent_mode = (ctime > from_time && ctime < to_time);
+      in_silent_mode = (ctime >= from_time && ctime < to_time);
     } else {
       // to_time is the next day
-      in_silent_mode = (ctime > from_time || (ctime < from_time && ctime < to_time));
+      in_silent_mode = (ctime >= from_time || (ctime < from_time && ctime < to_time));
     }
     return in_silent_mode;
   }
@@ -130,7 +130,7 @@ public:
   static void clearCookies(QByteArray myid) {
     QSettings settings("TimedSilencer", "TimedSilencer");
     QHash<QString, QVariant> events = settings.value("events").toHash();
-    Q_ASSERT(events.contains(myid));
+    //Q_ASSERT(events.contains(myid));
     if(events.contains(myid)) {
       qDebug("Clearing event cookies in QSettings");
       ProfileEvent *pe = load(events.value(myid));
@@ -156,6 +156,20 @@ public:
     }
   }
 
+  static void setStatus(QByteArray myid, bool status) {
+    QSettings settings("TimedSilencer", "TimedSilencer");
+    QHash<QString, QVariant> events = settings.value("events").toHash();
+    Q_ASSERT(events.contains(myid));
+    if(events.contains(myid)) {
+      qDebug("Setting event status in QSettings");
+      ProfileEvent *pe = load(events.value(myid));
+      pe->activated = status;
+      events[myid] = pe->save();
+      settings.setValue("events", events);
+      delete pe;
+    }
+  }
+
 };
 
 #endif // PROFILEEVENT_H