From 17859d5ffb53dba39b67691a0ec351b504f56b6a Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 15 Sep 2020 14:13:23 +0200 Subject: [PATCH] PD: do not use active document in task dialogs because this is error-prone and optimize string creation in TaskSketchBasedParameters::getFaceReference --- src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp | 9 +++++---- src/Mod/PartDesign/Gui/TaskSketchBasedParameters.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp index b473570524..0ca43bd568 100644 --- a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp @@ -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() diff --git a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.h b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.h index 087abbb1c8..4ff02b477d 100644 --- a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.h +++ b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.h @@ -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