diff options
author | dt <qtc-committer@nokia.com> | 2009-11-04 16:06:38 +0100 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2009-11-04 18:58:06 +0100 |
commit | cd58c6de48a2c249f48ff760485a054c4fdfa955 (patch) | |
tree | 321ab7fc1c8a0650356dd926d7ae71baa2188fa2 | |
parent | ac8385278c96e763a98eec906c76139409fd60b3 (diff) |
Fix memory leak in welcome plugin and right hand side pane
(cherry picked from commit a67e13942b2d6c150fc54ea7568b3facfd2dc7d1)
-rw-r--r-- | src/plugins/help/centralwidget.cpp | 6 | ||||
-rw-r--r-- | src/plugins/help/helpplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.cpp | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectwelcomepage.cpp | 5 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectwelcomepage.h | 1 | ||||
-rw-r--r-- | src/shared/help/helpviewer.cpp | 8 | ||||
-rw-r--r-- | src/shared/help/helpviewer.h | 2 |
7 files changed, 16 insertions, 9 deletions
diff --git a/src/plugins/help/centralwidget.cpp b/src/plugins/help/centralwidget.cpp index 102a84a6d8..0080f062b8 100644 --- a/src/plugins/help/centralwidget.cpp +++ b/src/plugins/help/centralwidget.cpp @@ -220,7 +220,7 @@ void CentralWidget::setSource(const QUrl &url) qobject_cast<HelpViewer*>(tabWidget->widget(lastTabPage)); if (!viewer && !lastViewer) { - viewer = new HelpViewer(helpEngine, this); + viewer = new HelpViewer(helpEngine, this, this); viewer->installEventFilter(this); lastTabPage = tabWidget->addTab(viewer, QString()); tabWidget->setCurrentIndex(lastTabPage); @@ -428,7 +428,7 @@ void CentralWidget::setGlobalActions(const QList<QAction*> &actions) void CentralWidget::setSourceInNewTab(const QUrl &url, int zoom) { - HelpViewer* viewer = new HelpViewer(helpEngine, this); + HelpViewer* viewer = new HelpViewer(helpEngine, this, this); viewer->installEventFilter(this); viewer->setZoom(zoom); viewer->setSource(url); @@ -448,7 +448,7 @@ void CentralWidget::setSourceInNewTab(const QUrl &url, int zoom) HelpViewer *CentralWidget::newEmptyTab() { - HelpViewer* viewer = new HelpViewer(helpEngine, this); + HelpViewer* viewer = new HelpViewer(helpEngine, this, this); viewer->installEventFilter(this); viewer->setFocus(Qt::OtherFocusReason); #if defined(QT_NO_WEBKIT) diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index c6c56b4748..968b6af970 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -491,7 +491,7 @@ void HelpPlugin::createRightPaneSideBar() addAutoReleasedObject(new Core::BaseRightPaneWidget(m_rightPaneSideBar)); rightPaneLayout->addWidget(w); - m_helpViewerForSideBar = new HelpViewer(m_helpEngine, 0); + m_helpViewerForSideBar = new HelpViewer(m_helpEngine, 0, m_rightPaneSideBar); Aggregation::Aggregate *agg = new Aggregation::Aggregate(); agg->add(m_helpViewerForSideBar); agg->add(new HelpViewerFindSupport(m_helpViewerForSideBar)); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index c6ced1fbb4..5a0814a9f0 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -207,6 +207,7 @@ ProjectExplorerPlugin::ProjectExplorerPlugin() ProjectExplorerPlugin::~ProjectExplorerPlugin() { removeObject(d->m_welcomePlugin); + delete d->m_welcomePlugin; removeObject(this); delete d; } diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp index 1db7881d54..9db59823bd 100644 --- a/src/plugins/projectexplorer/projectwelcomepage.cpp +++ b/src/plugins/projectexplorer/projectwelcomepage.cpp @@ -39,6 +39,11 @@ ProjectWelcomePage::ProjectWelcomePage() } +ProjectWelcomePage::~ProjectWelcomePage() +{ + +} + QWidget* ProjectWelcomePage::page() { return m_page; diff --git a/src/plugins/projectexplorer/projectwelcomepage.h b/src/plugins/projectexplorer/projectwelcomepage.h index a3dc97942b..4fb72cdc9d 100644 --- a/src/plugins/projectexplorer/projectwelcomepage.h +++ b/src/plugins/projectexplorer/projectwelcomepage.h @@ -42,6 +42,7 @@ class ProjectWelcomePage : public Utils::IWelcomePage Q_OBJECT public: ProjectWelcomePage(); + ~ProjectWelcomePage(); QWidget *page(); QString title() const { return tr("Develop"); } diff --git a/src/shared/help/helpviewer.cpp b/src/shared/help/helpviewer.cpp index 83fd5731db..71508d9092 100644 --- a/src/shared/help/helpviewer.cpp +++ b/src/shared/help/helpviewer.cpp @@ -230,14 +230,14 @@ bool HelpPage::acceptNavigationRequest(QWebFrame *, return false; } -HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *parent) +HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *central, QWidget *parent) : QWebView(parent) , helpEngine(engine) - , parentWidget(parent) + , parentWidget(central) , multiTabsAllowed(true) , loadFinished(false) { - setPage(new HelpPage(parent, helpEngine, this)); + setPage(new HelpPage(central, helpEngine, this)); settings()->setAttribute(QWebSettings::PluginsEnabled, false); settings()->setAttribute(QWebSettings::JavaEnabled, false); @@ -245,7 +245,7 @@ HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *paren QAction* action = pageAction(QWebPage::OpenLinkInNewWindow); action->setText(tr("Open Link in New Tab")); - if (!parent) { + if (!central) { multiTabsAllowed = false; action->setVisible(false); } diff --git a/src/shared/help/helpviewer.h b/src/shared/help/helpviewer.h index 6f473eccb6..2e33543ebb 100644 --- a/src/shared/help/helpviewer.h +++ b/src/shared/help/helpviewer.h @@ -64,7 +64,7 @@ class HelpViewer : public QWebView Q_OBJECT public: - HelpViewer(QHelpEngine *helpEngine, Help::Internal::CentralWidget *parent); + HelpViewer(QHelpEngine *helpEngine, Help::Internal::CentralWidget *central, QWidget *parent); void setSource(const QUrl &url); inline QUrl source() const |