DragValue::DragValue(const QString &label, double defaultValue, int decimals, double min, double max, int id, const QString &suffix, bool showSlider, QWidget* parent) :
DragValue::DragValue(const QString &label, double defaultValue, int decimals, double min, double max, int id, const QString &suffix, bool showSlider, QWidget* parent) :
{
if (showSlider) setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
else setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding);
{
if (showSlider) setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
else setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding);
if (!suffix.isEmpty()) m_intEdit->setSuffix(suffix);
m_intEdit->setKeyboardTracking(false);
m_intEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
if (!suffix.isEmpty()) m_intEdit->setSuffix(suffix);
m_intEdit->setKeyboardTracking(false);
m_intEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
l->addWidget(m_intEdit);
connect(m_intEdit, SIGNAL(valueChanged(int)), this, SLOT(slotSetValue(int)));
connect(m_intEdit, SIGNAL(editingFinished()), this, SLOT(slotEditingFinished()));
l->addWidget(m_intEdit);
connect(m_intEdit, SIGNAL(valueChanged(int)), this, SLOT(slotSetValue(int)));
connect(m_intEdit, SIGNAL(editingFinished()), this, SLOT(slotEditingFinished()));
m_doubleEdit->setObjectName("dragBox");
if (!suffix.isEmpty()) m_doubleEdit->setSuffix(suffix);
m_doubleEdit->setKeyboardTracking(false);
m_doubleEdit->setObjectName("dragBox");
if (!suffix.isEmpty()) m_doubleEdit->setSuffix(suffix);
m_doubleEdit->setKeyboardTracking(false);
connect(m_label, SIGNAL(valueChanged(double,bool)), this, SLOT(setValueFromProgress(double,bool)));
connect(m_label, SIGNAL(resetValue()), this, SLOT(slotReset()));
setLayout(l);
connect(m_label, SIGNAL(valueChanged(double,bool)), this, SLOT(setValueFromProgress(double,bool)));
connect(m_label, SIGNAL(resetValue()), this, SLOT(slotReset()));
setLayout(l);
- if (m_intEdit) m_label->setMaximumHeight(m_intEdit->sizeHint().height());
- else m_label->setMaximumHeight(m_doubleEdit->sizeHint().height());
+ if (m_intEdit)
+ m_label->setMaximumHeight(m_intEdit->sizeHint().height());
+ else
+ m_label->setMaximumHeight(m_doubleEdit->sizeHint().height());
m_scale = new KSelectAction(i18n("Scaling"), this);
m_scale->addAction(i18n("Normal scale"));
m_scale->addAction(i18n("Pixel scale"));
m_scale = new KSelectAction(i18n("Scaling"), this);
m_scale->addAction(i18n("Normal scale"));
m_scale->addAction(i18n("Pixel scale"));
- m_maximum = max;
- if (m_intEdit) m_intEdit->setRange(m_minimum, m_maximum);
- else m_doubleEdit->setRange(m_minimum, m_maximum);
+ if (m_maximum != max) {
+ m_maximum = max;
+ if (m_intEdit)
+ m_intEdit->setRange(m_minimum, m_maximum);
+ else
+ m_doubleEdit->setRange(m_minimum, m_maximum);
+ }
- m_minimum = min;
- if (m_intEdit) m_intEdit->setRange(m_minimum, m_maximum);
- else m_doubleEdit->setRange(m_minimum, m_maximum);
+ if (m_minimum != min) {
+ m_minimum = min;
+ if (m_intEdit)
+ m_intEdit->setRange(m_minimum, m_maximum);
+ else
+ m_doubleEdit->setRange(m_minimum, m_maximum);
+ }
- if (m_intEdit) m_intEdit->setRange(m_minimum, m_maximum);
- else m_doubleEdit->setRange(m_minimum, m_maximum);
+ if (m_intEdit)
+ m_intEdit->setRange(m_minimum, m_maximum);
+ else
+ m_doubleEdit->setRange(m_minimum, m_maximum);
void DragValue::setValueFromProgress(double value, bool final)
{
value = m_minimum + value * (m_maximum - m_minimum) / m_label->maximum();
void DragValue::setValueFromProgress(double value, bool final)
{
value = m_minimum + value * (m_maximum - m_minimum) / m_label->maximum();
- if (m_decimals == 0) setValue(qRound(value), final);
- else setValue(value, final);
+ if (m_decimals == 0)
+ setValue(qRound(value), final);
+ else
+ setValue(value, final);
- if (m_intEdit) m_intEdit->setFocusPolicy(Qt::WheelFocus);
- else m_doubleEdit->setFocusPolicy(Qt::WheelFocus);
+ if (m_intEdit)
+ m_intEdit->setFocusPolicy(Qt::WheelFocus);
+ else
+ m_doubleEdit->setFocusPolicy(Qt::WheelFocus);
+
if (e->reason() == Qt::TabFocusReason || e->reason() == Qt::BacktabFocusReason) {
if (m_intEdit) m_intEdit->setFocus(e->reason());
else m_doubleEdit->setFocus(e->reason());
if (e->reason() == Qt::TabFocusReason || e->reason() == Qt::BacktabFocusReason) {
if (m_intEdit) m_intEdit->setFocus(e->reason());
else m_doubleEdit->setFocus(e->reason());