Check if all defined known measurements in a file are valid.
--HG-- branch : develop
This commit is contained in:
parent
c01bc165db
commit
d90d24ca61
|
@ -194,11 +194,17 @@ void TMainWindow::LoadFile(const QString &path)
|
||||||
m = new VMeasurements(data);
|
m = new VMeasurements(data);
|
||||||
m->setXMLContent(path);
|
m->setXMLContent(path);
|
||||||
|
|
||||||
|
if (not m->IsDefinedKnownNamesValid())
|
||||||
|
{
|
||||||
|
VException e(tr("File contains invalid known measurement(s)."));
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
mType = m->Type();
|
mType = m->Type();
|
||||||
|
|
||||||
if (mType == MeasurementsType::Unknown)
|
if (mType == MeasurementsType::Unknown)
|
||||||
{
|
{
|
||||||
VException e("File has unknown format.");
|
VException e(tr("File has unknown format."));
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -245,9 +245,15 @@ bool MainWindow::LoadMeasurements(const QString &path)
|
||||||
m = new VMeasurements(pattern);
|
m = new VMeasurements(pattern);
|
||||||
m->setXMLContent(path);
|
m->setXMLContent(path);
|
||||||
|
|
||||||
|
if (not m->IsDefinedKnownNamesValid())
|
||||||
|
{
|
||||||
|
VException e(tr("Measurement file contains invalid known measurement(s)."));
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
if (m->Type() == MeasurementsType::Unknown)
|
if (m->Type() == MeasurementsType::Unknown)
|
||||||
{
|
{
|
||||||
VException e("Measurement file has unknown format.");
|
VException e(tr("Measurement file has unknown format."));
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,9 +280,8 @@ bool MainWindow::LoadMeasurements(const QString &path)
|
||||||
const QSet<QString> match = pList.toSet().subtract(mList.toSet());
|
const QSet<QString> match = pList.toSet().subtract(mList.toSet());
|
||||||
if (not match.isEmpty())
|
if (not match.isEmpty())
|
||||||
{
|
{
|
||||||
VException e("Measurement file doesn't include all required measurements.");
|
VException e(tr("Measurement file doesn't include all required measurements."));
|
||||||
e.AddMoreInformation(QString("Please, additionaly provide: %1")
|
e.AddMoreInformation(tr("Please, additionaly provide: %1").arg(QStringList(match.toList()).join(", ")));
|
||||||
.arg(QStringList(match.toList()).join(", ")));
|
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3430,11 +3435,17 @@ QString MainWindow::CheckPathToMeasurements(const QString &patternPath, const QS
|
||||||
VMeasurements *m = new VMeasurements(pattern);
|
VMeasurements *m = new VMeasurements(pattern);
|
||||||
m->setXMLContent(mPath);
|
m->setXMLContent(mPath);
|
||||||
|
|
||||||
|
if (not m->IsDefinedKnownNamesValid())
|
||||||
|
{
|
||||||
|
VException e(tr("Measurement file contains invalid known measurement(s)."));
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
patternType = m->Type();
|
patternType = m->Type();
|
||||||
|
|
||||||
if (patternType == MeasurementsType::Unknown)
|
if (patternType == MeasurementsType::Unknown)
|
||||||
{
|
{
|
||||||
VException e("Measurement file has unknown format.");
|
VException e(tr("Measurement file has unknown format."));
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3463,8 +3474,8 @@ QString MainWindow::CheckPathToMeasurements(const QString &patternPath, const QS
|
||||||
const QSet<QString> match = pList.toSet().subtract(mList.toSet());
|
const QSet<QString> match = pList.toSet().subtract(mList.toSet());
|
||||||
if (not match.isEmpty())
|
if (not match.isEmpty())
|
||||||
{
|
{
|
||||||
VException e("Measurement file doesn't include all required measurements.");
|
VException e(tr("Measurement file doesn't include all required measurements."));
|
||||||
e.AddMoreInformation(QString("Please, additionaly provide: %1")
|
e.AddMoreInformation(tr("Please, additionaly provide: %1")
|
||||||
.arg(QStringList(match.toList()).join(", ")));
|
.arg(QStringList(match.toList()).join(", ")));
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
|
@ -533,6 +533,28 @@ QStringList VMeasurements::ListKnown() const
|
||||||
return listNames;
|
return listNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
bool VMeasurements::IsDefinedKnownNamesValid() const
|
||||||
|
{
|
||||||
|
QStringList names = AllGroupNames();
|
||||||
|
QSet<QString> set;
|
||||||
|
foreach (const QString &var, names)
|
||||||
|
{
|
||||||
|
set.insert(var);
|
||||||
|
}
|
||||||
|
|
||||||
|
names = ListKnown();
|
||||||
|
foreach (const QString &var, names)
|
||||||
|
{
|
||||||
|
if (not set.contains(var))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VMeasurements::SetDataSize()
|
void VMeasurements::SetDataSize()
|
||||||
{
|
{
|
||||||
|
|
|
@ -121,6 +121,8 @@ public:
|
||||||
QStringList ListAll() const;
|
QStringList ListAll() const;
|
||||||
QStringList ListKnown() const;
|
QStringList ListKnown() const;
|
||||||
|
|
||||||
|
bool IsDefinedKnownNamesValid() const;
|
||||||
|
|
||||||
void SetDataSize();
|
void SetDataSize();
|
||||||
void SetDataHeight();
|
void SetDataHeight();
|
||||||
|
|
||||||
|
|
|
@ -935,3 +935,27 @@ QStringList SupportedLocales()
|
||||||
|
|
||||||
return locales;
|
return locales;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QStringList AllGroupNames()
|
||||||
|
{
|
||||||
|
const QStringList originalNames = QStringList() << ListGroupA()
|
||||||
|
<< ListGroupB()
|
||||||
|
<< ListGroupC()
|
||||||
|
<< ListGroupD()
|
||||||
|
<< ListGroupE()
|
||||||
|
<< ListGroupF()
|
||||||
|
<< ListGroupG()
|
||||||
|
<< ListGroupH()
|
||||||
|
<< ListGroupI()
|
||||||
|
<< ListGroupJ()
|
||||||
|
<< ListGroupK()
|
||||||
|
<< ListGroupL()
|
||||||
|
<< ListGroupM()
|
||||||
|
<< ListGroupN()
|
||||||
|
<< ListGroupO()
|
||||||
|
<< ListGroupP()
|
||||||
|
<< ListGroupQ();
|
||||||
|
|
||||||
|
return originalNames;
|
||||||
|
}
|
||||||
|
|
|
@ -577,5 +577,6 @@ qreal UnitConvertor(qreal value, const Unit &from, const Unit &to);
|
||||||
void CheckFactor(qreal &oldFactor, const qreal &Newfactor);
|
void CheckFactor(qreal &oldFactor, const qreal &Newfactor);
|
||||||
|
|
||||||
QStringList SupportedLocales();
|
QStringList SupportedLocales();
|
||||||
|
QStringList AllGroupNames();
|
||||||
|
|
||||||
#endif // DEF_H
|
#endif // DEF_H
|
||||||
|
|
|
@ -55,7 +55,7 @@ TST_MeasurementRegExp::~TST_MeasurementRegExp()
|
||||||
// cppcheck-suppress unusedFunction
|
// cppcheck-suppress unusedFunction
|
||||||
void TST_MeasurementRegExp::TestOriginalMeasurementNamesRegExp()
|
void TST_MeasurementRegExp::TestOriginalMeasurementNamesRegExp()
|
||||||
{
|
{
|
||||||
const QStringList originalNames = OriginalNames();
|
const QStringList originalNames = AllGroupNames();
|
||||||
const QRegularExpression re(NameRegExp());
|
const QRegularExpression re(NameRegExp());
|
||||||
|
|
||||||
foreach(const QString &str, originalNames)
|
foreach(const QString &str, originalNames)
|
||||||
|
@ -454,7 +454,7 @@ void TST_MeasurementRegExp::InitTrMs()
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void TST_MeasurementRegExp::CheckNames() const
|
void TST_MeasurementRegExp::CheckNames() const
|
||||||
{
|
{
|
||||||
const QStringList originalNames = OriginalNames();
|
const QStringList originalNames = AllGroupNames();
|
||||||
const QRegularExpression re(NameRegExp());
|
const QRegularExpression re(NameRegExp());
|
||||||
|
|
||||||
foreach(const QString &str, originalNames)
|
foreach(const QString &str, originalNames)
|
||||||
|
@ -463,27 +463,3 @@ void TST_MeasurementRegExp::CheckNames() const
|
||||||
QCOMPARE(re.match(translated).hasMatch(), true);
|
QCOMPARE(re.match(translated).hasMatch(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QStringList TST_MeasurementRegExp::OriginalNames() const
|
|
||||||
{
|
|
||||||
const QStringList originalNames = QStringList() << ListGroupA()
|
|
||||||
<< ListGroupB()
|
|
||||||
<< ListGroupC()
|
|
||||||
<< ListGroupD()
|
|
||||||
<< ListGroupE()
|
|
||||||
<< ListGroupF()
|
|
||||||
<< ListGroupG()
|
|
||||||
<< ListGroupH()
|
|
||||||
<< ListGroupI()
|
|
||||||
<< ListGroupJ()
|
|
||||||
<< ListGroupK()
|
|
||||||
<< ListGroupL()
|
|
||||||
<< ListGroupM()
|
|
||||||
<< ListGroupN()
|
|
||||||
<< ListGroupO()
|
|
||||||
<< ListGroupP()
|
|
||||||
<< ListGroupQ();
|
|
||||||
|
|
||||||
return originalNames;
|
|
||||||
}
|
|
||||||
|
|
|
@ -57,7 +57,6 @@ private:
|
||||||
int LoadTranslation(const QString &checkedSystem, const QString &checkedLocale);
|
int LoadTranslation(const QString &checkedSystem, const QString &checkedLocale);
|
||||||
void InitTrMs();
|
void InitTrMs();
|
||||||
void CheckNames() const;
|
void CheckNames() const;
|
||||||
QStringList OriginalNames() const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TST_MEASUREMENTREGEXP_H
|
#endif // TST_MEASUREMENTREGEXP_H
|
||||||
|
|
Loading…
Reference in New Issue
Block a user