Hello community,

here is the log from the commit of package kactivities-stats for 
openSUSE:Factory checked in at 2019-08-19 21:00:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kactivities-stats (Old)
 and      /work/SRC/openSUSE:Factory/.kactivities-stats.new.22127 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kactivities-stats"

Mon Aug 19 21:00:57 2019 rev:41 rq:722441 version:5.61.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kactivities-stats/kactivities-stats.changes      
2019-07-26 12:09:41.066856710 +0200
+++ 
/work/SRC/openSUSE:Factory/.kactivities-stats.new.22127/kactivities-stats.changes
   2019-08-19 21:03:24.632911017 +0200
@@ -1,0 +2,17 @@
+Wed Aug  7 17:51:05 UTC 2019 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Update to 5.61.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.61.0.php
+- Changes since 5.60.0:
+  * Add Date term to KActivities Stats to filter on resource event date 
+  * Fix some compiler warnings
+
+-------------------------------------------------------------------
+Fri Jul 19 11:38:02 UTC 2019 - Wolfgang Bauer <wba...@tmo.at>
+
+- Don't lower minimum Qt version anymore, it requires 5.11 now
+- Drop conditionals for no longer supported openSUSE versions
+
+-------------------------------------------------------------------

Old:
----
  kactivities-stats-5.60.0.tar.xz

New:
----
  frameworks.keyring
  kactivities-stats-5.61.0.tar.xz
  kactivities-stats-5.61.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kactivities-stats.spec ++++++
--- /var/tmp/diff_new_pack.cATOa8/_old  2019-08-19 21:03:26.244910756 +0200
+++ /var/tmp/diff_new_pack.cATOa8/_new  2019-08-19 21:03:26.252910755 +0200
@@ -17,37 +17,37 @@
 
 
 %define lname   libKF5ActivitiesStats1
-%define _tar_path 5.60
+%define _tar_path 5.61
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
+# Only needed for the package signature condition
+%bcond_without lang
 Name:           kactivities-stats
-Version:        5.60.0
+Version:        5.61.0
 Release:        0
 Summary:        KDE Plasma Activities support
 License:        LGPL-2.0-or-later
 Group:          System/Libraries
 URL:            https://www.kde.org
-Source:         
http://download.kde.org/stable/frameworks/%{_tar_path}/kactivities-stats-%{version}.tar.xz
-Source1:        baselibs.conf
+Source:         
https://download.kde.org/stable/frameworks/%{_tar_path}/kactivities-stats-%{version}.tar.xz
+%if %{with lang}
+Source1:        
https://download.kde.org/stable/frameworks/%{_tar_path}/kactivities-stats-%{version}.tar.xz.sig
+Source2:        frameworks.keyring
+%endif
+Source99:       baselibs.conf
 BuildRequires:  cmake >= 3.0
 BuildRequires:  extra-cmake-modules >= %{_kf5_bugfix_version}
 BuildRequires:  fdupes
 BuildRequires:  kf5-filesystem
+BuildRequires:  libboost_headers-devel
 BuildRequires:  xz
 BuildRequires:  cmake(KF5Activities) >= %{_kf5_bugfix_version}
 BuildRequires:  cmake(KF5Config) >= %{_kf5_bugfix_version}
 BuildRequires:  cmake(Qt5Core) >= 5.3.0
 BuildRequires:  cmake(Qt5DBus) >= 5.3.0
 BuildRequires:  cmake(Qt5Sql) >= 5.3.0
-%if 0%{?suse_version} > 1325
-BuildRequires:  libboost_headers-devel
-%else
-BuildRequires:  boost-devel
-# It does not build with the default compiler (GCC 4.8) on Leap 42.x
-BuildRequires:  gcc7-c++
-%endif
 
 %description
 Kactivities provides an API for using and interacting with the Plasma 
Activities Manager.
@@ -72,16 +72,8 @@
 
 %prep
 %setup -q -n kactivities-stats-%{version}
-%if 0%{?suse_version} == 1500
-sed -i -e "s/^set *(REQUIRED_QT_VERSION 5.10.0)$/set(REQUIRED_QT_VERSION 
5.9.0)/" CMakeLists.txt
-%endif
 
 %build
