void SeparateTabBar::mouseReleaseEvent (QMouseEvent *event) { int index = tabAt (event->pos ()); if (index == count () - 1 && event->button () == Qt::LeftButton && IsLastTab_) { emit addDefaultTab (); return; } if (InMove_) { emit releasedMouseAfterMove (currentIndex ()); InMove_ = false; emit currentChanged (currentIndex ()); } else if (index != -1 && event->button () == Qt::MidButton && index != count () - 1) { auto rootWM = Core::Instance ().GetRootWindowsManager (); auto tm = rootWM->GetTabManager (Window_); tm->remove (index); } QTabBar::mouseReleaseEvent (event); }
void SeparateTabWidget::Init () { connect (MainTabBar_, SIGNAL (addDefaultTab ()), this, SLOT (handleAddDefaultTab ())); connect (DefaultTabAction_, SIGNAL (triggered ()), this, SLOT (handleAddDefaultTab ())); connect (MainTabBar_, SIGNAL (tabWasInserted (int)), this, SIGNAL (tabInserted (int))); connect (MainTabBar_, SIGNAL (tabWasRemoved (int)), this, SIGNAL (tabWasRemoved (int))); connect (MainTabBar_, SIGNAL (tabCloseRequested (int)), this, SIGNAL (tabCloseRequested (int))); connect (MainTabBar_, SIGNAL (tabMoved (int, int)), this, SLOT (handleTabMoved (int, int))); connect (MainTabBar_, SIGNAL (currentChanged (int)), this, SLOT (setCurrentIndex (int))); connect (MainTabBar_, SIGNAL (customContextMenuRequested (const QPoint&)), this, SLOT (handleContextMenuRequested (const QPoint&))); connect (MainTabBar_, SIGNAL (releasedMouseAfterMove (int)), this, SLOT (releaseMouseAfterMove (int))); }
void SeparateTabBar::mouseDoubleClickEvent (QMouseEvent *event) { QWidget::mouseDoubleClickEvent (event); if (tabAt (event->pos ()) == -1) emit addDefaultTab (); }