New warning. Warn about empty measurements dimension value when preparing placeholders.

This commit is contained in:
Roman Telezhynskyi 2020-12-17 17:42:37 +02:00
parent f40c06b6fc
commit 0ab76dd6b9
3 changed files with 33 additions and 1 deletions

View File

@ -3,6 +3,7 @@
- Update translations. - Update translations.
- Fix a regression in tool Segment a spline path. - Fix a regression in tool Segment a spline path.
- Fix invalid visualization for tool Point of intersection circles. - Fix invalid visualization for tool Point of intersection circles.
- New warning. Warn about empty measurements dimension value when preparing placeholders.
# Version 0.7.41 Dec 4, 2020 # Version 0.7.41 Dec 4, 2020
- Bug fixes. - Bug fixes.

View File

@ -284,6 +284,21 @@ void InitPiecePlaceholders(QMap<QString, QString> &placeholders, const QString &
QString ReplacePlaceholders(const QMap<QString, QString> &placeholders, QString line) QString ReplacePlaceholders(const QMap<QString, QString> &placeholders, QString line)
{ {
QChar per('%'); QChar per('%');
auto TestDimension = [per, placeholders, line](const QString &placeholder, const QString &errorMsg)
{
if (line.contains(per+placeholder+per) && placeholders.value(placeholder) == QChar('0'))
{
qApp->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
}
};
TestDimension(pl_height, QObject::tr("No data for the height dimension."));
TestDimension(pl_size, QObject::tr("No data for the size dimension."));
TestDimension(pl_hip, QObject::tr("No data for the hip dimension."));
TestDimension(pl_waist, QObject::tr("No data for the waist dimension."));
auto i = placeholders.constBegin(); auto i = placeholders.constBegin();
while (i != placeholders.constEnd()) while (i != placeholders.constEnd())
{ {

View File

@ -586,10 +586,26 @@ void DialogEditLabel::InitPlaceholders()
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString DialogEditLabel::ReplacePlaceholders(QString line) const QString DialogEditLabel::ReplacePlaceholders(QString line) const
{ {
QChar per('%');
auto TestDimension = [per, this, line](const QString &placeholder, const QString &errorMsg)
{
if (line.contains(per+placeholder+per) && m_placeholders.value(placeholder).second == QChar('0'))
{
qApp->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
}
};
TestDimension(pl_height, tr("No data for the height dimension."));
TestDimension(pl_size, tr("No data for the size dimension."));
TestDimension(pl_hip, tr("No data for the hip dimension."));
TestDimension(pl_waist, tr("No data for the waist dimension."));
auto i = m_placeholders.constBegin(); auto i = m_placeholders.constBegin();
while (i != m_placeholders.constEnd()) while (i != m_placeholders.constEnd())
{ {
line.replace(QChar('%')+i.key()+QChar('%'), i.value().second); line.replace(per+i.key()+per, i.value().second);
++i; ++i;
} }
return line; return line;