summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets/sigedit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/widgets/sigedit.cpp')
-rw-r--r--muse2/muse/widgets/sigedit.cpp86
1 files changed, 35 insertions, 51 deletions
diff --git a/muse2/muse/widgets/sigedit.cpp b/muse2/muse/widgets/sigedit.cpp
index cbfa0cd1..9af1d7eb 100644
--- a/muse2/muse/widgets/sigedit.cpp
+++ b/muse2/muse/widgets/sigedit.cpp
@@ -5,26 +5,24 @@
// (C) Copyright 2001 Werner Schweer (ws@seh.de)
//=========================================================
-#include "sigedit.h"
-
#include <stdio.h>
-#include <q3rangecontrol.h>
-#include <QApplication>
+#include <values.h>
+
+#include <QEvent>
+#include <QKeyEvent>
+#include <QList>
+#include <QMouseEvent>
+#include <QPainter>
+#include <QPaintEvent>
#include <QPixmap>
-#include <q3valuelist.h>
+#include <QResizeEvent>
#include <QString>
#include <QStyle>
-//Added by qt3to4:
#include <QTimerEvent>
-#include <QPaintEvent>
-#include <QResizeEvent>
-#include <QMouseEvent>
-#include <QKeyEvent>
-#include <QEvent>
-#include <values.h>
-#include <QPainter>
-#include <QTimer>
+
#include "sig.h"
+#include "sigedit.h"
+#include "spinbox.h"
extern int mtcType;
@@ -74,13 +72,13 @@ class NumberSection
// SigEditor
//---------------------------------------------------------
-class SigEditor : public QWidget
+class SigEditor : public QLineEdit
{
SigEdit* cw;
bool frm;
QPixmap *pm;
int focusSec;
- Q3ValueList<NumberSection> sections;
+ QList<NumberSection> sections;
int offset;
int section(const QPoint&);
@@ -91,6 +89,7 @@ class SigEditor : public QWidget
void resizeEvent(QResizeEvent*);
void paintEvent(QPaintEvent*);
void mousePressEvent(QMouseEvent *e);
+ void keyPressEvent(QKeyEvent * event );
void applyFocusSelection() {}
public:
@@ -106,7 +105,6 @@ class SigEditor : public QWidget
void appendSection(const NumberSection& sec);
void clearSections();
void setSectionSelection(int sec, int selstart, int selend);
- bool eventFilter(QObject *o, QEvent *e);
};
//---------------------------------------------------------
@@ -123,7 +121,7 @@ int SigEditor::section(const QPoint& pt)
int y = 0;
int w = width();
int h = height();
- for (unsigned int i = 0; i < sections.count(); ++i) {
+ for (int i = 0; i < sections.count(); ++i) {
QString s = cw->sectionFormattedText(i);
QRect bb = p.boundingRect(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s);
int nx = bb.x() + bb.width();
@@ -144,8 +142,9 @@ int SigEditor::section(const QPoint& pt)
//---------------------------------------------------------
SigEditor::SigEditor(SigEdit* parent, const char* name)
- : QWidget(parent, name)
+ : QLineEdit(parent)
{
+ setObjectName(name);
cw = parent;
frm = true;
focusSec = 0;
@@ -172,7 +171,6 @@ void SigEditor::init()
setBackgroundMode(Qt::PaletteBase);
setFocusSection(-1);
setKeyCompression(true);
- installEventFilter(this);
setFocusPolicy(Qt::WheelFocus);
}
@@ -199,13 +197,13 @@ bool SigEditor::event(QEvent *e)
break;
}
}
- return QWidget::event(e);
+ return QLineEdit::event(e);
}
void SigEditor::resizeEvent(QResizeEvent *e)
{
pm->resize(e->size());
- QWidget::resizeEvent(e);
+ QLineEdit::resizeEvent(e);
}
//---------------------------------------------------------
@@ -229,7 +227,7 @@ void SigEditor::paintEvent(QPaintEvent *)
int h = height();
p.fillRect(0, 0, w, h, bg);
- for (unsigned int i = 0; i < sections.count(); ++i) {
+ for (int i = 0; i < sections.count(); ++i) {
QRect bb;
QString s = cw->sectionFormattedText(i);
@@ -268,64 +266,49 @@ void SigEditor::mousePressEvent(QMouseEvent *e)
}
//---------------------------------------------------------
-// eventFilter
+// keyPressEvent
//---------------------------------------------------------
-bool SigEditor::eventFilter(QObject *o, QEvent *e)
+void SigEditor::keyPressEvent(QKeyEvent * e )
{
- if (o != this)
- return false;
- if (e->type() != QEvent::KeyPress )
- return false;
-
- QKeyEvent *ke = (QKeyEvent*)e;
- switch (ke->key()) {
+ switch (e->key()) {
case Qt::Key_Right:
if (unsigned(focusSec) <= sections.count()) {
if (cw->setFocusSection(focusSec+1))
repaint(rect(), false);
}
- return true;
case Qt::Key_Left:
if (focusSec > 0 ) {
if (cw->setFocusSection(focusSec-1))
repaint(rect(), false);
}
- return true;
case Qt::Key_Up:
cw->stepUp();
- return true;
case Qt::Key_Down:
cw->stepDown();
- return true;
case Qt::Key_Backspace:
case Qt::Key_Delete:
cw->removeLastNumber(focusSec);
- return true;
case Qt::Key_Enter:
case Qt::Key_Return:
cw->enterPressed();
- return true;
default:
- QString txt = ke->text();
+ QString txt = e->text();
if (!txt.isEmpty() && txt[0] == '/') {
// do the same thing as KEY_RIGHT when the user presses the separator key
if (focusSec < (signed)(sections.count())) {
if (cw->setFocusSection(focusSec+1))
repaint(rect(), false);
}
- return true;
}
int num = txt[0].digitValue();
- //printf("SigEditor::eventFilter num:%d\n", num);
+ //printf("SigEditor::keyPressEvent num:%d\n", num);
if (num != -1) {
cw->addNumber(focusSec, num);
- return true;
}
}
- return false;
}
void SigEditor::appendSection(const NumberSection& sec)
@@ -370,8 +353,9 @@ bool SigEditor::setFocusSection(int idx)
//---------------------------------------------------------
SigEdit::SigEdit(QWidget* parent, const char* name)
- : QWidget(parent, name)
+ : QWidget(parent)
{
+ setObjectName(name);
init();
updateButtons();
}
@@ -387,8 +371,8 @@ SigEdit::~SigEdit()
void SigEdit::init()
{
ed = new SigEditor(this, "pos editor");
- controls = new Q3SpinWidget(this, "pos edit controls");
- controls->setEditWidget(ed);
+ controls = new SpinBox(this);
+ controls->setEditor(ed);
setFocusProxy(ed);
connect(controls, SIGNAL(stepUpPressed()), SLOT(stepUp()));
connect(controls, SIGNAL(stepDownPressed()), SLOT(stepDown()));
@@ -641,7 +625,7 @@ void SigEdit::addNumber(int secNo, int num)
//printf("SigEdit::addNumber secNo:%d num:%d voff:%d txt:%s\n", secNo, num, voff, txt.latin1());
- if (txt.length() == sec[secNo].len) {
+ if ((unsigned) txt.length() == sec[secNo].len) {
//printf("SigEdit::addNumber txt.length() == sec[secNo].len (%d)\n", sec[secNo].len);
if (!outOfRange(secNo, num - voff)) {
@@ -668,7 +652,7 @@ void SigEdit::addNumber(int secNo, int num)
accepted = true;
sec[secNo].val = temp;
}
- if (adv && (txt.length() == sec[secNo].len)) {
+ if (adv && ((unsigned) txt.length() == sec[secNo].len)) {
setFocusSection(ed->focusSection() + 1);
}
}
@@ -711,7 +695,8 @@ QSize SigEdit::sizeHint() const
QFontMetrics fm(font());
int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo
int h = fm.height() + fw * 2;
- int w = 2 + controls->upRect().width() + fw * 4;
+
+ int w = 2 + controls->arrowWidth() + fw * 4;
w += fm.width('9') * 5 + fm.width('/');
return QSize(w, h).expandedTo(QApplication::globalStrut());
}
@@ -740,8 +725,7 @@ void SigEdit::updateButtons()
case 128: upEnabled = false; break;
}
}
- controls->setUpEnabled(isEnabled() && upEnabled);
- controls->setDownEnabled(isEnabled() && downEnabled);
+ controls->setStepEnabled(isEnabled() & upEnabled, isEnabled() & downEnabled);
}
//---------------------------------------------------------