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

List:       kde-commits
Subject:    [kactivities] /: Removing old events from the database periodically
From:       Ivan Čukić <ivan.cukic () kde ! org>
Date:       2015-05-31 22:28:26
Message-ID: E1YzBiU-0002o5-St () scm ! kde ! org
[Download RAW message or body]

Git commit a400d99c393eba22033b75d6d29a7dac608586a6 by Ivan =C4=8Cuki=C4=87.
Committed on 31/05/2015 at 21:42.
Pushed by ivan into branch 'master'.

Removing old events from the database periodically

M  +1    -4    TODO
M  +12   -4    src/service/plugins/sqlite/StatsPlugin.cpp
M  +5    -0    src/service/plugins/sqlite/StatsPlugin.h

http://commits.kde.org/kactivities/a400d99c393eba22033b75d6d29a7dac608586a6

diff --git a/TODO b/TODO
index 6bba032..c4c8f18 100644
--- a/TODO
+++ b/TODO
@@ -46,10 +46,7 @@ src/service/ksmserver/KSMServer.cpp:72:
  In future, the session management for Wayland may also need to be
  reimplemented in some way.
 =

-src/service/plugins/sqlite/StatsPlugin.cpp:117:
- TODO: Event cleanup should be also done from time to time,
-       not only on startup
-src/service/plugins/sqlite/StatsPlugin.cpp:408:
+src/service/plugins/sqlite/StatsPlugin.cpp:414:
  TODO: Add focus and modification
 =

 src/service/Application.cpp:155:
diff --git a/src/service/plugins/sqlite/StatsPlugin.cpp b/src/service/plugi=
ns/sqlite/StatsPlugin.cpp
index 6cd5dad..28cbeb2 100644
--- a/src/service/plugins/sqlite/StatsPlugin.cpp
+++ b/src/service/plugins/sqlite/StatsPlugin.cpp
@@ -113,10 +113,13 @@ void StatsPlugin::loadConfiguration()
         m_apps.insert(apps.cbegin(), apps.cend());
     }
 =

-    // Delete old events, as per configuration
-    // TODO: Event cleanup should be also done from time to time,
-    //       not only on startup
-    DeleteEarlierStats(QString(), config().readEntry("keep-history-for", 0=
));
+    // Delete old events, as per configuration.
+    // For people who do not restart their computers, we should do this fr=
om
+    // time to time. Doing this twice a day should be more than enough.
+    deleteOldEvents();
+    m_deleteOldEventsTimer.setInterval(12 * 60 * 60 * 1000);
+    connect(&m_deleteOldEventsTimer, &QTimer::timeout,
+            this, &StatsPlugin::deleteOldEvents);
 =

     // Loading URL filters
     m_urlFilters.clear();
@@ -133,6 +136,11 @@ void StatsPlugin::loadConfiguration()
     }
 }
 =

+void StatsPlugin::deleteOldEvents()
+{
+    DeleteEarlierStats(QString(), config().readEntry("keep-history-for", 0=
));
+}
+
 void StatsPlugin::openResourceEvent(const QString &usedActivity,
                                     const QString &initiatingAgent,
                                     const QString &targettedResource,
diff --git a/src/service/plugins/sqlite/StatsPlugin.h b/src/service/plugins=
/sqlite/StatsPlugin.h
index 539660a..8e4f17a 100644
--- a/src/service/plugins/sqlite/StatsPlugin.h
+++ b/src/service/plugins/sqlite/StatsPlugin.h
@@ -20,6 +20,7 @@
 =

 // Qt
 #include <QObject>
+#include <QTimer>
 =

 // Boost and STL
 #include <memory>
@@ -109,6 +110,8 @@ private Q_SLOTS:
     bool insertResourceInfo(const QString &uri);
     void detectResourceInfo(const QString &uri);
 =

+    void deleteOldEvents();
+
 private:
     inline bool acceptedEvent(const Event &event);
     inline Event validateEvent(Event event);
@@ -133,6 +136,8 @@ private:
     std::unique_ptr<QSqlQuery> saveResourceTitleQuery;
     std::unique_ptr<QSqlQuery> saveResourceMimetypeQuery;
 =

+    QTimer m_deleteOldEventsTimer;
+
     bool m_blockedByDefault : 1;
     bool m_blockAll : 1;
     WhatToRemember m_whatToRemember : 2;
[prev in list] [next in list] [prev in thread] [next in thread] 

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