Set the ItemIndexMethod of scene to NoIndex, according to some forum (Adress of forum are in the cpp file of this comit) they can be the sources of the crash occured by the conductor and shape "guost".

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5073 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2017-10-09 16:05:19 +00:00
parent 374edc43be
commit 8d333cbf1b
2 changed files with 14 additions and 0 deletions

View File

@@ -64,6 +64,13 @@ Diagram::Diagram(QETProject *project) :
m_freeze_new_elements (false), m_freeze_new_elements (false),
m_freeze_new_conductors_ (false) m_freeze_new_conductors_ (false)
{ {
setItemIndexMethod(QGraphicsScene::NoIndex);
//Set to no index, because they can be the source of the crash with conductor and shape ghost.
//https://forum.qt.io/topic/71316/qgraphicsscenefinditembsptreevisitor-visit-crashes-due-to-an-obsolete-paintevent-after-qgraphicsscene-removeitem
//https://stackoverflow.com/questions/38458830/crash-after-qgraphicssceneremoveitem-with-custom-item-class
//http://www.qtcentre.org/archive/index.php/t-33730.html
//http://tech-artists.org/t/qt-properly-removing-qgraphicitems/3063
setProject(project); setProject(project);
qgi_manager_ = new QGIManager(this); qgi_manager_ = new QGIManager(this);
setBackgroundBrush(Qt::white); setBackgroundBrush(Qt::white);

View File

@@ -49,6 +49,13 @@ ElementScene::ElementScene(QETElementEditor *editor, QObject *parent) :
m_qgi_manager(this), m_qgi_manager(this),
m_element_editor(editor) m_element_editor(editor)
{ {
setItemIndexMethod(QGraphicsScene::NoIndex);
//Set to no index, because they can be the source of the crash with conductor and shape ghost.
//https://forum.qt.io/topic/71316/qgraphicsscenefinditembsptreevisitor-visit-crashes-due-to-an-obsolete-paintevent-after-qgraphicsscene-removeitem
//https://stackoverflow.com/questions/38458830/crash-after-qgraphicssceneremoveitem-with-custom-item-class
//http://www.qtcentre.org/archive/index.php/t-33730.html
//http://tech-artists.org/t/qt-properly-removing-qgraphicitems/3063
m_behavior = Normal; m_behavior = Normal;
setItemIndexMethod(NoIndex); setItemIndexMethod(NoIndex);
setGrid(1, 1); setGrid(1, 1);