-  %if 0%{?suse_version} <= 1325
-    # It does not build with the default compiler (GCC 4.8) on Leap 42.x
-    export CC=gcc-7
-    export CXX=g++-7
-  %endif
   %cmake_kf5 -d build
   %make_jobs
 

++++++ kactivities-stats-5.60.0.tar.xz -> kactivities-stats-5.61.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/CMakeLists.txt 
new/kactivities-stats-5.61.0/CMakeLists.txt
--- old/kactivities-stats-5.60.0/CMakeLists.txt 2019-07-06 15:13:20.000000000 
+0200
+++ new/kactivities-stats-5.61.0/CMakeLists.txt 2019-08-03 21:30:45.000000000 
+0200
@@ -2,8 +2,8 @@
 
 cmake_minimum_required(VERSION 3.5)
 
-set(KF5_VERSION "5.60.0") # handled by release scripts
-set(KF5_DEP_VERSION "5.60.0") # handled by release scripts
+set(KF5_VERSION "5.61.0") # handled by release scripts
+set(KF5_DEP_VERSION "5.61.0") # handled by release scripts
 project (KActivitiesStats VERSION ${KF5_VERSION})
 
 set (REQUIRED_QT_VERSION 5.11.0)
@@ -20,11 +20,11 @@
 
 # Extra CMake stuff
 include (FeatureSummary)
-find_package (ECM 5.60.0  NO_MODULE)
+find_package (ECM 5.61.0  NO_MODULE)
 set_package_properties (ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL 
"https://projects.kde.org/projects/kdesupport/extra-cmake-modules";)
 feature_summary (WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
-set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} 
${ECM_KDE_MODULE_DIR})
+set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
 
 include (KDEInstallDirs)
 include (KDECMakeSettings)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/autotests/QueryTest.cpp 
new/kactivities-stats-5.61.0/autotests/QueryTest.cpp
--- old/kactivities-stats-5.60.0/autotests/QueryTest.cpp        2019-07-06 
15:13:20.000000000 +0200
+++ new/kactivities-stats-5.61.0/autotests/QueryTest.cpp        2019-08-03 
21:30:45.000000000 +0200
@@ -297,6 +297,24 @@
     }
 }
 
+void QueryTest::testNormalSyntaxDateDefinition()
+{
+    TEST_CHUNK(QStringLiteral("Testing the Date definition"))
+    {
+        auto query = Date::today();
+        QCOMPARE(query.value, QDate::currentDate());
+    }
+    {
+        auto query = Date::yesterday();
+        QDate date = QDate::currentDate();
+        QCOMPARE(query.value, date.addDays(-1));
+    }
+    {
+        auto query = Date(QDate::fromString(QStringLiteral("2019-07-25")));
+        QCOMPARE(query.value, QDate::fromString(QStringLiteral("2019-07-25")));
+    }
+}
+
 void QueryTest::initTestCase()
 {
     // CHECK_CONDITION(isActivityManagerRunning, FailIfTrue);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/autotests/QueryTest.h 
new/kactivities-stats-5.61.0/autotests/QueryTest.h
--- old/kactivities-stats-5.60.0/autotests/QueryTest.h  2019-07-06 
15:13:20.000000000 +0200
+++ new/kactivities-stats-5.61.0/autotests/QueryTest.h  2019-08-03 
21:30:45.000000000 +0200
@@ -44,6 +44,7 @@
     void testNormalSyntaxTypeManipulation();
     void testNormalSyntaxActivityManipulation();
     void testNormalSyntaxOrderingManipulation();
+    void testNormalSyntaxDateDefinition();
 
     void testFancySyntaxBasic();
     void testFancySyntaxAgentDefinition();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/autotests/ResultSetTest.cpp 
new/kactivities-stats-5.61.0/autotests/ResultSetTest.cpp
--- old/kactivities-stats-5.60.0/autotests/ResultSetTest.cpp    2019-07-06 
15:13:20.000000000 +0200
+++ new/kactivities-stats-5.61.0/autotests/ResultSetTest.cpp    2019-08-03 
21:30:45.000000000 +0200
@@ -146,6 +146,18 @@
         QCOMPARE(result.at(1).resource(), 
QStringLiteral("/path/high2_act2_kate"));
         QCOMPARE(result.at(2).resource(), 
QStringLiteral("/path/high3_act1_kate"));
     }
