fix #22307, enable nudging texts with arrow keys when selected

This commit is contained in:
lasconic 2013-08-26 14:45:01 +02:00
parent 82ef459392
commit a5bb211fb0
8 changed files with 73 additions and 48 deletions

View file

@ -2051,7 +2051,7 @@ void Score::cmd(const QAction* a)
//
Element* el = selection().element();
if (cmd == "pitch-up") {
if (el && (el->type() == Element::ARTICULATION || el->type() == Element::FINGERING))
if (el && (el->type() == Element::ARTICULATION || el->isText()))
undoMove(el, el->userOff() + QPointF(0.0, -MScore::nudgeStep * el->spatium()));
else if (el && el->type() == Element::REST)
cmdMoveRest(static_cast<Rest*>(el), MScore::UP);
@ -2061,7 +2061,7 @@ void Score::cmd(const QAction* a)
upDown(true, UP_DOWN_CHROMATIC);
}
else if (cmd == "pitch-down") {
if (el && (el->type() == Element::ARTICULATION || el->type() == Element::FINGERING))
if (el && (el->type() == Element::ARTICULATION || el->isText()))
undoMove(el, el->userOff() + QPointF(0.0, MScore::nudgeStep * el->spatium()));
else if (el && el->type() == Element::REST)
cmdMoveRest(static_cast<Rest*>(el), MScore::DOWN);
@ -2093,10 +2093,18 @@ void Score::cmd(const QAction* a)
// remove measures if stave-range is 0-nstaves()
cmdDeleteSelectedMeasures();
}
else if (cmd == "pitch-up-octave")
upDown(true, UP_DOWN_OCTAVE);
else if (cmd == "pitch-down-octave")
upDown(false, UP_DOWN_OCTAVE);
else if (cmd == "pitch-up-octave") {
if (el && (el->type() == Element::ARTICULATION || el->isText()))
undoMove(el, el->userOff() + QPointF(0.0, -MScore::nudgeStep10 * el->spatium()));
else
upDown(true, UP_DOWN_OCTAVE);
}
else if (cmd == "pitch-down-octave") {
if (el && (el->type() == Element::ARTICULATION || el->isText()))
undoMove(el, el->userOff() + QPointF(0.0, MScore::nudgeStep10 * el->spatium()));
else
upDown(false, UP_DOWN_OCTAVE);
}
else if (cmd == "pitch-up-diatonic")
upDown(true, UP_DOWN_DIATONIC);
else if (cmd == "pitch-down-diatonic")

View file

@ -51,6 +51,8 @@ bool MScore::replaceFractions;
bool MScore::playRepeats;
bool MScore::panPlayback;
qreal MScore::nudgeStep;
qreal MScore::nudgeStep10;
qreal MScore::nudgeStep50;
int MScore::defaultPlayDuration;
QString MScore::partStyle;
QString MScore::lastError;

View file

