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