bool TabWidget::eventFilter(QObject* o, QEvent* e) { // Handle middle mouse click on closable tabs bool isTabBar = o == tabBar(); bool isMouseButtonPress = e->type() == QEvent::MouseButtonPress; bool tabsAreClosable = tabBar()->tabsClosable(); if (isTabBar && isMouseButtonPress && tabsAreClosable) { auto me = static_cast<QMouseEvent*>(e); if (me->buttons() == Qt::MiddleButton) { auto tabIdx = tabBar()->tabAt(me->pos()); if (tabIdx >= 0) { emit tabCloseRequested(tabIdx); return true; } } } return QTabWidget::eventFilter(o, e); }
void TabBar::mouseReleaseEvent(QMouseEvent *AEvent) { int index = tabAt(AEvent->pos()); if (index == FPressedIndex) { if (AEvent->button() == Qt::LeftButton) { setCurrentIndex(index); } else if (AEvent->button() == Qt::MidButton) { emit tabCloseRequested(index); } else if (AEvent->button() == Qt::RightButton) { emit tabMenuRequested(index); } } FPressedIndex = -1; //QWidget::mouseReleaseEvent(AEvent); }
void CEditorTabBar::closeTab(int index) { emit tabCloseRequested(index); }
void Tab::_closeTab() { WebView->setHtml("<html></html>"); emit tabCloseRequested(); }
void TabWidget::destroyTab(int id) { emit tabCloseRequested(this, id); }
void StackTabWidget::informTabCloseRequested(int index) { emit tabCloseRequested(this, index); }
void TabWidget::slotTabCloseRequested(int index) { emit tabCloseRequested(index); }
void MessageWindow::page_closeButtonClicked() { emit tabCloseRequested(currentIndex()); }
void MainWindow::tabCloseRequested(int index) { tabCloseRequested(index, -1); }
void MainWindow::tabCloseRequested() { if(ui->tabWidget->currentWidget()){ tabCloseRequested(ui->tabWidget->currentIndex(), -1); } }
void TabBar::onCloseButtonClicked() { TabBarItem *item = qobject_cast<TabBarItem *>(sender()); if (item) emit tabCloseRequested(FItems.indexOf(item)); }