insilmaril@55: #include "version.h" insilmaril@55: insilmaril@55: #include insilmaril@55: insilmaril@55: bool checkVersion (const QString &v) insilmaril@55: { insilmaril@55: // returns true, if vym is able to read file regarding insilmaril@55: // the version set with setVersion insilmaril@55: return checkVersion (v,__VYM_VERSION); insilmaril@55: } insilmaril@55: insilmaril@55: insilmaril@55: bool checkVersion (const QString &v, const QString &d) insilmaril@55: { insilmaril@55: bool ok; insilmaril@55: int v1; insilmaril@55: int v2; insilmaril@55: int v3; insilmaril@55: int d1; insilmaril@55: int d2; insilmaril@55: int d3; insilmaril@55: insilmaril@55: QRegExp rx("(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})"); insilmaril@55: int pos=rx.indexIn (v); insilmaril@55: if (pos>-1) insilmaril@55: { insilmaril@55: v1=rx.cap(1).toInt(&ok); insilmaril@55: v2=rx.cap(2).toInt(&ok); insilmaril@55: v3=rx.cap(3).toInt(&ok); insilmaril@55: } else insilmaril@55: qWarning (QString ("Warning: Checking version failed for v=%1").arg(v)); insilmaril@55: insilmaril@55: pos=rx.indexIn (d); insilmaril@55: if (pos>-1) insilmaril@55: { insilmaril@55: d1=rx.cap(1).toInt(&ok); insilmaril@55: d2=rx.cap(2).toInt(&ok); insilmaril@55: d3=rx.cap(3).toInt(&ok); insilmaril@55: } else insilmaril@55: qWarning (QString ("Warning: Checking version failed for d=%1").arg(d)); insilmaril@55: insilmaril@55: insilmaril@55: if (d1 > v1) insilmaril@55: return true; insilmaril@55: if (d1 < v1) insilmaril@55: return false; insilmaril@55: if (d2 > v2) insilmaril@55: return true; insilmaril@55: if (d2 < v2) insilmaril@55: return false; insilmaril@55: if (d3 > v3) insilmaril@55: return true; insilmaril@55: if (d3 < v3) insilmaril@55: return false; insilmaril@55: return true; insilmaril@55: insilmaril@55: }