[Libreoffice-commits] core.git: sfx2/source

Jan Holesovsky kendy at collabora.com
Fri Jul 3 11:45:09 PDT 2015


 sfx2/source/control/unoctitm.cxx |   14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

New commits:
commit 94b38840f5e4072577a1e709cebadd746621aacc
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Fri Jul 3 20:35:30 2015 +0200

    tdf#92528: Saving of usage info can happen very late in the tear down.
    
    Change-Id: Id545f3447472a8e6ee137a6630ee14b45a45d673

diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index 56a8207..c35dea9 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -598,11 +598,14 @@ class UsageInfo {
 
     typedef std::map<OUString, int> UsageMap;
 
+    /// Are we collecting the info?  We cache the value because the call to save can happen very late.
+    bool mbIsCollecting;
+
     /// Command vs. how many times it was used
     UsageMap maUsage;
 
 public:
-    UsageInfo()
+    UsageInfo() : mbIsCollecting(false)
     {
     }
 
@@ -616,6 +619,9 @@ public:
 
     /// Save the usage data for the next session.
     void save();
+
+    /// Modify the flag whether we are collecting.
+    void setCollecting(bool bIsCollecting) { mbIsCollecting = bIsCollecting; }
 };
 
 void UsageInfo::increment(const OUString &rCommand)
@@ -630,7 +636,7 @@ void UsageInfo::increment(const OUString &rCommand)
 
 void UsageInfo::save()
 {
-    if (!officecfg::Office::Common::Misc::CollectUsageInformation::get())
+    if (!mbIsCollecting)
         return;
 
     // TODO - do a real saving here, not only dump to the screen
@@ -647,7 +653,9 @@ class theUsageInfo : public rtl::Static<UsageInfo, theUsageInfo> {};
 /// Extracts information about the command + args, and stores that.
 void collectUsageInformation(const util::URL& rURL, const uno::Sequence<beans::PropertyValue>& rArgs)
 {
-    if (!officecfg::Office::Common::Misc::CollectUsageInformation::get())
+    bool bCollecting = officecfg::Office::Common::Misc::CollectUsageInformation::get();
+    theUsageInfo::get().setCollecting(bCollecting);
+    if (!bCollecting)
         return;
 
     OUStringBuffer aBuffer;


More information about the Libreoffice-commits mailing list