bool HScrollArea::eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::MouseMove) { QMouseEvent* me = (QMouseEvent*) event; if ((me->buttons() & Qt::LeftButton)) { if (!mMoveStart) { mMoveStart = true; mContinousMove =false; mMousePoint = me->globalPos(); } else { scrollBar = horizontalScrollBar(); QPoint p = me->globalPos(); int offset = p.x() - mMousePoint.x(); if( !mContinousMove && ( offset > -10 && offset < 10 ) ) return false; mContinousMove = true; scrollBar->setValue(scrollBar->value() - offset); mMousePoint = p; } return true; } } else if (event->type() == QEvent::MouseButtonRelease) { mMoveStart = false; } return QObject::eventFilter(obj, event); }
bool AppInit::eventFilter(QObject *obj, QEvent *evt) { QWidget *w = (QWidget *)obj; if (!w->property("CanMove").toBool()) { return QObject::eventFilter(obj, evt); } QMouseEvent *event = static_cast<QMouseEvent *>(evt); if (event->type() == QEvent::MouseButtonPress) { if (event->button() == Qt::LeftButton) { mousePressed = true; mousePoint = event->globalPos() - w->pos(); return true; } } else if (event->type() == QEvent::MouseButtonRelease) { mousePressed = false; return true; } else if (event->type() == QEvent::MouseMove) { if (mousePressed && (event->buttons() && Qt::LeftButton)) { w->move(event->globalPos() - mousePoint); return true; } } return QObject::eventFilter(obj, evt); }
QGestureRecognizer::Result MousePanGestureRecognizer::recognize(QGesture *state, QObject *, QEvent *event) { QPanGesture *g = static_cast<QPanGesture *>(state); if (event->type() == QEvent::TouchBegin) { // ignore the following mousepress event g->setProperty("ignoreMousePress", QVariant::fromValue<bool>(true)); } else if (event->type() == QEvent::TouchEnd) { g->setProperty("ignoreMousePress", QVariant::fromValue<bool>(false)); } QMouseEvent *me = static_cast<QMouseEvent *>(event); if (event->type() == QEvent::MouseButtonPress) { if (g->property("ignoreMousePress").toBool()) return QGestureRecognizer::Ignore; g->setHotSpot(me->globalPos()); g->setProperty("startPos", me->globalPos()); g->setProperty("pressed", QVariant::fromValue<bool>(true)); return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint; } else if (event->type() == QEvent::MouseMove) { if (g->property("pressed").toBool()) { QPoint offset = me->globalPos() - g->property("startPos").toPoint(); g->setLastOffset(g->offset()); g->setOffset(QPointF(offset.x(), offset.y())); return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint; } return QGestureRecognizer::CancelGesture; } else if (event->type() == QEvent::MouseButtonRelease) { if (g->property("pressed").toBool()) return QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint; } return QGestureRecognizer::Ignore; }
bool FileViewFloatItem::eventFilter(QObject *object, QEvent *e) { if ( !enabled() || !visible() ) { return false; } MarbleWidget *widget = dynamic_cast<MarbleWidget*> (object); if ( !widget ) { return AbstractFloatItem::eventFilter(object, e); } if ( m_marbleWidget != widget ) { // Delayed initialization m_marbleWidget = widget; } Q_ASSERT( m_marbleWidget ); // Mouse events are forwarded to the underlying widget QMouseEvent *event = static_cast<QMouseEvent*> (e); QRectF floatItemRect = QRectF( positivePosition(), size() ); QPoint shiftedPos = event->pos() - floatItemRect.topLeft().toPoint() - QPoint( padding(), padding() ); if( e->type() == QEvent::MouseMove ) { m_itemPosition = event->globalPos(); } if( floatItemRect.contains( event->pos() ) ) { QWidget *child = m_fileViewParent->childAt( shiftedPos ); if( child ) { m_marbleWidget->setCursor( Qt::ArrowCursor ); // there needs to be some extra handling for the scrollbars // these need some special treatment due to them not forwarding // their mouseevents to their scrollbars. if( reinterpret_cast<QScrollBar*>( child ) == m_fileView->horizontalScrollBar() ) { shiftedPos -= QPoint( 0, m_fileView->viewport()->size().height() ); } else if( reinterpret_cast<QScrollBar*>( child ) == m_fileView->verticalScrollBar() ) { shiftedPos -= QPoint( m_fileView->viewport()->size().width(), 0 ); } QMouseEvent shiftedEvent( e->type(), shiftedPos, event->globalPos(), event->button(), event->buttons(), event->modifiers() ); if( QApplication::sendEvent(child, &shiftedEvent) ) { if( e->type() == QEvent::MouseButtonPress || e->type() == QEvent::MouseButtonRelease || e->type() == QEvent::MouseButtonDblClick || e->type() == QEvent::MouseMove ) updateFileView(); return true; } } } return AbstractFloatItem::eventFilter(object, e); }
bool FramelessMove::eventFilter(QObject *obj, QEvent *ev) { if (obj == _monitor) { switch(ev->type()) { case QEvent::MouseButtonPress: { QMouseEvent* event = (QMouseEvent*)ev; if(event->button() == Qt::LeftButton) { _offsetPos = event->globalPos(); emit Pressed(_offsetPos); lButtonPress = true; } break; } case QEvent::MouseButtonRelease: { QMouseEvent* event = (QMouseEvent*)ev; if(event->button() == Qt::LeftButton && lButtonPress) { lButtonPress = false; emit Release(event->globalPos()); } break; } case QEvent::MouseMove: { if(lButtonPress) { QMouseEvent* event = (QMouseEvent*)ev; QPoint newPos = event->globalPos() - _offsetPos; emit Offset(newPos); if(_target) _target->move(_target->pos() + newPos); _offsetPos = event->globalPos(); } break; } default: break; } } return false; }
void CPrivateInfo::mouseMoveEvent(QMouseEvent *ev) { QMouseEvent *mv = (QMouseEvent*) ev; QRect labelrect = QRect(ui->lb_top->pos() + this->pos(), ui->lb_top->size()); if(labelrect.contains(mv->globalPos())) { this->move(mv->globalX() - m_Ptcur.rx(), mv->globalY() - m_Ptcur.ry()); m_Ptbefore = mv->globalPos(); sleep(0.1); } }
bool CloudView::eventFilter(QObject *obj, QEvent *event) { if (obj == mHeader) { static QPoint oldPos; if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *ev = (QMouseEvent *)event; oldPos = ev->globalPos(); return true; } else if (event->type() == QEvent::MouseMove) { QMouseEvent *ev = (QMouseEvent *)event; const QPoint delta = ev->globalPos() - oldPos; MainWindow *win = seafApplet->mainWindow(); win->move(win->x() + delta.x(), win->y() + delta.y()); oldPos = ev->globalPos(); return true; } } else if (obj == mDropArea) { if (event->type() == QEvent::DragEnter) { QDragEnterEvent *ev = (QDragEnterEvent *)event; if (ev->mimeData()->hasUrls() && ev->mimeData()->urls().size() == 1) { const QUrl url = ev->mimeData()->urls().at(0); if (url.scheme() == "file") { QString path = url.toLocalFile(); #if defined(Q_OS_MAC) && (QT_VERSION <= QT_VERSION_CHECK(5, 4, 0)) path = utils::mac::fix_file_id_url(path); #endif if (QFileInfo(path).isDir()) { ev->acceptProposedAction(); } } } return true; } else if (event->type() == QEvent::Drop) { QDropEvent *ev = (QDropEvent *)event; const QUrl url = ev->mimeData()->urls().at(0); QString path = url.toLocalFile(); #if defined(Q_OS_MAC) && (QT_VERSION <= QT_VERSION_CHECK(5, 4, 0)) path = utils::mac::fix_file_id_url(path); #endif ev->setDropAction(Qt::CopyAction); ev->accept(); showCreateRepoDialog(path); return true; } } return QWidget::eventFilter(obj, event); }
bool KDockSplitter::eventFilter(QObject *o, QEvent *e) { QMouseEvent *mev; bool handled = false; int factor = (mHighResolution)? 10000:100; switch (e->type()) { case QEvent::MouseMove: mev= (QMouseEvent*)e; child0->setUpdatesEnabled(mOpaqueResize); child1->setUpdatesEnabled(mOpaqueResize); if (orientation == Horizontal) { if (!mOpaqueResize) { int position = checkValue( mapFromGlobal(mev->globalPos()).y() ); divider->move( 0, position ); } else { xpos = factor * checkValue( mapFromGlobal(mev->globalPos()).y() ) / height(); resizeEvent(0); divider->repaint(true); } } else { if (!mOpaqueResize) { int position = checkValue( mapFromGlobal(QCursor::pos()).x() ); divider->move( position, 0 ); } else { xpos = factor * checkValue( mapFromGlobal( mev->globalPos()).x() ) / width(); resizeEvent(0); divider->repaint(true); } } handled= true; break; case QEvent::MouseButtonRelease: child0->setUpdatesEnabled(true); child1->setUpdatesEnabled(true); mev= (QMouseEvent*)e; if (orientation == Horizontal){ xpos = factor* checkValue( mapFromGlobal(mev->globalPos()).y() ) / height(); resizeEvent(0); divider->repaint(true); } else { xpos = factor* checkValue( mapFromGlobal(mev->globalPos()).x() ) / width(); resizeEvent(0); divider->repaint(true); } handled= true; break; default: break; } return (handled) ? true : QWidget::eventFilter( o, e ); }
void CPrivateInfo::mousePressEvent(QMouseEvent * ev) { QMouseEvent *mv = (QMouseEvent*) ev; if(mv->buttons() & Qt::LeftButton) { QRect labelrect = QRect(ui->lb_top->pos() + this->pos(), ui->lb_top->size()); if(labelrect.contains(mv->globalPos())) { m_Ptbefore = mv->globalPos(); m_Ptcur = mv->pos(); } } }
bool MainWindow::eventFilter(QObject *obj, QEvent *ev) { if(!currentImageSteps->at(*currentStep)) return false; if(obj == currentImageLabel && ev->type() == QEvent::MouseMove) { QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(ev); QPoint pnt = currentImageLabel->mapFromGlobal(mouseEvent->globalPos()); QColor currentPixel = currentImageSteps->at(*currentStep)->pixel(pnt); statusBar()->showMessage(QString("%1@(%2,%3)").arg(currentPixel.lightness()&0xFF).arg(pnt.x()).arg(pnt.y())); currentRubberBand->setGeometry(QRect(rbOrigin,pnt).normalized()); return true; } if(obj == currentImageLabel && ev->type() == QEvent::MouseButtonPress) { QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(ev); rbOrigin = currentImageLabel->mapFromGlobal(mouseEvent->globalPos()); currentRubberBand->setGeometry(QRect(rbOrigin,QSize())); currentRubberBand->show(); } if(obj == currentImageLabel && ev->type() == QEvent::MouseButtonRelease) { currentRubberBand->hide(); *currentImageSteps << new QImage(currentImageSteps->at(*currentStep)->copy(currentRubberBand->geometry())); *currentStep = currentImageSteps->size()-2; nextImage(); /* SparseMatrix* sm = buildModel(img); QDialog* dlg = new QDialog(this); QHBoxLayout* mainLayout = new QHBoxLayout(dlg); QTextEdit *edit = new QTextEdit(this); edit->setReadOnly(true); edit->setText(sm->toString()); edit->resize(800,600); mainLayout->addWidget(edit); dlg->setLayout(mainLayout); dlg->setAttribute(Qt::WA_DeleteOnClose); dlg->resize(800,600); dlg->show(); delete sm; */ } return false; }
bool RKConsole::eventFilter (QObject *, QEvent *e) { if (e->type () == QEvent::KeyPress) { QKeyEvent *k = (QKeyEvent *)e; return handleKeyPress (k); } else if (e->type () == QEvent::MouseButtonPress){ QMouseEvent *m = (QMouseEvent *)e; if (m->button() == Qt::RightButton) { doPopupMenu (m->globalPos ()); return (true); } return (false); } else if (e->type () == QEvent::MouseButtonRelease){ QMouseEvent *m = (QMouseEvent *)e; if (m->button() == Qt::MidButton) { QClipboard *cb = QApplication::clipboard (); submitBatch (cb->text (QClipboard::Selection)); return (true); } /* else if (m->button () == Qt::LeftButton) { // prevent cursor from leaving last line uint para=0; uint p=0; view->cursorPosition (¶, &p); if (para != doc->numLines () - 1) { int y = view->y (); view->setCursorPosition (doc->numLines() -1, p); int y2 = view->y (); qDebug ("%d, %d", y, y2); view->scroll (0, y - y2); } } */ // not good, yet: always jumps to bottom of view return (false); } else { return false; } }
// // eventFilter - filter events looking for a rightclick // // On a right mouseclick we call the addButton method since I can't get // the popup menu working // bool MsgDialog::eventFilter(QObject *o, QEvent *e) { switch (e->type()) { case QEvent::MouseButtonPress: { QMouseEvent *m = (QMouseEvent *) e; if (m->button() == 1) // left click { } if (m->button() == 2) // right click { m_pMenu->popup(m->globalPos()); return TRUE; // don't process event any further } } break; case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: case QEvent::MouseMove: default: break; } return QWidget::eventFilter(o, e); } // end eventFilter
bool TCPopup::eventFilter(QObject *watched, QEvent *event) { /* if ( event->type() == QEvent::FocusIn && watched == ui.translateBox->translateLine() ) { QFocusEvent * focusEvent = static_cast< QFocusEvent * >( event ); // select all on mouse click if ( focusEvent->reason() == Qt::MouseFocusReason ) { QTimer::singleShot(0, this, SLOT(focusTranslateLine())); } return false; } */ if ( mouseIntercepted ) { // We're only interested in our events if ( event->type() == QEvent::MouseMove ) { // DPRINTF( "Object: %s\n", watched->objectName().toUtf8().data() ); QMouseEvent * mouseEvent = ( QMouseEvent * ) event; reactOnMouseMove( mouseEvent->globalPos() ); } } return QWidget::eventFilter( watched, event ); }
bool PersonalChatDlg::eventFilter(QObject *obj, QEvent *event) { if(obj == ui->btn_min){ //最小化、最大化、关闭按钮换图 if(event->type() == QEvent::Enter){ ui->btn_min->setPixmap(QPixmap(":/pixmap/image/miniButton-hover.png")); }else if(event->type() == QEvent::Leave){ ui->btn_min->setPixmap(QPixmap(":/pixmap/image/miniButton.png")); }else if(event->type() == QEvent::MouseButtonPress){ ui->btn_min->setPixmap(QPixmap(":/pixmap/image/miniButton-hover.png")); }else if(event->type() == QEvent::MouseButtonRelease){ QMouseEvent *me = (QMouseEvent *)event; QLabel *lb = (QLabel *)obj; if(me->x() > 0 && me->x() < lb->width() && me->y() > 0 && me->y() < lb->height()){ this->showMinimized(); }else{ ui->btn_min->setPixmap(QPixmap(":/pixmap/image/miniButton.png")); } } else { return QObject::eventFilter(obj, event); } } if(obj == ui->btn_close){ //最小化、最大化、关闭按钮换图 if(event->type() == QEvent::Enter){ ui->btn_close->setPixmap(QPixmap(":/pixmap/image/closeButton-hover.png")); }else if(event->type() == QEvent::Leave){ ui->btn_close->setPixmap(QPixmap(":/pixmap/image/closeButton.png")); }else if(event->type() == QEvent::MouseButtonPress){ ui->btn_close->setPixmap(QPixmap(":/pixmap/image/closeButton-hover.png")); }else if(event->type() == QEvent::MouseButtonRelease){ QMouseEvent *me = (QMouseEvent *)event; QLabel *lb = (QLabel *)obj; if(me->x() > 0 && me->x() < lb->width() && me->y() > 0 && me->y() < lb->height()){ this->close(); emit closePersonalchatdlg(bareJid); }else{ ui->btn_close->setPixmap(QPixmap(":/pixmap/image/closeButton.png")); } } else { return QObject::eventFilter(obj, event); } } if(obj==ui->closeButton||obj==ui->sendMessageButton ||obj==ui->sendfileButton ||obj==ui->saveFileButton ||obj==ui->refuseButton) { if(event->type() == QEvent::MouseButtonPress) { QMouseEvent *me = (QMouseEvent *)event; dragPos = me->globalPos() - frameGeometry().topLeft(); }else if(event->type() == QEvent::MouseButtonRelease) { setWindowOpacity(1); } } return QObject::eventFilter(obj, event); }
bool DataViewer::eventFilter(QObject *watched, QEvent *event) { if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event); if (mouseEvent->button() == Qt::RightButton) { const QPoint globalMousePos = mouseEvent->globalPos(); QTableView *tableView = d_ptr->m_tableData; Q_ASSERT(tableView); const QModelIndex tableModelIndex = tableView->indexAt(mouseEvent->pos()); if (tableModelIndex.isValid()) { QVariant data = tableView->model()->data(tableModelIndex); bool ok = false; int timestamp = data.toInt(&ok); if (ok) { QMenu menu; menu.addAction(d_ptr->m_timestampAction); if (menu.exec(globalMousePos)) { QMessageBox::information(this, QString(), QDateTime::fromTime_t(timestamp).toString()); } } } } } return BaseViewer::eventFilter(watched, event); }
bool KFontDialog::eventFilter(QObject *obj, QEvent *event) { if(obj == ui->btn_close) { if(event->type() == QEvent::Enter){ ui->btn_close->setPixmap(QPixmap(":/pixmap/image/closeBtn-hover.png")); }else if(event->type() == QEvent::Leave){ ui->btn_close->setPixmap(QPixmap(":/pixmap/image/closeBtn.png")); }else if(event->type() == QEvent::MouseButtonPress){ ui->btn_close->setPixmap(QPixmap(":/pixmap/image/closeBtn-hover.png")); }else if(event->type() == QEvent::MouseButtonRelease){ QMouseEvent *me = (QMouseEvent *)event; QLabel *lb = (QLabel *)obj; if(me->x() > 0 && me->x() < lb->width() && me->y() > 0 && me->y() < lb->height()){ this->close(); }else{ ui->btn_close->setPixmap(QPixmap(":/pixmap/image/closeBtn.png")); } } else { return QObject::eventFilter(obj, event); } } if(obj == ui->okBtn ||obj == ui->quitBtn) { if(event->type() == QEvent::MouseButtonPress) { QMouseEvent *me = (QMouseEvent *)event; dragPos = me->globalPos() - frameGeometry().topLeft(); }else if(event->type() == QEvent::MouseButtonRelease) { setWindowOpacity(1); } } return QObject::eventFilter(obj, event); }
WebKitPlatformMouseEvent::WebKitPlatformMouseEvent(QInputEvent* event, int clickCount) { m_timestamp = WTF::currentTime(); bool isContextMenuEvent = false; #ifndef QT_NO_CONTEXTMENU if (event->type() == QEvent::ContextMenu) { isContextMenuEvent = true; m_type = PlatformEvent::MousePressed; QContextMenuEvent* ce = static_cast<QContextMenuEvent*>(event); m_position = IntPoint(ce->pos()); m_globalPosition = IntPoint(ce->globalPos()); m_button = RightButton; } #endif if (!isContextMenuEvent) { PlatformEvent::Type type; mouseEventTypeAndMouseButtonFromQEvent(event, type, m_button); QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event); m_type = type; m_position = IntPoint(mouseEvent->pos()); m_globalPosition = IntPoint(mouseEvent->globalPos()); } m_clickCount = clickCount; mouseEventModifiersFromQtKeyboardModifiers(event->modifiers(), m_modifiers); }
bool EigenPlotDlg::eventFilter(QObject* pObject, QEvent* pEvent) { if ((pObject != NULL) && (pEvent != NULL)) { if (pObject == mpPlot) { QEvent::Type eventType = pEvent->type(); if ((eventType == QEvent::MouseButtonPress) || (eventType == QEvent::MouseMove)) { QMouseEvent* pMouseEvent = static_cast<QMouseEvent*>(pEvent); if (mpCurve != NULL) { QPoint ptMouse = mpPlot->canvas()->mapFromGlobal(pMouseEvent->globalPos()); // Get the component number and eigen value int iIndex = mpCurve->closestPoint(ptMouse); int iComponentValue = static_cast<int>(mpCurve->x(iIndex)); double dEigenValue = mpCurve->y(iIndex); // Update the plot axis title QString strTitle; strTitle.sprintf("Component %d, Eigen Value = %f", iComponentValue, dEigenValue); mpPlot->setAxisTitle(QwtPlot::xBottom, strTitle); // Update the selected number of components mpComponentsSpin->setValue(iComponentValue); } } } } return QDialog::eventFilter(pObject, pEvent); }
bool WidgetGraphicsItem::eventFilter( QObject *object, QEvent *e ) { if ( !visible() || d->m_widget == 0 ) { return false; } MarbleWidget *widget = dynamic_cast<MarbleWidget*> (object); if ( !widget ) { return ScreenGraphicsItem::eventFilter(object, e); } if ( d->m_marbleWidget != widget ) { // Delayed initialization d->m_marbleWidget = widget; } Q_ASSERT(d->m_marbleWidget); if ( e->type() == QEvent::MouseButtonDblClick || e->type() == QEvent::MouseMove || e->type() == QEvent::MouseButtonPress || e->type() == QEvent::MouseButtonRelease ) { // Mouse events are forwarded to the underlying widget QMouseEvent *event = static_cast<QMouseEvent*> ( e ); QList<QPointF> widgetPositions = absolutePositions(); QRectF widgetItemRect; QPoint shiftedPos; QList<QPointF>::iterator it = widgetPositions.begin(); bool foundRightPosition = false; while( it != widgetPositions.end() && !foundRightPosition ) { widgetItemRect = QRectF( *it, size() ); if ( widgetItemRect.contains( event->pos() ) ) { foundRightPosition = true; shiftedPos = event->pos() - widgetItemRect.topLeft().toPoint(); } } if ( foundRightPosition ) { QWidget *child = d->m_widget->childAt( shiftedPos ); if ( child ) { d->m_marbleWidget->setCursor( Qt::ArrowCursor ); shiftedPos -= child->pos(); // transform to children's coordinates QMouseEvent shiftedEvent = QMouseEvent( e->type(), shiftedPos, event->globalPos(), event->button(), event->buttons(), event->modifiers() ); if ( QApplication::sendEvent( child, &shiftedEvent ) ) { return true; } } } } return ScreenGraphicsItem::eventFilter(object, e); }
bool CloudView::eventFilter(QObject *obj, QEvent *event) { if (obj == mHeader) { static QPoint oldPos; if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *ev = (QMouseEvent *)event; oldPos = ev->globalPos(); return true; } else if (event->type() == QEvent::MouseMove) { QMouseEvent *ev = (QMouseEvent *)event; const QPoint delta = ev->globalPos() - oldPos; MainWindow *win = seafApplet->mainWindow(); win->move(win->x() + delta.x(), win->y() + delta.y()); oldPos = ev->globalPos(); return true; } } else if (obj == mDropArea) { if (event->type() == QEvent::DragEnter) { QDragEnterEvent *ev = (QDragEnterEvent *)event; if (ev->mimeData()->hasUrls() && ev->mimeData()->urls().size() == 1) { const QUrl url = ev->mimeData()->urls().at(0); if (url.isLocalFile()) { QString path = url.toLocalFile(); if (QFileInfo(path).isDir()) { ev->acceptProposedAction(); } } } return true; } else if (event->type() == QEvent::Drop) { QDropEvent *ev = (QDropEvent *)event; const QUrl url = ev->mimeData()->urls().at(0); QString path = url.toLocalFile(); showCreateRepoDialog(path); return true; } } return QWidget::eventFilter(obj, event); }
bool ScalableWrapper::eventFilter(QObject* _object, QEvent* _event) { bool needShowMenu = false; QPoint cursorPos = QCursor::pos(); switch (_event->type()) { case QEvent::ContextMenu: { QContextMenuEvent* contextMenuEvent = static_cast<QContextMenuEvent*>(_event); cursorPos = m_editor->viewport()->mapFromGlobal(contextMenuEvent->globalPos()); needShowMenu = true; break; } case QEvent::MouseButtonPress: { QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(_event); if (mouseEvent->button() == Qt::RightButton) { cursorPos = m_editor->viewport()->mapFromGlobal(mouseEvent->globalPos()); needShowMenu = true; } break; } default: { break; } } bool result = false; // // Если необходимо, то показываем контекстное меню в отдельном прокси элементе, // предварительно вернув ему 100% масштаб // if (needShowMenu) { QMenu* menu = m_editor->createStandardContextMenu(); QGraphicsProxyWidget* menuProxy = m_editorProxy->createProxyForChildWidget(menu); const qreal antiZoom = 1. / m_zoomRange; menuProxy->setScale(antiZoom); menuProxy->setPos(QCursor::pos()); menu->exec(); delete menu; // // Событие перехвачено // result = true; } // // Если нет, то стандартная обработка события // else { result = QGraphicsView::eventFilter(_object, _event); } return result; }
bool WindowEventFilter::eventFilter(QObject *watched, QEvent *event) { if (watched != mpWindow) return false; if (event->type() == QEvent::WindowStateChange) { QWindowStateChangeEvent *e = static_cast<QWindowStateChangeEvent*>(event); mpWindow->updateGeometry(); if (mpWindow->windowState().testFlag(Qt::WindowFullScreen) || e->oldState().testFlag(Qt::WindowFullScreen)) { emit fullscreenChanged(); } return false; } if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *me = static_cast<QMouseEvent*>(event); Qt::MouseButton mbt = me->button(); if (mbt == Qt::LeftButton) { gMousePos = me->globalPos(); iMousePos = me->pos(); } return false; } if (event->type() == QEvent::MouseButtonRelease) { QMouseEvent *me = static_cast<QMouseEvent*>(event); Qt::MouseButton mbt = me->button(); if (mbt != Qt::LeftButton) return false; iMousePos = QPoint(); gMousePos = QPoint(); return false; } if (event->type() == QEvent::MouseMove) { if (iMousePos.isNull() || gMousePos.isNull()) return false; QMouseEvent *me = static_cast<QMouseEvent*>(event); int x = mpWindow->pos().x(); int y = mpWindow->pos().y(); int dx = me->globalPos().x() - gMousePos.x(); int dy = me->globalPos().y() - gMousePos.y(); gMousePos = me->globalPos(); mpWindow->move(x + dx, y + dy); return false; } return false; }
bool GooeyDoubleSpinBox::eventFilter(QObject* object, QEvent* event) { QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event); switch(event->type()) { case QEvent::MouseButtonPress: if(mouseEvent->button() == Qt::LeftButton) { _lastMousePos = mouseEvent->globalPos(); } break; case QEvent::MouseButtonRelease: if(mouseEvent->button() == Qt::LeftButton) { _lastMousePos = QPoint(); // Reset the point ! } break; case QEvent::MouseMove: if(mouseEvent->buttons() & Qt::LeftButton) { QPoint pos = mouseEvent->globalPos(); double dx = _spinBox->singleStep() * (pos.x() - _lastMousePos.x()); if(mouseEvent->modifiers() & Qt::CTRL) { dx *= 2.0; } else if(mouseEvent->modifiers() & Qt::SHIFT) { dx *= 0.5; } _spinBox->setValue( _spinBox->value() + dx ); // Update position ! _lastMousePos = pos; } break; default: break; } return false; }
bool ProfileInner::event(QEvent *e) { if (e->type() == QEvent::MouseMove) { QMouseEvent *ev = dynamic_cast<QMouseEvent*>(e); if (ev) { _lastPos = ev->globalPos(); updateSelected(); } } return QWidget::event(e); }
bool ItemButton::eventFilter(QObject *obj, QEvent *event) { if(event->type() == QEvent::ContextMenu) { QMouseEvent *mouseEvent = static_cast<QMouseEvent *> (event); menu->exec(mouseEvent->globalPos()); return false; } else return QPushButton::eventFilter(obj,event); }
void PhotoDialog::photoTreeWidgetCustomPopupMenu( QPoint point ) { QMenu contextMnu( this ); QMouseEvent *mevent = new QMouseEvent( QEvent::MouseButtonPress, point, Qt::RightButton, Qt::RightButton, Qt::NoModifier ); QAction *openphotoAct = new QAction(QIcon(":/images/openimage.png"), tr( "Open" ), this ); openphotoAct->setShortcut(Qt::CTRL + Qt::Key_O); connect( openphotoAct , SIGNAL( triggered(QTreeWidgetItem * , int) ), this, SLOT( showPhoto( QTreeWidgetItem *, int ) ) ); QAction *removephotoAct = new QAction(QIcon(IMAGE_REMOVE), tr( "Remove" ), this ); removephotoAct->setShortcut(Qt::Key_Delete); connect( removephotoAct , SIGNAL( triggered() ), this, SLOT( removePhoto() ) ); rateExcellenAct = new QAction(QIcon(":/images/rate-5.png"), tr("Excellent"), this); rateExcellenAct->setShortcut(Qt::CTRL + Qt::Key_5); connect(rateExcellenAct, SIGNAL(triggered()), this, SLOT(rateExcellent())); rateGoodAct = new QAction(QIcon(":/images/rate-4.png"), tr("Good"), this); rateGoodAct->setShortcut(Qt::CTRL + Qt::Key_4); connect(rateGoodAct, SIGNAL(triggered()), this, SLOT(rateGood())); rateAverageAct = new QAction(QIcon(":/images/rate-3.png"), tr("Average"), this); rateAverageAct->setShortcut(Qt::CTRL + Qt::Key_3); connect(rateAverageAct, SIGNAL(triggered()), this, SLOT(rateAvarge())); rateBelowAvarageAct = new QAction(QIcon(":/images/rate-2.png"), tr("Below avarage"), this); rateBelowAvarageAct->setShortcut(Qt::CTRL + Qt::Key_2); connect(rateBelowAvarageAct, SIGNAL(triggered()), this, SLOT(rateBelowAverage())); rateBadAct = new QAction(QIcon(":/images/rate-1.png"), tr("Bad"), this); rateBadAct->setShortcut(Qt::CTRL + Qt::Key_1); connect(rateBadAct, SIGNAL(triggered()), this, SLOT(rateBad())); rateUnratedAct = new QAction(tr("Unrated"), this); rateUnratedAct->setShortcut(Qt::CTRL + Qt::Key_0); connect(rateUnratedAct, SIGNAL(triggered()), this, SLOT(rateUnrated())); QMenu *ratingMenu = new QMenu(tr("Rating"), this); ratingMenu->setIcon(QIcon(":/images/rating.png")); ratingMenu->addAction(rateExcellenAct); ratingMenu->addAction(rateGoodAct); ratingMenu->addAction(rateAverageAct); ratingMenu->addAction(rateBelowAvarageAct); ratingMenu->addAction(rateBadAct); ratingMenu->addAction(rateUnratedAct); contextMnu.clear(); contextMnu.addAction(openphotoAct); contextMnu.addSeparator(); contextMnu.addMenu( ratingMenu); contextMnu.addSeparator(); contextMnu.addAction(removephotoAct); contextMnu.exec( mevent->globalPos() ); }
bool Drag::eventFilter(QObject * obj, QEvent * event) { if (event->type() == QEvent::ChildAdded) { QChildEvent *cEvent = static_cast< QChildEvent * >(event); childEvent(cEvent); } else if (event->type() == QEvent::DragLeave) { QDragLeaveEvent *dragEvent = static_cast< QDragLeaveEvent * >(event); dragLeaveEvent(dragEvent); return true; } else if (event->type() == QEvent::MouseMove) { QMouseEvent *cEvent = static_cast< QMouseEvent * >(event); if (m_data->source == m_data->qwidget->window()->childAt(cEvent->globalPos())) mouseMoveEvent(cEvent); // if (obj == m_data->qwidget) { #if 0 QWidget * w = qobject_cast< QWidget * >(obj); // QWidget * w = m_data->qwidget->childAt(cEvent->pos()); // Es reflective while(w && w != m_data->qwidget && !dynamic_cast< ReflectiveWidget * >(w)) w = w->parentWidget(); if (w) { if (dynamic_cast< ReflectiveWidget * >(w)) { const QPoint pos = m_data->qwidget->mapFromGlobal(w->parentWidget()->mapToGlobal(w->pos())); m_data->frame->setGeometry(w->rect()); m_data->frame->move(pos); } } #endif } } else if (event->type() == QEvent::MouseButtonPress) { QMouseEvent *cEvent = static_cast< QMouseEvent * >(event); mousePressEvent(cEvent); } return false; }
bool RouterKeygen::eventFilter(QObject *obj, QEvent *event) { // you may handle multiple objects checking "obj" parameter if (event->type() == QEvent::ContextMenu) { QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event); if (obj == ui->passwordsList) { rightButtonClicked(obj, mouseEvent->globalPos()); return true; } } return QObject::eventFilter(obj, event); }
PlatformMouseEvent::PlatformMouseEvent(QInputEvent* event, int clickCount) { m_timestamp = WTF::currentTime(); QMouseEvent* me = 0; switch (event->type()) { case QEvent::MouseMove: m_eventType = MouseEventMoved; me = static_cast<QMouseEvent *>(event); break; case QEvent::MouseButtonDblClick: case QEvent::MouseButtonPress: m_eventType = MouseEventPressed; me = static_cast<QMouseEvent *>(event); break; case QEvent::MouseButtonRelease: m_eventType = MouseEventReleased; me = static_cast<QMouseEvent *>(event); break; #ifndef QT_NO_CONTEXTMENU case QEvent::ContextMenu: { m_eventType = MouseEventPressed; QContextMenuEvent* ce = static_cast<QContextMenuEvent*>(event); m_position = IntPoint(ce->pos()); m_globalPosition = IntPoint(ce->globalPos()); m_button = RightButton; break; } #endif // QT_NO_CONTEXTMENU default: m_eventType = MouseEventMoved; } if (me) { m_position = IntPoint(me->pos()); m_globalPosition = IntPoint(me->globalPos()); if (me->button() == Qt::LeftButton || (me->buttons() & Qt::LeftButton)) m_button = LeftButton; else if (me->button() == Qt::RightButton || (me->buttons() & Qt::RightButton)) m_button = RightButton; else if (me->button() == Qt::MidButton || (me->buttons() & Qt::MidButton)) m_button = MiddleButton; else m_button = NoButton; } m_clickCount = clickCount; m_shiftKey = (event->modifiers() & Qt::ShiftModifier); m_ctrlKey = (event->modifiers() & Qt::ControlModifier); m_altKey = (event->modifiers() & Qt::AltModifier); m_metaKey = (event->modifiers() & Qt::MetaModifier); }
void TransfersDialog::downloadListCostumPopupMenu( QPoint point ) { QMenu contextMnu( this ); QMouseEvent *mevent = new QMouseEvent( QEvent::MouseButtonPress, point, Qt::RightButton, Qt::RightButton, Qt::NoModifier ); //showdowninfoAct = new QAction(QIcon(IMAGE_INFO), tr( "Details..." ), this ); //connect( showdowninfoAct , SIGNAL( triggered() ), this, SLOT( showDownInfoWindow() ) ); /* check which item is selected * - if it is completed - play should appear in menu */ std::cerr << "TransfersDialog::downloadListCostumPopupMenu()" << std::endl; bool addPlayOption = false; for(int i = 0; i <= DLListModel->rowCount(); i++) { std::cerr << "Row Status :" << getStatus(i, DLListModel).toStdString() << ":" << std::endl; if(selection->isRowSelected(i, QModelIndex())) { std::cerr << "Selected Row Status :" << getStatus(i, DLListModel).toStdString() << ":" << std::endl; QString qstatus = getStatus(i, DLListModel); std::string status = (qstatus.trimmed()).toStdString(); if (status == "Complete") { std::cerr << "Add Play Option" << std::endl; addPlayOption = true; } } } QAction *playAct = NULL; if (addPlayOption) { playAct = new QAction(QIcon(IMAGE_PLAY), tr( "Play" ), this ); connect( playAct , SIGNAL( triggered() ), this, SLOT( playSelectedTransfer() ) ); } cancelAct = new QAction(QIcon(IMAGE_CANCEL), tr( "Cancel" ), this ); connect( cancelAct , SIGNAL( triggered() ), this, SLOT( cancel() ) ); // clearcompletedAct = new QAction(QIcon(IMAGE_CLEARCOMPLETED), tr( "Clear Completed" ), this ); // connect( clearcompletedAct , SIGNAL( triggered() ), this, SLOT( clearcompleted() ) ); contextMnu.clear(); if (addPlayOption) { contextMnu.addAction(playAct); } contextMnu.addSeparator(); contextMnu.addAction( cancelAct); contextMnu.addSeparator(); // contextMnu.addAction( clearcompletedAct); contextMnu.exec( mevent->globalPos() ); }