git-svn-id: svn://db.shs.com.ru/libs@360 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -196,23 +196,7 @@ void EvalSpinBox::setValue(double val) {
|
||||
|
||||
|
||||
void EvalSpinBox::stepBy(int steps) {
|
||||
QString t = text();
|
||||
if (eval.check(t)) {
|
||||
t = eval.expression();
|
||||
QRegExp re("(\\-?\\d+)");
|
||||
int pos = 0;
|
||||
if ((pos = re.indexIn(t)) != -1) {
|
||||
double v = t.mid(pos, re.matchedLength()).toDouble();
|
||||
v += steps;
|
||||
t.remove(pos, re.matchedLength());
|
||||
t.insert(pos, QString::number(v));
|
||||
} else {
|
||||
double v = steps;
|
||||
t = QString::number(v) + t;
|
||||
}
|
||||
eval.check(t);
|
||||
lineEdit()->setText(eval.expression());
|
||||
}
|
||||
stepByDouble(steps);
|
||||
}
|
||||
|
||||
|
||||
@@ -285,6 +269,37 @@ void EvalSpinBox::focusOutEvent(QFocusEvent * event) {
|
||||
}
|
||||
|
||||
|
||||
void EvalSpinBox::wheelEvent(QWheelEvent * event) {
|
||||
if (event->modifiers().testFlag(Qt::ShiftModifier))
|
||||
stepByDouble(event->delta() > 0 ? 0.1 : -0.1);
|
||||
else
|
||||
QAbstractSpinBox::wheelEvent(event);
|
||||
}
|
||||
|
||||
|
||||
void EvalSpinBox::stepByDouble(double steps) {
|
||||
//qDebug() << "step" << steps;
|
||||
QString t = text();
|
||||
if (eval.check(t)) {
|
||||
t = eval.expression();
|
||||
//QRegExp re("(\\-?\\d+)");
|
||||
QRegExp re("[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)");
|
||||
int pos = 0;
|
||||
if ((pos = re.indexIn(t)) != -1) {
|
||||
double v = t.mid(pos, re.matchedLength()).toDouble();
|
||||
v += steps;
|
||||
t.remove(pos, re.matchedLength());
|
||||
t.insert(pos, QString::number(v));
|
||||
} else {
|
||||
double v = steps;
|
||||
t = QString::number(v) + t;
|
||||
}
|
||||
eval.check(t);
|
||||
lineEdit()->setText(eval.expression());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void EvalSpinBox::setDefaultText(const QString & t) {
|
||||
// bool def = (!cw->isHidden());
|
||||
dt = t;
|
||||
|
||||
Reference in New Issue
Block a user