From e148a08b0e69fd830c6734daec449a4ca94cbfc9 Mon Sep 17 00:00:00 2001 From: donovaly Date: Tue, 28 Jan 2020 02:38:20 +0100 Subject: [PATCH] [TD] disable the frame parameters if there is no frame see https://forum.freecadweb.org/viewtopic.php?f=35&t=42747&start=10#p363768 following --- src/Mod/TechDraw/Gui/ViewProviderLeader.cpp | 2 +- src/Mod/TechDraw/Gui/ViewProviderRichAnno.cpp | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Mod/TechDraw/Gui/ViewProviderLeader.cpp b/src/Mod/TechDraw/Gui/ViewProviderLeader.cpp index 1524f5bce1..7912c13121 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderLeader.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderLeader.cpp @@ -74,7 +74,7 @@ ViewProviderLeader::ViewProviderLeader() static const char *group = "Line Format"; ADD_PROPERTY_TYPE(LineWidth,(getDefLineWeight()),group,(App::PropertyType)(App::Prop_None),"Line width"); - ADD_PROPERTY_TYPE(LineStyle,(1),group,(App::PropertyType)(App::Prop_None),"Line style"); + ADD_PROPERTY_TYPE(LineStyle,(1),group,(App::PropertyType)(App::Prop_None),"Line style index"); ADD_PROPERTY_TYPE(Color,(getDefLineColor()),group,App::Prop_None,"The color of the Markup"); LineStyle.setConstraints(&LineStyleRange); diff --git a/src/Mod/TechDraw/Gui/ViewProviderRichAnno.cpp b/src/Mod/TechDraw/Gui/ViewProviderRichAnno.cpp index 0a0cbaf7b4..28e38d787d 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderRichAnno.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderRichAnno.cpp @@ -72,7 +72,7 @@ ViewProviderRichAnno::ViewProviderRichAnno() static const char *group = "Frame Format"; ADD_PROPERTY_TYPE(LineWidth,(getDefLineWeight()), group,(App::PropertyType)(App::Prop_None),"Frame line width"); - ADD_PROPERTY_TYPE(LineStyle,(1),group,(App::PropertyType)(App::Prop_None),"Frame line style"); + ADD_PROPERTY_TYPE(LineStyle,(1),group,(App::PropertyType)(App::Prop_None),"Frame line style index"); ADD_PROPERTY_TYPE(LineColor,(getDefLineColor()),group,App::Prop_None,"The color of the frame"); LineStyle.setConstraints(&LineStyleRange); @@ -124,6 +124,19 @@ bool ViewProviderRichAnno::doubleClicked(void) void ViewProviderRichAnno::updateData(const App::Property* p) { + // only if there is a frame we can enable the frame line parameters + if (getViewObject() != nullptr) { + if (getViewObject()->ShowFrame.getValue()) { + LineWidth.setStatus(App::Property::ReadOnly, false); + LineStyle.setStatus(App::Property::ReadOnly, false); + LineColor.setStatus(App::Property::ReadOnly, false); + } + else { + LineWidth.setStatus(App::Property::ReadOnly, true); + LineStyle.setStatus(App::Property::ReadOnly, true); + LineColor.setStatus(App::Property::ReadOnly, true); + } + } ViewProviderDrawingView::updateData(p); }