diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-04-02 16:58:08 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-04-08 21:58:40 +0200 |
commit | 6693befcbbb575ed5dc8826c17c31bd703c2340a (patch) | |
tree | 781e7b4d0bb3692369f5d3c4fba86881dafdb85f /src/widgets | |
parent | 48e8f0665806bf043d9f774884addd7c77714d7e (diff) |
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>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/widgets/qtabbar.cpp | 62 | ||||
-rw-r--r-- | src/widgets/widgets/qtabbar.h | 7 |
2 files changed, 47 insertions, 22 deletions
diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp index df480629da..cc61abd739 100644 --- a/src/widgets/widgets/qtabbar.cpp +++ b/src/widgets/widgets/qtabbar.cpp @@ -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); } @@ -2307,6 +2317,20 @@ void QTabBar::mouseReleaseEvent(QMouseEvent *event) /*!\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) { Q_D(QTabBar); diff --git a/src/widgets/widgets/qtabbar.h b/src/widgets/widgets/qtabbar.h index f3cd914277..0cf331b6ab 100644 --- a/src/widgets/widgets/qtabbar.h +++ b/src/widgets/widgets/qtabbar.h @@ -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 |