[Libreoffice-commits] core.git: editeng/source include/editeng

Miklos Vajna (via logerrit) logerrit at kemper.freedesktop.org
Tue Feb 2 13:18:08 UTC 2021


 editeng/source/items/frmitems.cxx |    5 +++++
 include/editeng/lrspitem.hxx      |    4 ++++
 2 files changed, 9 insertions(+)

New commits:
commit 48829edfb148ff61d1e03319547151380899ba63
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Tue Feb 2 12:22:15 2021 +0100
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Tue Feb 2 14:17:28 2021 +0100

    sw page gutter margin: add doc model
    
    The page gutter defines the amount of extra space added to the specified
    margin, above any existing margin values. This can be helpful in case of
    printed books: e.g. 1cm left margin, 1cm right margin, then some
    additional gutter margin on the left can mean that once the book is
    printed and binding consumes its space, the remaining left/right margin
    is matching.
    
    This is just the doc model, other parts will come in follow-up commits.
    
    Change-Id: Ibd3e836ced664b57e817f5c0952098460b683089
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110290
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jenkins

diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index 184bf21cd994..e1520735d804 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -289,6 +289,7 @@ SvxLRSpaceItem::SvxLRSpaceItem( const sal_uInt16 nId ) :
     nTxtLeft        ( 0 ),
     nLeftMargin     ( 0 ),
     nRightMargin    ( 0 ),
+    m_nGutterMargin(0),
     nPropFirstLineOffset( 100 ),
     nPropLeftMargin( 100 ),
     nPropRightMargin( 100 ),
@@ -308,6 +309,7 @@ SvxLRSpaceItem::SvxLRSpaceItem( const tools::Long nLeft, const tools::Long nRigh
     nTxtLeft        ( nTLeft ),
     nLeftMargin     ( nLeft ),
     nRightMargin    ( nRight ),
+    m_nGutterMargin(0),
     nPropFirstLineOffset( 100 ),
     nPropLeftMargin( 100 ),
     nPropRightMargin( 100 ),
@@ -472,6 +474,7 @@ bool SvxLRSpaceItem::operator==( const SfxPoolItem& rAttr ) const
     return (
         nFirstLineOffset == rOther.GetTextFirstLineOffset() &&
         nTxtLeft == rOther.GetTextLeft() &&
+        m_nGutterMargin == rOther.GetGutterMargin() &&
         nLeftMargin == rOther.GetLeft()  &&
         nRightMargin == rOther.GetRight() &&
         nPropFirstLineOffset == rOther.GetPropTextFirstLineOffset() &&
@@ -594,6 +597,8 @@ void SvxLRSpaceItem::dumpAsXml(xmlTextWriterPtr pWriter) const
     xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nTxtLeft"), BAD_CAST(OString::number(nTxtLeft).getStr()));
     xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nLeftMargin"), BAD_CAST(OString::number(nLeftMargin).getStr()));
     xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nRightMargin"), BAD_CAST(OString::number(nRightMargin).getStr()));
+    xmlTextWriterWriteAttribute(pWriter, BAD_CAST("m_nGutterMargin"),
+                                BAD_CAST(OString::number(m_nGutterMargin).getStr()));
     xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nPropFirstLineOffset"), BAD_CAST(OString::number(nPropFirstLineOffset).getStr()));
     xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nPropLeftMargin"), BAD_CAST(OString::number(nPropLeftMargin).getStr()));
     xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nPropRightMargin"), BAD_CAST(OString::number(nPropRightMargin).getStr()));
diff --git a/include/editeng/lrspitem.hxx b/include/editeng/lrspitem.hxx
index b04944326407..9b3ec7734a8e 100644
--- a/include/editeng/lrspitem.hxx
+++ b/include/editeng/lrspitem.hxx
@@ -51,6 +51,8 @@ class EDITENG_DLLPUBLIC SvxLRSpaceItem final : public SfxPoolItem
     tools::Long    nTxtLeft;           // We spend a sal_uInt16
     tools::Long    nLeftMargin;        // nLeft or the negative first-line indent
     tools::Long    nRightMargin;       // The unproblematic right edge
+    /// The amount of extra space added to the left margin.
+    tools::Long    m_nGutterMargin;
 
     sal_uInt16  nPropFirstLineOffset, nPropLeftMargin, nPropRightMargin;
     short   nFirstLineOffset;     // First-line indent _always_ relative to nTxtLeft
@@ -116,6 +118,8 @@ public:
                     { return nPropFirstLineOffset; }
     void SetTextFirstLineOffsetValue( const short nValue )
                     { nFirstLineOffset = nValue; }
+    void SetGutterMargin(const tools::Long nGutterMargin) { m_nGutterMargin = nGutterMargin; }
+    tools::Long GetGutterMargin() const { return m_nGutterMargin; }
 
     void dumpAsXml(xmlTextWriterPtr pWriter) const override;
     virtual boost::property_tree::ptree dumpAsJSON() const override;


More information about the Libreoffice-commits mailing list