Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kactivities-stats for 
openSUSE:Factory checked in at 2022-05-16 18:06:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kactivities-stats (Old)
 and      /work/SRC/openSUSE:Factory/.kactivities-stats.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kactivities-stats"

Mon May 16 18:06:32 2022 rev:74 rq:977145 version:5.94.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kactivities-stats/kactivities-stats.changes      
2022-04-11 23:47:52.640007342 +0200
+++ 
/work/SRC/openSUSE:Factory/.kactivities-stats.new.1538/kactivities-stats.changes
    2022-05-16 18:08:09.157253363 +0200
@@ -1,0 +2,12 @@
+Tue May 10 08:17:44 UTC 2022 - Christophe Giboudeaux <[email protected]>
+
+- Update to 5.94.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/5/5.94.0
+- Changes since 5.93.0:
+  * Make replace to not block because of missing item removal
+  * Add ResultModel::forgetResources method
+  * Require unittests to pass for CI jobs to pass
+
+-------------------------------------------------------------------

Old:
----
  kactivities-stats-5.93.0.tar.xz
  kactivities-stats-5.93.0.tar.xz.sig

New:
----
  kactivities-stats-5.94.0.tar.xz
  kactivities-stats-5.94.0.tar.xz.sig

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

Other differences:
------------------
++++++ kactivities-stats.spec ++++++
--- /var/tmp/diff_new_pack.R6ciFt/_old  2022-05-16 18:08:09.657253836 +0200
+++ /var/tmp/diff_new_pack.R6ciFt/_new  2022-05-16 18:08:09.661253840 +0200
@@ -17,7 +17,7 @@
 
 
 %define lname   libKF5ActivitiesStats1
-%define _tar_path 5.93
+%define _tar_path 5.94
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
@@ -25,7 +25,7 @@
 # Only needed for the package signature condition
 %bcond_without released
 Name:           kactivities-stats
-Version:        5.93.0
+Version:        5.94.0
 Release:        0
 Summary:        KDE Plasma Activities support
 License:        LGPL-2.0-or-later


++++++ kactivities-stats-5.93.0.tar.xz -> kactivities-stats-5.94.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.93.0/.kde-ci.yml 
new/kactivities-stats-5.94.0/.kde-ci.yml
--- old/kactivities-stats-5.93.0/.kde-ci.yml    2022-04-02 11:55:04.000000000 
+0200
+++ new/kactivities-stats-5.94.0/.kde-ci.yml    2022-05-02 14:48:49.000000000 
+0200
@@ -6,3 +6,4 @@
 
 Options:
   test-before-installing: True
+  require-passing-tests-on: [ 'Linux', 'FreeBSD' ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.93.0/CMakeLists.txt 
new/kactivities-stats-5.94.0/CMakeLists.txt
--- old/kactivities-stats-5.93.0/CMakeLists.txt 2022-04-02 11:55:04.000000000 
+0200
+++ new/kactivities-stats-5.94.0/CMakeLists.txt 2022-05-02 14:48:49.000000000 
+0200
@@ -2,7 +2,7 @@
 
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "5.93.0") # handled by release scripts
+set(KF_VERSION "5.94.0") # handled by release scripts
 set(KF_DEP_VERSION "5.93.0") # handled by release scripts
 project (KActivitiesStats VERSION ${KF_VERSION})
 
@@ -49,6 +49,7 @@
 # find_package (KF5I18n ${KF_DEP_VERSION} CONFIG REQUIRED)
 find_package (KF5Config ${KF_DEP_VERSION} CONFIG REQUIRED)
 find_package (KF5Activities ${KF_DEP_VERSION} CONFIG REQUIRED)
+find_package(Threads REQUIRED)
 
 # Basic includes
 include (CPack)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.93.0/src/CMakeLists.txt 
