diff --git a/sources/PropertiesEditor/propertieseditordockwidget.cpp b/sources/PropertiesEditor/propertieseditordockwidget.cpp index 0bec4d803..2982bae6b 100644 --- a/sources/PropertiesEditor/propertieseditordockwidget.cpp +++ b/sources/PropertiesEditor/propertieseditordockwidget.cpp @@ -52,7 +52,7 @@ void PropertiesEditorDockWidget::clear() { m_editor_list.removeOne(editor); ui->m_main_vlayout->removeWidget(editor); - editor->deleteLater(); + delete editor; } m_editor_list.clear(); diff --git a/sources/diagram.cpp b/sources/diagram.cpp index a5b8e0109..496956121 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -91,23 +91,28 @@ Diagram::Diagram(QETProject *project) : * @brief Diagram::~Diagram * Destructor */ -Diagram::~Diagram() { - // clear undo stack to prevent errors, because contains pointers to this diagram and is elements. +Diagram::~Diagram() +{ + //First clear every selection to close an hypothetical editor + clearSelection(); + // clear undo stack to prevent errors, because contains pointers to this diagram and is elements. undoStack().clear(); - //delete of QGIManager, every elements he knows are removed + //delete of QGIManager, every elements he knows are removed delete qgi_manager_; - // remove of conductor setter + // remove of conductor setter delete conductor_setter_; - // delete of object for manage movement + // delete of object for manage movement delete elements_mover_; delete element_texts_mover_; - if (m_event_interface) delete m_event_interface; + if (m_event_interface) + delete m_event_interface; - // list removable items + // list removable items QList deletable_items; - foreach(QGraphicsItem *qgi, items()) { + for(QGraphicsItem *qgi : items()) + { if (qgi -> parentItem()) continue; if (qgraphicsitem_cast(qgi)) continue; deletable_items << qgi; diff --git a/sources/ui/diagrampropertieseditordockwidget.cpp b/sources/ui/diagrampropertieseditordockwidget.cpp index 1880088de..c37ed407c 100644 --- a/sources/ui/diagrampropertieseditordockwidget.cpp +++ b/sources/ui/diagrampropertieseditordockwidget.cpp @@ -56,7 +56,7 @@ void DiagramPropertiesEditorDockWidget::setDiagram(Diagram *diagram) if (diagram) { m_diagram = diagram; - connect(m_diagram, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()), Qt::QueuedConnection); + connect(m_diagram, SIGNAL(selectionChanged()), this, SLOT(selectionChanged())); connect(m_diagram, SIGNAL(destroyed()), this, SLOT(diagramWasDeleted())); selectionChanged(); }