void CalligraphicMode::selectPage(QMouseEvent *m) { m_MouseButtonPressed = true; FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); Mxp = mousePointDoc.x(); //static_cast<int>(m->x()/m_canvas->scale()); Myp = mousePointDoc.y(); //static_cast<int>(m->y()/m_canvas->scale()); QRect mpo(m->x()-m_doc->guidesPrefs().grabRadius, m->y()-m_doc->guidesPrefs().grabRadius, m_doc->guidesPrefs().grabRadius*2, m_doc->guidesPrefs().grabRadius*2); m_doc->nodeEdit.deselect(); m_view->Deselect(false); if (!m_doc->masterPageMode()) { int i = m_doc->OnPage(Mxp, Myp); if (i!=-1) { uint docCurrPageNo=m_doc->currentPageNumber(); uint j=static_cast<uint>(i); if (docCurrPageNo != j) { m_doc->setCurrentPage(m_doc->Pages->at(j)); m_view->m_ScMW->slotSetCurrentPage(j); m_view->DrawNew(); } } } }
void CreateMode::mousePressEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); modifiers = m->modifiers(); double Rxp = 0, Ryp = 0; m_MouseButtonPressed = true; m_view->HaveSelRect = false; m_doc->DragP = false; m_doc->leaveDrag = false; inItemCreation = false; // oldClip = 0; m->accept(); m_view->registerMousePress(m->globalPos()); QRect mpo(m->x()-m_doc->guidesPrefs().grabRadius, m->y()-m_doc->guidesPrefs().grabRadius, m_doc->guidesPrefs().grabRadius*2, m_doc->guidesPrefs().grabRadius*2); // mpo.moveBy(qRound(m_doc->minCanvasCoordinate.x() * m_canvas->scale()), qRound(m_doc->minCanvasCoordinate.y() * m_canvas->scale())); canvasPressCoord = mousePointDoc; createObjectMode = m_doc->appMode; createObjectSubMode = m_doc->SubMode; createObjectPos = m_doc->ApplyGridF(canvasPressCoord); Rxp = m_doc->ApplyGridF(canvasPressCoord).x(); canvasPressCoord.setX(qRound(Rxp)); Ryp = m_doc->ApplyGridF(canvasPressCoord).y(); canvasPressCoord.setXY(qRound(Rxp), qRound(Ryp)); canvasCurrCoord = canvasPressCoord; m_doc->ApplyGuides(&Rxp, &Ryp); m_doc->ApplyGuides(&Rxp, &Ryp,true); createObjectPos.setXY(Rxp, Ryp); if (m->button() == Qt::MidButton) { m_view->MidButt = true; if (m->modifiers() & Qt::ControlModifier) m_view->DrawNew(); return; } if (m->button() == Qt::RightButton) { m_view->requestMode(modeNormal); return; } if (m->button() != Qt::LeftButton) return; selectPage(m); switch (m_doc->appMode) { case modeDrawTable2: m_view->Deselect(false); break; } inItemCreation = true; }
void BezierMode::selectPage(QMouseEvent *m) { m_MouseButtonPressed = true; FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); Mxp = mousePointDoc.x(); //static_cast<int>(m->x()/m_canvas->scale()); Myp = mousePointDoc.y(); //static_cast<int>(m->y()/m_canvas->scale()); QRect mpo(m->x()-m_doc->guidesPrefs().grabRadius, m->y()-m_doc->guidesPrefs().grabRadius, m_doc->guidesPrefs().grabRadius*2, m_doc->guidesPrefs().grabRadius*2); // mpo.moveBy(qRound(Doc->minCanvasCoordinate.x() * m_canvas->scale()), qRound(m_doc->minCanvasCoordinate.y() * m_canvas->scale())); m_doc->nodeEdit.deselect(); m_view->Deselect(false); if (!m_doc->masterPageMode()) { int i = m_doc->OnPage(Mxp, Myp); if (i!=-1) { uint docCurrPageNo=m_doc->currentPageNumber(); uint j=static_cast<uint>(i); if (docCurrPageNo != j) { m_doc->setCurrentPage(m_doc->Pages->at(j)); m_view->m_ScMW->slotSetCurrentPage(j); m_view->DrawNew(); } } /* uint docPagesCount=m_doc->Pages->count(); uint docCurrPageNo=m_doc->currentPageNumber(); for (uint i = 0; i < docPagesCount; ++i) { int x = static_cast<int>(m_doc->Pages->at(i)->xOffset() * m_canvas->scale()); int y = static_cast<int>(m_doc->Pages->at(i)->yOffset() * m_canvas->scale()); int w = static_cast<int>(m_doc->Pages->at(i)->width() * m_canvas->scale()); int h = static_cast<int>(m_doc->Pages->at(i)->height() * m_canvas->scale()); if (QRect(x, y, w, h).intersects(mpo)) { if (docCurrPageNo != i) { m_doc->setCurrentPage(m_doc->Pages->at(i)); setMenTxt(i); DrawNew(); } break; } } */ //FIXME m_view->setRulerPos(m_view->contentsX(), m_view->contentsY()); } }
void CalligraphicMode::mousePressEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); double Rxp = 0; double Ryp = 0; FPoint npf, npf2; QRect tx; QTransform pm; m_MouseButtonPressed = true; m_view->HaveSelRect = false; m_doc->DragP = false; m_doc->leaveDrag = false; m->accept(); m_view->registerMousePress(m->globalPos()); Mxp = mousePointDoc.x(); //qRound(m->x()/m_canvas->scale() + 0*m_doc->minCanvasCoordinate.x()); Myp = mousePointDoc.y(); //qRound(m->y()/m_canvas->scale() + 0*m_doc->minCanvasCoordinate.y()); QRect mpo(m->x()-m_doc->guidesPrefs().grabRadius, m->y()-m_doc->guidesPrefs().grabRadius, m_doc->guidesPrefs().grabRadius*2, m_doc->guidesPrefs().grabRadius*2); Rxp = m_doc->ApplyGridF(FPoint(Mxp, Myp)).x(); Mxp = qRound(Rxp); Ryp = m_doc->ApplyGridF(FPoint(Mxp, Myp)).y(); Myp = qRound(Ryp); SeRx = Mxp; SeRy = Myp; if (m->button() == Qt::MidButton) { m_view->MidButt = true; if (m->modifiers() & Qt::ControlModifier) m_view->DrawNew(); return; } if (m->button() != Qt::LeftButton) { m_view->stopGesture(); return; } RecordP.resize(0); m_view->Deselect(false); Mxp = mousePointDoc.x(); //qRound(m->x()/m_canvas->scale() + 0*m_doc->minCanvasCoordinate.x()); Myp = mousePointDoc.y(); //qRound(m->y()/m_canvas->scale() + 0*m_doc->minCanvasCoordinate.y()); SeRx = Mxp; SeRy = Myp; m_canvas->setRenderModeFillBuffer(); undoManager->setUndoEnabled(false); }
void BezierMode::mousePressEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); int z; double Rxp = 0; double Ryp = 0; double Rxpd = 0; double Rypd = 0; PageItem *currItem; // m_canvas->PaintSizeRect(QRect()); FPoint npf, npf2; QRect tx; QTransform pm; m_MouseButtonPressed = true; m_view->HaveSelRect = false; m_doc->DragP = false; m_doc->leaveDrag = false; MoveGX = MoveGY = false; // inItemCreation = false; // oldClip = 0; m->accept(); m_view->registerMousePress(m->globalPos()); Mxp = mousePointDoc.x(); //qRound(m->x()/m_canvas->scale() + 0*m_doc->minCanvasCoordinate.x()); Myp = mousePointDoc.y(); //qRound(m->y()/m_canvas->scale() + 0*m_doc->minCanvasCoordinate.y()); QRect mpo(m->x()-m_doc->guidesPrefs().grabRadius, m->y()-m_doc->guidesPrefs().grabRadius, m_doc->guidesPrefs().grabRadius*2, m_doc->guidesPrefs().grabRadius*2); // mpo.moveBy(qRound(m_doc->minCanvasCoordinate.x() * m_canvas->scale()), qRound(m_doc->minCanvasCoordinate.y() * m_canvas->scale())); Rxp = m_doc->ApplyGridF(FPoint(Mxp, Myp)).x(); Rxpd = Mxp - Rxp; Mxp = qRound(Rxp); Ryp = m_doc->ApplyGridF(FPoint(Mxp, Myp)).y(); Rypd = Myp - Ryp; Myp = qRound(Ryp); SeRx = Mxp; SeRy = Myp; if (m->button() == Qt::MidButton) { m_view->MidButt = true; if (m->modifiers() & Qt::ControlModifier) m_view->DrawNew(); return; } if (m->button() == Qt::RightButton) { m_view->stopGesture(); return; } if (FirstPoly) { selectPage(m); undoManager->setUndoEnabled(false); z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs().lineWidth, CommonStrings::None, m_doc->itemToolPrefs().lineColor); currItem = m_doc->Items->at(z); m_doc->m_Selection->clear(); m_doc->m_Selection->addItem(currItem); m_view->setCursor(QCursor(Qt::CrossCursor)); m_canvas->setRenderModeFillBuffer(); inItemCreation = true; } currItem = m_doc->m_Selection->itemAt(0); // pm.translate(-m_doc->minCanvasCoordinate.x()*m_canvas->scale(), -m_doc->minCanvasCoordinate.y()*m_canvas->scale()); pm = currItem->getTransform(); npf = m_doc->ApplyGridF(mousePointDoc).transformPoint(pm, true); currItem->PoLine.addPoint(npf); npf2 = getMinClipF(&currItem->PoLine); if (npf2.x() < 0) { currItem->PoLine.translate(-npf2.x(), 0); m_doc->MoveItem(npf2.x(), 0, currItem); } if (npf2.y() < 0) { currItem->PoLine.translate(0, -npf2.y()); m_doc->MoveItem(0, npf2.y(), currItem); } m_doc->SizeItem(currItem->PoLine.WidthHeight().x(), currItem->PoLine.WidthHeight().y(), currItem, false, false, false); currItem->setPolyClip(qRound(qMax(currItem->lineWidth() / 2, 1.0))); m_canvas->newRedrawPolygon(); undoManager->setUndoEnabled(false); }
void CanvasMode_Rotate::mousePressEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); m_canvasPressCoord = mousePointDoc; double Rxp = 0, Ryp = 0; PageItem *currItem; m_canvas->PaintSizeRect(QRect()); QRect tx; QMatrix pm; m_canvas->m_viewMode.m_MouseButtonPressed = true; m_canvas->m_viewMode.operItemMoving = false; m_view->HaveSelRect = false; m_doc->leaveDrag = false; m->accept(); m_view->registerMousePress(m->globalPos()); QRect mpo(m->x()-m_doc->guidesSettings.grabRad, m->y()-m_doc->guidesSettings.grabRad, m_doc->guidesSettings.grabRad*2, m_doc->guidesSettings.grabRad*2); Rxp = m_doc->ApplyGridF(m_canvasPressCoord).x(); m_canvasPressCoord.setX( qRound(Rxp) ); Ryp = m_doc->ApplyGridF(m_canvasPressCoord).y(); m_canvasPressCoord.setY( qRound(Ryp) ); if (m->button() == Qt::MidButton) { m_view->MidButt = true; if (m->modifiers() & Qt::ControlModifier) m_view->DrawNew(); return; } if (m->button() != Qt::LeftButton) return; if (GetItem(&currItem)) { m_inItemRotation = true; m_oldRotMode = m_rotMode = m_doc->RotMode; m_oldRotCenter = m_rotCenter = m_view->RCenter; if (m_doc->m_Selection->isMultipleSelection()) { double gx, gy, gh, gw; double gxR, gyR, ghR, gwR; m_view->getGroupRectScreen(&gx, &gy, &gw, &gh); m_doc->m_Selection->getGroupRect(&gxR, &gyR, &gwR, &ghR); if (QRect(static_cast<int>(gx), static_cast<int>(gy), static_cast<int>(gw), static_cast<int>(gh)).intersects(mpo)) { m_rotMode = 2; m_rotCenter = FPoint(gxR+gwR/2.0, gyR+ghR/2.0); if (QRect(static_cast<int>(gx+gw)-6, static_cast<int>(gy+gh)-6, 6, 6).intersects(mpo)) { m_rotCenter = FPoint(gxR, gyR); m_rotMode = 0; } m_doc->RotMode = m_rotMode; m_view->RCenter = m_rotCenter; } m_startAngle = xy2Deg(mousePointDoc.x() - m_view->RCenter.x(), mousePointDoc.y() - m_view->RCenter.y()); m_view->oldW = m_startAngle; } else { QMatrix mat; m_canvas->Transform(currItem, mat); m_rotMode = 2; m_rotCenter = FPoint(currItem->width()/2, currItem->height()/2, 0, 0, currItem->rotation(), 1, 1, false); // if (!currItem->asLine()) // { if (QRegion(mat.map(QPolygon(QRect(0, 0, static_cast<int>(currItem->width()), static_cast<int>(currItem->height()))))).contains(mpo)) { if (mat.mapRect(QRect(0, 0, 6, 6)).intersects(mpo)) { m_rotCenter = FPoint(currItem->width(), currItem->height(), 0, 0, currItem->rotation(), 1, 1, false); m_rotMode = 4; } else if (mat.mapRect(QRect(static_cast<int>(currItem->width())-6, 0, 6, 6)).intersects(mpo)) { m_rotCenter = FPoint(0, currItem->height(), 0, 0, currItem->rotation(), 1, 1, false); m_rotMode = 3; } else if (mat.mapRect(QRect(static_cast<int>(currItem->width())-6, static_cast<int>(currItem->height())-6, 6, 6)).intersects(mpo)) { m_rotCenter = FPoint(0, 0); m_rotMode = 0; } else if (mat.mapRect(QRect(0, static_cast<int>(currItem->height())-6, 6, 6)).intersects(mpo)) { m_rotCenter = FPoint(currItem->width(), 0, 0, 0, currItem->rotation(), 1, 1, false); m_rotMode = 1; } } m_doc->RotMode = m_rotMode; m_view->RCenter = m_rotCenter; // } m_view->RCenter = m_rotCenter = FPoint(currItem->xPos()+ m_view->RCenter.x(), currItem->yPos()+ m_view->RCenter.y()); //????? m_view->oldW = m_startAngle = xy2Deg(mousePointDoc.x() - m_view->RCenter.x(), mousePointDoc.y() - m_view->RCenter.y()); } } }