bool ComboTabBar::event(QEvent *event) { switch (event->type()) { case QEvent::ToolTip: if (!isDragInProgress() && !isScrollInProgress()) { int index = tabAt(mapFromGlobal(QCursor::pos())); if (index >= 0) QToolTip::showText(QCursor::pos(), tabToolTip(index)); } break; case QEvent::Resize: ensureVisible(); break; case QEvent::Show: if (!event->spontaneous()) QTimer::singleShot(0, this, &ComboTabBar::setUpLayout); break; case QEvent::Enter: case QEvent::Leave: // Make sure tabs are painted with correct mouseover state QTimer::singleShot(100, this, &ComboTabBar::updateTabBars); break; default: break; } return QWidget::event(event); }
bool TabBar::event(QEvent* event) { switch (event->type()) { case QEvent::ToolTip: if (!m_showTabPreviews && !isDragInProgress()) { QHelpEvent* ev = static_cast<QHelpEvent*>(event); int index = tabAt(ev->pos()); if (index >= 0) { QToolTip::showText(mapToGlobal(ev->pos()), tabToolTip(index)); } } break; case QEvent::Leave: if (!rect().contains(mapFromGlobal(QCursor::pos()))) { hideTabPreview(); } break; case QEvent::Wheel: hideTabPreview(false); break; default: break; } return ComboTabBar::event(event); }
void TabBar::contextMenuEvent(QContextMenuEvent* event) { if (isDragInProgress()) { return; } int index = tabAt(event->pos()); TabContextMenu menu(index, m_window); // Prevent choosing first option with double rightclick const QPoint pos = event->globalPos(); QPoint p(pos.x(), pos.y() + 1); menu.exec(p); }