mirror of
https://gitlab.com/smart-pattern/valentina.git
synced 2024-09-19 23:34:04 +02:00
Fix regression.
Incorrect processing placeholders in pattern label.
This commit is contained in:
parent
2a04a726cd
commit
f55eb4b68a
|
@ -627,13 +627,20 @@ void InitPiecePlaceholders(QMap<QString, QString> &placeholders, const VPieceLab
|
||||||
AddPlaceholder(pl_pName, info.pieceName);
|
AddPlaceholder(pl_pName, info.pieceName);
|
||||||
AddPlaceholder(pl_pQuantity, QString::number(data.GetQuantity()));
|
AddPlaceholder(pl_pQuantity, QString::number(data.GetQuantity()));
|
||||||
|
|
||||||
if (data.IsOnFold() && uniquePlaceholders.contains('%' + pl_wOnFold + '%'))
|
if (uniquePlaceholders.contains('%' + pl_wOnFold + '%'))
|
||||||
|
{
|
||||||
|
if (data.IsOnFold())
|
||||||
{
|
{
|
||||||
if (QSharedPointer<VTranslator> const phTr = info.placeholderTranslator; !phTr.isNull())
|
if (QSharedPointer<VTranslator> const phTr = info.placeholderTranslator; !phTr.isNull())
|
||||||
{
|
{
|
||||||
placeholders.insert(pl_wOnFold, phTr->translate("Placeholder", "on fold"));
|
placeholders.insert(pl_wOnFold, phTr->translate("Placeholder", "on fold"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
placeholders.insert(pl_wOnFold, QString());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -916,9 +923,40 @@ void VTextManager::UpdatePatternLabelInfo(const VPieceLabelInfo &info)
|
||||||
return; // Nothing to parse
|
return; // Nothing to parse
|
||||||
}
|
}
|
||||||
|
|
||||||
QSet<QString> const uniquePlaceholders = UniquePlaceholders(info.labelData.GetLabelTemplate());
|
QSet<QString> const uniquePlaceholders = UniquePlaceholders(lines);
|
||||||
|
|
||||||
const QMap<QString, QString> placeholders = PreparePlaceholders(info, uniquePlaceholders);
|
QMap<QString, QString> placeholders = PreparePlaceholders(info, uniquePlaceholders);
|
||||||
|
|
||||||
|
if (QSharedPointer<VTranslator> const phTr = info.placeholderTranslator; !phTr.isNull())
|
||||||
|
{
|
||||||
|
// These placeholders must be available only in piece label
|
||||||
|
const QString errorValue = '<' + phTr->translate("Placeholder", "Error") + '>';
|
||||||
|
auto AddPlaceholder = [&placeholders, uniquePlaceholders, errorValue](const QString &name, const QString &value)
|
||||||
|
{
|
||||||
|
const QString placeholder = '%' + name + '%';
|
||||||
|
if (uniquePlaceholders.contains(placeholder))
|
||||||
|
{
|
||||||
|
const QString errorMsg =
|
||||||
|
QObject::tr("Incorrect use of placeholder %1. This placeholder is not available in pattern label.")
|
||||||
|
.arg(placeholder);
|
||||||
|
VAbstractApplication::VApp()->IsPedantic()
|
||||||
|
? throw VException(errorMsg)
|
||||||
|
: qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg;
|
||||||
|
|
||||||
|
placeholders.insert(name, value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
AddPlaceholder(pl_pLetter, errorValue);
|
||||||
|
AddPlaceholder(pl_pAnnotation, errorValue);
|
||||||
|
AddPlaceholder(pl_pOrientation, errorValue);
|
||||||
|
AddPlaceholder(pl_pRotation, errorValue);
|
||||||
|
AddPlaceholder(pl_pTilt, errorValue);
|
||||||
|
AddPlaceholder(pl_pFoldPosition, errorValue);
|
||||||
|
AddPlaceholder(pl_pName, errorValue);
|
||||||
|
AddPlaceholder(pl_pQuantity, errorValue);
|
||||||
|
AddPlaceholder(pl_wOnFold, errorValue);
|
||||||
|
}
|
||||||
|
|
||||||
for (auto &line : lines)
|
for (auto &line : lines)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue