diff options
| author | David Hallas <[email protected]> | 2019-03-03 07:37:52 +0100 |
|---|---|---|
| committer | David Hallas <[email protected]> | 2019-03-10 17:41:42 +0100 |
| commit | 94d7e1471e0a81b72285795ad91c4f6196157ae4 (patch) | |
| tree | 0eb068b36f5e78c4eb3583f99c280bfa6e3f3529 /src | |
| parent | 9f2bb143b5ee00eddaaebbfe83da2f2da9f18863 (diff) | |
Fixes leak of DolphinFileMetaDataWidget in ToolTipManager
Summary:
Fixes leak of DolphinFileMetaDataWidget in ToolTipManager. The
destructor of ToolTipManager failed to delete the m_fileMetaDataWidget
member. This is seen at shutdown but also when you close a tab that has
displayed a tooltip.
Test Plan:
Compile Dolphin with address sanitizer
Open Dolphin
Show a tooltip
Close Dolphin
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D19485
Diffstat (limited to 'src')
| -rw-r--r-- | src/views/tooltips/tooltipmanager.cpp | 9 | ||||
| -rw-r--r-- | src/views/tooltips/tooltipmanager.h | 2 |
2 files changed, 5 insertions, 6 deletions
diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index bb2890138..9e79a8f70 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -82,11 +82,10 @@ void ToolTipManager::showToolTip(const KFileItem& item, const QRectF& itemRect, // Only start the retrieving of the content, when the mouse has been over this // item for 200 milliseconds. This prevents a lot of useless preview jobs and // meta data retrieval, when passing rapidly over a lot of items. - delete m_fileMetaDataWidget; - m_fileMetaDataWidget = new DolphinFileMetaDataWidget(); - connect(m_fileMetaDataWidget, &DolphinFileMetaDataWidget::metaDataRequestFinished, + m_fileMetaDataWidget.reset(new DolphinFileMetaDataWidget()); + connect(m_fileMetaDataWidget.data(), &DolphinFileMetaDataWidget::metaDataRequestFinished, this, &ToolTipManager::slotMetaDataRequestFinished); - connect(m_fileMetaDataWidget, &DolphinFileMetaDataWidget::urlActivated, + connect(m_fileMetaDataWidget.data(), &DolphinFileMetaDataWidget::urlActivated, this, &ToolTipManager::urlActivated); m_contentRetrievalTimer->start(); @@ -209,7 +208,7 @@ void ToolTipManager::showToolTip() if (!m_tooltipWidget) { m_tooltipWidget.reset(new KToolTipWidget()); } - m_tooltipWidget->showBelow(m_itemRect, m_fileMetaDataWidget, m_transientParent); + m_tooltipWidget->showBelow(m_itemRect, m_fileMetaDataWidget.data(), m_transientParent); m_toolTipRequested = false; } diff --git a/src/views/tooltips/tooltipmanager.h b/src/views/tooltips/tooltipmanager.h index f6d2b7304..63c723f80 100644 --- a/src/views/tooltips/tooltipmanager.h +++ b/src/views/tooltips/tooltipmanager.h @@ -84,7 +84,7 @@ private: /// Transient parent of the tooltip, mandatory on Wayland. QWindow* m_transientParent; - DolphinFileMetaDataWidget* m_fileMetaDataWidget; + QScopedPointer<DolphinFileMetaDataWidget> m_fileMetaDataWidget; QScopedPointer<KToolTipWidget> m_tooltipWidget; bool m_toolTipRequested; |
