Changeset View
Changeset View
Standalone View
Standalone View
libs/ui/widgets/kis_slider_spin_box.cpp
Show All 30 Lines | |||||
31 | #include <QIntValidator> | 31 | #include <QIntValidator> | ||
32 | #include <QTimer> | 32 | #include <QTimer> | ||
33 | #include <QtDebug> | 33 | #include <QtDebug> | ||
34 | #include <QDoubleSpinBox> | 34 | #include <QDoubleSpinBox> | ||
35 | 35 | | |||
36 | #include "KisPart.h" | 36 | #include "KisPart.h" | ||
37 | #include "input/kis_input_manager.h" | 37 | #include "input/kis_input_manager.h" | ||
38 | 38 | | |||
39 | #include "kis_num_parser.h" | ||||
40 | | ||||
39 | class KisAbstractSliderSpinBoxPrivate { | 41 | class KisAbstractSliderSpinBoxPrivate { | ||
40 | public: | 42 | public: | ||
41 | enum Style { | 43 | enum Style { | ||
42 | STYLE_NOQUIRK, | 44 | STYLE_NOQUIRK, | ||
43 | STYLE_PLASTIQUE, | 45 | STYLE_PLASTIQUE, | ||
44 | STYLE_BREEZE, | 46 | STYLE_BREEZE, | ||
45 | STYLE_FUSION, | 47 | STYLE_FUSION, | ||
46 | }; | 48 | }; | ||
Show All 12 Lines | |||||
59 | qreal exponentRatio; | 61 | qreal exponentRatio; | ||
60 | int value; | 62 | int value; | ||
61 | int maximum; | 63 | int maximum; | ||
62 | int minimum; | 64 | int minimum; | ||
63 | int singleStep; | 65 | int singleStep; | ||
64 | QSpinBox* dummySpinBox; | 66 | QSpinBox* dummySpinBox; | ||
65 | Style style; | 67 | Style style; | ||
66 | bool blockUpdateSignalOnDrag; | 68 | bool blockUpdateSignalOnDrag; | ||
69 | bool parseInt; | ||||
67 | }; | 70 | }; | ||
68 | 71 | | |||
69 | KisAbstractSliderSpinBox::KisAbstractSliderSpinBox(QWidget* parent, KisAbstractSliderSpinBoxPrivate* _d) | 72 | KisAbstractSliderSpinBox::KisAbstractSliderSpinBox(QWidget* parent, KisAbstractSliderSpinBoxPrivate* _d) | ||
70 | : QWidget(parent) | 73 | : QWidget(parent) | ||
71 | , d_ptr(_d) | 74 | , d_ptr(_d) | ||
72 | { | 75 | { | ||
73 | Q_D(KisAbstractSliderSpinBox); | 76 | Q_D(KisAbstractSliderSpinBox); | ||
74 | QEvent e(QEvent::StyleChange); | 77 | QEvent e(QEvent::StyleChange); | ||
Show All 12 Lines | |||||
87 | d->edit->setAutoFillBackground(false); | 90 | d->edit->setAutoFillBackground(false); | ||
88 | QPalette pal = d->edit->palette(); | 91 | QPalette pal = d->edit->palette(); | ||
89 | pal.setColor(QPalette::Base, Qt::transparent); | 92 | pal.setColor(QPalette::Base, Qt::transparent); | ||
90 | d->edit->setPalette(pal); | 93 | d->edit->setPalette(pal); | ||
91 | 94 | | |||
92 | connect(d->edit, SIGNAL(editingFinished()), this, SLOT(editLostFocus())); | 95 | connect(d->edit, SIGNAL(editingFinished()), this, SLOT(editLostFocus())); | ||
93 | 96 | | |||
94 | d->validator = new QDoubleValidator(d->edit); | 97 | d->validator = new QDoubleValidator(d->edit); | ||
95 | d->edit->setValidator(d->validator); | 98 | //d->edit->setValidator(d->validator); | ||
dkazakov: Is this line ok? Looks like a forgotten debug | |||||
96 | 99 | | |||
97 | d->value = 0; | 100 | d->value = 0; | ||
98 | d->minimum = 0; | 101 | d->minimum = 0; | ||
99 | d->maximum = 100; | 102 | d->maximum = 100; | ||
100 | d->factor = 1.0; | 103 | d->factor = 1.0; | ||
101 | d->singleStep = 1; | 104 | d->singleStep = 1; | ||
102 | d->fastSliderStep = 5; | 105 | d->fastSliderStep = 5; | ||
103 | d->slowFactor = 0.1; | 106 | d->slowFactor = 0.1; | ||
104 | d->shiftMode = false; | 107 | d->shiftMode = false; | ||
105 | d->blockUpdateSignalOnDrag = false; | 108 | d->blockUpdateSignalOnDrag = false; | ||
106 | 109 | | |||
110 | d->parseInt = false; | ||||
111 | | ||||
107 | setExponentRatio(1.0); | 112 | setExponentRatio(1.0); | ||
108 | 113 | | |||
109 | //Set sane defaults | 114 | //Set sane defaults | ||
110 | setFocusPolicy(Qt::StrongFocus); | 115 | setFocusPolicy(Qt::StrongFocus); | ||
111 | setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); | 116 | setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); | ||
112 | 117 | | |||
113 | //dummy needed to fix a bug in the polyester theme | 118 | //dummy needed to fix a bug in the polyester theme | ||
114 | d->dummySpinBox = new QSpinBox(this); | 119 | d->dummySpinBox = new QSpinBox(this); | ||
▲ Show 20 Lines • Show All 371 Lines • ▼ Show 20 Line(s) | 483 | { | |||
486 | update(); | 491 | update(); | ||
487 | e->accept(); | 492 | e->accept(); | ||
488 | } | 493 | } | ||
489 | 494 | | |||
490 | void KisAbstractSliderSpinBox::commitEnteredValue() | 495 | void KisAbstractSliderSpinBox::commitEnteredValue() | ||
491 | { | 496 | { | ||
492 | Q_D(KisAbstractSliderSpinBox); | 497 | Q_D(KisAbstractSliderSpinBox); | ||
493 | 498 | | |||
494 | QLocale locale; | 499 | //QLocale locale; | ||
495 | bool ok = false; | 500 | bool ok = false; | ||
496 | 501 | | |||
497 | qreal value = locale.toDouble(d->edit->text(), &ok) * d->factor; | 502 | //qreal value = locale.toDouble(d->edit->text(), &ok) * d->factor; | ||
503 | qreal value; | ||||
504 | | ||||
505 | if (d->parseInt) { | ||||
506 | value = KisNumericParser::parseIntegerMathExpr(d->edit->text(), &ok) * d->factor; | ||||
507 | } else { | ||||
508 | value = KisNumericParser::parseSimpleMathExpr(d->edit->text(), &ok) * d->factor; | ||||
509 | } | ||||
510 | | ||||
498 | if (ok) { | 511 | if (ok) { | ||
499 | setInternalValue(value); | 512 | setInternalValue(value); | ||
500 | } | 513 | } | ||
501 | } | 514 | } | ||
502 | 515 | | |||
503 | bool KisAbstractSliderSpinBox::eventFilter(QObject* recv, QEvent* e) | 516 | bool KisAbstractSliderSpinBox::eventFilter(QObject* recv, QEvent* e) | ||
504 | { | 517 | { | ||
505 | Q_D(KisAbstractSliderSpinBox); | 518 | Q_D(KisAbstractSliderSpinBox); | ||
▲ Show 20 Lines • Show All 263 Lines • ▼ Show 20 Line(s) | 781 | { | |||
769 | setInternalValue(value, false); | 782 | setInternalValue(value, false); | ||
770 | } | 783 | } | ||
771 | 784 | | |||
772 | class KisSliderSpinBoxPrivate : public KisAbstractSliderSpinBoxPrivate { | 785 | class KisSliderSpinBoxPrivate : public KisAbstractSliderSpinBoxPrivate { | ||
773 | }; | 786 | }; | ||
774 | 787 | | |||
775 | KisSliderSpinBox::KisSliderSpinBox(QWidget* parent) : KisAbstractSliderSpinBox(parent, new KisSliderSpinBoxPrivate) | 788 | KisSliderSpinBox::KisSliderSpinBox(QWidget* parent) : KisAbstractSliderSpinBox(parent, new KisSliderSpinBoxPrivate) | ||
776 | { | 789 | { | ||
790 | Q_D(KisSliderSpinBox); | ||||
791 | | ||||
792 | d->parseInt = true; | ||||
793 | | ||||
777 | setRange(0,99); | 794 | setRange(0,99); | ||
778 | } | 795 | } | ||
779 | 796 | | |||
780 | KisSliderSpinBox::~KisSliderSpinBox() | 797 | KisSliderSpinBox::~KisSliderSpinBox() | ||
781 | { | 798 | { | ||
782 | } | 799 | } | ||
783 | 800 | | |||
784 | void KisSliderSpinBox::setRange(int minimum, int maximum) | 801 | void KisSliderSpinBox::setRange(int minimum, int maximum) | ||
▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Line(s) | 879 | { | |||
868 | } | 885 | } | ||
869 | } | 886 | } | ||
870 | 887 | | |||
871 | class KisDoubleSliderSpinBoxPrivate : public KisAbstractSliderSpinBoxPrivate { | 888 | class KisDoubleSliderSpinBoxPrivate : public KisAbstractSliderSpinBoxPrivate { | ||
872 | }; | 889 | }; | ||
873 | 890 | | |||
874 | KisDoubleSliderSpinBox::KisDoubleSliderSpinBox(QWidget* parent) : KisAbstractSliderSpinBox(parent, new KisDoubleSliderSpinBoxPrivate) | 891 | KisDoubleSliderSpinBox::KisDoubleSliderSpinBox(QWidget* parent) : KisAbstractSliderSpinBox(parent, new KisDoubleSliderSpinBoxPrivate) | ||
875 | { | 892 | { | ||
893 | Q_D(KisDoubleSliderSpinBox); | ||||
894 | d->parseInt = false; | ||||
876 | } | 895 | } | ||
877 | 896 | | |||
878 | KisDoubleSliderSpinBox::~KisDoubleSliderSpinBox() | 897 | KisDoubleSliderSpinBox::~KisDoubleSliderSpinBox() | ||
879 | { | 898 | { | ||
880 | } | 899 | } | ||
881 | 900 | | |||
882 | void KisDoubleSliderSpinBox::setRange(qreal minimum, qreal maximum, int decimals) | 901 | void KisDoubleSliderSpinBox::setRange(qreal minimum, qreal maximum, int decimals) | ||
883 | { | 902 | { | ||
▲ Show 20 Lines • Show All 117 Lines • Show Last 20 Lines |
Is this line ok? Looks like a forgotten debug