diff --git a/sources/editor/qetelementeditor.cpp b/sources/editor/qetelementeditor.cpp index 72b76d586..120bbbd6d 100644 --- a/sources/editor/qetelementeditor.cpp +++ b/sources/editor/qetelementeditor.cpp @@ -57,6 +57,12 @@ QETElementEditor::QETElementEditor(QWidget *parent) : /// Destructeur QETElementEditor::~QETElementEditor() { + /* + retire le widget d'edition de partie affiche par le dock + cela evite qu'il ne soit supprime avant que la partie a laquelle il est + rattache ne le supprime une fois de trop + */ + clearToolsDock(); } /** @@ -486,10 +492,7 @@ void QETElementEditor::slot_updateInformations() { } } - if (QWidget *previous_widget = tools_dock_scroll_area_ -> takeWidget()) { - previous_widget -> setParent(0); - previous_widget -> hide(); - } + clearToolsDock(); if (selected_parts.size() == 1) { // recupere le premier CustomElementPart et en ajoute le widget d'edition @@ -901,6 +904,20 @@ bool QETElementEditor::canClose() { return(result); } +/** + Enleve et cache le widget affiche par le dock permettant d'editer les + parties. + @return le widget enleve, ou 0 s'il n'y avait pas de widget a enlever +*/ +QWidget *QETElementEditor::clearToolsDock() { + if (QWidget *previous_widget = tools_dock_scroll_area_ -> takeWidget()) { + previous_widget -> setParent(0); + previous_widget -> hide(); + return(previous_widget); + } + return(0); +} + /** Permet de quitter l'editeur lors de la fermeture de la fenetre principale @param qce Le QCloseEvent correspondant a l'evenement de fermeture diff --git a/sources/editor/qetelementeditor.h b/sources/editor/qetelementeditor.h index 982e2b531..624ea75dd 100644 --- a/sources/editor/qetelementeditor.h +++ b/sources/editor/qetelementeditor.h @@ -119,6 +119,7 @@ class QETElementEditor : public QMainWindow { void setupMenus(); void setupInterface(); bool canClose(); + QWidget *clearToolsDock(); public slots: void slot_new();