forked from qt-creator/qt-creator
Fix memory leak in welcome plugin and right hand side pane
This commit is contained in:
@@ -220,7 +220,7 @@ void CentralWidget::setSource(const QUrl &url)
|
|||||||
qobject_cast<HelpViewer*>(tabWidget->widget(lastTabPage));
|
qobject_cast<HelpViewer*>(tabWidget->widget(lastTabPage));
|
||||||
|
|
||||||
if (!viewer && !lastViewer) {
|
if (!viewer && !lastViewer) {
|
||||||
viewer = new HelpViewer(helpEngine, this);
|
viewer = new HelpViewer(helpEngine, this, this);
|
||||||
viewer->installEventFilter(this);
|
viewer->installEventFilter(this);
|
||||||
lastTabPage = tabWidget->addTab(viewer, QString());
|
lastTabPage = tabWidget->addTab(viewer, QString());
|
||||||
tabWidget->setCurrentIndex(lastTabPage);
|
tabWidget->setCurrentIndex(lastTabPage);
|
||||||
@@ -428,7 +428,7 @@ void CentralWidget::setGlobalActions(const QList<QAction*> &actions)
|
|||||||
|
|
||||||
void CentralWidget::setSourceInNewTab(const QUrl &url, int zoom)
|
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->installEventFilter(this);
|
||||||
viewer->setZoom(zoom);
|
viewer->setZoom(zoom);
|
||||||
viewer->setSource(url);
|
viewer->setSource(url);
|
||||||
@@ -448,7 +448,7 @@ void CentralWidget::setSourceInNewTab(const QUrl &url, int zoom)
|
|||||||
|
|
||||||
HelpViewer *CentralWidget::newEmptyTab()
|
HelpViewer *CentralWidget::newEmptyTab()
|
||||||
{
|
{
|
||||||
HelpViewer* viewer = new HelpViewer(helpEngine, this);
|
HelpViewer* viewer = new HelpViewer(helpEngine, this, this);
|
||||||
viewer->installEventFilter(this);
|
viewer->installEventFilter(this);
|
||||||
viewer->setFocus(Qt::OtherFocusReason);
|
viewer->setFocus(Qt::OtherFocusReason);
|
||||||
#if defined(QT_NO_WEBKIT)
|
#if defined(QT_NO_WEBKIT)
|
||||||
|
|||||||
@@ -491,7 +491,7 @@ void HelpPlugin::createRightPaneSideBar()
|
|||||||
addAutoReleasedObject(new Core::BaseRightPaneWidget(m_rightPaneSideBar));
|
addAutoReleasedObject(new Core::BaseRightPaneWidget(m_rightPaneSideBar));
|
||||||
|
|
||||||
rightPaneLayout->addWidget(w);
|
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();
|
Aggregation::Aggregate *agg = new Aggregation::Aggregate();
|
||||||
agg->add(m_helpViewerForSideBar);
|
agg->add(m_helpViewerForSideBar);
|
||||||
agg->add(new HelpViewerFindSupport(m_helpViewerForSideBar));
|
agg->add(new HelpViewerFindSupport(m_helpViewerForSideBar));
|
||||||
|
|||||||
@@ -207,6 +207,7 @@ ProjectExplorerPlugin::ProjectExplorerPlugin()
|
|||||||
ProjectExplorerPlugin::~ProjectExplorerPlugin()
|
ProjectExplorerPlugin::~ProjectExplorerPlugin()
|
||||||
{
|
{
|
||||||
removeObject(d->m_welcomePlugin);
|
removeObject(d->m_welcomePlugin);
|
||||||
|
delete d->m_welcomePlugin;
|
||||||
removeObject(this);
|
removeObject(this);
|
||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,11 @@ ProjectWelcomePage::ProjectWelcomePage()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ProjectWelcomePage::~ProjectWelcomePage()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
QWidget* ProjectWelcomePage::page()
|
QWidget* ProjectWelcomePage::page()
|
||||||
{
|
{
|
||||||
return m_page;
|
return m_page;
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ class ProjectWelcomePage : public Utils::IWelcomePage
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
ProjectWelcomePage();
|
ProjectWelcomePage();
|
||||||
|
~ProjectWelcomePage();
|
||||||
|
|
||||||
QWidget *page();
|
QWidget *page();
|
||||||
QString title() const { return tr("Develop"); }
|
QString title() const { return tr("Develop"); }
|
||||||
|
|||||||
@@ -230,14 +230,14 @@ bool HelpPage::acceptNavigationRequest(QWebFrame *,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *parent)
|
HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *central, QWidget *parent)
|
||||||
: QWebView(parent)
|
: QWebView(parent)
|
||||||
, helpEngine(engine)
|
, helpEngine(engine)
|
||||||
, parentWidget(parent)
|
, parentWidget(central)
|
||||||
, multiTabsAllowed(true)
|
, multiTabsAllowed(true)
|
||||||
, loadFinished(false)
|
, loadFinished(false)
|
||||||
{
|
{
|
||||||
setPage(new HelpPage(parent, helpEngine, this));
|
setPage(new HelpPage(central, helpEngine, this));
|
||||||
settings()->setAttribute(QWebSettings::PluginsEnabled, false);
|
settings()->setAttribute(QWebSettings::PluginsEnabled, false);
|
||||||
settings()->setAttribute(QWebSettings::JavaEnabled, false);
|
settings()->setAttribute(QWebSettings::JavaEnabled, false);
|
||||||
|
|
||||||
@@ -245,7 +245,7 @@ HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *paren
|
|||||||
|
|
||||||
QAction* action = pageAction(QWebPage::OpenLinkInNewWindow);
|
QAction* action = pageAction(QWebPage::OpenLinkInNewWindow);
|
||||||
action->setText(tr("Open Link in New Tab"));
|
action->setText(tr("Open Link in New Tab"));
|
||||||
if (!parent) {
|
if (!central) {
|
||||||
multiTabsAllowed = false;
|
multiTabsAllowed = false;
|
||||||
action->setVisible(false);
|
action->setVisible(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class HelpViewer : public QWebView
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
HelpViewer(QHelpEngine *helpEngine, Help::Internal::CentralWidget *parent);
|
HelpViewer(QHelpEngine *helpEngine, Help::Internal::CentralWidget *central, QWidget *parent);
|
||||||
void setSource(const QUrl &url);
|
void setSource(const QUrl &url);
|
||||||
|
|
||||||
inline QUrl source() const
|
inline QUrl source() const
|
||||||
|
|||||||
Reference in New Issue
Block a user