diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-12-20 17:58:12 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-12-20 23:56:11 +0100 |
commit | e936ecc92a7e362f57ce72a955697840920636b8 (patch) | |
tree | 451f8d48febb02e91f2c3efab81419ccbed1dc7e /sw/inc | |
parent | 94c772adc2e8d8af468f3996527c84bf7704103f (diff) |
fdo#69065: sw: fix mirrored page style with first-page
If a mirrored page style is used with first-page on both a right page
and a left page the current design cannot work because the margins in
the SwPageDesc::aFirst cannot be right for both cases.
So split that up so we get a first-master and first-left format and
copy the headers/footers and margins as appropriate... which is really
adding epicycles to a flawed design; probably this would be better with
just a single SwFrmFmt that has different items for master/left/first
headers.
Change-Id: I0889a4ab5959b5a71172203bb64d185960a07d73
Diffstat (limited to 'sw/inc')
-rw-r--r-- | sw/inc/doc.hxx | 4 | ||||
-rw-r--r-- | sw/inc/pagedesc.hxx | 10 |
2 files changed, 9 insertions, 5 deletions
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index 217590ce8f8a..80e6ae4123a2 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -2093,9 +2093,9 @@ public: private: /// Copies master header to left / first one, if necessary - used by ChgPageDesc(). - void CopyMasterHeader(const SwPageDesc &rChged, const SwFmtHeader &rHead, SwPageDesc *pDesc, bool bLeft); + void CopyMasterHeader(const SwPageDesc &rChged, const SwFmtHeader &rHead, SwPageDesc *pDesc, bool bLeft, bool bFirst); /// Copies master footer to left / first one, if necessary - used by ChgPageDesc(). - void CopyMasterFooter(const SwPageDesc &rChged, const SwFmtFooter &rFoot, SwPageDesc *pDesc, bool bLeft); + void CopyMasterFooter(const SwPageDesc &rChged, const SwFmtFooter &rFoot, SwPageDesc *pDesc, bool bLeft, bool bFirst); /** continue computing a chunk of document statistics * \param nChars number of characters to count before exiting diff --git a/sw/inc/pagedesc.hxx b/sw/inc/pagedesc.hxx index 4fa0449cc98b..b0bcceccc489 100644 --- a/sw/inc/pagedesc.hxx +++ b/sw/inc/pagedesc.hxx @@ -135,7 +135,9 @@ class SW_DLLPUBLIC SwPageDesc : public SwModify SvxNumberType aNumType; SwFrmFmt aMaster; SwFrmFmt aLeft; - SwFrmFmt aFirst; + // FIXME epicycles growing here - page margins need to be stored differently + SwFrmFmt m_FirstMaster; + SwFrmFmt m_FirstLeft; SwDepend aDepend; ///< Because of grid alignment (Registerhaltigkeit). SwPageDesc *pFollow; sal_uInt16 nRegHeight; ///< Sentence spacing and fontascent of style. @@ -190,10 +192,12 @@ public: SwFrmFmt &GetMaster() { return aMaster; } SwFrmFmt &GetLeft() { return aLeft; } - SwFrmFmt &GetFirst() { return aFirst; } + SwFrmFmt &GetFirstMaster() { return m_FirstMaster; } + SwFrmFmt &GetFirstLeft() { return m_FirstLeft; } const SwFrmFmt &GetMaster() const { return aMaster; } const SwFrmFmt &GetLeft() const { return aLeft; } - const SwFrmFmt &GetFirst() const { return aFirst; } + const SwFrmFmt &GetFirstMaster() const { return m_FirstMaster; } + const SwFrmFmt &GetFirstLeft() const { return m_FirstLeft; } /** Reset all attrs of the format but keep the ones a pagedesc cannot live without. */ |