mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +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);
|
||||
ui->m_main_vlayout->removeWidget(editor);
|
||||
editor->deleteLater();
|
||||
delete editor;
|
||||
}
|
||||
|
||||
m_editor_list.clear();
|
||||
|
||||
@@ -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<QGraphicsItem *> deletable_items;
|
||||
foreach(QGraphicsItem *qgi, items()) {
|
||||
for(QGraphicsItem *qgi : items())
|
||||
{
|
||||
if (qgi -> parentItem()) continue;
|
||||
if (qgraphicsitem_cast<Conductor *>(qgi)) continue;
|
||||
deletable_items << qgi;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user