[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