diff options
author | kh1 <qt-info@nokia.com> | 2010-09-15 11:02:45 +0200 |
---|---|---|
committer | kh1 <qt-info@nokia.com> | 2010-09-15 15:21:31 +0200 |
commit | ee3ad439a892021709b2bd149c5371897b7da10d (patch) | |
tree | 536d998cbb47e64e63f089502602b37c6e45af13 /src/plugins/help | |
parent | d207c8cdcb499726d4b89848cf6c48ad74ba3d86 (diff) | |
download | qt-creator-ee3ad439a892021709b2bd149c5371897b7da10d.tar.gz |
Fix memory leak.
Task-number: QTCREATORBUG-2335
Diffstat (limited to 'src/plugins/help')
-rw-r--r-- | src/plugins/help/openpagesmanager.cpp | 28 | ||||
-rw-r--r-- | src/plugins/help/openpagesmanager.h | 2 |
2 files changed, 17 insertions, 13 deletions
diff --git a/src/plugins/help/openpagesmanager.cpp b/src/plugins/help/openpagesmanager.cpp index 484d658a00..98ee8d3c29 100644 --- a/src/plugins/help/openpagesmanager.cpp +++ b/src/plugins/help/openpagesmanager.cpp @@ -63,16 +63,6 @@ OpenPagesManager::OpenPagesManager(QObject *parent) m_instance = this; m_model = new OpenPagesModel(this); - m_openPagesWidget = new OpenPagesWidget(m_model); - m_openPagesWidget->setFrameStyle(QFrame::NoFrame); - - connect(m_openPagesWidget, SIGNAL(setCurrentPage(QModelIndex)), this, - SLOT(setCurrentPage(QModelIndex))); - connect(m_openPagesWidget, SIGNAL(closePage(QModelIndex)), this, - SLOT(closePage(QModelIndex))); - connect(m_openPagesWidget, SIGNAL(closePagesExcept(QModelIndex)), this, - SLOT(closePagesExcept(QModelIndex))); - m_comboBox = new QComboBox; m_comboBox->setModel(m_model); m_comboBox->setMinimumContentsLength(40); @@ -102,6 +92,16 @@ OpenPagesManager &OpenPagesManager::instance() QWidget *OpenPagesManager::openPagesWidget() const { + if (!m_openPagesWidget) { + m_openPagesWidget = new OpenPagesWidget(m_model); + m_openPagesWidget->setFrameStyle(QFrame::NoFrame); + connect(m_openPagesWidget, SIGNAL(setCurrentPage(QModelIndex)), this, + SLOT(setCurrentPage(QModelIndex))); + connect(m_openPagesWidget, SIGNAL(closePage(QModelIndex)), this, + SLOT(closePage(QModelIndex))); + connect(m_openPagesWidget, SIGNAL(closePagesExcept(QModelIndex)), this, + SLOT(closePagesExcept(QModelIndex))); + } return m_openPagesWidget; } @@ -212,7 +212,8 @@ void OpenPagesManager::setCurrentPage(int index) CentralWidget::instance()->setCurrentPage(m_model->pageAt(index)); m_comboBox->setCurrentIndex(index); - m_openPagesWidget->selectCurrentPage(); + if (m_openPagesWidget) + m_openPagesWidget->selectCurrentPage(); } void OpenPagesManager::setCurrentPage(const QModelIndex &index) @@ -223,6 +224,8 @@ void OpenPagesManager::setCurrentPage(const QModelIndex &index) void OpenPagesManager::closeCurrentPage() { + if (!m_openPagesWidget) + return; QModelIndexList indexes = m_openPagesWidget->selectionModel()->selectedRows(); if (indexes.isEmpty()) return; @@ -283,7 +286,8 @@ void OpenPagesManager::removePage(int index) CentralWidget::instance()->removePage(index); emit pagesChanged(); - m_openPagesWidget->selectCurrentPage(); + if (m_openPagesWidget) + m_openPagesWidget->selectCurrentPage(); } void OpenPagesManager::showTwicherOrSelectPage() const diff --git a/src/plugins/help/openpagesmanager.h b/src/plugins/help/openpagesmanager.h index 42b84ba7b3..bf8d92674a 100644 --- a/src/plugins/help/openpagesmanager.h +++ b/src/plugins/help/openpagesmanager.h @@ -92,7 +92,7 @@ private slots: private: QComboBox *m_comboBox; OpenPagesModel *m_model; - OpenPagesWidget *m_openPagesWidget; + mutable OpenPagesWidget *m_openPagesWidget; OpenPagesSwitcher *m_openPagesSwitcher; static OpenPagesManager *m_instance; |