summaryrefslogtreecommitdiff
path: root/sw/source/core/doc/doc.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/doc/doc.cxx')
-rw-r--r--sw/source/core/doc/doc.cxx19
1 files changed, 11 insertions, 8 deletions
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index 139735dac7bc..4840727cb3a9 100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -1120,11 +1120,11 @@ const SwDocStat& SwDoc::GetDocStat() const
return *mpDocStat;
}
-const SwDocStat& SwDoc::GetUpdatedDocStat( bool bCompleteAsync )
+const SwDocStat& SwDoc::GetUpdatedDocStat( bool bCompleteAsync, bool bFields )
{
if( mpDocStat->bModified )
{
- UpdateDocStat( bCompleteAsync );
+ UpdateDocStat( bCompleteAsync, bFields );
}
return *mpDocStat;
}
@@ -1644,7 +1644,7 @@ void SwDoc::CalculatePagePairsForProspectPrinting(
}
// returns true while there is more to do
-bool SwDoc::IncrementalDocStatCalculate( long nTextNodes )
+bool SwDoc::IncrementalDocStatCalculate( long nTextNodes, bool bFields )
{
mpDocStat->Reset();
mpDocStat->nPara = 0; // default is 1!
@@ -1728,8 +1728,11 @@ bool SwDoc::IncrementalDocStatCalculate( long nTextNodes )
}
// optionally update stat. fields
- SwFieldType *pType = GetSysFldType(RES_DOCSTATFLD);
- pType->UpdateFlds();
+ if (bFields)
+ {
+ SwFieldType *pType = GetSysFldType(RES_DOCSTATFLD);
+ pType->UpdateFlds();
+ }
return nTextNodes <= 0;
}
@@ -1746,16 +1749,16 @@ IMPL_LINK( SwDoc, DoIdleStatsUpdate, Timer *, pTimer )
return 0;
}
-void SwDoc::UpdateDocStat( bool bCompleteAsync )
+void SwDoc::UpdateDocStat( bool bCompleteAsync, bool bFields )
{
if( mpDocStat->bModified )
{
if (!bCompleteAsync)
{
- while (IncrementalDocStatCalculate()) {}
+ while (IncrementalDocStatCalculate(250, bFields)) {}
maStatsUpdateTimer.Stop();
}
- else if (IncrementalDocStatCalculate())
+ else if (IncrementalDocStatCalculate(250, bFields))
maStatsUpdateTimer.Start();
}
}