forked from qt-creator/qt-creator
Fix memory leak.
Task-number: QTCREATORBUG-2335
This commit is contained in:
@@ -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()
|
|||||||
|
|
||||||
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,6 +212,7 @@ 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);
|
||||||
|
if (m_openPagesWidget)
|
||||||
m_openPagesWidget->selectCurrentPage();
|
m_openPagesWidget->selectCurrentPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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,6 +286,7 @@ void OpenPagesManager::removePage(int index)
|
|||||||
CentralWidget::instance()->removePage(index);
|
CentralWidget::instance()->removePage(index);
|
||||||
|
|
||||||
emit pagesChanged();
|
emit pagesChanged();
|
||||||
|
if (m_openPagesWidget)
|
||||||
m_openPagesWidget->selectCurrentPage();
|
m_openPagesWidget->selectCurrentPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user