From bba800af1d1f94adb0f51b6804f4e50cab4c0e3c Mon Sep 17 00:00:00 2001 From: WandererFan Date: Mon, 28 Aug 2017 19:43:42 -0400 Subject: [PATCH] Fix handling of Scale change in DrawViewSymbol classes --- src/Mod/TechDraw/App/DrawViewArch.cpp | 3 ++- src/Mod/TechDraw/App/DrawViewDraft.cpp | 1 + src/Mod/TechDraw/App/DrawViewSymbol.cpp | 16 ++++++++++++++++ src/Mod/TechDraw/App/DrawViewSymbol.h | 2 ++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Mod/TechDraw/App/DrawViewArch.cpp b/src/Mod/TechDraw/App/DrawViewArch.cpp index 7edab013c9..8e15655098 100644 --- a/src/Mod/TechDraw/App/DrawViewArch.cpp +++ b/src/Mod/TechDraw/App/DrawViewArch.cpp @@ -121,7 +121,8 @@ App::DocumentObjectExecReturn *DrawViewArch::execute(void) SourceName.c_str(),paramStr.str().c_str()); Base::Interpreter().runStringArg("App.activeDocument().%s.Symbol = '%s' + svgBody + '%s'", FeatName.c_str(),svgHead.c_str(),svgTail.c_str()); - } + } + requestPaint(); return DrawView::execute(); } diff --git a/src/Mod/TechDraw/App/DrawViewDraft.cpp b/src/Mod/TechDraw/App/DrawViewDraft.cpp index d0f007cc6f..906d592f2c 100644 --- a/src/Mod/TechDraw/App/DrawViewDraft.cpp +++ b/src/Mod/TechDraw/App/DrawViewDraft.cpp @@ -124,6 +124,7 @@ App::DocumentObjectExecReturn *DrawViewDraft::execute(void) Base::Interpreter().runStringArg("App.activeDocument().%s.Symbol = '%s' + svgBody + '%s'", FeatName.c_str(),svgHead.c_str(),svgTail.c_str()); } + requestPaint(); return DrawView::execute(); } diff --git a/src/Mod/TechDraw/App/DrawViewSymbol.cpp b/src/Mod/TechDraw/App/DrawViewSymbol.cpp index d84cf12561..b28d15b620 100644 --- a/src/Mod/TechDraw/App/DrawViewSymbol.cpp +++ b/src/Mod/TechDraw/App/DrawViewSymbol.cpp @@ -83,6 +83,7 @@ void DrawViewSymbol::onChanged(const App::Property* prop) tbegin = twhat[0].second; } EditableTexts.setValues(eds); + requestPaint(); } } } @@ -119,6 +120,7 @@ App::DocumentObjectExecReturn *DrawViewSymbol::execute(void) } Symbol.setValue(newsvg); + requestPaint(); return DrawView::execute(); } @@ -160,6 +162,20 @@ bool DrawViewSymbol::checkFit(TechDraw::DrawPage* p) const return result; } +short DrawViewSymbol::mustExecute() const +{ + short result = 0; + if (!isRestoring()) { + result = (Scale.isTouched() || + EditableTexts.isTouched()); + } + if ((bool) result) { + return result; + } + return DrawView::mustExecute(); +} + + PyObject *DrawViewSymbol::getPyObject(void) { if (PythonObject.is(Py::_None())) { diff --git a/src/Mod/TechDraw/App/DrawViewSymbol.h b/src/Mod/TechDraw/App/DrawViewSymbol.h index 05c1282f54..efbd26c49f 100644 --- a/src/Mod/TechDraw/App/DrawViewSymbol.h +++ b/src/Mod/TechDraw/App/DrawViewSymbol.h @@ -63,6 +63,8 @@ public: //return PyObject as DrawViewSymbolPy virtual PyObject *getPyObject(void); + virtual short mustExecute() const; + protected: virtual void onChanged(const App::Property* prop) override;