diff options
author | Tobias Hunger <qt-info@nokia.com> | 2009-11-25 15:18:51 +0100 |
---|---|---|
committer | Tobias Hunger <qt-info@nokia.com> | 2009-11-25 15:18:51 +0100 |
commit | fbcd6708542afd5d36ab147b973075dafad21d39 (patch) | |
tree | 0895c010f53d5d7caf8102b345ed6182ec4be3ba /src/plugins/projectexplorer/projectwindow.h | |
parent | 97ad69268491823e641222ab813f3996a5e4eaba (diff) | |
download | qt-creator-fbcd6708542afd5d36ab147b973075dafad21d39.tar.gz |
Improve memory management in project window.
* Panel struct does no longer take ownership of its widget.
* Panels consitently delete their widget in their destructor.
Reviewed-By: dt
Diffstat (limited to 'src/plugins/projectexplorer/projectwindow.h')
-rw-r--r-- | src/plugins/projectexplorer/projectwindow.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h index c183a92805..ed7200bcb6 100644 --- a/src/plugins/projectexplorer/projectwindow.h +++ b/src/plugins/projectexplorer/projectwindow.h @@ -68,21 +68,25 @@ public: // Adds a widget void addWidget(QWidget *widget); void addWidget(const QString &name, QWidget *widget); - void removeWidget(QWidget *widget); // Removes all widgets and deletes them void clear(); -private: +private: struct Panel { + // This does not take ownership of widget! + explicit Panel(QWidget * widget); + ~Panel(); + QSpacerItem *spacer; QLabel *nameLabel; QWidget *panelWidget; QHBoxLayout *marginLayout; }; + QList<Panel *> m_panels; + QVBoxLayout *m_layout; - QList<Panel> m_panels; }; class BuildConfigurationComboBox : public QStackedWidget |