[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [discover/Plasma/5.14] /: Make sure we filter properly the missing backends
From:       Aleix Pol <null () kde ! org>
Date:       2018-09-28 14:32:39
Message-ID: E1g5tot-0006ip-6T () code ! kde ! org
[Download RAW message or body]

Git commit c4b66645d7afee09cee084a1230e2b058c375e7a by Aleix Pol.
Committed on 28/09/2018 at 14:30.
Pushed by apol into branch 'Plasma/5.14'.

Make sure we filter properly the missing backends

Do it from the model rather than the delegate

M  +1    -0    discover/qml/SourcesPage.qml
M  +1    -1    libdiscover/resources/AbstractResourcesBackend.cpp
M  +1    -0    libdiscover/resources/AbstractResourcesBackend.h
M  +14   -0    libdiscover/resources/ResourcesProxyModel.cpp
M  +4    -0    libdiscover/resources/ResourcesProxyModel.h

https://commits.kde.org/discover/c4b66645d7afee09cee084a1230e2b058c375e7a

diff --git a/discover/qml/SourcesPage.qml b/discover/qml/SourcesPage.qml
index 881184cf..2a3b709e 100644
--- a/discover/qml/SourcesPage.qml
+++ b/discover/qml/SourcesPage.qml
@@ -242,6 +242,7 @@ DiscoverPage {
                 id: back
                 model: ResourcesProxyModel {
                     extending: "org.kde.discover.desktop"
+                    filterMinimumState: false
                 }
                 delegate: Kirigami.BasicListItem {
                     supportsMouseEvents: false
diff --git a/libdiscover/resources/AbstractResourcesBackend.cpp \
b/libdiscover/resources/AbstractResourcesBackend.cpp index 500e8b95..a5add762 100644
--- a/libdiscover/resources/AbstractResourcesBackend.cpp
+++ b/libdiscover/resources/AbstractResourcesBackend.cpp
@@ -109,7 +109,7 @@ bool \
AbstractResourcesBackend::Filters::shouldFilter(AbstractResource* res) cons  return \
false;  }
 
-    if(res->state() < state)
+    if(filterMinimumState ? res->state() < state : res->state() == state)
         return false;
 
     if(!mimetype.isEmpty() && !res->mimetypes().contains(mimetype)) {
diff --git a/libdiscover/resources/AbstractResourcesBackend.h \
b/libdiscover/resources/AbstractResourcesBackend.h index 48ddffd1..a2c2cea8 100644
--- a/libdiscover/resources/AbstractResourcesBackend.h
+++ b/libdiscover/resources/AbstractResourcesBackend.h
@@ -100,6 +100,7 @@ class DISCOVERCOMMON_EXPORT AbstractResourcesBackend : public \
QObject  QUrl resourceUrl;
             QString origin;
             bool allBackends = false;
+            bool filterMinimumState = true;
 
             bool isEmpty() const { return !category && state == \
AbstractResource::Broken && mimetype.isEmpty() && search.isEmpty() && \
extends.isEmpty() && resourceUrl.isEmpty() && origin.isEmpty(); }  
diff --git a/libdiscover/resources/ResourcesProxyModel.cpp \
b/libdiscover/resources/ResourcesProxyModel.cpp index a1d2d2db..6d760933 100644
--- a/libdiscover/resources/ResourcesProxyModel.cpp
+++ b/libdiscover/resources/ResourcesProxyModel.cpp
@@ -359,6 +359,20 @@ void ResourcesProxyModel::setExtends(const QString& extends)
     }
 }
 
+void ResourcesProxyModel::setFilterMinimumState(bool filterMinimumState)
+{
+    if (filterMinimumState != m_filters.filterMinimumState) {
+        m_filters.filterMinimumState = filterMinimumState;
+        invalidateFilter();
+        Q_EMIT filterMinimumStateChanged(m_filters.filterMinimumState);
+    }
+}
+
+bool ResourcesProxyModel::filterMinimumState() const
+{
+    return m_filters.filterMinimumState;
+}
+
 QUrl ResourcesProxyModel::resourcesUrl() const
 {
     return m_filters.resourceUrl;
diff --git a/libdiscover/resources/ResourcesProxyModel.h \
b/libdiscover/resources/ResourcesProxyModel.h index 9a6872f2..758e990f 100644
--- a/libdiscover/resources/ResourcesProxyModel.h
+++ b/libdiscover/resources/ResourcesProxyModel.h
@@ -45,6 +45,7 @@ class DISCOVERCOMMON_EXPORT ResourcesProxyModel : public \
                QAbstractListModel, pub
     Q_PROPERTY(Category* filteredCategory READ filteredCategory WRITE \
                setFiltersFromCategory NOTIFY categoryChanged)
     Q_PROPERTY(QString originFilter READ originFilter WRITE setOriginFilter)
     Q_PROPERTY(AbstractResource::State stateFilter READ stateFilter WRITE \
setStateFilter NOTIFY stateFilterChanged) +    Q_PROPERTY(bool filterMinimumState \
                READ filterMinimumState WRITE setFilterMinimumState NOTIFY \
                filterMinimumStateChanged)
     Q_PROPERTY(QString mimeTypeFilter READ mimeTypeFilter WRITE setMimeTypeFilter)
     Q_PROPERTY(QString search READ lastSearch WRITE setSearch NOTIFY searchChanged)
     Q_PROPERTY(QUrl resourcesUrl READ resourcesUrl WRITE setResourcesUrl NOTIFY \
resourcesUrlChanged) @@ -95,6 +96,8 @@ public:
     Roles sortRole() const { return m_sortRole; }
     void setSortOrder(Qt::SortOrder sortOrder);
     Qt::SortOrder sortOrder() const { return m_sortOrder; }
+    void setFilterMinimumState(bool filterMinimumState);
+    bool filterMinimumState() const;
 
     Category* filteredCategory() const;
     
@@ -164,6 +167,7 @@ Q_SIGNALS:
     void subcategoriesChanged(const QVariantList &subcategories);
     void resourcesUrlChanged(const QUrl &url);
     void countChanged();
+    void filterMinimumStateChanged(bool filterMinimumState);
 };
 
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic