Hello community, here is the log from the commit of package kactivities-stats for openSUSE:Factory checked in at 2017-01-31 11:54:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kactivities-stats (Old) and /work/SRC/openSUSE:Factory/.kactivities-stats.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kactivities-stats" Changes: -------- --- /work/SRC/openSUSE:Factory/kactivities-stats/kactivities-stats.changes 2016-12-17 11:04:24.970316199 +0100 +++ /work/SRC/openSUSE:Factory/.kactivities-stats.new/kactivities-stats.changes 2017-02-03 17:43:45.749225235 +0100 @@ -1,0 +2,7 @@ +Sun Jan 8 23:37:38 UTC 2017 - [email protected] + +- Update to 5.30.0 + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.30.0.php + +------------------------------------------------------------------- Old: ---- kactivities-stats-5.29.0.tar.xz New: ---- kactivities-stats-5.30.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kactivities-stats.spec ++++++ --- /var/tmp/diff_new_pack.Q7DfOt/_old 2017-02-03 17:43:46.105174853 +0100 +++ /var/tmp/diff_new_pack.Q7DfOt/_new 2017-02-03 17:43:46.105174853 +0100 @@ -1,7 +1,7 @@ # # spec file for package kactivities-stats # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,9 +17,9 @@ %define lname libKF5ActivitiesStats1 -%define _tar_path 5.29 +%define _tar_path 5.30 Name: kactivities-stats -Version: 5.29.0 +Version: 5.30.0 Release: 0 %define kf5_version %{version} Summary: KDE Plasma Activities support @@ -29,7 +29,7 @@ Source: http://download.kde.org/stable/frameworks/%{_tar_path}/kactivities-stats-%{version}.tar.xz Source1: baselibs.conf BuildRequires: boost-devel -BuildRequires: cmake >= 2.8.12 +BuildRequires: cmake >= 3.0 BuildRequires: extra-cmake-modules >= %{_tar_path} BuildRequires: fdupes BuildRequires: kf5-filesystem ++++++ kactivities-stats-5.29.0.tar.xz -> kactivities-stats-5.30.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/CMakeLists.txt new/kactivities-stats-5.30.0/CMakeLists.txt --- old/kactivities-stats-5.29.0/CMakeLists.txt 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/CMakeLists.txt 2017-01-08 16:15:02.000000000 +0100 @@ -1,8 +1,10 @@ # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required(VERSION 3.0) -project (KActivitiesStats) +set(KF5_VERSION "5.30.0") # handled by release scripts +set(KF5_DEP_VERSION "5.30.0") # handled by release scripts +project (KActivitiesStats VERSION ${KF5_VERSION}) set (REQUIRED_QT_VERSION 5.3.0) @@ -18,7 +20,7 @@ # Extra CMake stuff include (FeatureSummary) -find_package (ECM 5.29.0 NO_MODULE) +find_package (ECM 5.30.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) @@ -35,8 +37,6 @@ find_package (Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED COMPONENTS Core DBus Sql) # KDE Frameworks -set(KF5_VERSION "5.29.0") # handled by release scripts -set(KF5_DEP_VERSION "5.29.0") # handled by release scripts # find_package (KF5DBusAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) # find_package (KF5I18n ${KF5_DEP_VERSION} CONFIG REQUIRED) find_package (KF5Config ${KF5_DEP_VERSION} CONFIG REQUIRED) @@ -47,7 +47,7 @@ # Basic includes include (CPack) -include (ECMPackageConfigHelpers) +include (CMakePackageConfigHelpers) include (ECMSetupVersion) @@ -71,7 +71,7 @@ # libKActivitiesStats ecm_setup_version ( - ${KF5_VERSION} + PROJECT VARIABLE_PREFIX KACTIVITIESSTATS VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kactivitiesstats_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesStatsConfigVersion.cmake" @@ -87,7 +87,7 @@ NAMESPACE KF5:: ) -ecm_configure_package_config_file ( +configure_package_config_file ( "${CMAKE_CURRENT_SOURCE_DIR}/KF5ActivitiesStatsConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesStatsConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/KF5ActivitiesStatsConfig.cmake.in new/kactivities-stats-5.30.0/KF5ActivitiesStatsConfig.cmake.in --- old/kactivities-stats-5.29.0/KF5ActivitiesStatsConfig.cmake.in 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/KF5ActivitiesStatsConfig.cmake.in 2017-01-08 16:15:02.000000000 +0100 @@ -1,5 +1,6 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) find_dependency(Qt5Core @REQUIRED_QT_VERSION@) include("${CMAKE_CURRENT_LIST_DIR}/KF5ActivitiesStatsLibraryTargets.cmake") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/autotests/common/test.h new/kactivities-stats-5.30.0/autotests/common/test.h --- old/kactivities-stats-5.29.0/autotests/common/test.h 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/autotests/common/test.h 2017-01-08 16:15:02.000000000 +0100 @@ -140,7 +140,7 @@ // Pretty print #include <iostream> -#if defined(Q_NO_DEBUG) or (not defined(Q_OS_LINUX)) +#if defined(Q_NO_DEBUG) || !defined(Q_OS_LINUX) #define TEST_CHUNK(Name) #else inline diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/metainfo.yaml new/kactivities-stats-5.30.0/metainfo.yaml --- old/kactivities-stats-5.29.0/metainfo.yaml 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/metainfo.yaml 2017-01-08 16:15:02.000000000 +0100 @@ -5,6 +5,8 @@ platforms: - name: Linux note: Needs QtDBus, QtSql, KActivities, boost + - name: FreeBSD + note: Needs QtDBus, QtSql, KActivities, boost portingAid: false deprecated: false release: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/src/resultmodel.cpp new/kactivities-stats-5.30.0/src/resultmodel.cpp --- old/kactivities-stats-5.29.0/src/resultmodel.cpp 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/src/resultmodel.cpp 2017-01-08 16:15:02.000000000 +0100 @@ -571,7 +571,9 @@ cache.removeAt(result); q->endRemoveRows(); - fetch(cache.size(), 1); + if (query.selection() != Terms::LinkedResources) { + fetch(cache.size(), 1); + } } inline void repositionResult(const Cache::FindCacheResult &result, @@ -893,12 +895,13 @@ QHash<int, QByteArray> ResultModel::roleNames() const { return { - { ResourceRole , "resource" }, - { TitleRole , "title" }, - { ScoreRole , "score" }, - { FirstUpdateRole , "created" }, - { LastUpdateRole , "modified" }, - { LinkStatusRole , "linkStatus" } + { ResourceRole , "resource" }, + { TitleRole , "title" }, + { ScoreRole , "score" }, + { FirstUpdateRole , "created" }, + { LastUpdateRole , "modified" }, + { LinkStatusRole , "linkStatus" }, + { LinkedActivitiesRole , "linkedActivities" } }; } @@ -918,12 +921,13 @@ QString::number(result.linkStatus()) + " - " + QString::number(result.score()) ) - : role == ResourceRole ? result.resource() - : role == TitleRole ? result.title() - : role == ScoreRole ? result.score() - : role == FirstUpdateRole ? result.firstUpdate() - : role == LastUpdateRole ? result.lastUpdate() - : role == LinkStatusRole ? result.linkStatus() + : role == ResourceRole ? result.resource() + : role == TitleRole ? result.title() + : role == ScoreRole ? result.score() + : role == FirstUpdateRole ? result.firstUpdate() + : role == LastUpdateRole ? result.lastUpdate() + : role == LinkStatusRole ? result.linkStatus() + : role == LinkedActivitiesRole ? result.linkedActivities() : QVariant() ; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/src/resultmodel.h new/kactivities-stats-5.30.0/src/resultmodel.h --- old/kactivities-stats-5.29.0/src/resultmodel.h 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/src/resultmodel.h 2017-01-08 16:15:02.000000000 +0100 @@ -52,12 +52,13 @@ virtual ~ResultModel(); enum Roles { - ResourceRole = Qt::UserRole, - TitleRole = Qt::UserRole + 1, - ScoreRole = Qt::UserRole + 2, - FirstUpdateRole = Qt::UserRole + 3, - LastUpdateRole = Qt::UserRole + 4, - LinkStatusRole = Qt::UserRole + 5 + ResourceRole = Qt::UserRole, + TitleRole = Qt::UserRole + 1, + ScoreRole = Qt::UserRole + 2, + FirstUpdateRole = Qt::UserRole + 3, + LastUpdateRole = Qt::UserRole + 4, + LinkStatusRole = Qt::UserRole + 5, + LinkedActivitiesRole = Qt::UserRole + 6 }; int rowCount(const QModelIndex &parent diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/src/resultset.cpp new/kactivities-stats-5.30.0/src/resultset.cpp --- old/kactivities-stats-5.29.0/src/resultset.cpp 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/src/resultset.cpp 2017-01-08 16:15:02.000000000 +0100 @@ -29,6 +29,7 @@ // Local #include <common/database/Database.h> #include <utils/debug_and_return.h> +#include <utils/qsqlquery_iterator.h> // Boost and STL #include <boost/range/algorithm/transform.hpp> @@ -55,6 +56,7 @@ uint lastUpdate; uint firstUpdate; ResultSet::Result::LinkStatus linkStatus; + QStringList linkedActivities; }; @@ -104,9 +106,11 @@ CREATE_GETTER_AND_SETTER(uint, lastUpdate, setLastUpdate) CREATE_GETTER_AND_SETTER(uint, firstUpdate, setFirstUpdate) CREATE_GETTER_AND_SETTER(ResultSet::Result::LinkStatus, linkStatus, setLinkStatus) +CREATE_GETTER_AND_SETTER(QStringList, linkedActivities, setLinkedActivities) #undef CREATE_GETTER_AND_SETTER + class ResultSetPrivate { public: Common::Database::Ptr database; @@ -262,36 +266,37 @@ // since the cache was last updated, although, for this query, // scores are not that important. static const QString query = - QStringLiteral("\n" - "SELECT \n" - " rl.targettedResource as resource \n" - " , SUM(rsc.cachedScore) as score \n" - " , MIN(rsc.firstUpdate) as firstUpdate \n" - " , MAX(rsc.lastUpdate) as lastUpdate \n" - " , rl.usedActivity as activity \n" - " , rl.initiatingAgent as agent \n" - " , COALESCE(ri.title, rl.targettedResource) as title \n" - " , ri.mimetype as mimetype \n" - " , 2 as linkStatus \n" - - "FROM \n" - " ResourceLink rl \n" - "LEFT JOIN \n" - " ResourceScoreCache rsc \n" - " ON rl.targettedResource = rsc.targettedResource \n" - " AND rl.usedActivity = rsc.usedActivity \n" - " AND rl.initiatingAgent = rsc.initiatingAgent \n" - "LEFT JOIN \n" - " ResourceInfo ri \n" - " ON rl.targettedResource = ri.targettedResource \n" - - "WHERE \n" - " ($agentsFilter) \n" - " AND ($activitiesFilter) \n" - " AND ($urlFilter)\n" - " AND ($mimetypeFilter)\n" + 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 + , ri.mimetype as mimetype + , 2 as linkStatus + + FROM + ResourceLink rl + LEFT JOIN + ResourceScoreCache rsc + ON rl.targettedResource = rsc.targettedResource + AND rl.usedActivity = rsc.usedActivity + AND rl.initiatingAgent = rsc.initiatingAgent + LEFT JOIN + ResourceInfo ri + ON rl.targettedResource = ri.targettedResource + + WHERE + ($agentsFilter) + AND ($activitiesFilter) + AND ($urlFilter) + AND ($mimetypeFilter) - "GROUP BY resource, title \n") + GROUP BY resource, title + )sql" ; return query; @@ -302,31 +307,32 @@ // TODO: We need to correct the scores based on the time that passed // since the cache was last updated static const QString query = - QStringLiteral("\n" - "SELECT \n" - " rsc.targettedResource as resource \n" - " , SUM(rsc.cachedScore) as score \n" - " , MIN(rsc.firstUpdate) as firstUpdate \n" - " , MAX(rsc.lastUpdate) as lastUpdate \n" - " , rsc.usedActivity as activity \n" - " , rsc.initiatingAgent as agent \n" - " , COALESCE(ri.title, rsc.targettedResource) as title \n" - " , ri.mimetype as mimetype \n" - " , 1 as linkStatus \n" // Note: this is replaced by allResourcesQuery - - "FROM \n" - " ResourceScoreCache rsc \n" - "LEFT JOIN \n" - " ResourceInfo ri \n" - " ON rsc.targettedResource = ri.targettedResource \n" - - "WHERE \n" - " ($agentsFilter) \n" - " AND ($activitiesFilter) \n" - " AND ($urlFilter)\n" - " AND ($mimetypeFilter)\n" + 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 + , ri.mimetype as mimetype + , 1 as linkStatus -- Note: this is replaced by allResourcesQuery + + FROM + ResourceScoreCache rsc + LEFT JOIN + ResourceInfo ri + ON rsc.targettedResource = ri.targettedResource + + WHERE + ($agentsFilter) + AND ($activitiesFilter) + AND ($urlFilter) + AND ($mimetypeFilter) - "GROUP BY resource, title \n") + GROUP BY resource, title + )sql" ; return query; @@ -375,9 +381,29 @@ result.setLastUpdate(query.value(QStringLiteral("lastUpdate")).toInt()); result.setFirstUpdate(query.value(QStringLiteral("firstUpdate")).toInt()); + result.setLinkStatus( (ResultSet::Result::LinkStatus)query.value(QStringLiteral("linkStatus")).toInt()); + auto query = database->createQuery(); + + query.prepare(R"sql( + SELECT usedActivity + FROM ResourceLink + WHERE targettedResource = :resource + )sql"); + + query.bindValue(":resource", result.resource()); + query.exec(); + + QStringList linkedActivities; + for (const auto &item: query) { + linkedActivities << item[0].toString(); + } + + result.setLinkedActivities(linkedActivities); + qDebug() << result.resource() << "linked to activities" << result.linkedActivities(); + return result; } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/src/resultset.h new/kactivities-stats-5.30.0/src/resultset.h --- old/kactivities-stats-5.29.0/src/resultset.h 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/src/resultset.h 2017-01-08 16:15:02.000000000 +0100 @@ -72,13 +72,14 @@ Linked = 2 }; - QString resource() const; ///< URL of the resource - QString title() const; ///< Title of the resource, or URL if title is not known - QString mimetype() const; ///< Mimetype of the resource, or URL if title is not known - double score() const; ///< The score calculated based on the usage statistics - uint lastUpdate() const; ///< Timestamp of the last update - uint firstUpdate() const; ///< Timestamp of the first update - LinkStatus linkStatus() const; ///< Differentiates between linked and non-linked resources in mixed queries + QString resource() const; ///< URL of the resource + QString title() const; ///< Title of the resource, or URL if title is not known + QString mimetype() const; ///< Mimetype of the resource, or URL if title is not known + double score() const; ///< The score calculated based on the usage statistics + uint lastUpdate() const; ///< Timestamp of the last update + uint firstUpdate() const; ///< Timestamp of the first update + LinkStatus linkStatus() const; ///< Differentiates between linked and non-linked resources in mixed queries + QStringList linkedActivities() const; ///< Contains the activities this resource is linked to for the queries that care about resource linking void setResource(QString resource); void setTitle(QString title); @@ -87,6 +88,7 @@ void setLastUpdate(uint lastUpdate); void setFirstUpdate(uint firstUpdate); void setLinkStatus(LinkStatus linkedStatus); + void setLinkedActivities(QStringList activities); private: ResultSet_ResultPrivate * d; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/src/resultwatcher.cpp new/kactivities-stats-5.30.0/src/resultwatcher.cpp --- old/kactivities-stats-5.29.0/src/resultwatcher.cpp 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/src/resultwatcher.cpp 2017-01-08 16:15:02.000000000 +0100 @@ -376,6 +376,7 @@ for (const auto &activity : activities) { for (const auto &agent : agents) { + qDebug() << "Unlink " << agent << resource << activity; d->linking->UnlinkResourceFromActivity(agent, resource.toString(), activity); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivities-stats-5.29.0/tests/model/window.cpp new/kactivities-stats-5.30.0/tests/model/window.cpp --- old/kactivities-stats-5.29.0/tests/model/window.cpp 2016-12-03 11:08:09.000000000 +0100 +++ new/kactivities-stats-5.30.0/tests/model/window.cpp 2017-01-08 16:15:02.000000000 +0100 @@ -141,6 +141,31 @@ ui->comboActivity->addItem(activity); } + foreach (const auto &arg, QCoreApplication::arguments()) { + if (arg == "--used") { + ui->radioSelectUsedResources->setChecked(true); + + } else if (arg == "--linked") { + ui->radioSelectLinkedResources->setChecked(true); + + } else if (arg == "--combined") { + ui->radioSelectAllResources->setChecked(true); + + } else if (arg.startsWith("--activity=")) { + ui->comboActivity->setCurrentText(arg.split("=")[1]); + + } else if (arg.startsWith("--agent=")) { + ui->textAgent->setText(arg.split("=")[1]); + + } else if (arg.startsWith("--mimetype=")) { + ui->textMimetype->setText(arg.split("=")[1]); + + } else if (arg == "--select") { + updateResults(); + + } + } + } Window::~Window() @@ -184,7 +209,7 @@ Type(ui->textMimetype->text().split(',')) | // Which activities? - Activity(ui->comboActivity->currentText()) | + Activity(ui->comboActivity->currentText().split(',')) | // And how many items Limit(ui->spinLimitCount->value()) @@ -203,8 +228,8 @@ model.reset(new ResultModel(query)); - modelTest.reset(); - modelTest.reset(new ModelTest(new ResultModel(query))); + // modelTest.reset(); + // modelTest.reset(new ModelTest(new ResultModel(query))); ui->viewResults->setModel(model.get());
