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:
authorErik Verbruggen <erik@verbruggen.consulting>2021-09-24 17:36:41 +0300
committerHannah von Reth <vonreth@kde.org>2021-09-29 16:38:47 +0300
commit2397475f85908136570e1fd5051501e73b924295 (patch)
tree3e3a28ac85b4464c6ef0b324c6bc0e71cf2c0214 /src/gui/protocolwidget.cpp
parentb6809421a9bfc0b3bd6a5bd6abb743318750c242 (diff)
Allow to filter issue table by issue type
Fixes: #9000
Diffstat (limited to 'src/gui/protocolwidget.cpp')
-rw-r--r--src/gui/protocolwidget.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/gui/protocolwidget.cpp b/src/gui/protocolwidget.cpp
index a1925ee3c..73b33b314 100644
--- a/src/gui/protocolwidget.cpp
+++ b/src/gui/protocolwidget.cpp
@@ -48,6 +48,8 @@ ProtocolWidget::ProtocolWidget(QWidget *parent)
connect(_ui->_tableView, &QTreeWidget::customContextMenuRequested, this, &ProtocolWidget::slotItemContextMenu);
+ // Build the model-view "stack":
+ // _model <- _sortModel <- _statusSortModel <- _tableView
_model = new ProtocolItemModel(2000, false, this);
_sortModel = new QSortFilterProxyModel(this);
_sortModel->setSourceModel(_model);
@@ -62,7 +64,12 @@ ProtocolWidget::ProtocolWidget(QWidget *parent)
header->hideSection(static_cast<int>(ProtocolItemModel::ProtocolItemRole::Status));
header->setContextMenuPolicy(Qt::CustomContextMenu);
connect(header, &QHeaderView::customContextMenuRequested, header, [header, this] {
- showHeaderContextMenu(header, _sortModel);
+ auto menu = showFilterMenu(header, _sortModel);
+ header->addResetActionToMenu(menu);
+ });
+
+ connect(_ui->_filterButton, &QAbstractButton::clicked, this, [this] {
+ showFilterMenu(_ui->_filterButton, _sortModel);
});
connect(FolderMan::instance(), &FolderMan::folderRemoved, this, [this](Folder *f) {
@@ -77,11 +84,16 @@ ProtocolWidget::~ProtocolWidget()
delete _ui;
}
-void ProtocolWidget::showHeaderContextMenu(ExpandingHeaderView *header, QSortFilterProxyModel *model)
+QMenu *ProtocolWidget::showFilterMenu(QWidget *parent, QSortFilterProxyModel *model)
{
- auto menu = Models::displayFilterDialog(AccountManager::instance()->accountNames(), model, static_cast<int>(ProtocolItemModel::ProtocolItemRole::Account), Qt::DisplayRole, header);
+ auto menu = new QMenu(parent);
+ menu->setAttribute(Qt::WA_DeleteOnClose);
+ Models::addFilterMenuItems(menu, AccountManager::instance()->accountNames(), model, static_cast<int>(ProtocolItemModel::ProtocolItemRole::Account), tr("Account"), Qt::DisplayRole);
menu->addSeparator();
- menu->addAction(tr("Reset column sizes"), header, [header] { header->resizeColumns(true); });
+ QTimer::singleShot(0, menu, [menu] {
+ menu->popup(QCursor::pos());
+ });
+ return menu;
}
void ProtocolWidget::showContextMenu(QWidget *parent, ProtocolItemModel *model, const QModelIndexList &items)