sw/inc/doc.hxx | 5 ++--- sw/source/core/doc/doc.cxx | 17 ++++++++++------- xmloff/source/text/txtparae.cxx | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-)
New commits: commit 91c8008051c0bb7905a6acd822d022e144f2941f Author: Michael Stahl <[email protected]> Date: Tue Aug 13 18:39:08 2013 +0200 fdo#58040: sw: fine tune async word count - count characters instead of paragraphs to better account for large or small paragraphs - start out with a relatively small value (5k chars) on the first run to quickly show something to the user Change-Id: Ic4013545692f267aab39e084415d5d794bb5a4ca diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index 89f6c05..3e23690 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -2080,13 +2080,12 @@ private: void CopyMasterFooter(const SwPageDesc &rChged, const SwFmtFooter &rFoot, SwPageDesc *pDesc, bool bLeft); /** continue computing a chunk of document statistics - * \param nTextNodes number of paragraphs to calculate before - * exiting + * \param nChars number of characters to count before exiting * \param bFields if stat. fields should be updated * * returns false when there is no more to calculate */ - bool IncrementalDocStatCalculate(long nTextNodes = 250, bool bFields = true); + bool IncrementalDocStatCalculate(long nChars, bool bFields = true); /// Our own 'StatsUpdateTimer' calls the following method DECL_LINK( DoIdleStatsUpdate, Timer * ); diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx index 5fe4cb6..6675507 100644 --- a/sw/source/core/doc/doc.cxx +++ b/sw/source/core/doc/doc.cxx @@ -1648,22 +1648,25 @@ void SwDoc::CalculatePagePairsForProspectPrinting( } // returns true while there is more to do -bool SwDoc::IncrementalDocStatCalculate( long nTextNodes, bool bFields ) +bool SwDoc::IncrementalDocStatCalculate(long nChars, bool bFields) { mpDocStat->Reset(); mpDocStat->nPara = 0; // default is 1! SwNode* pNd; // This is the inner loop - at least while the paras are dirty. - for( sal_uLong i = GetNodes().Count(); i > 0 && nTextNodes > 0; ) + for( sal_uLong i = GetNodes().Count(); i > 0 && nChars > 0; ) { switch( ( pNd = GetNodes()[ --i ])->GetNodeType() ) { case ND_TEXTNODE: { + long const nOldChars(mpDocStat->nChar); SwTxtNode *pTxt = static_cast< SwTxtNode * >( pNd ); if (pTxt->CountWords(*mpDocStat, 0, pTxt->GetTxt().getLength())) - nTextNodes--; + { + nChars -= (mpDocStat->nChar - nOldChars); + } break; } case ND_TABLENODE: ++mpDocStat->nTbl; break; @@ -1738,13 +1741,13 @@ bool SwDoc::IncrementalDocStatCalculate( long nTextNodes, bool bFields ) pType->UpdateFlds(); } - return nTextNodes <= 0; + return nChars <= 0; } IMPL_LINK( SwDoc, DoIdleStatsUpdate, Timer *, pTimer ) { (void)pTimer; - if( IncrementalDocStatCalculate( 1000 ) ) + if (IncrementalDocStatCalculate(32000)) maStatsUpdateTimer.Start(); SwView* pView = GetDocShell() ? GetDocShell()->GetView() : NULL; @@ -1759,10 +1762,10 @@ void SwDoc::UpdateDocStat( bool bCompleteAsync, bool bFields ) { if (!bCompleteAsync) { - while (IncrementalDocStatCalculate(250, bFields)) {} + while (IncrementalDocStatCalculate(5000, bFields)) {} maStatsUpdateTimer.Stop(); } - else if (IncrementalDocStatCalculate(250, bFields)) + else if (IncrementalDocStatCalculate(5000, bFields)) maStatsUpdateTimer.Start(); } } commit 9e2351ffd9dc7876c1071e5b6eed10ba9aaae2cd Author: Michael Stahl <[email protected]> Date: Tue Aug 13 16:06:01 2013 +0200 XMLTextParagraphExport: not finding auto style means data loss ... so use assert() to get attention for such problems. Change-Id: I4aea1a1cb5ad497583024b326f27fb73e5be9bb7 diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx index 6686669..7dc6bd6 100644 --- a/xmloff/source/text/txtparae.cxx +++ b/xmloff/source/text/txtparae.cxx @@ -798,7 +798,7 @@ OUString XMLTextParagraphExport::FindTextStyleAndHyperlink( } OUString sParent; // AutoStyles should not have parents! sName = GetAutoStylePool().Find( XML_STYLE_FAMILY_TEXT_TEXT, sParent, xPropStates ); - DBG_ASSERT( !sName.isEmpty(), "AutoStyle could not be found" ); + assert(!sName.isEmpty()); // AutoStyle could not be found rbHasAutoStyle = sal_True; } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
