Fix handling of Visibility property on Restore
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -317,6 +317,10 @@ void QGIViewPart::updateView(bool update)
|
||||
}
|
||||
|
||||
void QGIViewPart::draw() {
|
||||
if (!isVisible()) {
|
||||
return;
|
||||
}
|
||||
|
||||
drawViewPart();
|
||||
drawMatting();
|
||||
QGIView::draw();
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user