From b37df2cf623757dbd62d0d792b66f80db6315841 Mon Sep 17 00:00:00 2001 From: mgrojo Date: Fri, 13 Jul 2018 00:25:11 +0200 Subject: [PATCH] Only enable filter actions when Extended Table has filter lines When the filter lines have not been generated for a Extended Table (currently the case for Execute SQL tables), the filter actions make no sense, so they are disabled. See issue #1469 --- src/ExtendedTableWidget.cpp | 5 +++++ src/FilterTableHeader.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/ExtendedTableWidget.cpp b/src/ExtendedTableWidget.cpp index 2321cd87..21698afb 100644 --- a/src/ExtendedTableWidget.cpp +++ b/src/ExtendedTableWidget.cpp @@ -213,6 +213,11 @@ ExtendedTableWidget::ExtendedTableWidget(QWidget* parent) : copyWithHeadersAction->setEnabled(enabled); copyAsSQLAction->setEnabled(enabled); + // Hide filter actions when there isn't any filters + bool hasFilters = m_tableHeader->hasFilters(); + filterAction->setVisible(hasFilters); + filterMenu->menuAction()->setVisible(hasFilters); + // Try to find out whether the current view is editable and (de)activate menu options according to that bool editable = editTriggers() != QAbstractItemView::NoEditTriggers; nullAction->setEnabled(enabled && editable); diff --git a/src/FilterTableHeader.h b/src/FilterTableHeader.h index d8b21292..4bec1c84 100644 --- a/src/FilterTableHeader.h +++ b/src/FilterTableHeader.h @@ -15,6 +15,7 @@ class FilterTableHeader : public QHeaderView public: explicit FilterTableHeader(QTableView* parent = nullptr); virtual QSize sizeHint() const; + bool hasFilters() const {return (filterWidgets.count() > 0);}; public slots: void generateFilters(int number, bool showFirst = false);