diff options
author | Tor Lillqvist <tml@collabora.com> | 2015-05-08 13:17:45 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2015-05-08 21:31:16 +0300 |
commit | 3842967e5276aabdf28e8eb047803389a41793c7 (patch) | |
tree | 814f7b826f294b3cfe40d33c15d3f20670c23e42 /framework | |
parent | 66f866d2f5f65a677f3721b7d6c482bf724c97a7 (diff) |
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
Diffstat (limited to 'framework')
-rw-r--r-- | framework/inc/helper/statusindicator.hxx | 2 | ||||
-rw-r--r-- | framework/source/helper/statusindicator.cxx | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/framework/inc/helper/statusindicator.hxx b/framework/inc/helper/statusindicator.hxx index d52216eccde5..6043cf2a2071 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 88c247e9a312..6c78d0a87a9f 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; } |