diff --git a/libdiscover/backends/FlatpakBackend/FlatpakBackend.h b/libdiscover/backends/FlatpakBackend/FlatpakBackend.h --- a/libdiscover/backends/FlatpakBackend/FlatpakBackend.h +++ b/libdiscover/backends/FlatpakBackend/FlatpakBackend.h @@ -50,7 +50,7 @@ ResultsStream * search(const AbstractResourcesBackend::Filters & search) override; ResultsStream * findResourceByPackageName(const QUrl &search) override; QList resources() const { return m_resources.values(); } - bool isValid() const override { return true; } // No external file dependencies that could cause runtime errors + bool isValid() const override; QList messageActions() const override { return m_messageActions; } FlatpakInstallation *flatpakInstallationForAppScope(FlatpakResource::Scope appScope) const; @@ -98,7 +98,7 @@ QHash m_resources; StandardBackendUpdater *m_updater; - FlatpakSourcesBackend *m_sources; + FlatpakSourcesBackend *m_sources = nullptr; OdrsReviewsBackend *m_reviews; bool m_fetching; QList m_messageActions; diff --git a/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp b/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp --- a/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp +++ b/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp @@ -76,6 +76,9 @@ reloadPackageList(); checkForUpdates(); + + m_sources = new FlatpakSourcesBackend(m_flatpakInstallationSystem, m_flatpakInstallationUser, this); + SourcesModel::global()->addSourcesBackend(m_sources); } QAction* updateAction = new QAction(this); @@ -86,9 +89,6 @@ m_messageActions = QList() << updateAction; - m_sources = new FlatpakSourcesBackend(m_flatpakInstallationSystem, m_flatpakInstallationUser, this); - SourcesModel::global()->addSourcesBackend(m_sources); - connect(m_reviews, &OdrsReviewsBackend::ratingsReady, this, &FlatpakBackend::announceRatingsReady); } @@ -99,6 +99,11 @@ g_object_unref(m_cancellable); } +bool FlatpakBackend::isValid() const +{ + return m_sources && m_flatpakInstallationUser && m_flatpakInstallationSystem; +} + void FlatpakBackend::announceRatingsReady() { emitRatingsReady();