summaryrefslogtreecommitdiff
path: root/sw/source/core/inc/rootfrm.hxx
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2013-11-20 10:39:49 +0100
committerBjörn Michaelsen <bjoern.michaelsen@canonical.com>2013-11-20 12:03:16 -0600
commit13a8fac05425f9d66c643f25faa49c1f17c62474 (patch)
tree9991e3914b9d306eb285cfc48c15865abca196e7 /sw/source/core/inc/rootfrm.hxx
parent73c5e9824690b2fc38976d5e53e1fd10a16dc47b (diff)
Freeze layout / page format normalization.
For single-file mail merge this skips the page format normalization, which would be run during each document / page append. Instead the normalization / checks are run for the whole document at the end of the generation, changing this code from O(n2) to O(n). This way each mail merge generated document uses the same time, because the target document isn't completely traversed for each page change. With my test document this produces the same output, save some changed internal document IDs. This fixes fdo#56355. Change-Id: Ia779705cfb107383341f946542d28434c986591a Reviewed-on: https://gerrit.libreoffice.org/6733 Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com> Tested-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
Diffstat (limited to 'sw/source/core/inc/rootfrm.hxx')
-rw-r--r--sw/source/core/inc/rootfrm.hxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/sw/source/core/inc/rootfrm.hxx b/sw/source/core/inc/rootfrm.hxx
index 32bc02285729..a011d2ea57e7 100644
--- a/sw/source/core/inc/rootfrm.hxx
+++ b/sw/source/core/inc/rootfrm.hxx
@@ -86,6 +86,7 @@ class SwRootFrm: public SwLayoutFrm
sal_Bool bIsNewLayout :1; //Layout geladen oder neu erzeugt.
sal_Bool bCallbackActionEnabled:1; //Keine Action in Benachrichtung erwuenscht
//siehe dcontact.cxx, ::Changed()
+ bool bLayoutFreezed;
//Fuer den BrowseMode. nBrowseWidth ist die Aeussere Kante des am weitesten
//rechts stehenden Objectes. Die rechte Kante der Seiten soll im BrowseMode
@@ -351,6 +352,9 @@ public:
bool IsLeftToRightViewLayout() const;
const SwRect& GetPagesArea() const { return maPagesArea; }
void SetSidebarChanged() { mbSidebarChanged = true; }
+
+ bool IsLayoutFreezed() const { return bLayoutFreezed; }
+ void FreezeLayout( bool freeze ) { bLayoutFreezed = freeze; }
};
inline long SwRootFrm::GetBrowseWidth() const