[Libreoffice-commits] core.git: framework/inc framework/source

Tor Lillqvist tml at collabora.com
Fri May 8 11:32:11 PDT 2015


 framework/inc/helper/statusindicator.hxx    |    2 ++
 framework/source/helper/statusindicator.cxx |    7 ++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

New commits:
commit 3842967e5276aabdf28e8eb047803389a41793c7
Author: Tor Lillqvist <tml at collabora.com>
Date:   Fri May 8 13:17:45 2015 +0300

    Ensure progress bar LibreOfficeKit callbacks don't repeat the same percentage
    
    Gets rid of superfluous sequential callbacks with the same percentage when
    loading large documents.
    
    This reverts commit cec72eff99d1d683f2236c8a86a2814b34ad861e.
    
    Change-Id: I70f43f7e3a650c76cbcbbc60ebb2d47efaca06a5

diff --git a/framework/inc/helper/statusindicator.hxx b/framework/inc/helper/statusindicator.hxx
index d52216e..6043cf2 100644
--- a/framework/inc/helper/statusindicator.hxx
+++ b/framework/inc/helper/statusindicator.hxx
@@ -69,6 +69,8 @@ class StatusIndicator : public  ::cppu::WeakImplHelper1< css::task::XStatusIndic
         css::uno::WeakReference< css::task::XStatusIndicatorFactory > m_xFactory;
 
         sal_Int32 m_nRange;
+        // We want the callback percentages to increase monotonically
+        int m_nLastCallbackPercent;
 
     // c++ interface
     public:
diff --git a/framework/source/helper/statusindicator.cxx b/framework/source/helper/statusindicator.cxx
index 88c247e..6c78d0a 100644
--- a/framework/source/helper/statusindicator.cxx
+++ b/framework/source/helper/statusindicator.cxx
@@ -38,6 +38,7 @@ void SAL_CALL StatusIndicator::start(const OUString& sText ,
     if (comphelper::LibreOfficeKit::isActive())
     {
         m_nRange = nRange;
+        m_nLastCallbackPercent = -1;
 
         comphelper::LibreOfficeKit::statusIndicatorStart();
         return;
@@ -102,7 +103,11 @@ void SAL_CALL StatusIndicator::setValue(sal_Int32 nValue)
     if (comphelper::LibreOfficeKit::isActive())
     {
         int nPercent = (100*nValue)/m_nRange;
-        comphelper::LibreOfficeKit::statusIndicatorSetValue(nPercent);
+        if (nPercent != m_nLastCallbackPercent)
+        {
+            comphelper::LibreOfficeKit::statusIndicatorSetValue(nPercent);
+            m_nLastCallbackPercent = nPercent;
+        }
         return;
     }
 


More information about the Libreoffice-commits mailing list