From: "Lubomir I. Ivanov" <[email protected]> If the user presses the close button (x) in the multi filter, the filter is closed, but the checkbox in the menu (Log -> Filter divelist) is left checked.
This patch adds a method to MainWindow that clears the checkbox; called from MultiFilter::closeFilter(). Signed-off-by: Lubomir I. Ivanov <[email protected]> --- I'm building against Qt 5.5.1 and there are consistent asserts when closing / clearing the filter: ASSERT failure in QPersistentModelIndex::~QPersistentModelIndex: "persistent model indexes corrupted", file itemmodels\qabstractitemmodel.cpp, line 557 void MultiFilterSortModel::clearFilter() { justCleared = true; Q_FOREACH (MultiFilterInterface *iface, models) { iface->clearFilter(); ^ possible cause The latest official Windows binaries seem OK. --- desktop-widgets/mainwindow.cpp | 5 +++++ desktop-widgets/mainwindow.h | 1 + desktop-widgets/simplewidgets.cpp | 1 + 3 files changed, 7 insertions(+) diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index 9df5066..2b487cc 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -1956,6 +1956,11 @@ void MainWindow::on_actionFilterTags_triggered() ui.multiFilter->setVisible(true); } +void MainWindow::uncheckMultiFilter() +{ + ui.actionFilterTags->setChecked(false); +} + void MainWindow::registerApplicationState(const QByteArray& state, QWidget *topLeft, QWidget *topRight, QWidget *bottomLeft, QWidget *bottomRight) { applicationState[state] = WidgetForQuadrant(topLeft, topRight, bottomLeft, bottomRight); diff --git a/desktop-widgets/mainwindow.h b/desktop-widgets/mainwindow.h index 10fe6d4..2d4906c 100644 --- a/desktop-widgets/mainwindow.h +++ b/desktop-widgets/mainwindow.h @@ -95,6 +95,7 @@ public: NotificationWidget *getNotificationWidget(); void enableDisableCloudActions(); void showError(); + void uncheckMultiFilter(); private slots: diff --git a/desktop-widgets/simplewidgets.cpp b/desktop-widgets/simplewidgets.cpp index ab1fcaa..eb5e57c 100644 --- a/desktop-widgets/simplewidgets.cpp +++ b/desktop-widgets/simplewidgets.cpp @@ -652,6 +652,7 @@ void MultiFilter::adjustHeight() void MultiFilter::closeFilter() { MultiFilterSortModel::instance()->clearFilter(); + MainWindow::instance()->uncheckMultiFilter(); hide(); } -- 1.7.11.msysgit.0 _______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
