From 6fa92cb1880d3fb1b633a4a5145cb478d9a2e165 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Tue, 13 Feb 2018 14:51:58 -0500 Subject: [PATCH] KeepLabel Property to Gui side --- src/Mod/TechDraw/App/DrawView.cpp | 2 -- src/Mod/TechDraw/App/DrawView.h | 1 - src/Mod/TechDraw/Gui/QGIView.cpp | 7 +++++-- src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp | 10 +++++++++- src/Mod/TechDraw/Gui/ViewProviderDrawingView.h | 1 + 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawView.cpp b/src/Mod/TechDraw/App/DrawView.cpp index a421df2d74..4d89b98b77 100644 --- a/src/Mod/TechDraw/App/DrawView.cpp +++ b/src/Mod/TechDraw/App/DrawView.cpp @@ -84,9 +84,7 @@ DrawView::DrawView(void) ADD_PROPERTY_TYPE(Scale ,(1.0),group,App::Prop_None,"Scale factor of the view"); Scale.setConstraints(&scaleRange); - ADD_PROPERTY_TYPE(KeepLabel ,(false),fgroup,App::Prop_None,"Keep Label on Page even if toggled off"); ADD_PROPERTY_TYPE(Caption ,(""),fgroup,App::Prop_None,"Short text about the view"); - } DrawView::~DrawView() diff --git a/src/Mod/TechDraw/App/DrawView.h b/src/Mod/TechDraw/App/DrawView.h index b427e12215..dde8baa358 100644 --- a/src/Mod/TechDraw/App/DrawView.h +++ b/src/Mod/TechDraw/App/DrawView.h @@ -55,7 +55,6 @@ public: App::PropertyEnumeration ScaleType; App::PropertyFloat Rotation; - App::PropertyBool KeepLabel; App::PropertyString Caption; /** @name methods override Feature */ diff --git a/src/Mod/TechDraw/Gui/QGIView.cpp b/src/Mod/TechDraw/Gui/QGIView.cpp index 4877495c24..57cabedd89 100644 --- a/src/Mod/TechDraw/Gui/QGIView.cpp +++ b/src/Mod/TechDraw/Gui/QGIView.cpp @@ -59,6 +59,7 @@ #include "QGICaption.h" #include "QGCustomClip.h" #include "QGIViewClip.h" +#include "ViewProviderDrawingView.h" #include #include @@ -354,7 +355,8 @@ void QGIView::drawCaption() QPointF displayCenter = displayArea.center(); m_caption->setX(displayCenter.x() - captionArea.width()/2.); double labelHeight = (1 - labelCaptionFudge) * m_label->boundingRect().height(); - if (borderVisible || viewObj->KeepLabel.getValue()) { //place below label if label visible + auto vp = static_cast(getViewProvider(getViewObject())); + if (borderVisible || vp->KeepLabel.getValue()) { //place below label if label visible m_caption->setY(displayArea.bottom() + labelHeight); } else { m_caption->setY(displayArea.bottom() + labelCaptionFudge * getPrefFontSize()); @@ -366,7 +368,8 @@ void QGIView::drawBorder() { drawCaption(); //show neither - if (!borderVisible && !viewObj->KeepLabel.getValue()) { + auto vp = static_cast(getViewProvider(getViewObject())); + if (!borderVisible && !vp->KeepLabel.getValue()) { m_label->hide(); m_border->hide(); return; diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp index 9c3b40de46..f0b58daf08 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp @@ -61,11 +61,13 @@ PROPERTY_SOURCE(TechDrawGui::ViewProviderDrawingView, Gui::ViewProviderDocumentO ViewProviderDrawingView::ViewProviderDrawingView() { sPixmap = "TechDraw_Tree_View"; + static const char *group = "Base"; + + ADD_PROPERTY_TYPE(KeepLabel ,(false),group,App::Prop_None,"Keep Label on Page even if toggled off"); // Do not show in property editor why? wf DisplayMode.setStatus(App::Property::ReadOnly,true); m_docReady = true; - } ViewProviderDrawingView::~ViewProviderDrawingView() @@ -110,7 +112,13 @@ void ViewProviderDrawingView::onChanged(const App::Property *prop) } else { hide(); } + } else if (prop == &KeepLabel) { + QGIView* qgiv = getQView(); + if (qgiv) { + qgiv->updateView(true); + } } + Gui::ViewProviderDocumentObject::onChanged(prop); } diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h index e9eba75377..679fc84135 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h +++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h @@ -49,6 +49,7 @@ public: /// destructor virtual ~ViewProviderDrawingView(); + App::PropertyBool KeepLabel; virtual void attach(App::DocumentObject *); virtual void setDisplayMode(const char* ModeName);