From eb3c4d8cfd665df07fef8e74571d9dbe174710d3 Mon Sep 17 00:00:00 2001 From: Adeel Asghar Date: Thu, 14 Jan 2021 13:08:47 +0100 Subject: [PATCH] clean up some redundant code (#7073) --- OMEdit/OMEditLIB/MainWindow.cpp | 2 +- .../Modeling/ModelWidgetContainer.cpp | 2 +- OMEdit/OMEditLIB/Plotting/DiagramWindow.cpp | 35 ++++++++++--------- OMEdit/OMEditLIB/Plotting/DiagramWindow.h | 2 ++ 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/OMEdit/OMEditLIB/MainWindow.cpp b/OMEdit/OMEditLIB/MainWindow.cpp index e89050e9c99..9c78a7a51a3 100644 --- a/OMEdit/OMEditLIB/MainWindow.cpp +++ b/OMEdit/OMEditLIB/MainWindow.cpp @@ -4136,7 +4136,7 @@ void MainWindow::switchToPlottingPerspective() } // if we have DiagramWindow then draw items on it based on the current ModelWidget if (pModelWidget && mpPlotWindowContainer->getDiagramSubWindowFromMdi()) { - mpPlotWindowContainer->getDiagramWindow()->drawDiagram(mpModelWidgetContainer->getCurrentModelWidget()); + mpPlotWindowContainer->getDiagramWindow()->drawDiagram(pModelWidget); } mpVariablesDockWidget->show(); // show/hide toolbars diff --git a/OMEdit/OMEditLIB/Modeling/ModelWidgetContainer.cpp b/OMEdit/OMEditLIB/Modeling/ModelWidgetContainer.cpp index b6a819737f5..d70ec8b05da 100644 --- a/OMEdit/OMEditLIB/Modeling/ModelWidgetContainer.cpp +++ b/OMEdit/OMEditLIB/Modeling/ModelWidgetContainer.cpp @@ -8276,7 +8276,7 @@ void ModelWidgetContainer::currentModelWidgetChanged(QMdiSubWindow *pSubWindow) /* ticket:4983 Update the documentation browser when a new ModelWidget is selected. * Provided that the Documentation Browser is already visible. */ - if (mpLastActiveSubWindow == pSubWindow) { + if (!pSubWindow || mpLastActiveSubWindow == pSubWindow) { return; } mpLastActiveSubWindow = pSubWindow; diff --git a/OMEdit/OMEditLIB/Plotting/DiagramWindow.cpp b/OMEdit/OMEditLIB/Plotting/DiagramWindow.cpp index 5c19e3a1a73..7809fbe3113 100644 --- a/OMEdit/OMEditLIB/Plotting/DiagramWindow.cpp +++ b/OMEdit/OMEditLIB/Plotting/DiagramWindow.cpp @@ -65,18 +65,9 @@ DiagramWindow::DiagramWindow(QWidget *parent) : QWidget(parent) */ void DiagramWindow::drawDiagram(ModelWidget *pModelWidget) { - // Stop any running visualization when we are going to draw a diagram. - MainWindow::instance()->getVariablesWidget()->rewindVisualization(); - if (pModelWidget && pModelWidget->getDiagramGraphicsView()) { setWindowTitle(pModelWidget->getLibraryTreeItem()->getName()); - if (mpGraphicsView) { - mpGraphicsScene->deleteLater(); - mpGraphicsScene = 0; - mpMainLayout->removeWidget(mpGraphicsView); - mpGraphicsView->deleteLater(); - mpGraphicsView = 0; - } + deleteGraphicsViewAndScene(); mpGraphicsScene = new GraphicsScene(StringHandler::Diagram, pModelWidget); mpGraphicsView = new GraphicsView(StringHandler::Diagram, pModelWidget, true); mpGraphicsView->setScene(mpGraphicsScene); @@ -138,24 +129,36 @@ void DiagramWindow::drawDiagram(ModelWidget *pModelWidget) /*! * \brief DiagramWindow::removeDiagram - * When the corresponsing ModelWidget is about to delete then clear the DiagramWindow. + * When the corresponding ModelWidget is about to delete then clear the DiagramWindow. * \param pModelWidget */ void DiagramWindow::removeDiagram(ModelWidget *pModelWidget) { if (mpGraphicsView && mpGraphicsView->getModelWidget() == pModelWidget) { - // Stop any running visualization when we are going to draw a diagram. - MainWindow::instance()->getVariablesWidget()->rewindVisualization(); // set the window title to default setWindowTitle("Diagram"); - // clear the GraphicsView and delete it + deleteGraphicsViewAndScene(); + } +} + +/*! + * \brief DiagramWindow::deleteGraphicsViewAndScene + * Clears the GraphicsView and deletes it and GraphicsScene. + */ +void DiagramWindow::deleteGraphicsViewAndScene() +{ + // Stop any running visualization + MainWindow::instance()->getVariablesWidget()->rewindVisualization(); + if (mpGraphicsView) { mpGraphicsView->clearGraphicsView(); - mpGraphicsScene->deleteLater(); - mpGraphicsScene = 0; mpMainLayout->removeWidget(mpGraphicsView); mpGraphicsView->deleteLater(); mpGraphicsView = 0; } + if (mpGraphicsScene) { + mpGraphicsScene->deleteLater(); + mpGraphicsScene = 0; + } } /*! diff --git a/OMEdit/OMEditLIB/Plotting/DiagramWindow.h b/OMEdit/OMEditLIB/Plotting/DiagramWindow.h index 98d20e5e74b..dd56b1e687d 100644 --- a/OMEdit/OMEditLIB/Plotting/DiagramWindow.h +++ b/OMEdit/OMEditLIB/Plotting/DiagramWindow.h @@ -53,6 +53,8 @@ class DiagramWindow : public QWidget GraphicsScene *mpGraphicsScene; GraphicsView *mpGraphicsView; QVBoxLayout *mpMainLayout; + + void deleteGraphicsViewAndScene(); protected: virtual void closeEvent(QCloseEvent *event) override; };