Skip to content
Snippets Groups Projects
Commit ee3ad439 authored by kh1's avatar kh1
Browse files

Fix memory leak.

Task-number: QTCREATORBUG-2335
parent d207c8cd
No related branches found
No related tags found
No related merge requests found
...@@ -63,16 +63,6 @@ OpenPagesManager::OpenPagesManager(QObject *parent) ...@@ -63,16 +63,6 @@ OpenPagesManager::OpenPagesManager(QObject *parent)
m_instance = this; m_instance = this;
m_model = new OpenPagesModel(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 = new QComboBox;
m_comboBox->setModel(m_model); m_comboBox->setModel(m_model);
m_comboBox->setMinimumContentsLength(40); m_comboBox->setMinimumContentsLength(40);
...@@ -102,6 +92,16 @@ OpenPagesManager &OpenPagesManager::instance() ...@@ -102,6 +92,16 @@ OpenPagesManager &OpenPagesManager::instance()
QWidget *OpenPagesManager::openPagesWidget() const 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; return m_openPagesWidget;
} }
...@@ -212,7 +212,8 @@ void OpenPagesManager::setCurrentPage(int index) ...@@ -212,7 +212,8 @@ void OpenPagesManager::setCurrentPage(int index)
CentralWidget::instance()->setCurrentPage(m_model->pageAt(index)); CentralWidget::instance()->setCurrentPage(m_model->pageAt(index));
m_comboBox->setCurrentIndex(index); m_comboBox->setCurrentIndex(index);
m_openPagesWidget->selectCurrentPage(); if (m_openPagesWidget)
m_openPagesWidget->selectCurrentPage();
} }
void OpenPagesManager::setCurrentPage(const QModelIndex &index) void OpenPagesManager::setCurrentPage(const QModelIndex &index)
...@@ -223,6 +224,8 @@ void OpenPagesManager::setCurrentPage(const QModelIndex &index) ...@@ -223,6 +224,8 @@ void OpenPagesManager::setCurrentPage(const QModelIndex &index)
void OpenPagesManager::closeCurrentPage() void OpenPagesManager::closeCurrentPage()
{ {
if (!m_openPagesWidget)
return;
QModelIndexList indexes = m_openPagesWidget->selectionModel()->selectedRows(); QModelIndexList indexes = m_openPagesWidget->selectionModel()->selectedRows();
if (indexes.isEmpty()) if (indexes.isEmpty())
return; return;
...@@ -283,7 +286,8 @@ void OpenPagesManager::removePage(int index) ...@@ -283,7 +286,8 @@ void OpenPagesManager::removePage(int index)
CentralWidget::instance()->removePage(index); CentralWidget::instance()->removePage(index);
emit pagesChanged(); emit pagesChanged();
m_openPagesWidget->selectCurrentPage(); if (m_openPagesWidget)
m_openPagesWidget->selectCurrentPage();
} }
void OpenPagesManager::showTwicherOrSelectPage() const void OpenPagesManager::showTwicherOrSelectPage() const
......
...@@ -92,7 +92,7 @@ private slots: ...@@ -92,7 +92,7 @@ private slots:
private: private:
QComboBox *m_comboBox; QComboBox *m_comboBox;
OpenPagesModel *m_model; OpenPagesModel *m_model;
OpenPagesWidget *m_openPagesWidget; mutable OpenPagesWidget *m_openPagesWidget;
OpenPagesSwitcher *m_openPagesSwitcher; OpenPagesSwitcher *m_openPagesSwitcher;
static OpenPagesManager *m_instance; static OpenPagesManager *m_instance;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment