From 6b930016c8c19e1e239f69e2fc3e57fa1433dab7 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Mon, 12 Feb 2018 10:12:10 -0500 Subject: [PATCH] Avoid affecting other Tabs when Page deleted. - when Page object was deleted, closing the Page's tab would have undesired effect on 3D tab. Now Page delete does not affect other tabs. --- src/Mod/TechDraw/Gui/ViewProviderPage.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp index 5499eb5ace..6c585b8f63 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp @@ -119,6 +119,8 @@ void ViewProviderPage::show(void) showMDIViewPage(); } +//this "hide" is only used for Visibility property toggle +//not when Page tab is closed. void ViewProviderPage::hide(void) { if (!m_mdiView.isNull()) { //m_mdiView is a QPointer @@ -169,18 +171,11 @@ void ViewProviderPage::updateData(const App::Property* prop) bool ViewProviderPage::onDelete(const std::vector &items) { + bool rc = ViewProviderDocumentObject::onDelete(items); if (!m_mdiView.isNull()) { - Gui::getMainWindow()->removeWindow(m_mdiView); -// Gui::getMainWindow()->activatePreviousWindow(); //changed for consistency. see comment in hide() above. - //note: doesn't fix problem here. - //3d view is still not maximized after page is deleted. - 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"); + m_mdiView->deleteSelf(); } - Gui::Selection().clearSelection(); - return ViewProviderDocumentObject::onDelete(items); + return rc; } void ViewProviderPage::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)