cmake-gui: Restore workaround for crash in file dialog

In commit ce9dbceb42 (QtDialog: remove Qt4-only code, 2020-06-02,
v3.19.0-rc1~712^2~1) we removed an event filter that was thought to be
necessary only as a workaround for a bug in Qt.  However, that bug was
fixed in Qt 4.5, and the file dialog still crashes as of Qt 5.14 without
the filter.  Restore the workaround pending further investigation.

Fixes: #21400
This commit is contained in:
Brad King committed 2020-11-05 14:50:45 -05:00
1 parent 39f32f1210
commit 5f782119c8
2 files changed
+14

No files matched your search

+13
View File
@@ -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
+1
View File
@@ -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,