diff options
Diffstat (limited to 'muse2/awl/sigspinbox.cpp')
-rw-r--r-- | muse2/awl/sigspinbox.cpp | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/muse2/awl/sigspinbox.cpp b/muse2/awl/sigspinbox.cpp index 5ee98bc9..6e38b164 100644 --- a/muse2/awl/sigspinbox.cpp +++ b/muse2/awl/sigspinbox.cpp @@ -13,34 +13,13 @@ void SigSpinBox::keyPressEvent(QKeyEvent*ev) switch (ev->key()) { case Qt::Key_Return: emit returnPressed(); + return; break; case Qt::Key_Left: case Qt::Key_Right: case Qt::Key_Slash: emit moveFocus(); - break; - case Qt::Key_Up: - if (_denominator) { - // make sure that sig is valid then increase - AL::TimeSignature sig(4,value()); - if (sig.isValid()) - setValue(value()*2); - return; - } - break; - case Qt::Key_Down: - if (_denominator) { - // make sure that sig is valid then increase - AL::TimeSignature sig(4,value()); - if (sig.isValid()) { - int v = value()/2; - if (v<2) - v=2; - setValue(v); - return; - } return; - } break; default: break; @@ -52,3 +31,27 @@ void SigSpinBox::setDenominator() { _denominator=true; } + +void SigSpinBox::stepBy(int step) +{ + if (!_denominator) { + setValue(value() + step); + return; + } + + AL::TimeSignature sig(4, value()); + if (step == 1) { + // make sure that sig is valid then increase + if (sig.isValid()) + setValue(value() * 2); + } + else if (step == -1) { + // make sure that sig is valid then increase + if (sig.isValid()) { + int v = value() / 2; + if (v < 2) + v = 2; + setValue(v); + } + } +} |