+
+    TEST_CHUNK(QStringLiteral("Getting the used resources filter by Date"))
+    {
+        ResultSet result(UsedResources
+                        | HighScoredFirst
+                        | Agent::any()
+                        | Activity::any()
+                        | Date::fromString(QStringLiteral("2015-01-15"))
+                        );
+
+        QCOMPARE(result.at(0).resource(), 
QStringLiteral("/path/high1_act1_gvim"));
+    }
 }
 
 void ResultSetTest::initTestCase()
@@ -192,9 +204,18 @@
             " , ('activity1' , 'gvim'                 , '/path/low3_act1_gvim' 
 , '0' , '6'   , '-1' , '1421434704')"
             " , ('activity1' , 'kate'                 , '/path/low2_act1_kate' 
 , '0' , '3'   , '-1' , '1421433266')"
             " , ('activity1' , 'kate'                 , '/path/low1_act1_kate' 
 , '0' , '2'   , '-1' , '1421433254')")
-
         );
 
+    database->execQuery(
+            QStringLiteral("INSERT INTO  ResourceEvent (usedActivity, 
initiatingAgent, targettedResource, start, end ) VALUES"
+             "('activity1' , 'gvim'                 , '/path/high1_act1_gvim' 
, '1421345799', '1421345799')")
+    );
+
+    database->execQuery(
+            QStringLiteral("INSERT INTO  ResourceInfo (targettedResource, 
title, mimetype, autoTitle, autoMimetype) VALUES"
+             "('/path/high1_act1_gvim', 'high1_act1_gvim', 'text/plain', 1, 1 
)")
+    );
+
     // Renaming the activity1 to the current acitivty
     KActivities::Consumer kamd;
 
@@ -207,6 +228,11 @@
                 + kamd.currentActivity()
                 + QStringLiteral("' WHERE usedActivity = 'activity1'"));
 
+    database->execQuery(
+            QStringLiteral("UPDATE ResourceEvent SET usedActivity = '")
+                + kamd.currentActivity()
+                + QStringLiteral("' WHERE usedActivity = 'activity1'"));
+
 
     database->execQuery(
             QStringLiteral("INSERT INTO ResourceLink (usedActivity, 
initiatingAgent, targettedResource) VALUES "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/src/query.cpp 
new/kactivities-stats-5.61.0/src/query.cpp
--- old/kactivities-stats-5.60.0/src/query.cpp  2019-07-06 15:13:20.000000000 
+0200
+++ new/kactivities-stats-5.61.0/src/query.cpp  2019-08-03 21:30:45.000000000 
+0200
@@ -20,6 +20,7 @@
  */
 
 #include "query.h"
+#include <QDate>
 #include <QDebug>
 
 namespace KActivities {
@@ -71,6 +72,7 @@
     QStringList     activities;
     QStringList     urlFilters;
     Terms::Order    ordering;
+    QDate           date;
     int             limit;
     int             offset;
 };
@@ -111,7 +113,8 @@
            agents()     == right.agents() &&
            activities() == right.activities() &&
            selection()  == right.selection() &&
-           urlFilters() == right.urlFilters();
+           urlFilters() == right.urlFilters() &&
+           date()       == right.date();
 }
 
 bool Query::operator!= (const Query &right) const
@@ -163,6 +166,11 @@
     d->offset = offset;
 }
 
+void Query::setDate(QDate date)
+{
+    d->date = date;
+}
+
 Terms::Order Query::ordering() const
 {
     return d->ordering;
@@ -184,6 +192,11 @@
     return d->offset;
 }
 
+QDate Query::date() const
+{
+    return d->date;
+}
+
 } // namespace Stats
 } // namespace KActivities
 
