From 24c60731962025868534ccc1436eee9f104233c3 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 19 Jul 2022 17:16:35 +0200 Subject: [PATCH] FancyLineEdit: Avoid using sender() Change-Id: I90a90403ed53133905b7813b5907994f82986257 Reviewed-by: Eike Ziller Reviewed-by: --- src/libs/utils/fancylineedit.cpp | 29 +++++++++++++---------------- src/libs/utils/fancylineedit.h | 2 +- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/libs/utils/fancylineedit.cpp b/src/libs/utils/fancylineedit.cpp index 5ade63e4b0e..b160c1f55c0 100644 --- a/src/libs/utils/fancylineedit.cpp +++ b/src/libs/utils/fancylineedit.cpp @@ -195,8 +195,12 @@ FancyLineEdit::FancyLineEdit(QWidget *parent) : ensurePolished(); updateMargins(); - connect(d->m_iconbutton[Left], &QAbstractButton::clicked, this, &FancyLineEdit::iconClicked); - connect(d->m_iconbutton[Right], &QAbstractButton::clicked, this, &FancyLineEdit::iconClicked); + connect(d->m_iconbutton[Left], &QAbstractButton::clicked, this, [this] { + iconClicked(Left); + }); + connect(d->m_iconbutton[Right], &QAbstractButton::clicked, this, [this] { + iconClicked(Right); + }); connect(this, &QLineEdit::textChanged, this, &FancyLineEdit::validate); connect(&d->m_completionShortcut, &QShortcut::activated, this, [this] { if (!completer()) @@ -238,27 +242,20 @@ bool FancyLineEdit::isButtonVisible(Side side) const return d->m_iconEnabled[side]; } -QAbstractButton *FancyLineEdit::button(FancyLineEdit::Side side) const +QAbstractButton *FancyLineEdit::button(Side side) const { return d->m_iconbutton[side]; } -void FancyLineEdit::iconClicked() +void FancyLineEdit::iconClicked(Side side) { - auto button = qobject_cast(sender()); - int index = -1; - for (int i = 0; i < 2; ++i) - if (d->m_iconbutton[i] == button) - index = i; - if (index == -1) - return; - if (d->m_menu[index]) { - execMenuAtWidget(d->m_menu[index], button); + if (d->m_menu[side]) { + execMenuAtWidget(d->m_menu[side], button(side)); } else { - emit buttonClicked((Side)index); - if (index == Left) + emit buttonClicked(side); + if (side == Left) emit leftButtonClicked(); - else if (index == Right) + else if (side == Right) emit rightButtonClicked(); } } diff --git a/src/libs/utils/fancylineedit.h b/src/libs/utils/fancylineedit.h index 1a90a7ce24a..66c63adc919 100644 --- a/src/libs/utils/fancylineedit.h +++ b/src/libs/utils/fancylineedit.h @@ -156,7 +156,7 @@ protected: virtual QString fixInputString(const QString &string); private: - void iconClicked(); + void iconClicked(FancyLineEdit::Side); static bool validateWithValidator(FancyLineEdit *edit, QString *errorMessage); // Unimplemented, to force the user to make a decision on