Minor fix : Element keep up to date there label, when the formula contain the variable %F, and the text pointed by %F contain the variable %id

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4859 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2017-01-19 14:55:19 +00:00
parent eee1095761
commit 43dbc4aa0a

View File

@@ -874,6 +874,11 @@ void Element::freezeNewAddedElement() {
*/ */
void Element::setUpConnectionForFormula(QString old_formula, QString new_formula) void Element::setUpConnectionForFormula(QString old_formula, QString new_formula)
{ {
//Because the variable %F is a reference to another text which can contain variables,
//we must to replace %F by the real text, to check if the real text contain the variable %id
if (diagram() && old_formula.contains("%F"))
old_formula.replace("%F", diagram()->border_and_titleblock.folio());
if (diagram() && (old_formula.contains("%f") || old_formula.contains("%id"))) if (diagram() && (old_formula.contains("%f") || old_formula.contains("%id")))
disconnect(diagram()->project(), &QETProject::projectDiagramsOrderChanged, this, &Element::updateLabel); disconnect(diagram()->project(), &QETProject::projectDiagramsOrderChanged, this, &Element::updateLabel);
if (old_formula.contains("%l")) if (old_formula.contains("%l"))
@@ -884,7 +889,10 @@ void Element::setUpConnectionForFormula(QString old_formula, QString new_formula
//Label is frozen, so we don't update it. //Label is frozen, so we don't update it.
if (m_freeze_label == true) if (m_freeze_label == true)
return; return;
if (diagram() && new_formula.contains("%F"))
new_formula.replace("%F", diagram()->border_and_titleblock.folio());
if (diagram() && (new_formula.contains("%f") || new_formula.contains("%id"))) if (diagram() && (new_formula.contains("%f") || new_formula.contains("%id")))
connect(diagram()->project(), &QETProject::projectDiagramsOrderChanged, this, &Element::updateLabel); connect(diagram()->project(), &QETProject::projectDiagramsOrderChanged, this, &Element::updateLabel);
if (new_formula.contains("%l")) if (new_formula.contains("%l"))