All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions
QGpCoreTools::Version Class Reference

Brief description of class still missing. More...

#include <Version.h>

List of all members.

Public Member Functions

bool compatible (const Version &v) const
bool operator< (const Version &v) const
void operator= (const Version &v)
bool operator== (const Version &v) const
bool operator> (const Version &v) const
QString toString () const
 Version (int a=0, int b=0, int c=0, const QString &name=QString::null)
 Version (const QString &v)
 Version (const Version &v)

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

QGpCoreTools::Version::Version ( int  a = 0,
int  b = 0,
int  c = 0,
const QString &  name = QString::null 
)
{
  _a=a;
  _b=b;
  _c=c;
  _releaseName=name;
}
QGpCoreTools::Version::Version ( const QString &  v)

References QGpCoreTools::StringSection::isValid(), QGpCoreTools::StringSection::nextField(), QGpCoreTools::StringSection::toInt(), and QGpCoreTools::StringSection::toString().

{
  StringSection vs(v);
  bool ok=true;
  const QChar * ptr=0;
  _a=vs.nextField(ptr, ".").toInt(&ok);
  if(!ok) {
    parseError(v);
    _b=0;
    _c=0;
    return;
  }
  _b=vs.nextField(ptr, ".").toInt(&ok);
  if(!ok) {
    parseError(v);
    _c=0;
    return;
  }
  _c=vs.nextField(ptr, "-", false).toInt(&ok);
  if(!ok) {
    parseError(v);
    return;
  }
  StringSection rn=vs.nextField(ptr, " ");
  if(rn.isValid()) {
    _releaseName=rn.toString();
  }
}
QGpCoreTools::Version::Version ( const Version v) [inline]
{operator=(v);}

Member Function Documentation

bool QGpCoreTools::Version::compatible ( const Version v) const
bool QGpCoreTools::Version::operator< ( const Version v) const
{
  if(_a==0 && _b==0 && _c==0) {               // devel release
    if(v._a==0 && v._b==0 && v._c==0) {
      if(_releaseName.isEmpty()) return false;
      if(v._releaseName.isEmpty()) return true;
      return _releaseName<v._releaseName;
    } else {
      return false;                           // devel and stable/testing cannot be compared
                                              // devel is assumed to be more recent
    }
  } else if(v._a==0 && v._b==0 && v._c==0) {  // devel release
    return true;                              // devel and stable/testing cannot be compared
                                              // devel is assumed to be more recent
  } else {
    if(_a<v._a) return true;
    else if(_a>v._a) return false;
    if(_b<v._b) return true;
    else if(_b>v._b) return false;
    if(_c<v._c) return true;
    else if(_c>v._c) return false;
    if(_releaseName.isEmpty()) return false;
    if(v._releaseName.isEmpty()) return true;
    return _releaseName<v._releaseName;
  }
}
void QGpCoreTools::Version::operator= ( const Version v)
{
  _a=v._a;
  _b=v._b;
  _c=v._c;
  _releaseName=v._releaseName;
}
bool QGpCoreTools::Version::operator== ( const Version v) const
{
  return _a==v._a && _b==v._b && _c==v._c && _releaseName==v._releaseName;
}
bool QGpCoreTools::Version::operator> ( const Version v) const
{
  if(_a==0 && _b==0 && _c==0) {               // devel release
    if(v._a==0 && v._b==0 && v._c==0) {
      if(_releaseName.isEmpty()) return true;
      if(v._releaseName.isEmpty()) return false;
      return _releaseName>v._releaseName;
    } else {
      return true;                            // devel and stable/testing cannot be compared
                                              // devel is assumed to be more recent
    }
  } else if(v._a==0 && v._b==0 && v._c==0) {  // devel release
    return false;                             // devel and stable/testing cannot be compared
                                              // devel is assumed to be more recent
  } else {
    if(_a<v._a) return false;
    else if(_a>v._a) return true;
    if(_b<v._b) return false;
    else if(_b>v._b) return true;
    if(_c<v._c) return false;
    else if(_c>v._c) return true;
    if(v._releaseName.isEmpty()) return false;
    if(_releaseName.isEmpty()) return true;
    return _releaseName>v._releaseName;
  }
}
{
  QString s;
  s+=QString::number(_a);
  s+=".";
  s+=  QString::number(_b);
  s+=".";
  s+=  QString::number(_c);
  if(!_releaseName.isEmpty()) {
    s+="-";
    s+=_releaseName;
  }
  return s;
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines