From 191a4527b1d3201c147d5eb44cf818c686d7404f Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 19 Oct 2015 12:20:36 +0200 Subject: [PATCH] update to 5.1.0 alpha1 --- .gitignore | 3 + ...f-93675-to-.docx-as-much-as-is-possi.patch | 1328 ----------------- ...0-presumably-using-startcenter-as-ge.patch | 29 - ...6-msword-wraps-slightly-differently-.patch | 49 - ...56843-no-obvious-means-to-close-temp.patch | 786 ---------- ...07-enable-CaseMap-property-in-impres.patch | 222 --- ...05-don-t-copy-palettes-from-shared-t.patch | 599 -------- ...gn-to-affect-multiple-standard-pages.patch | 178 --- ...ult-to-as-character-caption-contents.patch | 817 ---------- ...ppc64le-has-both-these-dirs-but-jawt.patch | 27 - ...-control-over-enhanced-shape-control.patch | 663 -------- ...ze-width-and-height-for-impress-draw.patch | 370 ----- ...nt-save-slide-background-for-impress.patch | 359 ----- ...ent-undo-for-equalize-marked-objects.patch | 26 - ...undo-of-delete-impress-cell-contents.patch | 79 - 0001-never-run-autogen.sh.patch | 10 +- ...33420-handle-inexistent-cond.-format.patch | 97 -- ...t-selections-and-use-newest-as-ref-f.patch | 124 -- 0001-use-far-simpler-size-group.patch | 51 + ...6-msword-wraps-slightly-differently-.patch | 61 - libreoffice.spec | 54 +- ...fice.org-2.4.0.ooo86080.unopkg.bodge.patch | 14 +- sources | 6 +- 23 files changed, 85 insertions(+), 5867 deletions(-) delete mode 100644 0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch delete mode 100644 0001-Related-tdf-72880-presumably-using-startcenter-as-ge.patch delete mode 100644 0001-Related-tdf-93676-msword-wraps-slightly-differently-.patch delete mode 100644 0001-Resolves-rhbz-1256843-no-obvious-means-to-close-temp.patch delete mode 100644 0001-Resolves-tdf-49407-enable-CaseMap-property-in-impres.patch delete mode 100644 0001-Resolves-tdf-89905-don-t-copy-palettes-from-shared-t.patch delete mode 100644 0001-allow-slide-design-to-affect-multiple-standard-pages.patch delete mode 100644 0001-default-to-as-character-caption-contents.patch delete mode 100644 0001-f22-openjdk-for-ppc64le-has-both-these-dirs-but-jawt.patch delete mode 100644 0001-implement-dialog-control-over-enhanced-shape-control.patch delete mode 100644 0001-implement-equalize-width-and-height-for-impress-draw.patch delete mode 100644 0001-implement-save-slide-background-for-impress.patch delete mode 100644 0001-implement-undo-for-equalize-marked-objects.patch delete mode 100644 0001-implement-undo-of-delete-impress-cell-contents.patch delete mode 100644 0001-rhbz-1233420-handle-inexistent-cond.-format.patch delete mode 100644 0001-time-stamp-object-selections-and-use-newest-as-ref-f.patch create mode 100644 0001-use-far-simpler-size-group.patch delete mode 100644 0002-Related-tdf-93676-msword-wraps-slightly-differently-.patch diff --git a/.gitignore b/.gitignore index 3d161c2..1338dbf 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,6 @@ /libreoffice-5.0.3.1.tar.xz /libreoffice-help-5.0.3.1.tar.xz /libreoffice-translations-5.0.3.1.tar.xz +/libreoffice-5.1.0.0.alpha1.tar.xz +/libreoffice-help-5.1.0.0.alpha1.tar.xz +/libreoffice-translations-5.1.0.0.alpha1.tar.xz 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 deleted file mode 100644 index fff20ec..0000000 --- a/0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch +++ /dev/null @@ -1,1328 +0,0 @@ -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/0001-Related-tdf-72880-presumably-using-startcenter-as-ge.patch b/0001-Related-tdf-72880-presumably-using-startcenter-as-ge.patch deleted file mode 100644 index 17ab102..0000000 --- a/0001-Related-tdf-72880-presumably-using-startcenter-as-ge.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ac33ef3a4abe73c65600e1f199d25e1a1f0080db Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 8 Oct 2015 12:38:06 +0100 -Subject: [PATCH] Related: tdf#72880 presumably using startcenter as generic LO - target will work - -for the gnome case - -Change-Id: Icb5ad2d50d672b35783720c100a408fa3e5cb63e ---- - sysui/desktop/menus/startcenter.desktop | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sysui/desktop/menus/startcenter.desktop b/sysui/desktop/menus/startcenter.desktop -index ed333b6..f0d2b63 100644 ---- a/sysui/desktop/menus/startcenter.desktop -+++ b/sysui/desktop/menus/startcenter.desktop -@@ -23,7 +23,7 @@ Icon=startcenter - Type=Application - Categories=Office;X-Red-Hat-Base;X-SuSE-Core-Office;X-MandrivaLinux-Office-Other; - Exec=${UNIXBASISROOTNAME} %%FILE%% --MimeType=application/vnd.openofficeorg.extension; -+MimeType=application/vnd.openofficeorg.extension;x-scheme-handler/vnd.libreoffice.cmis; - Name=%PRODUCTNAME - GenericName=Office - Comment=The office productivity suite compatible to the open and standardized ODF document format. Supported by The Document Foundation. --- -2.4.3 - diff --git a/0001-Related-tdf-93676-msword-wraps-slightly-differently-.patch b/0001-Related-tdf-93676-msword-wraps-slightly-differently-.patch deleted file mode 100644 index 2771111..0000000 --- a/0001-Related-tdf-93676-msword-wraps-slightly-differently-.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 1ff5ecda9ccfcf3e65e90c404db93fcbbefb889e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Mon, 7 Sep 2015 16:37:22 +0100 -Subject: [PATCH] Related: tdf#93676 msword wraps slightly differently than us - -Change-Id: I91ba41cb052c38aa3b047cf079090b01bbe93b39 ---- - sw/source/filter/ww8/wrtw8esh.cxx | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) - -diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx -index 763fb44..fd6dfbc 100644 ---- a/sw/source/filter/ww8/wrtw8esh.cxx -+++ b/sw/source/filter/ww8/wrtw8esh.cxx -@@ -803,6 +803,19 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const - - SwTwips nLeft = aRect.Left() + nThick; - SwTwips nRight = aRect.Right() - nThick; -+ SwTwips nTop = aRect.Top() + nThick; -+ SwTwips nBottom = aRect.Bottom() - nThick; -+ -+ // tdf#93675, 0 below line/paragraph and/or top line/paragraph with -+ // wrap top+bottom or other wraps is affecting the line directly -+ // above the anchor line, which seems odd, but a tiny adjustment -+ // here to bring the top down convinces msoffice to wrap like us -+ if (nTop < 8 && !rFrameFormat.IsInline() && -+ rVOr.GetVertOrient() == text::VertOrientation::NONE && -+ rVOr.GetRelationOrient() == text::RelOrientation::FRAME) -+ { -+ nTop = 8; -+ } - - //Nasty swap for bidi if necessary - rWrt.MiserableRTLFrameFormatHack(nLeft, nRight, rFrameFormat); -@@ -811,9 +824,9 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const - //(most of) the border is outside the graphic is word, so - //change dimensions to fit - SwWW8Writer::WriteLong(*rWrt.pTableStrm, nLeft); -- SwWW8Writer::WriteLong(*rWrt.pTableStrm,aRect.Top() + nThick); -+ SwWW8Writer::WriteLong(*rWrt.pTableStrm, nTop); - SwWW8Writer::WriteLong(*rWrt.pTableStrm, nRight); -- SwWW8Writer::WriteLong(*rWrt.pTableStrm,aRect.Bottom() - nThick); -+ SwWW8Writer::WriteLong(*rWrt.pTableStrm, nBottom); - - //fHdr/bx/by/wr/wrk/fRcaSimple/fBelowText/fAnchorLock - sal_uInt16 nFlags=0; --- -2.1.0 - diff --git a/0001-Resolves-rhbz-1256843-no-obvious-means-to-close-temp.patch b/0001-Resolves-rhbz-1256843-no-obvious-means-to-close-temp.patch deleted file mode 100644 index 2f2e11c..0000000 --- a/0001-Resolves-rhbz-1256843-no-obvious-means-to-close-temp.patch +++ /dev/null @@ -1,786 +0,0 @@ -From c33062fc07ac20b1ac28bd000fd3c57016d72e34 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 1 Sep 2015 11:59:32 +0100 -Subject: [PATCH] Resolves: rhbz#1256843 no obvious means to close template - dialog - -under gnome-shell which doesn't put an "X" to close things in -the wm decorations if the GDK DIALOG hint it set - -prior to tdf#72587 this was a modeless dialog and in that case -it doesn't have a parent, in which case the hint is NORMAL -and it used to get close decorations. - -easist thing to do is to remain modal so the crashes and -confusion of tdf#72587 remain fixed but add a close to it to -behave like all the other dialogs do - -Change-Id: I64450be0ad1bc7b06196e1342679e15b60fc60d9 ---- - sfx2/uiconfig/ui/templatedlg.ui | 653 +++++++++++++++++++++------------------- - 1 file changed, 346 insertions(+), 307 deletions(-) - -diff --git a/sfx2/uiconfig/ui/templatedlg.ui b/sfx2/uiconfig/ui/templatedlg.ui -index de8270c..6ed0172 100644 ---- a/sfx2/uiconfig/ui/templatedlg.ui -+++ b/sfx2/uiconfig/ui/templatedlg.ui -@@ -1,111 +1,327 @@ - - - -- -+ - -- -+ - 800 -- 560 -+ 600 - False -- True - 6 - Template Manager -- -- -- True -+ True -+ normal -+ -+ - False -- 6 - vertical -+ 2 -+ -+ -+ False -+ end -+ -+ -+ gtk-close -+ True -+ True -+ True -+ True -+ True -+ True -+ -+ -+ True -+ True -+ 0 -+ -+ -+ -+ -+ False -+ False -+ 1 -+ -+ - -- -+ - True -- True -- True -- True -+ False -+ vertical - -- -+ - True -- False -+ True - True - True -- vertical -- 6 - -- -+ - True - False - True -+ True -+ vertical - 6 - -- -+ - True - False - True -+ 6 - -- -+ - True - False -- repository -- Repository -- True -- sfx2/imglst/actionview026.png -- -- -- False -- True -- -- -- -- -- False -- import -- Import -- True -- sfx2/imglst/actionview010.png -- -- -- False -- True -- -- -- -- -- False -- delete -- Delete -- True -- sfx2/imglst/actionview025.png -+ True -+ -+ -+ True -+ False -+ repository -+ Repository -+ True -+ sfx2/imglst/actionview026.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ False -+ import -+ Import -+ True -+ sfx2/imglst/actionview010.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ False -+ delete -+ Delete -+ True -+ sfx2/imglst/actionview025.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ False -+ save -+ Save -+ True -+ sfx2/imglst/actionview028.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ new_folder -+ New Folder -+ True -+ sfx2/imglst/actionview029.png -+ -+ -+ False -+ True -+ -+ - - - False -- True -+ True -+ 0 - - - -- -+ - False -- save -- Save -- True -- sfx2/imglst/actionview028.png -+ True -+ -+ -+ False -+ template_save -+ Save -+ True -+ sfx2/imglst/actionview028.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ open -+ Open -+ True -+ sfx2/imglst/actionview030.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ edit -+ Edit -+ True -+ sfx2/imglst/actiontemplates019.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ properties -+ Properties -+ True -+ sfx2/imglst/actiontemplates016.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ default -+ Set as Default -+ True -+ sfx2/imglst/actiontemplates015.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ move -+ Move to Folder -+ True -+ sfx2/imglst/actiontemplates017.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ export -+ Export -+ True -+ sfx2/imglst/actiontemplates020.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ template_delete -+ Delete -+ True -+ sfx2/imglst/actiontemplates018.png -+ -+ -+ False -+ True -+ -+ - - - False -- True -+ True -+ 1 - - - -- -+ - True - False -- new_folder -- New Folder -- True -- sfx2/imglst/actionview029.png -+ end -+ True -+ -+ -+ True -+ False -+ search -+ Search -+ True -+ sfx2/imglst/actionaction012.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ action_menu -+ Action Menu -+ True -+ sfx2/imglst/actionaction013.png -+ -+ -+ False -+ True -+ -+ -+ -+ -+ True -+ False -+ template_link -+ Get more templates for %PRODUCTNAME -+ True -+ sfx2/imglst/actionview010.png -+ -+ -+ False -+ True -+ -+ - - - False -- True -+ True -+ 2 - - - -@@ -116,120 +332,10 @@ - - - -- -- False -+ -+ True - True -- -- -- False -- template_save -- Save -- True -- sfx2/imglst/actionview028.png -- -- -- False -- True -- -- -- -- -- True -- False -- open -- Open -- True -- sfx2/imglst/actionview030.png -- -- -- False -- True -- -- -- -- -- True -- False -- edit -- Edit -- True -- sfx2/imglst/actiontemplates019.png -- -- -- False -- True -- -- -- -- -- True -- False -- properties -- Properties -- True -- sfx2/imglst/actiontemplates016.png -- -- -- False -- True -- -- -- -- -- True -- False -- default -- Set as Default -- True -- sfx2/imglst/actiontemplates015.png -- -- -- False -- True -- -- -- -- -- True -- False -- move -- Move to Folder -- True -- sfx2/imglst/actiontemplates017.png -- -- -- False -- True -- -- -- -- -- True -- False -- export -- Export -- True -- sfx2/imglst/actiontemplates020.png -- -- -- False -- True -- -- -- -- -- True -- False -- template_delete -- Delete -- True -- sfx2/imglst/actiontemplates018.png -- -- -- False -- True -- -- -+ - - - False -@@ -238,53 +344,11 @@ - - - -- -+ - True - False -- end - True -- -- -- True -- False -- search -- Search -- True -- sfx2/imglst/actionaction012.png -- -- -- False -- True -- -- -- -- -- True -- False -- action_menu -- Action Menu -- True -- sfx2/imglst/actionaction013.png -- -- -- False -- True -- -- -- -- -- True -- False -- template_link -- Get more templates for %PRODUCTNAME -- True -- sfx2/imglst/actionview010.png -- -- -- False -- True -- -- -+ True - - - False -@@ -292,123 +356,98 @@ - 2 - - -+ -+ -+ True -+ True -+ 0 -+ True -+ True -+ -+ -+ False -+ True -+ 3 -+ -+ -+ -+ -+ True -+ True -+ 0 -+ True -+ True -+ -+ -+ False -+ True -+ 4 -+ -+ -+ -+ -+ -+ -+ True -+ False -+ Documents - - -- False -- True -- 0 -+ False - - - -- -- True -- True -- -+ -+ -+ -+ -+ True -+ False -+ Spreadsheets - - -- False -- True - 1 -+ False - - - -- -+ -+ -+ -+ - True -- True -- True -- True -+ False -+ Presentations - - -- False -- True - 2 -+ False - - - -- -- True -- True -- 0 -- True -- True -- -- -- False -- True -- 3 -- -+ - -- -- -- True -- True -- 0 -- True -- True -+ -+ -+ True -+ False -+ Drawings - - -- False -- True -- 4 -+ 3 -+ False - - - -- -- -- -- True -- False -- Documents -- - -- False -- -- -- -- -- -- -- -- True -- False -- Spreadsheets -- -- -- 1 -- False -- -- -- -- -- -- -- -- True -- False -- Presentations -- -- -- 2 -- False -- -- -- -- -- -- -- -- True -- False -- Drawings -- -- -- 3 -- False -+ False -+ True -+ 0 - - - - -- False -+ True - True - 0 - --- -2.4.0 - diff --git a/0001-Resolves-tdf-49407-enable-CaseMap-property-in-impres.patch b/0001-Resolves-tdf-49407-enable-CaseMap-property-in-impres.patch deleted file mode 100644 index 8327d31..0000000 --- a/0001-Resolves-tdf-49407-enable-CaseMap-property-in-impres.patch +++ /dev/null @@ -1,222 +0,0 @@ -From fb65ac2e3028c4fc160a47448bc44d73d282c9f2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Mon, 8 Jun 2015 12:21:01 +0100 -Subject: [PATCH] Resolves: tdf#49407 enable CaseMap property in impress/draw - -I don't see why this was explicitly disabled, works fine -out of the box for me, import/export already hooked up -in odf - -Change-Id: I5e6bdbc6a4f3cbcd97330c7d9fb33589489afee2 ---- - cui/source/inc/chardlg.hxx | 10 ---------- - sd/sdi/drtxtob.sdi | 6 ++++++ - sd/source/core/typemap.cxx | 1 + - sd/source/ui/dlg/dlgchar.cxx | 1 - - sd/source/ui/dlg/prltempl.cxx | 1 - - sd/source/ui/dlg/tabtempl.cxx | 1 - - sd/source/ui/func/fuchar.cxx | 1 + - sd/source/ui/func/futext.cxx | 7 ++++--- - sd/source/ui/view/drtxtob.cxx | 3 ++- - sd/source/ui/view/drviews2.cxx | 11 +++++++++++ - sd/source/ui/view/drviewsf.cxx | 1 + - sw/source/ui/chrdlg/chardlg.cxx | 8 +------- - 12 files changed, 27 insertions(+), 24 deletions(-) - -diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx -index 4eb009a..a023a45 100644 ---- a/cui/source/inc/chardlg.hxx -+++ b/cui/source/inc/chardlg.hxx -@@ -32,16 +32,6 @@ - class SvxFontListItem; - class FontList; - -- -- --#define DISABLE_CASEMAP ((sal_uInt16)0x0001) --#define DISABLE_WORDLINE ((sal_uInt16)0x0002) --#define DISABLE_BLINK ((sal_uInt16)0x0004) --#define DISABLE_UNDERLINE_COLOR ((sal_uInt16)0x0008) -- --#define DISABLE_LANGUAGE ((sal_uInt16)0x0010) --#define DISABLE_HIDE_LANGUAGE ((sal_uInt16)0x0020) -- - // class SvxCharBasePage ------------------------------------------------- - - class SvxCharBasePage : public SfxTabPage -diff --git a/sd/sdi/drtxtob.sdi b/sd/sdi/drtxtob.sdi -index 3e975d4..ed564e4 100644 ---- a/sd/sdi/drtxtob.sdi -+++ b/sd/sdi/drtxtob.sdi -@@ -92,6 +92,12 @@ shell TextObjectBar - StateMethod = GetAttrState; - ] - -+ SID_ATTR_CHAR_CASEMAP // ole : ?, status : ? -+ [ -+ ExecMethod = Execute; -+ StateMethod = GetAttrState; -+ ] -+ - SID_ATTR_PARA_ADJUST_LEFT // ole : ?, status : ? - [ - ExecMethod = Execute; -diff --git a/sd/source/core/typemap.cxx b/sd/source/core/typemap.cxx -index a5548a3..65f7cf0 100644 ---- a/sd/source/core/typemap.cxx -+++ b/sd/source/core/typemap.cxx -@@ -21,6 +21,7 @@ - - #include - #include -+#include - #include - #include - #include -diff --git a/sd/source/ui/dlg/dlgchar.cxx b/sd/source/ui/dlg/dlgchar.cxx -index a23cd80..5e44899 100644 ---- a/sd/source/ui/dlg/dlgchar.cxx -+++ b/sd/source/ui/dlg/dlgchar.cxx -@@ -60,7 +60,6 @@ void SdCharDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) - } - else if (nId == mnCharEffects) - { -- aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP)); - rPage.PageCreated(aSet); - } - } -diff --git a/sd/source/ui/dlg/prltempl.cxx b/sd/source/ui/dlg/prltempl.cxx -index 74c010e..c503c93 100644 ---- a/sd/source/ui/dlg/prltempl.cxx -+++ b/sd/source/ui/dlg/prltempl.cxx -@@ -281,7 +281,6 @@ void SdPresLayoutTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) - - else if (nId == mnEffects) - { -- aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP)); - rPage.PageCreated(aSet); - } - } -diff --git a/sd/source/ui/dlg/tabtempl.cxx b/sd/source/ui/dlg/tabtempl.cxx -index 61514ee..1189922 100644 ---- a/sd/source/ui/dlg/tabtempl.cxx -+++ b/sd/source/ui/dlg/tabtempl.cxx -@@ -152,7 +152,6 @@ void SdTabTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) - } - else if (nId == m_nFontEffectId) - { -- aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP)); - rPage.PageCreated(aSet); - } - else if (nId == m_nTextId) -diff --git a/sd/source/ui/func/fuchar.cxx b/sd/source/ui/func/fuchar.cxx -index 174391a..b8166c2 100644 ---- a/sd/source/ui/func/fuchar.cxx -+++ b/sd/source/ui/func/fuchar.cxx -@@ -106,6 +106,7 @@ void FuChar::DoExecute( SfxRequest& rReq ) - SID_ATTR_CHAR_FONTHEIGHT, - SID_ATTR_CHAR_COLOR, - SID_ATTR_CHAR_KERNING, -+ SID_ATTR_CHAR_CASEMAP, - SID_SET_SUPER_SCRIPT, - SID_SET_SUB_SCRIPT, - 0 }; -diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx -index ac6fb71..33e5339 100644 ---- a/sd/source/ui/func/futext.cxx -+++ b/sd/source/ui/func/futext.cxx -@@ -85,12 +85,13 @@ static sal_uInt16 SidArray[] = { - SID_ATTR_CHAR_FONT, // 10007 - SID_ATTR_CHAR_POSTURE, // 10008 - SID_ATTR_CHAR_WEIGHT, // 10009 -- SID_ATTR_CHAR_SHADOWED, //10010 -- SID_ATTR_CHAR_STRIKEOUT, //10013 -+ SID_ATTR_CHAR_SHADOWED, // 10010 -+ SID_ATTR_CHAR_STRIKEOUT, // 10013 - SID_ATTR_CHAR_UNDERLINE, // 10014 - SID_ATTR_CHAR_FONTHEIGHT, // 10015 - SID_ATTR_CHAR_COLOR, // 10017 -- SID_ATTR_CHAR_KERNING, //10018 -+ SID_ATTR_CHAR_KERNING, // 10018 -+ SID_ATTR_CHAR_CASEMAP, // 10019 - SID_ATTR_PARA_ADJUST_LEFT, // 10028 - SID_ATTR_PARA_ADJUST_RIGHT, // 10029 - SID_ATTR_PARA_ADJUST_CENTER, // 10030 -diff --git a/sd/source/ui/view/drtxtob.cxx b/sd/source/ui/view/drtxtob.cxx -index 25913dd..45c868f 100644 ---- a/sd/source/ui/view/drtxtob.cxx -+++ b/sd/source/ui/view/drtxtob.cxx -@@ -171,8 +171,9 @@ void TextObjectBar::GetAttrState( SfxItemSet& rSet ) - case SID_ATTR_CHAR_FONTHEIGHT: - case SID_ATTR_CHAR_WEIGHT: - case SID_ATTR_CHAR_POSTURE: -- case SID_ATTR_CHAR_SHADOWED: -+ case SID_ATTR_CHAR_SHADOWED: - case SID_ATTR_CHAR_STRIKEOUT: -+ case SID_ATTR_CHAR_CASEMAP: - { - sal_uInt16 stretchX = 100; - sal_uInt16 stretchY = 100; -diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx -index d4ed8fa..ffbb503 100644 ---- a/sd/source/ui/view/drviews2.cxx -+++ b/sd/source/ui/view/drviews2.cxx -@@ -87,6 +87,7 @@ - #include - #include - -+#include - #include - #include - #include -@@ -3032,6 +3033,16 @@ void DrawViewShell::ExecChar( SfxRequest &rReq ) - } - } - break; -+ case SID_ATTR_CHAR_CASEMAP: -+ if( rReq.GetArgs() ) -+ { -+ SFX_REQUEST_ARG( rReq, pItem, SvxCaseMapItem, SID_ATTR_CHAR_CASEMAP , false ); -+ if (pItem) -+ { -+ aNewAttr.Put(*pItem); -+ } -+ } -+ break; - case SID_SET_SUB_SCRIPT: - { - SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT ); -diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx -index 56d7a88..a5183c1 100644 ---- a/sd/source/ui/view/drviewsf.cxx -+++ b/sd/source/ui/view/drviewsf.cxx -@@ -409,6 +409,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet ) - case SID_ATTR_CHAR_WEIGHT: - case SID_ATTR_CHAR_COLOR: - case SID_ATTR_CHAR_KERNING: -+ case SID_ATTR_CHAR_CASEMAP: - case SID_SET_SUB_SCRIPT: - case SID_SET_SUPER_SCRIPT: - { -diff --git a/sw/source/ui/chrdlg/chardlg.cxx b/sw/source/ui/chrdlg/chardlg.cxx -index b20dfdc2..2483fda 100644 ---- a/sw/source/ui/chrdlg/chardlg.cxx -+++ b/sw/source/ui/chrdlg/chardlg.cxx -@@ -112,13 +112,7 @@ void SwCharDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) - } - else if (nId == m_nCharExtId) - { -- if(m_nDialogMode == DLG_CHAR_DRAW || m_nDialogMode == DLG_CHAR_ANN) -- aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP)); -- -- else -- { -- aSet.Put (SfxUInt32Item(SID_FLAG_TYPE,SVX_PREVIEW_CHARACTER|SVX_ENABLE_FLASH)); -- } -+ aSet.Put (SfxUInt32Item(SID_FLAG_TYPE,SVX_PREVIEW_CHARACTER|SVX_ENABLE_FLASH)); - rPage.PageCreated(aSet); - } - else if (nId == m_nCharPosId) --- -2.4.0 - diff --git a/0001-Resolves-tdf-89905-don-t-copy-palettes-from-shared-t.patch b/0001-Resolves-tdf-89905-don-t-copy-palettes-from-shared-t.patch deleted file mode 100644 index 4dc0a71..0000000 --- a/0001-Resolves-tdf-89905-don-t-copy-palettes-from-shared-t.patch +++ /dev/null @@ -1,599 +0,0 @@ -From f47aa0dbb17a998bdeb01036b9fd9ba0b74b8704 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Sat, 6 Jun 2015 14:24:46 +0100 -Subject: [PATCH] Resolves: tdf#89905 don't copy palettes from shared to user - -make this a multi-path element with a shared read-only location -and a user read/write location and don't copy the presets, instead -just keep them in the shared location - -Now an admin can copy extra palettes into the shared location -and they magically appear in the user deployments - -Change-Id: I7585789c0c59941094f6128368df94b834d3c2a2 -(cherry picked from commit 29202a16d9f1934684c7d0978112849f2a21fe2f) - -Related: tdf#89905 these PalettePath uses appear to really be UserConfigPath - -which is the same path at the moment - -Change-Id: Ifdefa478003a2b5cc5c065b1942194dda1275f5e -(cherry picked from commit 2c3bf6bfc244517a0134e320acaa1f720703d8f2) ---- - cui/source/tabpages/tabarea.cxx | 9 ++- - cui/source/tabpages/tabline.cxx | 10 +++- - cui/source/tabpages/tpbitmap.cxx | 22 ++++++- - cui/source/tabpages/tpcolor.cxx | 22 ++++++- - cui/source/tabpages/tpgradnt.cxx | 22 ++++++- - cui/source/tabpages/tphatch.cxx | 22 ++++++- - cui/source/tabpages/tplnedef.cxx | 22 ++++++- - cui/source/tabpages/tplneend.cxx | 23 +++++++- - extras/Package_palettes.mk | 2 +- - offapi/com/sun/star/util/XPathSettings.idl | 3 +- - .../registry/data/org/openoffice/Office/Paths.xcu | 3 + - .../schema/org/openoffice/Office/Common.xcs | 7 ++- - sd/source/ui/dlg/PhotoAlbumDialog.cxx | 2 +- - svx/source/sidebar/nbdtmg.cxx | 4 +- - svx/source/tbxctrls/PaletteManager.cxx | 67 +++++++++++++++------- - svx/source/xoutdev/xtable.cxx | 54 ++++++++++++----- - 16 files changed, 237 insertions(+), 57 deletions(-) - -diff --git a/cui/source/tabpages/tabarea.cxx b/cui/source/tabpages/tabarea.cxx -index 7ecc836..1bdaa17 100644 ---- a/cui/source/tabpages/tabarea.cxx -+++ b/cui/source/tabpages/tabarea.cxx -@@ -142,7 +142,14 @@ void SvxAreaTabDialog::SavePalettes() - - // save the tables when they have been changed - -- const OUString aPath( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aPath; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aPath = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); - - if( mnHatchingListState & ChangeType::MODIFIED ) - { -diff --git a/cui/source/tabpages/tabline.cxx b/cui/source/tabpages/tabline.cxx -index aa99b2c..6049c8c 100644 ---- a/cui/source/tabpages/tabline.cxx -+++ b/cui/source/tabpages/tabline.cxx -@@ -130,8 +130,14 @@ void SvxLineTabDialog::SavePalettes() - } - - // Save the tables when they have been changed -- -- const OUString aPath( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aPath; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aPath = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); - - if( nDashListState & ChangeType::MODIFIED ) - { -diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx -index 0d11116..71c23e6 100644 ---- a/cui/source/tabpages/tpbitmap.cxx -+++ b/cui/source/tabpages/tpbitmap.cxx -@@ -795,7 +795,16 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickLoadHdl_Impl) - ::sfx2::FileDialogHelper aDlg( com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 ); - OUString aStrFilterType( "*.sob" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) ); - - if ( aDlg.Execute() == ERRCODE_NONE ) -@@ -875,7 +884,16 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickSaveHdl_Impl) - OUString aStrFilterType( "*.sob" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); - -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" ); - - if( !pBitmapList->GetName().isEmpty() ) -diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx -index 94231c5..50b74de 100644 ---- a/cui/source/tabpages/tpcolor.cxx -+++ b/cui/source/tabpages/tpcolor.cxx -@@ -142,7 +142,16 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickLoadHdl_Impl) - OUString aStrFilterType( XPropertyList::GetDefaultExtFilter( meType ) ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); - -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) ); - - if ( aDlg.Execute() == ERRCODE_NONE ) -@@ -202,7 +211,16 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickSaveHdl_Impl) - OUString aStrFilterType( XPropertyList::GetDefaultExtFilter( meType ) ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); - -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" ); - - XPropertyListRef pList = GetList(); -diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx -index e737410..380f36a 100644 ---- a/cui/source/tabpages/tpgradnt.cxx -+++ b/cui/source/tabpages/tpgradnt.cxx -@@ -655,7 +655,16 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickLoadHdl_Impl) - ::sfx2::FileDialogHelper aDlg( com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 ); - OUString aStrFilterType( "*.sog" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) ); - - if( aDlg.Execute() == ERRCODE_NONE ) -@@ -739,7 +748,16 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickSaveHdl_Impl) - OUString aStrFilterType( "*.sog" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); - -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" ); - - if( !pGradientList->GetName().isEmpty() ) -diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx -index bad1e71..0060b36 100644 ---- a/cui/source/tabpages/tphatch.cxx -+++ b/cui/source/tabpages/tphatch.cxx -@@ -692,7 +692,16 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickLoadHdl_Impl) - ::sfx2::FileDialogHelper aDlg( com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 ); - OUString aStrFilterType( "*.soh" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) ); - - if( aDlg.Execute() == ERRCODE_NONE ) -@@ -765,7 +774,16 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickSaveHdl_Impl) - OUString aStrFilterType( "*.soh" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); - -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" ); - - if( !pHatchingList->GetName().isEmpty() ) -diff --git a/cui/source/tabpages/tplnedef.cxx b/cui/source/tabpages/tplnedef.cxx -index 6694a54..38a7c7f 100644 ---- a/cui/source/tabpages/tplnedef.cxx -+++ b/cui/source/tabpages/tplnedef.cxx -@@ -761,7 +761,16 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickLoadHdl_Impl) - ::sfx2::FileDialogHelper aDlg( com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 ); - OUString aStrFilterType( "*.sod" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) ); - - if( aDlg.Execute() == ERRCODE_NONE ) -@@ -821,7 +830,16 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickSaveHdl_Impl) - OUString aStrFilterType( "*.sod" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); - -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" ); - - if( !pDashList->GetName().isEmpty() ) -diff --git a/cui/source/tabpages/tplneend.cxx b/cui/source/tabpages/tplneend.cxx -index aff55b9..478ab46 100644 ---- a/cui/source/tabpages/tplneend.cxx -+++ b/cui/source/tabpages/tplneend.cxx -@@ -573,7 +573,17 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickLoadHdl_Impl) - ::sfx2::FileDialogHelper aDlg(com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 ); - OUString aStrFilterType( "*.soe" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) ); - - if( aDlg.Execute() == ERRCODE_NONE ) -@@ -633,7 +643,16 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickSaveHdl_Impl) - OUString aStrFilterType( "*.soe" ); - aDlg.AddFilter( aStrFilterType, aStrFilterType ); - -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ OUString aPalettePath(SvtPathOptions().GetPalettePath()); -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = aPalettePath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aFile(aLastDir); - DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" ); - - if( !pLineEndList->GetName().isEmpty() ) -diff --git a/extras/Package_palettes.mk b/extras/Package_palettes.mk -index bc317e2..5cf4c61 100644 ---- a/extras/Package_palettes.mk -+++ b/extras/Package_palettes.mk -@@ -9,7 +9,7 @@ - - $(eval $(call gb_Package_Package,extras_palettes,$(SRCDIR)/extras/source/palettes)) - --$(eval $(call gb_Package_add_files,extras_palettes,$(LIBO_SHARE_PRESETS_FOLDER)/config,\ -+$(eval $(call gb_Package_add_files,extras_palettes,$(LIBO_SHARE_FOLDER)/palette,\ - arrowhd.soe \ - classic.sog \ - cmyk.soc \ -diff --git a/offapi/com/sun/star/util/XPathSettings.idl b/offapi/com/sun/star/util/XPathSettings.idl -index 5f202a3..d54c122 100644 ---- a/offapi/com/sun/star/util/XPathSettings.idl -+++ b/offapi/com/sun/star/util/XPathSettings.idl -@@ -89,7 +89,8 @@ published interface XPathSettings - [attribute] string Module; - - /** This is the path to the palette files *.SOB to *.SOF containing -- user-defined colors and patterns. */ -+ user-defined colors and patterns. The value can be more than -+ one path separated by a semicolon.*/ - [attribute] string Palette; - - /** Plugins are saved in these directories. The value can be more than -diff --git a/officecfg/registry/data/org/openoffice/Office/Paths.xcu b/officecfg/registry/data/org/openoffice/Office/Paths.xcu -index 6d739e6..965a629 100644 ---- a/officecfg/registry/data/org/openoffice/Office/Paths.xcu -+++ b/officecfg/registry/data/org/openoffice/Office/Paths.xcu -@@ -124,6 +124,9 @@ - - - -+ -+ -+ - - $(userurl)/config - -diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs -index 0bc0dc8..8922889 100644 ---- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs -+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs -@@ -1642,12 +1642,15 @@ - - $(progpath) - -- -+ - - Specifies the path to the palette files *.SOB to *.SOF - containing user-defined colors and patterns. - -- $(userurl)/config -+ -+ $(insturl)/@LIBO_SHARE_FOLDER@/palette -+ $(userurl)/config -+ - - - -diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.cxx b/sd/source/ui/dlg/PhotoAlbumDialog.cxx -index d5dcd09..b29ea21 100644 ---- a/sd/source/ui/dlg/PhotoAlbumDialog.cxx -+++ b/sd/source/ui/dlg/PhotoAlbumDialog.cxx -@@ -480,7 +480,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, FileHdl) - // Read configuration - OUString sUrl(officecfg::Office::Impress::Pictures::Path::get()); - -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ INetURLObject aFile( SvtPathOptions().GetUserConfigPath() ); - if (!sUrl.isEmpty()) - aDlg.SetDisplayDirectory(sUrl); - else -diff --git a/svx/source/sidebar/nbdtmg.cxx b/svx/source/sidebar/nbdtmg.cxx -index 7c7e2c4..9570c2b 100644 ---- a/svx/source/sidebar/nbdtmg.cxx -+++ b/svx/source/sidebar/nbdtmg.cxx -@@ -157,7 +157,7 @@ void NBOTypeMgrBase::ImplLoad(const OUString& filename) - bIsLoading = true; - SfxMapUnit eOldCoreUnit=eCoreUnit; - eCoreUnit = SFX_MAPUNIT_100TH_MM; -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ INetURLObject aFile( SvtPathOptions().GetUserConfigPath() ); - aFile.Append( filename); - std::unique_ptr xIStm(::utl::UcbStreamHelper::CreateStream( aFile.GetMainURL( INetURLObject::NO_DECODE ), StreamMode::READ )); - if( xIStm ) { -@@ -196,7 +196,7 @@ void NBOTypeMgrBase::ImplStore(const OUString& filename) - if (bIsLoading) return; - SfxMapUnit eOldCoreUnit=eCoreUnit; - eCoreUnit = SFX_MAPUNIT_100TH_MM; -- INetURLObject aFile( SvtPathOptions().GetPalettePath() ); -+ INetURLObject aFile( SvtPathOptions().GetUserConfigPath() ); - aFile.Append( filename); - std::unique_ptr xOStm(::utl::UcbStreamHelper::CreateStream( aFile.GetMainURL( INetURLObject::NO_DECODE ), StreamMode::WRITE )); - if( xOStm ) { -diff --git a/svx/source/tbxctrls/PaletteManager.cxx b/svx/source/tbxctrls/PaletteManager.cxx -index 109f934..3334afc 100644 ---- a/svx/source/tbxctrls/PaletteManager.cxx -+++ b/svx/source/tbxctrls/PaletteManager.cxx -@@ -27,6 +27,8 @@ - #include - #include - #include -+#include -+#include - - PaletteManager::PaletteManager() : - mnMaxRecentColors(Application::GetSettings().GetStyleSettings().GetColorValueSetColumnCount()), -@@ -47,31 +49,52 @@ PaletteManager::~PaletteManager() - void PaletteManager::LoadPalettes() - { - maPalettes.clear(); -- OUString aPalPath = SvtPathOptions().GetPalettePath(); -- -- osl::Directory aDir(aPalPath); -- osl::DirectoryItem aDirItem; -- osl::FileStatus aFileStat( osl_FileStatus_Mask_FileName | -- osl_FileStatus_Mask_FileURL | -- osl_FileStatus_Mask_Type ); -- if( aDir.open() == osl::FileBase::E_None ) -+ OUString aPalPaths = SvtPathOptions().GetPalettePath(); -+ -+ std::stack aDirs; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aDirs.push(aPalPaths.getToken(0, ';', nIndex)); -+ } -+ while (nIndex >= 0); -+ -+ std::set aNames; -+ //try all entries palette path list user first, then -+ //system, ignoring duplicate file names -+ while (!aDirs.empty()) - { -- while( aDir.getNextItem(aDirItem) == osl::FileBase::E_None ) -+ OUString aPalPath = aDirs.top(); -+ aDirs.pop(); -+ -+ osl::Directory aDir(aPalPath); -+ osl::DirectoryItem aDirItem; -+ osl::FileStatus aFileStat( osl_FileStatus_Mask_FileName | -+ osl_FileStatus_Mask_FileURL | -+ osl_FileStatus_Mask_Type ); -+ if( aDir.open() == osl::FileBase::E_None ) - { -- aDirItem.getFileStatus(aFileStat); -- if(aFileStat.isRegular() || aFileStat.isLink()) -+ while( aDir.getNextItem(aDirItem) == osl::FileBase::E_None ) - { -- OUString aFName = aFileStat.getFileName(); -- Palette* pPalette = 0; -- if( aFName.endsWithIgnoreAsciiCase(".gpl") ) -- pPalette = new PaletteGPL( aFileStat.getFileURL(), aFName ); -- else if( aFName.endsWithIgnoreAsciiCase(".soc") ) -- pPalette = new PaletteSOC( aFileStat.getFileURL(), aFName ); -- else if ( aFName.endsWithIgnoreAsciiCase(".ase") ) -- pPalette = new PaletteASE( aFileStat.getFileURL(), aFName ); -- -- if( pPalette && pPalette->IsValid() ) -- maPalettes.push_back( pPalette ); -+ aDirItem.getFileStatus(aFileStat); -+ if(aFileStat.isRegular() || aFileStat.isLink()) -+ { -+ OUString aFName = aFileStat.getFileName(); -+ if (aNames.find(aFName) == aNames.end()) -+ { -+ Palette* pPalette = 0; -+ if( aFName.endsWithIgnoreAsciiCase(".gpl") ) -+ pPalette = new PaletteGPL( aFileStat.getFileURL(), aFName ); -+ else if( aFName.endsWithIgnoreAsciiCase(".soc") ) -+ pPalette = new PaletteSOC( aFileStat.getFileURL(), aFName ); -+ else if ( aFName.endsWithIgnoreAsciiCase(".ase") ) -+ pPalette = new PaletteASE( aFileStat.getFileURL(), aFName ); -+ -+ if( pPalette && pPalette->IsValid() ) -+ maPalettes.push_back( pPalette ); -+ aNames.insert(aFName); -+ } -+ } - } - } - } -diff --git a/svx/source/xoutdev/xtable.cxx b/svx/source/xoutdev/xtable.cxx -index 5e35be9..b3f1416d 100644 ---- a/svx/source/xoutdev/xtable.cxx -+++ b/svx/source/xoutdev/xtable.cxx -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - using namespace com::sun::star; - -@@ -224,23 +225,41 @@ bool XPropertyList::Load() - if( mbListDirty ) - { - mbListDirty = false; -+ std::stack aDirs; - -- INetURLObject aURL( maPath ); -- -- if( INetProtocol::NotValid == aURL.GetProtocol() ) -+ sal_Int32 nIndex = 0; -+ do - { -- DBG_ASSERT( maPath.isEmpty(), "invalid URL" ); -- return false; -+ aDirs.push(maPath.getToken(0, ';', nIndex)); - } -+ while (nIndex >= 0); -+ -+ //try all entries palette path list working back to front until one -+ //succeeds -+ while (!aDirs.empty()) -+ { -+ OUString aPath(aDirs.top()); -+ aDirs.pop(); -+ -+ INetURLObject aURL(aPath); -+ -+ if( INetProtocol::NotValid == aURL.GetProtocol() ) -+ { -+ DBG_ASSERT( aPath.isEmpty(), "invalid URL" ); -+ return false; -+ } - -- aURL.Append( maName ); -+ aURL.Append( maName ); - -- if( aURL.getExtension().isEmpty() ) -- aURL.setExtension( GetDefaultExt() ); -+ if( aURL.getExtension().isEmpty() ) -+ aURL.setExtension( GetDefaultExt() ); - -- return SvxXMLXTableImport::load( aURL.GetMainURL( INetURLObject::NO_DECODE ), maReferer, -- uno::Reference < embed::XStorage >(), -- createInstance(), NULL ); -+ bool bRet = SvxXMLXTableImport::load(aURL.GetMainURL(INetURLObject::NO_DECODE), -+ maReferer, uno::Reference < embed::XStorage >(), -+ createInstance(), NULL ); -+ if (bRet) -+ return bRet; -+ } - } - return false; - } -@@ -256,11 +275,20 @@ bool XPropertyList::LoadFrom( const uno::Reference < embed::XStorage > &xStorage - - bool XPropertyList::Save() - { -- INetURLObject aURL( maPath ); -+ //save to the last path in the palette path list -+ OUString aLastDir; -+ sal_Int32 nIndex = 0; -+ do -+ { -+ aLastDir = maPath.getToken(0, ';', nIndex); -+ } -+ while (nIndex >= 0); -+ -+ INetURLObject aURL(aLastDir); - - if( INetProtocol::NotValid == aURL.GetProtocol() ) - { -- DBG_ASSERT( maPath.isEmpty(), "invalid URL" ); -+ DBG_ASSERT( aLastDir.isEmpty(), "invalid URL" ); - return false; - } - --- -2.4.0 - diff --git a/0001-allow-slide-design-to-affect-multiple-standard-pages.patch b/0001-allow-slide-design-to-affect-multiple-standard-pages.patch deleted file mode 100644 index bbb8019..0000000 --- a/0001-allow-slide-design-to-affect-multiple-standard-pages.patch +++ /dev/null @@ -1,178 +0,0 @@ -From f7ed8b99b628625851fb28ec1a3dead710c8871c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 23 Jun 2015 16:54:52 +0100 -Subject: [PATCH] allow slide design to affect multiple standard pages - -modify this minimally and select all standard pages -selected in the slidesorted, unselect them afterwards -and loop over the selected ones. - -This looks like it could do with a rework to disentangle -the master/standard pages stuff, but leave it as is in -this commit - -Change-Id: Ifd01fe21c91e5e6b07b2d8bba0d85facadc25998 ---- - sd/source/ui/func/fuprlout.cxx | 94 +++++++++++++++++++++++++++++------------- - 1 file changed, 66 insertions(+), 28 deletions(-) - -diff --git a/sd/source/ui/func/fuprlout.cxx b/sd/source/ui/func/fuprlout.cxx -index 6ce661f..f087ad9 100644 ---- a/sd/source/ui/func/fuprlout.cxx -+++ b/sd/source/ui/func/fuprlout.cxx -@@ -42,6 +42,7 @@ - #include "strmname.h" - #include "app.hrc" - #include "DrawDocShell.hxx" -+#include "SlideSorterViewShell.hxx" - #include "unprlout.hxx" - #include "unchss.hxx" - #include "unmovss.hxx" -@@ -89,24 +90,6 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq ) - - bool bError = false; - -- // determine the active page -- sal_uInt16 nSelectedPage = SDRPAGE_NOTFOUND; -- for (sal_uInt16 nPage = 0; nPage < mpDoc->GetSdPageCount(PK_STANDARD); nPage++) -- { -- if (mpDoc->GetSdPage(nPage, PK_STANDARD)->IsSelected()) -- { -- nSelectedPage = nPage; -- break; -- } -- } -- -- DBG_ASSERT(nSelectedPage != SDRPAGE_NOTFOUND, "no selected page"); -- SdPage* pSelectedPage = mpDoc->GetSdPage(nSelectedPage, PK_STANDARD); -- OUString aOldLayoutName(pSelectedPage->GetLayoutName()); -- sal_Int32 nPos = aOldLayoutName.indexOf(SD_LT_SEPARATOR); -- if (nPos != -1) -- aOldLayoutName = aOldLayoutName.copy(0, nPos); -- - /* if we are on a master page, the changes apply for all pages and notes- - pages who are using the relevant layout */ - bool bOnMaster = false; -@@ -117,6 +100,51 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq ) - if (eEditMode == EM_MASTERPAGE) - bOnMaster = true; - } -+ -+ std::vector aUnselect; -+ if (!bOnMaster) -+ { -+ //We later rely on IsSelected, so transfer the selection here -+ //into the document -+ slidesorter::SlideSorterViewShell* pSlideSorterViewShell -+ = slidesorter::SlideSorterViewShell::GetSlideSorter(mpViewShell->GetViewShellBase()); -+ if (pSlideSorterViewShell) -+ { -+ boost::shared_ptr xSelection( -+ pSlideSorterViewShell->GetPageSelection()); -+ if (xSelection) -+ { -+ for (auto it = xSelection->begin(); it != xSelection->end(); ++it) -+ { -+ SdPage *pPage = *it; -+ if (pPage->IsSelected() || pPage->GetPageKind() != PK_STANDARD) -+ continue; -+ mpDoc->SetSelected(pPage, true); -+ aUnselect.push_back(pPage); -+ } -+ } -+ } -+ } -+ -+ std::vector aSelectedPages; -+ std::vector aSelectedPageNums; -+ // determine the active pages -+ for (sal_uInt16 nPage = 0; nPage < mpDoc->GetSdPageCount(PK_STANDARD); nPage++) -+ { -+ SdPage* pPage = mpDoc->GetSdPage(nPage, PK_STANDARD); -+ if (pPage->IsSelected()) -+ { -+ aSelectedPages.push_back(pPage); -+ aSelectedPageNums.push_back(nPage); -+ } -+ } -+ -+ assert(!aSelectedPages.empty() && "no selected page"); -+ OUString aOldLayoutName(aSelectedPages.back()->GetLayoutName()); -+ sal_Int32 nPos = aOldLayoutName.indexOf(SD_LT_SEPARATOR); -+ if (nPos != -1) -+ aOldLayoutName = aOldLayoutName.copy(0, nPos); -+ - bool bMasterPage = bOnMaster; - bool bCheckMasters = false; - -@@ -196,14 +224,15 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq ) - OUString aLayoutName; - if( pTempDoc ) - aLayoutName = aFile.getToken(1, DOCUMENT_TOKEN); -- -- mpDoc->SetMasterPage(nSelectedPage, aLayoutName, pTempDoc, bMasterPage, bCheckMasters); -+ for (auto nSelectedPage : aSelectedPageNums) -+ mpDoc->SetMasterPage(nSelectedPage, aLayoutName, pTempDoc, bMasterPage, bCheckMasters); - mpDoc->CloseBookmarkDoc(); - } - else - { - // use master page with the layout name aFile from current Doc -- mpDoc->SetMasterPage(nSelectedPage, aFile, mpDoc, bMasterPage, bCheckMasters); -+ for (auto nSelectedPage : aSelectedPageNums) -+ mpDoc->SetMasterPage(nSelectedPage, aFile, mpDoc, bMasterPage, bCheckMasters); - } - - // remove blocking -@@ -211,7 +240,7 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq ) - static_cast(mpView)->BlockPageOrderChangedHint(false); - - // if the master page was visible, show it again -- if (!bError && nSelectedPage != SDRPAGE_NOTFOUND) -+ if (!bError) - { - if (bOnMaster) - { -@@ -219,13 +248,16 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq ) - { - ::sd::View* pView = - static_cast(mpViewShell)->GetView(); -- sal_uInt16 nPgNum = pSelectedPage->TRG_GetMasterPage().GetPageNum(); -+ for (auto pSelectedPage : aSelectedPages) -+ { -+ sal_uInt16 nPgNum = pSelectedPage->TRG_GetMasterPage().GetPageNum(); - -- if (static_cast(mpViewShell)->GetPageKind() == PK_NOTES) -- nPgNum++; -+ if (static_cast(mpViewShell)->GetPageKind() == PK_NOTES) -+ nPgNum++; - -- pView->HideSdrPage(); -- pView->ShowSdrPage(pView->GetModel()->GetMasterPage(nPgNum)); -+ pView->HideSdrPage(); -+ pView->ShowSdrPage(pView->GetModel()->GetMasterPage(nPgNum)); -+ } - } - - // force update of TabBar -@@ -233,10 +265,16 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq ) - } - else - { -- pSelectedPage->SetAutoLayout(pSelectedPage->GetAutoLayout()); -+ for (auto pSelectedPage : aSelectedPages) -+ pSelectedPage->SetAutoLayout(pSelectedPage->GetAutoLayout()); - } - } - -+ //Undo transfer to document selection -+ for (auto pPage : aUnselect) -+ mpDoc->SetSelected(pPage, false); -+ -+ - // fake a mode change to repaint the page tab bar - if( mpViewShell && mpViewShell->ISA( DrawViewShell ) ) - { --- -2.4.0 - diff --git a/0001-default-to-as-character-caption-contents.patch b/0001-default-to-as-character-caption-contents.patch deleted file mode 100644 index 3df8ebe..0000000 --- a/0001-default-to-as-character-caption-contents.patch +++ /dev/null @@ -1,817 +0,0 @@ -From 91739f2ca569b30383fe2f1cef8816fa8bf0554a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 10 Sep 2015 11:07:55 +0100 -Subject: [PATCH] default to as-character caption contents - -this FindFlyFrm variant returns the Selected FlyFrm - -the other one actively searches for the FlyFrm that -matches the XEmbeddedObject argument - -Change-Id: I2f9271c01337b4a32d7b644f82d16d85c2dc5b51 -(cherry picked from commit d9729bc06d676a36120f3da252d1a4fa39d103d8) - -GetCurrFlyFrm just forwards to GetSelectedFlyFrm - -Change-Id: Ia0b83a3aad71a72ae2135c5d7f6ddb6d9644b10b -(cherry picked from commit 8df51f799bb830db52c7be2d04b575b0443b76ec) - -bundle duplicate pattern into a GetCurrFlyFrm method - -Change-Id: Ib12b825ef9cc6e2b57e9320d435e3863d319cf0f -(cherry picked from commit 7473aacc73f8572e20f6f2a3a1d10001c5cc477d) - -GetSelectedFlyFrm+GetCurrFlyFrm -> GetSelectedOrCurrFlyFrm - -Change-Id: I4348c4cf54dcd5504c52cf8ab550572257eef50b -(cherry picked from commit a5aab0cce45309afae81b3ec0be8ace1ca0ca17d) - -GetCurFrameFormat->GetSelectedFrameFormat - -Change-Id: I2f1eb4567b6e073991d95dbcecdc79b24010f2c1 -(cherry picked from commit 4e6194fe8357efc5afa8d094e209ea94335b5923) - -split out useful code as standalone makeItemSetFromFormatAnchor - -Change-Id: I385549b4841dfc715aa984bcc257d78c9f1c3ed4 -(cherry picked from commit d961c9273104f552a8207e63c33e33f1e265565d) - -Related: tdf#93676 default to as-char inside captions - -This will (hopefull) improve round-tripping to doc[x] for new documents because -word can only have as-char elements inside frames so we get a like-for-like -conversion if the defaults are used. - -Change-Id: I3913b9b624dd5ba57ed07140bced8e3dca289cf5 -(cherry picked from commit 93ab0ff24cb71c36c9e7958046e96d7472b5af90) ---- - sw/inc/fesh.hxx | 14 +++- - sw/source/core/access/accframebase.cxx | 2 +- - sw/source/core/access/accmap.cxx | 2 +- - sw/source/core/access/accselectionhelper.cxx | 10 +-- - sw/source/core/frmedt/fecopy.cxx | 8 +- - sw/source/core/frmedt/fefly1.cxx | 118 ++++++++++++--------------- - sw/source/core/frmedt/feflyole.cxx | 2 +- - sw/source/core/frmedt/feshview.cxx | 6 +- - sw/source/core/frmedt/fews.cxx | 60 +++++++++++--- - sw/source/core/inc/UndoInsert.hxx | 1 + - sw/source/core/undo/unins.cxx | 16 +++- - sw/source/uibase/app/docst.cxx | 8 +- - sw/source/uibase/ribbar/drawbase.cxx | 2 +- - sw/source/uibase/shells/basesh.cxx | 18 ++-- - sw/source/uibase/shells/frmsh.cxx | 8 +- - sw/source/uibase/shells/grfsh.cxx | 2 +- - sw/source/uibase/wrtsh/wrtsh1.cxx | 2 +- - 17 files changed, 159 insertions(+), 120 deletions(-) - -diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx -index b3bbfcd..efc9b3d 100644 ---- a/sw/inc/fesh.hxx -+++ b/sw/inc/fesh.hxx -@@ -187,7 +187,6 @@ private: - std::unique_ptr m_pChainFrom; - bool m_bCheckForOLEInCaption; - -- SAL_DLLPRIVATE SwFlyFrm *FindFlyFrm() const; - SAL_DLLPRIVATE SwFlyFrm *FindFlyFrm( const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& ) const; - - /// Terminate actions for all shells and call ChangeLink. -@@ -362,6 +361,7 @@ public: - bool IsFrmSelected() const; - bool GetFlyFrmAttr( SfxItemSet &rSet ) const; - bool SetFlyFrmAttr( SfxItemSet &rSet ); -+ SfxItemSet makeItemSetFromFormatAnchor(SfxItemPool& rPool, const SwFormatAnchor &rAnchor) const; - bool ResetFlyFrmAttr( sal_uInt16 nWhich, const SfxItemSet* pSet = 0 ); - const SwFrameFormat *NewFlyFrm( const SfxItemSet &rSet, bool bAnchValid = false, - SwFrameFormat *pParent = 0 ); -@@ -373,9 +373,17 @@ public: - - add output parameter */ - bool IsFrmVertical(const bool bEnvironment, bool& bRightToLeft, bool& bVertL2R) const; - -- SwFrameFormat* GetCurFrameFormat() const; ///< If frame then frame style, else 0. -+ SwFrameFormat* GetSelectedFrameFormat() const; ///< If frame then frame style, else 0. - void SetFrameFormat( SwFrameFormat *pFormat, bool bKeepOrient = false, Point* pDocPos = 0 ); ///< If frame then set frame style. -- const SwFlyFrm *GetCurrFlyFrm() const { return FindFlyFrm(); } -+ -+ // Get selected fly -+ SwFlyFrm* GetSelectedFlyFrm() const; -+ -+ // Get current fly in which the cursor is positioned -+ SwFlyFrm* GetCurrFlyFrm(const bool bCalcFrm = true) const; -+ -+ // Get selected fly, but if none Get current fly in which the cursor is positioned -+ SwFlyFrm* GetSelectedOrCurrFlyFrm(const bool bCalcFrm = true) const; - - /// Find/delete fly containing the cursor. - SwFrameFormat* WizzardGetFly(); -diff --git a/sw/source/core/access/accframebase.cxx b/sw/source/core/access/accframebase.cxx -index bfffd2d..bfe07b4 100644 ---- a/sw/source/core/access/accframebase.cxx -+++ b/sw/source/core/access/accframebase.cxx -@@ -53,7 +53,7 @@ bool SwAccessibleFrameBase::IsSelected() - if( pVSh->ISA( SwFEShell ) ) - { - const SwFEShell *pFESh = static_cast< const SwFEShell * >( pVSh ); -- const SwFrm *pFlyFrm = pFESh->GetCurrFlyFrm(); -+ const SwFrm *pFlyFrm = pFESh->GetSelectedFlyFrm(); - if( pFlyFrm == GetFrm() ) - bRet = true; - } -diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx -index 7e47ad3..18d9ce5 100644 ---- a/sw/source/core/access/accmap.cxx -+++ b/sw/source/core/access/accmap.cxx -@@ -2598,7 +2598,7 @@ void SwAccessibleMap::InvalidateCursorPosition( const SwFrm *pFrm ) - else if( pVSh->ISA( SwFEShell ) ) - { - const SwFEShell *pFESh = static_cast< const SwFEShell * >( pVSh ); -- const SwFrm *pFlyFrm = pFESh->GetCurrFlyFrm(); -+ const SwFrm *pFlyFrm = pFESh->GetSelectedFlyFrm(); - if( pFlyFrm ) - { - OSL_ENSURE( !pFrm || pFrm->FindFlyFrm() == pFlyFrm, -diff --git a/sw/source/core/access/accselectionhelper.cxx b/sw/source/core/access/accselectionhelper.cxx -index cec0612..5269503 100644 ---- a/sw/source/core/access/accselectionhelper.cxx -+++ b/sw/source/core/access/accselectionhelper.cxx -@@ -156,12 +156,12 @@ bool SwAccessibleSelectionHelper::isAccessibleChildSelected( - - // ... and compare to the currently selected frame - bool bRet = false; -- SwFEShell* pFEShell = GetFEShell(); -+ const SwFEShell* pFEShell = GetFEShell(); - if( pFEShell ) - { - if ( aChild.GetSwFrm() != 0 ) - { -- bRet = (pFEShell->GetCurrFlyFrm() == aChild.GetSwFrm()); -+ bRet = (pFEShell->GetSelectedFlyFrm() == aChild.GetSwFrm()); - } - else if ( aChild.GetDrawObject() ) - { -@@ -218,10 +218,10 @@ sal_Int32 SwAccessibleSelectionHelper::getSelectedAccessibleChildCount( ) - sal_Int32 nCount = 0; - // Only one frame can be selected at a time, and we only frames - // for selectable children. -- SwFEShell* pFEShell = GetFEShell(); -+ const SwFEShell* pFEShell = GetFEShell(); - if( pFEShell != 0 ) - { -- const SwFlyFrm* pFlyFrm = pFEShell->GetCurrFlyFrm(); -+ const SwFlyFrm* pFlyFrm = pFEShell->GetSelectedFlyFrm(); - if( pFlyFrm ) - { - nCount = 1; -@@ -290,7 +290,7 @@ Reference SwAccessibleSelectionHelper::getSelectedAccessibleChild( - throwIndexOutOfBoundsException(); - - SwAccessibleChild aChild; -- const SwFlyFrm *pFlyFrm = pFEShell->GetCurrFlyFrm(); -+ const SwFlyFrm *pFlyFrm = pFEShell->GetSelectedFlyFrm(); - if( pFlyFrm ) - { - if( 0 == nSelectedChildIndex ) -diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx -index 987625d..ab55d84 100644 ---- a/sw/source/core/frmedt/fecopy.cxx -+++ b/sw/source/core/frmedt/fecopy.cxx -@@ -126,7 +126,7 @@ bool SwFEShell::Copy( SwDoc* pClpDoc, const OUString* pNewClpText ) - if( IsFrmSelected() ) - { - // get the FlyFormat -- SwFlyFrm* pFly = FindFlyFrm(); -+ SwFlyFrm* pFly = GetSelectedFlyFrm(); - SwFrameFormat* pFlyFormat = pFly->GetFormat(); - SwFormatAnchor aAnchor( pFlyFormat->GetAnchor() ); - -@@ -467,7 +467,7 @@ bool SwFEShell::Copy( SwFEShell* pDestShell, const Point& rSttPt, - - if( IsFrmSelected() ) - { -- SwFlyFrm* pFly = FindFlyFrm(); -+ SwFlyFrm* pFly = GetSelectedFlyFrm(); - SwFrameFormat* pFlyFormat = pFly->GetFormat(); - SwFormatAnchor aAnchor( pFlyFormat->GetAnchor() ); - bRet = true; -@@ -1264,10 +1264,10 @@ bool SwFEShell::GetDrawObjGraphic( SotClipboardFormatId nFormat, Graphic& rGrf ) - } - else - { -- // fix(23806): not the origial size, but the current one. -+ // Not the original size, but the current one. - // Otherwise it could happen that for vector graphics - // many MB's of memory are allocated. -- const Size aSz( FindFlyFrm()->Prt().SSize() ); -+ const Size aSz( GetSelectedFlyFrm()->Prt().SSize() ); - ScopedVclPtrInstance< VirtualDevice > pVirtDev(*GetWin()); - - MapMode aTmp( MAP_TWIP ); -diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx -index 2937f04..e35b98e 100644 ---- a/sw/source/core/frmedt/fefly1.cxx -+++ b/sw/source/core/frmedt/fefly1.cxx -@@ -236,7 +236,7 @@ void SwFEShell::SelectFlyFrm( SwFlyFrm& rFrm, bool bNew ) - OSL_ENSURE( rFrm.IsFlyFrm(), "SelectFlyFrm will einen Fly" ); - - // nothing to be done if the Fly already was selected -- if ( FindFlyFrm() == &rFrm ) -+ if (GetSelectedFlyFrm() == &rFrm) - return; - - // assure the anchor is drawn -@@ -254,8 +254,8 @@ void SwFEShell::SelectFlyFrm( SwFlyFrm& rFrm, bool bNew ) - } - } - --// returns a Fly if one is selected --SwFlyFrm *SwFEShell::FindFlyFrm() const -+// Get selected fly -+SwFlyFrm* SwFEShell::GetSelectedFlyFrm() const - { - if ( Imp()->HasDrawView() ) - { -@@ -270,6 +270,22 @@ SwFlyFrm *SwFEShell::FindFlyFrm() const - return 0; - } - -+// Get current fly in which the cursor is positioned -+SwFlyFrm* SwFEShell::GetCurrFlyFrm(const bool bCalcFrm) const -+{ -+ SwContentFrm *pContent = GetCurrFrm(bCalcFrm); -+ return pContent ? pContent->FindFlyFrm() : 0; -+} -+ -+// Get selected fly, but if none Get current fly in which the cursor is positioned -+SwFlyFrm* SwFEShell::GetSelectedOrCurrFlyFrm(const bool bCalcFrm) const -+{ -+ SwFlyFrm *pFly = GetSelectedFlyFrm(); -+ if (pFly) -+ return pFly; -+ return GetCurrFlyFrm(bCalcFrm); -+} -+ - // Returns non-null pointer, if the current Fly could be anchored to another one (so it is inside) - const SwFrameFormat* SwFEShell::IsFlyInFly() - { -@@ -281,11 +297,8 @@ const SwFrameFormat* SwFEShell::IsFlyInFly() - const SdrMarkList &rMrkList = Imp()->GetDrawView()->GetMarkedObjectList(); - if ( !rMrkList.GetMarkCount() ) - { -- SwContentFrm *pContent = GetCurrFrm( false ); -- if( !pContent ) -- return NULL; -- SwFlyFrm *pFly = pContent->FindFlyFrm(); -- if ( !pFly ) -+ SwFlyFrm *pFly = GetCurrFlyFrm(false); -+ if (!pFly) - return NULL; - return pFly->GetFormat(); - } -@@ -332,11 +345,8 @@ void SwFEShell::SetFlyPos( const Point& rAbsPos ) - SET_CURR_SHELL( this ); - - // Determine reference point in document coordinates -- SwContentFrm *pContent = GetCurrFrm( false ); -- if( !pContent ) -- return; -- SwFlyFrm *pFly = pContent->FindFlyFrm(); -- if ( !pFly ) -+ SwFlyFrm *pFly = GetCurrFlyFrm(false); -+ if (!pFly) - return; - - //SwSaveHdl aSaveX( Imp() ); -@@ -968,21 +978,11 @@ void SwFEShell::SetPageObjsNewPage( std::vector& rFillArr, int n - // wrong place or which are ambiguous (multiple selections) will be removed. - bool SwFEShell::GetFlyFrmAttr( SfxItemSet &rSet ) const - { -- SwFlyFrm *pFly = FindFlyFrm(); -- if ( !pFly ) -+ SwFlyFrm *pFly = GetSelectedOrCurrFlyFrm(); -+ if (!pFly) - { -- SwFrm* pCurrFrm( GetCurrFrm() ); -- if ( !pCurrFrm ) -- { -- OSL_FAIL( " - missing current frame. This is a serious defect, please inform OD." ); -- return false; -- } -- pFly = GetCurrFrm()->FindFlyFrm(); -- if ( !pFly ) -- { -- OSL_ENSURE( false, "GetFlyFrmAttr, no Fly selected." ); -- return false; -- } -+ OSL_ENSURE( false, "GetFlyFrmAttr, no Fly selected." ); -+ return false; - } - - SET_CURR_SHELL( (SwViewShell*)this ); -@@ -1026,13 +1026,8 @@ bool SwFEShell::SetFlyFrmAttr( SfxItemSet& rSet ) - - if( rSet.Count() ) - { -- SwFlyFrm *pFly = FindFlyFrm(); -- if( !pFly ) -- { -- OSL_ENSURE( GetCurrFrm(), "Crsr in parking zone" ); -- pFly = GetCurrFrm()->FindFlyFrm(); -- OSL_ENSURE( pFly, "SetFlyFrmAttr, no Fly selected." ); -- } -+ SwFlyFrm *pFly = GetSelectedOrCurrFlyFrm(); -+ OSL_ENSURE( pFly, "SetFlyFrmAttr, no Fly selected." ); - if( pFly ) - { - StartAllAction(); -@@ -1058,6 +1053,16 @@ bool SwFEShell::SetFlyFrmAttr( SfxItemSet& rSet ) - return bRet; - } - -+SfxItemSet SwFEShell::makeItemSetFromFormatAnchor(SfxItemPool& rPool, const SwFormatAnchor &rAnchor) const -+{ -+ // The set also includes VERT/HORI_ORIENT, because the align -+ // shall be changed in FEShell::SetFlyFrmAttr/SetFlyFrmAnchor, -+ // possibly as a result of the anchor change. -+ SfxItemSet aSet(rPool, RES_VERT_ORIENT, RES_ANCHOR); -+ aSet.Put(rAnchor); -+ return aSet; -+} -+ - bool SwFEShell::SetDrawingAttr( SfxItemSet& rSet ) - { - bool bRet = false; -@@ -1106,14 +1111,8 @@ bool SwFEShell::ResetFlyFrmAttr( sal_uInt16 nWhich, const SfxItemSet* pSet ) - { - SET_CURR_SHELL( this ); - -- SwFlyFrm *pFly = FindFlyFrm(); -- if( !pFly ) -- { -- OSL_ENSURE( GetCurrFrm(), "Crsr in parking zone" ); -- pFly = GetCurrFrm()->FindFlyFrm(); -- OSL_ENSURE( pFly, "SetFlyFrmAttr, no Fly selected." ); -- } -- -+ SwFlyFrm *pFly = GetSelectedOrCurrFlyFrm(); -+ OSL_ENSURE( pFly, "SetFlyFrmAttr, no Fly selected." ); - if( pFly ) - { - StartAllAction(); -@@ -1143,10 +1142,10 @@ bool SwFEShell::ResetFlyFrmAttr( sal_uInt16 nWhich, const SfxItemSet* pSet ) - } - - // Returns frame-format if frame, otherwise 0 --SwFrameFormat* SwFEShell::GetCurFrameFormat() const -+SwFrameFormat* SwFEShell::GetSelectedFrameFormat() const - { - SwFrameFormat* pRet = 0; -- SwLayoutFrm *pFly = FindFlyFrm(); -+ SwLayoutFrm *pFly = GetSelectedFlyFrm(); - if( pFly && ( pRet = static_cast(pFly->GetFormat()->DerivedFrom()) ) == - GetDoc()->GetDfltFrameFormat() ) - pRet = 0; -@@ -1164,7 +1163,7 @@ void SwFEShell::SetFrameFormat( SwFrameFormat *pNewFormat, bool bKeepOrient, Poi - pFly = static_cast(pFormat)->GetFrm(); - } - else -- pFly = FindFlyFrm(); -+ pFly = GetSelectedFlyFrm(); - OSL_ENSURE( pFly, "SetFrameFormat: no frame" ); - if( pFly ) - { -@@ -1200,35 +1199,24 @@ void SwFEShell::SetFrameFormat( SwFrameFormat *pNewFormat, bool bKeepOrient, Poi - - const SwFrameFormat* SwFEShell::GetFlyFrameFormat() const - { -- const SwFlyFrm* pFly = FindFlyFrm(); -- if ( !pFly ) -- { -- SwFrm* pCurrFrm = GetCurrFrm(); -- pFly = pCurrFrm ? pCurrFrm->FindFlyFrm() : 0; -- } -- if( pFly ) -+ const SwFlyFrm* pFly = GetSelectedOrCurrFlyFrm(); -+ if (pFly) - return pFly->GetFormat(); - return 0; - } - - SwFrameFormat* SwFEShell::GetFlyFrameFormat() - { -- SwFlyFrm* pFly = FindFlyFrm(); -- if ( !pFly ) -- { -- SwFrm* pCurrFrm = GetCurrFrm(); -- pFly = pCurrFrm ? pCurrFrm->FindFlyFrm() : 0; -- } -- if( pFly ) -+ SwFlyFrm* pFly = GetSelectedOrCurrFlyFrm(); -+ if (pFly) - return pFly->GetFormat(); - return 0; - } - - SwRect SwFEShell::GetFlyRect() const - { -- SwContentFrm *pContent = GetCurrFrm( false ); -- SwFlyFrm *pFly = pContent ? pContent->FindFlyFrm() : 0; -- if ( !pFly ) -+ SwFlyFrm *pFly = GetCurrFlyFrm(false); -+ if (!pFly) - { - SwRect aRect; - return aRect; -@@ -1416,7 +1404,7 @@ SwFrameFormat* SwFEShell::WizzardGetFly() - - void SwFEShell::SetFlyName( const OUString& rName ) - { -- SwLayoutFrm *pFly = FindFlyFrm(); -+ SwLayoutFrm *pFly = GetSelectedFlyFrm(); - if( pFly ) - GetDoc()->SetFlyName( *static_cast(pFly->GetFormat()), rName ); - else { -@@ -1426,7 +1414,7 @@ void SwFEShell::SetFlyName( const OUString& rName ) - - OUString SwFEShell::GetFlyName() const - { -- SwLayoutFrm *pFly = FindFlyFrm(); -+ SwLayoutFrm *pFly = GetSelectedFlyFrm(); - if( pFly ) - return pFly->GetFormat()->GetName(); - -@@ -1437,7 +1425,7 @@ OUString SwFEShell::GetFlyName() const - const uno::Reference < embed::XEmbeddedObject > SwFEShell::GetOleRef() const - { - uno::Reference < embed::XEmbeddedObject > xObj; -- SwFlyFrm * pFly = FindFlyFrm(); -+ SwFlyFrm * pFly = GetSelectedFlyFrm(); - if (pFly && pFly->Lower() && pFly->Lower()->IsNoTextFrm()) - { - SwOLENode *pNd = static_cast(pFly->Lower())->GetNode()->GetOLENode(); -diff --git a/sw/source/core/frmedt/feflyole.cxx b/sw/source/core/frmedt/feflyole.cxx -index cd9804a..4d17b2a 100644 ---- a/sw/source/core/frmedt/feflyole.cxx -+++ b/sw/source/core/frmedt/feflyole.cxx -@@ -43,7 +43,7 @@ using namespace com::sun::star; - - SwFlyFrm *SwFEShell::FindFlyFrm( const uno::Reference < embed::XEmbeddedObject >& xObj ) const - { -- SwFlyFrm *pFly = FindFlyFrm(); -+ SwFlyFrm *pFly = GetSelectedFlyFrm(); - if ( pFly && pFly->Lower() && pFly->Lower()->IsNoTextFrm() ) - { - SwOLENode *pNd = static_cast(pFly->Lower())->GetNode()->GetOLENode(); -diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx -index fe38a22..54d79fb 100644 ---- a/sw/source/core/frmedt/feshview.cxx -+++ b/sw/source/core/frmedt/feshview.cxx -@@ -1772,7 +1772,7 @@ bool SwFEShell::ImpEndCreate() - SwFlyFrm* pFlyFrm; - if( NewFlyFrm( aSet, true ) && - ::GetHtmlMode( GetDoc()->GetDocShell() ) && -- 0 != ( pFlyFrm = FindFlyFrm() )) -+ 0 != ( pFlyFrm = GetSelectedFlyFrm() )) - { - SfxItemSet aHtmlSet( GetDoc()->GetAttrPool(), RES_VERT_ORIENT, RES_HORI_ORIENT ); - // horizontal orientation: -@@ -2083,7 +2083,7 @@ Point SwFEShell::GetAnchorObjDiff() const - - if ( IsFrmSelected() ) - { -- SwFlyFrm *pFly = FindFlyFrm(); -+ SwFlyFrm *pFly = GetSelectedFlyFrm(); - aRet -= pFly->GetAnchorFrm()->Frm().Pos(); - } - else -@@ -2631,7 +2631,7 @@ void SwFEShell::SetChainMarker() - bDelTo = true; - if ( IsFrmSelected() ) - { -- SwFlyFrm *pFly = FindFlyFrm(); -+ SwFlyFrm *pFly = GetSelectedFlyFrm(); - - if ( pFly->GetPrevLink() ) - { -diff --git a/sw/source/core/frmedt/fews.cxx b/sw/source/core/frmedt/fews.cxx -index db791c8..a850f62 100644 ---- a/sw/source/core/frmedt/fews.cxx -+++ b/sw/source/core/frmedt/fews.cxx -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - - using namespace com::sun::star; - -@@ -395,14 +396,18 @@ void SwFEShell::InsertLabel( const SwLabelType eType, const OUString &rText, con - if( LTYPE_DRAW==eType || pCnt ) - { - StartAllAction(); -+ SwRewriter aRewriter(SwUndoInsertLabel::CreateRewriter(rText)); -+ StartUndo(UNDO_INSERTLABEL, &aRewriter); - - sal_uLong nIdx = 0; -+ bool bInnerCntIsFly = false; - SwFlyFrameFormat* pFlyFormat = 0; - switch( eType ) - { - case LTYPE_OBJECT: - case LTYPE_FLY: -- if( pCnt->IsInFly() ) -+ bInnerCntIsFly = pCnt->IsInFly(); -+ if (bInnerCntIsFly) - { - // pass down index to the startnode for flys - nIdx = pCnt->FindFlyFrm()-> -@@ -423,7 +428,6 @@ void SwFEShell::InsertLabel( const SwLabelType eType, const OUString &rText, con - { - SwDrawView *pDView = Imp()->GetDrawView(); - const SdrMarkList& rMrkList = pDView->GetMarkedObjectList(); -- StartUndo(); - - // copy marked drawing objects to - // local list to perform the corresponding action for each object -@@ -452,7 +456,6 @@ void SwFEShell::InsertLabel( const SwLabelType eType, const OUString &rText, con - aDrawObjs.pop_back(); - } - -- EndUndo(); - } - break; - default: -@@ -460,14 +463,49 @@ void SwFEShell::InsertLabel( const SwLabelType eType, const OUString &rText, con - } - - if( nIdx ) -- pFlyFormat = GetDoc()->InsertLabel( eType, rText, rSeparator, rNumberSeparator, bBefore, nId, -- nIdx, rCharacterStyle, bCpyBrd ); -+ { -+ pFlyFormat = GetDoc()->InsertLabel(eType, rText, rSeparator, -+ rNumberSeparator, bBefore, nId, -+ nIdx, rCharacterStyle, bCpyBrd); -+ -+ //if we succeeded in putting a caption on the content, and the -+ //content was a frame/graphic, then set the contained element -+ //to as-char anchoring because that's all msword is able to -+ //do when inside a frame, and in writer for freshly captioned -+ //elements it's largely irrelevent what the anchor of the contained -+ //type is but making it as-char by default results in very -+ //good roundtripping -+ if (pFlyFormat && bInnerCntIsFly) -+ { -+ SwNodeIndex aAnchIdx(*pFlyFormat->GetContent().GetContentIdx(), 1); -+ SwTextNode *pTxtNode = aAnchIdx.GetNode().GetTextNode(); -+ -+ SwFormatAnchor aAnc(FLY_AS_CHAR); -+ sal_Int32 nInsertPos = bBefore ? pTxtNode->Len() : 0; -+ SwPosition aPos(*pTxtNode, nInsertPos); -+ -+ aAnc.SetAnchor(&aPos); -+ -+ SfxItemSet aSet(makeItemSetFromFormatAnchor(GetDoc()->GetAttrPool(), aAnc)); - -- SwFlyFrm* pFrm; -- const Point aPt( GetCrsrDocPos() ); -- if( pFlyFormat && 0 != ( pFrm = pFlyFormat->GetFrm( &aPt ))) -- SelectFlyFrm( *pFrm, true ); -+ SwFlyFrm *pFly = GetSelectedOrCurrFlyFrm(); -+ SwFlyFrameFormat* pInnerFlyFormat = pFly->GetFormat(); -+ GetDoc()->SetFlyFrmAttr(*pInnerFlyFormat, aSet); - -+ //put a hard-break after the graphic to keep it separated -+ //from the caption text if the outer frame is resized -+ SwIndex aIdx(pTxtNode, bBefore ? nInsertPos : 1); -+ pTxtNode->InsertText(OUString("\n"), aIdx); -+ } -+ } -+ -+ if (pFlyFormat) -+ { -+ const Point aPt(GetCrsrDocPos()); -+ if (SwFlyFrm* pFrm = pFlyFormat->GetFrm(&aPt)) -+ SelectFlyFrm(*pFrm, true); -+ } -+ EndUndo(); - EndAllActionAndCall(); - } - } -@@ -649,7 +687,7 @@ void SwFEShell::CalcBoundRect( SwRect& _orRect, - } - else - { -- pFly = FindFlyFrm(); -+ pFly = GetSelectedFlyFrm(); - pFrm = pFly ? pFly->GetAnchorFrm() : GetCurrFrm(); - } - -@@ -1167,7 +1205,7 @@ void SwFEShell::CalcBoundRect( SwRect& _orRect, - Size SwFEShell::GetGraphicDefaultSize() const - { - Size aRet; -- SwFlyFrm *pFly = FindFlyFrm(); -+ SwFlyFrm *pFly = GetSelectedFlyFrm(); - if ( pFly ) - { - // #i32951# - due to issue #i28701# no format of a -diff --git a/sw/source/core/inc/UndoInsert.hxx b/sw/source/core/inc/UndoInsert.hxx -index 8ef9263..f99783a 100644 ---- a/sw/source/core/inc/UndoInsert.hxx -+++ b/sw/source/core/inc/UndoInsert.hxx -@@ -203,6 +203,7 @@ public: - @return the rewriter of this undo object - */ - virtual SwRewriter GetRewriter() const SAL_OVERRIDE; -+ static SwRewriter CreateRewriter(const OUString &rStr); - - void SetNodePos( sal_uLong nNd ) - { if( LTYPE_OBJECT != eType ) NODE.nNode = nNd; } -diff --git a/sw/source/core/undo/unins.cxx b/sw/source/core/undo/unins.cxx -index 58bdcf4..64541bd 100644 ---- a/sw/source/core/undo/unins.cxx -+++ b/sw/source/core/undo/unins.cxx -@@ -1014,14 +1014,22 @@ void SwUndoInsertLabel::RepeatImpl(::sw::RepeatContext & rContext) - // #111827# - SwRewriter SwUndoInsertLabel::GetRewriter() const - { -+ return CreateRewriter(sText); -+} -+ -+SwRewriter SwUndoInsertLabel::CreateRewriter(const OUString &rStr) -+{ - SwRewriter aRewriter; - - OUString aTmpStr; - -- aTmpStr += SW_RES(STR_START_QUOTE); -- aTmpStr += ShortenString(sText, nUndoStringLength, -- OUString(SW_RES(STR_LDOTS))); -- aTmpStr += SW_RES(STR_END_QUOTE); -+ if (!rStr.isEmpty()) -+ { -+ aTmpStr += SW_RES(STR_START_QUOTE); -+ aTmpStr += ShortenString(rStr, nUndoStringLength, -+ OUString(SW_RES(STR_LDOTS))); -+ aTmpStr += SW_RES(STR_END_QUOTE); -+ } - - aRewriter.AddRule(UndoArg1, aTmpStr); - -diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx -index 77e79af..381fe8b 100644 ---- a/sw/source/uibase/app/docst.cxx -+++ b/sw/source/uibase/app/docst.cxx -@@ -129,7 +129,7 @@ void SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh) - // so that this family is being showed - if(pShell->IsFrmSelected()) - { -- SwFrameFormat* pFormat = pShell->GetCurFrameFormat(); -+ SwFrameFormat* pFormat = pShell->GetSelectedFrameFormat(); - if( pFormat ) - aName = pFormat->GetName(); - } -@@ -195,7 +195,7 @@ void SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh) - rSet.DisableItem( nWhich ); - else - { -- SwFrameFormat* pFormat = pShell->GetCurFrameFormat(); -+ SwFrameFormat* pFormat = pShell->GetSelectedFrameFormat(); - if(pFormat && pShell->IsFrmSelected()) - { - aName = pFormat->GetName(); -@@ -429,7 +429,7 @@ void SwDocShell::ExecStyleSheet( SfxRequest& rReq ) - break; - case SFX_STYLE_FAMILY_FRAME: - { -- SwFrameFormat* pFrm = m_pWrtShell->GetCurFrameFormat(); -+ SwFrameFormat* pFrm = m_pWrtShell->GetSelectedFrameFormat(); - if( pFrm ) - aParam = pFrm->GetName(); - } -@@ -1177,7 +1177,7 @@ sal_uInt16 SwDocShell::MakeByExample( const OUString &rName, sal_uInt16 nFamily, - SfxItemSet aSet(GetPool(), aFrameFormatSetRange ); - pCurrWrtShell->GetFlyFrmAttr( aSet ); - -- SwFrameFormat* pFFormat = pCurrWrtShell->GetCurFrameFormat(); -+ SwFrameFormat* pFFormat = pCurrWrtShell->GetSelectedFrameFormat(); - pFrm->SetDerivedFrom( pFFormat ); - - pFrm->SetFormatAttr( aSet ); -diff --git a/sw/source/uibase/ribbar/drawbase.cxx b/sw/source/uibase/ribbar/drawbase.cxx -index 0cbea13..55b6d44 100644 ---- a/sw/source/uibase/ribbar/drawbase.cxx -+++ b/sw/source/uibase/ribbar/drawbase.cxx -@@ -287,7 +287,7 @@ bool SwDrawBase::MouseButtonUp(const MouseEvent& rMEvt) - aCol.Init(m_pWin->GetFrmColCount(), aCol.GetGutterWidth(), aCol.GetWishWidth()); - aSet.Put(aCol); - // Template AutoUpdate -- SwFrameFormat* pFormat = m_pSh->GetCurFrameFormat(); -+ SwFrameFormat* pFormat = m_pSh->GetSelectedFrameFormat(); - if(pFormat && pFormat->IsAutoUpdateFormat()) - m_pSh->AutoUpdateFrame(pFormat, aSet); - else -diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx -index 0a9c64f..360d7c3 100644 ---- a/sw/source/uibase/shells/basesh.cxx -+++ b/sw/source/uibase/shells/basesh.cxx -@@ -1008,16 +1008,12 @@ void SwBaseShell::Execute(SfxRequest &rReq) - ? FLY_AS_CHAR - : FLY_AT_CHAR; - rSh.StartUndo(); -- if( rSh.IsObjSelected() ) -- rSh.ChgAnchor( eSet ); -- else if( rSh.IsFrmSelected() ) -- { -- // The set also includes VERT/HORI_ORIENT, because the align -- // shall be changed in FEShell::SetFlyFrmAttr/SetFlyFrmAnchor, -- // possibly as a result of the anchor change. -- SfxItemSet aSet( GetPool(), RES_VERT_ORIENT, RES_ANCHOR ); -- SwFormatAnchor aAnc( eSet, rSh.GetPhyPageNum() ); -- aSet.Put( aAnc ); -+ if (rSh.IsObjSelected()) -+ rSh.ChgAnchor(eSet); -+ else if (rSh.IsFrmSelected()) -+ { -+ SwFormatAnchor aAnc(eSet, rSh.GetPhyPageNum()); -+ SfxItemSet aSet(rSh.makeItemSetFromFormatAnchor(GetPool(), aAnc)); - rSh.SetFlyFrmAttr(aSet); - } - // if new anchor is 'as char' and it is a Math object and the usual -@@ -2284,7 +2280,7 @@ void SwBaseShell::ExecBckCol(SfxRequest& rReq) - if((nsSelectionType::SEL_FRM & nSelType) || (nsSelectionType::SEL_GRF & nSelType)) - { - // Template autoupdate -- SwFrameFormat* pFormat = rSh.GetCurFrameFormat(); -+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat(); - - if(pFormat && pFormat->IsAutoUpdateFormat()) - { -diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx -index 4868fdf..3a4e956 100644 ---- a/sw/source/uibase/shells/frmsh.cxx -+++ b/sw/source/uibase/shells/frmsh.cxx -@@ -176,7 +176,7 @@ void SwFrameShell::Execute(SfxRequest &rReq) - aCol.Init(nCols, nGutterWidth, aCol.GetWishWidth()); - aSet.Put(aCol); - // Template AutoUpdate -- SwFrameFormat* pFormat = rSh.GetCurFrameFormat(); -+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat(); - if(pFormat && pFormat->IsAutoUpdateFormat()) - { - rSh.AutoUpdateFrame(pFormat, aSet); -@@ -498,7 +498,7 @@ void SwFrameShell::Execute(SfxRequest &rReq) - rSh.SetObjTitle(static_cast(pItem)->GetValue()); - } - // Template AutoUpdate -- SwFrameFormat* pFormat = rSh.GetCurFrameFormat(); -+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat(); - if(pFormat && pFormat->IsAutoUpdateFormat()) - { - rSh.AutoUpdateFrame(pFormat, *pOutSet); -@@ -644,7 +644,7 @@ void SwFrameShell::Execute(SfxRequest &rReq) - } - if ( bUpdateMgr ) - { -- SwFrameFormat* pFormat = rSh.GetCurFrameFormat(); -+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat(); - if ( bCopyToFormat && pFormat && pFormat->IsAutoUpdateFormat() ) - { - rSh.AutoUpdateFrame(pFormat, aMgr.GetAttrSet()); -@@ -1111,7 +1111,7 @@ void SwFrameShell::ExecFrameStyle(SfxRequest& rReq) - } - aFrameSet.Put( aBoxItem ); - // Template AutoUpdate -- SwFrameFormat* pFormat = rSh.GetCurFrameFormat(); -+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat(); - if(pFormat && pFormat->IsAutoUpdateFormat()) - { - rSh.AutoUpdateFrame(pFormat, aFrameSet); -diff --git a/sw/source/uibase/shells/grfsh.cxx b/sw/source/uibase/shells/grfsh.cxx -index 39e18fd..60e95f3 100644 ---- a/sw/source/uibase/shells/grfsh.cxx -+++ b/sw/source/uibase/shells/grfsh.cxx -@@ -381,7 +381,7 @@ void SwGrfShell::Execute(SfxRequest &rReq) - } - - // Templates AutoUpdate -- SwFrameFormat* pFormat = rSh.GetCurFrameFormat(); -+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat(); - if(pFormat && pFormat->IsAutoUpdateFormat()) - { - pFormat->SetFormatAttr(*pSet); -diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx b/sw/source/uibase/wrtsh/wrtsh1.cxx -index 37f0553..ead7e47 100644 ---- a/sw/source/uibase/wrtsh/wrtsh1.cxx -+++ b/sw/source/uibase/wrtsh/wrtsh1.cxx -@@ -1709,7 +1709,7 @@ OUString SwWrtShell::GetSelDescr() const - break; - case nsSelectionType::SEL_FRM: - { -- const SwFrameFormat * pFrameFormat = GetCurFrameFormat(); -+ const SwFrameFormat * pFrameFormat = GetSelectedFrameFormat(); - - if (pFrameFormat) - aResult = pFrameFormat->GetDescription(); --- -2.4.0 - diff --git a/0001-f22-openjdk-for-ppc64le-has-both-these-dirs-but-jawt.patch b/0001-f22-openjdk-for-ppc64le-has-both-these-dirs-but-jawt.patch deleted file mode 100644 index 0217b2d..0000000 --- a/0001-f22-openjdk-for-ppc64le-has-both-these-dirs-but-jawt.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e13b0657a3a05139f751124145aa10758c59d1dd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 1 Jul 2015 08:34:58 +0100 -Subject: [PATCH] f22 openjdk for ppc64le has both these dirs, but jawt is only - on one - -Change-Id: Ie770ecceb8c8f5a6fa882a9f5d5a26806b029589 ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index aecbe8f..8964c96 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -7058,7 +7058,7 @@ then - my_java_arch=ppc64 - ;; - powerpc64le) -- AS_IF([test -d "$JAVA_HOME/jre/lib/ppc64le"], [my_java_arch=ppc64le], [my_java_arch=ppc64]) -+ AS_IF([test -e "$JAVA_HOME/jre/lib/ppc64le/libjawt.so"], [my_java_arch=ppc64le], [my_java_arch=ppc64]) - JAVA_ARCH=$my_java_arch - ;; - x86_64) --- -2.4.0 - diff --git a/0001-implement-dialog-control-over-enhanced-shape-control.patch b/0001-implement-dialog-control-over-enhanced-shape-control.patch deleted file mode 100644 index b71c7b3..0000000 --- a/0001-implement-dialog-control-over-enhanced-shape-control.patch +++ /dev/null @@ -1,663 +0,0 @@ -From e9680d99c4403bd07ab4d50939a5d7791bceb98c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 13 Oct 2015 13:16:31 +0100 -Subject: [PATCH] implement dialog control over enhanced shape control points - -use case is a desire to enable viewing and setting rounded rectangle radiuses -to an exact known value - -Change-Id: I7e6a4db0699076950adf5869a61825159766c46a -(cherry picked from commit b859d84e471fdb70b61607d2d919a7907d074bd0) ---- - cui/source/inc/transfrm.hxx | 6 + - cui/source/tabpages/transfrm.cxx | 137 ++++++++++++++- - cui/uiconfig/ui/slantcornertabpage.ui | 310 ++++++++++++++++++++++++++++++---- - include/svx/EnhancedCustomShape2d.hxx | 1 + - 4 files changed, 416 insertions(+), 38 deletions(-) - -diff --git a/cui/source/inc/transfrm.hxx b/cui/source/inc/transfrm.hxx -index 2945d28..2fe2524 100644 ---- a/cui/source/inc/transfrm.hxx -+++ b/cui/source/inc/transfrm.hxx -@@ -239,6 +239,12 @@ private: - VclPtr m_pFlAngle; - VclPtr m_pMtrAngle; - -+ VclPtr m_aControlGroups[2]; -+ VclPtr m_aControlGroupX[2]; -+ VclPtr m_aControlX[2]; -+ VclPtr m_aControlGroupY[2]; -+ VclPtr m_aControlY[2]; -+ - const SfxItemSet& rOutAttrs; - - const SdrView* pView; -diff --git a/cui/source/tabpages/transfrm.cxx b/cui/source/tabpages/transfrm.cxx -index 950a4b2..43375c2 100644 ---- a/cui/source/tabpages/transfrm.cxx -+++ b/cui/source/tabpages/transfrm.cxx -@@ -18,6 +18,8 @@ - */ - - #include -+#include -+#include - #include - #include - #include -@@ -430,6 +432,15 @@ SvxSlantTabPage::SvxSlantTabPage(vcl::Window* pParent, const SfxItemSet& rInAttr - get(m_pFlAngle, "FL_SLANT"); - get(m_pMtrAngle, "MTR_FLD_ANGLE"); - -+ for (int i = 0; i < 2; ++i) -+ { -+ get(m_aControlGroups[i], "controlgroups" + OString::number(i+1)); -+ get(m_aControlGroupX[i], "controlgroupx" + OString::number(i+1)); -+ get(m_aControlX[i], "controlx" + OString::number(i+1)); -+ get(m_aControlGroupY[i], "controlgroupy" + OString::number(i+1)); -+ get(m_aControlY[i], "controly" + OString::number(i+1)); -+ } -+ - // this page needs ExchangeSupport - SetExchangeSupport(); - -@@ -450,6 +461,14 @@ void SvxSlantTabPage::dispose() - m_pMtrRadius.clear(); - m_pFlAngle.clear(); - m_pMtrAngle.clear(); -+ for (int i = 0; i < 2; ++i) -+ { -+ m_aControlGroups[i].clear(); -+ m_aControlGroupX[i].clear(); -+ m_aControlX[i].clear(); -+ m_aControlGroupY[i].clear(); -+ m_aControlY[i].clear(); -+ } - SvxTabPage::dispose(); - } - -@@ -506,10 +525,56 @@ bool SvxSlantTabPage::FillItemSet(SfxItemSet* rAttrs) - rAttrs->Put( SfxBoolItem( SID_ATTR_TRANSFORM_SHEAR_VERTICAL, false ) ); - } - -- return bModified; --} -+ bool bControlPointsChanged = false; -+ for (int i = 0; i < 2; ++i) -+ { -+ bControlPointsChanged |= (m_aControlX[i]->IsValueChangedFromSaved() || -+ m_aControlY[i]->IsValueChangedFromSaved()); -+ } -+ -+ if (!bControlPointsChanged) -+ return bModified; -+ -+ SdrObject* pObj = pView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj(); -+ SdrModel* pModel = pObj->GetModel(); -+ SdrUndoAction* pUndo = pModel->IsUndoEnabled() ? -+ pModel->GetSdrUndoFactory().CreateUndoAttrObject(*pObj) : -+ nullptr; - -+ if (pUndo) -+ pModel->BegUndo(pUndo->GetComment()); -+ -+ EnhancedCustomShape2d aShape(pObj); -+ Rectangle aLogicRect = aShape.GetLogicRect(); -+ -+ for (int i = 0; i < 2; ++i) -+ { -+ if (m_aControlX[i]->IsValueChangedFromSaved() || m_aControlY[i]->IsValueChangedFromSaved()) -+ { -+ Point aNewPosition(GetCoreValue(*m_aControlX[i], ePoolUnit), -+ GetCoreValue(*m_aControlY[i], ePoolUnit)); -+ aNewPosition.Move(aLogicRect.Left(), aLogicRect.Top()); -+ -+ css::awt::Point aPosition; -+ aPosition.X = aNewPosition.X(); -+ aPosition.Y = aNewPosition.Y(); -+ -+ aShape.SetHandleControllerPosition(i, aPosition); -+ } -+ } -+ -+ pObj->SetChanged(); -+ pObj->BroadcastObjectChange(); -+ bModified = true; -+ -+ if (pUndo) -+ { -+ pModel->AddUndo(pUndo); -+ pModel->EndUndo(); -+ } - -+ return bModified; -+} - - void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs) - { -@@ -561,17 +626,76 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs) - } - - m_pMtrAngle->SaveValue(); --} -- - -+ const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); -+ if (rMarkList.GetMarkCount() == 1) -+ { -+ SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); -+ SdrObjKind eKind = (SdrObjKind) pObj->GetObjIdentifier(); -+ if (eKind == OBJ_CUSTOMSHAPE) -+ { -+ EnhancedCustomShape2d aShape(pObj); -+ Point aInitialPosition; -+ for (int i = 0; i < 2; ++i) -+ { -+ if (!aShape.GetHandlePosition(i, aInitialPosition)) -+ break; -+ m_aControlGroups[i]->Enable(); -+ css::awt::Point aPosition; -+ -+ aPosition.X = SAL_MAX_INT32; -+ aPosition.Y = SAL_MAX_INT32; -+ aShape.SetHandleControllerPosition(i, aPosition); -+ Point aMaxPosition; -+ aShape.GetHandlePosition(i, aMaxPosition); -+ -+ aPosition.X = SAL_MIN_INT32; -+ aPosition.Y = SAL_MIN_INT32; -+ aShape.SetHandleControllerPosition(i, aPosition); -+ Point aMinPosition; -+ aShape.GetHandlePosition(i, aMinPosition); -+ -+ Rectangle aLogicRect = aShape.GetLogicRect(); -+ aMaxPosition.Move(-aLogicRect.Left(), -aLogicRect.Top()); -+ aMinPosition.Move(-aLogicRect.Left(), -aLogicRect.Top()); -+ -+ aPosition.X = aInitialPosition.X(); -+ aPosition.Y = aInitialPosition.Y(); -+ aInitialPosition.Move(-aLogicRect.Left(), -aLogicRect.Top()); -+ aShape.SetHandleControllerPosition(i, aPosition); -+ -+ SetMetricValue(*m_aControlX[i], aInitialPosition.X(), ePoolUnit); -+ SetMetricValue(*m_aControlY[i], aInitialPosition.Y(), ePoolUnit); -+ -+ if (aMaxPosition.X() == aMinPosition.X()) -+ m_aControlGroupX[i]->Disable(); -+ else -+ { -+ m_aControlX[i]->SetMin(aMinPosition.X(), FUNIT_MM); -+ m_aControlX[i]->SetMax(aMaxPosition.X(), FUNIT_MM); -+ } -+ if (aMaxPosition.Y() == aMinPosition.Y()) -+ m_aControlGroupY[i]->Disable(); -+ else -+ { -+ m_aControlY[i]->SetMin(aMinPosition.Y(), FUNIT_MM); -+ m_aControlY[i]->SetMax(aMaxPosition.Y(), FUNIT_MM); -+ } -+ } -+ } -+ } -+ for (int i = 0; i < 2; ++i) -+ { -+ m_aControlX[i]->SaveValue(); -+ m_aControlY[i]->SaveValue(); -+ } -+} - - VclPtr SvxSlantTabPage::Create( vcl::Window* pWindow, const SfxItemSet* rOutAttrs ) - { - return VclPtr::Create( pWindow, *rOutAttrs ); - } - -- -- - void SvxSlantTabPage::ActivatePage( const SfxItemSet& rSet ) - { - SfxRectangleItem const * pRectItem = NULL; -@@ -620,7 +744,6 @@ SvxPositionSizeTabPage::SvxPositionSizeTabPage(vcl::Window* pParent, const SfxIt - , mfOldWidth(0.0) - , mfOldHeight(0.0) - { -- - get(m_pFlPosition, "FL_POSITION"); - get(m_pMtrPosX, "MTR_FLD_POS_X"); - get(m_pMtrPosY, "MTR_FLD_POS_Y"); -diff --git a/cui/uiconfig/ui/slantcornertabpage.ui b/cui/uiconfig/ui/slantcornertabpage.ui -index 37b7b0e..b3ce646 100644 ---- a/cui/uiconfig/ui/slantcornertabpage.ui -+++ b/cui/uiconfig/ui/slantcornertabpage.ui -@@ -13,12 +13,132 @@ - 1 - 10 - -- -+ - True - False - 6 -- vertical -- 12 -+ 24 -+ 12 -+ -+ -+ True -+ False -+ False -+ 0 -+ none -+ -+ -+ True -+ False -+ 6 -+ 12 -+ -+ -+ True -+ False -+ 12 -+ 6 -+ -+ -+ True -+ False -+ 12 -+ -+ -+ True -+ False -+ _X: -+ True -+ controlx1:0.00cm -+ 0 -+ -+ -+ False -+ True -+ 0 -+ -+ -+ -+ -+ True -+ True -+ -+ 0.00 -+ 2 -+ -+ -+ False -+ True -+ 1 -+ -+ -+ -+ -+ 0 -+ 0 -+ -+ -+ -+ -+ True -+ False -+ 12 -+ -+ -+ True -+ False -+ _Y: -+ True -+ controly1:0.00cm -+ 0 -+ -+ -+ False -+ True -+ 0 -+ -+ -+ -+ -+ True -+ True -+ -+ 0.00 -+ 2 -+ -+ -+ False -+ True -+ 1 -+ -+ -+ -+ -+ 0 -+ 1 -+ -+ -+ -+ -+ -+ -+ -+ -+ True -+ False -+ Control Point 1 -+ 0 -+ -+ -+ -+ -+ -+ -+ -+ 0 -+ 1 -+ -+ - - - True -@@ -32,37 +152,36 @@ - 6 - 12 - -- -+ - True - False -- 12 -+ 12 - - - True - False -- 0 - _Radius: - True - MTR_FLD_RADIUS:0.00cm -+ 0 - - -- False -- True -- 0 -+ 0 -+ 0 - - - - - True -- False -+ True - -+ 0.00 - adjustmentRADIUS - 2 - - -- False -- True -- 1 -+ 1 -+ 0 - - - -@@ -73,8 +192,8 @@ - - True - False -- 0 - Corner Radius -+ 0 - - - -@@ -82,9 +201,8 @@ - - - -- False -- True -- 0 -+ 0 -+ 0 - - - -@@ -100,37 +218,36 @@ - 6 - 12 - -- -+ - True - False -- 12 -+ 12 - - - True - False -- 0 - _Angle: - True - MTR_FLD_ANGLE:0.00degrees -+ 0 - - -- False -- True -- 0 -+ 0 -+ 0 - - - - - True -- False -+ True - -+ 0.00 - adjustmentSLANT - 2 - - -- False -- True -- 1 -+ 1 -+ 0 - - - -@@ -141,8 +258,128 @@ - - True - False -- 0 - Slant -+ 0 -+ -+ -+ -+ -+ -+ -+ -+ 1 -+ 0 -+ -+ -+ -+ -+ True -+ False -+ False -+ 0 -+ none -+ -+ -+ True -+ False -+ 6 -+ 12 -+ -+ -+ True -+ False -+ 12 -+ 6 -+ -+ -+ True -+ False -+ 12 -+ -+ -+ True -+ False -+ _X: -+ True -+ controlx2:0.00cm -+ 0 -+ -+ -+ False -+ True -+ 0 -+ -+ -+ -+ -+ True -+ True -+ -+ 0.00 -+ 2 -+ -+ -+ False -+ True -+ 1 -+ -+ -+ -+ -+ 0 -+ 0 -+ -+ -+ -+ -+ True -+ False -+ 12 -+ -+ -+ True -+ False -+ _Y: -+ True -+ controly2:0.00cm -+ 0 -+ -+ -+ False -+ True -+ 0 -+ -+ -+ -+ -+ True -+ True -+ -+ 0.00 -+ 2 -+ -+ -+ False -+ True -+ 1 -+ -+ -+ -+ -+ 0 -+ 1 -+ -+ -+ -+ -+ -+ -+ -+ -+ True -+ False -+ Control Point 2 -+ 0 - - - -@@ -150,16 +387,19 @@ - - - -- False -- True -- 1 -+ 1 -+ 1 - - - - - -+ -+ - - -+ -+ - - - -@@ -168,4 +408,12 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/include/svx/EnhancedCustomShape2d.hxx b/include/svx/EnhancedCustomShape2d.hxx -index b9ed6f2..b1cc1b7 100644 ---- a/include/svx/EnhancedCustomShape2d.hxx -+++ b/include/svx/EnhancedCustomShape2d.hxx -@@ -191,6 +191,7 @@ class SVX_DLLPUBLIC EnhancedCustomShape2d : public SfxItemSet - SdrObject* CreateObject( bool bLineGeometryNeededOnly ); - void ApplyGluePoints( SdrObject* pObj ); - Rectangle GetTextRect() const; -+ Rectangle GetLogicRect() const { return aLogicRect; } - - sal_uInt32 GetHdlCount() const; - bool GetHandlePosition( const sal_uInt32 nIndex, Point& rReturnPosition ) const; --- -2.4.3 - diff --git a/0001-implement-equalize-width-and-height-for-impress-draw.patch b/0001-implement-equalize-width-and-height-for-impress-draw.patch deleted file mode 100644 index ac1c0fc..0000000 --- a/0001-implement-equalize-width-and-height-for-impress-draw.patch +++ /dev/null @@ -1,370 +0,0 @@ -From bdd33fda337d37431e6bffb99fb90416884981c9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 25 Jun 2015 10:33:06 +0100 -Subject: [PATCH] implement equalize width and height for impress/draw - -Equalize width/height adjusts width/height of selected objects to the -width/height of the last selected object. - -Change-Id: I7c222a6591112cb674322d310ebd87f04a9198bd ---- - include/svx/svdedtv.hxx | 5 +++ - include/svx/svdstr.hrc | 4 +- - include/svx/svxids.hrc | 2 + - .../org/openoffice/Office/UI/GenericCommands.xcu | 10 +++++ - sd/sdi/_drvwsh.sdi | 10 +++++ - sd/source/ui/view/drviews2.cxx | 13 ++++++ - sd/source/ui/view/drviewsj.cxx | 16 ++++++-- - sd/uiconfig/sdraw/menubar/menubar.xml | 3 ++ - svx/inc/globlmn_tmpl.hrc | 20 +++++++++ - svx/sdi/svx.sdi | 47 ++++++++++++++++++++++ - svx/source/svdraw/svdedtv2.cxx | 38 +++++++++++++++++ - svx/source/svdraw/svdstr.src | 8 ++++ - 12 files changed, 171 insertions(+), 5 deletions(-) - -diff --git a/include/svx/svdedtv.hxx b/include/svx/svdedtv.hxx -index cdc2308..b109e0c 100644 ---- a/include/svx/svdedtv.hxx -+++ b/include/svx/svdedtv.hxx -@@ -272,6 +272,11 @@ public: - // for distribution dialog function - void DistributeMarkedObjects(); - -+ // for setting either the width or height of all selected -+ // objects to the width/height of the last selected object -+ // of the selection -+ void EqualizeMarkedObjects(bool bWidth); -+ - // Decompose marked polypolygon objects into polygons. - // Grouped objects are searched and decomposed, if all member objects are PathObjs. - // bMakeLines=TRUE: all polygones are decomposed into single lines resp. bezier segments -diff --git a/include/svx/svdstr.hrc b/include/svx/svdstr.hrc -index 90ef697..36e8719 100644 ---- a/include/svx/svdstr.hrc -+++ b/include/svx/svdstr.hrc -@@ -241,7 +241,9 @@ - #define STR_EditMergeSubstractPoly (STR_EditBegin + 55) - #define STR_EditMergeIntersectPoly (STR_EditBegin + 56) - #define STR_DistributeMarkedObjects (STR_EditBegin + 57) --#define STR_EditEnd (STR_DistributeMarkedObjects) -+#define STR_EqualizeWidthMarkedObjects (STR_EditBegin + 58) -+#define STR_EqualizeHeightMarkedObjects (STR_EditBegin + 59) -+#define STR_EditEnd (STR_EqualizeHeightMarkedObjects) - - #define STR_ExchangeBegin (STR_EditEnd+1) - #define STR_ExchangePaste (STR_ExchangeBegin +0) -diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc -index 5b8efbc..67ee3da 100644 ---- a/include/svx/svxids.hrc -+++ b/include/svx/svxids.hrc -@@ -113,6 +113,8 @@ - #define SID_POLY_INTERSECT (SID_SFX_START + 681) - #define SID_POLY_FORMEN (SID_SFX_START + 682) - #define SID_DISTRIBUTE_DLG (SID_SFX_START + 683) -+#define SID_EQUALIZEWIDTH (SID_SFX_START + 684) -+#define SID_EQUALIZEHEIGHT (SID_SFX_START + 685) - - // Basic IDE-Id's - -diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu -index 1c679bd..d221d56 100644 ---- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu -+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu -@@ -3472,6 +3472,16 @@ - ~Subtract - - -+ -+ -+ Equalize ~Width -+ -+ -+ -+ -+ Equalize ~Height -+ -+ - - - Superscript -diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi -index 0b5469bf..6b2f17c 100644 ---- a/sd/sdi/_drvwsh.sdi -+++ b/sd/sdi/_drvwsh.sdi -@@ -507,6 +507,16 @@ interface DrawView - ExecMethod = FuTemporary ; - StateMethod = GetMenuState ; - ] -+ SID_EQUALIZEWIDTH // ole : no, status : ? -+ [ -+ ExecMethod = FuTemporary ; -+ StateMethod = GetMenuState ; -+ ] -+ SID_EQUALIZEHEIGHT // ole : no, status : ? -+ [ -+ ExecMethod = FuTemporary ; -+ StateMethod = GetMenuState ; -+ ] - SID_CONNECT // ole : no, status : ? - [ - ExecMethod = FuTemporary ; -diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx -index ffbb503..90c3d59 100644 ---- a/sd/source/ui/view/drviews2.cxx -+++ b/sd/source/ui/view/drviews2.cxx -@@ -2272,6 +2272,19 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) - } - break; - -+ case SID_EQUALIZEWIDTH: -+ case SID_EQUALIZEHEIGHT: -+ { -+ // End text edit to avoid conflicts -+ if(mpDrawView->IsTextEdit()) -+ mpDrawView->SdrEndTextEdit(); -+ -+ mpDrawView->EqualizeMarkedObjects(nSId == SID_EQUALIZEWIDTH); -+ Cancel(); -+ rReq.Done (); -+ } -+ break; -+ - case SID_DISMANTLE: // BASIC - { - if ( mpDrawView->IsDismantlePossible(false) ) -diff --git a/sd/source/ui/view/drviewsj.cxx b/sd/source/ui/view/drviewsj.cxx -index 857601f..10a3f5a 100644 ---- a/sd/source/ui/view/drviewsj.cxx -+++ b/sd/source/ui/view/drviewsj.cxx -@@ -284,13 +284,15 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet ) - rSet.Put(SfxBoolItem(SID_OUTLINE_TEXT_AUTOFIT, bSet)); - } - -- rSet.DisableItem( SID_GROUP ); -- rSet.DisableItem( SID_COMBINE ); -+ rSet.DisableItem(SID_GROUP); -+ rSet.DisableItem(SID_COMBINE); - rSet.DisableItem(SID_DISTRIBUTE_DLG); - rSet.DisableItem(SID_POLY_MERGE); - rSet.DisableItem(SID_POLY_SUBSTRACT); - rSet.DisableItem(SID_POLY_INTERSECT); -- rSet.DisableItem( SID_CONNECT ); -+ rSet.DisableItem(SID_EQUALIZEWIDTH); -+ rSet.DisableItem(SID_EQUALIZEHEIGHT); -+ rSet.DisableItem(SID_CONNECT); - } - // multi-selection - else if( nMarkCount > 1 ) -@@ -377,6 +379,8 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet ) - rSet.DisableItem(SID_POLY_MERGE); - rSet.DisableItem(SID_POLY_SUBSTRACT); - rSet.DisableItem(SID_POLY_INTERSECT); -+ rSet.DisableItem(SID_EQUALIZEWIDTH); -+ rSet.DisableItem(SID_EQUALIZEHEIGHT); - } - - if (b3dObj || -@@ -438,10 +442,12 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet ) - } - if ( !mpDrawView->IsCombinePossible(false) ) - { -- rSet.DisableItem( SID_COMBINE ); -+ rSet.DisableItem(SID_COMBINE); - rSet.DisableItem(SID_POLY_MERGE); - rSet.DisableItem(SID_POLY_SUBSTRACT); - rSet.DisableItem(SID_POLY_INTERSECT); -+ rSet.DisableItem(SID_EQUALIZEWIDTH); -+ rSet.DisableItem(SID_EQUALIZEHEIGHT); - } - if ( !mpDrawView->IsCombinePossible(true) ) - { -@@ -501,6 +507,8 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet ) - rSet.DisableItem(SID_POLY_MERGE); - rSet.DisableItem(SID_POLY_SUBSTRACT); - rSet.DisableItem(SID_POLY_INTERSECT); -+ rSet.DisableItem(SID_EQUALIZEWIDTH); -+ rSet.DisableItem(SID_EQUALIZEHEIGHT); - rSet.DisableItem( SID_CONNECT ); - rSet.DisableItem( SID_ANIMATION_EFFECTS ); - rSet.DisableItem( SID_MODIFY_FIELD ); -diff --git a/sd/uiconfig/sdraw/menubar/menubar.xml b/sd/uiconfig/sdraw/menubar/menubar.xml -index f12287b..bc8cfee 100644 ---- a/sd/uiconfig/sdraw/menubar/menubar.xml -+++ b/sd/uiconfig/sdraw/menubar/menubar.xml -@@ -346,6 +346,9 @@ - - - -+ -+ -+ - - - -diff --git a/svx/inc/globlmn_tmpl.hrc b/svx/inc/globlmn_tmpl.hrc -index 9d511c8..8d82489 100644 ---- a/svx/inc/globlmn_tmpl.hrc -+++ b/svx/inc/globlmn_tmpl.hrc -@@ -306,6 +306,20 @@ - Command = ".uno:Intersect" ; \ - Text [ en-US ] = "I~ntersect" ; \ - }; -+#define ITEM_EQUALIZEWIDTH \ -+ MenuItem\ -+ {\ -+ Identifier = SID_EQUALIZEWIDTH ; \ -+ Command = ".uno:EqualizeWidth" ; \ -+ Text [ en-US ] = "Equalize ~Width" ; \ -+ }; -+#define ITEM_EQUALIZEHEIGHT \ -+ MenuItem\ -+ {\ -+ Identifier = SID_EQUALIZEHEIGHT ; \ -+ Command = ".uno:EqualizeHeight" ; \ -+ Text [ en-US ] = "Equalize ~Height" ; \ -+ }; - - #define MNSUB_FORMEN \ - MenuItem \ -@@ -320,6 +334,12 @@ - ITEM_POLY_MERGE \ - ITEM_POLY_SUBSTRACT \ - ITEM_POLY_INTERSECT \ -+ MenuItem \ -+ { \ -+ Separator = TRUE; \ -+ }; \ -+ ITEM_EQUALIZEWIDTH \ -+ ITEM_EQUALIZEHEIGHT \ - };\ - };\ - }; -diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi -index 941f3e8..b301c58 100644 ---- a/svx/sdi/svx.sdi -+++ b/svx/sdi/svx.sdi -@@ -11100,6 +11100,53 @@ SfxVoidItem Substract SID_POLY_SUBSTRACT - GroupId = GID_MODIFY; - ] - -+SfxVoidItem EqualizeWidth SID_EQUALIZEWIDTH -+() -+[ -+ /* flags: */ -+ AutoUpdate = FALSE, -+ Cachable = Cachable, -+ FastCall = FALSE, -+ HasCoreId = FALSE, -+ HasDialog = FALSE, -+ ReadOnlyDoc = FALSE, -+ Toggle = FALSE, -+ Container = FALSE, -+ RecordAbsolute = FALSE, -+ RecordPerSet; -+ Synchron; -+ -+ /* config: */ -+ AccelConfig = TRUE, -+ MenuConfig = TRUE, -+ StatusBarConfig = FALSE, -+ ToolBoxConfig = TRUE, -+ GroupId = GID_MODIFY; -+] -+ -+SfxVoidItem EqualizeHeight SID_EQUALIZEHEIGHT -+() -+[ -+ /* flags: */ -+ AutoUpdate = FALSE, -+ Cachable = Cachable, -+ FastCall = FALSE, -+ HasCoreId = FALSE, -+ HasDialog = FALSE, -+ ReadOnlyDoc = FALSE, -+ Toggle = FALSE, -+ Container = FALSE, -+ RecordAbsolute = FALSE, -+ RecordPerSet; -+ Synchron; -+ -+ /* config: */ -+ AccelConfig = TRUE, -+ MenuConfig = TRUE, -+ StatusBarConfig = FALSE, -+ ToolBoxConfig = TRUE, -+ GroupId = GID_MODIFY; -+] - - SfxBoolItem SuperScript SID_SET_SUPER_SCRIPT - -diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx -index 0a60082..ad7dd3f 100644 ---- a/svx/source/svdraw/svdedtv2.cxx -+++ b/svx/source/svdraw/svdedtv2.cxx -@@ -1173,6 +1173,44 @@ void SdrEditView::MergeMarkedObjects(SdrMergeMode eMode) - } - } - -+void SdrEditView::EqualizeMarkedObjects(bool bWidth) -+{ -+ const SdrMarkList& rMarkList = GetMarkedObjectList(); -+ size_t nMarked = rMarkList.GetMarkCount(); -+ -+ if (nMarked < 2) -+ return; -+ -+ SdrObject* pLastSelectedObj = rMarkList.GetMark(nMarked-1)->GetMarkedSdrObj(); -+ Size aLastRectSize(pLastSelectedObj->GetLogicRect().GetSize()); -+ -+ const bool bUndo = IsUndoEnabled(); -+ -+ if (bUndo) -+ BegUndo(); -+ -+ for (size_t a = 0; a < nMarked-1; ++a) -+ { -+ SdrMark* pM = rMarkList.GetMark(a); -+ SdrObject* pObj = pM->GetMarkedSdrObj(); -+ Rectangle aLogicRect(pObj->GetLogicRect()); -+ Size aLogicRectSize(aLogicRect.GetSize()); -+ if (bWidth) -+ aLogicRectSize.Width() = aLastRectSize.Width(); -+ else -+ aLogicRectSize.Height() = aLastRectSize.Height(); -+ aLogicRect.SetSize(aLogicRectSize); -+ pObj->SetLogicRect(aLogicRect); -+ } -+ -+ SetUndoComment( -+ ImpGetResStr(bWidth ? STR_EqualizeWidthMarkedObjects : STR_EqualizeHeightMarkedObjects), -+ rMarkList.GetMarkDescription()); -+ -+ if (bUndo) -+ EndUndo(); -+} -+ - void SdrEditView::CombineMarkedObjects(bool bNoPolyPoly) - { - // #105899# Start of Combine-Undo put to front, else ConvertMarkedToPolyObj would -diff --git a/svx/source/svdraw/svdstr.src b/svx/source/svdraw/svdstr.src -index 364749a..6dc4420 100644 ---- a/svx/source/svdraw/svdstr.src -+++ b/svx/source/svdraw/svdstr.src -@@ -823,6 +823,14 @@ String STR_DistributeMarkedObjects - { - Text [ en-US ] = "Distribute selected objects"; - }; -+String STR_EqualizeWidthMarkedObjects -+{ -+ Text [ en-US ] = "Equalize Width %1"; -+}; -+String STR_EqualizeHeightMarkedObjects -+{ -+ Text [ en-US ] = "Equalize Height %1"; -+}; - String STR_EditCombine_OnePoly - { - Text [ en-US ] = "Combine %1" ; --- -2.4.0 - diff --git a/0001-implement-save-slide-background-for-impress.patch b/0001-implement-save-slide-background-for-impress.patch deleted file mode 100644 index d443779..0000000 --- a/0001-implement-save-slide-background-for-impress.patch +++ /dev/null @@ -1,359 +0,0 @@ -From 402f64fc8464366015259d44e238a77cb7d9d776 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 30 Sep 2015 13:30:36 +0100 -Subject: [PATCH] implement save slide background for impress - -to go along with the existing "set background", -same sort of thing as the competitor's effort - -(cherry picked from commit ed25a000ab67324075e68d9a7f3ca657b4e6a573) - -Change-Id: I2a1106771ead2cd926f3d631850447499340697c ---- - sd/inc/app.hrc | 3 +- - sd/inc/sdcommands.h | 1 + - sd/sdi/_drvwsh.sdi | 5 +++ - sd/sdi/sdraw.sdi | 24 +++++++++++ - sd/source/ui/app/menuids_tmpl.src | 11 ++++- - sd/source/ui/func/fupage.cxx | 85 +++++++++++++++++++++++--------------- - sd/source/ui/inc/DrawViewShell.hxx | 4 ++ - sd/source/ui/view/drviews2.cxx | 1 + - sd/source/ui/view/drviews7.cxx | 25 ++++++++++- - 9 files changed, 122 insertions(+), 37 deletions(-) - -diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc -index 4f3d82e..956c7d4 100644 ---- a/sd/inc/app.hrc -+++ b/sd/inc/app.hrc -@@ -421,7 +421,8 @@ - #define SID_SLIDE_SORTER_MULTI_PANE_GUI (SID_SD_START+421) - - #define SID_SELECT_BACKGROUND (SID_SD_START+422) -- -+#define SID_SAVE_BACKGROUND (SID_SD_START+423) -+ // FREE - // Slots for the tool pane popup - #define SID_TP_APPLY_TO_ALL_SLIDES (SID_SD_START+425) - #define SID_TP_APPLY_TO_SELECTED_SLIDES (SID_SD_START+426) -diff --git a/sd/inc/sdcommands.h b/sd/inc/sdcommands.h -index 2f4bf56..1d3502f 100644 ---- a/sd/inc/sdcommands.h -+++ b/sd/inc/sdcommands.h -@@ -90,6 +90,7 @@ - #define CMD_SID_DELETE_MASTER_PAGE ".uno:DeleteMasterPage" - #define CMD_SID_RENAME_MASTER_PAGE ".uno:RenameMasterPage" - #define CMD_SID_SELECT_BACKGROUND ".uno:SelectBackground" -+#define CMD_SID_SAVE_BACKGROUND ".uno:SaveBackground" - #define CMD_SID_DISPLAY_MASTER_BACKGROUND ".uno:DisplayMasterBackground" - #define CMD_SID_DISPLAY_MASTER_OBJECTS ".uno:DisplayMasterObjects" - #define CMD_SID_TABLE_DISTRIBUTE_COLUMNS ".uno:DistributeColumns" -diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi -index 263a8ed..28ee22c 100644 ---- a/sd/sdi/_drvwsh.sdi -+++ b/sd/sdi/_drvwsh.sdi -@@ -2662,6 +2662,11 @@ interface DrawView - ExecMethod = FuTemporary ; - StateMethod = GetMenuState ; - ] -+ SID_SAVE_BACKGROUND -+ [ -+ ExecMethod = FuTemporary ; -+ StateMethod = GetMenuState ; -+ ] - SID_DISPLAY_MASTER_BACKGROUND - [ - ExecMethod = FuTemporary ; -diff --git a/sd/sdi/sdraw.sdi b/sd/sdi/sdraw.sdi -index 7297c1f..d2d5d28 100644 ---- a/sd/sdi/sdraw.sdi -+++ b/sd/sdi/sdraw.sdi -@@ -6439,6 +6439,30 @@ SfxVoidItem SelectBackground SID_SELECT_BACKGROUND - GroupId = GID_OPTIONS; - ] - -+SfxVoidItem SaveBackground SID_SAVE_BACKGROUND -+() -+[ -+ /* flags: */ -+ AutoUpdate = FALSE, -+ Cachable = Cachable, -+ FastCall = FALSE, -+ HasCoreId = FALSE, -+ HasDialog = TRUE, -+ ReadOnlyDoc = TRUE, -+ Toggle = FALSE, -+ Container = FALSE, -+ RecordAbsolute = FALSE, -+ RecordPerSet; -+ Synchron; -+ -+ /* config: */ -+ AccelConfig = FALSE, -+ MenuConfig = FALSE, -+ StatusBarConfig = FALSE, -+ ToolBoxConfig = FALSE, -+ GroupId = GID_OPTIONS; -+] -+ - SfxBoolItem DisplayMasterBackground SID_DISPLAY_MASTER_BACKGROUND - [ - /* flags: */ -diff --git a/sd/source/ui/app/menuids_tmpl.src b/sd/source/ui/app/menuids_tmpl.src -index bf30830..6917de2 100644 ---- a/sd/source/ui/app/menuids_tmpl.src -+++ b/sd/source/ui/app/menuids_tmpl.src -@@ -138,6 +138,13 @@ - HelpId = CMD_SID_SELECT_BACKGROUND ; \ - Text [ en-US ] = "Set Background Image..." ; \ - }; -+#define MN_SAVE_BACKGROUND \ -+ MenuItem\ -+ {\ -+ Identifier = SID_SAVE_BACKGROUND ; \ -+ HelpId = CMD_SID_SAVE_BACKGROUND ; \ -+ Text [ en-US ] = "Save Background Image..." ; \ -+ }; - #define MN_DISPLAY_MASTER_BACKGROUND \ - MenuItem\ - {\ -@@ -169,6 +176,7 @@ - MN_SELECT_BACKGROUND\ - MN_PAGE_DESIGN\ - MN_RENAME_PAGE\ -+ MN_SAVE_BACKGROUND\ - };\ - };\ - Text [ en-US ] = "Pag~e" ; \ -@@ -200,7 +208,8 @@ - MN_DISPLAY_MASTER_OBJECTS\ - };\ - };\ -- }; -+ }; \ -+ MN_SAVE_BACKGROUND - - // Layer - #define MN_RENAME_LAYER \ -diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx -index 83146e4..d3a053f 100644 ---- a/sd/source/ui/func/fupage.cxx -+++ b/sd/source/ui/func/fupage.cxx -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -164,6 +165,41 @@ void FuPage::Deactivate() - { - } - -+void MergePageBackgroundFilling(SdPage *pPage, SdStyleSheet *pStyleSheet, bool bMasterPage, SfxItemSet& rMergedAttr) -+{ -+ if (bMasterPage) -+ { -+ if (pStyleSheet) -+ mergeItemSetsImpl(rMergedAttr, pStyleSheet->GetItemSet()); -+ } -+ else -+ { -+ // Only this page, get attributes for background fill -+ const SfxItemSet& rBackgroundAttributes = pPage->getSdrPageProperties().GetItemSet(); -+ -+ if(drawing::FillStyle_NONE != static_cast(rBackgroundAttributes.Get(XATTR_FILLSTYLE)).GetValue()) -+ { -+ // page attributes are used, take them -+ rMergedAttr.Put(rBackgroundAttributes); -+ } -+ else -+ { -+ if(pStyleSheet -+ && drawing::FillStyle_NONE != static_cast(pStyleSheet->GetItemSet().Get(XATTR_FILLSTYLE)).GetValue()) -+ { -+ // if the page has no fill style, use the settings from the -+ // background stylesheet (if used) -+ mergeItemSetsImpl(rMergedAttr, pStyleSheet->GetItemSet()); -+ } -+ else -+ { -+ // no fill style from page, start with no fill style -+ rMergedAttr.Put(XFillStyleItem(drawing::FillStyle_NONE)); -+ } -+ } -+ } -+} -+ - const SfxItemSet* FuPage::ExecuteDialog( vcl::Window* pParent ) - { - if (!mpDrawViewShell) -@@ -247,44 +283,27 @@ const SfxItemSet* FuPage::ExecuteDialog( vcl::Window* pParent ) - // merge page background filling to the dialogs input set - if( mbDisplayBackgroundTabPage ) - { -- if( mbMasterPage ) -- { -- if(pStyleSheet) -- mergeItemSetsImpl( aMergedAttr, pStyleSheet->GetItemSet() ); -- } -- else -- { -- // Only this page, get attributes for background fill -- const SfxItemSet& rBackgroundAttributes = mpPage->getSdrPageProperties().GetItemSet(); -- -- if(drawing::FillStyle_NONE != static_cast(rBackgroundAttributes.Get(XATTR_FILLSTYLE)).GetValue()) -- { -- // page attributes are used, take them -- aMergedAttr.Put(rBackgroundAttributes); -- } -- else -- { -- if(pStyleSheet -- && drawing::FillStyle_NONE != static_cast(pStyleSheet->GetItemSet().Get(XATTR_FILLSTYLE)).GetValue()) -- { -- // if the page has no fill style, use the settings from the -- // background stylesheet (if used) -- mergeItemSetsImpl(aMergedAttr, pStyleSheet->GetItemSet()); -- } -- else -- { -- // no fill style from page, start with no fill style -- aMergedAttr.Put(XFillStyleItem(drawing::FillStyle_NONE)); -- } -- } -- } -+ MergePageBackgroundFilling(mpPage, pStyleSheet, mbMasterPage, aMergedAttr); - } - - boost::scoped_ptr< SfxItemSet > pTempSet; - -- if( GetSlotID() == SID_SELECT_BACKGROUND ) -+ const sal_uInt16 nId = GetSlotID(); -+ if (nId == SID_SAVE_BACKGROUND) -+ { -+ const XFillStyleItem& rStyleItem = -+ static_cast(aMergedAttr.Get(XATTR_FILLSTYLE)); -+ if (drawing::FillStyle_BITMAP == (drawing::FillStyle)rStyleItem.GetValue()) -+ { -+ const XFillBitmapItem& rBitmap = -+ static_cast(aMergedAttr.Get(XATTR_FILLBITMAP)); -+ const GraphicObject& rGraphicObj = rBitmap.GetGraphicObject(); -+ GraphicHelper::ExportGraphic(rGraphicObj.GetGraphic(), ""); -+ } -+ } -+ else if (nId == SID_SELECT_BACKGROUND) - { -- SvxOpenGraphicDialog aDlg(SdResId(STR_SET_BACKGROUND_PICTURE)); -+ SvxOpenGraphicDialog aDlg(SdResId(STR_SET_BACKGROUND_PICTURE)); - - if( aDlg.Execute() == GRFILTER_OK ) - { -diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx -index 405e7af..5ec628c 100644 ---- a/sd/source/ui/inc/DrawViewShell.hxx -+++ b/sd/source/ui/inc/DrawViewShell.hxx -@@ -33,6 +33,7 @@ - - class Outliner; - class SdPage; -+class SdStyleSheet; - class SdrExternalToolEdit; - class DrawDocShell; - class TabBar; -@@ -509,6 +510,9 @@ private: - std::vector> m_ExternalEdits; - }; - -+ /// Merge the background properties together and deposit the result in rMergeAttr -+ void MergePageBackgroundFilling(SdPage *pPage, SdStyleSheet *pStyleSheet, bool bMasterPage, SfxItemSet& rMergedAttr); -+ - } // end of namespace sd - - #endif -diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx -index e9c5f00..5c26c55 100644 ---- a/sd/source/ui/view/drviews2.cxx -+++ b/sd/source/ui/view/drviews2.cxx -@@ -1190,6 +1190,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) - break; - - case SID_SELECT_BACKGROUND: -+ case SID_SAVE_BACKGROUND: - case SID_PAGESETUP: // BASIC ?? - { - SetCurrentFunction( FuPage::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) ); -diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx -index 8b6d968..fba8bc1 100644 ---- a/sd/source/ui/view/drviews7.cxx -+++ b/sd/source/ui/view/drviews7.cxx -@@ -83,6 +83,7 @@ - #include "fuediglu.hxx" - #include "fubullet.hxx" - #include "fuformatpaintbrush.hxx" -+#include "stlsheet.hxx" - - #include - -@@ -714,6 +715,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) - { - rSet.DisableItem(SID_PRESENTATION_LAYOUT); - rSet.DisableItem(SID_SELECT_BACKGROUND); -+ rSet.DisableItem(SID_SAVE_BACKGROUND); - } - - if (mePageKind == PK_NOTES) -@@ -730,6 +732,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) - rSet.DisableItem(SID_MODIFYPAGE); - - rSet.DisableItem(SID_SELECT_BACKGROUND); -+ rSet.DisableItem(SID_SAVE_BACKGROUND); - rSet.DisableItem(SID_INSERTLAYER); - rSet.DisableItem(SID_LAYERMODE); - rSet.DisableItem(SID_INSERTFILE); -@@ -750,6 +753,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) - rSet.DisableItem(SID_INSERTFILE); - rSet.DisableItem(SID_PAGEMODE); - rSet.DisableItem(SID_SELECT_BACKGROUND); -+ rSet.DisableItem(SID_SAVE_BACKGROUND); - } - else - { -@@ -1646,8 +1650,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) - || rSet.GetItemState(SID_DISPLAY_MASTER_OBJECTS) == SfxItemState::DEFAULT) - { - SdPage* pPage = GetActualPage(); -- if (pPage != NULL -- && GetDoc() != NULL) -+ if (pPage != NULL && GetDoc() != NULL) - { - SetOfByte aVisibleLayers = pPage->TRG_GetMasterPageVisibleLayers(); - SdrLayerAdmin& rLayerAdmin = GetDoc()->GetLayerAdmin(); -@@ -1668,6 +1671,24 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) - } - #endif - -+ if (rSet.GetItemState(SID_SAVE_BACKGROUND) == SfxItemState::DEFAULT) -+ { -+ bool bDisableSaveBackground = true; -+ SdPage* pPage = GetActualPage(); -+ if (pPage != NULL && GetDoc() != NULL) -+ { -+ SfxItemSet aMergedAttr(GetDoc()->GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST, 0); -+ SdStyleSheet* pStyleSheet = pPage->getPresentationStyle(HID_PSEUDOSHEET_BACKGROUND); -+ MergePageBackgroundFilling(pPage, pStyleSheet, meEditMode == EM_MASTERPAGE, aMergedAttr); -+ if (drawing::FillStyle_BITMAP == static_cast(aMergedAttr.Get(XATTR_FILLSTYLE)).GetValue()) -+ { -+ bDisableSaveBackground = false; -+ } -+ } -+ if (bDisableSaveBackground) -+ rSet.DisableItem(SID_SAVE_BACKGROUND); -+ } -+ - GetModeSwitchingMenuState (rSet); - } - --- -2.4.3 - diff --git a/0001-implement-undo-for-equalize-marked-objects.patch b/0001-implement-undo-for-equalize-marked-objects.patch deleted file mode 100644 index 60d4121..0000000 --- a/0001-implement-undo-for-equalize-marked-objects.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 4c8197bc270ec65c147af3388e35403aa77fd02f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 28 Aug 2015 13:08:44 +0100 -Subject: [PATCH] implement undo for equalize-marked-objects - -Change-Id: I245e08674b52c2a5648e9d7762101b8057fd30e9 ---- - svx/source/svdraw/svdedtv2.cxx | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx -index 75c884c..719355d 100644 ---- a/svx/source/svdraw/svdedtv2.cxx -+++ b/svx/source/svdraw/svdedtv2.cxx -@@ -1200,6 +1200,8 @@ void SdrEditView::EqualizeMarkedObjects(bool bWidth) - else - aLogicRectSize.Height() = aLastRectSize.Height(); - aLogicRect.SetSize(aLogicRectSize); -+ if (bUndo) -+ AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pObj)); - pObj->SetLogicRect(aLogicRect); - } - --- -2.4.0 - diff --git a/0001-implement-undo-of-delete-impress-cell-contents.patch b/0001-implement-undo-of-delete-impress-cell-contents.patch deleted file mode 100644 index 287a0cf..0000000 --- a/0001-implement-undo-of-delete-impress-cell-contents.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 35a3fb2ca34b30a1bdaf64f0091fcd42af6bfd2c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 1 Sep 2015 16:32:15 +0100 -Subject: [PATCH] implement undo of delete impress cell contents - -Change-Id: I7aa99f3a6668e66b8d02e20b7ea1cf0862e5d760 -(cherry picked from commit d38e4b2ee73ad38881465f9f97eb8d8397ee98ff) ---- - include/svx/svdstr.hrc | 1 + - svx/source/svdraw/svdstr.src | 5 +++++ - svx/source/table/tablecontroller.cxx | 15 +++++++++++++-- - 3 files changed, 19 insertions(+), 2 deletions(-) - -diff --git a/include/svx/svdstr.hrc b/include/svx/svdstr.hrc -index 90ef697..f45b55f 100644 ---- a/include/svx/svdstr.hrc -+++ b/include/svx/svdstr.hrc -@@ -711,5 +711,6 @@ - #define STR_TABLE_STYLE (SIP_Begin + 274) - #define STR_TABLE_STYLE_SETTINGS (SIP_Begin + 275) - #define SIP_SA_CROP_MARKERS (SIP_Begin + 276) -+#define STR_TABLE_DELETE_CELL_CONTENTS (SIP_Begin + 277) - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/svx/source/svdraw/svdstr.src b/svx/source/svdraw/svdstr.src -index 364749a..c7977c1 100644 ---- a/svx/source/svdraw/svdstr.src -+++ b/svx/source/svdraw/svdstr.src -@@ -2770,6 +2770,11 @@ String STR_TABLE_DISTRIBUTE_COLUMNS - Text [ en-US ] = "Distribute columns" ; - }; - -+String STR_TABLE_DELETE_CELL_CONTENTS -+{ -+ Text [ en-US ] = "Delete cell contents" ; -+}; -+ - String STR_TABLE_STYLE - { - Text [ en-US ] = "Table style" ; -diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx -index 64b40da..6a8bd3f 100644 ---- a/svx/source/table/tablecontroller.cxx -+++ b/svx/source/table/tablecontroller.cxx -@@ -1331,6 +1331,10 @@ bool SvxTableController::DeleteMarked() - { - if( mxTable.is() ) - { -+ const bool bUndo = mpModel && mpModel->IsUndoEnabled(); -+ if (bUndo) -+ mpModel->BegUndo(ImpGetResStr(STR_TABLE_DELETE_CELL_CONTENTS)); -+ - CellPos aStart, aEnd; - getSelectedCells( aStart, aEnd ); - for( sal_Int32 nRow = aStart.mnRow; nRow <= aEnd.mnRow; nRow++ ) -@@ -1338,11 +1342,18 @@ bool SvxTableController::DeleteMarked() - for( sal_Int32 nCol = aStart.mnCol; nCol <= aEnd.mnCol; nCol++ ) - { - CellRef xCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nCol, nRow ).get() ) ); -- if( xCell.is() ) -- xCell->SetOutlinerParaObject( 0 ); -+ if (xCell.is() && xCell->hasText()) -+ { -+ if (bUndo) -+ xCell->AddUndo(); -+ xCell->SetOutlinerParaObject(0); -+ } - } - } - -+ if (bUndo) -+ mpModel->EndUndo(); -+ - UpdateTableShape(); - return true; - } --- -2.4.0 - diff --git a/0001-never-run-autogen.sh.patch b/0001-never-run-autogen.sh.patch index b65f8a7..4b9deaf 100644 --- a/0001-never-run-autogen.sh.patch +++ b/0001-never-run-autogen.sh.patch @@ -1,4 +1,4 @@ -From 820efe20886e41fdea8353f54e8a54bba7fccd84 Mon Sep 17 00:00:00 2001 +From 3b80333b8d98e74bef22e5484b9db2b79310303f Mon Sep 17 00:00:00 2001 From: rpmbuild Date: Thu, 20 Feb 2014 19:44:49 +0100 Subject: [PATCH] never run autogen.sh @@ -8,11 +8,11 @@ Subject: [PATCH] never run autogen.sh 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in -index 206f5ed..14620da 100644 +index 41479bd..a5d7368 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -14,7 +14,7 @@ MAKECMDGOALS?=all - SHELL := @SHELL_BASH@ +@@ -19,7 +19,7 @@ build_goal:=$(if $(filter build check,$(MAKECMDGOALS)),all)\ + SRCDIR := @SRC_ROOT@ BUILDDIR := @BUILDDIR@ -GIT_BUILD := $(if $(wildcard $(SRCDIR)/.git),T) @@ -21,5 +21,5 @@ index 206f5ed..14620da 100644 # Run autogen.sh if needed and force make to restart itself. # ... but there are several cases where we do not want to run -- -1.8.5.3 +2.1.0 diff --git a/0001-rhbz-1233420-handle-inexistent-cond.-format.patch b/0001-rhbz-1233420-handle-inexistent-cond.-format.patch deleted file mode 100644 index 63f3948..0000000 --- a/0001-rhbz-1233420-handle-inexistent-cond.-format.patch +++ /dev/null @@ -1,97 +0,0 @@ -From b12cd99fd46e81e710479e2530e80c75404f3443 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Fri, 19 Jun 2015 13:52:49 +0200 -Subject: [PATCH] rhbz#1233420 handle inexistent cond. format - -Change-Id: I3fbbd0f3b42a3be1c2a9c54eb8f35dd18f550b16 ---- - sc/source/core/data/table4.cxx | 45 ++++++++++++++++++++++++++++-------------- - 1 file changed, 30 insertions(+), 15 deletions(-) - -diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx -index a1bc8ee5..bc8e40e 100644 ---- a/sc/source/core/data/table4.cxx -+++ b/sc/source/core/data/table4.cxx -@@ -618,9 +618,12 @@ void ScTable::FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, - itr != itrEnd; ++itr) - { - ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr); -- ScRangeList aRange = pCondFormat->GetRange(); -- aRange.Join(ScRange(nCol, nY1, nTab, nCol, nY2, nTab)); -- pCondFormat->SetRange(aRange); -+ if (pCondFormat) -+ { -+ ScRangeList aRange = pCondFormat->GetRange(); -+ aRange.Join(ScRange(nCol, nY1, nTab, nCol, nY2, nTab)); -+ pCondFormat->SetRange(aRange); -+ } - } - } - -@@ -648,9 +651,12 @@ void ScTable::FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, - itr != itrEnd; ++itr) - { - ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr); -- ScRangeList aRange = pCondFormat->GetRange(); -- aRange.Join(ScRange(nCol, nRow, nTab, nCol, nRow, nTab)); -- pCondFormat->SetRange(aRange); -+ if (pCondFormat) -+ { -+ ScRangeList aRange = pCondFormat->GetRange(); -+ aRange.Join(ScRange(nCol, nRow, nTab, nCol, nRow, nTab)); -+ pCondFormat->SetRange(aRange); -+ } - } - } - -@@ -1568,9 +1574,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, - itr != itrEnd; ++itr) - { - ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr); -- ScRangeList aRange = pCondFormat->GetRange(); -- aRange.Join(ScRange(nCol, nIMin, nTab, nCol, nIMax, nTab)); -- pCondFormat->SetRange(aRange); -+ if (pCondFormat) -+ { -+ ScRangeList aRange = pCondFormat->GetRange(); -+ aRange.Join(ScRange(nCol, nIMin, nTab, nCol, nIMax, nTab)); -+ pCondFormat->SetRange(aRange); -+ } - } - } - else -@@ -1585,9 +1594,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, - itr != itrEnd; ++itr) - { - ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr); -- ScRangeList aRange = pCondFormat->GetRange(); -- aRange.Join(ScRange(nCol, nAtRow, nTab, nCol, nAtRow, nTab)); -- pCondFormat->SetRange(aRange); -+ if (pCondFormat) -+ { -+ ScRangeList aRange = pCondFormat->GetRange(); -+ aRange.Join(ScRange(nCol, nAtRow, nTab, nCol, nAtRow, nTab)); -+ pCondFormat->SetRange(aRange); -+ } - } - } - } -@@ -1603,9 +1615,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, - itr != itrEnd; ++itr) - { - ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr); -- ScRangeList aRange = pCondFormat->GetRange(); -- aRange.Join(ScRange(nAtCol, static_cast(nRow), nTab, nAtCol, static_cast(nRow), nTab)); -- pCondFormat->SetRange(aRange); -+ if (pCondFormat) -+ { -+ ScRangeList aRange = pCondFormat->GetRange(); -+ aRange.Join(ScRange(nAtCol, static_cast(nRow), nTab, nAtCol, static_cast(nRow), nTab)); -+ pCondFormat->SetRange(aRange); -+ } - } - } - } --- -2.4.2 - diff --git a/0001-time-stamp-object-selections-and-use-newest-as-ref-f.patch b/0001-time-stamp-object-selections-and-use-newest-as-ref-f.patch deleted file mode 100644 index b801190..0000000 --- a/0001-time-stamp-object-selections-and-use-newest-as-ref-f.patch +++ /dev/null @@ -1,124 +0,0 @@ -From aff2d164a982917c57be5e8a18c6c1366b836c09 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 28 Aug 2015 15:13:41 +0100 -Subject: [PATCH] time stamp object selections and use newest as ref for - equalization - -Change-Id: I1bf22ddbaf263b240288f70d03d6949611f86b69 ---- - include/svx/svdmark.hxx | 8 ++++++++ - svx/source/svdraw/svdedtv2.cxx | 18 ++++++++++++++++-- - svx/source/svdraw/svdmark.cxx | 12 +++++++++--- - 3 files changed, 33 insertions(+), 5 deletions(-) - -diff --git a/include/svx/svdmark.hxx b/include/svx/svdmark.hxx -index cba0a75..aee9dd7 100644 ---- a/include/svx/svdmark.hxx -+++ b/include/svx/svdmark.hxx -@@ -42,7 +42,10 @@ typedef std::set SdrUShortCont; - // Everything a View needs to know about a selected object - class SVX_DLLPUBLIC SdrMark : public sdr::ObjectUser - { -+private: -+ void setTime(); - protected: -+ sal_Int64 mnTimeStamp; - SdrObject* mpSelectedSdrObject; // the selected object - SdrPageView* mpPageView; - SdrUShortCont* mpPoints; // Selected Points -@@ -145,6 +148,11 @@ public: - - return mpGluePoints; - } -+ -+ sal_Int64 getTimeStamp() const -+ { -+ return mnTimeStamp; -+ } - }; - - class SVX_DLLPUBLIC SdrMarkList -diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx -index 719355d..090efa7 100644 ---- a/svx/source/svdraw/svdedtv2.cxx -+++ b/svx/source/svdraw/svdedtv2.cxx -@@ -1181,7 +1181,19 @@ void SdrEditView::EqualizeMarkedObjects(bool bWidth) - if (nMarked < 2) - return; - -- SdrObject* pLastSelectedObj = rMarkList.GetMark(nMarked-1)->GetMarkedSdrObj(); -+ size_t nLastSelected = 0; -+ sal_Int64 nLastSelectedTime = rMarkList.GetMark(0)->getTimeStamp(); -+ for (size_t a = 1; a < nMarked; ++a) -+ { -+ sal_Int64 nCandidateTime = rMarkList.GetMark(a)->getTimeStamp(); -+ if (nCandidateTime > nLastSelectedTime) -+ { -+ nLastSelectedTime = nCandidateTime; -+ nLastSelected = a; -+ } -+ } -+ -+ SdrObject* pLastSelectedObj = rMarkList.GetMark(nLastSelected)->GetMarkedSdrObj(); - Size aLastRectSize(pLastSelectedObj->GetLogicRect().GetSize()); - - const bool bUndo = IsUndoEnabled(); -@@ -1189,8 +1201,10 @@ void SdrEditView::EqualizeMarkedObjects(bool bWidth) - if (bUndo) - BegUndo(); - -- for (size_t a = 0; a < nMarked-1; ++a) -+ for (size_t a = 0; a < nMarked; ++a) - { -+ if (a == nLastSelected) -+ continue; - SdrMark* pM = rMarkList.GetMark(a); - SdrObject* pObj = pM->GetMarkedSdrObj(); - Rectangle aLogicRect(pObj->GetLogicRect()); -diff --git a/svx/source/svdraw/svdmark.cxx b/svx/source/svdraw/svdmark.cxx -index 7ddde61..8b7f3e09c 100644 ---- a/svx/source/svdraw/svdmark.cxx -+++ b/svx/source/svdraw/svdmark.cxx -@@ -38,8 +38,12 @@ - #include - #include - -- -- -+void SdrMark::setTime() -+{ -+ TimeValue aNow; -+ osl_getSystemTime(&aNow); -+ mnTimeStamp = sal_Int64(aNow.Seconds) * 1000000000L + aNow.Nanosec; -+} - - SdrMark::SdrMark(SdrObject* pNewObj, SdrPageView* pNewPageView) - : mpSelectedSdrObject(pNewObj), -@@ -55,10 +59,12 @@ SdrMark::SdrMark(SdrObject* pNewObj, SdrPageView* pNewPageView) - { - mpSelectedSdrObject->AddObjectUser( *this ); - } -+ setTime(); - } - - SdrMark::SdrMark(const SdrMark& rMark) - : ObjectUser(), -+ mnTimeStamp(0), - mpSelectedSdrObject(0L), - mpPageView(0L), - mpPoints(0L), -@@ -117,10 +123,10 @@ void SdrMark::SetMarkedSdrObj(SdrObject* pNewObj) - } - } - -- - SdrMark& SdrMark::operator=(const SdrMark& rMark) - { - SetMarkedSdrObj(rMark.mpSelectedSdrObject); -+ mnTimeStamp = rMark.mnTimeStamp; - mpPageView = rMark.mpPageView; - mbCon1 = rMark.mbCon1; - mbCon2 = rMark.mbCon2; --- -2.4.0 - diff --git a/0001-use-far-simpler-size-group.patch b/0001-use-far-simpler-size-group.patch new file mode 100644 index 0000000..3743223 --- /dev/null +++ b/0001-use-far-simpler-size-group.patch @@ -0,0 +1,51 @@ +From ab6d77264008cb94ff387b4011961f82fcd5754c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Tue, 20 Oct 2015 10:10:16 +0100 +Subject: [PATCH] use far simpler size group + +Change-Id: I54d658951fb90892d006b265e3d35d91991e73d8 +--- + cui/uiconfig/ui/slantcornertabpage.ui | 18 ++++-------------- + 1 file changed, 4 insertions(+), 14 deletions(-) + +diff --git a/cui/uiconfig/ui/slantcornertabpage.ui b/cui/uiconfig/ui/slantcornertabpage.ui +index 2751144..b3ce646 100644 +--- a/cui/uiconfig/ui/slantcornertabpage.ui ++++ b/cui/uiconfig/ui/slantcornertabpage.ui +@@ -394,8 +394,12 @@ + + + ++ ++ + + ++ ++ + + + +@@ -404,20 +408,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + +-- +2.5.0 + diff --git a/0002-Related-tdf-93676-msword-wraps-slightly-differently-.patch b/0002-Related-tdf-93676-msword-wraps-slightly-differently-.patch deleted file mode 100644 index 90ddc6b..0000000 --- a/0002-Related-tdf-93676-msword-wraps-slightly-differently-.patch +++ /dev/null @@ -1,61 +0,0 @@ -From d9aed0bc2e741fa02a6ffdf90193aae7ce471e52 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 8 Sep 2015 09:45:12 +0100 -Subject: [PATCH] Related: tdf#93676 msword wraps slightly differently than us - -Change-Id: I688d4d193709d9c9829065c87f0d656a94fd9f16 ---- - sw/source/filter/ww8/docxsdrexport.cxx | 16 +++++++++++++++- - sw/source/filter/ww8/wrtw8esh.cxx | 2 +- - 2 files changed, 16 insertions(+), 2 deletions(-) - -diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx -index 02b134a..71a357e 100644 ---- a/sw/source/filter/ww8/docxsdrexport.cxx -+++ b/sw/source/filter/ww8/docxsdrexport.cxx -@@ -516,6 +516,21 @@ void DocxSdrExport::startDMLAnchorInline(const SwFrameFormat* pFrameFormat, cons - } - m_pImpl->m_pSerializer->endElementNS(XML_wp, XML_positionH); - m_pImpl->m_pSerializer->startElementNS(XML_wp, XML_positionV, XML_relativeFrom, relativeFromV, FSEND); -+ -+ sal_Int64 nTwipstoEMU = TwipsToEMU(aPos.Y); -+ -+ // tdf#93675, 0 below line/paragraph and/or top line/paragraph with -+ // wrap top+bottom or other wraps is affecting the line directly -+ // above the anchor line, which seems odd, but a tiny adjustment -+ // here to bring the top down convinces msoffice to wrap like us -+ if (nTwipstoEMU == 0 && -+ (strcmp(relativeFromV, "line") == 0 || strcmp(relativeFromV, "paragraph") == 0) && -+ (!alignV || strcmp(alignV, "top") == 0)) -+ { -+ alignV = NULL; -+ nTwipstoEMU = 635; -+ } -+ - if (alignV != NULL) - { - m_pImpl->m_pSerializer->startElementNS(XML_wp, XML_align, FSEND); -@@ -525,7 +540,6 @@ void DocxSdrExport::startDMLAnchorInline(const SwFrameFormat* pFrameFormat, cons - else - { - m_pImpl->m_pSerializer->startElementNS(XML_wp, XML_posOffset, FSEND); -- sal_Int64 nTwipstoEMU = TwipsToEMU(aPos.Y); - if (nTwipstoEMU > MAX_INTEGER_VALUE) - { - nTwipstoEMU = MAX_INTEGER_VALUE; -diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx -index fd6dfbc..2b7cebe 100644 ---- a/sw/source/filter/ww8/wrtw8esh.cxx -+++ b/sw/source/filter/ww8/wrtw8esh.cxx -@@ -810,7 +810,7 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const - // wrap top+bottom or other wraps is affecting the line directly - // above the anchor line, which seems odd, but a tiny adjustment - // here to bring the top down convinces msoffice to wrap like us -- if (nTop < 8 && !rFrameFormat.IsInline() && -+ if (nTop == 0 && !rFrameFormat.IsInline() && - rVOr.GetVertOrient() == text::VertOrientation::NONE && - rVOr.GetRelationOrient() == text::RelOrientation::FRAME) - { --- -2.1.0 - diff --git a/libreoffice.spec b/libreoffice.spec index 54918ae..ac7214e 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -1,9 +1,9 @@ # download path contains version without the last (fourth) digit -%define libo_version 5.0.3 +%define libo_version 5.1.0 # Should contain .alphaX / .betaX, if this is pre-release (actually # pre-RC) version. The pre-release string is part of tarball file names, # so we need a way to define it easily at one place. -%define libo_prerelease %{nil} +%define libo_prerelease .alpha1 # rhbz#715152 state vendor %if 0%{?rhel} %define vendoroption --with-vendor="Red Hat, Inc." @@ -52,7 +52,7 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 -Version: %{libo_version}.1 +Version: %{libo_version}.0 Release: 1%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 and CC0 Group: Applications/Productivity @@ -77,9 +77,9 @@ Source9: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zi %if 0%{?rhel} Source10: %{external_url}/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz -Source11: %{external_url}/594eb47b4b1210e25438d51825404d5a-glew-1.10.0.zip +Source11: %{external_url}/3941e9cab2f4f9d8faee3e8d57ae7664-glew-1.12.0.zip Source12: %{external_url}/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip -Source13: %{external_url}/7681383be6ce489d84c1c74f4e7f9643-liborcus-0.7.0.tar.bz2 +Source13: %{external_url}/liborcus-0.9.2.tar.gz # system mdds 0.10.3 causes a crash in sc_ucalc unit test Source14: %{external_url}/mdds_0.12.1.tar.bz2 %global bundling_options %{?bundling_options} --without-system-ucpp --without-system-glew --without-system-glm --without-system-orcus --without-system-mdds @@ -91,8 +91,8 @@ Source18: %{external_url}/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.t Source19: %{external_url}/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2 Source20: %{external_url}/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz Source21: %{external_url}/lcms2-2.6.tar.gz -Source22: %{external_url}/36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2 -Source23: %{external_url}/d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2 +Source22: %{external_url}/80d063d6db4c010e18c606af8aed6231-liblangtag-0.5.7.tar.bz2 +Source23: %{external_url}/boost_1_59_0.tar.bz2 Source24: %{external_url}/harfbuzz-0.9.40.tar.bz2 Source25: %{external_url}/language-subtag-registry-2015-06-08.tar.bz2 %global bundling_options %{?bundling_options} --without-system-mythes --without-system-redland --without-system-libexttextcat --without-system-clucene --without-system-lcms2 --without-system-liblangtag --without-system-boost --without-system-harfbuzz @@ -101,11 +101,11 @@ Source26: %{external_url}/5821b806a98e6c38370970e682ce76e8-libcmis-0.5.0.t Source27: %{external_url}/libcdr-0.1.1.tar.bz2 Source28: %{external_url}/libwpg-0.3.0.tar.bz2 Source29: %{external_url}/libwpd-0.10.0.tar.bz2 -Source30: %{external_url}/libwps-0.4.0.tar.bz2 -Source31: %{external_url}/libvisio-0.1.1.tar.bz2 +Source30: %{external_url}/libwps-0.4.2.tar.bz2 +Source31: %{external_url}/libvisio-0.1.3.tar.bz2 Source32: %{external_url}/libmspub-0.1.2.tar.bz2 Source33: %{external_url}/libodfgen-0.1.4.tar.bz2 -Source34: %{external_url}/libmwaw-0.3.5.tar.bz2 +Source34: %{external_url}/libmwaw-0.3.6.tar.bz2 Source35: %{external_url}/libetonyek-0.1.3.tar.bz2 Source36: %{external_url}/libfreehand-0.1.1.tar.bz2 Source37: %{external_url}/libabw-0.1.1.tar.bz2 @@ -169,7 +169,6 @@ BuildRequires: pkgconfig(cppunit) BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(evolution-data-server-1.2) BuildRequires: pkgconfig(freetype2) -BuildRequires: pkgconfig(gconf-2.0) BuildRequires: pkgconfig(glu) BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(hunspell) @@ -210,7 +209,7 @@ BuildRequires: pkgconfig(libgltf-0.0) BuildRequires: pkgconfig(libmspub-0.1) BuildRequires: pkgconfig(libmwaw-0.3) BuildRequires: pkgconfig(libodfgen-0.1) -BuildRequires: pkgconfig(liborcus-0.8) +BuildRequires: pkgconfig(liborcus-0.10) BuildRequires: pkgconfig(libpagemaker-0.0) BuildRequires: pkgconfig(librevenge-0.0) BuildRequires: pkgconfig(libvisio-0.1) @@ -258,13 +257,6 @@ BuildRequires: pkgconfig(bluez) # java stuff BuildRequires: ant -%if 0%{?rhel} && 0%{?rhel} < 7 -BuildRequires: jakarta-commons-codec -BuildRequires: jakarta-commons-lang -%else -BuildRequires: apache-commons-codec -BuildRequires: apache-commons-lang -%endif BuildRequires: bsh %if 0%{?rhel} && 0%{?rhel} < 7 BuildRequires: hsqldb @@ -321,24 +313,7 @@ Patch14: 0001-never-run-autogen.sh.patch Patch15: 0001-add-X-TryExec-entries-to-desktop-files.patch # not upstreamed Patch16: 0001-disable-PSD-import-test-which-deadlocks-on-ARM.patch -# upstreamed -Patch17: 0001-Resolves-tdf-89905-don-t-copy-palettes-from-shared-t.patch -Patch18: 0001-Resolves-tdf-49407-enable-CaseMap-property-in-impres.patch -Patch19: 0001-rhbz-1233420-handle-inexistent-cond.-format.patch -Patch20: 0001-allow-slide-design-to-affect-multiple-standard-pages.patch -Patch21: 0001-implement-equalize-width-and-height-for-impress-draw.patch -Patch22: 0001-f22-openjdk-for-ppc64le-has-both-these-dirs-but-jawt.patch -Patch23: 0001-implement-undo-for-equalize-marked-objects.patch -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 -Patch28: 0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch -Patch29: 0001-default-to-as-character-caption-contents.patch -Patch30: 0001-Related-tdf-93676-msword-wraps-slightly-differently-.patch -Patch31: 0002-Related-tdf-93676-msword-wraps-slightly-differently-.patch -Patch33: 0001-implement-save-slide-background-for-impress.patch -Patch34: 0001-Related-tdf-72880-presumably-using-startcenter-as-ge.patch -Patch35: 0001-implement-dialog-control-over-enhanced-shape-control.patch +Patch17: 0001-use-far-simpler-size-group.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -1295,6 +1270,7 @@ touch autogen.lastrun --disable-coinmp \ --disable-fetch-external \ --disable-gnome-vfs \ + --disable-introspection \ --disable-openssl \ --enable-evolution2 \ --enable-ext-nlpsolver \ @@ -2027,7 +2003,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libconfigmgrlo.so %{baseinstdir}/program/libdesktopbe1lo.so %{baseinstdir}/program/libfsstoragelo.so -%{baseinstdir}/program/libgconfbe1lo.so %{baseinstdir}/program/libi18npoollo.so %{baseinstdir}/program/libbasegfxlo.so # TODO: shouldn't it have lo suffix? @@ -2462,6 +2437,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %endif %changelog +* Mon Oct 19 2015 David Tardon - 1:5.1.0.0-1.alpha1 +- update to 5.1.0 alpha1 + * Mon Oct 12 2015 David Tardon - 1:5.0.3.1-1 - update to 5.0.3 rc1 diff --git a/openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch b/openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch index 02368bd..c5d167c 100644 --- a/openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch +++ b/openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch @@ -1,4 +1,4 @@ -From 4ee0775161d44acc5089aeec2013d461fe592e23 Mon Sep 17 00:00:00 2001 +From 43b718b8687d087cd6cc28991efb3b7f507e6e3a Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 3 Feb 2014 20:24:50 +0100 Subject: [PATCH] i#86080 unopkg bodge @@ -8,12 +8,12 @@ Subject: [PATCH] i#86080 unopkg bodge 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/desktop/scripts/unopkg.sh b/desktop/scripts/unopkg.sh -index ca1e3bc..6393e99 100755 +index 18d0a73..6bab04f 100755 --- a/desktop/scripts/unopkg.sh +++ b/desktop/scripts/unopkg.sh -@@ -78,6 +78,53 @@ if [ "$(id -u)" -eq "0" ]; then - fi - fi +@@ -61,6 +61,53 @@ do + esac + done +if [ $isnotuser -eq 1 ]; then + echo $@ | grep -q env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY @@ -65,7 +65,7 @@ index ca1e3bc..6393e99 100755 # extend the ld_library_path for java: javaldx checks the sofficerc for us if [ -x "${sd_prog}/javaldx" ] ; then my_path=`"${sd_prog}/javaldx" $BOOTSTRAPVARS \ -@@ -106,6 +153,8 @@ unset XENVIRONMENT +@@ -89,6 +136,8 @@ unset XENVIRONMENT # SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS # execute binary @@ -77,5 +77,5 @@ index ca1e3bc..6393e99 100755 + rm -rf $INSTDIR +fi -- -2.4.2 +2.1.0 diff --git a/sources b/sources index e760ee9..a3f01a1 100644 --- a/sources +++ b/sources @@ -7,6 +7,6 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2. 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz 12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh 4b87018f7fff1d054939d19920b751a0 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2 -e69eae50c31a0458cc242f7d3a11433f libreoffice-5.0.3.1.tar.xz -db459d40448679f611724874ab935e3a libreoffice-help-5.0.3.1.tar.xz -de025d0a76d3df86d1eacab48857afc1 libreoffice-translations-5.0.3.1.tar.xz +146d7f35639c93da3995009b9caabb9d libreoffice-5.1.0.0.alpha1.tar.xz +9e3be1d7779d89f0850da6c776d11489 libreoffice-help-5.1.0.0.alpha1.tar.xz +a6ec18586a09c3d7f136cfc2418df6dd libreoffice-translations-5.1.0.0.alpha1.tar.xz