From 522ccaf443359cb1e831ad6ac2cce600aaac92ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Fri, 11 Sep 2015 14:25:55 +0100 Subject: [PATCH] Fix export of tdf#93675 to .docx as much as is possible --- ...f-93675-to-.docx-as-much-as-is-possi.patch | 1328 +++++++++++++++++ libreoffice.spec | 1 + 2 files changed, 1329 insertions(+) create mode 100644 0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch diff --git a/0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch b/0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch new file mode 100644 index 0000000..fff20ec --- /dev/null +++ b/0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch @@ -0,0 +1,1328 @@ +From b8e0c4739524504385955180df09f67887b3cb10 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Thu, 3 Sep 2015 15:07:49 +0100 +Subject: [PATCH] Fix export of tdf#93675 to .docx as much as is possible + +convert Axis constants to an enum and hilight suspicious absence + +that compiler warnings then shows (which I saw manually in the first place) +of AXIS_SECONDARY_X + +Change-Id: I873623141020633ea73f14f5c93322c2346b8efb +(cherry picked from commit 90ea1221856340860c406357e274000771b5b127) + +Related: tdf#93676 'new' ms-alike numbering has same problem as old numbering + +when it comes to nodes which were numbered, but have their number deleted, +where the indent from the numbering is still in effect in writer, but not +in msoffice. + +(cherry picked from commit 54f9576aa43e3d6d687469aa0b2ea56ce0bbaca3) + +Change-Id: I700f34171d8c9e9f6fb725d115ff1fe704ceb4bb + +Related: tdf#93676 unwanted duplicate axis title exported + +translateFromChart2AxisIndexToOox toggles between just two +states, so convert consumers/suppliers of that to bool + +Then in exportAxesId toggle between primary/seconday pairs based on that, vs +always exporting AXIS_PRIMARY_X + primary/secondary y + +Change-Id: I2649f5fc07323a73a3a215fdc52d5f1a5c31c349 +(cherry picked from commit 24560df316de86cea93a37edd38e02a2f2d9c0c2) + +use correct axis type in secondary x axis export + +Change-Id: Ic21d88b55b22c650de4fd69479b51d0f640fec6f +(cherry picked from commit befef6a79feae0490bd3a1cf72b1134e5ff86111) + +that change looked wrong + +Change-Id: Id40a6802536120501133968d003267f21aaf5c27 +(cherry picked from commit cfb717133c7276a7b154379d049e6fac0e5a49da) + +related tdf#93676: make the bold property explicit for run export + +Change-Id: I5f7f993f2cf0604ec62cea3460b651c07a7b4383 +(cherry picked from commit a052479f3c85bdedddfa38cb03b0858003c965c3) + +foo + +Change-Id: I6e175b3f3b031535488660d45dbb62b998d47e66 + +related tdf#93676, we want to export all significant digits + +The code comment mentions correctly that we want to show all significant +digits but a value of -1 means that the last digit before the decimal +point is rounded away. + +Change-Id: Id91a6076e37629502281c5dda426018f93d1e465 +(cherry picked from commit 442eb1ab9d8c1ad970993ef6c8a49e89601b7432) + +related tdf#93676, also fix chart::CommonFunctors::DoubleToOUString + +Change-Id: I8d63d942c7cb7876b864a9720e9a8adbc7345172 +(cherry picked from commit bb5d638065590cba700ff46f5a0a1ffbe03b6f1a) + +Related: tdf#93676 in msword chart appears with axis positioned between ticks + +(cherry picked from commit 694419d813c14f6135aa4463d77f72c3a24a5cc5) + +Change-Id: Ibd16d255a45a220faf7681a74785549c32969f78 +--- + chart2/qa/extras/chart2export.cxx | 9 ++ + chart2/qa/extras/data/odt/axis-position.odt | Bin 0 -> 21224 bytes + chart2/source/inc/CommonFunctors.hxx | 8 +- + include/oox/export/chartexport.hxx | 29 +++-- + oox/source/export/chartexport.cxx | 136 +++++++++++++-------- + oox/source/export/drawingml.cxx | 2 +- + .../ooxmlexport/data/no-numlevel-but-indented.odt | Bin 0 -> 19535 bytes + sw/qa/extras/ooxmlexport/ooxmlexport7.cxx | 9 ++ + sw/source/filter/ww8/wrtw8nds.cxx | 18 +-- + 9 files changed, 140 insertions(+), 71 deletions(-) + create mode 100644 chart2/qa/extras/data/odt/axis-position.odt + create mode 100644 sw/qa/extras/ooxmlexport/data/no-numlevel-but-indented.odt + +diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx +index 5b40560..c30ee91 100644 +--- a/chart2/qa/extras/chart2export.cxx ++++ b/chart2/qa/extras/chart2export.cxx +@@ -98,6 +98,7 @@ public: + void testPlotVisOnlyXLSX(); + void testBarChartVaryColorsXLSX(); + void testMultipleAxisXLSX(); ++ void testAxisCrossBetweenXSLX(); + + CPPUNIT_TEST_SUITE(Chart2ExportTest); + CPPUNIT_TEST(testErrorBarXLSX); +@@ -160,6 +161,7 @@ public: + CPPUNIT_TEST(testPlotVisOnlyXLSX); + CPPUNIT_TEST(testBarChartVaryColorsXLSX); + CPPUNIT_TEST(testMultipleAxisXLSX); ++ CPPUNIT_TEST(testAxisCrossBetweenXSLX); + CPPUNIT_TEST_SUITE_END(); + + protected: +@@ -1462,6 +1464,13 @@ void Chart2ExportTest::testMultipleAxisXLSX() + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:axPos[@val='r']", 1); + } + ++void Chart2ExportTest::testAxisCrossBetweenXSLX() ++{ ++ load("/chart2/qa/extras/data/odt/", "axis-position.odt"); ++ xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); ++ assertXPath(pXmlDoc, "(//c:crossBetween)[1]", "val", "midCat"); ++} ++ + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); + + CPPUNIT_PLUGIN_IMPLEMENT(); +diff --git a/chart2/qa/extras/data/odt/axis-position.odt b/chart2/qa/extras/data/odt/axis-position.odt +new file mode 100644 +index 0000000000000000000000000000000000000000..35ea152aa0d9cd16783e5b021b05a68da0cbdf96 +GIT binary patch +literal 21224 +zcmb5W1C%Apwl=!Twr$(CjjpOL+qTtZciFaWqs!{DZQFXi_j&j2^Zs$q8RO3}GBYA` +zB4TDnu9#oUxfEqUKv4kzNC4nnl0rgvh#8gw008{8|G5OPv9K|5_OLfGu(!9iFfwqq +zu(M@wwKb-oep400=-)Rz(b6 +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 +z3fD1!c`V+ +z;M@6;`g>DEchp%4764->djG;V2Pf{{t4yt8`Dmh~Mnr!xK2(@$Si(z^s_h-HPW-)h +zuPoJZouz8K&W${VvEENf{k +z9u(by`u%VY8NpOSq}!L_Wh0i$fHl>M*Ki84shstr5)4p^Ju|$qpD;WNAkX)3CWKuC +z;?TYCT-qQoXIsc20_ynU*8=YJ*{6tl6AA1KkCHF;WZ55H`1M1#62W&88bF$_<8+qe +ze0E@W>U{Qa*0y$G6szsl9q^KN_DNB*SNg+yD^lI5nAhs4By;ceCw{?7cghgo$*Yv+ +z(rrA3@)w82YdzW_hl(XdX6Y7N0?c;2AJ8mOL!&>#my72QC>@1kvaB?o +z(D(2Rf!ngRRJd;MHNFJKGd)+sES}5k8I1K7ofaY=3|=8Lf~)>_% +zD*Ni&0)fA7!oQe+COiUC6t&D&YkJAzQ^KLPqj5zb0Ri_^nys&k&agXH7bVFIj6t6u +z^9rx5I(8^GHy&-JfcTt9q+vauN%4@{wGge7MDgC*nIR|tY!hY!O#j@MTKmBjZGh4} +zO8ho^k?Rj&eq(%?9c<(<%(wh~CO(v>WEt*Dj^BN!>GA#x9OdPp<^|i +z0{s!{Z-xp(b}JBmc3b{iEKbl+tX +z_%$mP1{|to{=8SB!qf!m?*Y>LM?vaE`|Iu +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 +z3jclKqC%J(TfuB&ElaLsO1?YF +zNQxeM^}E_9JssLe$u!M5h;~dg_e%i>xhRSFpod06dPCU@4@*IsId4!Qx>xovQpxvN +zk{xi)r)= +zPW4(6BZIsXn5IViDvYK>K{srqkF-qZpO`GqP;7DhDF+o69Pba5K8!-*h2q!C8uVp% +zAieYycKL(FWPoKj-XCu$&$s(%KKd*$WU~B!{@9OF<8b1fxe{fEwYFb&0Ma;L|E9Oq +zu7@N$DWGd}?AoYx5u*PwSomVJE3yrTPhBo@%Lpzb9AQ#akY0s5pPpV5SoPg@%ap;j +zOU1k_$NB5}>4M;|Ss}z1Vf`l5pOp;W|28Z9J37e3+2F4^VRYiOZ6+h)(3KCgs2A9p +zpnjdYqxr(OSv5=Q2Xv1MjYYcUkyJ9DOnw=?%0s>SjumM%3R7Q}EslY(-N&-BE|OGv +z%ccjZFdqceCE;?*Ge56qOzZcxTe-X^uhAdSlW*XOaM-mIPDSMfPL^j+;!2a;D@udd +z$E61RspVEIYx8!sJ^uI>!rZ@4-s|Dt +z01-eXZ;=`5P(R8pm24)Ha~C0O?^(rKz#)}dC=~-GRRCPIJo2@6Ealh?(VwQKO6bWF +zo~(yI!Z+GYud7=$UGdDIEAl-a#uIA#{4ULPvFW&Se-pLE`nyQ4OU?PBo1WLE!9e+U +zp{_Te^=hSh(KVD?GE;REb+1-g*wwJ{=J#!L+dggb#I+CmSoHQ}hmxCgk#TD@O2#?% +ztNp3oqZ4QTUZjnn%Yco6)5qSC4xX~tlHse2dnUO~l>0h1&rCQmi)IDJA7SCBj8iB; +z4lza;^i@WiXjxV+tAa(XnOb!7BH)mPmFkny*t$dJl^!M|lSt+FI +zTSC=(5)HV}@o?+0>q%;TZI%BuLqa*Jqzh4ECm%o(OC+vMUma*Sw|Nt~ZFE*clR51H +zISDyH3uF<)hAGl=Oya41YU=yKJ(6fmJg3b;CL_opxBLrr|FQ1yt|Mbg<8xBezO579 +z&}i1QpiZ-DvvRXrsL4E2S67#Pec_^tXpBp*b5Ygz$?1F8^Zp2bEW;2N4-XfY-ToJZ +z#2|4_@FA_a&0ej~$D-;E;TPv2I5JK~!LC(DZCl@1amhS1r5`OWOFvq^Y;TkmC`?YQtKY<@4d+t2#+8-`wtn@^LREN{*(&WTsj +zp#@Cha;D=US$e@M_f#TieP(m4q&@@w*ZKncq8)e=$_9Qj;hxoZhyGb3dJ=V!duH`F +zmEeVhqd46)=99a)S;nnW$zuE5qxxOs-X +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 +zqi*Q>vs&5ezv5G7q0;xawwAy-gZAw&I +zanyD$Q=uVLiQ|I74>G#_WQjI)iE=(a-$?hA95vC#ndQLEZV@u6etr&&w?J+QItjn8 +z)IK|#da}s9W4X}Ber*AN>rRt=5-1J;QleH15U#E+a4&-Aojs-X7LxFdsi#oGGK)U_ +zZlcm7U2y7ZilvzTV>smZo=|myP;eQWLS%c5<)Un=x1)dym49vA1CJ!WF3k%C*-MEP +z=@)CvzFC#pq0JK1mj=|=3-*q{9#l_wy|p@H`xYU3+Hy#USD*i~T|qyTsCJ`fPa}klO;7lAAx#NNLsNY7ysHXC8dH39y?kV059vk$)zY5R{ +zBg0T^y9!VFanr_H=1PH9mQJbncvICf5gv9=*zc3GqV-cEtz#9fj@j8|a*3bcpTciS=onYZxl^DKKH{QrjxSa44cD#a}+8Yvo%+RpVE(x4F +zF!4{5vILls-q;BIx#|#b-Mzt!Urc2 +zKrgex3fQBc0&m^@*3Yo0oxJ{YY|VnVsCnXJC?sDfcNfE~iJ^EV^i2P?$>p$B4`R7e +z9hrF14RdwpU&^ohlItNBwvSe=mfB`c;WCeggSS4R)o)Jtx{pryn*ROSoQ-f{mNX)X +zJnmZmyE)|E56F3*0UBc5sxU!mTG5kgkNoKU@MaMkl+1Sa=>j26l4rz->#{**R)7zj +zVBvuEa8ce#fK3-!6a>+AKY$_brco69ic_wFxVCfSvF!7x1 +zGzF0b;Grpli6EN0i8zT8-b{ep_z`P46mW18gYs$$Xx>a_#113sgP2)>N8WHc3bWgG +z$_Q+7Q^E*Y&G6_XQMwRCoqTE34k12Zp1%=J@W+t(V`f+|TMnR^#m(1D4}`ndWz!Hs +zwQ&kk%y5!&kBbda87w5p<7jm^+ES?>0S749u|L2`7jekF4p(2PEM%|{BrmFAH%+h< +zI&SufHiBERVvW(=iz_^gMgHQ8Q-7idb!LH+ESwmcp@-x&#{i{tF>SW6>Z{C)f*|b_ +z2!t{&1qyezcH$x2ApEWO*_?>-W9> +zge~M=AB5dZZr_pR@F4xB&I?Xg=q)fX!+Gg25>XI-m>bRj1mYM4Eu_zdd!Gc%LbYq> +zb_^t8r(7T;;S7Bua^qVV2R8w<_7Cj$dvOs=B=O@=_a|ms*QN{dl#Z>z6OLdGOT@f} +zrn@T^lWVQ#^?fwrhkZBU-uzmkC`gif!A=}3f-|}6w`)Q76mU51X=kc+5S_yJYc;no +zn +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 + +literal 0 +HcmV?d00001 + +diff --git a/chart2/source/inc/CommonFunctors.hxx b/chart2/source/inc/CommonFunctors.hxx +index c7bcff1..390f13f 100644 +--- a/chart2/source/inc/CommonFunctors.hxx ++++ b/chart2/source/inc/CommonFunctors.hxx +@@ -85,9 +85,9 @@ struct OOO_DLLPUBLIC_CHARTTOOLS AnyToString : public ::std::unary_function< ::co + return ::rtl::math::doubleToUString( + * pDouble, + rtl_math_StringFormat_Automatic, +- -1, // use maximum decimal places available ++ rtl_math_DecimalPlaces_Max, // use maximum decimal places available + sal_Char( '.' ), // decimal separator +- false // do not erase trailing zeros ++ true // remove trailing zeros + ); + } + else if( eClass == ::com::sun::star::uno::TypeClass_STRING ) +@@ -128,9 +128,9 @@ struct OOO_DLLPUBLIC_CHARTTOOLS DoubleToOUString : public ::std::unary_function< + return ::rtl::math::doubleToUString( + fNumber, + rtl_math_StringFormat_Automatic, +- -1, // use maximum number of decimal places ++ rtl_math_DecimalPlaces_Max, // use maximum decimal places available + static_cast< sal_Char >( '.' ), +- false // do not erase trailing zeros ++ true + ); + } + }; +diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx +index c043fd7..7a4f2f7 100644 +--- a/include/oox/export/chartexport.hxx ++++ b/include/oox/export/chartexport.hxx +@@ -64,18 +64,25 @@ namespace com { namespace sun { namespace star { + + namespace oox { namespace drawingml { + +-const sal_Int32 AXIS_PRIMARY_X = 1; +-const sal_Int32 AXIS_PRIMARY_Y = 2; +-const sal_Int32 AXIS_PRIMARY_Z = 3; +-const sal_Int32 AXIS_SECONDARY_X = 4; +-const sal_Int32 AXIS_SECONDARY_Y = 5; ++enum AxesType ++{ ++ AXIS_PRIMARY_X = 1, ++ AXIS_PRIMARY_Y = 2, ++ AXIS_PRIMARY_Z = 3, ++ AXIS_SECONDARY_X = 4, ++ AXIS_SECONDARY_Y = 5 ++}; + + struct AxisIdPair{ +- sal_Int32 nAxisType; ++ AxesType nAxisType; + sal_Int32 nAxisId; + sal_Int32 nCrossAx; + +- AxisIdPair( sal_Int32 nType, sal_Int32 nId, sal_Int32 nAx ): nAxisType( nType ),nAxisId( nId ),nCrossAx( nAx ) {} ++ AxisIdPair(AxesType nType, sal_Int32 nId, sal_Int32 nAx) ++ : nAxisType(nType) ++ , nAxisId(nId) ++ , nCrossAx(nAx) ++ {} + }; + + class OOX_DLLPUBLIC ChartExport : public DrawingML { +@@ -145,14 +152,14 @@ private: + void exportHiLowLines(); + void exportUpDownBars(css::uno::Reference< css::chart2::XChartType > xChartType ); + +- void exportAllSeries(css::uno::Reference xChartType, sal_Int32& nAttachedAxis); ++ void exportAllSeries(css::uno::Reference xChartType, bool& rPrimaryAxes); + void exportSeries(css::uno::Reference< css::chart2::XChartType > xChartType, +- css::uno::Sequence >& rSeriesSeq, sal_Int32& nAttachedAxis ); ++ css::uno::Sequence >& rSeriesSeq, bool& rPrimaryAxes); + void exportCandleStickSeries( + const css::uno::Sequence< + css::uno::Reference< + css::chart2::XDataSeries > > & aSeriesSeq, +- bool bJapaneseCandleSticks, sal_Int32& nAttachedAxis ); ++ bool bJapaneseCandleSticks, bool& rPrimaryAxes ); + void exportSeriesText( + const css::uno::Reference< css::chart2::data::XDataSequence >& xValueSeq ); + void exportSeriesCategory( +@@ -186,7 +193,7 @@ private: + sal_Int32 nAxisType, + const char* sAxisPos, + const AxisIdPair& rAxisIdPair ); +- void exportAxesId( sal_Int32 nAttachedAxis ); ++ void exportAxesId(bool bPrimaryAxes); + void exportView3D(); + bool isDeep3dChart(); + +diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx +index 2f0853b..d0fa7dc 100644 +--- a/oox/source/export/chartexport.cxx ++++ b/oox/source/export/chartexport.cxx +@@ -119,12 +119,12 @@ namespace oox { namespace drawingml { + + namespace { + +-sal_Int32 translateFromChart2AxisIndexToOox(sal_Int32 nIndex) ++bool isPrimaryAxes(sal_Int32 nIndex) + { + assert(nIndex == 0 || nIndex == 1); + if (nIndex == 1) +- return AXIS_SECONDARY_Y; +- return AXIS_PRIMARY_Y; ++ return false; ++ return true; + } + + } +@@ -1533,9 +1533,9 @@ void ChartExport::exportAreaChart( Reference< chart2::XChartType > xChartType ) + FSEND ); + + exportGrouping( ); +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportAllSeries( xChartType, nAttachedAxis ); +- exportAxesId( nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportAllSeries(xChartType, bPrimaryAxes); ++ exportAxesId(bPrimaryAxes); + + pFS->endElement( FSNS( XML_c, nTypeId ) ); + } +@@ -1566,8 +1566,8 @@ void ChartExport::exportBarChart( Reference< chart2::XChartType > xChartType ) + XML_val, varyColors, + FSEND ); + +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportAllSeries( xChartType, nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportAllSeries(xChartType, bPrimaryAxes); + + Reference< XPropertySet > xTypeProp( xChartType, uno::UNO_QUERY ); + +@@ -1626,7 +1626,7 @@ void ChartExport::exportBarChart( Reference< chart2::XChartType > xChartType ) + } + } + +- exportAxesId( nAttachedAxis ); ++ exportAxesId(bPrimaryAxes); + + pFS->endElement( FSNS( XML_c, nTypeId ) ); + } +@@ -1642,14 +1642,14 @@ void ChartExport::exportBubbleChart( Reference< chart2::XChartType > xChartType + XML_val, varyColors, + FSEND ); + +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportAllSeries( xChartType, nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportAllSeries(xChartType, bPrimaryAxes); + + pFS->singleElement(FSNS(XML_c, XML_bubble3D), + XML_val, "0", + FSEND); + +- exportAxesId( nAttachedAxis ); ++ exportAxesId(bPrimaryAxes); + + pFS->endElement( FSNS( XML_c, XML_bubbleChart ) ); + } +@@ -1660,8 +1660,8 @@ void ChartExport::exportDoughnutChart( Reference< chart2::XChartType > xChartTyp + pFS->startElement( FSNS( XML_c, XML_doughnutChart ), + FSEND ); + +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportAllSeries( xChartType, nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportAllSeries(xChartType, bPrimaryAxes); + // firstSliceAng + exportFirstSliceAng( ); + //FIXME: holeSize +@@ -1734,8 +1734,8 @@ void ChartExport::exportLineChart( Reference< chart2::XChartType > xChartType ) + + exportGrouping( ); + // TODO: show marker symbol in series? +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportSeries( xChartType, *itr, nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportSeries(xChartType, *itr, bPrimaryAxes); + + // show marker? + sal_Int32 nSymbolType = css::chart::ChartSymbolType::NONE; +@@ -1753,7 +1753,7 @@ void ChartExport::exportLineChart( Reference< chart2::XChartType > xChartType ) + FSEND ); + } + +- exportAxesId( nAttachedAxis ); ++ exportAxesId(bPrimaryAxes); + + pFS->endElement( FSNS( XML_c, nTypeId ) ); + } +@@ -1779,8 +1779,8 @@ void ChartExport::exportPieChart( Reference< chart2::XChartType > xChartType ) + XML_val, varyColors, + FSEND ); + +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportAllSeries( xChartType, nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportAllSeries(xChartType, bPrimaryAxes); + + if( !mbIs3DChart ) + { +@@ -1807,9 +1807,9 @@ void ChartExport::exportRadarChart( Reference< chart2::XChartType > xChartType) + pFS->singleElement( FSNS( XML_c, XML_radarStyle ), + XML_val, radarStyle, + FSEND ); +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportAllSeries( xChartType, nAttachedAxis ); +- exportAxesId( nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportAllSeries(xChartType, bPrimaryAxes); ++ exportAxesId(bPrimaryAxes); + + pFS->endElement( FSNS( XML_c, XML_radarChart ) ); + } +@@ -1848,9 +1848,9 @@ void ChartExport::exportScatterChart( Reference< chart2::XChartType > xChartType + FSEND ); + + // FIXME: should export xVal and yVal +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportSeries( xChartType, *itr, nAttachedAxis ); +- exportAxesId( nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportSeries(xChartType, *itr, bPrimaryAxes); ++ exportAxesId(bPrimaryAxes); + + pFS->endElement( FSNS( XML_c, XML_scatterChart ) ); + } +@@ -1862,8 +1862,7 @@ void ChartExport::exportStockChart( Reference< chart2::XChartType > xChartType ) + pFS->startElement( FSNS( XML_c, XML_stockChart ), + FSEND ); + +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- ++ bool bPrimaryAxes = true; + bool bJapaneseCandleSticks = false; + Reference< beans::XPropertySet > xCTProp( xChartType, uno::UNO_QUERY ); + if( xCTProp.is()) +@@ -1872,7 +1871,7 @@ void ChartExport::exportStockChart( Reference< chart2::XChartType > xChartType ) + Reference< chart2::XDataSeriesContainer > xDSCnt( xChartType, uno::UNO_QUERY ); + if(xDSCnt.is()) + exportCandleStickSeries( +- xDSCnt->getDataSeries(), bJapaneseCandleSticks, nAttachedAxis ); ++ xDSCnt->getDataSeries(), bJapaneseCandleSticks, bPrimaryAxes ); + + // export stock properties + Reference< css::chart::XStatisticDisplay > xStockPropProvider( mxDiagram, uno::UNO_QUERY ); +@@ -1882,7 +1881,7 @@ void ChartExport::exportStockChart( Reference< chart2::XChartType > xChartType ) + exportUpDownBars(xChartType); + } + +- exportAxesId( nAttachedAxis ); ++ exportAxesId(bPrimaryAxes); + + pFS->endElement( FSNS( XML_c, XML_stockChart ) ); + } +@@ -1961,14 +1960,14 @@ void ChartExport::exportSurfaceChart( Reference< chart2::XChartType > xChartType + nTypeId = XML_surface3DChart; + pFS->startElement( FSNS( XML_c, nTypeId ), + FSEND ); +- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y; +- exportAllSeries( xChartType, nAttachedAxis ); +- exportAxesId( nAttachedAxis ); ++ bool bPrimaryAxes = true; ++ exportAllSeries(xChartType, bPrimaryAxes); ++ exportAxesId(bPrimaryAxes); + + pFS->endElement( FSNS( XML_c, nTypeId ) ); + } + +-void ChartExport::exportAllSeries(Reference xChartType, sal_Int32& rAttachedAxis) ++void ChartExport::exportAllSeries(Reference xChartType, bool& rPrimaryAxes) + { + Reference< chart2::XDataSeriesContainer > xDSCnt( xChartType, uno::UNO_QUERY ); + if( ! xDSCnt.is()) +@@ -1976,11 +1975,11 @@ void ChartExport::exportAllSeries(Reference xChartType, sal_ + + // export dataseries for current chart-type + Sequence< Reference< chart2::XDataSeries > > aSeriesSeq( xDSCnt->getDataSeries()); +- exportSeries(xChartType, aSeriesSeq, rAttachedAxis); ++ exportSeries(xChartType, aSeriesSeq, rPrimaryAxes); + } + + void ChartExport::exportSeries( Reference xChartType, +- Sequence >& rSeriesSeq, sal_Int32& rAttachedAxis ) ++ Sequence >& rSeriesSeq, bool& rPrimaryAxes ) + { + OUString aLabelRole = xChartType->getRoleOfSequenceForSeriesLabel(); + OUString aChartType( xChartType->getChartType()); +@@ -2048,7 +2047,7 @@ void ChartExport::exportSeries( Reference xChartType, + { + sal_Int32 nLocalAttachedAxis; + mAny >>= nLocalAttachedAxis; +- rAttachedAxis = translateFromChart2AxisIndexToOox(nLocalAttachedAxis); ++ rPrimaryAxes = isPrimaryAxes(nLocalAttachedAxis); + } + + // export shape properties +@@ -2181,12 +2180,12 @@ void ChartExport::exportSeries( Reference xChartType, + void ChartExport::exportCandleStickSeries( + const Sequence< Reference< chart2::XDataSeries > > & aSeriesSeq, + bool /*bJapaneseCandleSticks*/, +- sal_Int32& rAttachedAxis ) ++ bool& rPrimaryAxes) + { + for( sal_Int32 nSeriesIdx=0; nSeriesIdx xSeries( aSeriesSeq[nSeriesIdx] ); +- rAttachedAxis = lcl_isSeriesAttachedToFirstAxis( xSeries ) ? AXIS_PRIMARY_Y : AXIS_SECONDARY_Y; ++ rPrimaryAxes = lcl_isSeriesAttachedToFirstAxis(xSeries) ? true : false; + + Reference< chart2::data::XDataSource > xSource( xSeries, uno::UNO_QUERY ); + if( xSource.is()) +@@ -2456,6 +2455,21 @@ void ChartExport::exportAxes( ) + } + } + ++namespace { ++ ++sal_Int32 getXAxisType(sal_Int32 eChartType) ++{ ++ if( (eChartType == chart::TYPEID_SCATTER) ++ || (eChartType == chart::TYPEID_BUBBLE) ) ++ return XML_valAx; ++ else if( eChartType == chart::TYPEID_STOCK ) ++ return XML_dateAx; ++ ++ return XML_catAx; ++} ++ ++} ++ + void ChartExport::exportAxis(const AxisIdPair& rAxisIdPair) + { + // get some properties from document first +@@ -2519,12 +2533,8 @@ void ChartExport::exportAxis(const AxisIdPair& rAxisIdPair) + if( bHasXAxisMinorGrid ) + xMinorGrid.set( xAxisXSupp->getXHelpGrid(), uno::UNO_QUERY ); + +- sal_Int32 eChartType = getChartType( ); +- if( (eChartType == chart::TYPEID_SCATTER) +- || (eChartType == chart::TYPEID_BUBBLE) ) +- nAxisType = XML_valAx; +- else if( eChartType == chart::TYPEID_STOCK ) +- nAxisType = XML_dateAx; ++ sal_Int32 eChartType = getChartType(); ++ nAxisType = getXAxisType(eChartType); + // FIXME: axPos, need to check axis direction + sAxPos = "b"; + break; +@@ -2568,6 +2578,23 @@ void ChartExport::exportAxis(const AxisIdPair& rAxisIdPair) + sAxPos = "b"; + break; + } ++ case AXIS_SECONDARY_X: ++ { ++ Reference< css::chart::XTwoAxisXSupplier > xAxisTwoXSupp( mxDiagram, uno::UNO_QUERY ); ++ if( xAxisTwoXSupp.is()) ++ xAxisProp = xAxisTwoXSupp->getSecondaryXAxis(); ++ if( bHasSecondaryXAxisTitle ) ++ { ++ Reference< css::chart::XSecondAxisTitleSupplier > xAxisSupp( mxDiagram, uno::UNO_QUERY ); ++ xAxisTitle.set( xAxisSupp->getSecondXAxisTitle(), uno::UNO_QUERY ); ++ } ++ ++ sal_Int32 eChartType = getChartType(); ++ nAxisType = getXAxisType(eChartType); ++ // FIXME: axPos, need to check axis direction ++ sAxPos = "t"; ++ break; ++ } + case AXIS_SECONDARY_Y: + { + Reference< css::chart::XTwoAxisYSupplier > xAxisTwoYSupp( mxDiagram, uno::UNO_QUERY ); +@@ -2869,6 +2896,17 @@ void ChartExport::_exportAxis( + FSEND ); + } + ++ // TODO: MSO does not support random axis cross position for ++ // category axis, so we ideally need an algorithm that decides ++ // when to map the crossing to the tick mark and when to the ++ // middle of the category ++ if (nAxisType == XML_valAx) ++ { ++ pFS->singleElement( FSNS( XML_c, XML_crossBetween ), ++ XML_val, "midCat", ++ FSEND ); ++ } ++ + // majorUnit + bool bAutoStepMain = false; + if(GetProperty( xAxisProp, "AutoStepMain" ) ) +@@ -3179,12 +3217,14 @@ void ChartExport::exportDataPoints( + } + } + +-void ChartExport::exportAxesId( sal_Int32 nAttachedAxis ) ++void ChartExport::exportAxesId(bool bPrimaryAxes) + { + sal_Int32 nAxisIdx = lcl_generateRandomValue(); + sal_Int32 nAxisIdy = lcl_generateRandomValue(); +- maAxes.push_back( AxisIdPair( AXIS_PRIMARY_X, nAxisIdx, nAxisIdy ) ); +- maAxes.push_back( AxisIdPair( nAttachedAxis, nAxisIdy, nAxisIdx ) ); ++ AxesType eXAxis = bPrimaryAxes ? AXIS_PRIMARY_X : AXIS_SECONDARY_X; ++ AxesType eYAxis = bPrimaryAxes ? AXIS_PRIMARY_Y : AXIS_SECONDARY_Y; ++ maAxes.push_back( AxisIdPair( eXAxis, nAxisIdx, nAxisIdy ) ); ++ maAxes.push_back( AxisIdPair( eYAxis, nAxisIdy, nAxisIdx ) ); + FSHelperPtr pFS = GetFS(); + pFS->singleElement( FSNS( XML_c, XML_axId ), + XML_val, I32S( nAxisIdx ), +@@ -3192,7 +3232,7 @@ void ChartExport::exportAxesId( sal_Int32 nAttachedAxis ) + pFS->singleElement( FSNS( XML_c, XML_axId ), + XML_val, I32S( nAxisIdy ), + FSEND ); +- if( mbHasZAxis ) ++ if (mbHasZAxis) + { + sal_Int32 nAxisIdz = 0; + if( isDeep3dChart() ) +diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx +index 878276a..ba32712 100644 +--- a/oox/source/export/drawingml.cxx ++++ b/oox/source/export/drawingml.cxx +@@ -1206,7 +1206,7 @@ void DrawingML::WriteRunProperties( Reference< XPropertySet > rRun, bool bIsFiel + PropertyState eState; + SvtScriptType nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage( Application::GetSettings().GetLanguageTag().getLanguageType() ); + bool bComplex = ( nScriptType == SvtScriptType::COMPLEX ); +- const char* bold = NULL; ++ const char* bold = "0"; + const char* italic = NULL; + const char* underline = NULL; + const char* strikeout = NULL; +diff --git a/sw/qa/extras/ooxmlexport/data/no-numlevel-but-indented.odt b/sw/qa/extras/ooxmlexport/data/no-numlevel-but-indented.odt +new file mode 100644 +index 0000000000000000000000000000000000000000..e435acdad35e581e1eb627d054951a4c81697712 +GIT binary patch +literal 19535 +zcmeFXbC9O7wlCb%wx?~|wvA~|+qP{?+qP}nwr$(y*R#L9Z=G{$pHp@JySM5-RjGw! +ztxA4x-ehGZza)WxkpTd}0RR^CNJX^<8K6l40091$Zxw*0simQVtBs+qjg5t=zOI9* +zwH2+Cl>v>luDz)}jkS%Tm4UUsqotvh1C4{Bi^H$~0N`&y`*x;i;%KR7 +zrE6+oPwVh6md3`)IOLa%C=4V9*M}hCx@al8@$`gseU^bgCmis4@CDXC_`ocf5e)eeIq2kSHvvJO|xc0Hy +zndW#2w|UQLR)WH?&cqCFoGOPkl^@12xyCkh3x^DRec3HcKa>c4p_%mo#Q?|KrwStw|R3T5? +zMN^cNBB$Y@)Y3FL_2mW6i=wni*D-lObyA^SV{&y#VRtsjyg}{BbhU76TusINAw1)2 +zo5^jxgH1YZ+JxO23w-AjIor6DY{5(3a^n1Q +zicG2$r#@%KvbftAA23-C@edRL>K3>ed$$Gbb)%p0;?d~|&rBM9A52zG_* +zB|uY>A&`ghNnlKSq7p2|czAZ@o#dhbC3*cg_w+Ri<^0w#_pqb!!g>Oz1(n}-mBYE> +z-ec@_znMYp+#lSPvmK7y7{wMfPZdN7iGPW +z>!{sH2?`k`wGGo{Q=!R)rTGYR<;ahM0Q%8}&^>s!S|pv+GW$o?72qF1E63EukSgD3 +zY(QW2Xmg_wPNgpwS6l2!F~7v|doQCu3?=aD1cdh_4kB*nkg;|-W;(f_Fi1|6#hz&; +zM3*$q(iOjp0QZ!YZH%`CP6T(@o8rf_mMJql>;=LxAYz&Z-h}K(>a4Ahuenw3<_)3A +zYb|c|)UpH-rqF5s`ML~GG@`6=LDtq +zkN2CZDcr9{o{!J9BHqvSG)`1iG5Xp{gt$d@5#3S}uOegWac-;_dx`^;wHeDV{i>qyNRgV>SvWXGA4MaZR{3^!jr4utvE?75WHYJU=S +zxT;HQ=BL*LAMW`@Nwd)(6PP2mFcf(_s_~3Gpe(F5EKQCpW*^gqj@atf5=s}R=6Z!XetXXO@9AX+~J7&*n{`za9oe~T&Y +zGpk+*e-_e^ggqoKSIgZUC^Kz>dSF&Ve=`1l6uywtK|cpcR2%LG)tlM@94dmx)qSY^ +ziWe8oW0p5~ +z4hXnrebfvH;wA{G)-_Ht^Rp5TclVWYGGWI}MYjn2>}eokv{Jcj){087=h*EDbO@$5 +zfU=-#zZ96{*RD|fD7taK26X~!lH@^;cq!G0erN@$*5{N#DfB__M+_D>69ir}obOW( +z4kIEkW4(<$(?(^2G7+`1S6KO)`cwOKqTXv+wYxkO#xDOfZgN@!g63O|@FrX?9^WPk +z=+fabHB8VC^bCud2Uc^W-9%7XTRInx)!yw@@cNnUMkFV1-bGM+Z8^6e6qP1S+5X{R_HX($~^Z4@t!&z6&uZdx;@ +zB%!fqpuB|)UmNqkNu#{jxM5{P{pa>_Sg-x#;$p6{;?*W_-abFBDJ0+Z*M9B&5=Pu} +zb)Kc-og7P8X+?eY7)HfpgFe42YgY#f7p7O`U?%U;R*j>I45_8_mGz4%N8CfMas2od +zcBE3ptI^TX?(%YZ5Qw6zOh1pPkpmg~v$yV)mvXaB#KMa4k{dy#bWxN1__XB3yyeat +z;FlyAxLTpE(<>+dfYtZ8=D*)E|8d|kbkO~~Uq-}@S*6pV1wMH~3blb~H^ZO^qC}L^ +z#5T$o$vemBf9aZ_W1>&dd8YG7YEvDqigSeZhT3=bdG{c*9trMcbUQRCt7io)Kk-3O +zn=4s3;~g0Vs+b12`deen4jTB=%qS44k7dM4VCM(f;0#% +z6Hg2Z#MxPyJ=mXJRal}6cy9giL^e~vk3C|?*Z@h;J6O##6_J1hhJpUcAtd03;&goN +zorbYImRP@Np7SFs6=zH?T%U=X*1<5}q7r6%8N3Cy<)Eh|=(FN#Vo#eY{q>-BBPXI3 +zEe!#**->b__m{lXE`aC{8K-y##5yv_IJTZWrEJQO6KXv3GadsxuMp7I*!&gfE(WdH +zTa!W71nuDqnz!U__tuwJie?6ddO#4F>B9ChTo@0Wqn1D<34tbM=exoU``gP(<)OR2 +zC+XMd!A+3YX^an`0AZ$yOg$+dyA;4dS1SBb+kJyx!q_;fJSIv0$&2?2b+MjAP2wMu +zK0{k8&-^*TVjmE(q6_8adn747afA-K&ugbm4aK4(2wmnQ75u`p4$r)yQ=e1eLhtSkA6gDMlOafZQ9`$EN+(jxibzZ1DiX&eyZ3K +z#*!^_(^uwDnqz^KcW@y!QKNtzY+lE!Ra!hif9DRV=J-4)AOHXv@c%S-pufW{dqW2Y +zQ!8Wpzw>87ZNmz4=x67ZLa`8JJ)faOJ(YU7uz$XkC<`$H(a$_nclvd1BG%Ll)$#FE +zf=~cV_8+lK6L8ajme{1y@>{4EhGLl4c_z3z+BwEf;;K1fk}C%QCke$HEA~c{Q_i1< +zj~V(&m0W=M*prR+XG@EAl-*QToaId!oEA&U)(4mIUQTJwZIK|tY3iL&QWX-vAd`lF +zzNe4q-MVoeK`HMGanue6L)8|S6Fm7y^HOGNYlf!~%SM*;MK;=d7PRZ}@S;Ii!c=PS +z9;=RH?*FF#X_N2_)-F3e0uv+iD)&k5PYFWLCz;JsAvY#DD +zoSm^+Z%%6G+c}Op9+$S{FV)U?9xs>jCfV!^u1-`~^lt$dEoF6G^t$bcNW|2?dQ1aj +zPC%D>_PXI2vpKL8@%^sM4}d#yIj;@f27+*34-%el3mB!0({>DLI;F#m?CB&ce_=uK +z_TR)0QbBsDKiwyrQC4McTwh +zvZ8T9a_F_Fr_><7oFvs+Ztl#Cd|pd$vm|0RxACM=B#|nO!+%mrP}nl8^Wx6Qv>U4` +zR$=2+OV!tomyGxw8usG8B|)C5xdI582-rq)%^#XE~Y3 +zp}d84HFEe$|KaZE;yJ|7@PTG1ecCJ%`9#ZcLoiKs74AJyAq-m)+bOa(bp@@0XCWq +zr|78qAZ5dxa-;1vWn@{UYs`l+vjS +z&N9r9d?($`GV^GNJTOv;=jEUpt8KX8VvpSknGxdyEYP2ji8AK+=ic}jX{>z7mu~pc +z#)fz)eitYZ*&UuMG+Vw48>QV5P;jU_8ff9PG?H{bg;0&{%Ci#PpJWS>%^toN2n$v4 +z5UudE3PnQ>q{c56qfW7RI1X*eOsT~Wh8Ye%mr`zWg}I2qQX@USRrT3tXluvT*x8Lt +z=%UW<;ZViw0;L>w8v_(RC7MRD2RX(_ARKq5{%3OUmcv7o$xm45{k-KzFWW!5d-tgc +zeb#iY;GxBj-BPG1X6UVcC#FOQ=!zmLFjZVqk0L(BUo@n}gEkm~CC^$&36L|9#zEZvxv`s`*G +zya4`Yq`mGGO9NcE1&Fg3@Ng&t5b^R +z=CSi7FK=McI+eFYj;Qmp)+p@aXM|96r(4FA^T|uO>y>YaCaYZ{LDm!~ueM5WKH+LrY +zT1>Ba7@o)xJRu@kB6;3Id89MPXC_RMgR*%ytTWGTCht`y?^JG|O84()#{;|yg{M`F +zIkT8u?;BTN&$n$!Q!@Tt8KBxhJ%4nsZP7dsL9>E-j&!e+OzypyUg`djt9$erBk`FJv;MbOzLv>mQw<(7z0}m +z!c;dD(24zXN(@!ZSU*mvd}6O&>Zx)3y45{gHwi%vOb@dJtE>~g_}&!1>Z`Gtw*0=j2nEl}N**0O#++Hd`cbDEfkImdLvQew1X +z0O=)u$#6H4C)HZg)*3@3k@gL{b85j;o1%zwK8OgHqqIvjS=K~YwjX+!%4h``LZVGi +zl{{xH^UaG3kx_S;SIDjWPP6x%o!QI6hFrR0GGs#tc`sbc=D~2JT!M?+VBt8bk__(m +zo}QM8jLwRcl25XG#;#~?b|y>GfvPIcgewlD1_j+!$dRJRVc%S{3#@+xliXf#jw27$D&*EolF9a{E8p{Y`HFS34sMYh4FJyZ=qA?@YR*p6>sy)!#n;&sJFf +zriV6m*2Z>*_V)j?<-fzk-a*&F@jux8yZqDN8-)LgiLSoBp@rc$wAOaC`i^#X|IAH& +zC-=YOtiOPMhgtvl{(GqZU3YA(Z5(a>BKJRljr;BQzjnveQrFnfo>sur!BW@8{-4JG +zZY+O;J4;^Lv#dj9ZcQX&1U!!(p|>J&H{F$N(XLN;++iCWCE2x*x{dN3e;V;(eEA|Eq(%cA{IObPBnKE1@8sBfaxQj%O|+%EOq9OnjZwg}^O(itvgPunroPa3 +ztLmMEEchn#j9;UV>ThwCM63S(X7x`dvmieJ0Q|piYX19k)z5GEq=gmvsl{bPX#W?E +z-$8Oke2-Nh9(2%^XK3&l^0Hg%uQ(iv3y4-Qoqq9{ZXuo0#|zQi#uFw-v-))l{m-ws +znq>>wNfc4=8JF^9Om9Pw?8k_nO1-SNsM`$7vxPx&CTgMBrR?D+y3N_p0-xD3lU$(# +zJc-%aC!dI=ksq<|E3~3T>P}$QMh~UQ?`rxv<4=9Ar&e(dhE>PE=x@XfC^${RDNfb} +z2Nbu|^L`$%*!BlSb-!oEA*Bb0utUEI+G!VuNBC9ZU)8vG>!hFZK_As=)Qe&~-(ul{ +z!|m&_WfowbSm4vpocYY(mh;7<+Pki13@tj4ho>Pd37Ep5*q!=MlLvHxeeqV2sxXsa +z!MiYMY*CJTBuYm7DfH}RbMDXxYC-7w^m)bn3-1FM;UBDTczOQEqsQNSGkXVD3&VdL +zJT5#XqxOcK4mZ2}hD9)+dId?gq8yCTH5W9S)`m+jOUlo*pu+(ba^>5lV*tesl^0KY +z(Z=n3dH@);T%cW8>TXBFR-Tu}dnLEJ=t%wGZV>oEaAU>9H8qJtYPx&pZMs7$@^0-%ion0(2L@u!| +zElo{L_0|yp@9Z@gs4g2LP}3wh3Rc2-vf +zS1EVIUqvi4%4sw5nh0o3<^}g_FCi1m&2Da~B`aMTxdME!Cw#F#9+dfwm&F`AWnrCY +z&-FVd8Ps8x`PcO%65?DqhY+nawQ3t|h9mr-t02lbC}cC?(P=}t3XW#SFEf!>w8$Z`z$G>68Rn7oPg==r;=2sR)1>HHt0 +z@tsH1gklimw%?w2FbZypp8(#H7Zr|~4$4$i;ab46oi&yj|73A8(z-oJ>#f`lY20Em +z-#(s_nml}ro#F!^08%E(RcKrl#5Pj{r<4r)I(Z%D5k0iF#A;`+@o%^a73U>4QtMp| +zGFEHJIvtbf%@?_yz9DQ@-{8;-zR~j?)LyZbhaIBwtQNk|1zH-kInk>mE`%luljl~^8P@*-1_|N +z`ds6Euj)y)Z%S#gPit%X2!89h>V=<+DW)cbXJjIBbIL0Q!McCt+~JR&3w&Eix!Mnh +z@+YYcZ_ocRXdx}NdY9F7T36-!@l)>N{x +zQu%Y!)#)pq{(gnxh#~)py_x4wk@U8R&HW~~~RfqreN +z&3&an#vM$sF2e|arZ6Ce;r<*c*;qhg8=DMZtlnLB=?=Ie#Qo4XV^vl$r$enh7M+bJZkrKF?=jMYXvF +z<6ZCLI*3mz6N{OSspU3Vgyxj`A?|-nB?bF*z`Rzn90#zFl%P(vx-@GQ*U!pNA?A-omXW6(i6e?O +zgkm$j4hF76_Vm@Dur|X3;iyXEg95CwkEOYZ_2pqx^eMC{-JE}AwPL%&GE3XevP@Id +z3?hvU0mf2X?!`^*SBJD7KK6bF*84tmm?AmEq +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 +znk1=ZKP9M0z3))*GLICiI2I +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 +zM(N`Sa_E +zm`|9zcISQI>g7sqm7eT!31bNTWf;A9XMc@tHUKOb8Hl|09{pRJUr~s2D3Piv;;_}a +zePq_l%{n#KR2c2xBCcNp`!(6to79DhD7mo#W0|4$k8lQ$rQeJb4shK$|L;GrgI~Nc +z0lU_+l4PONQI0aJ+Z=T2>D)E4b5C_$@FZZ@)Hk}KrWQyD8?!>V+<_7Fgd>m1+9Cm +zuFaAwA}gen>K;))_W&kg>jqBZks89^pdV}jP(xOBgGWtQ1`Ek>koSh$`S*6E*oBQp +z;hec7PR__(WrJVCI=x~iWUGLzKgAn)Vm!!r*E7(r-@<^}WSvJqIy1tIV4ksEX2Kt6 +zvg?3t-Y;nu+q@?cd0x$a_0{A9Re{!QKHC=pTv9gP@?=n;K0ApxC(WahFSJxl-dL2 +z*lMPU2jiT&-rC}vLehfqjKGc?J)9b3#U0}1epUG$Ic}m^dvNCNwL&wL+Z(~fYNj#$ +zV?Ua~>=-9D*^}$a`HFNT%C4X%M`M{@rs&uEqK*(C7ZvA0V+e6{$EkhMw;uc3IS?rK +z1Gnr>dbiXw-cMl{N@pBe-;7qgQ5Up;6RTP3cnHRmt1izP#jjL#G7m`$Lh$G&)t7`q +z61X#JnXDq1CEyhbYi48fk+U9kf)KwPH0)G@m^4JtsRXC)I5$FN9VNNmSzFws-^TkE +zY;R?IIM0f#%R%sfC~D!y|W&Hsjiu(}BQ|FJ@EY5m_l(7PfAD +zxdlpkLBI;sLR>bySTUCexZbbii@QH~>4a~w$~q=z$zgy~8TQ&C&s_vcYALwSGB>vJ +zGm-7C146Ak^+yl$HOstV`;o0o(T!xHrJoy9%rn2&az4;j&kPd*;Ib*HV3aTCI?dMD +zj8))8qtpLPA6!Or=@{7R?R(iqgJ_^;en&D8BGPwddg8&!O@vF2byR`W|zqG_@=XriK;+>|+NmDpyYS+?QQ$ed8=9)Tl# +zNx1yI4)lvp`83vHbE1FW6!a6x@^jog^OW)oZ?;ui;DsJUHbpk*U$+hlei1iTRo3m!c)8Tsa0Y`5LKA}fyRiZZPvHM?^xM^qM6l}Z6*q@2>CRu +zIU3D%v3UVKV%GsR=51qvrsmiP9Ui*5OC8SLK7euttviG;0am06DW8gB$=X(r{o(;> +zS+tTpN|wgZOA=WLLhqbUKjBn5mwdPqQC>H0Wn<)|>{TwS3^0cRKnbPVIKaZZ2=;Yh +zmOc_$(BwAs>e8hdF{q)eSSB6eNGq!lVcF&>AqcryYG=Plc@oN}h~yzA-a%9gyf=7( +zjEKlE6lehfy0Da_jLg8w0#E@@?D?=FW8TQa=%feGorA!htlW2_1> +z329AS(XS@!3gArQpyb;)5OO0`N%^$|uWb5gKEl_d6Oi{Pv;JM9UQA-vC~ywx~AKUPy( +zrVZ9}yxdk*aguxVLL$=JDgibH0QZ5!eg3}{eSP&+&FOBzk-d$M6JO`w`O&&r`P{R2 +zb3br)+3YG<5t$`?Cdqo^2CpZZG)$i}m}Ry%#AdQuCuL?mnN<4V2$$=Lj^F!?k5_-+ +z{V`^D)z`axdf%?O>YXk4+x5IG?CZB=!_Q~U-k*zl-|YH_=W-Zd)ny9@nFs&w#I5~5 +zsXHx0rFY7FZdsE_X>JykM%?q}T$uU!_LOX)A4k=Fb*^V0Zhf`j0Po@*D_IuXJ@EJ} +z^83Rwp);|o*mmvUXl`%eh|_#r|7q)q{cTBgZTn<$J3Y(<4MS#bli+3SlAfY;yg2P- +zUeoQ>H`RDP_RT*dByu8NaDwc#}}=HS?CLVN<4ip5amohGPut( aLRSpace ); +- } ++ // put back the new item ++ pTmpSet->Put( aLRSpace ); + + // assure that numbering rule is in + if (SfxItemState::SET != pTmpSet->GetItemState(RES_PARATR_NUMRULE, false) ) +-- +2.4.0 + diff --git a/libreoffice.spec b/libreoffice.spec index 4e0eb3c..e1671dc 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -333,6 +333,7 @@ Patch24: 0001-time-stamp-object-selections-and-use-newest-as-ref-f.patch Patch25: 0001-Resolves-rhbz-1256843-no-obvious-means-to-close-temp.patch Patch26: 0001-implement-undo-of-delete-impress-cell-contents.patch Patch27: 0001-core-fix-build-with-system-boost-1.59.patch +Patch28: 0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice