From d0771cb4bd5b9d4c1b70b49cef37740ab062c70b Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Fri, 17 Nov 2017 13:20:08 +0100 Subject: [PATCH] Fix possible crashes when using context menu in Browse Data tab Deactivate all menu actions in the context menu in the Browse Data tab if no database file is opened. Without a database the read-only actions were still enabled and would lead to a crash. See issue #1228. --- src/ExtendedTableWidget.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ExtendedTableWidget.cpp b/src/ExtendedTableWidget.cpp index 5e38593f..8282c9c2 100644 --- a/src/ExtendedTableWidget.cpp +++ b/src/ExtendedTableWidget.cpp @@ -106,10 +106,16 @@ ExtendedTableWidget::ExtendedTableWidget(QWidget* parent) : connect(this, &QTableView::customContextMenuRequested, [=](const QPoint& pos) { + // Deactivate context menu options if there is no model set + bool enabled = model(); + filterAction->setEnabled(enabled); + copyAction->setEnabled(enabled); + copyWithHeadersAction->setEnabled(enabled); + // 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(editable); - pasteAction->setEnabled(editable); + nullAction->setEnabled(enabled && editable); + pasteAction->setEnabled(enabled && editable); // Show menu m_contextMenu->popup(viewport()->mapToGlobal(pos));