new/kactivities-stats-5.94.0/src/CMakeLists.txt
--- old/kactivities-stats-5.93.0/src/CMakeLists.txt     2022-04-02 
11:55:04.000000000 +0200
+++ new/kactivities-stats-5.94.0/src/CMakeLists.txt     2022-05-02 
14:48:49.000000000 +0200
@@ -68,6 +68,7 @@
       Qt${QT_MAJOR_VERSION}::Sql
       KF5::Activities
       KF5::ConfigCore
+      Threads::Threads
    )
 
 target_include_directories (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.93.0/src/resultmodel.cpp 
new/kactivities-stats-5.94.0/src/resultmodel.cpp
--- old/kactivities-stats-5.93.0/src/resultmodel.cpp    2022-04-02 
11:55:04.000000000 +0200
+++ new/kactivities-stats-5.94.0/src/resultmodel.cpp    2022-05-02 
14:48:49.000000000 +0200
@@ -8,13 +8,15 @@
 #include "resultmodel.h"
 
 // Qt
-#include <QDebug>
-#include <QDateTime>
 #include <QCoreApplication>
+#include <QDateTime>
+#include <QDebug>
 #include <QFile>
+#include <QTimer>
 
 // STL
 #include <functional>
+#include <thread>
 
 // KDE
 #include <KSharedConfig>
@@ -493,11 +495,24 @@
 
             // Check whether we got an item representing a non-existent file,
             // if so, schedule its removal from the database
-            for (const auto &item: newItems) {
-                if (item.resource().startsWith(QLatin1Char('/')) && 
!QFile(item.resource()).exists()) {
-                    d->q->forgetResource(item.resource());
+            // we want to do this async so that we don't block
+            std::thread([=] {
+                QList<QString> missingResources;
+                for (const auto &item: newItems) {
+                    // QFile.exists() can be incredibly slow (eg. if resource 
is on remote filesystem)
+                    if (item.resource().startsWith(QLatin1Char('/')) && 
!QFile(item.resource()).exists()) {
+                        missingResources << item.resource();
+                    }
                 }
-            }
+
+                if (missingResources.empty()) {
+                    return;
+                }
+
+                QTimer::singleShot(0, this->d->q, [=] {
+                    d->q->forgetResources(missingResources);
+                });
+            }).detach();
         }
         //^
 
@@ -1060,23 +1075,30 @@
          : d->hasMore;
 }
 
-void ResultModel::forgetResource(const QString &resource)
+void ResultModel::forgetResources(const QList<QString> &resources)
 {
     const auto lstActivities = d->query.activities();
     for (const QString &activity : lstActivities) {
         const auto lstAgents = d->query.agents();
         for (const QString &agent : lstAgents) {
-            /* clang-format off */
-            Stats::forgetResource(
-                    activity,
-                    agent == CURRENT_AGENT_TAG ?
-                        QCoreApplication::applicationName() : agent,
-                    resource);
-            /* clang-format on */
+            for (const QString &resource : resources) {
+                /* clang-format off */
+                Stats::forgetResource(
+                        activity,
+                        agent == CURRENT_AGENT_TAG ?
+                            QCoreApplication::applicationName() : agent,
+                        resource);
+                /* clang-format on */
+            }
         }
     }
 }
 
+void ResultModel::forgetResource(const QString &resource)
+{
+    ResultModel::forgetResources({ resource });
+}
+
 void ResultModel::forgetResource(int row)
 {
     if (row >= d->cache.size()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kactivities-stats-5.93.0/src/resultmodel.h 
new/kactivities-stats-5.94.0/src/resultmodel.h
--- old/kactivities-stats-5.93.0/src/resultmodel.h      2022-04-02 
11:55:04.000000000 +0200
+++ new/kactivities-stats-5.94.0/src/resultmodel.h      2022-05-02 
14:48:49.000000000 +0200
@@ -75,6 +75,11 @@
     void forgetResource(const QString &resource);
 
     /**
+     * Removes specified list of resources from the history
+     */
+    void forgetResources(const QList<QString> &resources);
+
+    /**
      * Removes the specified resource from the history
      */
     void forgetResource(int row);

Reply via email to