Convert version string to number.
--HG-- branch : feature
This commit is contained in:
parent
71f070a509
commit
fb8849f798
|
@ -37,8 +37,7 @@ VAbstractConverter::VAbstractConverter(const QString &fileName)
|
||||||
{
|
{
|
||||||
this->setXMLContent(fileName);
|
this->setXMLContent(fileName);
|
||||||
QString version = GetVersionStr();
|
QString version = GetVersionStr();
|
||||||
ValidateVersion(version);
|
int ver = GetVersion(version);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -70,19 +69,50 @@ QString VAbstractConverter::GetVersionStr() const
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VAbstractConverter::ValidateVersion(QString &versionStr) const
|
int VAbstractConverter::GetVersion(QString &version) const
|
||||||
|
{
|
||||||
|
ValidateVersion(version);
|
||||||
|
|
||||||
|
QStringList ver = version.split(".");
|
||||||
|
|
||||||
|
bool ok = false;
|
||||||
|
int major = ver.at(0).toInt(&ok);
|
||||||
|
if (ok == false)
|
||||||
|
{
|
||||||
|
return 0x0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ok = false;
|
||||||
|
int minor = ver.at(1).toInt(&ok);
|
||||||
|
if (ok == false)
|
||||||
|
{
|
||||||
|
return 0x0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ok = false;
|
||||||
|
int patch = ver.at(2).toInt(&ok);
|
||||||
|
if (ok == false)
|
||||||
|
{
|
||||||
|
return 0x0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (major<<16)|(minor<<8)|(patch);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractConverter::ValidateVersion(QString &version) const
|
||||||
{
|
{
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
QRegExp rx(QStringLiteral("^(0|([1-9][0-9]*)).(0|([1-9][0-9]*)).(0|([1-9][0-9]*))$"));
|
QRegExp rx(QStringLiteral("^(0|([1-9][0-9]*)).(0|([1-9][0-9]*)).(0|([1-9][0-9]*))$"));
|
||||||
QRegExpValidator v(rx, 0);
|
QRegExpValidator v(rx, 0);
|
||||||
|
|
||||||
if (v.validate(versionStr, pos) != QValidator::Acceptable)
|
if (v.validate(version, pos) != QValidator::Acceptable)
|
||||||
{
|
{
|
||||||
const QString errorMsg(tr("Version \"%1\" invalid.").arg(versionStr));
|
const QString errorMsg(tr("Version \"%1\" invalid.").arg(version));
|
||||||
throw VException(errorMsg);
|
throw VException(errorMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (versionStr == QLatin1String("0.0.0"))
|
if (version == QLatin1String("0.0.0"))
|
||||||
{
|
{
|
||||||
const QString errorMsg(tr("Version \"0.0.0\" invalid."));
|
const QString errorMsg(tr("Version \"0.0.0\" invalid."));
|
||||||
throw VException(errorMsg);
|
throw VException(errorMsg);
|
||||||
|
|
|
@ -43,7 +43,9 @@ private:
|
||||||
QString fileName;
|
QString fileName;
|
||||||
|
|
||||||
QString GetVersionStr() const;
|
QString GetVersionStr() const;
|
||||||
void ValidateVersion(QString &versionStr) const;
|
int GetVersion(QString &version) const;
|
||||||
|
|
||||||
|
void ValidateVersion(QString &version) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VABSTRACTCONVERTER_H
|
#endif // VABSTRACTCONVERTER_H
|
||||||
|
|
Loading…
Reference in New Issue
Block a user