void Selection::hoverEnterEvent(QGraphicsSceneHoverEvent * event) { if(isReadOnly()) return; setResizeCursor(event->pos()); }
void Selection::hoverMoveEvent(QGraphicsSceneHoverEvent * event) { if(isReadOnly()) return; if(rect().adjusted(THRESHOLD, THRESHOLD, -THRESHOLD, -THRESHOLD).contains(event->pos())) unsetCursor(); else setResizeCursor(event->pos()); }
void CanvasMode_Rotate::mouseMoveEvent(QMouseEvent *m) { const FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos()); m_canvasCurrCoord = mousePointDoc; m_angleConstrained = false; PageItem *currItem; QRect tx; m->accept(); if (GetItem(&currItem)) { m_angleConstrained = ((m->modifiers() & Qt::ControlModifier) != Qt::NoModifier); if (m_view->moveTimerElapsed() && m_canvas->m_viewMode.m_MouseButtonPressed) { m_canvas->repaint(); double itemRotation; FPoint itemPos; getNewItemPosition(currItem, itemPos, itemRotation); m_canvas->displayRotHUD(m->globalPos(), itemRotation); } if (!m_canvas->m_viewMode.m_MouseButtonPressed) { if (m_doc->m_Selection->isMultipleSelection()) { double gx, gy, gh, gw; m_doc->m_Selection->getVisualGroupRect(&gx, &gy, &gw, &gh); int how = m_canvas->frameHitTest(QPointF(mousePointDoc.x(),mousePointDoc.y()), QRectF(gx, gy, gw, gh)); if (how >= 0) { if (how > 0) { setResizeCursor(how); } qApp->changeOverrideCursor(QCursor(loadIcon("Rotieren2.png"))); } else { setModeCursor(); } return; } for (int a = 0; a < m_doc->m_Selection->count(); ++a) { currItem = m_doc->m_Selection->itemAt(a); if (currItem->locked()) break; QMatrix p; m_canvas->Transform(currItem, p); QRect mpo = QRect(m->x()-m_doc->guidesSettings.grabRad, m->y()-m_doc->guidesSettings.grabRad, m_doc->guidesSettings.grabRad*2, m_doc->guidesSettings.grabRad*2); if ((QRegion(p.map(QPolygon(QRect(-3, -3, static_cast<int>(currItem->width()+6), static_cast<int>(currItem->height()+6))))).contains(mpo))) { tx = p.mapRect(QRect(0, 0, static_cast<int>(currItem->width()), static_cast<int>(currItem->height()))); if ((tx.intersects(mpo)) && (!currItem->locked())) { qApp->changeOverrideCursor(QCursor(loadIcon("Rotieren2.png"))); if (!currItem->sizeLocked()) m_view->HandleCurs(currItem, mpo); } } else { // setModeCursor(); } } } } else { if ((m_canvas->m_viewMode.m_MouseButtonPressed) && (m->buttons() & Qt::LeftButton)) { QPoint startP = m_canvas->canvasToGlobal(m_canvasPressCoord); m_view->redrawMarker->setGeometry(QRect(startP, m->globalPos()).normalized()); if (!m_view->redrawMarker->isVisible()) m_view->redrawMarker->show(); m_view->HaveSelRect = true; return; } } }