Commit 1969a3d1 authored by NICLAUSSE Nicolas's avatar NICLAUSSE Nicolas

Merge branch 'feature/longlongspin' into 'develop'

Feature/longlongspin

See merge request !15
parents 96be275a 6f590f96
......@@ -54,6 +54,14 @@ int main(int argc, char **argv)
printf("scientific_parameter(XXX) = %.12f\n", value);
});
dtk::d_int longlong_parameter("A long long parameter", 666, 665, 800); // doc, value, min, max, decimals
dtkWidgetsParameter *longlong_parameter_widget = dtk::widgets::parameters::pluginFactory().create(&longlong_parameter, "dtkWidgetsParameterLongLongSpinBox");
longlong_parameter.connect([=] (QVariant v) {
long long value = v.value<dtk::d_int>().value();
printf("longlong_parameter(XXX) = %lld\n", value);
});
QList<QString> available_strings;
available_strings.append("FirstString");
available_strings.append("SecondString");
......@@ -93,6 +101,8 @@ int main(int argc, char **argv)
central_layout->addWidget(new QSplitter);
central_layout->addWidget(scientific_parameter_widget);
central_layout->addWidget(new QSplitter);
central_layout->addWidget(longlong_parameter_widget);
central_layout->addWidget(new QSplitter);
central_layout->addWidget(inliststring_parameter_widget);
central_layout->addWidget(new QSplitter);
central_layout->addWidget(bool_parameter_widget);
......
......@@ -20,7 +20,6 @@ project(dtkWidgets VERSION ${dtkWidgets_VERSION})
set(${PROJECT_NAME}_HEADERS
dtkApplication.h
dtkDoubleSpinBox.h
dtkWidgets
dtkWidgets.h
dtkWidgetsColorButton
......@@ -89,6 +88,8 @@ set(${PROJECT_NAME}_HEADERS
dtkWidgetsParameterIntSlider.h
dtkWidgetsParameterIntSpinBox
dtkWidgetsParameterIntSpinBox.h
dtkWidgetsParameterLongLongSpinBox
dtkWidgetsParameterLongLongSpinBox.h
dtkWidgetsParameterMenuBarGenerator
dtkWidgetsParameterMenuBarGenerator.h
dtkWidgetsParameterScientificSpinBox
......@@ -99,6 +100,8 @@ set(${PROJECT_NAME}_HEADERS
dtkWidgetsParameterStringListComboBox.h
dtkWidgetsSettings
dtkWidgetsSettings.h
dtkWidgetsSpinBoxDouble.h
dtkWidgetsSpinBoxLong.h
dtkWidgetsWidget
dtkWidgetsWidget.h
dtkWidgetsWorkspace
......@@ -110,7 +113,6 @@ set(${PROJECT_NAME}_HEADERS
set(${PROJECT_NAME}_SOURCES
dtkApplication.cpp
dtkDoubleSpinBox.cpp
dtkWidgets.cpp
dtkWidgetsColorButton.cpp
dtkWidgetsController.cpp
......@@ -140,16 +142,19 @@ set(${PROJECT_NAME}_SOURCES
dtkWidgetsParameterBoolPushButton.cpp
dtkWidgetsParameterDirBrowse.cpp
dtkWidgetsParameterDoubleSpinBox.cpp
dtkWidgetsParameterIntSlider.cpp
dtkWidgetsParameterIntSpinBox.cpp
dtkWidgetsParameterFactory.cpp
dtkWidgetsParameterFileBrowse.cpp
dtkWidgetsParameterFileSave.cpp
dtkWidgetsParameterIntSlider.cpp
dtkWidgetsParameterIntSpinBox.cpp
dtkWidgetsParameterLongLongSpinBox.cpp
dtkWidgetsParameterMenuBarGenerator.cpp
dtkWidgetsParameterScientificSpinBox.cpp
dtkWidgetsParameterStringLineEdit.cpp
dtkWidgetsParameterStringListComboBox.cpp
dtkWidgetsSettings.cpp
dtkWidgetsSpinBoxDouble.cpp
dtkWidgetsSpinBoxLong.cpp
dtkWidgetsWidget.cpp
dtkWidgetsWorkspace.cpp
dtkWidgetsWorkspaceBar.cpp
......
......@@ -58,6 +58,7 @@
#include "dtkWidgetsParameterStringListComboBox.h"
#include "dtkWidgetsParameterScientificSpinBox.h"
#include "dtkWidgetsSettings.h"
#include "dtkWidgetsSpinBoxDouble.h"
#include "dtkWidgetsWidget.h"
#include "dtkWidgetsWorkspace.h"
#include "dtkWidgetsWorkspaceBar.h"
......
......@@ -22,13 +22,14 @@
#include "dtkWidgetsParameterBoolCheckBox.h"
#include "dtkWidgetsParameterBoolPushButton.h"
#include "dtkWidgetsParameterDoubleSpinBox.h"
#include "dtkWidgetsParameterScientificSpinBox.h"
#include "dtkWidgetsParameterDirBrowse.h"
#include "dtkWidgetsParameterDoubleSpinBox.h"
#include "dtkWidgetsParameterFileBrowse.h"
#include "dtkWidgetsParameterFileSave.h"
#include "dtkWidgetsParameterIntSlider.h"
#include "dtkWidgetsParameterIntSpinBox.h"
#include "dtkWidgetsParameterLongLongSpinBox.h"
#include "dtkWidgetsParameterScientificSpinBox.h"
#include "dtkWidgetsParameterStringLineEdit.h"
#include "dtkWidgetsParameterStringListComboBox.h"
......@@ -75,11 +76,12 @@ namespace dtk {
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterBoolPushButton", dtkWidgetsParameterBoolPushButtonCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterDirBrowse", dtkWidgetsParameterDirBrowseCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterDoubleSpinBox", dtkWidgetsParameterDoubleSpinBoxCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterScientificSpinBox", dtkWidgetsParameterScientificSpinBoxCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterIntSlider", dtkWidgetsParameterIntSliderCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterIntSpinBox", dtkWidgetsParameterIntSpinBoxCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterFileBrowse", dtkWidgetsParameterFileBrowseCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterFileSave", dtkWidgetsParameterFileSaveCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterLongLongSpinBox", dtkWidgetsParameterLongLongSpinBoxCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterScientificSpinBox", dtkWidgetsParameterScientificSpinBoxCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterStringLineEdit", dtkWidgetsParameterStringLineEditCreator);
dtk::widgets::parameters::pluginFactory().record("dtkWidgetsParameterStringListComboBox", dtkWidgetsParameterStringListComboBoxCreator);
}
......
......@@ -14,7 +14,7 @@
#include "dtkWidgetsParameterDoubleSpinBox.h"
#include "dtkDoubleSpinBox.h"
#include "dtkWidgetsSpinBoxDouble.h"
#include <dtkLog>
// ///////////////////////////////////////////////////////////////////
......@@ -24,7 +24,7 @@
class dtkWidgetsParameterDoubleSpinBoxPrivate
{
public:
dtkDoubleSpinBox *spin_box = nullptr;
dtkWidgetsSpinBoxDouble *spin_box = nullptr;
};
// ///////////////////////////////////////////////////////////////////
......@@ -33,7 +33,7 @@ public:
dtkWidgetsParameterDoubleSpinBox::dtkWidgetsParameterDoubleSpinBox(QWidget* parent) : dtkWidgetsParameterBase<dtk::d_real>(parent), d(new dtkWidgetsParameterDoubleSpinBoxPrivate)
{
d->spin_box = new dtkDoubleSpinBox(QDoubleValidator::StandardNotation);
d->spin_box = new dtkWidgetsSpinBoxDouble(QDoubleValidator::StandardNotation);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(d->spin_box);
......@@ -56,7 +56,7 @@ bool dtkWidgetsParameterDoubleSpinBox::connect(dtkCoreParameter *p)
m_parameter = dynamic_cast<dtk::d_real *>(p);
if(!m_parameter) {
qWarning() << Q_FUNC_INFO << "The type of the parameter is not compatible with the widget dtkWidgetsParameterIntSpinBox.";
qWarning() << Q_FUNC_INFO << "The type of the parameter is not compatible with the widget dtkWidgetsParameterDoubleSpinBox.";
return false;
}
......@@ -75,7 +75,7 @@ bool dtkWidgetsParameterDoubleSpinBox::connect(dtkCoreParameter *p)
d->spin_box->blockSignals(false);
});
QObject::connect(d->spin_box, QOverload<double>::of(&dtkDoubleSpinBox::valueChanged), [=] (double v)
QObject::connect(d->spin_box, QOverload<double>::of(&dtkWidgetsSpinBoxDouble::valueChanged), [=] (double v)
{
m_parameter->setValue(v);
});
......
// Version: $Id$
//
//
// Commentary:
//
//
// Change Log:
//
//
// Code:
#include "dtkWidgetsParameterLongLongSpinBox.h"
#include "dtkWidgetsSpinBoxLong.h"
#include <dtkLog>
// ///////////////////////////////////////////////////////////////////
// dtkWidgetsParameterLongLongSpinBoxPrivate declaration
// ///////////////////////////////////////////////////////////////////
class dtkWidgetsParameterLongLongSpinBoxPrivate
{
public:
dtkWidgetsSpinBoxLong *spin_box = nullptr;
};
// ///////////////////////////////////////////////////////////////////
// dtkWidgetsParameterLongLongSpinBox implementation
// ///////////////////////////////////////////////////////////////////
dtkWidgetsParameterLongLongSpinBox::dtkWidgetsParameterLongLongSpinBox(QWidget* parent) : dtkWidgetsParameterBase<dtk::d_int>(parent), d(new dtkWidgetsParameterLongLongSpinBoxPrivate)
{
d->spin_box = new dtkWidgetsSpinBoxLong();
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(d->spin_box);
this->setLayout(layout);
}
dtkWidgetsParameterLongLongSpinBox::~dtkWidgetsParameterLongLongSpinBox(void)
{
delete d;
}
bool dtkWidgetsParameterLongLongSpinBox::connect(dtkCoreParameter *p)
{
if (!p) {
qWarning() << Q_FUNC_INFO << "The input parameter is null. Nothing is done.";
return false;
}
m_parameter = dynamic_cast<dtk::d_int *>(p);
if(!m_parameter) {
qWarning() << Q_FUNC_INFO << "The type of the parameter is not compatible with the widget dtkWidgetsParameterLongLongSpinBox.";
return false;
}
d->spin_box->setMinimum(m_parameter->min());
d->spin_box->setMaximum(m_parameter->max());
d->spin_box->setToolTip(m_parameter->documentation());
d->spin_box->setValue(m_parameter->value());
m_parameter->connect([=] (QVariant v)
{
long long value = v.value<dtk::d_int>().value();
d->spin_box->blockSignals(true);
d->spin_box->setValue(value);
d->spin_box->blockSignals(false);
});
QObject::connect(d->spin_box, QOverload<long long>::of(&dtkWidgetsSpinBoxLong::valueChanged), [=] (long long v)
{
m_parameter->setValue(v);
});
return true;
}
//
// dtkWidgetsParameterLongLongSpinBoxWidget.cpp ends here
// Version: $Id$
//
//
// Commentary:
//
//
// Change Log:
//
//
// Code:
#pragma once
#include <dtkWidgetsExport>
#include <QtWidgets>
#include "dtkWidgetsParameter.h"
#include <dtkCore/dtkCoreParameter>
class DTKWIDGETS_EXPORT dtkWidgetsParameterLongLongSpinBox : public dtkWidgetsParameterBase<dtk::d_int>
{
Q_OBJECT
public:
dtkWidgetsParameterLongLongSpinBox(QWidget* parent = 0);
~dtkWidgetsParameterLongLongSpinBox(void);
public:
bool connect(dtkCoreParameter *) override;
private:
using dtkWidgetsParameterBase<dtk::d_int>::m_parameter;
class dtkWidgetsParameterLongLongSpinBoxPrivate *d;
};
// ///////////////////////////////////////////////////////////////////
inline dtkWidgetsParameter *dtkWidgetsParameterLongLongSpinBoxCreator(void)
{
return new dtkWidgetsParameterLongLongSpinBox();
}
//
// dtkWidgetsParameterLongLongSpinBox.h ends here
......@@ -13,7 +13,7 @@
// Code:
#include "dtkWidgetsParameterScientificSpinBox.h"
#include "dtkDoubleSpinBox.h"
#include "dtkWidgetsSpinBoxDouble.h"
#include <dtkLog>
......@@ -24,7 +24,7 @@
class dtkWidgetsParameterScientificSpinBoxPrivate
{
public:
dtkDoubleSpinBox *spin_box = nullptr;
dtkWidgetsSpinBoxDouble *spin_box = nullptr;
};
......@@ -34,7 +34,7 @@ public:
dtkWidgetsParameterScientificSpinBox::dtkWidgetsParameterScientificSpinBox(QWidget* parent) : dtkWidgetsParameterBase<dtk::d_real>(parent), d(new dtkWidgetsParameterScientificSpinBoxPrivate)
{
d->spin_box = new dtkDoubleSpinBox(QDoubleValidator::ScientificNotation);
d->spin_box = new dtkWidgetsSpinBoxDouble(QDoubleValidator::ScientificNotation);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(d->spin_box);
......@@ -76,7 +76,7 @@ bool dtkWidgetsParameterScientificSpinBox::connect(dtkCoreParameter *p)
d->spin_box->blockSignals(false);
});
QObject::connect(d->spin_box, QOverload<double>::of(&dtkDoubleSpinBox::valueChanged), [=] (double v)
QObject::connect(d->spin_box, QOverload<double>::of(&dtkWidgetsSpinBoxDouble::valueChanged), [=] (double v)
{
m_parameter->setValue(v);
});
......
......@@ -12,9 +12,9 @@
// Code:
#include "dtkDoubleSpinBox.h"
#include "dtkWidgetsSpinBoxDouble.h"
class dtkDoubleSpinBoxPrivate : public QObject
class dtkWidgetsSpinBoxDoublePrivate : public QObject
{
Q_OBJECT
......@@ -39,21 +39,21 @@ public:
public:
dtkDoubleSpinBox *q;
dtkWidgetsSpinBoxDouble *q;
};
void dtkDoubleSpinBoxPrivate::update(void)
void dtkWidgetsSpinBoxDoublePrivate::update(void)
{
this->value = valueFromText( q->text());
this->touch();
}
void dtkDoubleSpinBoxPrivate::touch()
void dtkWidgetsSpinBoxDoublePrivate::touch()
{
q->emit valueChanged(this->value);
}
QString dtkDoubleSpinBoxPrivate::textFromValue ( double value ) const
QString dtkWidgetsSpinBoxDoublePrivate::textFromValue ( double value ) const
{
QString strValue;
......@@ -71,7 +71,7 @@ QString dtkDoubleSpinBoxPrivate::textFromValue ( double value ) const
return strValue;
}
double dtkDoubleSpinBoxPrivate::valueFromText ( const QString & text ) const
double dtkWidgetsSpinBoxDoublePrivate::valueFromText ( const QString & text ) const
{
// truncate the input text to the right decimal
QString work_on = text;
......@@ -117,7 +117,7 @@ double dtkDoubleSpinBoxPrivate::valueFromText ( const QString & text ) const
return dblValue;
}
QValidator::State dtkDoubleSpinBoxPrivate::validate(QString &text, int &pos) const
QValidator::State dtkWidgetsSpinBoxDoublePrivate::validate(QString &text, int &pos) const
{
// check user input
bool input_check;
......@@ -129,9 +129,9 @@ QValidator::State dtkDoubleSpinBoxPrivate::validate(QString &text, int &pos) con
///
dtkDoubleSpinBox::dtkDoubleSpinBox(QDoubleValidator::Notation notation, QWidget *parent) : QAbstractSpinBox(parent)
dtkWidgetsSpinBoxDouble::dtkWidgetsSpinBoxDouble(QDoubleValidator::Notation notation, QWidget *parent) : QAbstractSpinBox(parent)
{
d = new dtkDoubleSpinBoxPrivate;
d = new dtkWidgetsSpinBoxDoublePrivate;
d->q = this;
this->setLocale(QLocale::C);
......@@ -164,13 +164,13 @@ dtkDoubleSpinBox::dtkDoubleSpinBox(QDoubleValidator::Notation notation, QWidget
}
dtkDoubleSpinBox::~dtkDoubleSpinBox(void)
dtkWidgetsSpinBoxDouble::~dtkWidgetsSpinBoxDouble(void)
{
delete d->validator;
delete d;
}
void dtkDoubleSpinBox::stepBy(int step)
void dtkWidgetsSpinBoxDouble::stepBy(int step)
{
if (step == 0 ) {
return;
......@@ -191,38 +191,44 @@ void dtkDoubleSpinBox::stepBy(int step)
}
}
void dtkDoubleSpinBox::stepDown(void)
void dtkWidgetsSpinBoxDouble::stepDown(void)
{
if (d->scientific)
d->value /= 10.0;
else
d->value -= 1.0;
if(d->value < d->minimum)
d->value = d->minimum;
d->touch();
}
void dtkDoubleSpinBox::stepUp(void)
void dtkWidgetsSpinBoxDouble::stepUp(void)
{
if (d->scientific)
d->value *= 10.0;
else
d->value += 1.0;
if(d->value > d->maximum)
d->value = d->maximum;
d->touch();
}
void dtkDoubleSpinBox::setMinimum(double min)
void dtkWidgetsSpinBoxDouble::setMinimum(double min)
{
d->minimum = min;
}
void dtkDoubleSpinBox::setMaximum(double max)
void dtkWidgetsSpinBoxDouble::setMaximum(double max)
{
d->maximum = max;
}
void dtkDoubleSpinBox::setValue(double val)
void dtkWidgetsSpinBoxDouble::setValue(double val)
{
d->value = val;
this->lineEdit()->blockSignals(true);
......@@ -230,19 +236,19 @@ void dtkDoubleSpinBox::setValue(double val)
this->lineEdit()->blockSignals(false);
}
void dtkDoubleSpinBox::setDecimals(int dec)
void dtkWidgetsSpinBoxDouble::setDecimals(int dec)
{
d->decimals = dec;
this->setValue(d->value); // muste change the text in the widget accordingly
}
QAbstractSpinBox::StepEnabled dtkDoubleSpinBox::stepEnabled(void) const
QAbstractSpinBox::StepEnabled dtkWidgetsSpinBoxDouble::stepEnabled(void) const
{
return ( QAbstractSpinBox::StepUpEnabled | QAbstractSpinBox::StepDownEnabled ) ;
}
#include "dtkDoubleSpinBox.moc"
#include "dtkWidgetsSpinBoxDouble.moc"
//
// dtkDoubleSpinBox.h ends here
// dtkWidgetsSpinBoxDouble.h ends here
......@@ -11,12 +11,13 @@
//
// Code:
#pragma once
#include <QtCore>
#include <QtWidgets>
// ///////////////////////////////////////////////////////////////////
// dtkDoubleSpinbox
// dtkWidgetSpinBoxDouble
// ///////////////////////////////////////////////////////////////////
//
// holds both standard and scienti
......@@ -24,19 +25,19 @@
//
// ///////////////////////////////////////////////////////////////////
class dtkDoubleSpinBox : public QAbstractSpinBox
class dtkWidgetsSpinBoxDouble : public QAbstractSpinBox
{
Q_OBJECT
public:
dtkDoubleSpinBox(QDoubleValidator::Notation, QWidget * parent = 0);
~dtkDoubleSpinBox(void);
dtkWidgetsSpinBoxDouble(QDoubleValidator::Notation, QWidget * parent = 0);
~dtkWidgetsSpinBoxDouble(void);
signals:
void valueChanged(double);
public:
void stepBy(int);
void stepBy(int) override;
void stepDown(void);
void stepUp(void);
......@@ -46,12 +47,12 @@ public:
void setDecimals(int);
protected:
QAbstractSpinBox::StepEnabled stepEnabled(void) const;
QAbstractSpinBox::StepEnabled stepEnabled(void) const override;
private:
class dtkDoubleSpinBoxPrivate *d;
class dtkWidgetsSpinBoxDoublePrivate *d;
};
//
// dtkDoubleSpinBox.h ends here
// dtkWidgetsSpinBoxDouble.h ends here
// Version: $Id$
//
//
// Commentary:
//
//
// Change Log:
//
//
// Code:
#include "dtkWidgetsSpinBoxLong.h"
class dtkWidgetsSpinBoxLongPrivate : public QObject
{
Q_OBJECT
public slots:
void update();
void touch();
public:
long long value;
long long minimum;
long long maximum;
QValidator *validator;
public:
QString textFromValue ( long long ) const;
long long valueFromText ( const QString& ) const;
QValidator::State validate(QString&, int&) const;
public:
dtkWidgetsSpinBoxLong *q;
};
void dtkWidgetsSpinBoxLongPrivate::update(void)
{
this->value = valueFromText( q->text());
this->touch();
}
void dtkWidgetsSpinBoxLongPrivate::touch()
{
q->emit valueChanged(this->value);
}
QString dtkWidgetsSpinBoxLongPrivate::textFromValue ( long long value ) const
{
QString strValue;
if (value < this->minimum)
value = this->minimum;
if (value > this->maximum)
value = this->maximum;
return QString::number(value);
}
long long dtkWidgetsSpinBoxLongPrivate::valueFromText ( const QString & text ) const
{
long long val = text.toLongLong();
if (val < this->minimum)
val = this->minimum;
if (val > this->maximum)
val = this->maximum;
q->setValue(val);
return val;
}
QValidator::State dtkWidgetsSpinBoxLongPrivate::validate(QString &text, int &pos) const
{
// check user input
bool input_check;
text.toLongLong(&input_check);
return (input_check ? QValidator::Acceptable : QValidator::Invalid);
}
///
dtkWidgetsSpinBoxLong::dtkWidgetsSpinBoxLong(QWidget *parent) : QAbstractSpinBox(parent)
{
d = new dtkWidgetsSpinBoxLongPrivate;
d->q = this;
this->setLocale(QLocale::C);
d->value = 0.0;
QRegExp rx("-?\\d{1,18}");
d->validator = new QRegExpValidator(rx, this);
d->maximum = std::numeric_limits<long long>::max();
d->minimum = std::numeric_limits<long long>::lowest();
this->setReadOnly(false);
this->setButtonSymbols(QAbstractSpinBox::PlusMinus);
this->setCorrectionMode(QAbstractSpinBox::CorrectToPreviousValue);
this->setKeyboardTracking(true);
this->lineEdit()->setValidator(d->validator);
this->lineEdit()->setReadOnly(false);
connect(this,
SIGNAL(editingFinished()),
d,
SLOT(update()));
}
dtkWidgetsSpinBoxLong::~dtkWidgetsSpinBoxLong(void)
{
delete d->validator;
delete d;
}
void dtkWidgetsSpinBoxLong::stepBy(int step)
{
if (step == 0 ) {
return;
}
if (step < 0) {
int i = step;
while ( i < 0 ) {
stepDown();
i++;
}
}
else {
int i = step;
while ( i > 0) {
stepUp();
i--;
}
}
}
void dtkWidgetsSpinBoxLong::stepDown(void)
{
if(d->value > d->minimum) {
--d->value;
d->touch();
}
}
void dtkWidgetsSpinBoxLong::stepUp(void)
{
if(d->value < d->maximum) {
++d->value;
d->touch();
}
}
void dtkWidgetsSpinBoxLong::setMinimum(long long min)
{
d->minimum = min;
}
void dtkWidgetsSpinBoxLong::setMaximum(long long max)
{
d->maximum = max;
}
void dtkWidgetsSpinBoxLong::setValue(long long val)
{
d->value = val;
this->lineEdit()->blockSignals(true);
this->lineEdit()->setText(d->textFromValue(val));
this->lineEdit()->blockSignals(false);
}
QAbstractSpinBox::StepEnabled dtkWidgetsSpinBoxLong::stepEnabled(void) const
{
return ( QAbstractSpinBox::StepUpEnabled | QAbstractSpinBox::StepDownEnabled ) ;
}
#include "dtkWidgetsSpinBoxLong.moc"
//
// dtkWidgetsSpinBoxLong.h ends here