Work in progress

This commit is contained in:
jonjenssen authored and JJ committed 2026-06-17 13:55:32 +02:00
1 parent a28340063f
commit fee0599139
4 files changed
+40 -5

No files matched your search

@@ -156,9 +156,10 @@ void RimDockWindowController::updateViewerWidget()
{ {
if ( !viewWidget() ) if ( !viewWidget() )
{ {
ads::CDockWidget* viewWindow = mainWindow->createDockViewWindow(); ads::CDockWidget* dockWidget = viewPdmObject()->createDockWidget();
QWidget* viewWidget = viewPdmObject()->createViewWidget( viewWindow ); QWidget* viewWidget = viewPdmObject()->createViewWidget( dockWidget );
mainWindow->initializeViewer( viewWindow, viewWidget, windowGeometry() ); dockWidget->setWidget( viewWidget );
mainWindow->initializeViewer( dockWidget, viewWidget, windowGeometry() );
viewPdmObject()->updateViewWidgetAfterCreation(); viewPdmObject()->updateViewWidgetAfterCreation();
} }
@@ -32,6 +32,8 @@
#include "cafPdmUiTreeAttributes.h" #include "cafPdmUiTreeAttributes.h"
#include "cafPdmUiTreeViewEditor.h" #include "cafPdmUiTreeViewEditor.h"
#include "DockWidget.h"
#include <QDebug> #include <QDebug>
#include <QImage> #include <QImage>
#include <QPixmap> #include <QPixmap>
@@ -43,6 +45,7 @@ CAF_PDM_XML_ABSTRACT_SOURCE_INIT( RimViewWindow, "ViewWindow" ); // Do not use.
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimViewWindow::RimViewWindow() RimViewWindow::RimViewWindow()
: m_dockWidget( nullptr )
{ {
CAF_PDM_InitScriptableObjectWithNameAndComment( "View window", "", "", "", "ViewWindow", "The Base Class for all Views and Plots in ResInsight" ); CAF_PDM_InitScriptableObjectWithNameAndComment( "View window", "", "", "", "ViewWindow", "The Base Class for all Views and Plots in ResInsight" );
@@ -280,9 +283,10 @@ void RimViewWindow::fieldChangedByUi( const caf::PdmFieldHandle* changedField, c
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimViewWindow::updateMdiWindowTitle() void RimViewWindow::updateMdiWindowTitle()
{ {
if ( viewWidget() ) if ( viewWidget() && dockWidget() )
{ {
viewWidget()->setWindowTitle( windowTitle() ); viewWidget()->setWindowTitle( windowTitle() );
dockWidget()->setWindowTitle( windowTitle() );
} }
} }
@@ -347,3 +351,23 @@ void RimViewWindow::defineObjectEditorAttribute( QString uiConfigName, caf::PdmU
treeItemAttribute->tags.push_back( std::move( tag ) ); treeItemAttribute->tags.push_back( std::move( tag ) );
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
ads::CDockWidget* RimViewWindow::dockWidget()
{
return m_dockWidget;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
ads::CDockWidget* RimViewWindow::createDockWidget()
{
if ( !m_dockWidget )
{
m_dockWidget = new ads::CDockWidget( windowTitle() );
}
return m_dockWidget;
}
@@ -29,6 +29,11 @@
class RimDockWindowController; class RimDockWindowController;
namespace ads
{
class CDockWidget;
} // namespace ads
struct RimMdiWindowGeometry struct RimMdiWindowGeometry
{ {
RimMdiWindowGeometry() RimMdiWindowGeometry()
@@ -79,6 +84,9 @@ public:
virtual QWidget* viewWidget() = 0; virtual QWidget* viewWidget() = 0;
ads::CDockWidget* dockWidget();
ads::CDockWidget* createDockWidget();
virtual QImage snapshotWindowContent(); virtual QImage snapshotWindowContent();
virtual void zoomAll() = 0; virtual void zoomAll() = 0;
@@ -119,6 +127,7 @@ private:
protected: protected:
caf::PdmField<bool> m_showWindow; caf::PdmField<bool> m_showWindow;
caf::PdmChildField<RimDockWindowController*> m_windowController; caf::PdmChildField<RimDockWindowController*> m_windowController;
ads::CDockWidget* m_dockWidget;
private: private:
// Obsoleted field // Obsoleted field
@@ -155,6 +155,7 @@ RiuMainWindow::RiuMainWindow()
welcome->setPlainText( "Welcome to ResInsight!\n\n" welcome->setPlainText( "Welcome to ResInsight!\n\n"
"To get started, open a project from the File menu or drag and drop a project file into this window." ); "To get started, open a project from the File menu or drag and drop a project file into this window." );
m_centralDockWidget->setWidget( welcome ); m_centralDockWidget->setWidget( welcome );
m_centralDockWidget->setFeature( ads::CDockWidget::NoTab, true );
dockManager()->setCentralWidget( m_centralDockWidget ); dockManager()->setCentralWidget( m_centralDockWidget );
createActions(); createActions();
@@ -1289,7 +1290,7 @@ void RiuMainWindow::initializeViewer( QMdiSubWindow* subWindow, QWidget* viewer,
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuMainWindow::initializeViewer( ads::CDockWidget* dockWidget, QWidget* viewer, const RimMdiWindowGeometry& windowsGeometry ) void RiuMainWindow::initializeViewer( ads::CDockWidget* dockWidget, QWidget* viewer, const RimMdiWindowGeometry& windowsGeometry )
{ {
dockManager()->centralWidget()->dockContainer()->addDockWidget( ads::DockWidgetArea::CenterDockWidgetArea, dockWidget ); dockManager()->addDockWidget( ads::DockWidgetArea::CenterDockWidgetArea, dockWidget, dockManager()->centralWidget()->dockAreaWidget() );
slotRefreshViewActions(); slotRefreshViewActions();
} }