aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDilek Akcay <[email protected]>2025-07-03 12:31:24 +0200
committerDilek Akcay <[email protected]>2025-07-08 13:56:26 +0000
commitb74a7be07fa9c0c103d9fea6063760be01676391 (patch)
treea4aca0426a5e77a74d13c2f25400be40e5194ef4
parent54687acb65547bcacb448eeb3bf4fa0602fd8a1a (diff)
SearchField: Add hover event handling for the indicatorsHEADdev
Implemented hover move and leave event handling for the clear and search indicators. This allows dynamic background color changes based on the hover state on different styles. Pick-to: 6.10 Change-Id: I7d5d843ae5177a0aa6bab2e1ef6b1774e4331107 Reviewed-by: Jan Arve Sæther <[email protected]>
-rw-r--r--src/quicktemplates/qquicksearchfield.cpp31
-rw-r--r--src/quicktemplates/qquicksearchfield_p.h3
2 files changed, 34 insertions, 0 deletions
diff --git a/src/quicktemplates/qquicksearchfield.cpp b/src/quicktemplates/qquicksearchfield.cpp
index cffb67f187..d2531f3f29 100644
--- a/src/quicktemplates/qquicksearchfield.cpp
+++ b/src/quicktemplates/qquicksearchfield.cpp
@@ -929,6 +929,37 @@ void QQuickSearchField::focusOutEvent(QFocusEvent *event)
d->hidePopup();
}
+void QQuickSearchField::hoverEnterEvent(QHoverEvent *event)
+{
+ Q_D(QQuickSearchField);
+ QQuickControl::hoverEnterEvent(event);
+ QQuickItem *si = d->searchIndicator->indicator();
+ QQuickItem *ci = d->clearIndicator->indicator();
+ d->searchIndicator->setHovered(si && si->isEnabled() && si->contains(mapToItem(si, event->position())));
+ d->clearIndicator->setHovered(ci && ci->isEnabled() && ci->contains(mapToItem(ci, event->position())));
+ event->ignore();
+}
+
+void QQuickSearchField::hoverMoveEvent(QHoverEvent *event)
+{
+ Q_D(QQuickSearchField);
+ QQuickControl::hoverMoveEvent(event);
+ QQuickItem *si = d->searchIndicator->indicator();
+ QQuickItem *ci = d->clearIndicator->indicator();
+ d->searchIndicator->setHovered(si && si->isEnabled() && si->contains(mapToItem(si, event->position())));
+ d->clearIndicator->setHovered(ci && ci->isEnabled() && ci->contains(mapToItem(ci, event->position())));
+ event->ignore();
+}
+
+void QQuickSearchField::hoverLeaveEvent(QHoverEvent *event)
+{
+ Q_D(QQuickSearchField);
+ QQuickControl::hoverLeaveEvent(event);
+ d->searchIndicator->setHovered(false);
+ d->clearIndicator->setHovered(false);
+ event->ignore();
+}
+
void QQuickSearchField::keyPressEvent(QKeyEvent *event)
{
Q_D(QQuickSearchField);
diff --git a/src/quicktemplates/qquicksearchfield_p.h b/src/quicktemplates/qquicksearchfield_p.h
index 89fcd6dda3..44c1c540a3 100644
--- a/src/quicktemplates/qquicksearchfield_p.h
+++ b/src/quicktemplates/qquicksearchfield_p.h
@@ -99,6 +99,9 @@ protected:
bool eventFilter(QObject *object, QEvent *event) override;
void focusInEvent(QFocusEvent *event) override;
void focusOutEvent(QFocusEvent *event) override;
+ void hoverEnterEvent(QHoverEvent *event) override;
+ void hoverMoveEvent(QHoverEvent *event) override;
+ void hoverLeaveEvent(QHoverEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
void classBegin() override;
void componentComplete() override;