@ -379,6 +379,8 @@ class MScore : public QObject {
static qreal vRaster() { return _vRaster; }
static void setHRaster(int val) { _hRaster = val; }
static void setVRaster(int val) { _vRaster = val; }
static void setNudgeStep10(qreal val) { nudgeStep10 = val; }
static void setNudgeStep50(qreal val) { nudgeStep50 = val; }
static QColor selectColor[4];
static QColor defaultColor;
@ -392,6 +394,8 @@ class MScore : public QObject {
static bool playRepeats;
static bool panPlayback;
static qreal nudgeStep;
static qreal nudgeStep10;
static qreal nudgeStep50;
static int defaultPlayDuration;
static QString partStyle;
static QString lastError;

View file

@ -500,7 +500,7 @@ Shortcut Shortcut::sc[] = {
A_CMD,
"stretch+",
QT_TRANSLATE_NOOP("action","Add More Stretch"),
QT_TRANSLATE_NOOP("action","Add More Stretch"),
QT_TRANSLATE_NOOP("action","Add more stretch"),
QT_TRANSLATE_NOOP("action","Add more stretch to selected measure")
),
Shortcut(
@ -508,7 +508,7 @@ Shortcut Shortcut::sc[] = {
A_CMD,
"stretch-",
QT_TRANSLATE_NOOP("action","Add Less Stretch"),
QT_TRANSLATE_NOOP("action","Less stretch"),
QT_TRANSLATE_NOOP("action","Add less stretch"),
QT_TRANSLATE_NOOP("action","Add less stretch to selected measure")
),
Shortcut(
@ -516,7 +516,7 @@ Shortcut Shortcut::sc[] = {
A_CMD,
"reset-beammode",
QT_TRANSLATE_NOOP("action","Reset Beam Mode"),
QT_TRANSLATE_NOOP("action","Reset Beam Mode"),
QT_TRANSLATE_NOOP("action","Reset beam mode"),
QT_TRANSLATE_NOOP("action","Reset beam mode of selected measures")
),
Shortcut(
@ -531,7 +531,7 @@ Shortcut Shortcut::sc[] = {
A_CMD,
"pitch-up",
QT_TRANSLATE_NOOP("action","Up"),
QT_TRANSLATE_NOOP("action","Pitch up")
QT_TRANSLATE_NOOP("action","Pitch up or move text or articulation up")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
@ -546,7 +546,7 @@ Shortcut Shortcut::sc[] = {
"pitch-up-octave",
QT_TRANSLATE_NOOP("action","Up Octave"),
QT_TRANSLATE_NOOP("action","Pitch up octave"),
QT_TRANSLATE_NOOP("action","Pitch up by an octave")
QT_TRANSLATE_NOOP("action","Pitch up by an octave or move text or articulation up")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY_PITCHED | STATE_NOTE_ENTRY_DRUM,
@ -573,7 +573,7 @@ Shortcut Shortcut::sc[] = {
A_CMD,
"pitch-down",
QT_TRANSLATE_NOOP("action","Down"),
QT_TRANSLATE_NOOP("action","Pitch down")
QT_TRANSLATE_NOOP("action","Pitch down or move text or articulation down")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
@ -588,7 +588,7 @@ Shortcut Shortcut::sc[] = {
"pitch-down-octave",
QT_TRANSLATE_NOOP("action","Down octave"),
QT_TRANSLATE_NOOP("action","Pitch down octave"),
QT_TRANSLATE_NOOP("action","Pitch down by an octave")
QT_TRANSLATE_NOOP("action","Pitch down by an octave or move text or articulation down")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY_PITCHED | STATE_NOTE_ENTRY_DRUM,
@ -616,13 +616,15 @@ Shortcut Shortcut::sc[] = {
STATE_NORMAL | STATE_NOTE_ENTRY,
0,
"prev-chord",
QT_TRANSLATE_NOOP("action","Previous chord")
QT_TRANSLATE_NOOP("action","Previous chord"),
QT_TRANSLATE_NOOP("action","Go to previous chord or move text left")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
0,
"prev-measure",
QT_TRANSLATE_NOOP("action","Previous measure")
QT_TRANSLATE_NOOP("action","Previous measure"),
QT_TRANSLATE_NOOP("action","Go to previous measure or move text left")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
@ -634,13 +636,15 @@ Shortcut Shortcut::sc[] = {
STATE_NORMAL | STATE_NOTE_ENTRY,
0,
"next-chord",
QT_TRANSLATE_NOOP("action","Next chord")
QT_TRANSLATE_NOOP("action","Next chord"),
QT_TRANSLATE_NOOP("action","Go to next chord or move text right")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
0,
"next-measure",
QT_TRANSLATE_NOOP("action","Next measure")
QT_TRANSLATE_NOOP("action","Next measure"),
QT_TRANSLATE_NOOP("action","Go to next measure or move text right")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
@ -755,32 +759,35 @@ Shortcut Shortcut::sc[] = {
0,
"add-slur",
QT_TRANSLATE_NOOP("action","Slur"),
QT_TRANSLATE_NOOP("action","Add Slur")
QT_TRANSLATE_NOOP("action","Add slur")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"add-hairpin",
QT_TRANSLATE_NOOP("action","Crescendo"),
QT_TRANSLATE_NOOP("action","Add Crescendo")
QT_TRANSLATE_NOOP("action","Add crescendo")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"add-hairpin-reverse",
QT_TRANSLATE_NOOP("action","Decrescendo")
QT_TRANSLATE_NOOP("action","Decrescendo"),
QT_TRANSLATE_NOOP("action","Add decrescendo")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"add-8va",
QT_TRANSLATE_NOOP("action","Ottava 8va")
QT_TRANSLATE_NOOP("action","Ottava 8va"),
QT_TRANSLATE_NOOP("action","Add ottava 8va")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"add-8vb",
QT_TRANSLATE_NOOP("action","Ottava 8vb")
QT_TRANSLATE_NOOP("action","Ottava 8vb"),
QT_TRANSLATE_NOOP("action","Add ottava 8vb")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY | STATE_EDIT | STATE_TEXT_EDIT | STATE_LYRICS_EDIT
@ -1129,7 +1136,7 @@ Shortcut Shortcut::sc[] = {
0,
"acciaccatura",
QT_TRANSLATE_NOOP("action","Acciaccatura"),
QT_TRANSLATE_NOOP("action","Acciaccatura"),
QT_TRANSLATE_NOOP("action","Add acciaccatura"),
QT_TRANSLATE_NOOP("action","Acciaccatura"),
acciaccatura_ICON
),
@ -1138,7 +1145,7 @@ Shortcut Shortcut::sc[] = {
0,
"appoggiatura",
QT_TRANSLATE_NOOP("action","Appoggiatura"),
QT_TRANSLATE_NOOP("action","Appoggiatura"),
QT_TRANSLATE_NOOP("action","Add appoggiatura"),
QT_TRANSLATE_NOOP("action","Appoggiatura"),
appoggiatura_ICON
),
@ -1148,7 +1155,7 @@ Shortcut Shortcut::sc[] = {
/* no stroke: 4th*/
"grace4",
QT_TRANSLATE_NOOP("action","Grace: quarter"),
QT_TRANSLATE_NOOP("action","Grace: quarter"),
QT_TRANSLATE_NOOP("action","Add quarter grace node"),
QT_TRANSLATE_NOOP("action","Grace: quarter"),
grace4_ICON
),
@ -1158,7 +1165,7 @@ Shortcut Shortcut::sc[] = {
/* no stroke: 16th*/
"grace16",
QT_TRANSLATE_NOOP("action","Grace: 16th"),
QT_TRANSLATE_NOOP("action","Grace: 16th"),
QT_TRANSLATE_NOOP("action","Add 16th grace note"),
QT_TRANSLATE_NOOP("action","Grace: 16th"),
grace16_ICON
),
@ -1168,7 +1175,7 @@ Shortcut Shortcut::sc[] = {
/* no stroke: 32nd*/
"grace32",
QT_TRANSLATE_NOOP("action","Grace: 32nd"),
QT_TRANSLATE_NOOP("action","Grace: 32nd"),
QT_TRANSLATE_NOOP("action","Add 32nd grace note"),
QT_TRANSLATE_NOOP("action","Grace: 32nd"),
grace32_ICON
),
@ -1177,7 +1184,7 @@ Shortcut Shortcut::sc[] = {
0,
"grace8b",
QT_TRANSLATE_NOOP("action","Grace: 8th after"),
QT_TRANSLATE_NOOP("action","Grace: 8th after"),
QT_TRANSLATE_NOOP("action","Add 8th grace note after"),
QT_TRANSLATE_NOOP("action","Grace: 8th after"),
grace8b_ICON
),
@ -1368,14 +1375,15 @@ Shortcut Shortcut::sc[] = {
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"lyrics",
QT_TRANSLATE_NOOP("action","Lyrics")
QT_TRANSLATE_NOOP("action","Lyrics"),
QT_TRANSLATE_NOOP("action","Add lyrics")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"tempo",
QT_TRANSLATE_NOOP("action","Tempo Marking..."),
QT_TRANSLATE_NOOP("action","Tempo Marking")
QT_TRANSLATE_NOOP("action","Add tempo marking")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
@ -1396,7 +1404,7 @@ Shortcut Shortcut::sc[] = {
0,
"frame-text",
QT_TRANSLATE_NOOP("action","Text"),
QT_TRANSLATE_NOOP("action","Add Frame Text")
QT_TRANSLATE_NOOP("action","Add frame text")
),
Shortcut(
STATE_NORMAL | STATE_NOTE_ENTRY,
@ -1569,13 +1577,15 @@ Shortcut Shortcut::sc[] = {
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"clef-violin",
QT_TRANSLATE_NOOP("action","Violin Clef")
QT_TRANSLATE_NOOP("action","Treble Clef"),
QT_TRANSLATE_NOOP("action","Add treble clef")
),
Shortcut (
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"clef-bass",
QT_TRANSLATE_NOOP("action","Bass Clef")
QT_TRANSLATE_NOOP("action","Bass Clef"),
QT_TRANSLATE_NOOP("action","Add bass clef")
),
Shortcut (
STATE_NORMAL,
@ -2069,7 +2079,8 @@ Shortcut Shortcut::sc[] = {
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"figured-bass",
QT_TRANSLATE_NOOP("action","Figured Bass")
QT_TRANSLATE_NOOP("action","Figured Bass"),
QT_TRANSLATE_NOOP("action","Add figured bass")
),
Shortcut(
STATE_NORMAL,
@ -2438,7 +2449,7 @@ Shortcut Shortcut::sc[] = {
STATE_NORMAL | STATE_NOTE_ENTRY,
A_CMD,
"add-brackets",
QT_TRANSLATE_NOOP("action","add brackets to notehead"),
QT_TRANSLATE_NOOP("action","Add brackets to notehead"),
brackets_ICON
),
// xml==0 marks end of list

View file

@ -232,9 +232,9 @@ void ScoreView::editKey(QKeyEvent* ev)
else {
xval = MScore::nudgeStep * _spatium;
if (modifiers & Qt::ControlModifier)
xval = preferences.nudgeStep10 * _spatium;
xval = MScore::nudgeStep10 * _spatium;
else if (modifiers & Qt::AltModifier)
xval = preferences.nudgeStep50 * _spatium;
xval = MScore::nudgeStep50 * _spatium;
}
yval = xval;

View file

@ -194,8 +194,8 @@ void Preferences::init()
sfPath = QDir(QString("%1%2;%3/%4").arg(mscoreGlobalShare).arg("sound").arg(wd).arg(QCoreApplication::translate("soundfonts_directory", "Soundfonts"))).absolutePath();
sfzPath = QDir(QString("%1/%2").arg(wd).arg(QCoreApplication::translate("sfz_files_directory", "SfzFiles"))).absolutePath();
nudgeStep10 = 1.0; // Ctrl + cursor key (default 1.0)
nudgeStep50 = 5.0; // Alt + cursor key (default 5.0)
MScore::setNudgeStep10(1.0); // Ctrl + cursor key (default 1.0)
MScore::setNudgeStep50(0.01); // Alt + cursor key (default 0.01)
MScore::setHRaster(2); // _spatium / value
MScore::setVRaster(2);

View file

@ -165,9 +165,6 @@ struct Preferences {
QString sfPath;
QString sfzPath;
double nudgeStep10; // Ctrl + cursor key (default 1.0)
double nudgeStep50; // Alt + cursor key (default 5.0)
bool nativeDialogs;
int exportAudioSampleRate;

View file

@ -1691,11 +1691,11 @@ void ScoreView::paintEvent(QPaintEvent* ev)
if (dragElement)
dragElement->scanElements(&vp, paintElement, false);
if (!dropAnchor.isNull()) {
QPen pen(QBrush(QColor(80, 0, 0)), 2.0 / vp.worldMatrix().m11(), Qt::DotLine);
QPen pen(QBrush(QColor(80, 0, 0)), 2.0 / vp.worldTransform().m11(), Qt::DotLine);
vp.setPen(pen);
vp.drawLine(dropAnchor);
qreal d = 4.0 / vp.worldMatrix().m11();
qreal d = 4.0 / vp.worldTransform().m11();
QRectF r(-d, -d, 2 * d, 2 * d);
vp.setBrush(QBrush(QColor(80, 0, 0)));
@ -2705,13 +2705,16 @@ void ScoreView::cmd(const QAction* a)
|| cmd == "next-measure"
|| cmd == "prev-measure") {
Element* el = score()->selection().element();
if (el && (el->type() == Element::FINGERING)) {
if (el && (el->isText())) {
score()->startCmd();
QPointF pt(MScore::nudgeStep * el->spatium(), 0.0);
if (cmd == "prev-chord")
score()->undoMove(el, el->userOff() - pt);
score()->undoMove(el, el->userOff() - QPointF (MScore::nudgeStep * el->spatium(), 0.0));
else if (cmd == "next-chord")
score()->undoMove(el, el->userOff() + pt);
score()->undoMove(el, el->userOff() + QPointF (MScore::nudgeStep * el->spatium(), 0.0));
else if (cmd == "prev-measure")
score()->undoMove(el, el->userOff() - QPointF (MScore::nudgeStep10 * el->spatium(), 0.0));
else if (cmd == "next-measure")
score()->undoMove(el, el->userOff() + QPointF (MScore::nudgeStep10 * el->spatium(), 0.0));
score()->endCmd();
}
else {