From 8b249dc06afd8d1c384007c945b91e48941a30ad Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sat, 13 Apr 2024 05:39:19 +0200 Subject: [PATCH] QSearchField: Remove NSSearchField workaround This was a workaround for QTBUG-124160. --- src/widgets/qsearchfield.h | 4 ---- src/widgets/qsearchfield_mac.mm | 21 ++++----------------- src/widgets/qsearchfield_qt.cpp | 6 ------ 3 files changed, 4 insertions(+), 27 deletions(-) diff --git a/src/widgets/qsearchfield.h b/src/widgets/qsearchfield.h index 6a9bc844..1464fac1 100644 --- a/src/widgets/qsearchfield.h +++ b/src/widgets/qsearchfield.h @@ -5,9 +5,6 @@ #include #include -class QShowEvent; -class QCloseEvent; - class QSearchFieldPrivate; class QSearchField : public QWidget { Q_OBJECT @@ -41,7 +38,6 @@ class QSearchField : public QWidget { void returnPressed(); protected: - void showEvent(QShowEvent *e) override; void resizeEvent(QResizeEvent*) override; bool eventFilter(QObject*, QEvent*) override; diff --git a/src/widgets/qsearchfield_mac.mm b/src/widgets/qsearchfield_mac.mm index a817df9f..cfcaebbd 100644 --- a/src/widgets/qsearchfield_mac.mm +++ b/src/widgets/qsearchfield_mac.mm @@ -162,12 +162,14 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent) { pimpl = delegate->pimpl = new QSearchFieldPrivate(this, search); [search setDelegate:static_cast>(delegate)]; - new QVBoxLayout(this); - layout()->setContentsMargins(0, 0, 0, 0); setAttribute(Qt::WA_NativeWindow); setFixedHeight(24); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + new QVBoxLayout(this); + layout()->setContentsMargins(0, 0, 0, 0); + layout()->addWidget(QWidget::createWindowContainer(QWindow::fromWinId(WId(pimpl->nsSearchField)), this)); + [pool drain]; } @@ -227,21 +229,6 @@ void QSearchField::setFocus() { setFocus(Qt::OtherFocusReason); } -void QSearchField::showEvent(QShowEvent *e) { - - if (!e->spontaneous()) { - for (int i = 0; i < layout()->count(); ++i) { - QWidget *widget = layout()->itemAt(i)->widget(); - layout()->removeWidget(widget); - delete widget; - } - layout()->addWidget(QWidget::createWindowContainer(QWindow::fromWinId(WId(pimpl->nsSearchField)), this)); - } - - QWidget::showEvent(e); - -} - void QSearchField::resizeEvent(QResizeEvent *resizeEvent) { QWidget::resizeEvent(resizeEvent); } diff --git a/src/widgets/qsearchfield_qt.cpp b/src/widgets/qsearchfield_qt.cpp index 414b3299..426b2d3c 100644 --- a/src/widgets/qsearchfield_qt.cpp +++ b/src/widgets/qsearchfield_qt.cpp @@ -172,12 +172,6 @@ QString QSearchField::text() const { } -void QSearchField::showEvent(QShowEvent *e) { - - QWidget::showEvent(e); - -} - void QSearchField::resizeEvent(QResizeEvent *resizeEvent) { Q_ASSERT(pimpl && pimpl->clearbutton_ && pimpl->lineedit_);