Fixed drawing grips on page
This commit is contained in:
parent
c5e4749f31
commit
011e57020e
2 changed files with 13 additions and 3 deletions
|
@ -69,6 +69,7 @@ NotationInteraction::NotationInteraction(Notation* notation, INotationUndoStackP
|
|||
|
||||
m_dragData.ed.view = new ScoreCallbacks();
|
||||
m_dropData.ed.view = new ScoreCallbacks();
|
||||
m_gripEditData.view = new ScoreCallbacks();
|
||||
}
|
||||
|
||||
NotationInteraction::~NotationInteraction()
|
||||
|
@ -464,13 +465,13 @@ void NotationInteraction::startDrag(const std::vector<Element*>& elems,
|
|||
}
|
||||
}
|
||||
|
||||
startEdit();
|
||||
|
||||
if (isGripEditStarted()) {
|
||||
m_gripEditData.element->startEditDrag(m_gripEditData);
|
||||
return;
|
||||
}
|
||||
|
||||
startEdit();
|
||||
|
||||
for (auto& group : m_dragData.dragGroups) {
|
||||
group->startDrag(m_dragData.ed);
|
||||
}
|
||||
|
@ -1601,8 +1602,12 @@ void NotationInteraction::drawGripPoints(QPainter* painter)
|
|||
qreal gripWidth = DEFAULT_GRIP_SIZE / painter->worldTransform().m11();
|
||||
qreal gripHeight = DEFAULT_GRIP_SIZE / painter->worldTransform().m22();
|
||||
QRectF newRect(-gripWidth / 2, -gripHeight / 2, gripWidth, gripHeight);
|
||||
|
||||
Element* page = m_gripEditData.element->findAncestor(ElementType::PAGE);
|
||||
QPointF pageOffset = page ? page->pos() : m_gripEditData.element->pos();
|
||||
|
||||
for (QRectF& gripRect: m_gripEditData.grip) {
|
||||
gripRect = newRect;
|
||||
gripRect = newRect.translated(pageOffset);
|
||||
}
|
||||
|
||||
m_gripEditData.element->updateGrips(m_gripEditData);
|
||||
|
|
|
@ -270,6 +270,11 @@ void NotationViewInputController::mouseMoveEvent(QMouseEvent* event)
|
|||
startDragElements(m_interactData.hitElement->type(), m_interactData.hitElement->offset());
|
||||
}
|
||||
|
||||
if (m_view->notationInteraction()->isGripEditStarted() && !m_view->notationInteraction()->isDragStarted()) {
|
||||
Element* selectedElement = m_view->notationInteraction()->selection()->element();
|
||||
startDragElements(selectedElement->type(), selectedElement->offset());
|
||||
}
|
||||
|
||||
DragMode mode = DragMode::BothXY;
|
||||
if (keyState & Qt::ShiftModifier) {
|
||||
mode = DragMode::OnlyY;
|
||||
|
|
Loading…
Reference in a new issue