bool FancyLineEditPrivate::eventFilter(QObject *obj, QEvent *event) { if (obj != m_menuLabel) return QObject::eventFilter(obj, event); switch (event->type()) { case QEvent::MouseButtonPress: { const QMouseEvent *me = static_cast<QMouseEvent *>(event); if (m_menu) { m_menu->exec(me->globalPos()); } else { emit m_lineEdit->buttonClicked(); } return true; } case QEvent::FocusIn: if (m_menuTabFocusTrigger && m_menu) { m_lineEdit->setFocus(); m_menu->exec(m_menuLabel->mapToGlobal(m_menuLabel->rect().center())); return true; } default: break; } return QObject::eventFilter(obj, event); }
bool FancyLineEditPrivate::eventFilter(QObject *obj, QEvent *event) { if (obj != m_iconbutton) return QObject::eventFilter(obj, event); switch (event->type()) { case QEvent::FocusIn: if (m_menuTabFocusTrigger && m_menu) { m_lineEdit->setFocus(); m_menu->exec(m_iconbutton->mapToGlobal(m_iconbutton->rect().center())); return true; } default: break; } return QObject::eventFilter(obj, event); }
bool FancyLineEditPrivate::eventFilter(QObject *obj, QEvent *event) { int buttonIndex = -1; for (int i = 0; i < 2; ++i) { if (obj == m_iconbutton[i]) { buttonIndex = i; break; } } if (buttonIndex == -1) return QObject::eventFilter(obj, event); switch (event->type()) { case QEvent::FocusIn: if (m_menuTabFocusTrigger[buttonIndex] && m_menu[buttonIndex]) { m_lineEdit->setFocus(); execMenuAtWidget(m_menu[buttonIndex], m_iconbutton[buttonIndex]); return true; } default: break; } return QObject::eventFilter(obj, event); }