summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2021-02-03 11:58:10 +0100
committerMiklos Vajna <vmiklos@collabora.com>2021-02-03 14:38:55 +0100
commitb07f6c14a49aea23457b41b0d75390e68fe550b3 (patch)
treea3913e2c0420acbdacfa2a51ad55a88211a6fa96 /writerfilter/source/dmapper
parent57f5f399c6047fa6c484a3b969c84aca3a723fab (diff)
tdf#91920 sw page gutter margin: add DOCX filter
- import: convert the gutter twips value to mm100, then map it to the GutterMargin property of the page style - export: map SvxLRSpaceItem::m_nGutterMargin to <w:pgMar ... w:gutter="..."/> Change-Id: I971d32ffe4e67c2c5a5518b5aa63cb8514e04e2a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110345 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'writerfilter/source/dmapper')
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx1
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx5
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx1
-rw-r--r--writerfilter/source/dmapper/PropertyIds.cxx3
-rw-r--r--writerfilter/source/dmapper/PropertyIds.hxx1
-rw-r--r--writerfilter/source/dmapper/PropertyMap.cxx2
-rw-r--r--writerfilter/source/dmapper/PropertyMap.hxx2
7 files changed, 14 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 13da5508b236..0aee54ae125e 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2174,6 +2174,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext )
pSectionContext->SetLeftMargin( rPageMar.left );
pSectionContext->SetHeaderTop( rPageMar.header );
pSectionContext->SetHeaderBottom( rPageMar.footer );
+ pSectionContext->SetGutterMargin(rPageMar.gutter);
}
break;
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index d0ed6bcb10b2..c2b60fc48f5c 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -6909,7 +6909,9 @@ void DomainMapper_Impl::SetPageMarginTwip( PageMarElement eElement, sal_Int32 nV
case PAGE_MAR_LEFT : m_aPageMargins.left = nValue; break;
case PAGE_MAR_HEADER : m_aPageMargins.header = nValue; break;
case PAGE_MAR_FOOTER : m_aPageMargins.footer = nValue; break;
- case PAGE_MAR_GUTTER : break;
+ case PAGE_MAR_GUTTER:
+ m_aPageMargins.gutter = nValue;
+ break;
}
}
@@ -6923,6 +6925,7 @@ PageMar::PageMar()
, left(right)
, header(ConversionHelper::convertTwipToMM100(sal_Int32(720)))
, footer(header)
+ , gutter(0)
{
}
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
index b4b111e787ec..ab29d0a3a185 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
@@ -77,6 +77,7 @@ struct PageMar
sal_Int32 left;
sal_Int32 header;
sal_Int32 footer;
+ sal_Int32 gutter;
public:
PageMar();
};
diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx
index 3aafab2c9354..5450c0c0dfc6 100644
--- a/writerfilter/source/dmapper/PropertyIds.cxx
+++ b/writerfilter/source/dmapper/PropertyIds.cxx
@@ -357,6 +357,9 @@ OUString getPropertyName( PropertyIds eId )
case PROP_CHAR_TRANSPARENCE: sName = "CharTransparence"; break;
case PROP_CELL_FORMULA: sName = "CellFormula"; break;
case PROP_CELL_FORMULA_CONVERTED: sName = "CellFormulaConverted"; break;
+ case PROP_GUTTER_MARGIN:
+ sName = "GutterMargin";
+ break;
}
assert(sName.getLength()>0);
return sName;
diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx
index 5eed2297ff0d..766748116a70 100644
--- a/writerfilter/source/dmapper/PropertyIds.hxx
+++ b/writerfilter/source/dmapper/PropertyIds.hxx
@@ -359,6 +359,7 @@ enum PropertyIds
,PROP_CHAR_TRANSPARENCE
,PROP_CELL_FORMULA
,PROP_CELL_FORMULA_CONVERTED
+ ,PROP_GUTTER_MARGIN
};
//Returns the UNO string equivalent to eId.
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index 4cdd76e91a2c..6f8f8d5a9b1e 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -412,6 +412,7 @@ SectionPropertyMap::SectionPropertyMap( bool bIsFirstSection )
, m_nBreakType( -1 )
, m_nLeftMargin( 2540 ) // page left margin, default 1 inch = 1440 twip -> 2540 1/100 mm
, m_nRightMargin( 2540 ) // page right margin, default 1 inch = 1440 twip -> 2540 1/100 mm
+ , m_nGutterMargin(0)
, m_nTopMargin( 2540 )
, m_nBottomMargin( 2540 )
, m_nHeaderTop( 1270 ) // 720 twip
@@ -1066,6 +1067,7 @@ void SectionPropertyMap::HandleMarginsHeaderFooter( bool bFirstPage, DomainMappe
{
Insert( PROP_LEFT_MARGIN, uno::makeAny( m_nLeftMargin ) );
Insert( PROP_RIGHT_MARGIN, uno::makeAny( m_nRightMargin ) );
+ Insert(PROP_GUTTER_MARGIN, uno::makeAny(m_nGutterMargin));
if ( rDM_Impl.m_oBackgroundColor )
Insert( PROP_BACK_COLOR, uno::makeAny( *rDM_Impl.m_oBackgroundColor ) );
diff --git a/writerfilter/source/dmapper/PropertyMap.hxx b/writerfilter/source/dmapper/PropertyMap.hxx
index c48d52803ee1..f8c976abd388 100644
--- a/writerfilter/source/dmapper/PropertyMap.hxx
+++ b/writerfilter/source/dmapper/PropertyMap.hxx
@@ -254,6 +254,7 @@ private:
sal_Int32 m_nLeftMargin;
sal_Int32 m_nRightMargin;
+ sal_Int32 m_nGutterMargin;
sal_Int32 m_nTopMargin;
sal_Int32 m_nBottomMargin;
sal_Int32 m_nHeaderTop;
@@ -381,6 +382,7 @@ public:
void SetBottomMargin( sal_Int32 nSet ) { m_nBottomMargin = nSet; }
void SetHeaderTop( sal_Int32 nSet ) { m_nHeaderTop = nSet; }
void SetHeaderBottom( sal_Int32 nSet ) { m_nHeaderBottom = nSet; }
+ void SetGutterMargin( sal_Int32 nGutterMargin ) { m_nGutterMargin = nGutterMargin; }
sal_Int32 GetPageWidth() const;
void SetGridType( sal_Int32 nSet ) { m_nGridType = nSet; }