summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-04-02 16:58:08 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-04-08 21:58:40 +0200
commit6693befcbbb575ed5dc8826c17c31bd703c2340a (patch)
tree781e7b4d0bb3692369f5d3c4fba86881dafdb85f
parent48e8f0665806bf043d9f774884addd7c77714d7e (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>
-rw-r--r--src/widgets/widgets/qtabbar.cpp62
-rw-r--r--src/widgets/widgets/qtabbar.h7
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