Move code from QTabBar::event to mouseDoubleClickEvent override
Address FIXME comment, convert if/else cascade to switch-statement, and fix coding style in surrounding code. Change-Id: Ia883b839d2af314f4abe18e4d7cefa21d77ff7c9 Reviewed-by: Lars Knoll <lars.knoll@qt.io>bb10
parent
48e8f06658
commit
6693befcbb
|
|
@ -1679,8 +1679,9 @@ void QTabBar::hideEvent(QHideEvent *)
|
|||
bool QTabBar::event(QEvent *event)
|
||||
{
|
||||
Q_D(QTabBar);
|
||||
if (event->type() == QEvent::HoverMove
|
||||
|| event->type() == QEvent::HoverEnter) {
|
||||
switch (event->type()) {
|
||||
case QEvent::HoverMove:
|
||||
case QEvent::HoverEnter: {
|
||||
QHoverEvent *he = static_cast<QHoverEvent *>(event);
|
||||
if (!d->hoverRect.contains(he->pos())) {
|
||||
QRect oldHoverRect = d->hoverRect;
|
||||
|
|
@ -1703,28 +1704,32 @@ bool QTabBar::event(QEvent *event)
|
|||
update(d->hoverRect);
|
||||
}
|
||||
return true;
|
||||
} else if (event->type() == QEvent::HoverLeave) {
|
||||
}
|
||||
case QEvent::HoverLeave: {
|
||||
QRect oldHoverRect = d->hoverRect;
|
||||
d->hoverIndex = -1;
|
||||
d->hoverRect = QRect();
|
||||
update(oldHoverRect);
|
||||
return true;
|
||||
}
|
||||
#ifndef QT_NO_TOOLTIP
|
||||
} else if (event->type() == QEvent::ToolTip) {
|
||||
case QEvent::ToolTip:
|
||||
if (const QTabBarPrivate::Tab *tab = d->at(tabAt(static_cast<QHelpEvent*>(event)->pos()))) {
|
||||
if (!tab->toolTip.isEmpty()) {
|
||||
QToolTip::showText(static_cast<QHelpEvent*>(event)->globalPos(), tab->toolTip, this);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif // QT_NO_TOOLTIP
|
||||
#if QT_CONFIG(whatsthis)
|
||||
} else if (event->type() == QEvent::QueryWhatsThis) {
|
||||
case QEvent::QEvent::QueryWhatsThis: {
|
||||
const QTabBarPrivate::Tab *tab = d->at(d->indexAtPos(static_cast<QHelpEvent*>(event)->pos()));
|
||||
if (!tab || tab->whatsThis.isEmpty())
|
||||
event->ignore();
|
||||
return true;
|
||||
} else if (event->type() == QEvent::WhatsThis) {
|
||||
}
|
||||
case QEvent::WhatsThis:
|
||||
if (const QTabBarPrivate::Tab *tab = d->at(d->indexAtPos(static_cast<QHelpEvent*>(event)->pos()))) {
|
||||
if (!tab->whatsThis.isEmpty()) {
|
||||
QWhatsThis::showText(static_cast<QHelpEvent*>(event)->globalPos(),
|
||||
|
|
@ -1732,9 +1737,11 @@ bool QTabBar::event(QEvent *event)
|
|||
return true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif // QT_CONFIG(whatsthis)
|
||||
#ifndef QT_NO_SHORTCUT
|
||||
} else if (event->type() == QEvent::Shortcut) {
|
||||
|
||||
case QEvent::Shortcut: {
|
||||
QShortcutEvent *se = static_cast<QShortcutEvent *>(event);
|
||||
for (int i = 0; i < d->tabList.count(); ++i) {
|
||||
const QTabBarPrivate::Tab *tab = &d->tabList.at(i);
|
||||
|
|
@ -1743,22 +1750,19 @@ bool QTabBar::event(QEvent *event)
|
|||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
} else if (event->type() == QEvent::MouseButtonDblClick) { // ### fixme Qt 6: move to mouseDoubleClickEvent(), here for BC reasons.
|
||||
const QPoint pos = static_cast<const QMouseEvent *>(event)->pos();
|
||||
const bool isEventInCornerButtons = (!d->leftB->isHidden() && d->leftB->geometry().contains(pos))
|
||||
|| (!d->rightB->isHidden() && d->rightB->geometry().contains(pos));
|
||||
if (!isEventInCornerButtons)
|
||||
emit tabBarDoubleClicked(tabAt(pos));
|
||||
} else if (event->type() == QEvent::Move) {
|
||||
case QEvent::Move:
|
||||
d->updateMacBorderMetrics();
|
||||
return QWidget::event(event);
|
||||
|
||||
break;
|
||||
#if QT_CONFIG(draganddrop)
|
||||
} else if (event->type() == QEvent::DragEnter) {
|
||||
|
||||
case QEvent::DragEnter:
|
||||
if (d->changeCurrentOnDrag)
|
||||
event->accept();
|
||||
} else if (event->type() == QEvent::DragMove) {
|
||||
break;
|
||||
case QEvent::DragMove:
|
||||
if (d->changeCurrentOnDrag) {
|
||||
const int tabIndex = tabAt(static_cast<QDragMoveEvent *>(event)->pos());
|
||||
if (isTabEnabled(tabIndex) && d->switchTabCurrentIndex != tabIndex) {
|
||||
|
|
@ -1769,11 +1773,17 @@ bool QTabBar::event(QEvent *event)
|
|||
}
|
||||
event->ignore();
|
||||
}
|
||||
} else if (event->type() == QEvent::DragLeave || event->type() == QEvent::Drop) {
|
||||
break;
|
||||
case QEvent::DragLeave:
|
||||
case QEvent::Drop:
|
||||
d->killSwitchTabTimer();
|
||||
event->ignore();
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return QWidget::event(event);
|
||||
}
|
||||
|
||||
|
|
@ -2305,6 +2315,20 @@ void QTabBar::mouseReleaseEvent(QMouseEvent *event)
|
|||
repaint(tabRect(i));
|
||||
}
|
||||
|
||||
/*!\reimp
|
||||
*/
|
||||
void QTabBar::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
{
|
||||
Q_D(QTabBar);
|
||||
const QPoint pos = event->pos();
|
||||
const bool isEventInCornerButtons = (!d->leftB->isHidden() && d->leftB->geometry().contains(pos))
|
||||
|| (!d->rightB->isHidden() && d->rightB->geometry().contains(pos));
|
||||
if (!isEventInCornerButtons)
|
||||
emit tabBarDoubleClicked(tabAt(pos));
|
||||
|
||||
mousePressEvent(event);
|
||||
}
|
||||
|
||||
/*!\reimp
|
||||
*/
|
||||
void QTabBar::keyPressEvent(QKeyEvent *event)
|
||||
|
|
|
|||
|
|
@ -202,9 +202,10 @@ protected:
|
|||
void showEvent(QShowEvent *) override;
|
||||
void hideEvent(QHideEvent *) override;
|
||||
void paintEvent(QPaintEvent *) override;
|
||||
void mousePressEvent (QMouseEvent *) override;
|
||||
void mouseMoveEvent (QMouseEvent *) override;
|
||||
void mouseReleaseEvent (QMouseEvent *) override;
|
||||
void mousePressEvent(QMouseEvent *) override;
|
||||
void mouseMoveEvent(QMouseEvent *) override;
|
||||
void mouseReleaseEvent(QMouseEvent *) override;
|
||||
void mouseDoubleClickEvent(QMouseEvent *) override;
|
||||
#if QT_CONFIG(wheelevent)
|
||||
void wheelEvent(QWheelEvent *event) override;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue