Source Code (Use browser search to find items of interest.)
Class Index
kdelibs'KIntNumInput (./kdelibs/kdeui/knuminput.h:158)
class KIntNumInput : public KNumInput
{
Q_OBJECT
public:
/**
* Constructor
* It constructs a QSpinBox that allows the input of integer numbers
* in the range of -INT_MAX to +INT_MAX. To set a descriptive label,
* use setLabel(). To enforce the value being in a range and optionally to
* attach a slider to it, use setRange().
*
* @param value initial value for the control
* @param base numeric base used for display
* @param parent parent QWidget
* @param name internal name for this widget
*/
KIntNumInput(int value, QWidget* parent=0, int base = 10, const char *name=0);
/**
* Constructor
*
* the difference to the one above is the "below" parameter. It tells
* this instance that it is visually put below some other KNumInput widget.
* Note that these two KNumInput's need not to have the same parent widget
* or be in the same layout group.
* The effect is that it'll adjust it's layout in correspondence
* with the layout of the other KNumInput's (you can build an arbitary long
* chain).
*
* @param below append KIntNumInput to the KNumInput chain
* @param value initial value for the control
* @param base numeric base used for display
* @param parent parent QWidget
* @param name internal name for this widget
*/
KIntNumInput(KNumInput* below, int value, QWidget* parent=0, int base = 10, const char *name=0);
/**
* Destructor
*
*
*/
virtual ~KIntNumInput();
/**
* This method returns the minimum size necessary to display the
* control. The minimum size is enough to show all the labels
* in the current font (font change may invalidate the return value).
*
* @return the minimum size necessary to show the control
*/
virtual QSize minimumSizeHint() const;
/**
* @return the current value
*/
int value() const;
/**
* @param lower lower bound on range
* @param upper upper bound on range
* @param step step size for the QSlider
*/
void setRange(int lower, int upper, int step=1, bool slider=true);
/**
* Sets the special value text. If set, the SpinBox will display
* this text instead of the numeric value whenever the current
* value is equal to minVal(). Typically this is used for indicating
* that the choice has a special (default) meaning.
*/
void setSpecialValueText(const QString& text);
/**
* reimplemented for internal reasons.
*
*/
virtual void setLabel(QString label, int a = AlignLeft | AlignTop);
public slots:
/**
* Sets the value of the control.
*/
void setValue(int);
/**
* sets the Suffix
* @param suffix the suffix that should be used. QString::null to disable
*/
void setSuffix(QString suffix);
/**
* sets the Prefix
* @param prefix the prefix that should be used. QString::null to disable
*/
void setPrefix(QString prefix);
/**
* sets focus to the edit widget and marks all text in if mark == true
*
*/
void setEditFocus( bool mark = true );
signals:
void valueChanged(int);
protected slots:
void spinValueChanged(int);
protected:
void init(int value, int _base);
virtual void doLayout();
void resizeEvent ( QResizeEvent * );
void resetEditBox();
KIntSpinBox* m_spin;
QSize m_sizeSpin;
class KIntNumInputPrivate;
KIntNumInputPrivate *d;
};
/* ------------------------------------------------------------------------ */
kdelibs'KIntNumInput::KIntNumInput() (./kdelibs/kdeui/knuminput.cpp:233)
KIntNumInput::KIntNumInput(int val, QWidget *parent, int _base, const char *name)
: KNumInput(parent, name)
{
init(val, _base);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::KIntNumInput() (./kdelibs/kdeui/knuminput.cpp:261)
KIntNumInput::KIntNumInput(KNumInput* below, int val, QWidget* parent,
int _base, const char* name)
: KNumInput(below, parent, name)
{
init(val, _base);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::init() (./kdelibs/kdeui/knuminput.cpp:271)
void KIntNumInput::init(int val, int _base)
{
m_spin = new KIntSpinBox(INT_MIN, INT_MAX, 1, val, _base, this, "KIntNumInput::KIntSpinBox");
m_spin->setValidator(new KIntValidator(this, _base, "KNumInput::KIntValidtr"));
connect(m_spin, SIGNAL(valueChanged(int)), SLOT(spinValueChanged(int)));
setFocusProxy(m_spin);
layout(true);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::spinValueChanged() (./kdelibs/kdeui/knuminput.cpp:284)
void KIntNumInput::spinValueChanged(int val)
{
if(m_slider)
m_slider->setValue(val);
emit valueChanged(val);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::setRange() (./kdelibs/kdeui/knuminput.cpp:295)
void KIntNumInput::setRange(int lower, int upper, int step, bool slider)
{
m_spin->setMinValue(lower);
m_spin->setMaxValue(upper);
m_spin->setLineStep(step);
if(slider) {
if (m_slider)
m_slider->setRange(lower, upper);
else {
m_slider = new QSlider(lower, upper, step, m_spin->value(),
QSlider::Horizontal, this);
m_slider->setTickmarks(QSlider::Below);
connect(m_slider, SIGNAL(valueChanged(int)),
m_spin, SLOT(setValue(int)));
}
int major = (upper-lower)/10;
if ( major==0 ) major = step; // #### workaround Qt bug in 2.1-beta4
m_slider->setSteps(step, major);
m_slider->setTickInterval(major);
}
else {
delete m_slider;
m_slider = 0;
}
layout(true);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::setSuffix() (./kdelibs/kdeui/knuminput.cpp:328)
void KIntNumInput::setSuffix(QString suffix)
{
m_spin->setSuffix(suffix);
layout(true);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::setPrefix() (./kdelibs/kdeui/knuminput.cpp:338)
void KIntNumInput::setPrefix(QString prefix)
{
m_spin->setPrefix(prefix);
layout(true);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::setEditFocus() (./kdelibs/kdeui/knuminput.cpp:348)
void KIntNumInput::setEditFocus(bool mark)
{
m_spin->setEditFocus(mark);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::minimumSizeHint() (./kdelibs/kdeui/knuminput.cpp:356)
QSize KIntNumInput::minimumSizeHint() const
{
constPolish();
int w = 0;
int h = 0;
// if in extra row, then count it here
if(m_label && (m_alignment & (AlignBottom|AlignTop)))
h += 4 + m_sizeLabel.height();
else
// no extra frame space
h += m_sizeLabel.height();
h += 2 + QMAX(m_sizeSpin.height(), m_sizeSlider.height());
w += m_slider ? m_slider->sizeHint().width() + 8 : 0;
w += m_colw1 + m_colw2;
if(m_alignment & (AlignTop|AlignBottom))
w = QMAX(w, m_sizeLabel.width() + 4);
return QSize(w, h);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::doLayout() (./kdelibs/kdeui/knuminput.cpp:384)
void KIntNumInput::doLayout()
{
m_sizeSpin = m_spin->sizeHint();
m_colw2 = m_sizeSpin.width();
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::resizeEvent() (./kdelibs/kdeui/knuminput.cpp:394)
void KIntNumInput::resizeEvent(QResizeEvent* e)
{
int w = m_colw1;
int h = 0;
if(m_label && (m_alignment & AlignTop)) {
m_label->setGeometry(0, 0, e->size().width(), m_sizeLabel.height());
h += m_sizeLabel.height() + 4;
}
if(m_label && (m_alignment & AlignVCenter))
m_label->setGeometry(0, 0, w, m_sizeSpin.height());
m_spin->setGeometry(w, h, m_slider ? m_colw2 : QMAX(m_colw2, e->size().width() - w), m_sizeSpin.height());
w += m_colw2 + 8;
if(m_slider)
m_slider->setGeometry(w, h, e->size().width() - w, m_sizeSpin.height());
h += m_sizeSpin.height() + 2;
if(m_label && (m_alignment & AlignBottom))
m_label->setGeometry(0, h, m_sizeLabel.width(), m_sizeLabel.height());
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::~KIntNumInput() (./kdelibs/kdeui/knuminput.cpp:422)
KIntNumInput::~KIntNumInput()
{
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::setValue() (./kdelibs/kdeui/knuminput.cpp:429)
void KIntNumInput::setValue(int val)
{
if(m_slider)
m_slider->setValue(val);
m_spin->setValue(val);
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::value() (./kdelibs/kdeui/knuminput.cpp:440)
int KIntNumInput::value() const
{
return m_spin->value();
}
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::setSpecialValueText() (./kdelibs/kdeui/knuminput.cpp:448)
void KIntNumInput::setSpecialValueText(const QString& text)
{
m_spin->setSpecialValueText(text);
layout(true);
};
// -----------------------------------------------------------------------------
kdelibs'KIntNumInput::setLabel() (./kdelibs/kdeui/knuminput.cpp:457)
void KIntNumInput::setLabel(QString label, int a)
{
KNumInput::setLabel(label, a);
if(m_label)
m_label->setBuddy(m_spin);
}
// -----------------------------------------------------------------------------
/**
*
* This is just a small wrapper mainly to enable mouseWheel support
*
*/