diff --git a/src/Mod/TechDraw/Gui/QGIViewDimension.cpp b/src/Mod/TechDraw/Gui/QGIViewDimension.cpp index b18eb25cb2..7c74661f6c 100644 --- a/src/Mod/TechDraw/Gui/QGIViewDimension.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewDimension.cpp @@ -705,9 +705,16 @@ void QGIViewDimension::draw() aHead1->setDirMode(true); aHead2->setDirMode(true); - aHead1->setDirection(a1Dir); - aHead2->setDirection(a2Dir); - + + + if (vp->FlipArrowheads.getValue()) { + aHead1->setDirection(a1Dir * -1.0); + aHead2->setDirection(a2Dir * -1.0); + } else { + aHead1->setDirection(a1Dir); + aHead2->setDirection(a2Dir); + } + aHead1->setStyle(QGIArrow::getPrefArrowStyle()); aHead1->setSize(QGIArrow::getPrefArrowSize()); aHead1->draw(); diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp index 94ac428529..5963734609 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp @@ -57,13 +57,14 @@ ViewProviderDimension::ViewProviderDimension() Base::Reference hGrp = App::GetApplication().GetUserParameter() .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Labels"); std::string fontName = hGrp->GetASCII("LabelFont", "osifont"); + hGrp = App::GetApplication().GetUserParameter() .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Dimensions"); double fontSize = hGrp->GetFloat("FontSize", 3.5); - ADD_PROPERTY_TYPE(Font ,(fontName.c_str()),group,App::Prop_None, "The name of the font to use"); ADD_PROPERTY_TYPE(Fontsize,(fontSize) ,group,(App::PropertyType)(App::Prop_None),"Dimension text size in units"); + hGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Decorations"); std::string lgName = hGrp->GetASCII("LineGroup","FC 0.70mm"); auto lg = TechDraw::LineGroup::lineGroupFactory(lgName); @@ -71,12 +72,15 @@ ViewProviderDimension::ViewProviderDimension() delete lg; //Coverity CID 174670 ADD_PROPERTY_TYPE(LineWidth,(weight) ,group,(App::PropertyType)(App::Prop_None),"Dimension line weight"); + hGrp = App::GetApplication().GetUserParameter() .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Dimensions"); App::Color fcColor; fcColor.setPackedValue(hGrp->GetUnsigned("Color", 0x00000000)); ADD_PROPERTY_TYPE(Color,(fcColor),group,App::Prop_None,"The color of the Dimension"); + ADD_PROPERTY_TYPE(FlipArrowheads ,(false),group,App::Prop_None,"Reverse the normal direction of arrowheads on dimline"); + } ViewProviderDimension::~ViewProviderDimension() @@ -124,7 +128,8 @@ void ViewProviderDimension::onChanged(const App::Property* p) { if ((p == &Font) || (p == &Fontsize) || - (p == &LineWidth) ) { + (p == &LineWidth) || + (p == &FlipArrowheads)) { QGIView* qgiv = getQView(); if (qgiv) { qgiv->updateView(true); diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.h b/src/Mod/TechDraw/Gui/ViewProviderDimension.h index 49821493e5..0e6607b71c 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.h +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.h @@ -48,6 +48,7 @@ public: App::PropertyLength Fontsize; App::PropertyFloat LineWidth; App::PropertyColor Color; + App::PropertyBool FlipArrowheads; virtual void attach(App::DocumentObject *);