Changeset 4864

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

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

Location:
trunk/qt-gui/src
Files:
4 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 
  • trunk/qt-gui/src/ewidgets.h

    r4859 r4864  
    130130  void setPreviousTab(); 
    131131  void setNextTab(); 
    132    
     132 
     133signals: 
     134  void middleClick(int t); 
     135 
    133136protected: 
    134137  virtual void paintLabel(QPainter *, const QRect &, QTab *, bool) const; 
    135138  virtual void wheelEvent(QWheelEvent *e); 
    136    
     139  virtual void mousePressEvent(QMouseEvent* e); 
     140  virtual void mouseReleaseEvent(QMouseEvent* e); 
     141 
    137142private: 
    138143  QMap<int, QColor> mTabColors; 
     144  int clickedTab; 
    139145}; 
    140146 
     
    149155  void setNextPage(); 
    150156 
     157signals: 
     158  void middleClick(QWidget *p); 
     159 
    151160protected: 
    152161  virtual void wheelEvent(QWheelEvent *e); 
     162 
     163protected slots: 
     164  void slot_middleClick(int t); 
    153165}; 
    154166 
  • trunk/qt-gui/src/usereventdlg.cpp

    r4800 r4864  
    249249  connect(tabw, SIGNAL(currentChanged(QWidget *)), 
    250250          this, SLOT(slot_currentChanged(QWidget *))); 
     251  connect(tabw, SIGNAL(middleClick(QWidget*)), this, SLOT(removeTab(QWidget*))); 
    251252} 
    252253 
  • trunk/qt-gui/src/usereventdlg.h

    r4699 r4864  
    9595 
    9696  void addTab(UserEventCommon *tab, int index = -1); 
    97   void removeTab(QWidget *tab); 
    9897  void selectTab(QWidget *tab); 
    9998  void replaceTab(QWidget *oldTab, UserEventCommon *newTab); 
     
    120119  void moveLeft(); 
    121120  void moveRight(); 
     121  void removeTab(QWidget* tab); 
    122122 
    123123protected slots: