void CanvasMode_ObjImport::mouseMoveEvent(QMouseEvent *m) { m->accept(); if (commonMouseMove(m)) return; }
void CanvasMode_Magnifier::mouseMoveEvent(QMouseEvent *m) { // const double mouseX = m->globalX(); // const double mouseY = m->globalY(); const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); m_lastPosWasOverGuide = false; double newX, newY; m->accept(); if (commonMouseMove(m)) return; if ((m_canvas->m_viewMode.m_MouseButtonPressed) && (m->buttons() & Qt::LeftButton)) { newX = qRound(mousePointDoc.x()); //m_view->translateToDoc(m->x(), m->y()).x()); newY = qRound(Myp + ((SeRx - Mxp) * m_view->visibleHeight()) / m_view->visibleWidth()); SeRx = newX; SeRy = newY; /* m_view->redrawMarker->setGeometry(QRect(Mxp, Myp, m->globalPos().x() - Mxp, m->globalPos().y() - Myp).normalized()); */ QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp)); m_view->redrawMarker->setGeometry(QRect(startP, m->globalPos()).normalized()); if (!m_view->redrawMarker->isVisible()) m_view->redrawMarker->show(); m_view->HaveSelRect = true; } }
void CanvasMode_Normal::mouseMoveEvent(QMouseEvent *m) { // qDebug()<<"CanvasMode_Normal::mouseMoveEvent"; // const double mouseX = m->globalX(); // const double mouseY = m->globalY(); const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); m_lastPosWasOverGuide = false; double newX, newY; PageItem *currItem; bool erf = false; m->accept(); // qDebug() << "legacy mode move:" << m->x() << m->y() << m_canvas->globalToCanvas(m->globalPos()).x() << m_canvas->globalToCanvas(m->globalPos()).y(); // emit MousePos(m->x()/m_canvas->scale(),// + m_doc->minCanvasCoordinate.x(), // m->y()/m_canvas->scale()); // + m_doc->minCanvasCoordinate.y()); if (commonMouseMove(m)) return; m_mouseCurrentPoint = mousePointDoc; if ((m_doc->guidesSettings.guidesShown) && (!m_doc->GuideLock) && (m_doc->OnPage(mousePointDoc.x(), mousePointDoc.y()) != -1) ) { if( ((m_doc->guidesSettings.before) && (m_canvas->itemUnderCursor(m->globalPos()))) == false ) { if (!guideMoveGesture) { guideMoveGesture = new RulerGesture(m_view, RulerGesture::HORIZONTAL); connect(guideMoveGesture,SIGNAL(guideInfo(int, qreal)), m_ScMW->alignDistributePalette,SLOT(setGuide(int, qreal))); } if (guideMoveGesture->mouseHitsGuide(mousePointDoc)) { m_lastPosWasOverGuide = true; switch (guideMoveGesture->getMode()) { case RulerGesture::HORIZONTAL: qApp->changeOverrideCursor(QCursor(Qt::SplitVCursor)); break; case RulerGesture::VERTICAL: qApp->changeOverrideCursor(QCursor(Qt::SplitHCursor)); break; default: qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); } return; } // Here removed a bunch of comments which made reading code difficult, // there is svn for tracking changes after all. pm qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); } }
void CanvasMode_CopyProperties::mouseMoveEvent(QMouseEvent *m) { m->accept(); if (commonMouseMove(m)) return; if ((m_canvas->m_viewMode.m_MouseButtonPressed) && (m->buttons() & Qt::LeftButton)) { QPoint startP = m_canvas->canvasToGlobal(QPointF(Mxp, Myp)); m_view->redrawMarker->setGeometry(QRect(startP, m->globalPos()).normalized()); if (!m_view->redrawMarker->isVisible()) m_view->redrawMarker->show(); m_view->HaveSelRect = true; return; } }
void CanvasMode_Magnifier::mouseMoveEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); m_lastPosWasOverGuide = false; double newX, newY; m->accept(); if (commonMouseMove(m)) return; if (m_view->moveTimerElapsed() && m_canvas->m_viewMode.m_MouseButtonPressed && (m->buttons() & Qt::LeftButton)) { newX = qRound(mousePointDoc.x()); //m_view->translateToDoc(m->x(), m->y()).x()); newY = qRound(m_Myp + ((m_SeRx - m_Mxp) * m_view->visibleHeight()) / m_view->visibleWidth()); m_SeRx = newX; m_SeRy = newY; QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable2 ? QPointF(m_Dxp, m_Dyp) : QPointF(m_Mxp, m_Myp)); m_view->redrawMarker->setGeometry(QRect(m_view->mapFromGlobal(startP), m_view->mapFromGlobal(m->globalPos())).normalized()); m_view->setRedrawMarkerShown(true); m_view->HaveSelRect = true; } }
void CanvasMode_FrameLinks::mouseMoveEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); m->accept(); if (commonMouseMove(m)) return; if ((m_canvas->m_viewMode.m_MouseButtonPressed) && (m->buttons() & Qt::LeftButton)) { SeRx = qRound(mousePointDoc.x()); //m_view->translateToDoc(m->x(), m->y()).x()); SeRy = qRound(mousePointDoc.y()); //m_view->translateToDoc(m->x(), m->y()).y()); /* m_view->redrawMarker->setGeometry(QRect(Mxp, Myp, m->globalPos().x() - Mxp, m->globalPos().y() - Myp).normalized()); */ QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable || m_doc->appMode == modeDrawTable2 ? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp)); m_view->redrawMarker->setGeometry(QRect(startP, m->globalPos()).normalized()); if (!m_view->redrawMarker->isVisible()) m_view->redrawMarker->show(); m_view->HaveSelRect = true; return; } }
void BezierMode::mouseMoveEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); double newX, newY; PageItem *currItem; QPoint np, np2, mop; FPoint npf, npf2; QRect tx; m->accept(); m_canvas->displayCorrectedXYHUD(m->globalPos(), mousePointDoc.x(), mousePointDoc.y()); // qDebug() << "legacy mode move:" << m->x() << m->y() << m_canvas->globalToCanvas(m->globalPos()).x() << m_canvas->globalToCanvas(m->globalPos()).y(); // emit MousePos(m->x()/m_canvas->scale(),// + m_doc->minCanvasCoordinate.x(), // m->y()/m_canvas->scale()); // + m_doc->minCanvasCoordinate.y()); /* if (m_doc->guidesPrefs().guidesShown) { if (MoveGY) { m_view->FromHRuler(m); return; } if (MoveGX) { m_view->FromVRuler(m); return; } } */ if (commonMouseMove(m)) return; if (inItemCreation) { if ((GetItem(&currItem)) && (!shiftSelItems)) { newX = qRound(mousePointDoc.x()); //m_view->translateToDoc(m->x(), m->y()).x()); newY = qRound(mousePointDoc.y()); //m_view->translateToDoc(m->x(), m->y()).y()); if (m_doc->DragP) return; if (m_doc->appMode == modeDrawBezierLine) { if ((m_doc->SnapGrid) && (m_doc->OnPage(currItem) != -1)) { newX = qRound(newX / m_doc->guidesPrefs().minorGridSpacing) * m_doc->guidesPrefs().minorGridSpacing; newY = qRound(newY / m_doc->guidesPrefs().minorGridSpacing) * m_doc->guidesPrefs().minorGridSpacing; } m_canvas->newRedrawPolygon() << QPoint(qRound(newX - currItem->xPos()), qRound(newY - currItem->yPos())); m_view->updateCanvas(); Mxp = newX; Myp = newY; } } else { if ((m_MouseButtonPressed) && (m->buttons() & Qt::LeftButton)) { newX = qRound(mousePointDoc.x()); //m_view->translateToDoc(m->x(), m->y()).x()); newY = qRound(mousePointDoc.y()); //m_view->translateToDoc(m->x(), m->y()).y()); SeRx = newX; SeRy = newY; QPoint startP = m_canvas->canvasToGlobal(QPointF(Mxp, Myp)); m_view->redrawMarker->setGeometry(QRect(m_view->mapFromGlobal(startP), m_view->mapFromGlobal(m->globalPos())).normalized()); m_view->setRedrawMarkerShown(true); m_view->HaveSelRect = true; return; } } } }
void CalligraphicMode::mouseMoveEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); double newX, newY; PageItem *currItem; QPoint np, np2, mop; FPoint npf, npf2; QRect tx; m->accept(); m_canvas->displayCorrectedXYHUD(m->globalPos(), mousePointDoc.x(), mousePointDoc.y()); if (commonMouseMove(m)) return; if (m_MouseButtonPressed && (m_doc->appMode == modeDrawCalligraphicLine)) { double newXF = mousePointDoc.x(); //m_view->translateToDoc(m->x(), m->y()).x(); double newYF = mousePointDoc.y(); //m_view->translateToDoc(m->x(), m->y()).y(); if (RecordP.size() > 0) { if (FPoint(newXF, newYF) != RecordP.point(RecordP.size()-1)) RecordP.addPoint(FPoint(newXF, newYF)); } else RecordP.addPoint(FPoint(newXF, newYF)); QPolygon& redrawPolygon(m_canvas->newRedrawPolygon()); double mx = sin(m_doc->itemToolPrefs().calligraphicPenAngle / 180.0 * M_PI) * (m_doc->itemToolPrefs().calligraphicPenWidth / 2.0); double my = cos(m_doc->itemToolPrefs().calligraphicPenAngle / 180.0 * M_PI) * (m_doc->itemToolPrefs().calligraphicPenWidth / 2.0); for (int px = 0; px < RecordP.size()-1; ++px) { FPoint clp = RecordP.point(px); redrawPolygon.append(QPoint(qRound(clp.x() - mx), qRound(clp.y() - my))); redrawPolygon.prepend(QPoint(qRound(clp.x() + mx), qRound(clp.y() + my))); } redrawPolygon.append(QPoint(qRound(RecordP.point(RecordP.size()-1).x() + mx), qRound(RecordP.point(RecordP.size()-1).y() + my))); //FIXME m_canvas->m_viewMode.operItemResizing = true; QRect bRect = m_canvas->redrawPolygon().boundingRect(); m_view->updateCanvas(bRect); return; } if (GetItem(&currItem)) { newX = qRound(mousePointDoc.x()); //m_view->translateToDoc(m->x(), m->y()).x()); newY = qRound(mousePointDoc.y()); //m_view->translateToDoc(m->x(), m->y()).y()); if (m_doc->DragP) return; if ((!m_MouseButtonPressed) && (m_doc->appMode != modeDrawBezierLine)) { if (m_doc->m_Selection->isMultipleSelection()) { setModeCursor(); return; } for (int a = 0; a < m_doc->m_Selection->count(); ++a) { currItem = m_doc->m_Selection->itemAt(a); if (currItem->locked()) break; setModeCursor(); } } } else { if ((m_MouseButtonPressed) && (m->buttons() & Qt::LeftButton)) { newX = qRound(mousePointDoc.x()); //m_view->translateToDoc(m->x(), m->y()).x()); newY = qRound(mousePointDoc.y()); //m_view->translateToDoc(m->x(), m->y()).y()); SeRx = newX; SeRy = newY; QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable2 ? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp)); m_view->redrawMarker->setGeometry(QRect(m_view->mapFromGlobal(startP), m_view->mapFromGlobal(m->globalPos())).normalized()); m_view->setRedrawMarkerShown(true); m_view->HaveSelRect = true; return; } } }
void CreateMode::mouseMoveEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); modifiers = m->modifiers(); double newX, newY; PageItem *currItem; QPoint np, np2, mop; QPainter p; QRect tx; m->accept(); // qDebug() << "legacy mode move:" << m->x() << m->y() << m_canvas->globalToCanvas(m->globalPos()).x() << m_canvas->globalToCanvas(m->globalPos()).y(); // emit MousePos(m->x()/m_canvas->scale(),// + m_doc->minCanvasCoordinate.x(), // m->y()/m_canvas->scale()); // + m_doc->minCanvasCoordinate.y()); if (commonMouseMove(m)) return; if (GetItem(&currItem)) { newX = mousePointDoc.x(); //m_view->translateToDoc(m->x(), m->y()).x()); newY = mousePointDoc.y(); //m_view->translateToDoc(m->x(), m->y()).y()); if (m_doc->DragP) return; } else { if ((m_MouseButtonPressed) && (m->buttons() & Qt::LeftButton)) { newX = mousePointDoc.x(); newY = mousePointDoc.y(); if (createObjectMode == modeDrawLine) { if (m_doc->SnapGrid) { newX = qRound(newX / m_doc->guidesPrefs().minorGridSpacing) * m_doc->guidesPrefs().minorGridSpacing; newY = qRound(newY / m_doc->guidesPrefs().minorGridSpacing) * m_doc->guidesPrefs().minorGridSpacing; } if (m->modifiers() & Qt::ControlModifier) { QRectF bounds(QPointF(createObjectPos.x(), createObjectPos.y()), QPointF(newX, newY)); double newRot = xy2Deg(bounds.width(), bounds.height()); if (newRot < 0.0) newRot += 360; newRot = constrainAngle(newRot, m_doc->opToolPrefs().constrain); double len = qMax(0.01, distance(bounds.width(), bounds.height())); bounds.setSize(len * QSizeF(cosd(newRot), sind(newRot))); newX = bounds.right(); newY = bounds.bottom(); } } //CB: #8099: Readd snapping for drag creation of lines by commenting this else.. //else //{ FPoint np2 = m_doc->ApplyGridF(FPoint(newX, newY)); double nx = np2.x(); double ny = np2.y(); m_doc->ApplyGuides(&nx, &ny); m_doc->ApplyGuides(&nx, &ny,true); if(nx!=np2.x()) xSnap = nx; if(ny!=np2.y()) ySnap = ny; // #8959 : suppress qRound here as this prevent drawing line with angle constrain // precisely and does not allow to stick precisely to grid or guides newX = /*qRound(*/nx/*)*/; newY = /*qRound(*/ny/*)*/; //} canvasCurrCoord.setXY(newX, newY); m_view->HaveSelRect = true; double wSize = canvasCurrCoord.x() - createObjectPos.x(); double hSize = canvasCurrCoord.y() - createObjectPos.y(); QRectF createObjectRect(createObjectPos.x(), createObjectPos.y(), wSize, hSize); createObjectRect = createObjectRect.normalized(); if (createObjectMode != modeDrawLine) { if (modifiers == Qt::ControlModifier) hSize = wSize; m_canvas->displaySizeHUD(m->globalPos(), wSize, hSize, false); } else { double angle = -xy2Deg(wSize, hSize); if (angle < 0.0) angle = angle + 360; double trueLength = sqrt(pow(createObjectRect.width(), 2) + pow(createObjectRect.height(), 2)); m_canvas->displaySizeHUD(m->globalPos(), trueLength, angle, true); } // Necessary for drawControls to be called m_canvas->repaint(); } else m_canvas->displayCorrectedXYHUD(m->globalPos(), mousePointDoc.x(), mousePointDoc.y()); } }
void CanvasMode_Normal::mouseMoveEvent(QMouseEvent *m) { // qDebug()<<"CanvasMode_Normal::mouseMoveEvent"; // const double mouseX = m->globalX(); // const double mouseY = m->globalY(); const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); m_lastPosWasOverGuide = false; double newX, newY; PageItem *currItem; bool erf = false; m->accept(); // qDebug() << "legacy mode move:" << m->x() << m->y() << m_canvas->globalToCanvas(m->globalPos()).x() << m_canvas->globalToCanvas(m->globalPos()).y(); // emit MousePos(m->x()/m_canvas->scale(),// + m_doc->minCanvasCoordinate.x(), // m->y()/m_canvas->scale()); // + m_doc->minCanvasCoordinate.y()); if (commonMouseMove(m)) return; m_mouseCurrentPoint = mousePointDoc; bool movingOrResizing = (m_canvas->m_viewMode.operItemMoving || m_canvas->m_viewMode.operItemResizing); bool mouseIsOnPage = (m_doc->OnPage(mousePointDoc.x(), mousePointDoc.y()) != -1); if ((m_doc->guidesPrefs().guidesShown) && (!m_doc->GuideLock) && (!movingOrResizing) && (mouseIsOnPage) ) { // #9002: Resize points undraggable when object is aligned to a guide // Allow item resize when guides are aligned to item while preserving // ability to drag guide when guis is in foreground and inside selection bool enableGuideGesture(false); Canvas::FrameHandle frameResizeHandle(Canvas::OUTSIDE); if (m_doc->m_Selection->count() > 0) { double gx(0.0), gy(0.0), gw(0.0), gh(0.0); m_doc->m_Selection->setGroupRect(); m_doc->m_Selection->getVisualGroupRect(&gx, &gy, &gw, &gh); frameResizeHandle = m_canvas->frameHitTest(QPointF(mousePointDoc.x(),mousePointDoc.y()), QRectF(gx, gy, gw, gh)); } enableGuideGesture |= (frameResizeHandle == Canvas::OUTSIDE); enableGuideGesture |= ((!m_doc->guidesPrefs().guidePlacement) && (frameResizeHandle == Canvas::INSIDE)); if (enableGuideGesture) { if (!guideMoveGesture) { guideMoveGesture = new RulerGesture(m_view, RulerGesture::HORIZONTAL); connect(guideMoveGesture,SIGNAL(guideInfo(int, qreal)), m_ScMW->alignDistributePalette,SLOT(setGuide(int, qreal))); } if (guideMoveGesture->mouseHitsGuide(mousePointDoc)) { m_lastPosWasOverGuide = true; switch (guideMoveGesture->getMode()) { case RulerGesture::HORIZONTAL: qApp->changeOverrideCursor(QCursor(Qt::SplitVCursor)); break; case RulerGesture::VERTICAL: qApp->changeOverrideCursor(QCursor(Qt::SplitHCursor)); break; default: qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); } return; } // Here removed a bunch of comments which made reading code difficult, // there is svn for tracking changes after all. pm qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); }