summaryrefslogtreecommitdiff
path: root/src/plugins/help
diff options
context:
space:
mode:
authorkh1 <qt-info@nokia.com>2010-09-15 11:02:45 +0200
committerkh1 <qt-info@nokia.com>2010-09-15 15:21:31 +0200
commitee3ad439a892021709b2bd149c5371897b7da10d (patch)
tree536d998cbb47e64e63f089502602b37c6e45af13 /src/plugins/help
parentd207c8cdcb499726d4b89848cf6c48ad74ba3d86 (diff)
downloadqt-creator-ee3ad439a892021709b2bd149c5371897b7da10d.tar.gz
Fix memory leak.
Task-number: QTCREATORBUG-2335
Diffstat (limited to 'src/plugins/help')
-rw-r--r--src/plugins/help/openpagesmanager.cpp28
-rw-r--r--src/plugins/help/openpagesmanager.h2
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;