mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-18 05:00:33 +01:00
Fix crash. Close a project with a selected linkable element (master, slave, report) cause a crash
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4992 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -52,7 +52,7 @@ void PropertiesEditorDockWidget::clear()
|
|||||||
{
|
{
|
||||||
m_editor_list.removeOne(editor);
|
m_editor_list.removeOne(editor);
|
||||||
ui->m_main_vlayout->removeWidget(editor);
|
ui->m_main_vlayout->removeWidget(editor);
|
||||||
editor->deleteLater();
|
delete editor;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_editor_list.clear();
|
m_editor_list.clear();
|
||||||
|
|||||||
@@ -91,7 +91,10 @@ Diagram::Diagram(QETProject *project) :
|
|||||||
* @brief Diagram::~Diagram
|
* @brief Diagram::~Diagram
|
||||||
* Destructor
|
* Destructor
|
||||||
*/
|
*/
|
||||||
Diagram::~Diagram() {
|
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.
|
// clear undo stack to prevent errors, because contains pointers to this diagram and is elements.
|
||||||
undoStack().clear();
|
undoStack().clear();
|
||||||
//delete of QGIManager, every elements he knows are removed
|
//delete of QGIManager, every elements he knows are removed
|
||||||
@@ -103,11 +106,13 @@ Diagram::~Diagram() {
|
|||||||
delete elements_mover_;
|
delete elements_mover_;
|
||||||
delete element_texts_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<QGraphicsItem *> deletable_items;
|
QList<QGraphicsItem *> deletable_items;
|
||||||
foreach(QGraphicsItem *qgi, items()) {
|
for(QGraphicsItem *qgi : items())
|
||||||
|
{
|
||||||
if (qgi -> parentItem()) continue;
|
if (qgi -> parentItem()) continue;
|
||||||
if (qgraphicsitem_cast<Conductor *>(qgi)) continue;
|
if (qgraphicsitem_cast<Conductor *>(qgi)) continue;
|
||||||
deletable_items << qgi;
|
deletable_items << qgi;
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ void DiagramPropertiesEditorDockWidget::setDiagram(Diagram *diagram)
|
|||||||
if (diagram)
|
if (diagram)
|
||||||
{
|
{
|
||||||
m_diagram = 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()));
|
connect(m_diagram, SIGNAL(destroyed()), this, SLOT(diagramWasDeleted()));
|
||||||
selectionChanged();
|
selectionChanged();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user