reduce use of "execute" on cosmetic changes.

This commit is contained in:
WandererFan 2016-09-10 12:41:25 -04:00
parent 6dc017a1ce
commit 4d7f00860e
28 changed files with 188 additions and 144 deletions

View File

@ -107,7 +107,6 @@ void DrawPage::onChanged(const App::Property* prop)
} else if (prop == &Views) {
if (!isRestoring()) {
//TODO: reload if Views prop changes (ie adds/deletes)
//touch();
}
} else if(prop == &Scale) {
// touch all views in the Page as they may be dependent on this scale
@ -136,6 +135,8 @@ void DrawPage::onChanged(const App::Property* prop)
App::DocumentObjectExecReturn *DrawPage::execute(void)
{
//Page is just a property storage area? no real logic involved?
//all this does is trigger onChanged in this and ViewProviderPage
Template.touch();
Views.touch();
return App::DocumentObject::StdReturn;

View File

@ -129,7 +129,6 @@ short DrawView::mustExecute() const
if (!isRestoring()) {
result = (X.isTouched() ||
Y.isTouched() ||
Rotation.isTouched() ||
Scale.isTouched() ||
ScaleType.isTouched() );
}

View File

@ -76,8 +76,7 @@ void DrawViewClip::onChanged(const App::Property* prop)
{
if (prop == &Height ||
prop == &Width ||
prop == &ShowFrame ||
prop == &ShowLabels) {
prop == &Views) {
if (!isRestoring()) {
DrawViewClip::execute();
}

View File

@ -225,22 +225,10 @@ short DrawViewPart::mustExecute() const
Source.isTouched() ||
Scale.isTouched() ||
ScaleType.isTouched() ||
Tolerance.isTouched());
// don't have to execute DVP, but should update Gui
// ShowHiddenLines.isTouched() ||
// ShowSmoothLines.isTouched() ||
// ShowSeamLines.isTouched() ||
// LineWidth.isTouched() ||
// HiddenWidth.isTouched() ||
// ShowCenters.isTouched() ||
// CenterScale.isTouched() ||
// ShowSectionLine.isTouched() ||
// HorizSectionLine.isTouched() ||
// ArrowUpSection.isTouched() ||
// SymbolSection.isTouched() ||
// HorizCenterLine.isTouched() ||
// VertCenterLine.isTouched());
Tolerance.isTouched() ||
ShowHiddenLines.isTouched() ||
ShowSmoothLines.isTouched() ||
ShowSeamLines.isTouched() );
}
if (result) {
@ -259,28 +247,16 @@ void DrawViewPart::onChanged(const App::Property* prop)
prop == &XAxisDirection ||
prop == &Source ||
prop == &Scale ||
prop == &ScaleType) {
//don't need to execute, but need to update Gui
// prop == &ShowHiddenLines ||
// prop == &ShowSmoothLines ||
// prop == &ShowSeamLines ||
// prop == &LineWidth ||
// prop == &HiddenWidth ||
// prop == &ShowCenters ||
// prop == &CenterScale ||
// prop == &ShowSectionLine ||
// prop == &HorizSectionLine ||
// prop == &ArrowUpSection ||
// prop == &SymbolSection ||
// prop == &HorizCenterLine ||
// prop == &VertCenterLine) {
prop == &ScaleType ||
prop == &ShowHiddenLines ||
prop == &ShowSmoothLines ||
prop == &ShowSeamLines)
try {
App::DocumentObjectExecReturn *ret = recompute();
delete ret;
}
catch (...) {
}
}
}
DrawView::onChanged(prop);

View File

