From ecb29f1dbf9b296b545bf2725ac6284b3d90c2fb Mon Sep 17 00:00:00 2001 From: wandererfan Date: Sat, 21 Jul 2018 12:49:46 -0400 Subject: [PATCH] Add preference settings - autodistribute, vertex size, vertex color --- src/Mod/TechDraw/App/DrawProjGroup.cpp | 9 +- src/Mod/TechDraw/Gui/DlgPrefsTechDraw.ui | 21 ++++- src/Mod/TechDraw/Gui/DlgPrefsTechDraw2.ui | 90 +++++++++++++++---- src/Mod/TechDraw/Gui/DlgPrefsTechDraw2Imp.cpp | 4 + src/Mod/TechDraw/Gui/DlgPrefsTechDrawImp.cpp | 2 + src/Mod/TechDraw/Gui/QGIPrimPath.cpp | 16 ++++ src/Mod/TechDraw/Gui/QGIPrimPath.h | 3 + src/Mod/TechDraw/Gui/QGIViewPart.cpp | 8 ++ src/Mod/TechDraw/Gui/QGIViewPart.h | 1 - 9 files changed, 131 insertions(+), 23 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawProjGroup.cpp b/src/Mod/TechDraw/App/DrawProjGroup.cpp index c271962b79..63b561abed 100644 --- a/src/Mod/TechDraw/App/DrawProjGroup.cpp +++ b/src/Mod/TechDraw/App/DrawProjGroup.cpp @@ -29,14 +29,15 @@ #include #endif +#include #include #include #include #include #include - #include +#include #include "Cube.h" #include "DrawUtil.h" @@ -62,6 +63,10 @@ DrawProjGroup::DrawProjGroup(void) static const char *group = "Base"; static const char *agroup = "Distribute"; + Base::Reference hGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp")-> + GetGroup("Preferences")->GetGroup("Mod/TechDraw/General"); + bool autoDist = hGrp->GetBool("AutoDist",true); + ADD_PROPERTY_TYPE(Source ,(0), group, App::Prop_None,"Shape to view"); Source.setScope(App::LinkScope::Global); @@ -69,7 +74,7 @@ DrawProjGroup::DrawProjGroup(void) ProjectionType.setEnums(ProjectionTypeEnums); ADD_PROPERTY(ProjectionType, ((long)0)); - ADD_PROPERTY_TYPE(AutoDistribute ,(true),agroup,App::Prop_None,"Distribute Views Automatically or Manually"); + ADD_PROPERTY_TYPE(AutoDistribute ,(autoDist),agroup,App::Prop_None,"Distribute Views Automatically or Manually"); ADD_PROPERTY_TYPE(spacingX, (15), agroup, App::Prop_None, "Horizontal spacing between views"); ADD_PROPERTY_TYPE(spacingY, (15), agroup, App::Prop_None, "Vertical spacing between views"); diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDraw.ui b/src/Mod/TechDraw/Gui/DlgPrefsTechDraw.ui index bed852cfac..47d33b63f5 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDraw.ui +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDraw.ui @@ -7,7 +7,7 @@ 0 0 558 - 845 + 883 @@ -159,6 +159,25 @@ + + + + Automatically distribute secondary views. + + + AutoDistribute Secondary Views + + + true + + + AutoDist + + + /Mod/TechDraw/General + + + diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDraw2.ui b/src/Mod/TechDraw/Gui/DlgPrefsTechDraw2.ui index bb2e2ca0d4..148daf17e9 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDraw2.ui +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDraw2.ui @@ -7,7 +7,7 @@ 0 0 521 - 640 + 716 @@ -274,6 +274,46 @@ + + + + + 175 + 175 + 175 + + + + CenterColor + + + /Mod/TechDraw/Decorations + + + + + + + Adjusts size of vertices in drawing + + + 3.000000000000000 + + + VertexScale + + + Mod/TechDraw/General + + + + + + + Vertex Scale + + + @@ -315,23 +355,6 @@ - - - - - 175 - 175 - 175 - - - - CenterColor - - - /Mod/TechDraw/Decorations - - - @@ -465,7 +488,7 @@ - Line Group + Line Group Name @@ -482,6 +505,30 @@ + + + + Vertex Color + + + + + + + + 150 + 147 + 145 + + + + VertexColor + + + /Mod/TechDraw/Decorations + + + @@ -538,6 +585,11 @@ QLineEdit
Gui/PrefWidgets.h
+ + Gui::PrefDoubleSpinBox + QDoubleSpinBox +
Gui/PrefWidgets.h
+
Gui::PrefUnitSpinBox Gui::QuantitySpinBox diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDraw2Imp.cpp b/src/Mod/TechDraw/Gui/DlgPrefsTechDraw2Imp.cpp index d9b328750c..4985f8272e 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDraw2Imp.cpp +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDraw2Imp.cpp @@ -59,6 +59,8 @@ void DlgPrefsTechDraw2Imp::saveSettings() sbAltDecimals->onSave(); plsb_ArrowSize->onSave(); leLineGroup->onSave(); + pdsb_VertexScale->onSave(); + pcb_VertexColor->onSave(); } void DlgPrefsTechDraw2Imp::loadSettings() @@ -77,6 +79,8 @@ void DlgPrefsTechDraw2Imp::loadSettings() sbAltDecimals->onRestore(); plsb_ArrowSize->onRestore(); leLineGroup->onRestore(); + pdsb_VertexScale->onRestore(); + pcb_VertexColor->onRestore(); } /** diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawImp.cpp b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawImp.cpp index a595e94827..8e2e98c374 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawImp.cpp +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawImp.cpp @@ -50,6 +50,7 @@ void DlgPrefsTechDrawImp::saveSettings() cb_Faces->onSave(); cb_SectionEdges->onSave(); cb_PageUpdate->onSave(); + cb_AutoDist->onSave(); pcb_Normal->onSave(); pcb_Select->onSave(); @@ -78,6 +79,7 @@ void DlgPrefsTechDrawImp::loadSettings() cb_Faces->onRestore(); cb_SectionEdges->onRestore(); cb_PageUpdate->onRestore(); + cb_AutoDist->onRestore(); pcb_Normal->onRestore(); pcb_Select->onRestore(); diff --git a/src/Mod/TechDraw/Gui/QGIPrimPath.cpp b/src/Mod/TechDraw/Gui/QGIPrimPath.cpp index 56a9f95229..81615dd141 100644 --- a/src/Mod/TechDraw/Gui/QGIPrimPath.cpp +++ b/src/Mod/TechDraw/Gui/QGIPrimPath.cpp @@ -52,6 +52,8 @@ QGIPrimPath::QGIPrimPath(): isHighlighted = false; + m_colNormal = Qt::white; + m_colOverride = false; m_colCurrent = getNormalColor(); m_styleCurrent = Qt::SolidLine; m_pen.setStyle(m_styleCurrent); @@ -130,8 +132,15 @@ void QGIPrimPath::paint ( QPainter * painter, const QStyleOptionGraphicsItem * o QColor QGIPrimPath::getNormalColor() { + QColor result; QGIView *parent; + + if (m_colOverride) { + result = m_colNormal; + return result; + } + QGraphicsItem* qparent = parentItem(); if (qparent == nullptr) { parent = nullptr; @@ -205,6 +214,13 @@ void QGIPrimPath::setStyle(Qt::PenStyle s) m_styleCurrent = s; } +void QGIPrimPath::setNormalColor(QColor c) +{ + m_colNormal = c; + m_colOverride = true; +} + + Base::Reference QGIPrimPath::getParmGroup() { Base::Reference hGrp = App::GetApplication().GetUserParameter() diff --git a/src/Mod/TechDraw/Gui/QGIPrimPath.h b/src/Mod/TechDraw/Gui/QGIPrimPath.h index 09da77c1c7..5a5e107860 100644 --- a/src/Mod/TechDraw/Gui/QGIPrimPath.h +++ b/src/Mod/TechDraw/Gui/QGIPrimPath.h @@ -55,6 +55,7 @@ public: virtual double getWidth() { return m_width;} Qt::PenStyle getStyle() { return m_styleCurrent; } void setStyle(Qt::PenStyle s); + virtual void setNormalColor(QColor c); protected: virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); @@ -69,6 +70,8 @@ protected: bool isHighlighted; QPen m_pen; QColor m_colCurrent; + QColor m_colNormal; + bool m_colOverride; Qt::PenStyle m_styleCurrent; double m_width; diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index 047fe4fd69..935063ee2f 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -458,6 +459,11 @@ void QGIViewPart::drawViewPart() Base::Reference hGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp")-> GetGroup("Preferences")->GetGroup("Mod/TechDraw/General"); double vertexScaleFactor = hGrp->GetFloat("VertexScale", 3.0); + hGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp")-> + GetGroup("Preferences")->GetGroup("Mod/TechDraw/Decorations"); + App::Color fcColor; + fcColor.setPackedValue(hGrp->GetUnsigned("VertexColor", 0x00FF0000)); + QColor vertexColor = fcColor.asValue(); bool usePolygonHLR = viewPart->CoarseView.getValue(); const std::vector &verts = viewPart->getVertexGeometry(); @@ -476,6 +482,8 @@ void QGIViewPart::drawViewPart() } } else if(!usePolygonHLR){ //Disable dots WHEN usePolygonHLR QGIVertex *item = new QGIVertex(i); + item->setNormalColor(vertexColor); + item->setPrettyNormal(); addToGroup(item); item->setPos(Rez::guiX((*vert)->pnt.x), Rez::guiX((*vert)->pnt.y)); item->setRadius(lineWidth * vertexScaleFactor); diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.h b/src/Mod/TechDraw/Gui/QGIViewPart.h index 5a56dcb023..8ccdf48684 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.h +++ b/src/Mod/TechDraw/Gui/QGIViewPart.h @@ -26,7 +26,6 @@ #include #include -#include #include #include "QGIView.h"