[PATCH libreoffice-3-6] remove chart listener when chart is deleted, fdo#64639

Markus Mohrhard (via Code Review) gerrit at gerrit.libreoffice.org
Sun May 26 16:57:50 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/4046

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/46/4046/1

remove chart listener when chart is deleted, fdo#64639

Change-Id: I7ebf75f49c89edcb0bba3a597ba24ac1c0a655ef
---
M sc/inc/chartlis.hxx
M sc/source/core/tool/chartlis.cxx
M sc/source/ui/unoobj/chartuno.cxx
3 files changed, 8 insertions(+), 0 deletions(-)



diff --git a/sc/inc/chartlis.hxx b/sc/inc/chartlis.hxx
index 8ca2760..791efef 100644
--- a/sc/inc/chartlis.hxx
+++ b/sc/inc/chartlis.hxx
@@ -181,6 +181,8 @@
     const ScChartListener* findByName(const rtl::OUString& rName) const;
     bool hasListeners() const;
 
+    void removeByName(const OUString& rName);
+
     const ListenersType& getListeners() const;
     ListenersType& getListeners();
     StringSetType& getNonOleObjectNames();
diff --git a/sc/source/core/tool/chartlis.cxx b/sc/source/core/tool/chartlis.cxx
index d49fdeb..55239a0 100644
--- a/sc/source/core/tool/chartlis.cxx
+++ b/sc/source/core/tool/chartlis.cxx
@@ -486,6 +486,11 @@
     maListeners.insert(aName, pListener);
 }
 
+void ScChartListenerCollection::removeByName(const rtl::OUString& rName)
+{
+    maListeners.erase(rName);
+}
+
 ScChartListener* ScChartListenerCollection::findByName(const rtl::OUString& rName)
 {
     ListenersType::iterator it = maListeners.find(rName);
diff --git a/sc/source/ui/unoobj/chartuno.cxx b/sc/source/ui/unoobj/chartuno.cxx
index 4996586..71bc893 100644
--- a/sc/source/ui/unoobj/chartuno.cxx
+++ b/sc/source/ui/unoobj/chartuno.cxx
@@ -309,6 +309,7 @@
     if (pObj)
     {
         ScDocument* pDoc = pDocShell->GetDocument();
+        pDoc->GetChartListenerCollection()->removeByName(aName);
         ScDrawLayer* pModel = pDoc->GetDrawLayer();     // ist nicht 0
         SdrPage* pPage = pModel->GetPage(static_cast<sal_uInt16>(nTab));    // ist nicht 0
 

-- 
To view, visit https://gerrit.libreoffice.org/4046
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7ebf75f49c89edcb0bba3a597ba24ac1c0a655ef
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-3-6
Gerrit-Owner: Markus Mohrhard <markus.mohrhard at googlemail.com>



More information about the LibreOffice mailing list