@ -115,10 +115,6 @@ short DrawViewSection::mustExecute() const
BaseView.isTouched() ||
SectionNormal.isTouched() ||
SectionOrigin.isTouched() );
//don't need to execute, but need to update Gui
// ShowCutSurface.isTouched() ||
// CutSurfaceColor.isTouched() );
}
if (result) {
return result;

View File

@ -96,7 +96,7 @@ MDIViewPage::MDIViewPage(ViewProviderPage *pageVp, Gui::Document* doc, QWidget*
: Gui::MDIView(doc, parent),
m_orientation(QPrinter::Landscape),
m_paperSize(QPrinter::A4),
pageGui(pageVp),
m_vpPage(pageVp),
m_frameState(true)
{
@ -149,7 +149,7 @@ MDIViewPage::MDIViewPage(ViewProviderPage *pageVp, Gui::Document* doc, QWidget*
// A fresh page is added and we iterate through its collected children and add these to Canvas View -MLP
// if docobj is a featureviewcollection (ex orthogroup), add its child views. if there are ever children that have children,
// we'll have to make this recursive. -WF
const std::vector<App::DocumentObject*> &grp = pageGui->getPageObject()->Views.getValues();
const std::vector<App::DocumentObject*> &grp = m_vpPage->getDrawPage()->Views.getValues();
std::vector<App::DocumentObject*> childViews;
for (std::vector<App::DocumentObject*>::const_iterator it = grp.begin();it != grp.end(); ++it) {
attachView(*it);
@ -165,7 +165,7 @@ MDIViewPage::MDIViewPage(ViewProviderPage *pageVp, Gui::Document* doc, QWidget*
//therefore we need to make sure parentage of the graphics representation is set properly. bit of a kludge.
setDimensionGroups();
App::DocumentObject *obj = pageGui->getPageObject()->Template.getValue();
App::DocumentObject *obj = m_vpPage->getDrawPage()->Template.getValue();
auto pageTemplate( dynamic_cast<TechDraw::DrawTemplate *>(obj) );
if( pageTemplate ) {
attachTemplate(pageTemplate);
@ -312,14 +312,14 @@ bool MDIViewPage::attachView(App::DocumentObject *obj)
void MDIViewPage::updateTemplate(bool forceUpdate)
{
App::DocumentObject *templObj = pageGui->getPageObject()->Template.getValue();
App::DocumentObject *templObj = m_vpPage->getDrawPage()->Template.getValue();
// TODO: what if template has been deleted? templObj will be NULL. segfault?
if (!templObj) {
Base::Console().Log("INFO - MDIViewPage::updateTemplate - Page: %s has NO template!!\n",pageGui->getPageObject()->getNameInDocument());
Base::Console().Log("INFO - MDIViewPage::updateTemplate - Page: %s has NO template!!\n",m_vpPage->getDrawPage()->getNameInDocument());
return;
}
if(pageGui->getPageObject()->Template.isTouched() || templObj->isTouched()) {
if(m_vpPage->getDrawPage()->Template.isTouched() || templObj->isTouched()) {
// Template is touched so update
if(forceUpdate ||
@ -338,10 +338,9 @@ void MDIViewPage::updateTemplate(bool forceUpdate)
void MDIViewPage::updateDrawing(bool forceUpdate)
{
// We cannot guarantee if the number of graphical representations (QGIVxxxx) have changed so check the number
// Why?
// We cannot guarantee if the number of graphical representations (QGIVxxxx) have changed so check the number (MLP)
const std::vector<QGIView *> &graphicsList = m_view->getViews();
const std::vector<App::DocumentObject*> &pageChildren = pageGui->getPageObject()->Views.getValues();
const std::vector<App::DocumentObject*> &pageChildren = m_vpPage->getDrawPage()->Views.getValues();
// Count total # DocumentObjects in Page
unsigned int docObjCount = 0;

View File

@ -116,7 +116,7 @@ private:
QString m_currentPath;
QPrinter::Orientation m_orientation;
QPrinter::PaperSize m_paperSize;
ViewProviderPage *pageGui;
ViewProviderPage *m_vpPage;
bool m_frameState;

View File

@ -46,7 +46,7 @@ public:
enum {Type = QGraphicsItem::UserType + 120};
int type() const override { return Type;}
void updateView(bool update = false) override;
virtual void updateView(bool update = false) override;
void setViewAnnoFeature(TechDraw::DrawViewAnnotation *obj);
virtual void draw() override;

View File

@ -95,7 +95,7 @@ public:
int type() const { return Type;}
virtual void drawBorder();
virtual void updateView(bool update = false);
virtual void updateView(bool update = false) override;
virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 );
public Q_SLOTS:

View File

@ -243,7 +243,6 @@ void QGIViewPart::updateView(bool update)
if( viewPart == nullptr ) {
return;
}
//Base::Console().Message("TRACE - QGIVP::updateView(%d) - %s\n",update,getViewObject()->getNameInDocument());
QGIView::updateView(update);

View File

@ -36,7 +36,7 @@ public:
~QGIViewSection() = default;
virtual void draw() override;
void updateView(bool update = false) override;
virtual void updateView(bool update = false) override;
enum {Type = QGraphicsItem::UserType + 108};
int type() const override { return Type;}
void drawSectionLine(bool b) override;

View File

@ -50,7 +50,7 @@ public:
enum {Type = QGraphicsItem::UserType + 121};
int type() const override { return Type;}
void updateView(bool update = false) override;
virtual void updateView(bool update = false) override;
void setViewSymbolFeature(TechDraw::DrawViewSymbol *obj);
virtual void draw() override;

View File

@ -85,11 +85,11 @@ QGVPage::QGVPage(ViewProviderPage *vp, QGraphicsScene* s, QWidget *parent)
, pageTemplate(0)
, m_renderer(Native)
, drawBkg(true)
, pageGui(0)
, m_vpPage(0)
{
assert(vp);
pageGui = vp;
const char* name = vp->getPageObject()->getNameInDocument();
m_vpPage = vp;
const char* name = vp->getDrawPage()->getNameInDocument();
setObjectName(QString::fromLocal8Bit(name));
setScene(s);
@ -117,7 +117,7 @@ void QGVPage::drawBackground(QPainter *p, const QRectF &)
if(!drawBkg)
return;
if (!pageGui->getPageObject()) {
if (!m_vpPage->getDrawPage()) {
//Base::Console().Log("TROUBLE - QGVP::drawBackground - no Page Object!\n");
return;
}
@ -129,7 +129,7 @@ void QGVPage::drawBackground(QPainter *p, const QRectF &)
p->setBrush(*bkgBrush);
p->drawRect(viewport()->rect());
if(!pageGui) {
if(!m_vpPage) {
return;
}
@ -138,9 +138,9 @@ void QGVPage::drawBackground(QPainter *p, const QRectF &)
float pageWidth = 420,
pageHeight = 297;
if ( pageGui->getPageObject()->hasValidTemplate() ) {
pageWidth = pageGui->getPageObject()->getPageWidth();
pageHeight = pageGui->getPageObject()->getPageHeight();
if ( m_vpPage->getDrawPage()->hasValidTemplate() ) {
pageWidth = m_vpPage->getDrawPage()->getPageWidth();
pageHeight = m_vpPage->getDrawPage()->getPageHeight();
}
// Draw the white page
@ -473,8 +473,8 @@ void QGVPage::toggleHatch(bool enable)
void QGVPage::saveSvg(QString filename)
{
// TODO: We only have pageGui because constructor gets passed a view provider...
TechDraw::DrawPage *page( pageGui->getPageObject() );
// TODO: We only have m_vpPage because constructor gets passed a view provider...
TechDraw::DrawPage *page( m_vpPage->getDrawPage() );
const QString docName( QString::fromUtf8(page->getDocument()->getName()) );
const QString pageName( QString::fromUtf8(page->getNameInDocument()) );
@ -569,7 +569,7 @@ void QGVPage::mouseReleaseEvent(QMouseEvent *event)
TechDraw::DrawPage* QGVPage::getDrawPage()
{
return pageGui->getPageObject();
return m_vpPage->getDrawPage();
}

View File

@ -112,7 +112,7 @@ private:
bool drawBkg;
QBrush* bkgBrush;
QImage m_image;
ViewProviderPage *pageGui;
ViewProviderPage *m_vpPage;
};
} // namespace MDIViewPageGui

View File

@ -42,7 +42,7 @@
using namespace TechDrawGui;
PROPERTY_SOURCE(TechDrawGui::ViewProviderAnnotation, Gui::ViewProviderDocumentObject)
PROPERTY_SOURCE(TechDrawGui::ViewProviderAnnotation, TechDrawGui::ViewProviderDrawingView)
//**************************************************************************
// Construction/Destruction
@ -59,25 +59,40 @@ ViewProviderAnnotation::~ViewProviderAnnotation()
void ViewProviderAnnotation::attach(App::DocumentObject *pcFeat)
{
// call parent attach method
ViewProviderDocumentObject::attach(pcFeat);
ViewProviderDrawingView::attach(pcFeat);
}
void ViewProviderAnnotation::setDisplayMode(const char* ModeName)
{
ViewProviderDocumentObject::setDisplayMode(ModeName);
ViewProviderDrawingView::setDisplayMode(ModeName);
}
std::vector<std::string> ViewProviderAnnotation::getDisplayModes(void) const
{
// get the modes of the father
std::vector<std::string> StrList = ViewProviderDocumentObject::getDisplayModes();
std::vector<std::string> StrList = ViewProviderDrawingView::getDisplayModes();
return StrList;
}
void ViewProviderAnnotation::updateData(const App::Property* prop)
{
Gui::ViewProviderDocumentObject::updateData(prop);
Base::Console().Log("ViewProviderViewSection::updateData - Update View: %s\n",prop->getName());
if (prop == &(getViewObject()->Text) ||
prop == &(getViewObject()->Font) ||
prop == &(getViewObject()->TextColor) ||
prop == &(getViewObject()->TextSize) ||
prop == &(getViewObject()->LineSpace) ||
prop == &(getViewObject()->TextStyle) ||
prop == &(getViewObject()->MaxWidth) ) {
// redraw QGIVP
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->updateView(true);
}
}
ViewProviderDrawingView::updateData(prop);
}
TechDraw::DrawViewAnnotation* ViewProviderAnnotation::getViewObject() const

View File

@ -28,7 +28,7 @@
#include <Gui/ViewProviderFeature.h>
#include "ViewProviderDrawingView.h"
#include <Mod/TechDraw/App/DrawView.h>
#include <Mod/TechDraw/App/DrawViewAnnotation.h>
namespace TechDrawGui {

View File

@ -90,7 +90,7 @@ void ViewProviderDimension::updateData(const App::Property* p)
sPixmap = "TechDraw_Dimension_Angle";
}
}
Gui::ViewProviderDocumentObject::updateData(p);
ViewProviderDrawingView::updateData(p);
}
TechDraw::DrawViewDimension* ViewProviderDimension::getViewObject() const

View File

@ -177,9 +177,18 @@ void ViewProviderDrawingView::finishRestoring()
Gui::ViewProviderDocumentObject::finishRestoring();
}
//void ViewProviderDrawingView::updateData(const App::Property*)
//{
//}
void ViewProviderDrawingView::updateData(const App::Property* prop)
{
if (prop == &(getViewObject()->Rotation) ) {
// redraw QGIVP
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->updateView(true);
}
}
Gui::ViewProviderDocumentObject::updateData(prop);
}
TechDraw::DrawView* ViewProviderDrawingView::getViewObject() const
{

View File

@ -50,7 +50,6 @@ public:
virtual bool useNewSelectionModel(void) const {return false;}
/// returns a list of all possible modes
virtual std::vector<std::string> getDisplayModes(void) const;
//virtual void updateData(const App::Property*);
/// Hide the object in the view
virtual void hide(void);
/// Show the object in the view
@ -58,6 +57,8 @@ public:
virtual bool isShow(void) const;
virtual void onChanged(const App::Property *prop);
virtual void updateData(const App::Property*);
QGIView* getQView(void);
/** @name Restoring view provider from document load */

View File

@ -71,7 +71,7 @@ PROPERTY_SOURCE(TechDrawGui::ViewProviderPage, Gui::ViewProviderDocumentObject)
// Construction/Destruction
ViewProviderPage::ViewProviderPage()
: view(0),
: m_mdiView(0),
m_docReady(true)
{
sPixmap = "TechDraw_Tree_Page";
@ -116,23 +116,23 @@ void ViewProviderPage::show(void)
void ViewProviderPage::hide(void)
{
// hiding the drawing page should not affect its children but closes the MDI view
// hiding the drawing page should not affect its children but closes the MDI m_mdiView
// therefore do not call the method of its direct base class
ViewProviderDocumentObject::hide();
if (view) {
view->parentWidget()->deleteLater();
if (m_mdiView) {
m_mdiView->parentWidget()->deleteLater();
}
}
void ViewProviderPage::updateData(const App::Property* prop)
{
if (prop == &(getPageObject()->Views)) {
if(view) {
view->updateDrawing();
if (prop == &(getDrawPage()->Views)) {
if(m_mdiView) {
m_mdiView->updateDrawing();
}
} else if (prop == &(getPageObject()->Template)) {
if(view) {
view->updateTemplate();
} else if (prop == &(getDrawPage()->Template)) {
if(m_mdiView) {
m_mdiView->updateTemplate();
}
}
@ -141,10 +141,10 @@ void ViewProviderPage::updateData(const App::Property* prop)
bool ViewProviderPage::onDelete(const std::vector<std::string> &items)
{
if (!view.isNull()) {
Gui::getMainWindow()->removeWindow(view);
if (!m_mdiView.isNull()) {
Gui::getMainWindow()->removeWindow(m_mdiView);
Gui::getMainWindow()->activatePreviousWindow();
view->deleteLater(); // Delete the drawing view;
m_mdiView->deleteLater(); // Delete the drawing m_mdiView;
} else {
// MDIViewPage is not displayed yet so don't try to delete it!
Base::Console().Log("INFO - ViewProviderPage::onDelete - Page object deleted when viewer not displayed\n");
@ -165,7 +165,7 @@ bool ViewProviderPage::setEdit(int ModNum)
{
if (ModNum == ViewProvider::Default) {
showMDIViewPage(); // show the drawing
Gui::getMainWindow()->setActiveWindow(view);
Gui::getMainWindow()->setActiveWindow(m_mdiView);
return false;
} else {
Gui::ViewProviderDocumentObject::setEdit(ModNum);
@ -176,7 +176,7 @@ bool ViewProviderPage::setEdit(int ModNum)
bool ViewProviderPage::doubleClicked(void)
{
showMDIViewPage();
Gui::getMainWindow()->setActiveWindow(view);
Gui::getMainWindow()->setActiveWindow(m_mdiView);
return true;
}
@ -186,19 +186,19 @@ bool ViewProviderPage::showMDIViewPage()
return true;
}
if (view.isNull()){
if (m_mdiView.isNull()){
Gui::Document* doc = Gui::Application::Instance->getDocument
(pcObject->getDocument());
view = new MDIViewPage(this, doc, Gui::getMainWindow());
view->setWindowTitle(QObject::tr("Drawing viewer") + QString::fromLatin1("[*]"));
view->setWindowIcon(Gui::BitmapFactory().pixmap("TechDraw_Tree_Page"));
view->updateDrawing(true);
// view->updateTemplate(true); //TODO: I don't think this is necessary? Ends up triggering a reload of SVG template, but the MDIViewPage constructor does too.
Gui::getMainWindow()->addWindow(view);
view->viewAll();
m_mdiView = new MDIViewPage(this, doc, Gui::getMainWindow());
m_mdiView->setWindowTitle(QObject::tr("Drawing viewer") + QString::fromLatin1("[*]"));
m_mdiView->setWindowIcon(Gui::BitmapFactory().pixmap("TechDraw_Tree_Page"));
m_mdiView->updateDrawing(true);
// m_mdiView->updateTemplate(true); //TODO: I don't think this is necessary? Ends up triggering a reload of SVG template, but the MDIViewPage constructor does too.
Gui::getMainWindow()->addWindow(m_mdiView);
m_mdiView->viewAll();
} else {
view->updateDrawing(true);
view->updateTemplate(true);
m_mdiView->updateDrawing(true);
m_mdiView->updateTemplate(true);
}
return true;
}
@ -209,7 +209,7 @@ std::vector<App::DocumentObject*> ViewProviderPage::claimChildren(void) const
// Attach the template if it exists
App::DocumentObject *templateFeat = 0;
templateFeat = getPageObject()->Template.getValue();
templateFeat = getDrawPage()->Template.getValue();
if(templateFeat) {
temp.push_back(templateFeat);
@ -221,7 +221,7 @@ std::vector<App::DocumentObject*> ViewProviderPage::claimChildren(void) const
// any FeatuerView in a DrawViewClip
// DrawHatch
const std::vector<App::DocumentObject *> &views = getPageObject()->Views.getValues();
const std::vector<App::DocumentObject *> &views = getDrawPage()->Views.getValues();
try {
for(std::vector<App::DocumentObject *>::const_iterator it = views.begin(); it != views.end(); ++it) {
@ -252,24 +252,24 @@ void ViewProviderPage::unsetEdit(int ModNum)
MDIViewPage* ViewProviderPage::getMDIViewPage()
{
if (view.isNull()) {
Base::Console().Log("INFO - ViewProviderPage::getMDIViewPage has no view!\n");
if (m_mdiView.isNull()) {
Base::Console().Log("INFO - ViewProviderPage::getMDIViewPage has no m_mdiView!\n");
return 0;
} else {
return view;
return m_mdiView;
}
}
void ViewProviderPage::onSelectionChanged(const Gui::SelectionChanges& msg)
{
if(!view.isNull()) {
if(!m_mdiView.isNull()) {
if(msg.Type == Gui::SelectionChanges::SetSelection) {
view->clearSelection();
m_mdiView->clearSelection();
std::vector<Gui::SelectionSingleton::SelObj> objs = Gui::Selection().getSelection(msg.pDocName);
for (std::vector<Gui::SelectionSingleton::SelObj>::iterator it = objs.begin(); it != objs.end(); ++it) {
Gui::SelectionSingleton::SelObj selObj = *it;
if(selObj.pObject == getPageObject())
if(selObj.pObject == getDrawPage())
continue;
std::string str = msg.pSubName;
@ -281,7 +281,7 @@ void ViewProviderPage::onSelectionChanged(const Gui::SelectionChanges& msg)
// TODO implement me wf: don't think this is ever executed
}
} else {
view->selectFeature(selObj.pObject, true);
m_mdiView->selectFeature(selObj.pObject, true);
}
}
} else {
@ -297,7 +297,7 @@ void ViewProviderPage::onSelectionChanged(const Gui::SelectionChanges& msg)
TechDraw::DrawUtil::getGeomTypeFromName(str) == "Vertex") {
// TODO implement me
} else {
view->selectFeature(obj, selectState);
m_mdiView->selectFeature(obj, selectState);
}
}
}
@ -307,13 +307,13 @@ void ViewProviderPage::onSelectionChanged(const Gui::SelectionChanges& msg)
void ViewProviderPage::onChanged(const App::Property *prop)
{
if (prop == &(getPageObject()->Views)) {
if(view) {
view->updateDrawing();
if (prop == &(getDrawPage()->Views)) {
if(m_mdiView) {
m_mdiView->updateDrawing();
}
} else if (prop == &(getPageObject()->Template)) {
if(view) {
view->updateTemplate();
} else if (prop == &(getDrawPage()->Template)) {
if(m_mdiView) {
m_mdiView->updateTemplate();
}
}
@ -334,11 +334,11 @@ void ViewProviderPage::finishRestoring()
}
TechDraw::DrawPage* ViewProviderPage::getPageObject() const
TechDraw::DrawPage* ViewProviderPage::getDrawPage() const
{
//during redo, pcObject can become invalid, but non-zero??
if (!pcObject) {
Base::Console().Message("TROUBLE - VPP::getPageObject - no Page Object!\n");
Base::Console().Message("TROUBLE - VPPage::getDrawPage - no Page Object!\n");
return nullptr;
}
return dynamic_cast<TechDraw::DrawPage*>(pcObject);

View File

@ -78,7 +78,7 @@ public:
virtual void finishRestoring();
bool isRestoring(void) {return !m_docReady;}
TechDraw::DrawPage* getPageObject() const;
TechDraw::DrawPage* getDrawPage() const;
void unsetEdit(int ModNum);
MDIViewPage* getMDIViewPage();
@ -87,7 +87,7 @@ protected:
bool showMDIViewPage();
private:
QPointer<MDIViewPage> view;
QPointer<MDIViewPage> m_mdiView;
bool m_docReady;
};

View File

@ -28,20 +28,15 @@
/// Here the FreeCAD includes sorted by Base,App,Gui......
#include <Base/Console.h>
//#include <Base/Parameter.h>
//#include <Base/Exception.h>
//#include <Base/Sequencer.h>
#include <App/Application.h>
#include <App/Document.h>
#include <App/DocumentObject.h>
//#include <Gui/SoFCSelection.h>
//#include <Gui/Selection.h>
#include "ViewProviderSpreadsheet.h"
using namespace TechDrawGui;
PROPERTY_SOURCE(TechDrawGui::ViewProviderSpreadsheet, Gui::ViewProviderDocumentObject)
PROPERTY_SOURCE(TechDrawGui::ViewProviderSpreadsheet, TechDrawGui::ViewProviderSymbol)
//**************************************************************************
// Construction/Destruction
@ -58,25 +53,25 @@ ViewProviderSpreadsheet::~ViewProviderSpreadsheet()
void ViewProviderSpreadsheet::attach(App::DocumentObject *pcFeat)
{
// call parent attach method
ViewProviderDocumentObject::attach(pcFeat);
ViewProviderSymbol::attach(pcFeat);
}
void ViewProviderSpreadsheet::setDisplayMode(const char* ModeName)
{
ViewProviderDocumentObject::setDisplayMode(ModeName);
ViewProviderSymbol::setDisplayMode(ModeName);
}
std::vector<std::string> ViewProviderSpreadsheet::getDisplayModes(void) const
{
// get the modes of the father
std::vector<std::string> StrList = ViewProviderDocumentObject::getDisplayModes();
std::vector<std::string> StrList = ViewProviderSymbol::getDisplayModes();
return StrList;
}
void ViewProviderSpreadsheet::updateData(const App::Property* prop)
{
Gui::ViewProviderDocumentObject::updateData(prop);
ViewProviderSymbol::updateData(prop);
}
TechDraw::DrawViewSpreadsheet* ViewProviderSpreadsheet::getViewObject() const

View File

@ -42,7 +42,7 @@
using namespace TechDrawGui;
PROPERTY_SOURCE(TechDrawGui::ViewProviderSymbol, Gui::ViewProviderDocumentObject)
PROPERTY_SOURCE(TechDrawGui::ViewProviderSymbol, TechDrawGui::ViewProviderDrawingView)
//**************************************************************************
// Construction/Destruction
@ -59,25 +59,25 @@ ViewProviderSymbol::~ViewProviderSymbol()
void ViewProviderSymbol::attach(App::DocumentObject *pcFeat)
{
// call parent attach method
ViewProviderDocumentObject::attach(pcFeat);
ViewProviderDrawingView::attach(pcFeat);
}
void ViewProviderSymbol::setDisplayMode(const char* ModeName)
{
ViewProviderDocumentObject::setDisplayMode(ModeName);
ViewProviderDrawingView::setDisplayMode(ModeName);
}
std::vector<std::string> ViewProviderSymbol::getDisplayModes(void) const
{
// get the modes of the father
std::vector<std::string> StrList = ViewProviderDocumentObject::getDisplayModes();
std::vector<std::string> StrList = ViewProviderDrawingView::getDisplayModes();
return StrList;
}
void ViewProviderSymbol::updateData(const App::Property* prop)
{
Gui::ViewProviderDocumentObject::updateData(prop);
ViewProviderDrawingView::updateData(prop);
}
TechDraw::DrawViewSymbol* ViewProviderSymbol::getViewObject() const

View File

@ -57,6 +57,22 @@ ViewProviderViewClip::~ViewProviderViewClip()
{
}
void ViewProviderViewClip::updateData(const App::Property* prop)
{
Base::Console().Log("ViewProviderViewClip::updateData - Update View: %s\n",prop->getName());
if (prop == &(getViewObject()->Height) ||
prop == &(getViewObject()->Width) ||
prop == &(getViewObject()->ShowFrame) ||
prop == &(getViewObject()->ShowLabels) ) {
// redraw QGIVP
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->updateView(true);
}
}
ViewProviderDrawingView::updateData(prop);
}
void ViewProviderViewClip::attach(App::DocumentObject *pcFeat)
{
// call parent attach method

View File

@ -50,6 +50,7 @@ public:
virtual TechDraw::DrawViewClip* getViewObject() const;
TechDraw::DrawViewClip* getObject() const;
virtual void updateData(const App::Property* prop);
/// Hide the object in the view
virtual void hide(void);

View File

@ -32,12 +32,9 @@
#include <Base/Console.h>
#include <Base/Parameter.h>
//#include <Base/Exception.h>
//#include <Base/Sequencer.h>
#include <App/Application.h>
#include <App/Document.h>
#include <App/DocumentObject.h>
//#include <Gui/SoFCSelection.h>
//#include <Gui/Selection.h>
#include <Mod/TechDraw/App/DrawViewDimension.h>
#include <Mod/TechDraw/App/DrawHatch.h>
@ -59,8 +56,38 @@ ViewProviderViewPart::ViewProviderViewPart()
ViewProviderViewPart::~ViewProviderViewPart()
{
}
void ViewProviderViewPart::updateData(const App::Property* prop)
{
if (prop == &(getViewObject()->LineWidth) ||
prop == &(getViewObject()->HiddenWidth) ||
prop == &(getViewObject()->ShowCenters) ||
prop == &(getViewObject()->CenterScale) ||
prop == &(getViewObject()->ShowSectionLine) ||
prop == &(getViewObject()->HorizSectionLine) ||
prop == &(getViewObject()->ArrowUpSection) ||
prop == &(getViewObject()->SymbolSection) ||
prop == &(getViewObject()->HorizCenterLine) ||
prop == &(getViewObject()->VertCenterLine) ) {
// redraw QGIVP
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->updateView(true);
}
}
ViewProviderDrawingView::updateData(prop);
}
void ViewProviderViewPart::onChanged(const App::Property* prop)
{
ViewProviderDrawingView::onChanged(prop);
}
void ViewProviderViewPart::attach(App::DocumentObject *pcFeat)
{
// call parent attach method

View File

@ -47,6 +47,9 @@ public:
virtual std::vector<std::string> getDisplayModes(void) const;
public:
virtual void onChanged(const App::Property *prop);
virtual void updateData(const App::Property*);
virtual std::vector<App::DocumentObject*> claimChildren(void) const;
virtual TechDraw::DrawViewPart* getViewObject() const;

View File

@ -76,9 +76,17 @@ std::vector<std::string> ViewProviderViewSection::getDisplayModes(void) const
void ViewProviderViewSection::updateData(const App::Property* prop)
{
//Base::Console().Log("ViewProviderViewSection::updateData - Update View: %s\n",prop->getName());
//
Gui::ViewProviderDocumentObject::updateData(prop);
Base::Console().Log("ViewProviderViewSection::updateData - Update View: %s\n",prop->getName());
if (prop == &(getViewObject()->ShowCutSurface) ||
prop == &(getViewObject()->CutSurfaceColor) ) {
// redraw QGIVP
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->updateView(true);
}
}
ViewProviderViewPart::updateData(prop);
}
std::vector<App::DocumentObject*> ViewProviderViewSection::claimChildren(void) const