summaryrefslogtreecommitdiff
path: root/muse2/muse
diff options
context:
space:
mode:
authorTim E. Real <termtech@rogers.com>2010-11-07 23:45:24 +0000
committerTim E. Real <termtech@rogers.com>2010-11-07 23:45:24 +0000
commit0fd9f3ae6d36777d6d3aac2d6d6c19f3f61dd769 (patch)
treed57c1dc7b180133af1a4d76eb073c69107a3bdec /muse2/muse
parent990e587a24686c77f63b9f7d280e3d16ac9d7626 (diff)
Conversion of TempoEdit class to QT4. Displays proper doubles now.
Diffstat (limited to 'muse2/muse')
-rw-r--r--muse2/muse/master/masteredit.cpp5
-rw-r--r--muse2/muse/widgets/tempolabel.cpp61
-rw-r--r--muse2/muse/widgets/tempolabel.h17
3 files changed, 41 insertions, 42 deletions
diff --git a/muse2/muse/master/masteredit.cpp b/muse2/muse/master/masteredit.cpp
index ae7dbecb..5ec6e9b7 100644
--- a/muse2/muse/master/masteredit.cpp
+++ b/muse2/muse/master/masteredit.cpp
@@ -153,8 +153,9 @@ MasterEdit::MasterEdit()
info->addWidget(curTempo);
info->addWidget(curSig);
connect(curSig, SIGNAL(valueChanged(int,int)), song, SLOT(setSig(int,int)));
- connect(curTempo, SIGNAL(valueChanged(double)), song, SLOT(setTempo(double)));
-
+ ///connect(curTempo, SIGNAL(valueChanged(double)), song, SLOT(setTempo(double)));
+ connect(curTempo, SIGNAL(tempoChanged(double)), song, SLOT(setTempo(double)));
+
//---------------------------------------------------
// master
//---------------------------------------------------
diff --git a/muse2/muse/widgets/tempolabel.cpp b/muse2/muse/widgets/tempolabel.cpp
index 35f75b09..25a3176a 100644
--- a/muse2/muse/widgets/tempolabel.cpp
+++ b/muse2/muse/widgets/tempolabel.cpp
@@ -5,9 +5,8 @@
// (C) Copyright 1999 Werner Schweer (ws@seh.de)
//=========================================================
-#include <qapplication.h>
-#include <qstyle.h>
-#include <qvalidator.h>
+#include <QApplication>
+#include <QStyle>
//Added by qt3to4:
#include <QLabel>
#include "tempolabel.h"
@@ -63,14 +62,13 @@ QSize TempoLabel::sizeHint() const
// TempoSpinBox
//---------------------------------------------------------
-TempoEdit::TempoEdit(QWidget* parent, const char* name)
- : QSpinBox(parent, name)
+TempoEdit::TempoEdit(QWidget* parent)
+ : QDoubleSpinBox(parent)
{
- setLineStep(100);
- setMaxValue(60000);
- setMinValue(3000);
- //setValidator(new QDoubleValidator(this)); ddskrjo
- connect(this, SIGNAL(valueChanged(int)), SLOT(tempoChanged(int)));
+ curVal = -1.0;
+ setSingleStep(1.0);
+ setRange(30.0, 600.0);
+ connect(this, SIGNAL(valueChanged(double)), SLOT(newValue(double)));
}
//---------------------------------------------------------
@@ -80,47 +78,46 @@ TempoEdit::TempoEdit(QWidget* parent, const char* name)
QSize TempoEdit::sizeHint() const
{
QFontMetrics fm(font());
- int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth,0, this); // ddskrjo
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
int h = fm.height() + fw * 2;
int w = 2 + fm.width(QString("000.00")) + fw * 4 + 30;
return QSize(w, h).expandedTo(QApplication::globalStrut());
}
//---------------------------------------------------------
-// mapValueToText
+// tempoChanged
//---------------------------------------------------------
-QString TempoEdit::mapValueToText(int val)
+void TempoEdit::newValue(double val)
{
- double v = val / 100.0;
- return QString("%1").arg(v, 3, 'f', 2);
+ if (val != curVal) {
+ curVal = val;
+ emit tempoChanged(curVal);
+ }
}
//---------------------------------------------------------
-// mapTextToValue
+// setValue
//---------------------------------------------------------
-int TempoEdit::mapTextToValue(bool* ok)
+void TempoEdit::setValue(double val)
{
- double v = text().toDouble(ok);
- return int(v * 100);
+ if (val != curVal) {
+ curVal = val;
+ blockSignals(true);
+ QDoubleSpinBox::setValue(val);
+ blockSignals(false);
+ }
}
-//---------------------------------------------------------
-// tempoChanged
-//---------------------------------------------------------
-
-void TempoEdit::tempoChanged(int val)
- {
- emit valueChanged(double(val)/100.0);
- }
//---------------------------------------------------------
-// setValue
+// tempo
//---------------------------------------------------------
-void TempoEdit::setValue(double val)
- {
- QSpinBox::setValue(int(val*100));
- }
+//int TempoEdit::tempo() const
+// {
+// return lrint(60000000.0/value());
+// }
+
diff --git a/muse2/muse/widgets/tempolabel.h b/muse2/muse/widgets/tempolabel.h
index 587938d7..71aeb4b8 100644
--- a/muse2/muse/widgets/tempolabel.h
+++ b/muse2/muse/widgets/tempolabel.h
@@ -8,8 +8,8 @@
#ifndef __TEMPOLABEL_H__
#define __TEMPOLABEL_H__
-#include <qlabel.h>
-#include <qspinbox.h>
+#include <QLabel>
+#include <QDoubleSpinBox>
//---------------------------------------------------------
// TempoLabel
@@ -35,25 +35,26 @@ class TempoLabel : public QLabel {
// TempoEdit
//---------------------------------------------------------
-class TempoEdit : public QSpinBox {
+class TempoEdit : public QDoubleSpinBox {
Q_OBJECT
+ double curVal;
+
protected:
QSize sizeHint() const;
- virtual QString mapValueToText(int);
- virtual int mapTextToValue(bool*);
private slots:
- void tempoChanged(int);
+ void newValue(double);
public slots:
void setValue(double);
signals:
- void valueChanged(double);
+ void tempoChanged(double);
public:
- TempoEdit(QWidget*, const char* name = 0);
+ TempoEdit(QWidget*);
+ //int tempo() const;
};
#endif