mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-26 15:10:22 -05:00
Clean up delete 3d views and project close/open
Update to latest qtadv docking
This commit is contained in:
1 parent
52df6fd283
commit
255576d53d
7 files changed
+45
-20
No files matched your search
@@ -420,14 +420,29 @@ void RiaGuiApplication::storeDockState()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiaGuiApplication::restoreDockState()
|
||||
{
|
||||
if ( m_mainWindow && !project()->mainWindowDockState().isEmpty() )
|
||||
if ( m_mainWindow )
|
||||
{
|
||||
m_mainWindow->restoreDockWidgetState( project()->mainWindowDockState );
|
||||
bool useDefault = true;
|
||||
if ( !project()->mainWindowDockState().isEmpty() )
|
||||
{
|
||||
useDefault = !m_mainWindow->restoreDockWidgetState( project()->mainWindowDockState );
|
||||
}
|
||||
if ( useDefault )
|
||||
{
|
||||
RiuDockWidgetTools::setDockLayout( m_mainWindow, RiuDockWidgetTools::dockState3DEclipseName() );
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_mainPlotWindow && !project()->plotWindowDockState().isEmpty() )
|
||||
if ( m_mainPlotWindow )
|
||||
{
|
||||
m_mainPlotWindow->restoreDockWidgetState( project()->plotWindowDockState );
|
||||
bool useDefault = true;
|
||||
if ( !project()->plotWindowDockState().isEmpty() )
|
||||
{
|
||||
useDefault = !m_mainPlotWindow->restoreDockWidgetState( project()->plotWindowDockState );
|
||||
}
|
||||
if ( useDefault )
|
||||
{
|
||||
RiuDockWidgetTools::setDockLayout( m_mainPlotWindow, RiuDockWidgetTools::dockStatePlotWindowName() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -206,6 +206,8 @@ Rim3dView::~Rim3dView()
|
||||
RiaApplication::instance()->setActiveReservoirView( nullptr );
|
||||
}
|
||||
|
||||
removeWindowFromDock();
|
||||
|
||||
if ( m_viewer )
|
||||
{
|
||||
m_viewer->clearRimView();
|
||||
@@ -214,8 +216,6 @@ Rim3dView::~Rim3dView()
|
||||
// Make sure the object is disconnected from other objects before delete
|
||||
prepareForDelete();
|
||||
|
||||
removeWindowFromDock();
|
||||
|
||||
if ( m_viewer )
|
||||
{
|
||||
m_viewer->deleteLater();
|
||||
@@ -463,9 +463,12 @@ void Rim3dView::deleteViewWidget()
|
||||
// Earlier implementations has used m_viewer->deleteLater(). This caused issues triggered by 3D editors and
|
||||
// interaction with the event processing. deleteLater() will not be handled by processEvents() if we are in the
|
||||
// state of processing UI events, ie in the process of handling a QAction
|
||||
|
||||
delete m_viewer;
|
||||
m_viewer = nullptr;
|
||||
if ( m_viewer )
|
||||
{
|
||||
m_viewer->setParent( nullptr );
|
||||
delete m_viewer;
|
||||
m_viewer = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -497,6 +500,8 @@ void Rim3dView::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOr
|
||||
m_annotationCountHint.uiCapability()->setUiReadOnly(
|
||||
!m_useCustomAnnotationStrategy || ( m_annotationStrategy() != RivAnnotationTools::LabelPositionStrategy::COUNT_HINT ) );
|
||||
|
||||
uiOrdering.add( &m_dockWindowId );
|
||||
|
||||
uiOrdering.skipRemainingFields( true );
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,6 @@ void RimDockWindowController::handleViewerDeletion()
|
||||
viewPdmObject()->updateUiIconFromToggleField();
|
||||
uiCapability()->updateUiIconFromToggleField();
|
||||
removeWindowFromDock();
|
||||
|
||||
updateConnectedEditors();
|
||||
}
|
||||
|
||||
@@ -72,7 +71,7 @@ void RimDockWindowController::handleViewerDeletion()
|
||||
void RimDockWindowController::removeWindowFromDock()
|
||||
{
|
||||
RiuMainWindowBase* mainWin = getMainWindow();
|
||||
if ( mainWin && viewWidget() && viewPdmObject() )
|
||||
if ( mainWin && viewPdmObject() )
|
||||
{
|
||||
viewPdmObject()->deleteDockWidget();
|
||||
viewPdmObject()->deleteViewWidget();
|
||||
@@ -124,7 +123,7 @@ void RimDockWindowController::updateViewerWidget()
|
||||
if ( !viewWidget() )
|
||||
{
|
||||
ads::CDockWidget* dockWidget = viewPdmObject()->createDockWidget();
|
||||
QWidget* viewWidget = viewPdmObject()->createViewWidget( dockWidget );
|
||||
QWidget* viewWidget = viewPdmObject()->createViewWidget();
|
||||
dockWidget->setWidget( viewWidget );
|
||||
dockWidget->setObjectName( viewPdmObject()->dockWindowName() );
|
||||
viewWidget->setObjectName( viewPdmObject()->dockWindowName() );
|
||||
@@ -140,9 +139,9 @@ void RimDockWindowController::updateViewerWidget()
|
||||
}
|
||||
else
|
||||
{
|
||||
viewPdmObject()->deleteDockWidget();
|
||||
if ( viewWidget() )
|
||||
{
|
||||
viewPdmObject()->deleteDockWidget();
|
||||
viewPdmObject()->deleteViewWidget();
|
||||
mainWindow->onViewerRemoved();
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "cafPdmUiTreeAttributes.h"
|
||||
#include "cafPdmUiTreeViewEditor.h"
|
||||
|
||||
#include "DockManager.h"
|
||||
#include "DockWidget.h"
|
||||
|
||||
#include <QDebug>
|
||||
@@ -68,6 +69,7 @@ RimViewWindow::RimViewWindow()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimViewWindow::~RimViewWindow()
|
||||
{
|
||||
if ( m_windowController ) delete m_windowController;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -158,8 +160,12 @@ QString RimViewWindow::windowTitle()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewWindow::deleteDockWidget()
|
||||
{
|
||||
m_dockWidget->deleteDockWidget();
|
||||
m_dockWidget = nullptr;
|
||||
if ( m_dockWidget && m_dockWidget->dockManager() )
|
||||
{
|
||||
m_dockWidget->dockManager()->removeDockWidget( m_dockWidget );
|
||||
m_dockWidget->deleteLater();
|
||||
m_dockWidget = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -128,10 +128,10 @@ QString RiuMainWindowBase::dockWidgetStateString() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindowBase::restoreDockWidgetState( QString dockStateString )
|
||||
bool RiuMainWindowBase::restoreDockWidgetState( QString dockStateString )
|
||||
{
|
||||
QByteArray dockState = QByteArray::fromBase64( dockStateString.toLatin1() );
|
||||
m_dockManager->restoreState( dockState, DOCKSTATE_VERSION );
|
||||
return m_dockManager->restoreState( dockState, DOCKSTATE_VERSION );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
ads::CDockManager* dockManager() const;
|
||||
|
||||
QString dockWidgetStateString() const;
|
||||
void restoreDockWidgetState( QString dockStateString );
|
||||
bool restoreDockWidgetState( QString dockStateString );
|
||||
|
||||
protected:
|
||||
void createTreeViews( int numberOfTrees );
|
||||
|
||||
Vendored
+1
-1
Submodule ThirdParty/qtadvanceddocking updated: f7779eff0c...3af0cedd5b.
Reference in new issue
Block a user