Example #1
0
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);
}
Example #3
0
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);
}