Show
Ignore:
Timestamp:
03/12/07 04:59:02 (21 months ago)
Author:
flynd
Message:

Patch by hammer to close tabs on middle click. Closes #1486

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/qt-gui/src/ewidgets.cpp

    r4837 r4864  
    541541    setNextTab(); 
    542542} 
    543           
     543 
     544void CETabBar::mousePressEvent(QMouseEvent* e) 
     545{ 
     546  if ((e->button() & Qt::MouseButtonMask) == Qt::MidButton) 
     547  { 
     548    QTab* tab = selectTab(e->pos()); 
     549    if (tab != 0) 
     550      clickedTab = indexOf(tab->identifier()); 
     551  } 
     552 
     553  QTabBar::mousePressEvent(e); 
     554} 
     555 
     556void CETabBar::mouseReleaseEvent(QMouseEvent* e) 
     557{ 
     558  if ((e->button() & Qt::MouseButtonMask) == Qt::MidButton) 
     559  { 
     560    QTab* tab = selectTab(e->pos()); 
     561    if (tab != 0) 
     562    { 
     563      int t = indexOf(tab->identifier()); 
     564      if (t == clickedTab) 
     565        emit middleClick(t); 
     566    } 
     567  } 
     568 
     569  clickedTab = -1; 
     570  QTabBar::mouseReleaseEvent(e); 
     571} 
    544572 
    545573//CETabWidget 
     
    547575  : QTabWidget(parent, name, f) 
    548576{ 
    549   setTabBar(new CETabBar(this, "tabbar")); 
     577  CETabBar* tb = new CETabBar(this, "tabbar"); 
     578  setTabBar(tb); 
     579  connect(tb, SIGNAL(middleClick(int)), this, SLOT(slot_middleClick(int))); 
    550580} 
    551581 
     
    588618  else 
    589619    setNextPage(); 
     620} 
     621 
     622void CETabWidget::slot_middleClick(int t) 
     623{ 
     624  QWidget* p = page(t); 
     625  if (p) 
     626    emit middleClick(p); 
    590627} 
    591628