reduce use of "execute" on cosmetic changes.
This commit is contained in:
parent
6dc017a1ce
commit
4d7f00860e
|
@ -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;
|
||||
|
|
|
@ -129,7 +129,6 @@ short DrawView::mustExecute() const
|
|||
if (!isRestoring()) {
|
||||
result = (X.isTouched() ||
|
||||
Y.isTouched() ||
|
||||
Rotation.isTouched() ||
|
||||
Scale.isTouched() ||
|
||||
ScaleType.isTouched() );
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -116,7 +116,7 @@ private:
|
|||
QString m_currentPath;
|
||||
QPrinter::Orientation m_orientation;
|
||||
QPrinter::PaperSize m_paperSize;
|
||||
ViewProviderPage *pageGui;
|
||||
ViewProviderPage *m_vpPage;
|
||||
|
||||
bool m_frameState;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -112,7 +112,7 @@ private:
|
|||
bool drawBkg;
|
||||
QBrush* bkgBrush;
|
||||
QImage m_image;
|
||||
ViewProviderPage *pageGui;
|
||||
ViewProviderPage *m_vpPage;
|
||||
};
|
||||
|
||||
} // namespace MDIViewPageGui
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user