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)
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
......
......@@ -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;
......
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