diff --git a/conductor.cpp b/conductor.cpp index 64d3d43c2..03ce6ab94 100644 --- a/conductor.cpp +++ b/conductor.cpp @@ -78,8 +78,7 @@ Conductor::~Conductor() { if (!isDestroyed()) destroy(); // supprime les segments - while (segments -> hasNextSegment()) delete segments -> nextSegment(); - delete segments; + deleteSegments(); } /** @@ -780,14 +779,7 @@ QList Conductor::segmentsToPoints() const { */ void Conductor::pointsToSegments(QList points_list) { // supprime les segments actuels - if (segments != NULL) { - ConductorSegment *segment = segments; - while (segment -> hasNextSegment()) { - ConductorSegment *nextsegment = segment -> nextSegment(); - delete segment; - segment = nextsegment; - } - } + deleteSegments(); // cree les segments a partir de la liste de points ConductorSegment *last_segment = NULL; @@ -1243,3 +1235,12 @@ void Conductor::setProfiles(const ConductorProfilesGroup &cpg) { calculateTextItemPosition(); } } + +/// Supprime les segments +void Conductor::deleteSegments() { + if (segments != NULL) { + while (segments -> hasNextSegment()) delete segments -> nextSegment(); + delete segments; + segments = NULL; + } +} diff --git a/conductor.h b/conductor.h index c6d4f3bd8..01996ddff 100644 --- a/conductor.h +++ b/conductor.h @@ -108,6 +108,7 @@ class Conductor : public QGraphicsPathItem { bool hasClickedOn(QPointF, QPointF) const; void calculateTextItemPosition(); Qt::Corner currentPathType() const; + void deleteSegments(); static int getCoeff(const qreal &, const qreal &); static int getSign(const qreal &); QHash shareOffsetBetweenSegments(const qreal &offset, const QList &, const qreal & = 0.01) const; diff --git a/diagram.cpp b/diagram.cpp index 7383199d8..1a543268d 100644 --- a/diagram.cpp +++ b/diagram.cpp @@ -38,6 +38,8 @@ Diagram::Diagram(QObject *parent) : Destructeur */ Diagram::~Diagram() { + if (conductor_setter -> scene()) removeItem(conductor_setter); + delete conductor_setter; } /** diff --git a/editor/qetelementeditor.cpp b/editor/qetelementeditor.cpp index 762d441d9..54ecdc491 100644 --- a/editor/qetelementeditor.cpp +++ b/editor/qetelementeditor.cpp @@ -155,11 +155,11 @@ void QETElementEditor::setupActions() { } void QETElementEditor::setupMenus() { - file_menu = new QMenu(tr("Fichier")); - edit_menu = new QMenu(tr("\311dition")); - display_menu = new QMenu(tr("Affichage")); - tools_menu = new QMenu(tr("Outils")); - help_menu = new QMenu(tr("Aide")); + file_menu = new QMenu(tr("Fichier"), this); + edit_menu = new QMenu(tr("\311dition"), this); + display_menu = new QMenu(tr("Affichage"), this); + tools_menu = new QMenu(tr("Outils"), this); + help_menu = new QMenu(tr("Aide"), this); file_menu -> setTearOffEnabled(true); edit_menu -> setTearOffEnabled(true); diff --git a/element.h b/element.h index 8ecf64bcd..835cdced4 100644 --- a/element.h +++ b/element.h @@ -28,7 +28,6 @@ class Element : public QGraphicsItem { QSize dimensions; QPoint hotspot_coord; QPixmap apercu; - QMenu menu; // methodes public: diff --git a/elementspanel.cpp b/elementspanel.cpp index 5744b52da..aa682c802 100644 --- a/elementspanel.cpp +++ b/elementspanel.cpp @@ -161,17 +161,17 @@ void ElementsPanel::addFile(QTreeWidgetItem *qtwi_parent, QString fichier) { QString whats_this = tr("Ceci est un \351l\351ment que vous pouvez ins\351rer dans votre sch\351ma par cliquer-d\351placer"); QString tool_tip = tr("Cliquer-d\351posez cet \351l\351ment sur le sch\351ma pour ins\351rer un \351l\351ment "); int etat; - CustomElement *elmt_perso = new CustomElement(fichier, 0, 0, &etat); + CustomElement elmt_perso(fichier, 0, 0, &etat); if (etat != 0) { qDebug() << "Le chargement du composant" << fichier << "a echoue avec le code d'erreur" << etat; return; } - QTreeWidgetItem *qtwi = new QTreeWidgetItem(qtwi_parent, QStringList(elmt_perso -> nom())); - qtwi -> setStatusTip(0, tool_tip + "\253 " + elmt_perso -> nom() + " \273"); - qtwi -> setToolTip(0, elmt_perso -> nom()); + QTreeWidgetItem *qtwi = new QTreeWidgetItem(qtwi_parent, QStringList(elmt_perso.nom())); + qtwi -> setStatusTip(0, tool_tip + "\253 " + elmt_perso.nom() + " \273"); + qtwi -> setToolTip(0, elmt_perso.nom()); qtwi -> setWhatsThis(0, whats_this); qtwi -> setFlags(Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled); - qtwi -> setIcon(0, QIcon(elmt_perso -> pixmap())); + qtwi -> setIcon(0, QIcon(elmt_perso.pixmap())); qtwi -> setData(0, 42, fichier); } diff --git a/nameslist.cpp b/nameslist.cpp index b4b5ad6ad..8891f428a 100644 --- a/nameslist.cpp +++ b/nameslist.cpp @@ -151,16 +151,16 @@ bool NamesList::operator==(const NamesList &nl) const { @param fallback_name Le nom a retourner si aucun nom approprie n'est trouve @return Le nom approprie en fonction de la langue du systeme */ -const QString &NamesList::name(const QString &fallback_name) const { +QString NamesList::name(const QString &fallback_name) const { // recupere les deux premiers caracteres de la locale en cours du systeme QString system_language = QLocale::system().name().left(2); - QString *returned_name; - if (hash_names[system_language] != QString()) { - returned_name = new QString(hash_names[system_language]); - } else if (hash_names["en"] != QString()) { - returned_name = new QString(hash_names["en"]); + QString returned_name; + if (!hash_names[system_language].isEmpty()) { + returned_name = hash_names[system_language]; + } else if (!hash_names["en"].isEmpty()) { + returned_name = hash_names["en"]; } else { - returned_name = new QString(fallback_name); + returned_name = fallback_name; } - return(*returned_name); + return(returned_name); } diff --git a/nameslist.h b/nameslist.h index 18b50ec9a..25bc1c8c8 100644 --- a/nameslist.h +++ b/nameslist.h @@ -33,7 +33,7 @@ class NamesList { const QString operator[](const QString &) const; bool operator!=(const NamesList &) const; bool operator==(const NamesList &) const; - const QString &name(const QString & = QString()) const; + QString name(const QString & = QString()) const; // methodes relatives a XML void fromXml(const QDomElement &); diff --git a/qetapp.cpp b/qetapp.cpp index 6dd87c830..df02af3b7 100644 --- a/qetapp.cpp +++ b/qetapp.cpp @@ -104,6 +104,7 @@ QETApp::QETApp(int &argc, char **argv) : QApplication(argc, argv) { /// Destructeur QETApp::~QETApp() { + delete qsti; } /** diff --git a/qetdiagrameditor.cpp b/qetdiagrameditor.cpp index 889a41cd2..d4c98c296 100644 --- a/qetdiagrameditor.cpp +++ b/qetdiagrameditor.cpp @@ -395,7 +395,7 @@ void QETDiagramEditor::menus() { menu_edition -> addAction(shrink_diagram); // menu Configurer > Afficher - QMenu *menu_aff_aff = new QMenu(tr("Afficher")); + QMenu *menu_aff_aff = new QMenu(tr("Afficher"), this); menu_aff_aff -> setIcon(QIcon(":/ico/toolbars.png")); menu_aff_aff -> setTearOffEnabled(true); menu_aff_aff -> addAction(main_bar -> toggleViewAction());