summaryrefslogtreecommitdiff
path: root/muse2/awl/sigspinbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/awl/sigspinbox.cpp')
-rw-r--r--muse2/awl/sigspinbox.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/muse2/awl/sigspinbox.cpp b/muse2/awl/sigspinbox.cpp
index 3f1bf1f4..5ee98bc9 100644
--- a/muse2/awl/sigspinbox.cpp
+++ b/muse2/awl/sigspinbox.cpp
@@ -1,10 +1,12 @@
#include "sigspinbox.h"
+#include "al/sig.h"
#include <QKeyEvent>
#include <stdio.h>
SigSpinBox::SigSpinBox(QWidget *parent) :
QSpinBox(parent)
{
+ _denominator=false;
}
void SigSpinBox::keyPressEvent(QKeyEvent*ev)
{
@@ -17,8 +19,36 @@ void SigSpinBox::keyPressEvent(QKeyEvent*ev)
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;
}
QSpinBox::keyPressEvent(ev);
}
+
+void SigSpinBox::setDenominator()
+{
+ _denominator=true;
+}