qlineedit: Use QIcon::Active for pressed action button
Qt should be using its own API in the way it's meant to be. If there's an issue with Qt's built-in styles it has to be fixed there. Otherwise this causes problems with styles, such as KDE's Breeze, which make use of both Selected and Active states for icons. However, Qt's built-in styles do not have hover effects for tool bar buttons and menu items, so there's somewhat of a conflict here which was probably the reason for the workaround used. Change-Id: Ieaed580f548caf181b1005b4e82e3f2adc1f9ce5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This commit is contained in:
parent
fe7b63546d
commit
ada1b61991
@ -347,11 +347,9 @@ void QLineEditIconButton::paintEvent(QPaintEvent *)
|
||||
QWindow *window = nullptr;
|
||||
if (const QWidget *nativeParent = nativeParentWidget())
|
||||
window = nativeParent->windowHandle();
|
||||
// Note isDown should really use the active state but in most styles
|
||||
// this has no proper feedback
|
||||
QIcon::Mode state = QIcon::Disabled;
|
||||
if (isEnabled())
|
||||
state = isDown() ? QIcon::Selected : QIcon::Normal;
|
||||
state = isDown() ? QIcon::Active : QIcon::Normal;
|
||||
const QLineEditPrivate *lep = lineEditPrivate();
|
||||
const int iconWidth = lep ? lep->sideWidgetParameters().iconSize : 16;
|
||||
const QSize iconSize(iconWidth, iconWidth);
|
||||
|
Loading…
Reference in New Issue
Block a user