[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-i18n-doc
Subject: [discover/Plasma/5.10] libdiscover: Centralize reload actions into a generic one that will call the
From: Aleix Pol <null () kde ! org>
Date: 2017-06-08 13:32:48
Message-ID: E1dIxYO-0007L5-UC () code ! kde ! org
[Download RAW message or body]
Git commit a38129b2c41ac42f0bca4c729d823dcd332869fb by Aleix Pol.
Committed on 08/06/2017 at 13:30.
Pushed by apol into branch 'Plasma/5.10'.
Centralize reload actions into a generic one that will call the backends
Both packagekit and flatpak back-ends had an action for refreshing the db
that would collide on Ctrl+R. Now we have 1 action that will call all the
backends to refresh.
Translators: Note this moves around the i18n() call
CCMAIL: kde-i18n-doc@kde.org
M +1 -7 libdiscover/backends/DummyBackend/DummyBackend.cpp
M +1 -1 libdiscover/backends/DummyBackend/DummyBackend.h
M +0 -8 libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
M +2 -4 libdiscover/backends/FlatpakBackend/FlatpakBackend.h
M +2 -0 libdiscover/backends/KNSBackend/KNSBackend.h
M +5 -10 libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
M +2 -1 libdiscover/backends/PackageKitBackend/PackageKitBackend.h
M +5 -0 libdiscover/resources/AbstractResourcesBackend.h
M +20 -1 libdiscover/resources/ResourcesModel.cpp
M +2 -2 libdiscover/resources/ResourcesModel.h
https://commits.kde.org/discover/a38129b2c41ac42f0bca4c729d823dcd332869fb
diff --git a/libdiscover/backends/DummyBackend/DummyBackend.cpp \
b/libdiscover/backends/DummyBackend/DummyBackend.cpp index 214354c2..950cfc34 100644
--- a/libdiscover/backends/DummyBackend/DummyBackend.cpp
+++ b/libdiscover/backends/DummyBackend/DummyBackend.cpp
@@ -55,12 +55,6 @@ DummyBackend::DummyBackend(QObject* parent)
if (!m_fetching)
m_reviews->initialize();
- QAction* updateAction = new QAction(this);
- updateAction->setIcon(QIcon::fromTheme(QStringLiteral("system-software-update")));
- updateAction->setText(i18nc("@action Checks the Internet for updates", "Check \
for Updates"));
- updateAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));
- connect(updateAction, &QAction::triggered, this, \
&DummyBackend::checkForUpdates);
-
QAction* randomAction = new QAction(this);
randomAction->setIcon(QIcon::fromTheme(QStringLiteral("kalarm")));
randomAction->setText(QStringLiteral("test bla bla"));
@@ -78,7 +72,7 @@ DummyBackend::DummyBackend(QObject* parent)
// qDebug() << "important action triggered";
// });
- m_messageActions = QList<QAction*>() << updateAction << randomAction /*<< \
importantAction*/; + m_messageActions = QList<QAction*>() << randomAction /*<< \
importantAction*/;
SourcesModel::global()->addSourcesBackend(new DummySourcesBackend(this));
}
diff --git a/libdiscover/backends/DummyBackend/DummyBackend.h \
b/libdiscover/backends/DummyBackend/DummyBackend.h index 2f21f602..54a86146 100644
--- a/libdiscover/backends/DummyBackend/DummyBackend.h
+++ b/libdiscover/backends/DummyBackend/DummyBackend.h
@@ -49,9 +49,9 @@ public:
void removeApplication(AbstractResource* app) override;
bool isFetching() const override { return m_fetching; }
AbstractResource * resourceForFile(const QUrl & ) override;
+ void checkForUpdates() override;
public Q_SLOTS:
- void checkForUpdates();
void toggleFetching();
private:
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp \
b/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp index 76a5247b..e2d4b7b5 \
100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
+++ b/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
@@ -82,14 +82,6 @@ FlatpakBackend::FlatpakBackend(QObject* parent)
SourcesModel::global()->addSourcesBackend(m_sources);
}
- QAction* updateAction = new QAction(this);
- updateAction->setIcon(QIcon::fromTheme(QStringLiteral("system-software-update")));
- updateAction->setText(i18nc("@action Checks the Internet for updates", "Check \
for Updates"));
- updateAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));
- connect(updateAction, &QAction::triggered, this, \
&FlatpakBackend::checkForUpdates);
-
- m_messageActions = { updateAction };
-
connect(m_reviews.data(), &OdrsReviewsBackend::ratingsReady, this, \
&FlatpakBackend::announceRatingsReady); }
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakBackend.h \
b/libdiscover/backends/FlatpakBackend/FlatpakBackend.h index 0bcce81e..b2e32a43 \
100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakBackend.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakBackend.h
@@ -52,16 +52,15 @@ public:
ResultsStream * findResourceByPackageName(const QUrl &search) override;
QList<FlatpakResource*> resources() const { return m_resources.values(); }
bool isValid() const override;
- QList<QAction*> messageActions() const override { return m_messageActions; }
+ QList<QAction*> messageActions() const override { return {}; }
void installApplication(AbstractResource* app) override;
void installApplication(AbstractResource* app, const AddonList& addons) \
override; void removeApplication(AbstractResource* app) override;
bool isFetching() const override { return m_fetching; }
AbstractResource * resourceForFile(const QUrl & ) override;
+ void checkForUpdates() override;
-public Q_SLOTS:
- void checkForUpdates();
private Q_SLOTS:
void onFetchMetadataFinished(FlatpakInstallation *flatpakInstallation, \
FlatpakResource *resource, const QByteArray &metadata);
void onFetchSizeFinished(FlatpakResource *resource, guint64 downloadSize, \
guint64 installedSize); @@ -102,7 +101,6 @@ private:
FlatpakSourcesBackend *m_sources = nullptr;
QSharedPointer<OdrsReviewsBackend> m_reviews;
bool m_fetching;
- QList<QAction*> m_messageActions;
GCancellable *m_cancellable;
QVector<FlatpakInstallation *> m_installations;
diff --git a/libdiscover/backends/KNSBackend/KNSBackend.h \
b/libdiscover/backends/KNSBackend/KNSBackend.h index cd4b39bb..610c3e10 100644
--- a/libdiscover/backends/KNSBackend/KNSBackend.h
+++ b/libdiscover/backends/KNSBackend/KNSBackend.h
@@ -62,6 +62,8 @@ public:
KNSCore::Engine* engine() const { return m_engine; }
+ void checkForUpdates() override {}
+
Q_SIGNALS:
void receivedResources(const QVector<AbstractResource*> &resources);
void searchFinished();
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp \
b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp index \
3c4442dd..9ad1e3d5 100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
@@ -86,16 +86,6 @@ PackageKitBackend::PackageKitBackend(QObject* parent)
m_delayedDetailsFetch.setInterval(0);
connect(&m_delayedDetailsFetch, &QTimer::timeout, this, \
&PackageKitBackend::performDetailsFetch);
- QAction* updateAction = new QAction(this);
- updateAction->setIcon(QIcon::fromTheme(QStringLiteral("system-software-update")));
- updateAction->setText(i18nc("@action Checks the Internet for updates", "Check \
for Updates"));
- updateAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));
- connect(this, &PackageKitBackend::fetchingChanged, updateAction, [updateAction, \
this](){
- updateAction->setEnabled(!isFetching());
- });
- connect(updateAction, &QAction::triggered, this, \
&PackageKitBackend::refreshDatabase);
- m_messageActions += updateAction;
-
// Kubuntu-based
auto service = locateService(QStringLiteral("software-properties-kde.desktop"));
if (!service.isEmpty())
@@ -377,6 +367,11 @@ T PackageKitBackend::resourcesByPackageNames(const QStringList \
&pkgnames) const return ret;
}
+void PackageKitBackend::checkForUpdates()
+{
+ refreshDatabase();
+}
+
void PackageKitBackend::refreshDatabase()
{
if (!m_refresher) {
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h \
b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h index aa10f3de..123f5a23 \
100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
@@ -62,13 +62,13 @@ class DISCOVERCOMMON_EXPORT PackageKitBackend : public \
AbstractResourcesBackend
bool isPackageNameUpgradeable(const PackageKitResource* res) const;
QString upgradeablePackageId(const PackageKitResource* res) const;
QVector<AppPackageKitResource*> extendedBy(const QString& id) const;
- void fetchUpdates();
void clearPackages(const QStringList &packageNames);
void resolvePackages(const QStringList &packageNames);
void fetchDetails(const QString& pkgid);
AbstractResource * resourceForFile(const QUrl & ) override;
+ void checkForUpdates() override;
public Q_SLOTS:
void reloadPackageList();
@@ -88,6 +88,7 @@ class DISCOVERCOMMON_EXPORT PackageKitBackend : public \
AbstractResourcesBackend private:
template <typename T>
T resourcesByPackageNames(const QStringList& names) const;
+ void fetchUpdates();
void checkDaemonRunning();
void acquireFetching(bool f);
diff --git a/libdiscover/resources/AbstractResourcesBackend.h \
b/libdiscover/resources/AbstractResourcesBackend.h index 42151c06..467fad2d 100644
--- a/libdiscover/resources/AbstractResourcesBackend.h
+++ b/libdiscover/resources/AbstractResourcesBackend.h
@@ -199,6 +199,11 @@ class DISCOVERCOMMON_EXPORT AbstractResourcesBackend : public \
QObject
*/
virtual void removeApplication(AbstractResource *app) = 0;
+ /**
+ * Notifies the backend that the user wants the information to be up to date
+ */
+ virtual void checkForUpdates() = 0;
+
Q_SIGNALS:
/**
* Notify of a change in the backend
diff --git a/libdiscover/resources/ResourcesModel.cpp \
b/libdiscover/resources/ResourcesModel.cpp index 691f3fcd..74a56c52 100644
--- a/libdiscover/resources/ResourcesModel.cpp
+++ b/libdiscover/resources/ResourcesModel.cpp
@@ -35,6 +35,7 @@
#include <QThread>
#include <QAction>
#include <QMetaProperty>
+#include <KLocalizedString>
ResourcesModel *ResourcesModel::s_self = nullptr;
@@ -61,6 +62,18 @@ void ResourcesModel::init(bool load)
if(load)
QMetaObject::invokeMethod(this, "registerAllBackends", \
Qt::QueuedConnection); +
+
+ QAction* updateAction = new QAction(this);
+ updateAction->setIcon(QIcon::fromTheme(QStringLiteral("system-software-update")));
+ updateAction->setText(i18nc("@action Checks the Internet for updates", "Check \
for Updates")); + updateAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));
+ connect(this, &ResourcesModel::fetchingChanged, updateAction, [updateAction, \
this](){ + updateAction->setEnabled(!isFetching());
+ });
+ connect(updateAction, &QAction::triggered, this, \
&ResourcesModel::checkForUpdates); +
+ m_ownActions += updateAction;
}
ResourcesModel::ResourcesModel(const QString& backendName, QObject* parent)
@@ -223,7 +236,7 @@ bool ResourcesModel::isFetching() const
QList<QAction*> ResourcesModel::messageActions() const
{
- QList<QAction*> ret;
+ QList<QAction*> ret = m_ownActions;
foreach(AbstractResourcesBackend* b, m_backends) {
ret += b->messageActions();
}
@@ -321,3 +334,9 @@ AbstractResource* ResourcesModel::resourceForFile(const QUrl& \
file) }
return ret;
}
+
+void ResourcesModel::checkForUpdates()
+{
+ for(auto backend: qAsConst(m_backends))
+ backend->checkForUpdates();
+}
diff --git a/libdiscover/resources/ResourcesModel.h \
b/libdiscover/resources/ResourcesModel.h index b5cf10b3..9dfcda10 100644
--- a/libdiscover/resources/ResourcesModel.h
+++ b/libdiscover/resources/ResourcesModel.h
@@ -74,6 +74,7 @@ class DISCOVERCOMMON_EXPORT ResourcesModel : public QObject
AggregatedResultsStream* findResourceByPackageName(const QUrl& search);
AggregatedResultsStream* search(const AbstractResourcesBackend::Filters \
&search); AbstractResource* resourceForFile(const QUrl &/*url*/);
+ void checkForUpdates();
public Q_SLOTS:
void installApplication(AbstractResource* app, const AddonList& addons);
@@ -96,8 +97,6 @@ class DISCOVERCOMMON_EXPORT ResourcesModel : public QObject
void registerAllBackends();
private:
- QVector<int> propertiesToRoles(const QVector<QByteArray>& propertyNames) \
const;
-
///@p initialize tells if all backends load will be triggered on \
construction
explicit ResourcesModel(QObject* parent=nullptr, bool load = true);
void init(bool load);
@@ -107,6 +106,7 @@ class DISCOVERCOMMON_EXPORT ResourcesModel : public QObject
QVector< AbstractResourcesBackend* > m_backends;
int m_initializingBackends;
KActionCollection* m_actionCollection;
+ QList<QAction*> m_ownActions;
static ResourcesModel* s_self;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic