Fix #3695 Frame toggle sync

This commit is contained in:
wandererfan
2019-05-13 07:23:28 -04:00
committed by WandererFan
parent ef912cfea8
commit d42c79c146
22 changed files with 216 additions and 124 deletions

View File

@@ -50,8 +50,6 @@
#include <Gui/MainWindow.h>
#include <Gui/ViewProviderDocumentObject.h>
#include "MDIViewPage.h"
#include "ViewProviderPage.h"
#include <Mod/TechDraw/App/DrawPage.h>
#include <Mod/TechDraw/App/DrawView.h>
#include <Mod/TechDraw/App/DrawProjGroupItem.h>
@@ -62,6 +60,13 @@
#include <Mod/TechDraw/App/DrawHatch.h>
#include <Mod/TechDraw/App/DrawUtil.h>
#include "MDIViewPage.h"
#include "QGVPage.h"
#include "QGITemplate.h"
#include "ViewProviderTemplate.h"
#include "ViewProviderPage.h"
using namespace TechDrawGui;
#define _SHOWDRAWING 10
@@ -79,7 +84,11 @@ ViewProviderPage::ViewProviderPage()
m_pageName("")
{
sPixmap = "TechDraw_Tree_Page";
static const char *group = "Frames";
ADD_PROPERTY_TYPE(ShowFrames ,(true),group,App::Prop_None,"Show or hide View frames and Labels on this Page");
ShowFrames.setStatus(App::Property::ReadOnly,true);
Visibility.setStatus(App::Property::Hidden,true);
DisplayMode.setStatus(App::Property::Hidden,true);
}
@@ -356,6 +365,47 @@ bool ViewProviderPage::isShow(void) const
return Visibility.getValue();
}
bool ViewProviderPage::getFrameState(void)
{
bool result = ShowFrames.getValue();
return result;
}
void ViewProviderPage::setFrameState(bool state)
{
ShowFrames.setValue(state);
}
void ViewProviderPage::toggleFrameState(void)
{
// Base::Console().Message("VPP::toggleFrameState()\n");
if (m_graphicsView != nullptr) {
setFrameState(!getFrameState());
m_graphicsView->refreshViews();
setTemplateMarkers(getFrameState());
}
}
void ViewProviderPage::setTemplateMarkers(bool state)
{
// Base::Console().Message("VPP::setTemplateMarkers(%d)\n",state);
App::DocumentObject *templateFeat = nullptr;
templateFeat = getDrawPage()->Template.getValue();
Gui::Document* guiDoc = Gui::Application::Instance->getDocument(templateFeat->getDocument());
Gui::ViewProvider* vp = guiDoc->getViewProvider(templateFeat);
ViewProviderTemplate* vpt = dynamic_cast<ViewProviderTemplate*>(vp);
vpt->setMarkers(state);
QGITemplate* t = vpt->getQTemplate();
if (t != nullptr) {
t->updateView(true);
}
}
void ViewProviderPage::setGraphicsView(QGVPage* gv)
{
m_graphicsView = gv;
}
//! Redo the whole visual page
void ViewProviderPage::onGuiRepaint(const TechDraw::DrawPage* dp)
{