diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2013-11-20 10:39:49 +0100 |
---|---|---|
committer | Björn Michaelsen <bjoern.michaelsen@canonical.com> | 2013-11-20 12:03:16 -0600 |
commit | 13a8fac05425f9d66c643f25faa49c1f17c62474 (patch) | |
tree | 9991e3914b9d306eb285cfc48c15865abca196e7 /sw/source/core/inc/rootfrm.hxx | |
parent | 73c5e9824690b2fc38976d5e53e1fd10a16dc47b (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.hxx | 4 |
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 |