bool ScoreView::editElementDragTransition(QMouseEvent* ev) { data.startMove = toLogical(ev->pos()); data.lastPos = data.startMove; data.pos = data.startMove; data.view = this; Element* e = elementNear(data.startMove); if (e && (e == editObject) && (editObject->isText())) { if (editObject->mousePress(data.startMove, ev)) { _score->addRefresh(editObject->canvasBoundingRect()); _score->end(); } return true; } int i; qreal a = grip[0].width() * 1.0; for (i = 0; i < grips; ++i) { if (grip[i].adjusted(-a, -a, a, a).contains(data.startMove)) { curGrip = i; data.curGrip = i; updateGrips(); score()->end(); break; } } return i != grips; }
void ScoreView::doDragEdit(QMouseEvent* ev) { data.lastPos = data.pos; data.pos = toLogical(ev->pos()); data.modifiers = qApp->keyboardModifiers(); if (!editObject->isBarLine()) { // on other elements, BOTH Ctrl (vert. constrain) and Shift (horiz. constrain) modifiers = NO constrain if (qApp->keyboardModifiers() == Qt::ShiftModifier) data.pos.setX(data.lastPos.x()); if (qApp->keyboardModifiers() == Qt::ControlModifier) data.pos.setY(data.lastPos.y()); } data.delta = data.pos - data.lastPos; score()->addRefresh(editObject->canvasBoundingRect()); if (editObject->isText()) { Text* text = static_cast<Text*>(editObject); text->dragTo(data.pos); } else { data.hRaster = false; data.vRaster = false; editObject->editDrag(data); updateGrips(); } QRectF r(editObject->canvasBoundingRect()); _score->addRefresh(r); _score->update(); }
void ScoreView::doDragEdit(QMouseEvent* ev) { QPointF p = toLogical(ev->pos()); QPointF delta = p - startMove; if (qApp->keyboardModifiers() == Qt::ShiftModifier) { p.setX(0.0); delta.setX(0.0); } else if (qApp->keyboardModifiers() == Qt::ControlModifier) { if(editObject->type() == Element::BAR_LINE) BarLine::setCtrlDrag(true); else { p.setY(0.0); delta.setY(0.0); } } _score->setLayoutAll(false); score()->addRefresh(editObject->canvasBoundingRect()); if (editObject->isText()) { Text* text = static_cast<Text*>(editObject); text->dragTo(p); } else { EditData ed; ed.view = this; ed.curGrip = curGrip; ed.delta = delta; ed.pos = p; ed.hRaster = false; ed.vRaster = false; editObject->editDrag(ed); updateGrips(); startMove = p; } QRectF r(editObject->canvasBoundingRect()); _score->addRefresh(r); _score->update(); }
void ScoreView::doDragEdit(QMouseEvent* ev) { data.lastPos = data.pos; data.pos = toLogical(ev->pos()); // on bar lines, Ctrl (single bar line) and Shift (precision drag) modifiers can be active independently if (editObject->type() == Element::Type::BAR_LINE) { if (qApp->keyboardModifiers() & Qt::ShiftModifier) BarLine::setShiftDrag(true); if (qApp->keyboardModifiers() & Qt::ControlModifier) BarLine::setCtrlDrag(true); } // on other elements, BOTH Ctrl (vert. constrain) and Shift (horiz. constrain) modifiers = NO constrain else { if (qApp->keyboardModifiers() == Qt::ShiftModifier) data.pos.setX(data.lastPos.x()); if (qApp->keyboardModifiers() == Qt::ControlModifier) data.pos.setY(data.lastPos.y()); } data.delta = data.pos - data.lastPos; _score->setLayoutAll(false); score()->addRefresh(editObject->canvasBoundingRect()); if (editObject->isText()) { Text* text = static_cast<Text*>(editObject); text->dragTo(data.pos); } else { data.hRaster = false; data.vRaster = false; editObject->editDrag(data); updateGrips(); } QRectF r(editObject->canvasBoundingRect()); _score->addRefresh(r); _score->update(); }
void ScoreView::doDragEdit(QMouseEvent* ev) { data.lastPos = data.pos; data.pos = toLogical(ev->pos()); if (qApp->keyboardModifiers() == Qt::ShiftModifier) { if (editObject->type() == ElementType::BAR_LINE) BarLine::setShiftDrag(true); else data.pos.setX(data.lastPos.x()); } if (qApp->keyboardModifiers() == Qt::ControlModifier) { if (editObject->type() == ElementType::BAR_LINE) BarLine::setCtrlDrag(true); else data.pos.setY(data.lastPos.y()); } data.delta = data.pos - data.lastPos; _score->setLayoutAll(false); score()->addRefresh(editObject->canvasBoundingRect()); if (editObject->isText()) { Text* text = static_cast<Text*>(editObject); text->dragTo(data.pos); } else { data.hRaster = false; data.vRaster = false; editObject->editDrag(data); updateGrips(); } QRectF r(editObject->canvasBoundingRect()); _score->addRefresh(r); _score->update(); }