aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordt <qtc-committer@nokia.com>2009-11-04 16:06:38 +0100
committercon <qtc-committer@nokia.com>2009-11-04 18:58:06 +0100
commitcd58c6de48a2c249f48ff760485a054c4fdfa955 (patch)
tree321ab7fc1c8a0650356dd926d7ae71baa2188fa2
parentac8385278c96e763a98eec906c76139409fd60b3 (diff)
Fix memory leak in welcome plugin and right hand side pane
(cherry picked from commit a67e13942b2d6c150fc54ea7568b3facfd2dc7d1)
-rw-r--r--src/plugins/help/centralwidget.cpp6
-rw-r--r--src/plugins/help/helpplugin.cpp2
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp1
-rw-r--r--src/plugins/projectexplorer/projectwelcomepage.cpp5
-rw-r--r--src/plugins/projectexplorer/projectwelcomepage.h1
-rw-r--r--src/shared/help/helpviewer.cpp8
-rw-r--r--src/shared/help/helpviewer.h2
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