@@ -200,6 +213,7 @@
         << ", " << Agent(query.agents())
         << ", " << Activity(query.activities())
         << ", " << Url(query.urlFilters())
+        << ", " << Date(query.date())
         << ", " << query.ordering()
         << ", Limit: " << query.limit()
         << " }";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/src/query.h 
new/kactivities-stats-5.61.0/src/query.h
--- old/kactivities-stats-5.60.0/src/query.h    2019-07-06 15:13:20.000000000 
+0200
+++ new/kactivities-stats-5.61.0/src/query.h    2019-08-03 21:30:45.000000000 
+0200
@@ -89,6 +89,7 @@
     Terms::Order ordering() const;
     int offset() const;
     int limit() const;
+    QDate date() const;
 
     void setSelection(Terms::Select selection);
 
@@ -99,6 +100,7 @@
     void setOrdering(Terms::Order ordering);
     void setOffset(int offset);
     void setLimit(int limit);
+    void setDate(QDate date);
 
     void clearTypes();
     void clearAgents();
@@ -151,6 +153,11 @@
         setOffset(offset.value);
     }
 
+    inline void addTerm(Terms::Date date)
+    {
+        setDate(date.value);
+    }
+
 public:
 
     template <typename Term>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/src/resultset.cpp 
new/kactivities-stats-5.61.0/src/resultset.cpp
--- old/kactivities-stats-5.60.0/src/resultset.cpp      2019-07-06 
15:13:20.000000000 +0200
+++ new/kactivities-stats-5.61.0/src/resultset.cpp      2019-08-03 
21:30:45.000000000 +0200
@@ -179,6 +179,21 @@
         return QStringLiteral("mimetype LIKE '") + 
Common::starPatternToLike(mimetype) + QStringLiteral("' ESCAPE '\\'");
     }
 
