diff options
author | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2019-12-11 18:19:43 -0500 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2019-12-16 17:30:01 +0000 |
commit | 7542c600dc406bcd29f7a6825e4df7559676c9f7 (patch) | |
tree | b2138ba443bfaca3c20755421a877b6a8b2e660f /chart2/source/controller | |
parent | b9d0e9e2776c4b8945f03b01473435641ee7ce06 (diff) |
chart2: clear listener parents in dispose
Change-Id: Icdab125589ab0f55255f683a1ea39e036de661b1
Reviewed-on: https://gerrit.libreoffice.org/84997
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Diffstat (limited to 'chart2/source/controller')
3 files changed, 14 insertions, 1 deletions
diff --git a/chart2/source/controller/main/ChartWindow.cxx b/chart2/source/controller/main/ChartWindow.cxx index 2a3bd54a85e6..0971fd079ca1 100644 --- a/chart2/source/controller/main/ChartWindow.cxx +++ b/chart2/source/controller/main/ChartWindow.cxx @@ -74,6 +74,7 @@ ChartWindow::~ChartWindow() void ChartWindow::dispose() { + m_pWindowController = nullptr; m_pViewShellWindow.clear(); vcl::Window::dispose(); } diff --git a/chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx b/chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx index b000e55c5aa6..0fa0b793b5b6 100644 --- a/chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx +++ b/chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx @@ -27,12 +27,17 @@ ChartSidebarModifyListener::~ChartSidebarModifyListener() void ChartSidebarModifyListener::modified(const css::lang::EventObject& /*rEvent*/) { - mpParent->updateData(); + if (mpParent) + mpParent->updateData(); } void ChartSidebarModifyListener::disposing(const css::lang::EventObject& /*rEvent*/) { + if (!mpParent) + return; + mpParent->modelInvalid(); + mpParent = nullptr; } } } diff --git a/chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx b/chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx index e037fc39aa5f..e7d74c656a55 100644 --- a/chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx +++ b/chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx @@ -41,6 +41,9 @@ ChartSidebarSelectionListener::~ChartSidebarSelectionListener() void ChartSidebarSelectionListener::selectionChanged(const css::lang::EventObject& rEvent) { + if (!mpParent) + return; + bool bCorrectObjectSelected = false; css::uno::Reference<css::frame::XController> xController(rEvent.Source, css::uno::UNO_QUERY); @@ -66,6 +69,10 @@ void ChartSidebarSelectionListener::selectionChanged(const css::lang::EventObjec void ChartSidebarSelectionListener::disposing(const css::lang::EventObject& /*rEvent*/) { + if (!mpParent) + return; + + mpParent = nullptr; } void ChartSidebarSelectionListener::setAcceptedTypes(const std::vector<ObjectType>& aTypes) |