Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2022-03-15 14:12:03 +0300
committerHannah von Reth <hannah.vonreth@owncloud.com>2022-03-15 14:12:03 +0300
commitfd95b7a4de7fd3e0d091d1a72bbfe1eee255205a (patch)
treef47d3616cfec439db5ee19d7ad8336a24c19f713 /src/gui/models
parent0dd2065bd8fff67f30521f67c37af1fc2f1fb861 (diff)
parentb35eec30325eb9933339e02e66640ca2082ade35 (diff)
Merge remote-tracking branch 'origin/2.10'
Diffstat (limited to 'src/gui/models')
-rw-r--r--src/gui/models/models.cpp19
-rw-r--r--src/gui/models/models.h20
2 files changed, 32 insertions, 7 deletions
diff --git a/src/gui/models/models.cpp b/src/gui/models/models.cpp
index dc0b41987..0199d5e9b 100644
--- a/src/gui/models/models.cpp
+++ b/src/gui/models/models.cpp
@@ -22,6 +22,17 @@
#include <functional>
+OCC::SignalledQSortFilterProxyModel::SignalledQSortFilterProxyModel(QObject *parent)
+ : QSortFilterProxyModel(parent)
+{
+}
+
+void OCC::SignalledQSortFilterProxyModel::setFilterFixedStringSignalled(const QString &pattern)
+{
+ setFilterFixedString(pattern);
+ emit filterChanged();
+}
+
QString OCC::Models::formatSelection(const QModelIndexList &items, int dataRole)
{
if (items.isEmpty()) {
@@ -77,9 +88,9 @@ QString OCC::Models::formatSelection(const QModelIndexList &items, int dataRole)
return out;
}
-std::function<void()> OCC::Models::addFilterMenuItems(QMenu *menu, const QStringList &candidates, QSortFilterProxyModel *model, int column, const QString &columnName, int role)
+std::function<void()> OCC::Models::addFilterMenuItems(QMenu *menu, const QStringList &candidates, SignalledQSortFilterProxyModel *model, int column, const QString &columnName, int role)
{
- menu->addAction(qApp->translate("OCC::Models", "%1 Filter:").arg(columnName))->setEnabled(false);
+ menu->addAction(QApplication::translate("OCC::Models", "%1 Filter:").arg(columnName))->setEnabled(false);
auto filterGroup = new QActionGroup(menu);
filterGroup->setExclusive(true);
@@ -89,7 +100,7 @@ std::function<void()> OCC::Models::addFilterMenuItems(QMenu *menu, const QString
auto action = menu->addAction(s, menu, [=]() {
model->setFilterRole(role);
model->setFilterKeyColumn(column);
- model->setFilterFixedString(filter);
+ model->setFilterFixedStringSignalled(filter);
});
action->setCheckable(true);
if (currentFilter == filter) {
@@ -100,7 +111,7 @@ std::function<void()> OCC::Models::addFilterMenuItems(QMenu *menu, const QString
};
- auto noFilter = addAction(QApplication::translate("OCC::Models", "No filter"), QString());
+ auto noFilter = addAction(QApplication::translate("OCC::Models", "All"), QString());
for (const auto &c : candidates) {
addAction(c, c);
diff --git a/src/gui/models/models.h b/src/gui/models/models.h
index 9b302171f..eb0e7d487 100644
--- a/src/gui/models/models.h
+++ b/src/gui/models/models.h
@@ -14,6 +14,7 @@
#pragma once
#include <QModelIndexList>
+#include <QSortFilterProxyModel>
#include <QString>
#include <QtGlobal>
@@ -22,6 +23,19 @@ class QMenu;
namespace OCC {
+class SignalledQSortFilterProxyModel : public QSortFilterProxyModel
+{
+ Q_OBJECT
+
+public:
+ SignalledQSortFilterProxyModel(QObject *parent = nullptr);
+
+ void setFilterFixedStringSignalled(const QString &pattern);
+
+signals:
+ void filterChanged();
+};
+
namespace Models {
enum DataRoles {
UnderlyingDataRole = Qt::UserRole + 100,
@@ -33,7 +47,7 @@ namespace Models {
*/
QString formatSelection(const QModelIndexList &items, int dataRole = Qt::DisplayRole);
- std::function<void()> addFilterMenuItems(QMenu *menu, const QStringList &candidates, QSortFilterProxyModel *model, int column, const QString &columnName, int role);
+ std::function<void()> addFilterMenuItems(QMenu *menu, const QStringList &candidates, SignalledQSortFilterProxyModel *model, int column, const QString &columnName, int role);
/**
* Returns a vector with indices
@@ -55,5 +69,5 @@ namespace Models {
{
return range<T>(0, end);
}
-};
-}
+} // OCC::Models namespace
+} // OCC namespace