Fix handling of Visibility property on Restore

This commit is contained in:
wandererfan
2019-04-29 07:42:43 -04:00
committed by WandererFan
parent 65f0f5e086
commit b09ab03724
4 changed files with 39 additions and 7 deletions

View File

@@ -113,8 +113,6 @@ QGIView::QGIView()
m_lockWidth = (double) sizeLock.width();
m_lockHeight = (double) sizeLock.height();
m_lock->hide();
isVisible(true);
}
QGIView::~QGIView()
@@ -122,6 +120,37 @@ QGIView::~QGIView()
signalSelectPoint.disconnect_all_slots();
}
void QGIView::isVisible(bool state)
{
auto feat = getViewObject();
if (feat != nullptr) {
auto vp = QGIView::getViewProvider(feat);
if (vp != nullptr) {
Gui::ViewProviderDocumentObject* vpdo = dynamic_cast<Gui::ViewProviderDocumentObject*>(vp);
if (vpdo != nullptr) {
vpdo->Visibility.setValue(state);
}
}
}
}
bool QGIView::isVisible(void)
{
bool result = false;
auto feat = getViewObject();
if (feat != nullptr) {
auto vp = QGIView::getViewProvider(feat);
if (vp != nullptr) {
Gui::ViewProviderDocumentObject* vpdo = dynamic_cast<Gui::ViewProviderDocumentObject*>(vp);
if (vpdo != nullptr) {
result = vpdo->Visibility.getValue();
}
}
}
return result;
}
void QGIView::alignTo(QGraphicsItem*item, const QString &alignment)
{
alignHash.clear();

View File

@@ -74,8 +74,8 @@ public:
virtual void toggleCache(bool state);
virtual void updateView(bool update = false);
virtual void drawBorder(void);
virtual void isVisible(bool state) { m_visibility = state; }
virtual bool isVisible(void) {return m_visibility;}
virtual void isVisible(bool state);
virtual bool isVisible(void);
virtual void draw(void);
virtual void drawCaption(void);
virtual void rotateView(void);

View File

@@ -317,6 +317,10 @@ void QGIViewPart::updateView(bool update)
}
void QGIViewPart::draw() {
if (!isVisible()) {
return;
}
drawViewPart();
drawMatting();
QGIView::draw();

View File

@@ -133,7 +133,6 @@ void ViewProviderDrawingView::show(void)
if (obj->getTypeId().isDerivedFrom(TechDraw::DrawView::getClassTypeId())) {
QGIView* qView = getQView();
if (qView) {
qView->isVisible(true);
qView->draw();
qView->show();
}
@@ -150,7 +149,6 @@ void ViewProviderDrawingView::hide(void)
if (obj->getTypeId().isDerivedFrom(TechDraw::DrawView::getClassTypeId())) {
QGIView* qView = getQView();
if (qView) {
qView->isVisible(false);
qView->draw();
qView->hide();
}
@@ -170,7 +168,8 @@ QGIView* ViewProviderDrawingView::getQView(void)
if (dvp) {
if (dvp->getMDIViewPage()) {
if (dvp->getMDIViewPage()->getQGVPage()) {
qView = dynamic_cast<QGIView *>(dvp->getMDIViewPage()->getQGVPage()->findQViewForDocObj(getViewObject()));
qView = dynamic_cast<QGIView *>(dvp->getMDIViewPage()->
getQGVPage()->findQViewForDocObj(getViewObject()));
}
}
}