PD: do not use active document in task dialogs because this is error-prone

and optimize string creation in TaskSketchBasedParameters::getFaceReference
This commit is contained in:
wmayer
2020-09-15 14:13:23 +02:00
parent dc7de6b195
commit 17859d5ffb
2 changed files with 6 additions and 5 deletions

View File

@@ -197,15 +197,16 @@ QVariant TaskSketchBasedParameters::objectNameByLabel(const QString& label,
return QVariant(); // no such feature found
}
QString TaskSketchBasedParameters::getFaceReference(const QString& obj, const QString& sub)
QString TaskSketchBasedParameters::getFaceReference(const QString& obj, const QString& sub) const
{
App::Document* doc = this->vp->getObject()->getDocument();
QString o = obj.left(obj.indexOf(QString::fromLatin1(":")));
if (o.isEmpty())
return QString();
else
return QString::fromLatin1("(App.activeDocument().") + o +
QString::fromLatin1(", [\"") + sub + QString::fromLatin1("\"])");
return QString::fromLatin1("(App.getDocument(\"%1\").%2, [\"%3\"])")
.arg(QString::fromLatin1(doc->getName()), o, sub);
}
TaskSketchBasedParameters::~TaskSketchBasedParameters()

View File

@@ -58,7 +58,7 @@ protected:
/// For faster access a suggested name can be tested, first.
QVariant objectNameByLabel(const QString& label, const QVariant& suggest) const;
static QString getFaceReference(const QString& obj, const QString& sub);
QString getFaceReference(const QString& obj, const QString& sub) const;
};
class TaskDlgSketchBasedParameters : public PartDesignGui::TaskDlgFeatureParameters