Correction d'une segfault pouvant se produire lors de la fermeture de l'editeur d'element alors qu'une partie est selectionnee.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@562 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier
2009-04-04 18:29:53 +00:00
parent 33344a2376
commit 2da668657d
2 changed files with 22 additions and 4 deletions

View File

@@ -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

View File

@@ -119,6 +119,7 @@ class QETElementEditor : public QMainWindow {
void setupMenus();
void setupInterface();
bool canClose();
QWidget *clearToolsDock();
public slots:
void slot_new();