Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'KIntValidator (./kdelibs/kdeui/knumvalidator.h:38)

class KIntValidator : public QValidator {

  public:
    /**
      Constuctor.  Also sets the base value.
    */
    KIntValidator ( QWidget * parent, int base = 10, const char * name = 0 );
    /**
      Constuctor.  Also sets the minimum, maximum, and numeric base values.
    */
    KIntValidator ( int bottom, int top, QWidget * parent, int base = 10, const char * name = 0 );
    /**
      Destructor.
    */
    virtual ~KIntValidator ();
    /**
      Validate the text, and return the result.  Does not modify the paramaters.
    */
    virtual State validate ( QString &, int & ) const;
    /**
      Fix the text if possible, providing a valid string.  The parameter may be modified.
    */
    virtual void fixup ( QString & ) const;
    /**
      Set the minimum and maximum values allowed.
    */
    virtual void setRange ( int bottom, int top );
    /**
      Set the numeric base value.
    */
    virtual void setBase ( int base );
    /**
      Return the current minimum value allowed.
    */
    virtual int bottom () const;
    /**
      Return the current maximum value allowed.
    */
    virtual int top () const;
    /**
      Return the current numeric base.
    */
    virtual int base () const;

  protected:
    int _base;
    int _min;
    int _max;

};

/**
  @ref QValidator for floating point entry.
  Extends the QValidator class to properly validate double numeric data.
  This can be used by @ref QLineEdit or subclass to provide validated
  text entry.

  @author Glen Parker <glenebob@nwlink.com>
  @version 0.0.1
*/

kdelibs'KIntValidator::KIntValidator() (./kdelibs/kdeui/knumvalidator.cpp:31)

KIntValidator::KIntValidator ( QWidget * parent, int base, const char * name )
  : QValidator(parent, name)
{
  _base = base;
  if (_base < 2) _base = 2;
  if (_base > 36) _base = 36;

  _min = _max = 0;
}


kdelibs'KIntValidator::KIntValidator() (./kdelibs/kdeui/knumvalidator.cpp:41)

KIntValidator::KIntValidator ( int bottom, int top, QWidget * parent, int base, const char * name )
  : QValidator(parent, name)
{
  _base = base;
  if (_base > 36) _base = 36;

  _min = bottom;
  _max = top;
}


kdelibs'KIntValidator::~KIntValidator() (./kdelibs/kdeui/knumvalidator.cpp:51)

KIntValidator::~KIntValidator ()
{}

QValidator::State KIntValidator::validate ( QString &str, int & ) const
{
  bool ok;
  int  val = 0;
  QString newStr;

  newStr = str.stripWhiteSpace();
  if (_base > 10)
    newStr = newStr.upper();

  if (newStr == QString::fromLatin1("-")) // a special case
    if ((_min || _max) && _min >= 0)
      ok = false;
    else
      return QValidator::Acceptable;
  else if (newStr.length())
    val = newStr.toInt(&ok, _base);
  else {
    val = 0;
    ok = true;
  }

  if (! ok)
    return QValidator::Invalid;

  if ((! _min && ! _max) || (val >= _min && val <= _max))
    return QValidator::Acceptable;

  if (_max && _min >= 0 && val < 0)
    return QValidator::Invalid;

  return QValidator::Valid;
}


kdelibs'KIntValidator::fixup() (./kdelibs/kdeui/knumvalidator.cpp:88)

void KIntValidator::fixup ( QString &str ) const
{
  int                dummy;
  int                val;
  QValidator::State  state;

  state = validate(str, dummy);

  if (state == QValidator::Invalid || state == QValidator::Acceptable)
    return;

  if (! _min && ! _max)
    return;

  val = str.toInt(0, _base);

  if (val < _min) val = _min;
  if (val > _max) val = _max;

  str.setNum(val, _base);
}


kdelibs'KIntValidator::setRange() (./kdelibs/kdeui/knumvalidator.cpp:110)

void KIntValidator::setRange ( int bottom, int top )
{
  _min = bottom;
  _max = top;

	if (_max < _min)
		_max = _min;
}


kdelibs'KIntValidator::setBase() (./kdelibs/kdeui/knumvalidator.cpp:119)

void KIntValidator::setBase ( int base )
{
  _base = base;
  if (_base < 2) _base = 2;
}


kdelibs'KIntValidator::bottom() (./kdelibs/kdeui/knumvalidator.cpp:125)

int KIntValidator::bottom () const
{
  return _min;
}


kdelibs'KIntValidator::top() (./kdelibs/kdeui/knumvalidator.cpp:130)

int KIntValidator::top () const
{
  return _max;
}


kdelibs'KIntValidator::base() (./kdelibs/kdeui/knumvalidator.cpp:135)

int KIntValidator::base () const
{
  return _base;
}


///////////////////////////////////////////////////////////////
//  Implementation of KIntValidator
//