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>2021-09-30 16:48:34 +0300
committerHannah von Reth <hannah.vonreth@owncloud.com>2021-09-30 16:48:34 +0300
commitf29c794c5b4bca37190911cb2acd60b737498805 (patch)
treeeeef045eec99cc34a600736bb60357c9b8ec0db4 /src/gui/models
parentd987a7e7cb19367d708e21f9ef881afecffe35a3 (diff)
parent47577c51f70792244e52d8813d9da2447bd01fea (diff)
Merge remote-tracking branch 'origin/2.9'
Diffstat (limited to 'src/gui/models')
-rw-r--r--src/gui/models/expandingheaderview.cpp8
-rw-r--r--src/gui/models/expandingheaderview.h1
-rw-r--r--src/gui/models/models.cpp23
-rw-r--r--src/gui/models/models.h4
-rw-r--r--src/gui/models/protocolitemmodel.cpp2
5 files changed, 25 insertions, 13 deletions
diff --git a/src/gui/models/expandingheaderview.cpp b/src/gui/models/expandingheaderview.cpp
index e1f945fc4..3457d3f63 100644
--- a/src/gui/models/expandingheaderview.cpp
+++ b/src/gui/models/expandingheaderview.cpp
@@ -16,9 +16,10 @@
#include "configfile.h"
-#include <QScopedValueRollback>
#include <QApplication>
#include <QDebug>
+#include <QMenu>
+#include <QScopedValueRollback>
using namespace OCC;
@@ -71,3 +72,8 @@ void ExpandingHeaderView::resizeColumns(bool reset)
}
resizeSection(_expandingColumn, availableWidth);
}
+
+void ExpandingHeaderView::addResetActionToMenu(QMenu *menu)
+{
+ menu->addAction(tr("Reset column sizes"), this, [this] { resizeColumns(true); });
+}
diff --git a/src/gui/models/expandingheaderview.h b/src/gui/models/expandingheaderview.h
index 9ed5c74cb..41029c6a8 100644
--- a/src/gui/models/expandingheaderview.h
+++ b/src/gui/models/expandingheaderview.h
@@ -27,6 +27,7 @@ public:
void setExpandingColumn(int newExpandingColumn);
void resizeColumns(bool reset = false);
+ void addResetActionToMenu(QMenu *menu);
protected:
void resizeEvent(QResizeEvent *event) override;
diff --git a/src/gui/models/models.cpp b/src/gui/models/models.cpp
index e549aaaf8..dc0b41987 100644
--- a/src/gui/models/models.cpp
+++ b/src/gui/models/models.cpp
@@ -77,16 +77,16 @@ QString OCC::Models::formatSelection(const QModelIndexList &items, int dataRole)
return out;
}
-QMenu *OCC::Models::displayFilterDialog(const QStringList &candidates, QSortFilterProxyModel *model, int column, int role, QWidget *parent)
+std::function<void()> OCC::Models::addFilterMenuItems(QMenu *menu, const QStringList &candidates, QSortFilterProxyModel *model, int column, const QString &columnName, int role)
{
- auto menu = new QMenu(parent);
- menu->setAttribute(Qt::WA_DeleteOnClose);
- menu->addAction(qApp->translate("OCC::Models", "Filter by"));
- menu->addSeparator();
+ menu->addAction(qApp->translate("OCC::Models", "%1 Filter:").arg(columnName))->setEnabled(false);
+
+ auto filterGroup = new QActionGroup(menu);
+ filterGroup->setExclusive(true);
const auto currentFilter = model->filterRegExp().pattern();
auto addAction = [=](const QString &s, const QString &filter) {
- auto action = menu->addAction(s, parent, [=]() {
+ auto action = menu->addAction(s, menu, [=]() {
model->setFilterRole(role);
model->setFilterKeyColumn(column);
model->setFilterFixedString(filter);
@@ -95,10 +95,12 @@ QMenu *OCC::Models::displayFilterDialog(const QStringList &candidates, QSortFilt
if (currentFilter == filter) {
action->setChecked(true);
}
+ filterGroup->addAction(action);
+ return action;
};
- addAction(qApp->translate("OCC::Models", "No filter"), QString());
+ auto noFilter = addAction(QApplication::translate("OCC::Models", "No filter"), QString());
for (const auto &c : candidates) {
addAction(c, c);
@@ -106,5 +108,10 @@ QMenu *OCC::Models::displayFilterDialog(const QStringList &candidates, QSortFilt
QTimer::singleShot(0, menu, [menu] {
menu->popup(QCursor::pos());
});
- return menu;
+
+ auto resetFunction = [noFilter]() {
+ noFilter->setChecked(true);
+ noFilter->trigger();
+ };
+ return resetFunction;
}
diff --git a/src/gui/models/models.h b/src/gui/models/models.h
index b96519fe2..9b302171f 100644
--- a/src/gui/models/models.h
+++ b/src/gui/models/models.h
@@ -33,9 +33,7 @@ namespace Models {
*/
QString formatSelection(const QModelIndexList &items, int dataRole = Qt::DisplayRole);
-
- QMenu *displayFilterDialog(const QStringList &candidates, QSortFilterProxyModel *model, int column, int role, QWidget *parent = nullptr);
-
+ std::function<void()> addFilterMenuItems(QMenu *menu, const QStringList &candidates, QSortFilterProxyModel *model, int column, const QString &columnName, int role);
/**
* Returns a vector with indices
diff --git a/src/gui/models/protocolitemmodel.cpp b/src/gui/models/protocolitemmodel.cpp
index 97d9a7d6a..5055aee18 100644
--- a/src/gui/models/protocolitemmodel.cpp
+++ b/src/gui/models/protocolitemmodel.cpp
@@ -107,7 +107,7 @@ QVariant ProtocolItemModel::data(const QModelIndex &index, int role) const
case ProtocolItemRole::Account:
return item.folder()->accountState()->account()->displayName();
case ProtocolItemRole::Status:
- return Utility::enumName(item.status());
+ return item.status();
case ProtocolItemRole::ColumnCount:
Q_UNREACHABLE();
break;