mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Memory Management : Adjustment and fixes
Add release of several static singleton objects Fix several minor memory leaks
This commit is contained in:
@@ -189,8 +189,6 @@ RiaGuiApplication::RiaGuiApplication( int& argc, char** argv )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiaGuiApplication::~RiaGuiApplication()
|
||||
{
|
||||
deleteMainPlotWindow();
|
||||
deleteMainWindow();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -925,7 +923,7 @@ RiuMainWindow* RiaGuiApplication::getOrCreateAndShowMainWindow()
|
||||
m_mainWindow->loadWinGeoAndDockToolBarLayout();
|
||||
}
|
||||
|
||||
return m_mainWindow;
|
||||
return m_mainWindow.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -933,7 +931,7 @@ RiuMainWindow* RiaGuiApplication::getOrCreateAndShowMainWindow()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuMainWindow* RiaGuiApplication::mainWindow()
|
||||
{
|
||||
return m_mainWindow;
|
||||
return m_mainWindow.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -947,7 +945,7 @@ RiuPlotMainWindow* RiaGuiApplication::getOrCreateMainPlotWindow()
|
||||
m_mainPlotWindow->initializeGuiNewProjectLoaded();
|
||||
loadAndUpdatePlotData();
|
||||
}
|
||||
return m_mainPlotWindow;
|
||||
return m_mainPlotWindow.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -962,7 +960,7 @@ void RiaGuiApplication::createMainWindow()
|
||||
caf::CmdExecCommandManager::instance()->enableUndoCommandSystem( true );
|
||||
}
|
||||
|
||||
m_mainWindow = new RiuMainWindow;
|
||||
m_mainWindow = std::make_unique<RiuMainWindow>();
|
||||
QString platform = cvf::System::is64Bit() ? "(64bit)" : "(32bit)";
|
||||
m_mainWindow->setWindowTitle( "ResInsight " + platform );
|
||||
m_mainWindow->setDefaultWindowSize();
|
||||
@@ -972,18 +970,6 @@ void RiaGuiApplication::createMainWindow()
|
||||
m_mainWindow->showWindow();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiaGuiApplication::deleteMainWindow()
|
||||
{
|
||||
if ( m_mainWindow )
|
||||
{
|
||||
delete m_mainWindow;
|
||||
m_mainWindow = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -996,26 +982,13 @@ void RiaGuiApplication::createMainPlotWindow()
|
||||
caf::CmdExecCommandManager::instance()->enableUndoCommandSystem( true );
|
||||
}
|
||||
|
||||
m_mainPlotWindow = new RiuPlotMainWindow;
|
||||
m_mainPlotWindow = std::make_unique<RiuPlotMainWindow>();
|
||||
m_mainPlotWindow->setWindowTitle( "Plots - ResInsight" );
|
||||
m_mainPlotWindow->setDefaultWindowSize();
|
||||
m_mainPlotWindow->loadWinGeoAndDockToolBarLayout();
|
||||
m_mainPlotWindow->hideAllDockWidgets();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiaGuiApplication::deleteMainPlotWindow()
|
||||
{
|
||||
if ( m_mainPlotWindow )
|
||||
{
|
||||
m_mainPlotWindow->setParent( nullptr );
|
||||
delete m_mainPlotWindow;
|
||||
m_mainPlotWindow = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1052,7 +1025,7 @@ RiuPlotMainWindow* RiaGuiApplication::getOrCreateAndShowMainPlotWindow()
|
||||
m_mainPlotWindow->restoreDockWidgetVisibilities();
|
||||
}
|
||||
|
||||
return m_mainPlotWindow;
|
||||
return m_mainPlotWindow.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1060,7 +1033,7 @@ RiuPlotMainWindow* RiaGuiApplication::getOrCreateAndShowMainPlotWindow()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuPlotMainWindow* RiaGuiApplication::mainPlotWindow()
|
||||
{
|
||||
return m_mainPlotWindow;
|
||||
return m_mainPlotWindow.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1069,9 +1042,9 @@ RiuPlotMainWindow* RiaGuiApplication::mainPlotWindow()
|
||||
RiuMainWindowBase* RiaGuiApplication::mainWindowByID( int mainWindowID )
|
||||
{
|
||||
if ( mainWindowID == 0 )
|
||||
return m_mainWindow;
|
||||
return m_mainWindow.get();
|
||||
else if ( mainWindowID == 1 )
|
||||
return m_mainPlotWindow;
|
||||
return m_mainPlotWindow.get();
|
||||
else
|
||||
return nullptr;
|
||||
}
|
||||
@@ -1478,7 +1451,7 @@ void RiaGuiApplication::applyGuiPreferences( const RiaPreferences*
|
||||
}
|
||||
|
||||
QMessageBox::StandardButton reply;
|
||||
reply = QMessageBox::question( m_mainWindow,
|
||||
reply = QMessageBox::question( m_mainWindow.get(),
|
||||
QString( "Apply %1 to Existing Views or Plots?" ).arg( listString ),
|
||||
QString( "You have changed default %1 and have existing views or plots with "
|
||||
"different settings.\n" )
|
||||
|
||||
@@ -155,9 +155,7 @@ private:
|
||||
void setWindowCaptionFromAppState();
|
||||
|
||||
void createMainWindow();
|
||||
void deleteMainWindow();
|
||||
void createMainPlotWindow();
|
||||
void deleteMainPlotWindow();
|
||||
|
||||
void storeTreeViewState();
|
||||
|
||||
@@ -168,8 +166,8 @@ private slots:
|
||||
void onLastWindowClosed();
|
||||
|
||||
private:
|
||||
QPointer<RiuMainWindow> m_mainWindow;
|
||||
QPointer<RiuPlotMainWindow> m_mainPlotWindow;
|
||||
std::unique_ptr<RiuMainWindow> m_mainWindow;
|
||||
std::unique_ptr<RiuPlotMainWindow> m_mainPlotWindow;
|
||||
|
||||
std::unique_ptr<RiuRecentFileActionProvider> m_recentFileActionProvider;
|
||||
|
||||
|
||||
@@ -69,6 +69,8 @@ const QString reportFileName = "ResInsightRegressionTestReport.html";
|
||||
const QString commandFileFilter = "commandfile-*";
|
||||
}; // namespace RegTestNames
|
||||
|
||||
RiaRegressionTestRunner* RiaRegressionTestRunner::sm_singleton = nullptr;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -95,8 +97,25 @@ RiaRegressionTestRunner::RiaRegressionTestRunner()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiaRegressionTestRunner* RiaRegressionTestRunner::instance()
|
||||
{
|
||||
static RiaRegressionTestRunner* singleton = new RiaRegressionTestRunner;
|
||||
return singleton;
|
||||
CAF_ASSERT( sm_singleton );
|
||||
return sm_singleton;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiaRegressionTestRunner::createSingleton()
|
||||
{
|
||||
if ( !sm_singleton ) sm_singleton = new RiaRegressionTestRunner;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiaRegressionTestRunner::deleteSingleton()
|
||||
{
|
||||
if ( sm_singleton ) delete sm_singleton;
|
||||
sm_singleton = nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -34,6 +34,9 @@ class RiaRegressionTestRunner
|
||||
public:
|
||||
static RiaRegressionTestRunner* instance();
|
||||
|
||||
static void createSingleton();
|
||||
static void deleteSingleton();
|
||||
|
||||
void executeRegressionTests( const QString& regressionTestPath, const QStringList& testFilter );
|
||||
void executeRegressionTests();
|
||||
|
||||
@@ -73,4 +76,6 @@ private:
|
||||
bool m_appendAllTestsAfterLastItemInFilter;
|
||||
bool m_runningRegressionTests;
|
||||
RiaRegressionTest m_regressionTestSettings;
|
||||
|
||||
static RiaRegressionTestRunner* sm_singleton;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user