bool Matrix::eventFilter(QObject *object, QEvent *e) { if (e->type()==QEvent::ContextMenu && object == titleBar) { emit showTitleBarMenu(); ((QContextMenuEvent*)e)->accept(); return true; } return MyWidget::eventFilter(object, e); }
bool MultiLayer::eventFilter(QObject *object, QEvent *e) { if (e->type() == QEvent::MouseButtonPress && object == (QObject *)canvas) { const QMouseEvent *me = (const QMouseEvent *)e; if (me->button() == Qt::LeftButton && addTextOn) addTextLayer(me->pos()); return false; } else if (e->type() == QEvent::Resize && object == (QObject *)canvas) { resizeLayers((const QResizeEvent *)e); } else if (e->type() == QEvent::ContextMenu && object == titleBar) { emit showTitleBarMenu(); ((QContextMenuEvent *)e)->accept(); return true; } return MyWidget::eventFilter(object, e); }
bool Matrix::eventFilter(QObject *object, QEvent *e) { QHeader *hheader = d_table->horizontalHeader(); QHeader *vheader = d_table->verticalHeader(); if (object == (QObject*)hheader) switch(e->type()) { case QEvent::MouseButtonDblClick: { const QMouseEvent *me = (const QMouseEvent *)e; selectedCol = hheader->sectionAt (me->pos().x()+hheader->offset()); return TRUE; } case QEvent::MouseButtonPress: { const QMouseEvent *me = (const QMouseEvent *)e; int col = hheader->sectionAt (me->pos().x() + hheader->offset()); if (me->button() == QMouseEvent::RightButton && !d_table->isColumnSelected(col,true)) { selectedCol=col; d_table->clearSelection(); d_table->selectColumn(selectedCol); d_table->setCurrentCell (0, selectedCol); } if (me->button() == QMouseEvent::LeftButton) { LeftButton=TRUE; if (me->state ()==Qt::ControlButton) { int current=d_table->currentSelection(); QTableSelection sel=d_table->selection(current); if (sel.topRow() != 0 || sel.bottomRow() != (d_table->numRows() - 1)) //select only full columns d_table->removeSelection(sel); } else d_table->clearSelection (TRUE); selectedCol=hheader->sectionAt (me->pos().x()+hheader->offset()); lastSelectedCol=selectedCol; d_table->selectColumn (selectedCol); d_table->setCurrentCell (0, selectedCol); } return TRUE; } case QEvent::MouseMove: { if(LeftButton) { const QMouseEvent *me = (const QMouseEvent *)e; selectedCol=hheader->sectionAt (me->pos().x() + hheader->offset()); if(selectedCol != lastSelectedCol) {// This means that we are in the next column if(d_table->isColumnSelected(selectedCol,TRUE)) {//Since this column is selected, deselect it d_table->removeSelection(QTableSelection (0,lastSelectedCol,d_table->numRows()-1,lastSelectedCol)); } else d_table->selectColumn (selectedCol); } lastSelectedCol=selectedCol; d_table->setCurrentCell (0, selectedCol); } return TRUE; } case QEvent::MouseButtonRelease: { LeftButton=FALSE; return TRUE; } default: ; } else if (e->type() == QEvent::MouseButtonPress && object == (QObject*)vheader) { const QMouseEvent *me = (const QMouseEvent *)e; int offset = vheader->offset(); int row = vheader->sectionAt(me->pos().y()+offset); if (me->button() == QMouseEvent::RightButton && !d_table->isRowSelected(row,true)) { d_table->clearSelection(); d_table->selectRow (row); d_table->setCurrentCell (row,0); } } else if (e->type()==QEvent::ContextMenu && object == titleBar) { emit showTitleBarMenu(); ((QContextMenuEvent*)e)->accept(); return true; } return QObject::eventFilter(object, e); }