+    QString dateClause(QDate date) const {
+        return QStringLiteral("DATE(re.start, 'unixepoch') = '") +
+                               date.toString(Qt::ISODate) + QStringLiteral("' 
");
+    }
+
+    QString resourceEventJoinClause() const {
+        return QStringLiteral(R"sql(
+            LEFT JOIN
+                ResourceEvent re
+                ON  from_table.targettedResource = re.targettedResource
+                AND from_table.usedActivity      = re.usedActivity
+                AND from_table.initiatingAgent   = re.initiatingAgent
+        )sql");
+    }
+
     /**
      * Transforms the input list's elements with the f member method,
      * and returns the resulting list
@@ -226,7 +241,6 @@
               : QString()
             );
 
-
         // WHERE clause for filtering on agents
         QStringList agentsFilter = transformedList(
                 queryDefinition.agents(), &ResultSetPrivate::agentClause);
@@ -243,6 +257,14 @@
         QStringList mimetypeFilter = transformedList(
                 queryDefinition.types(), &ResultSetPrivate::mimetypeClause);
 
+        QString dateColumn = QStringLiteral("1"), resourceEventJoin;
+        // WHERE clause for access date filtering and ResourceEvent table Join
+        if (!queryDefinition.date().isNull()) {
+            dateColumn = dateClause(queryDefinition.date());
+
+            resourceEventJoin = resourceEventJoinClause();
+        }
+
         auto queryString = _query;
 
         queryString.replace(QStringLiteral("ORDER_BY_CLAUSE"), 
QStringLiteral("ORDER BY $orderingColumn resource ASC"))
@@ -255,6 +277,8 @@
                 .replace(QLatin1String("$activitiesFilter"), 
activitiesFilter.join(QStringLiteral(" OR ")))
                 .replace(QLatin1String("$urlFilter"), 
urlFilter.join(QStringLiteral(" OR ")))
                 .replace(QLatin1String("$mimetypeFilter"), 
mimetypeFilter.join(QStringLiteral(" OR ")))
+                .replace(QLatin1String("$resourceEventJoin"), 
resourceEventJoin)
+                .replace(QLatin1String("$dateFilter"), dateColumn)
             );
     }
 
@@ -266,32 +290,35 @@
         static const QString queryString =
             QStringLiteral(R"sql(
             SELECT
-                rl.targettedResource as resource
-              , SUM(rsc.cachedScore) as score
-              , MIN(rsc.firstUpdate) as firstUpdate
-              , MAX(rsc.lastUpdate)  as lastUpdate
-              , rl.usedActivity      as activity
-              , rl.initiatingAgent   as agent
-              , COALESCE(ri.title, rl.targettedResource) as title
+                from_table.targettedResource as resource
+              , SUM(rsc.cachedScore)         as score
+              , MIN(rsc.firstUpdate)         as firstUpdate
+              , MAX(rsc.lastUpdate)          as lastUpdate
+              , from_table.usedActivity      as activity
+              , from_table.initiatingAgent   as agent
+              , COALESCE(ri.title, from_table.targettedResource) as title
               , ri.mimetype as mimetype
               , 2 as linkStatus
 
             FROM
-                ResourceLink rl
+                ResourceLink from_table
             LEFT JOIN
                 ResourceScoreCache rsc
-                ON rl.targettedResource = rsc.targettedResource
-                AND rl.usedActivity     = rsc.usedActivity
-                AND rl.initiatingAgent  = rsc.initiatingAgent
+                ON  from_table.targettedResource = rsc.targettedResource
+                AND from_table.usedActivity      = rsc.usedActivity
+                AND from_table.initiatingAgent   = rsc.initiatingAgent
             LEFT JOIN
                 ResourceInfo ri
-                ON rl.targettedResource = ri.targettedResource
+                ON from_table.targettedResource = ri.targettedResource
+
+            $resourceEventJoin
 
             WHERE
                 ($agentsFilter)
                 AND ($activitiesFilter)
                 AND ($urlFilter)
                 AND ($mimetypeFilter)
+                AND ($dateFilter)
 
             GROUP BY resource, title
 
@@ -310,27 +337,30 @@
         static const QString queryString =
             QStringLiteral(R"sql(
             SELECT
-                rsc.targettedResource as resource
-              , SUM(rsc.cachedScore)  as score
-              , MIN(rsc.firstUpdate)  as firstUpdate
-              , MAX(rsc.lastUpdate)   as lastUpdate
-              , rsc.usedActivity      as activity
-              , rsc.initiatingAgent   as agent
-              , COALESCE(ri.title, rsc.targettedResource) as title
+                from_table.targettedResource as resource
+              , SUM(from_table.cachedScore)  as score
+              , MIN(from_table.firstUpdate)  as firstUpdate
+              , MAX(from_table.lastUpdate)   as lastUpdate
+              , from_table.usedActivity      as activity
+              , from_table.initiatingAgent   as agent
+              , COALESCE(ri.title, from_table.targettedResource) as title
               , ri.mimetype as mimetype
               , 1 as linkStatus
 
             FROM
-                ResourceScoreCache rsc
+                ResourceScoreCache from_table
             LEFT JOIN
                 ResourceInfo ri
-                ON rsc.targettedResource = ri.targettedResource
+                ON from_table.targettedResource = ri.targettedResource
+
+            $resourceEventJoin
 
             WHERE
                 ($agentsFilter)
                 AND ($activitiesFilter)
                 AND ($urlFilter)
                 AND ($mimetypeFilter)
+                AND ($dateFilter)
 
             GROUP BY resource, title
 
@@ -351,47 +381,53 @@
             QStringLiteral(R"sql(
             WITH
                 LinkedResourcesResults AS (
-                    SELECT rl.targettedResource as resource
-                         , rsc.cachedScore      as score
-                         , rsc.firstUpdate      as firstUpdate
-                         , rsc.lastUpdate       as lastUpdate
-                         , rl.usedActivity      as activity
-                         , rl.initiatingAgent   as agent
+                    SELECT from_table.targettedResource as resource
+                         , rsc.cachedScore              as score
+                         , rsc.firstUpdate              as firstUpdate
+                         , rsc.lastUpdate               as lastUpdate
+                         , from_table.usedActivity      as activity
+                         , from_table.initiatingAgent   as agent
                          , 2 as linkStatus
 
                     FROM
-                        ResourceLink rl
+                        ResourceLink from_table
 
                     LEFT JOIN
                         ResourceScoreCache rsc
-                        ON  rl.targettedResource = rsc.targettedResource
-                        AND rl.usedActivity      = rsc.usedActivity
+                        ON  from_table.targettedResource = 
rsc.targettedResource
+                        AND from_table.usedActivity      = rsc.usedActivity
                         AND rl.initiatingAgent   = rsc.initiatingAgent
 
+                    $resourceEventJoin
+
                     WHERE
                         ($agentsFilter)
                         AND ($activitiesFilter)
                         AND ($urlFilter)
                         AND ($mimetypeFilter)
+                        AND ($dateFilter)
                 ),
 
                 UsedResourcesResults AS (
-                    SELECT rsc.targettedResource as resource
-                         , rsc.cachedScore       as score
-                         , rsc.firstUpdate       as firstUpdate
-                         , rsc.lastUpdate        as lastUpdate
-                         , rsc.usedActivity      as activity
-                         , rsc.initiatingAgent   as agent
+                    SELECT from_table.targettedResource as resource
+                         , from_table.cachedScore       as score
+                         , from_table.firstUpdate       as firstUpdate
+                         , from_table.lastUpdate        as lastUpdate
+                         , from_table.usedActivity      as activity
+                         , from_table.initiatingAgent   as agent
                          , 0 as linkStatus
 
                     FROM
-                        ResourceScoreCache rsc
+                        ResourceScoreCache from_table
+
+                    $resourceEventJoin
 
                     WHERE
                         ($agentsFilter)
                         AND ($activitiesFilter)
                         AND ($urlFilter)
                         AND ($mimetypeFilter)
+                        AND ($dateFilter)
                 ),
 
                 CollectedResults AS (
@@ -442,12 +478,11 @@
         result.setTitle(query.value(QStringLiteral("title")).toString());
         result.setMimetype(query.value(QStringLiteral("mimetype")).toString());
         result.setScore(query.value(QStringLiteral("score")).toDouble());
-        
result.setLastUpdate(query.value(QStringLiteral("lastUpdate")).toInt());
-        
result.setFirstUpdate(query.value(QStringLiteral("firstUpdate")).toInt());
-
+        
result.setLastUpdate(query.value(QStringLiteral("lastUpdate")).toUInt());
+        
result.setFirstUpdate(query.value(QStringLiteral("firstUpdate")).toUInt());
 
         result.setLinkStatus(
-            
(ResultSet::Result::LinkStatus)query.value(QStringLiteral("linkStatus")).toInt());
+            
static_cast<ResultSet::Result::LinkStatus>(query.value(QStringLiteral("linkStatus")).toUInt()));
 
         auto linkedActivitiesQuery = database->createQuery();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/src/terms.cpp 
new/kactivities-stats-5.61.0/src/terms.cpp
--- old/kactivities-stats-5.60.0/src/terms.cpp  2019-07-06 15:13:20.000000000 
+0200
+++ new/kactivities-stats-5.61.0/src/terms.cpp  2019-08-03 21:30:45.000000000 
+0200
@@ -76,6 +76,28 @@
 {
 }
 
+Terms::Date::Date(QDate value)
+    : value(value)
+{
+}
+
+Terms::Date Terms::Date::today()
+{
+    return Date(QDate::currentDate());
+}
+
+Terms::Date Terms::Date::yesterday()
+{
+    auto date = QDate::currentDate();
+    return Date(date.addDays(-1));
+}
+
+Terms::Date Terms::Date::fromString(QString string)
+{
+    auto date = QDate::fromString(string, Qt::ISODate);
+    return Date(date);
+}
+
 Terms::Url Terms::Url::startsWith(const QString &prefix)
 {
     return Url(prefix + QStringLiteral("*"));
@@ -115,6 +137,7 @@
 
 QDEBUG_TERM_OUT(Limit,    _.value)
 QDEBUG_TERM_OUT(Offset,   _.value)
+QDEBUG_TERM_OUT(Date,     _.value)
 
 #undef QDEBUG_TERM_OUT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/src/terms.h 
new/kactivities-stats-5.61.0/src/terms.h
--- old/kactivities-stats-5.60.0/src/terms.h    2019-07-06 15:13:20.000000000 
+0200
+++ new/kactivities-stats-5.61.0/src/terms.h    2019-08-03 21:30:45.000000000 
+0200
@@ -31,6 +31,7 @@
 
 #include <QString>
 #include <QStringList>
+#include <QDate>
 
 #include "kactivitiesstats_export.h"
 
@@ -202,6 +203,18 @@
         const QStringList values;
 
     };
+
+    /**
+     * On which start access date do you want to filter ?
+     */
+    struct KACTIVITIESSTATS_EXPORT Date {
+        Date(QDate value);
+        static Date today();
+        static Date yesterday();
+        static Date fromString(QString);
+        QDate value;
+    };
+
 } // namespace Terms
 
 } // namespace Stats
@@ -231,5 +244,8 @@
 KACTIVITIESSTATS_EXPORT
 QDebug operator<<(QDebug dbg, const KActivities::Stats::Terms::Offset &offset);
 
+KACTIVITIESSTATS_EXPORT
+QDebug operator<<(QDebug dbg, const KActivities::Stats::Terms::Date &date);
+
 #endif // KACTIVITIES_STATS_TERMS_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/tests/model/window.cpp 
new/kactivities-stats-5.61.0/tests/model/window.cpp
--- old/kactivities-stats-5.60.0/tests/model/window.cpp 2019-07-06 
15:13:20.000000000 +0200
+++ new/kactivities-stats-5.61.0/tests/model/window.cpp 2019-08-03 
21:30:45.000000000 +0200
@@ -323,6 +323,8 @@
 {
     qDebug() << "Updating the results";
 
+    QString textDate = ui->textDate->text();
+
     setQuery(
         // What should we get
         (
@@ -352,6 +354,13 @@
         // And URL filters
         Url(ui->textUrl->text().split(QLatin1Char(','), 
QString::SkipEmptyParts)) |
 
+        // And date filter
+        (
+            textDate == QStringLiteral("today")     ? Date::today() :
+            textDate == QStringLiteral("yesterday") ? Date::yesterday() :
+                                                      
Date(QDate::fromString(textDate, Qt::ISODate))
+        ) |
+
         // And how many items
         Limit(ui->spinLimitCount->value())
     );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.60.0/tests/model/window.ui 
new/kactivities-stats-5.61.0/tests/model/window.ui
--- old/kactivities-stats-5.60.0/tests/model/window.ui  2019-07-06 
15:13:20.000000000 +0200
+++ new/kactivities-stats-5.61.0/tests/model/window.ui  2019-08-03 
21:30:45.000000000 +0200
@@ -259,30 +259,40 @@
              </property>
             </widget>
            </item>
+           <item row="3" column="0">
+            <widget class="QLabel" name="labelUrl">
+             <property name="text">
+              <string>Url</string>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="1">
+            <widget class="QLineEdit" name="textUrl"/>
+           </item>
            <item row="4" column="0">
+            <widget class="QLabel" name="labelDate">
+             <property name="text">
+              <string>Date</string>
+             </property>
+            </widget>
+           </item>
+           <item row="4" column="1">
+            <widget class="QLineEdit" name="textDate"/>
+           </item>
+           <item row="5" column="0">
             <widget class="QLabel" name="labelLimitCount">
              <property name="text">
               <string>Count</string>
              </property>
             </widget>
            </item>
-           <item row="4" column="1">
+           <item row="5" column="1">
             <widget class="QSpinBox" name="spinLimitCount">
              <property name="value">
               <number>10</number>
              </property>
             </widget>
            </item>
-           <item row="3" column="0">
-            <widget class="QLabel" name="labelUrl">
-             <property name="text">
-              <string>Url</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="1">
-            <widget class="QLineEdit" name="textUrl"/>
-           </item>
           </layout>
          </item>
          <item>


Reply via email to