Add option to reverse arrowheads on Dims

This commit is contained in:
wandererfan
2018-09-29 14:01:43 -04:00
committed by Yorik van Havre
parent 3765300abc
commit 61aa0f6230
3 changed files with 18 additions and 5 deletions

View File

@@ -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();

View File

@@ -57,13 +57,14 @@ ViewProviderDimension::ViewProviderDimension()
Base::Reference<ParameterGrp> 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);

View File

@@ -48,6 +48,7 @@ public:
App::PropertyLength Fontsize;
App::PropertyFloat LineWidth;
App::PropertyColor Color;
App::PropertyBool FlipArrowheads;
virtual void attach(App::DocumentObject *);