diff options
author | Oliver Specht <oliver.specht@cib.de> | 2016-03-29 10:17:57 +0200 |
---|---|---|
committer | Oliver Specht <oliver.specht@cib.de> | 2016-03-29 09:09:07 +0000 |
commit | 49152948ddfb1a457ab2fc149fcede57dc2c255b (patch) | |
tree | a193774f9e266609efd47d2f2f171558e30ae75c /sw | |
parent | 4bb270345c4c2d50156f662e1c17477ac510743d (diff) |
tdf#94570: document statistic of none odf files fixed
The fix allows first time calculation of the document statistic.
Change-Id: I54d2f208fa75e6c3502c27678b85a9995d4daec5
Reviewed-on: https://gerrit.libreoffice.org/23589
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Oliver Specht <oliver.specht@cib.de>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/doc/DocumentStateManager.cxx | 4 | ||||
-rw-r--r-- | sw/source/core/doc/DocumentStatisticsManager.cxx | 13 | ||||
-rw-r--r-- | sw/source/core/inc/DocumentStatisticsManager.hxx | 4 |
3 files changed, 12 insertions, 9 deletions
diff --git a/sw/source/core/doc/DocumentStateManager.cxx b/sw/source/core/doc/DocumentStateManager.cxx index 22751c6e8453..7b371d172ef5 100644 --- a/sw/source/core/doc/DocumentStateManager.cxx +++ b/sw/source/core/doc/DocumentStateManager.cxx @@ -41,7 +41,7 @@ void DocumentStateManager::SetModified() { m_rDoc.GetDocumentLayoutManager().ClearSwLayouterEntries(); mbModified = true; - m_rDoc.GetDocumentStatisticsManager().GetDocStat().bModified = true; + m_rDoc.GetDocumentStatisticsManager().SetDocStatModified( true ); if( m_rDoc.GetOle2Link().IsSet() ) { mbInCallModified = true; @@ -60,7 +60,7 @@ void DocumentStateManager::ResetModified() // Bit 1: -> new state bool bOldModified = mbModified; mbModified = false; - m_rDoc.GetDocumentStatisticsManager().GetDocStat().bModified = false; + m_rDoc.GetDocumentStatisticsManager().SetDocStatModified( false ); m_rDoc.GetIDocumentUndoRedo().SetUndoNoModifiedPosition(); if( bOldModified && m_rDoc.GetOle2Link().IsSet() ) { diff --git a/sw/source/core/doc/DocumentStatisticsManager.cxx b/sw/source/core/doc/DocumentStatisticsManager.cxx index d5c24dd5a8c9..81ed9f4481f2 100644 --- a/sw/source/core/doc/DocumentStatisticsManager.cxx +++ b/sw/source/core/doc/DocumentStatisticsManager.cxx @@ -70,7 +70,8 @@ namespace sw { DocumentStatisticsManager::DocumentStatisticsManager( SwDoc& i_rSwdoc ) : m_rDoc( i_rSwdoc ), - mpDocStat( new SwDocStat ) + mpDocStat( new SwDocStat ), + mbInitialized( false ) { maStatsUpdateTimer.SetTimeout( 1 ); maStatsUpdateTimer.SetPriority( SchedulerPriority::LOWEST ); @@ -92,14 +93,14 @@ const SwDocStat& DocumentStatisticsManager::GetDocStat() const return *mpDocStat; } -SwDocStat& DocumentStatisticsManager::GetDocStat() +void DocumentStatisticsManager::SetDocStatModified(bool bSet) { - return *mpDocStat; + mpDocStat->bModified = bSet; } const SwDocStat& DocumentStatisticsManager::GetUpdatedDocStat( bool bCompleteAsync, bool bFields ) { - if( mpDocStat->bModified ) + if( mpDocStat->bModified || !mbInitialized) { UpdateDocStat( bCompleteAsync, bFields ); } @@ -109,11 +110,12 @@ const SwDocStat& DocumentStatisticsManager::GetUpdatedDocStat( bool bCompleteAsy void DocumentStatisticsManager::SetDocStat( const SwDocStat& rStat ) { *mpDocStat = rStat; + mbInitialized = true; } void DocumentStatisticsManager::UpdateDocStat( bool bCompleteAsync, bool bFields ) { - if( mpDocStat->bModified ) + if( mpDocStat->bModified || !mbInitialized) { if (!bCompleteAsync) { @@ -131,6 +133,7 @@ void DocumentStatisticsManager::UpdateDocStat( bool bCompleteAsync, bool bFields // returns true while there is more to do bool DocumentStatisticsManager::IncrementalDocStatCalculate(long nChars, bool bFields) { + mbInitialized = true; mpDocStat->Reset(); mpDocStat->nPara = 0; // default is 1! diff --git a/sw/source/core/inc/DocumentStatisticsManager.hxx b/sw/source/core/inc/DocumentStatisticsManager.hxx index 1988a0072d5b..489adbd34251 100644 --- a/sw/source/core/inc/DocumentStatisticsManager.hxx +++ b/sw/source/core/inc/DocumentStatisticsManager.hxx @@ -37,11 +37,10 @@ public: void DocInfoChgd(bool isEnableSetModified) override; const SwDocStat &GetDocStat() const override; - SwDocStat & GetDocStat(); //Non const version of the above, not part of the interface. + void SetDocStatModified(bool bSet); const SwDocStat &GetUpdatedDocStat(bool bCompleteAsync = false, bool bFields = true) override; void SetDocStat(const SwDocStat& rStat) override; void UpdateDocStat(bool bCompleteAsync = false, bool bFields = true) override; - virtual ~DocumentStatisticsManager(); private: @@ -64,6 +63,7 @@ private: SwDocStat *mpDocStat; //< Statistics information. + bool mbInitialized; // allow first time update Timer maStatsUpdateTimer; //< Timer for asynchronous stats calculation }; |