diff options
author | Brad King <brad.king@kitware.com> | 2020-11-06 12:55:54 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2020-11-06 12:57:51 (GMT) |
commit | a0453a7f0c3b5ea4777b30d82f7da2aecf7034a6 (patch) | |
tree | 208610d6bd387524836d5ef7e297f4bbe4540153 /Source | |
parent | d1039f74a973f205a0a63f3ffac4581154b6459b (diff) | |
parent | 5f782119c8f368c6ef99a8d4e3b531cbef995cb6 (diff) | |
download | CMake-a0453a7f0c3b5ea4777b30d82f7da2aecf7034a6.zip CMake-a0453a7f0c3b5ea4777b30d82f7da2aecf7034a6.tar.gz CMake-a0453a7f0c3b5ea4777b30d82f7da2aecf7034a6.tar.bz2 |
Merge topic 'cmake-gui-file-dialog-crash'
5f782119c8 cmake-gui: Restore workaround for crash in file dialog
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5472
Diffstat (limited to 'Source')
-rw-r--r-- | Source/QtDialog/QCMakeCacheView.cxx | 13 | ||||
-rw-r--r-- | Source/QtDialog/QCMakeCacheView.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/Source/QtDialog/QCMakeCacheView.cxx b/Source/QtDialog/QCMakeCacheView.cxx index 4f4b218..22f5be1 100644 --- a/Source/QtDialog/QCMakeCacheView.cxx +++ b/Source/QtDialog/QCMakeCacheView.cxx @@ -642,6 +642,19 @@ bool QCMakeCacheModelDelegate::editorEvent(QEvent* e, return success; } +bool QCMakeCacheModelDelegate::eventFilter(QObject* object, QEvent* evt) +{ + // FIXME: This filter avoids a crash when opening a file dialog + // with the '...' button on a cache entry line in the GUI. + // Previously this filter was commented as a workaround for Qt issue 205903, + // but that was fixed in Qt 4.5.0 and the crash still occurs as of Qt 5.14 + // without this filter. This needs further investigation. + if (evt->type() == QEvent::FocusOut && this->FileDialogFlag) { + return false; + } + return QItemDelegate::eventFilter(object, evt); +} + void QCMakeCacheModelDelegate::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const diff --git a/Source/QtDialog/QCMakeCacheView.h b/Source/QtDialog/QCMakeCacheView.h index 11c6d3e..c5e6dd4 100644 --- a/Source/QtDialog/QCMakeCacheView.h +++ b/Source/QtDialog/QCMakeCacheView.h @@ -143,6 +143,7 @@ public: bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index); + bool eventFilter(QObject* object, QEvent* event); void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const; QSize sizeHint(const QStyleOptionViewItem& option, |