[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [messagelib] webengineviewer/src/checkphishingurl: implement timer
From:       Montel Laurent <montel () kde ! org>
Date:       2016-12-09 6:11:20
Message-ID: E1cFEOu-0003Qf-O9 () code ! kde ! org
[Download RAW message or body]

Git commit 3879e94fb3bb8023c845720263189866cf7a4e0d by Montel Laurent.
Committed on 09/12/2016 at 06:11.
Pushed by mlaurent into branch 'master'.

implement timer

M  +55   -4    webengineviewer/src/checkphishingurl/backoffmodemanager.cpp
M  +3    -0    webengineviewer/src/checkphishingurl/backoffmodemanager.h

https://commits.kde.org/messagelib/3879e94fb3bb8023c845720263189866cf7a4e0d

diff --git a/webengineviewer/src/checkphishingurl/backoffmodemanager.cpp \
b/webengineviewer/src/checkphishingurl/backoffmodemanager.cpp index \
                af522bab..21da9002 100644
--- a/webengineviewer/src/checkphishingurl/backoffmodemanager.cpp
+++ b/webengineviewer/src/checkphishingurl/backoffmodemanager.cpp
@@ -24,6 +24,8 @@
 #include <KConfigGroup>
 #include <KConfig>
 
+#include <QTimer>
+
 using namespace WebEngineViewer;
 
 Q_GLOBAL_STATIC(BackOffModeManager, s_backOffModeManager)
@@ -36,6 +38,9 @@ public:
           isInOffMode(false),
           q(qq)
     {
+        mTimer = new QTimer(q);
+        mTimer->setSingleShot(true);
+        q->connect(mTimer, &QTimer::timeout, q, \
&BackOffModeManager::slotTimerFinished);  load();
     }
     void save();
@@ -43,19 +48,62 @@ public:
     int calculateBackModeTime() const;
     void startOffMode();
     void exitBackOffMode();
+    void updateTimer(int minutes);
+    void slotTimerFinished();
+
     int mNumberOfHttpFailed;
     bool isInOffMode;
+    QTimer *mTimer;
     BackOffModeManager *q;
 };
 
 void BackOffModeManagerPrivate::save()
 {
-    //TODO
+    KConfig phishingurlKConfig(WebEngineViewer::CheckPhishingUrlUtil::configFileName());
 +    KConfigGroup grp = phishingurlKConfig.group(QStringLiteral("BackOffMode"));
+    grp.writeEntry("Enabled", isInOffMode);
+    if (isInOffMode) {
+        int calculateTimeInMinutes = calculateBackModeTime();
+        uint delay = QDateTime::currentDateTime().addMSecs(calculateTimeInMinutes * \
60).toTime_t(); +        grp.writeEntry("Delay", delay);
+        updateTimer(calculateTimeInMinutes);
+    } else {
+        grp.deleteEntry("Delay");
+    }
+    grp.sync();
+}
+
+void BackOffModeManagerPrivate::slotTimerFinished()
+{
+    qCDebug(WEBENGINEVIEWER_LOG) << "Existing from BlackOffMode";
+    isInOffMode = false;
+    save();
+}
+
+void BackOffModeManagerPrivate::updateTimer(int minutes)
+{
+    if (mTimer->isActive()) {
+        mTimer->stop();
+    }
+    mTimer->setInterval(minutes * 60 * 1000);
+    mTimer->start();
 }
 
 void BackOffModeManagerPrivate::load()
 {
-    //TODO
+    KConfig phishingurlKConfig(WebEngineViewer::CheckPhishingUrlUtil::configFileName());
 +    KConfigGroup grp = phishingurlKConfig.group(QStringLiteral("BackOffMode"));
+    isInOffMode = grp.readEntry("Enabled", false);
+    if (isInOffMode) {
+        uint delay = grp.readEntry("Delay", 0);
+        uint now = QDateTime::currentDateTime().toTime_t();
+        if (delay > now) {
+            updateTimer(1);
+        } else {
+            //Disable mode.
+            isInOffMode = false;
+        }
+    }
 }
 
 int BackOffModeManagerPrivate::calculateBackModeTime() const
@@ -70,8 +118,6 @@ void BackOffModeManagerPrivate::startOffMode()
         isInOffMode = true;
     }
     mNumberOfHttpFailed++;
-    //TODO Start/restart timer.
-    //TODO add timer here.
     save();
 }
 
@@ -111,3 +157,8 @@ int BackOffModeManager::numberOfHttpFailed() const
 {
     return d->mNumberOfHttpFailed;
 }
+
+void BackOffModeManager::slotTimerFinished()
+{
+    d->slotTimerFinished();
+}
diff --git a/webengineviewer/src/checkphishingurl/backoffmodemanager.h \
b/webengineviewer/src/checkphishingurl/backoffmodemanager.h index 078f65d0..df07a2ae \
                100644
--- a/webengineviewer/src/checkphishingurl/backoffmodemanager.h
+++ b/webengineviewer/src/checkphishingurl/backoffmodemanager.h
@@ -39,6 +39,9 @@ public:
 
     int numberOfHttpFailed() const;
 
+public Q_SLOTS:
+    void slotTimerFinished();
+
 private:
     BackOffModeManagerPrivate *const d;
 };


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic