From 35e2e43c3aaba308391223aa5880908590eb7659 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 7 Jul 2023 16:11:35 +0200 Subject: [PATCH] Fix crash if main window is null When launching a script, the main window must be created. It is the Process Monitor that received info from the process and passes the text to process monitor and Message Panel. --- .../OctaveScriptCommands/RicExecuteScriptFeature.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ApplicationLibCode/Commands/OctaveScriptCommands/RicExecuteScriptFeature.cpp b/ApplicationLibCode/Commands/OctaveScriptCommands/RicExecuteScriptFeature.cpp index a9f2cff8a4..6b675ccdfe 100644 --- a/ApplicationLibCode/Commands/OctaveScriptCommands/RicExecuteScriptFeature.cpp +++ b/ApplicationLibCode/Commands/OctaveScriptCommands/RicExecuteScriptFeature.cpp @@ -19,6 +19,8 @@ #include "RicExecuteScriptFeature.h" +#include "RiaGuiApplication.h" + #include "RicExecuteLastUsedScriptFeature.h" #include "RicScriptFeatureImpl.h" @@ -75,6 +77,15 @@ void RicExecuteScriptFeature::setupActionLook( QAction* actionToSetup ) void RicExecuteScriptFeature::executeScript( RimCalcScript* calcScript ) { RiuMainWindow* mainWindow = RiuMainWindow::instance(); + if ( !mainWindow ) + { + // It is required to have a main window for the process monitor. If the process monitor is not present, no text can be displayed in + // message window, and text feedback from script is not possible to see in the user interface. + + RiaGuiApplication* app = RiaGuiApplication::instance(); + mainWindow = app->getOrCreateAndShowMainWindow(); + } + mainWindow->showProcessMonitorDockPanel(); RiaApplication* app = RiaApplication::instance();