accessibility/inc/standard/vclxaccessiblelist.hxx | 2 accessibility/source/standard/vclxaccessiblelist.cxx | 10 basic/source/comp/loops.cxx | 5 chart2/qa/extras/data/ods/tdf153706_XY_scatter_chart.ods |binary chart2/qa/extras/uichart.cxx | 54 chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx | 10 chart2/source/controller/chartapiwrapper/ChartDataWrapper.hxx | 11 chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx | 2 comphelper/source/misc/storagehelper.cxx | 1 config_host.mk.in | 1 configure.ac | 20 download.lst | 26 drawinglayer/inc/texture/texture3d.hxx | 2 drawinglayer/source/texture/texture3d.cxx | 12 editeng/source/misc/svxacorr.cxx | 2 external/boost/UnpackedTarball_boost.mk | 1 external/boost/windows-no-utf8-locales.patch.0 | 23 external/gpgmepp/ExternalPackage_gpgmepp.mk | 4 external/gpgmepp/Library_gpgmepp.mk | 1 external/gpgmepp/Wincompatible-function-pointer-types.patch | 4 external/gpgmepp/w32-build-fixes.patch.1 | 19 external/harfbuzz/UnpackedTarball_harfbuzz.mk | 1 external/harfbuzz/tdf159529.patch.0 | 28 external/libxml2/ExternalPackage_libxml2.mk | 2 external/libxml2/libxml2-global-symbols.patch | 8 external/more_fonts/ExternalPackage_noto_kufi_arabic.mk | 4 external/more_fonts/UnpackedTarball_noto_kufi_arabic.mk | 2 external/xmlsec/BCryptKeyDerivation.patch.1 | 51 external/xmlsec/UnpackedTarball_xmlsec.mk | 2 filter/source/xsltfilter/LibXSLTTransformer.cxx | 16 helpcompiler/source/HelpCompiler.cxx | 14 include/svx/dlgctl3d.hxx | 1 include/svx/sidebar/ValueSetWithTextControl.hxx | 1 include/vcl/print.hxx | 1 include/vcl/rendercontext/State.hxx | 4 officecfg/registry/data/org/openoffice/Office/Accelerators.xcu | 205 officecfg/registry/schema/org/openoffice/Office/UI/Infobar.xcs | 4 package/source/zippackage/ZipPackage.cxx | 5 readlicense_oo/license/CREDITS.fodt | 4365 +++++----- ridljar/Jar_libreoffice.mk | 6 ridljar/Jar_unoloader.mk | 8 sc/CppunitTest_sc_filters_test.mk | 1 sc/inc/clipcontext.hxx | 5 sc/inc/drwlayer.hxx | 3 sc/inc/filterentries.hxx | 7 sc/qa/uitest/autofilter2/tdf159420.py | 126 sc/qa/unit/data/ods/tdf160003_page_anchored_object.ods |binary sc/qa/unit/scshapetest.cxx | 24 sc/source/core/data/clipcontext.cxx | 4 sc/source/core/data/column.cxx | 6 sc/source/core/data/column3.cxx | 17 sc/source/core/data/document.cxx | 14 sc/source/core/data/drwlayer.cxx | 142 sc/source/filter/excel/excel.cxx | 4 sc/source/ui/app/inputhdl.cxx | 2 sd/source/ui/animations/CustomAnimationList.cxx | 8 sfx2/source/view/viewfrm.cxx | 117 solenv/bin/assemble-flatpak-appdata.sh | 1 solenv/gbuild/JavaClassSet.mk | 6 starmath/source/document.cxx | 10 svgio/inc/svgstyleattributes.hxx | 12 svgio/inc/svgtoken.hxx | 1 svgio/qa/cppunit/SvgImportTest.cxx | 17 svgio/qa/cppunit/data/tdf159968.svg | 37 svgio/source/svgreader/svgstyleattributes.cxx | 38 svgio/source/svgreader/svgtoken.cxx | 1 svl/source/items/srchitem.cxx | 2 svx/source/dialog/dlgctl3d.cxx | 5 svx/source/form/labelitemwindow.cxx | 2 svx/source/sidebar/tools/ValueSetWithTextControl.cxx | 9 svx/source/svdraw/svdotextdecomposition.cxx | 40 sw/qa/extras/ooxmlexport/data/tdf158597.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport21.cxx | 258 sw/qa/extras/rtfimport/data/tdf153196.rtf | 114 sw/qa/extras/rtfimport/rtfimport.cxx | 20 sw/qa/extras/uiwriter/uiwriter9.cxx | 41 sw/qa/uitest/data/tdf150443.docx |binary sw/source/core/doc/DocumentContentOperationsManager.cxx | 14 sw/source/core/doc/doctxm.cxx | 2 sw/source/core/edit/edsect.cxx | 151 sw/source/core/unocore/unomap1.cxx | 1 sw/source/core/unocore/unoobj.cxx | 14 sw/source/filter/ww8/docxattributeoutput.cxx | 12 sw/source/filter/ww8/rtfattributeoutput.cxx | 11 sw/source/uibase/docvw/AnnotationWin2.cxx | 2 sw/source/uibase/sidebar/PageSizeControl.cxx | 1 sw/source/uibase/utlui/uitool.cxx | 1 toolkit/source/awt/vclxwindow.cxx | 1 vcl/inc/osx/salprn.h | 2 vcl/inc/salprn.hxx | 2 vcl/inc/unx/genprn.h | 2 vcl/inc/win/salprn.h | 2 vcl/osx/salprn.cxx | 5 vcl/qa/cppunit/pdfexport/data/tdf159817.fodt | 607 + vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 56 vcl/source/control/button.cxx | 6 vcl/source/control/combobox.cxx | 9 vcl/source/gdi/mtfxmldump.cxx | 2 vcl/source/gdi/print.cxx | 8 vcl/source/outdev/stack.cxx | 6 vcl/source/window/tabpage.cxx | 5 vcl/source/window/window.cxx | 1 vcl/unx/generic/print/genprnpsp.cxx | 5 vcl/win/gdi/salprn.cxx | 16 writerfilter/qa/cppunittests/dmapper/DomainMapper.cxx | 6 writerfilter/qa/cppunittests/dmapper/data/tdf158360.docx |binary writerfilter/source/dmapper/DomainMapper_Impl.cxx | 17 writerfilter/source/dmapper/DomainMapper_Impl.hxx | 4 writerfilter/source/dmapper/PropertyMap.cxx | 34 xmloff/source/text/XMLSectionExport.cxx | 6 xmlsecurity/source/xmlsec/saxhelper.cxx | 15 111 files changed, 4410 insertions(+), 2648 deletions(-)
New commits: commit 7eb364eae631423921953d49201ba6512e0cdc11 Author: Andras Timar <andras.ti...@collabora.com> AuthorDate: Wed Mar 6 20:30:17 2024 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 [cp] Disable Donation and Get Involved infobars Change-Id: Iab804633a78d6904308c72d10544cfb5651934cf diff --git a/officecfg/registry/schema/org/openoffice/Office/UI/Infobar.xcs b/officecfg/registry/schema/org/openoffice/Office/UI/Infobar.xcs index 6235c575c5d0..ce9efa20cb46 100644 --- a/officecfg/registry/schema/org/openoffice/Office/UI/Infobar.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/UI/Infobar.xcs @@ -34,13 +34,13 @@ <info> <desc>Whether the Infobar showing the call for donations is enabled</desc> </info> - <value>true</value> + <value>false</value> </prop> <prop oor:name="GetInvolved" oor:type="xs:boolean" oor:nillable="false"> <info> <desc>Whether the Infobar showing the call to 'Get Involved' is enabled</desc> </info> - <value>true</value> + <value>false</value> </prop> <prop oor:name="HyphenationMissing" oor:type="xs:boolean" oor:nillable="false"> <info> commit 5d2c24a8538f058e7bbd95d711040ba4b82c10e6 Author: Fridrich Štrba <fridrich.st...@bluewin.ch> AuthorDate: Fri Mar 1 13:36:42 2024 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 Allow building with Java 8 Change-Id: Ib1af1a98993aabb8a03f4ef19d8da4d9a71fdbc0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164226 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> (cherry picked from commit 4267c7124876b9213b3169a55731d260c8c63f7c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164233 Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakan...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.com> Reviewed-by: Hossein <hoss...@libreoffice.org> Tested-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> diff --git a/config_host.mk.in b/config_host.mk.in index fbf388abb5f1..2a1691a09c8e 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -483,6 +483,7 @@ export MERGELIBS_MORE=@MERGELIBS_MORE@ export ML_EXE=@ML_EXE@ export MOC5=@MOC5@ export MOC6=@MOC6@ +MODULAR_JAVA=@MODULAR_JAVA@ export MPL_SUBSET=@MPL_SUBSET@ export MSGFMT=@MSGFMT@ export MSGUNIQ=@MSGUNIQ@ diff --git a/configure.ac b/configure.ac index 862187dac960..a16f1204325d 100644 --- a/configure.ac +++ b/configure.ac @@ -2571,7 +2571,7 @@ AC_ARG_WITH(linker-hash-style, AC_ARG_WITH(jdk-home, AS_HELP_STRING([--with-jdk-home=<absolute path to JDK home>], - [If you have installed JDK 17 or later on your system please supply the + [If you have installed JDK 8 or later on your system please supply the path here. Note that this is not the location of the java command but the location of the entire distribution. In case of cross-compiling, this is the JDK of the host os. Use --with-build-platform-configure-options @@ -8623,7 +8623,7 @@ if test "$ENABLE_JAVA" != ""; then fi if ! test -f "$with_jdk_home/lib/jvm.lib" -a -f "$with_jdk_home/bin/java.exe"; then - AC_MSG_ERROR([No JDK found, pass the --with-jdk-home option (or fix the path) pointing to a $WIN_HOST_BITS-bit JDK >= 17]) + AC_MSG_ERROR([No JDK found, pass the --with-jdk-home option (or fix the path) pointing to a $WIN_HOST_BITS-bit JDK >= 8]) fi fi @@ -8688,6 +8688,7 @@ dnl =================================================================== # Whether all the complexity here actually is needed any more or not, no idea. JDK_SECURITYMANAGER_DISALLOWED= +MODULAR_JAVA= if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then _gij_longver=0 AC_MSG_CHECKING([the installed JDK]) @@ -8708,8 +8709,8 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED '/^$/d' | $SED s/[[-A-Za-z]]*//` _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'` - if test "$_jdk_ver" -lt 170000; then - AC_MSG_ERROR([JDK is too old, you need at least 17 ($_jdk_ver < 170000)]) + if test "$_jdk_ver" -lt 10800; then + AC_MSG_ERROR([JDK is too old, you need at least 8 ($_jdk_ver < 10800)]) fi dnl TODO: Presumably, the Security Manager will not merely be disallowed, but be dnl completely removed in some Java version > 18 (see @@ -8724,13 +8725,21 @@ if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then fi AC_MSG_RESULT([found $JAVA_HOME (JDK $_jdk)]) + dnl Check whether the build Java supports modules + if test "$_jdk_ver" -ge 90000; then + MODULAR_JAVA=TRUE + else + AC_MSG_WARN([Modular jars will not be built. They need at least Java 9 ($_jdk_ver < 90000)]) + add_warning "Modular jars will not be built. They need at least Java 9 ($_jdk_ver < 90000)" + fi + # set to limit VM usage for JunitTests JAVAIFLAGS=-Xmx64M # set to limit VM usage for javac JAVACFLAGS=-J-Xmx128M fi else - AC_MSG_ERROR([Java not found. You need at least JDK 17]) + AC_MSG_ERROR([Java not found. You need at least JDK 8]) fi else if test -z "$ENABLE_JAVA"; then @@ -9034,6 +9043,7 @@ AC_SUBST(JDK_FOR_BUILD) AC_SUBST(JDK_SECURITYMANAGER_DISALLOWED_FOR_BUILD) AC_SUBST(JAVA_SOURCE_VER) AC_SUBST(JAVA_TARGET_VER) +AC_SUBST(MODULAR_JAVA) dnl =================================================================== diff --git a/ridljar/Jar_libreoffice.mk b/ridljar/Jar_libreoffice.mk index 76a56eedc078..77397bc246ee 100644 --- a/ridljar/Jar_libreoffice.mk +++ b/ridljar/Jar_libreoffice.mk @@ -36,12 +36,12 @@ $(eval $(call gb_Jar_add_manifest_classpath,libreoffice, \ $(eval $(call gb_Jar_add_packagedirs,libreoffice,\ $(call gb_CustomTarget_get_workdir,ridljar/javamaker)/com \ $(call gb_CustomTarget_get_workdir,unoil/javamaker)/com \ - $(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,libreoffice))/module-info.class \ + $(if $(MODULAR_JAVA),$(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,libreoffice))/module-info.class) \ )) -$(eval $(call gb_Jar_add_sourcefiles_java9,libreoffice,\ +$(if $(MODULAR_JAVA),$(eval $(call gb_Jar_add_sourcefiles_java9,libreoffice,\ ridljar/source/libreoffice/module-info \ -)) +))) $(eval $(call gb_Jar_add_sourcefiles,libreoffice,\ ridljar/com/sun/star/comp/bridgefactory/BridgeFactory \ diff --git a/ridljar/Jar_unoloader.mk b/ridljar/Jar_unoloader.mk index 2acf20b5b289..b7fcbc105dc1 100644 --- a/ridljar/Jar_unoloader.mk +++ b/ridljar/Jar_unoloader.mk @@ -14,13 +14,13 @@ $(eval $(call gb_Jar_set_packageroot,unoloader,com)) $(eval $(call gb_Jar_set_manifest,unoloader,$(SRCDIR)/ridljar/source/unoloader/com/sun/star/lib/unoloader/manifest)) # the module-info.class is manually added here since it's not in "com" dir -$(eval $(call gb_Jar_add_packagedirs,unoloader,\ +$(if $(MODULAR_JAVA),$(eval $(call gb_Jar_add_packagedirs,unoloader,\ $(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,unoloader))/module-info.class \ -)) +))) -$(eval $(call gb_Jar_add_sourcefiles_java9,unoloader,\ +$(if $(MODULAR_JAVA),$(eval $(call gb_Jar_add_sourcefiles_java9,unoloader,\ ridljar/source/unoloader/module-info \ -)) +))) $(eval $(call gb_Jar_add_sourcefiles,unoloader,\ ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader \ diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk index 84fbcc13c32d..8acf120dd615 100644 --- a/solenv/gbuild/JavaClassSet.mk +++ b/solenv/gbuild/JavaClassSet.mk @@ -19,7 +19,7 @@ gb_JavaClassSet_JAVACCOMMAND = $(ICECREAM_RUN) $(JAVACOMPILER) $(JAVACFLAGS) \ -encoding utf8 \ - --release $(1) \ + $(if $(MODULAR_JAVA),--release $(1),-source $(1) -target $(1)) \ -Xlint:-options \ -Xlint:unchecked @@ -51,7 +51,7 @@ $(call gb_Helper_abbreviate_dirs,\ -d $(call gb_JavaClassSet_get_classdir,$(2)) \ @$$RESPONSEFILE &&) \ rm -f $$RESPONSEFILE &&) \ - $(if $(T_MODULENAME),\ + $(if $(MODULAR_JAVA),$(if $(T_MODULENAME),\ RESPONSEFILE=$(call gb_var2file,$(shell $(gb_MKTEMP)),\ $(T_JAVA9FILES)) && \ $(if $(3),$(call gb_JavaClassSet_JAVACCOMMAND,9) \ @@ -61,7 +61,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(if $(T_MODULENAME),--patch-module $(T_MODULENAME)="$(subst $(WHITESPACE),$(gb_CLASSPATHSEP),$(strip $(dir $(PACKAGEDIRS))))") \ -d $(call gb_JavaClassSet_get_classdir,$(2)) \ @$$RESPONSEFILE &&) \ - rm -f $$RESPONSEFILE &&) \ + rm -f $$RESPONSEFILE &&)) \ touch $(1)) endef commit e274699b5603b69c504838fc42219841fc5da569 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Mon Mar 4 17:40:48 2024 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 tdf#150443: replace missing fonts in testfile This commit reverts 0b21e2a404c114529376dc50764dc0286dafc745 "sw: UITest_writer_tests8 test_tdf150443 more tolerant" Change-Id: If83a7b0a8dc2289aba3201edfdf19d0ca839459a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164392 Tested-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> Tested-by: Jenkins Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164410 Reviewed-by: Michael Stahl <michael.st...@allotropia.de> diff --git a/sw/qa/uitest/data/tdf150443.docx b/sw/qa/uitest/data/tdf150443.docx index 162aec01f928..f1897c4712aa 100644 Binary files a/sw/qa/uitest/data/tdf150443.docx and b/sw/qa/uitest/data/tdf150443.docx differ commit 1733d0d7d3a0ad1b115bddaaa28a01d0c463e0b3 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Mon Mar 4 10:57:18 2024 +0000 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 GLib-GObject-CRITICAL **: gsignal.c:2778: instance X has no handler with id Y Change-Id: I4fbbd4af0ed1605874e2ef2694ecda0a9e107a07 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164370 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@allotropia.de> diff --git a/svx/source/form/labelitemwindow.cxx b/svx/source/form/labelitemwindow.cxx index c9afd1534acc..91d9f99c0ce9 100644 --- a/svx/source/form/labelitemwindow.cxx +++ b/svx/source/form/labelitemwindow.cxx @@ -58,7 +58,9 @@ OUString LabelItemWindow::get_label() const { return m_xLabel->get_label(); } void LabelItemWindow::dispose() { + m_xImage.reset(); m_xLabel.reset(); + m_xBox.reset(); InterimItemWindow::dispose(); } commit c4cb8d23d200ac5f1fcf152bc634b368ac6974ea Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sun Mar 3 16:12:55 2024 +0600 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 tdf#153706: do not add categories, when source data doesn't have them lcl_AllOperator is used in XChartDocument::attachData implementation. When a data without existing categories is passed there, like an XY scatter, lcl_AllOperator used to force creation of the categories in the target, by returning 'true' unconditionally from setsCategories. This meant, that a new sequence of numbers starting from 1 was used as X values, and the old X data was interpreted as an extra Y series. This changes lcl_AllOperator::setsCategories to try to check if its data actually contains categories. Thus, XChartDocument::attachData will use categories either when the chart already uses categories, and ChartDataWrapper::applyData detects that using a call to DataSourceHelper::detectRangeSegmentation; or when the new data has it; but not when neither had it. When it's not possible to detect if there were categories in the new data (e.g., with user data), old behavior is used, setting categories. It could be an alternative to detect the chart type using xOldDoc->getDiagram()->getDiagramType() == "com.sun.star.chart.XYDiagram" in XChartDocument::attachData; and then decide to force the creation or not. But it seems hackish, and not really universal: other chart types must be tested (bubble?), no idea how to handle hypothetical cases when applied data contains categories in case of XY chart, etc. Change-Id: I86b34f6799c30b103f7fc6b2faf6ec255a9d137b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164298 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164279 diff --git a/chart2/qa/extras/data/ods/tdf153706_XY_scatter_chart.ods b/chart2/qa/extras/data/ods/tdf153706_XY_scatter_chart.ods new file mode 100644 index 000000000000..2c6153ed6ab2 Binary files /dev/null and b/chart2/qa/extras/data/ods/tdf153706_XY_scatter_chart.ods differ diff --git a/chart2/qa/extras/uichart.cxx b/chart2/qa/extras/uichart.cxx index 84b8658d29ea..2638367c8506 100644 --- a/chart2/qa/extras/uichart.cxx +++ b/chart2/qa/extras/uichart.cxx @@ -436,6 +436,60 @@ CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf158223) } } +CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf153706) +{ + // Load a spreadsheet with a to-page XY scatter chart with the sheet as data source + loadFromFile(u"ods/tdf153706_XY_scatter_chart.ods"); + + // Select the cell range around the chart, and copy the range to clipboard, including the chart + dispatchCommand(mxComponent, u".uno:GoToCell"_ustr, + { comphelper::makePropertyValue(u"ToPoint"_ustr, u"D1:K23"_ustr) }); + dispatchCommand(mxComponent, u".uno:Copy"_ustr, {}); + + // create a new document + load(u"private:factory/scalc"_ustr); + + // Paste; this must create a chart with own data source having a proper copy of the data + dispatchCommand(mxComponent, u".uno:Paste"_ustr, {}); + + css::uno::Reference xChartDoc(getChartDocFromSheet(0, mxComponent), css::uno::UNO_SET_THROW); + auto xDataArray(xChartDoc->getDataProvider().queryThrow<chart::XChartDataArray>()); + + css::uno::Sequence<Sequence<double>> aData = xDataArray->getData(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(3), aData.getLength()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aData[0].getLength()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aData[1].getLength()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aData[2].getLength()); + CPPUNIT_ASSERT_EQUAL(2.0, aData[0][0]); + CPPUNIT_ASSERT_EQUAL(3.0, aData[0][1]); + CPPUNIT_ASSERT_EQUAL(3.0, aData[1][0]); + CPPUNIT_ASSERT_EQUAL(2.0, aData[1][1]); + CPPUNIT_ASSERT_EQUAL(4.0, aData[2][0]); + CPPUNIT_ASSERT_EQUAL(1.0, aData[2][1]); + + // Without the fix, this would fail with + // - Expected: 1 + // - Actual : 2 + // i.e., the X values were treated as another Y series + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), getNumberOfDataSeries(xChartDoc)); + + auto xSeries(getDataSeriesFromDoc(xChartDoc, 0).queryThrow<chart2::data::XDataSource>()); + auto sequences = xSeries->getDataSequences(); + // Without the fix, this would fail with + // - Expected: 2 + // - Actual : 1 + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), sequences.getLength()); + + auto propX(sequences[0]->getValues().queryThrow<beans::XPropertySet>()); + // Without the fix, this would fail with + // - Expected: values-x + // - Actual : values-y + CPPUNIT_ASSERT_EQUAL(u"values-x"_ustr, propX->getPropertyValue("Role").get<OUString>()); + + auto propY(sequences[1]->getValues().queryThrow<beans::XPropertySet>()); + CPPUNIT_ASSERT_EQUAL(u"values-y"_ustr, propY->getPropertyValue("Role").get<OUString>()); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx b/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx index 84b98f0d8018..7988ef90df94 100644 --- a/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx @@ -121,6 +121,11 @@ struct lcl_AllOperator : public lcl_Operator virtual bool setsCategories( bool /*bDataInColumns*/ ) override { + // Do not force creation of categories, when original has no categories + if (auto pDataWrapper = dynamic_cast<const ChartDataWrapper*>(m_xDataToApply.get())) + if (auto xChartModel = pDataWrapper->getChartModel()) + if (auto xDiagram = xChartModel->getFirstChartDiagram()) + return xDiagram->getCategories().is(); return true; } @@ -698,6 +703,11 @@ css::uno::Sequence< OUString > SAL_CALL ChartDataWrapper::getSupportedServiceNam }; } +rtl::Reference<ChartModel> ChartDataWrapper::getChartModel() const +{ + return m_spChart2ModelContact->getDocumentModel(); +} + } // namespace chart /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/controller/chartapiwrapper/ChartDataWrapper.hxx b/chart2/source/controller/chartapiwrapper/ChartDataWrapper.hxx index 3c6602d4e028..9a44e53b8b12 100644 --- a/chart2/source/controller/chartapiwrapper/ChartDataWrapper.hxx +++ b/chart2/source/controller/chartapiwrapper/ChartDataWrapper.hxx @@ -20,6 +20,8 @@ #include <cppuhelper/implbase.hxx> #include <comphelper/interfacecontainer4.hxx> +#include <rtl/ref.hxx> + #include <com/sun/star/chart2/XAnyDescriptionAccess.hpp> #include <com/sun/star/chart/XDateCategories.hpp> #include <com/sun/star/lang/XComponent.hpp> @@ -28,7 +30,11 @@ #include <memory> -namespace chart::wrapper +namespace chart +{ +class ChartModel; + +namespace wrapper { class Chart2ModelContact; @@ -53,6 +59,8 @@ public: virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; + rtl::Reference<ChartModel> getChartModel() const; + private: // ____ XDateCategories ____ virtual css::uno::Sequence< double > SAL_CALL getDateCategories() override; @@ -113,5 +121,6 @@ private: }; } // namespace chart::wrapper +} // namespace chart /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 47713b62e6cfb38d0ee0ef86423ad56617a4ff22 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sun Mar 3 02:04:24 2024 +0600 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 tdf#99969: make sure to copy the chart source ranges to clipboard ... even when they are outside of the copied cell range. Otherwise, it is impossible to transfer the missing data when switching to own data on paste. The copy of the missing ranges avoids copying cell attributes, for performance reasons, but also to avoid overwriting the attributes of already copied cells. Otherwise, ScDrawLayer::CopyToClip would need the bKeepScenarioFlags, or the CopyToClipContext used in the caller ScDocument::CopyToClip, for consistent copy; or a method to avoid overwriting already copied cells (this change simply copies all chart ranges, withiut checking if they were copied already). Change-Id: Id02e0c20517e7e8a17bb0a31d1b230196cda1a58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164294 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164397 diff --git a/sc/inc/clipcontext.hxx b/sc/inc/clipcontext.hxx index b3ce874a6a7f..d93e6acb453d 100644 --- a/sc/inc/clipcontext.hxx +++ b/sc/inc/clipcontext.hxx @@ -161,12 +161,15 @@ public: class CopyToClipContext final : public ClipContextBase { bool mbKeepScenarioFlags:1; + bool mbCopyChartRanges : 1 = false; // Copying ranges not included in selection: + // only copy data, not cell attributes public: - CopyToClipContext(ScDocument& rDoc, bool bKeepScenarioFlags); + CopyToClipContext(ScDocument& rDoc, bool bKeepScenarioFlags, bool bCopyChartRanges = false); virtual ~CopyToClipContext() override; bool isKeepScenarioFlags() const; + bool isCopyChartRanges() const { return mbCopyChartRanges; } }; class CopyToDocContext final : public ClipContextBase diff --git a/sc/source/core/data/clipcontext.cxx b/sc/source/core/data/clipcontext.cxx index ce6974d42334..be145f995451 100644 --- a/sc/source/core/data/clipcontext.cxx +++ b/sc/source/core/data/clipcontext.cxx @@ -403,8 +403,8 @@ bool CopyFromClipContext::isDateCell( const ScColumn& rCol, SCROW nRow ) const } CopyToClipContext::CopyToClipContext( - ScDocument& rDoc, bool bKeepScenarioFlags) : - ClipContextBase(rDoc), mbKeepScenarioFlags(bKeepScenarioFlags) {} + ScDocument& rDoc, bool bKeepScenarioFlags, bool bCopyChartRanges) : + ClipContextBase(rDoc), mbKeepScenarioFlags(bKeepScenarioFlags), mbCopyChartRanges(bCopyChartRanges) {} CopyToClipContext::~CopyToClipContext() {} diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx index 1deffbf0adbf..6c6b55efa309 100644 --- a/sc/source/core/data/column.cxx +++ b/sc/source/core/data/column.cxx @@ -882,14 +882,16 @@ public: void ScColumn::CopyToClip( sc::CopyToClipContext& rCxt, SCROW nRow1, SCROW nRow2, ScColumn& rColumn ) const { - pAttrArray->CopyArea( nRow1, nRow2, 0, *rColumn.pAttrArray, - rCxt.isKeepScenarioFlags() ? (ScMF::All & ~ScMF::Scenario) : ScMF::All ); + if (!rCxt.isCopyChartRanges()) // No need to copy attributes for chart ranges + pAttrArray->CopyArea( nRow1, nRow2, 0, *rColumn.pAttrArray, + rCxt.isKeepScenarioFlags() ? (ScMF::All & ~ScMF::Scenario) : ScMF::All ); { CopyToClipHandler aFunc(GetDoc(), *this, rColumn, rCxt.getBlockPosition(rColumn.nTab, rColumn.nCol)); sc::ParseBlock(maCells.begin(), maCells, aFunc, nRow1, nRow2); } + if (!rCxt.isCopyChartRanges()) // No need to copy attributes for chart ranges { CopyTextAttrToClipHandler aFunc(rColumn.maCellTextAttrs); sc::ParseBlock(maCellTextAttrs.begin(), maCellTextAttrs, aFunc, nRow1, nRow2); diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 541934225036..04b2151f4261 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -2223,6 +2223,7 @@ void ScDocument::CopyToClip(const ScClipParam& rClipParam, sc::CopyToClipContext aCxt(*pClipDoc, bKeepScenarioFlags); CopyRangeNamesToClip(pClipDoc, aClipRange, pMarks); + // 1. Copy selected cells for (SCTAB i = 0; i < nEndTab; ++i) { if (!maTabs[i] || i >= pClipDoc->GetTableCount() || !pClipDoc->maTabs[i]) @@ -2232,12 +2233,17 @@ void ScDocument::CopyToClip(const ScClipParam& rClipParam, continue; maTabs[i]->CopyToClip(aCxt, rClipParam.maRanges, pClipDoc->maTabs[i].get()); + } - if (mpDrawLayer && bIncludeObjects) + // 2. Copy drawing objects in the selection. Do in after the first "copy cells" pass, because + // the embedded objects (charts) coud reference cells from tabs not (yet) copied; doing it now + // allows to know what is already copied, to not owerwrite attributes of already copied data. + if (mpDrawLayer && bIncludeObjects) + { + for (SCTAB i = 0; i < nEndTab; ++i) { - // also copy drawing objects - tools::Rectangle aObjRect = GetMMRect( - aClipRange.aStart.Col(), aClipRange.aStart.Row(), aClipRange.aEnd.Col(), aClipRange.aEnd.Row(), i); + tools::Rectangle aObjRect = GetMMRect(aClipRange.aStart.Col(), aClipRange.aStart.Row(), + aClipRange.aEnd.Col(), aClipRange.aEnd.Row(), i); mpDrawLayer->CopyToClip(pClipDoc, i, aObjRect); } } diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index b4fed97fc391..d5f2cc09b979 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -88,6 +88,7 @@ #include <docpool.hxx> #include <detfunc.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> +#include <clipcontext.hxx> #include <clipparam.hxx> #include <memory> @@ -1853,6 +1854,34 @@ void ScDrawLayer::CopyToClip( ScDocument* pClipDoc, SCTAB nTab, const tools::Rec pDestPage->InsertObject(pNewObject.get()); + // Store the chart's source data to the clipboad document, even when it's out of the + // copied range. It will be ignored when pasted to the same document; when pasted to + // another document, ScDocument::mpClipParam will provide the actually copied ranges, + // and the data copied here will be used to break connection and switch to own data + // in ScDrawLayer::CopyFromClip. + if (xOldChart && !xOldChart->hasInternalDataProvider()) + { + sc::CopyToClipContext aCxt(*pClipDoc, false, true); + OUString aChartName = static_cast<SdrOle2Obj*>(pOldObject)->GetPersistName(); + std::vector<ScRangeList> aRangesVector; + pDoc->GetChartRanges(aChartName, aRangesVector, *pDoc); + for (const ScRangeList& ranges : aRangesVector) + { + for (const ScRange& r : ranges) + { + for (SCTAB i = r.aStart.Tab(); i <= r.aEnd.Tab(); ++i) + { + ScTable* pTab = pDoc->FetchTable(i); + ScTable* pClipTab = pClipDoc->FetchTable(i); + if (!pTab || !pClipTab) + continue; + pTab->CopyToClip(aCxt, r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), + r.aEnd.Row(), pClipTab); + } + } + } + } + // no undo needed in clipboard document // charts are not updated } commit 315ce9f93f835b212306d79ccb8b9877b7e0758e Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sat Mar 2 06:57:53 2024 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 Simplify a bit Change-Id: I5022d82e556f7cfb09f0dee397d93dd7514a22e5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164202 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164396 diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx index 6f1322b4b9d6..6bad650fd445 100644 --- a/sc/inc/drwlayer.hxx +++ b/sc/inc/drwlayer.hxx @@ -215,7 +215,8 @@ public: static ScDrawObjData* GetObjDataTab( SdrObject* pObj, SCTAB nTab ); /** Returns true, if the passed object is the caption of a cell note. */ - static bool IsNoteCaption( SdrObject* pObj ); + static bool IsNoteCaption(const ScDrawObjData* pData); + static bool IsNoteCaption(SdrObject* pObj) { return IsNoteCaption(GetObjData(pObj)); } /** Returns the object data, if the passed object is a cell note caption. */ static ScDrawObjData* GetNoteCaptionData( SdrObject* pObj, SCTAB nTab ); diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index 04c7c008a4d6..b4fed97fc391 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -1788,70 +1788,73 @@ void ScDrawLayer::CopyToClip( ScDocument* pClipDoc, SCTAB nTab, const tools::Rec SdrObjListIter aIter( pSrcPage, SdrIterMode::Flat ); while (SdrObject* pOldObject = aIter.Next()) { + // do not copy internal objects (detective) and note captions + if (pOldObject->GetLayer() == SC_LAYER_INTERN) + continue; + + const ScDrawObjData* pObjData = ScDrawLayer::GetObjData(pOldObject); + if (IsNoteCaption(pObjData)) + continue; + // Catch objects where the object itself is inside the rectangle to be copied. bool bObjectInArea = rRange.Contains(pOldObject->GetCurrentBoundRect()); // Catch objects whose anchor is inside the rectangle to be copied. - const ScDrawObjData* pObjData = ScDrawLayer::GetObjData(pOldObject); - if (pObjData) - bObjectInArea = bObjectInArea || aClipRange.Contains(pObjData->maStart); - - // do not copy internal objects (detective) and note captions - if (bObjectInArea && pOldObject->GetLayer() != SC_LAYER_INTERN - && !IsNoteCaption(pOldObject)) + if (!bObjectInArea && pObjData) + bObjectInArea = aClipRange.Contains(pObjData->maStart); + if (!bObjectInArea) + continue; + + if (!pDestModel) { - if ( !pDestModel ) + pDestModel = pClipDoc->GetDrawLayer(); // does the document already have a drawing layer? + if (!pDestModel) { - pDestModel = pClipDoc->GetDrawLayer(); // does the document already have a drawing layer? - if ( !pDestModel ) - { - // allocate drawing layer in clipboard document only if there are objects to copy + // allocate drawing layer in clipboard document only if there are objects to copy - pClipDoc->InitDrawLayer(); //TODO: create contiguous pages - pDestModel = pClipDoc->GetDrawLayer(); - } - if (pDestModel) - pDestPage = pDestModel->GetPage( static_cast<sal_uInt16>(nTab) ); + pClipDoc->InitDrawLayer(); //TODO: create contiguous pages + pDestModel = pClipDoc->GetDrawLayer(); } + if (pDestModel) + pDestPage = pDestModel->GetPage(static_cast<sal_uInt16>(nTab)); + } - OSL_ENSURE( pDestPage, "no page" ); - if (pDestPage) + OSL_ENSURE(pDestPage, "no page"); + if (pDestPage) + { + // Clone to target SdrModel + rtl::Reference<SdrObject> pNewObject(pOldObject->CloneSdrObject(*pDestModel)); + uno::Reference< chart2::XChartDocument > xOldChart( ScChartHelper::GetChartFromSdrObject( pOldObject ) ); + if(!xOldChart.is())//#i110034# do not move charts as they lose all their data references otherwise { - // Clone to target SdrModel - rtl::Reference<SdrObject> pNewObject(pOldObject->CloneSdrObject(*pDestModel)); - uno::Reference< chart2::XChartDocument > xOldChart( ScChartHelper::GetChartFromSdrObject( pOldObject ) ); - if(!xOldChart.is())//#i110034# do not move charts as they lose all their data references otherwise + if (pObjData) { - if (pObjData) - { - // The object is anchored to cell. The position is determined by the start - // address. Copying into the clipboard does not change the anchor. - // ToDo: Adapt Offset relative to anchor cell size for cell anchored. - // ToDo: Adapt Offset and size for cell-anchored with resize objects. - // ToDo: Exclude object from resize if disallowed at object. - } - else - { - // The object is anchored to page. We make its position so, that the - // cell behind the object will have the same address in clipboard document as - // in source document. So we will be able to reconstruct the original cell - // address from position when pasting the object. - tools::Rectangle aObjRect = pOldObject->GetSnapRect(); - ScRange aPseudoAnchor - = pDoc->GetRange(nTab, aObjRect, true /*bHiddenAsZero*/); - tools::Rectangle aSourceCellRect - = GetCellRect(*pDoc, aPseudoAnchor.aStart, false /*bMergedCell*/); - tools::Rectangle aDestCellRect - = GetCellRect(*pClipDoc, aPseudoAnchor.aStart, false); - Point aMove = aDestCellRect.TopLeft() - aSourceCellRect.TopLeft(); - pNewObject->NbcMove(Size(aMove.getX(), aMove.getY())); - } + // The object is anchored to cell. The position is determined by the start + // address. Copying into the clipboard does not change the anchor. + // ToDo: Adapt Offset relative to anchor cell size for cell anchored. + // ToDo: Adapt Offset and size for cell-anchored with resize objects. + // ToDo: Exclude object from resize if disallowed at object. } + else + { + // The object is anchored to page. We make its position so, that the + // cell behind the object will have the same address in clipboard document as + // in source document. So we will be able to reconstruct the original cell + // address from position when pasting the object. + tools::Rectangle aObjRect = pOldObject->GetSnapRect(); + ScRange aPseudoAnchor = pDoc->GetRange(nTab, aObjRect, true /*bHiddenAsZero*/); + tools::Rectangle aSourceCellRect + = GetCellRect(*pDoc, aPseudoAnchor.aStart, false /*bMergedCell*/); + tools::Rectangle aDestCellRect + = GetCellRect(*pClipDoc, aPseudoAnchor.aStart, false); + Point aMove = aDestCellRect.TopLeft() - aSourceCellRect.TopLeft(); + pNewObject->NbcMove(Size(aMove.getX(), aMove.getY())); + } + } - pDestPage->InsertObject( pNewObject.get() ); + pDestPage->InsertObject(pNewObject.get()); - // no undo needed in clipboard document - // charts are not updated - } + // no undo needed in clipboard document + // charts are not updated } } } @@ -2892,16 +2895,15 @@ ScDrawObjData* ScDrawLayer::GetObjDataTab( SdrObject* pObj, SCTAB nTab ) return pData; } -bool ScDrawLayer::IsNoteCaption( SdrObject* pObj ) +bool ScDrawLayer::IsNoteCaption(const ScDrawObjData* pData) { - ScDrawObjData* pData = pObj ? GetObjData( pObj ) : nullptr; return pData && pData->meType == ScDrawObjData::CellNote; } ScDrawObjData* ScDrawLayer::GetNoteCaptionData( SdrObject* pObj, SCTAB nTab ) { - ScDrawObjData* pData = pObj ? GetObjDataTab( pObj, nTab ) : nullptr; - return (pData && pData->meType == ScDrawObjData::CellNote) ? pData : nullptr; + ScDrawObjData* pData = GetObjDataTab(pObj, nTab); + return IsNoteCaption(pData) ? pData : nullptr; } ScMacroInfo* ScDrawLayer::GetMacroInfo( SdrObject* pObj, bool bCreate ) commit 1fec6f205799dadd1b6a513ea4b9dcb13728a16f Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sat Mar 2 06:57:24 2024 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 Simplify a bit Change-Id: I5909dfc0f19b13d53d370f78a5e2853b95f0c1a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164201 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164402 diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index 25dfc5c7d6cc..04c7c008a4d6 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -1786,8 +1786,7 @@ void ScDrawLayer::CopyToClip( ScDocument* pClipDoc, SCTAB nTab, const tools::Rec ScRange aClipRange = lcl_getClipRangeFromClipDoc(pClipDoc, nTab); SdrObjListIter aIter( pSrcPage, SdrIterMode::Flat ); - SdrObject* pOldObject = aIter.Next(); - while (pOldObject) + while (SdrObject* pOldObject = aIter.Next()) { // Catch objects where the object itself is inside the rectangle to be copied. bool bObjectInArea = rRange.Contains(pOldObject->GetCurrentBoundRect()); @@ -1854,8 +1853,6 @@ void ScDrawLayer::CopyToClip( ScDocument* pClipDoc, SCTAB nTab, const tools::Rec // charts are not updated } } - - pOldObject = aIter.Next(); } } commit 5586c5fc4c21983535a7a395c9767ad489a52f75 Author: Regina Henschel <rb.hensc...@t-online.de> AuthorDate: Sun Mar 3 17:19:49 2024 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 tdf#160003 use correct sheet in clipboard for test ..whether a page anchored object is contained in the to be copied area. Change-Id: I816e342770332e6d751b57a38e5ebabe33feb16a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164307 Tested-by: Jenkins Reviewed-by: Regina Henschel <rb.hensc...@t-online.de> (cherry picked from commit 199523b553957936dc31b8c3556ef2e47c6bc3a1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164373 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/qa/unit/data/ods/tdf160003_page_anchored_object.ods b/sc/qa/unit/data/ods/tdf160003_page_anchored_object.ods new file mode 100644 index 000000000000..565eb1bf6a26 Binary files /dev/null and b/sc/qa/unit/data/ods/tdf160003_page_anchored_object.ods differ diff --git a/sc/qa/unit/scshapetest.cxx b/sc/qa/unit/scshapetest.cxx index b5083544f114..5e4827005388 100644 --- a/sc/qa/unit/scshapetest.cxx +++ b/sc/qa/unit/scshapetest.cxx @@ -1207,6 +1207,30 @@ CPPUNIT_TEST_FIXTURE(ScShapeTest, testTdf154821_shape_in_group) CPPUNIT_ASSERT_RECTANGLE_EQUAL_WITH_TOLERANCE(aRectOrig, aRectReload, 1); } +CPPUNIT_TEST_FIXTURE(ScShapeTest, testTdf160003_copy_page_anchored) +{ + // Load a document, which has a chart anchored to page on sheet2. Copy&paste to other document + // had lost the chart object. + createScDoc("ods/tdf160003_page_anchored_object.ods"); + + // copy range with chart + goToCell("$Sheet2.$A$1:$L$24"); + dispatchCommand(mxComponent, ".uno:Copy", {}); + + // close document and create new one + createScDoc(); + + // paste clipboard + goToCell("$Sheet1.$A$1"); + dispatchCommand(mxComponent, ".uno:Paste", {}); + + // Make sure the chart object exists. + ScDocument* pDoc = getScDoc(); + ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer(); + const SdrPage* pPage = pDrawLayer->GetPage(0); + CPPUNIT_ASSERT_EQUAL(size_t(1), pPage->GetObjCount()); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index 3f98fc770a6b..25dfc5c7d6cc 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -1990,7 +1990,7 @@ void ScDrawLayer::CopyFromClip(ScDrawLayer* pClipModel, SCTAB nSourceTab, } else // Object is anchored to page. { - aSrcObjStart = pClipDoc->GetRange(nClipTab, pOldObject->GetCurrentBoundRect()).aStart; + aSrcObjStart = pClipDoc->GetRange(nSourceTab, pOldObject->GetCurrentBoundRect()).aStart; } if (!rSourceRange.Contains(aSrcObjStart)) { commit 7b4932f68a6358abcb7f6403ab8e5a9c136d08d2 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Sun Mar 3 21:00:23 2024 +0000 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 Resolves: tdf#159854 Trigger text is black on dark grey in Animation sidebar in dark mode Change-Id: I2cbf9b7d14a501c309a02dd3080511f527f9e1d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164276 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sd/source/ui/animations/CustomAnimationList.cxx b/sd/source/ui/animations/CustomAnimationList.cxx index 39b3d488d2ad..bb08f33c4411 100644 --- a/sd/source/ui/animations/CustomAnimationList.cxx +++ b/sd/source/ui/animations/CustomAnimationList.cxx @@ -310,12 +310,10 @@ void CustomAnimationListEntryItem::PaintTrigger(vcl::RenderContext& rRenderConte ::tools::Rectangle aOutRect(rRect); - // fill the background - Color aColor(rRenderContext.GetSettings().GetStyleSettings().GetDialogColor()); - rRenderContext.Push(); - rRenderContext.SetFillColor(aColor); + rRenderContext.SetFillColor(rRenderContext.GetSettings().GetStyleSettings().GetDialogColor()); rRenderContext.SetLineColor(); + // fill the background with the dialog bg color rRenderContext.DrawRect(aOutRect); // Erase the four corner pixels to make the rectangle appear rounded. @@ -335,6 +333,8 @@ void CustomAnimationListEntryItem::PaintTrigger(vcl::RenderContext& rRenderConte aOutRect.AdjustTop( nVertBorder ); aOutRect.AdjustBottom( -nVertBorder ); + // Draw the text with the dialog text color + rRenderContext.SetTextColor(rRenderContext.GetSettings().GetStyleSettings().GetDialogTextColor()); rRenderContext.DrawText(aOutRect, rRenderContext.GetEllipsisString(msDescription, aOutRect.GetWidth())); rRenderContext.Pop(); } commit 0adeffdaef5f3d0afdde4426dce29b23a87fe46d Author: Patrick Luby <guibmac...@gmail.com> AuthorDate: Sun Mar 3 19:34:09 2024 -0500 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:21 2024 +0100 tdf#159515 rename impGetTransparence() to impGetAlpha() Commit 81994cb2b8b32453a92bcb011830fcb884f22ff3 makes impGetTransparence() return alpha instead of transparence. So, rename the function and skip reverting the result to obtain the alpha value. Change-Id: Ied3bf8ae4a0de2ae36074dba9f78ccc93480b15a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164322 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Reviewed-by: Patrick Luby <guibomac...@gmail.com> Tested-by: Patrick Luby <guibomac...@gmail.com> (cherry picked from commit b4caea04cb63cbdc25bab871a5b20aa16e2f3a77) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164371 Tested-by: Jenkins diff --git a/drawinglayer/inc/texture/texture3d.hxx b/drawinglayer/inc/texture/texture3d.hxx index 07f4b181b2ad..1ec4df70734c 100644 --- a/drawinglayer/inc/texture/texture3d.hxx +++ b/drawinglayer/inc/texture/texture3d.hxx @@ -66,7 +66,7 @@ namespace drawinglayer::texture // helpers bool impIsValid(const basegfx::B2DPoint& rUV, sal_Int32& rX, sal_Int32& rY) const; - sal_uInt8 impGetTransparence(sal_Int32 rX, sal_Int32 rY) const; + sal_uInt8 impGetAlpha(sal_Int32 rX, sal_Int32 rY) const; public: GeoTexSvxBitmapEx( diff --git a/drawinglayer/source/texture/texture3d.cxx b/drawinglayer/source/texture/texture3d.cxx index 3ee751cbbda4..4cbcab9d1c5d 100644 --- a/drawinglayer/source/texture/texture3d.cxx +++ b/drawinglayer/source/texture/texture3d.cxx @@ -103,7 +103,7 @@ namespace drawinglayer::texture { } - sal_uInt8 GeoTexSvxBitmapEx::impGetTransparence(sal_Int32 rX, sal_Int32 rY) const + sal_uInt8 GeoTexSvxBitmapEx::impGetAlpha(sal_Int32 rX, sal_Int32 rY) const { if(mbIsAlpha) { @@ -148,10 +148,10 @@ namespace drawinglayer::texture if(mbIsAlpha) { - // when we have a transparence, make use of it - const sal_uInt8 aLuminance(impGetTransparence(nX, nY)); + // when we have alpha, make use of it + const sal_uInt8 aAlpha(impGetAlpha(nX, nY)); - rfOpacity = (static_cast<double>(0xff - aLuminance) * (1.0 / 255.0)); + rfOpacity = (static_cast<double>(aAlpha) * (1.0 / 255.0)); } else { @@ -173,8 +173,8 @@ namespace drawinglayer::texture if(mbIsAlpha) { // this texture has an alpha part, use it - const sal_uInt8 aLuminance(impGetTransparence(nX, nY)); - const double fNewOpacity(static_cast<double>(0xff - aLuminance) * (1.0 / 255.0)); + const sal_uInt8 aAlpha(impGetAlpha(nX, nY)); + const double fNewOpacity(static_cast<double>(aAlpha) * (1.0 / 255.0)); rfOpacity = 1.0 - ((1.0 - fNewOpacity) * (1.0 - rfOpacity)); } commit af257b28ef335bb0c9354fbfecd0f4745d3799eb Author: Noel Grandin <noelgran...@gmail.com> AuthorDate: Sun Mar 3 17:11:39 2024 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Mar 7 13:54:20 2024 +0100 tdf#159817 tdf#159802 Form controls coordinates wrong when export to pdf This reverts the following commits: d408fe5cd45c9594feecec727ab2f73c66e361d0 "unnecessary LogicToPixel in CheckBox::Draw" 7441aaa4c5b2215e369c62e22af098184e8ce807 "unnecessary LogicToPixel in RadioButton::Draw" a2dacae0c8acfad8a5e5a16c766ee740ec202c5e "unnecessary LogicToPixel in ComboBox::Draw" f73e8c895e24fda10931ecf344a1a0dd8bcdf92c "unnecessary LogicToPixel in TabPage::Draw" I am fairly sure this code that I am restoring is dodgy, and I am just papering over some other bug somewhere, but I can't seem to see where that is. Change-Id: I0f9088e43b0e3af74fd5ff9d297008ee23a3facb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164313 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164328 diff --git a/vcl/qa/cppunit/pdfexport/data/tdf159817.fodt b/vcl/qa/cppunit/pdfexport/data/tdf159817.fodt new file mode 100644 index 000000000000..6aa986bdc6ad --- /dev/null +++ b/vcl/qa/cppunit/pdfexport/data/tdf159817.fodt @@ -0,0 +1,607 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:formx="u rn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http:/ /openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> + <office:meta><meta:generator>LibreOfficeDev/24.8.0.0.alpha0$MacOSX_AARCH64 LibreOffice_project/d8978a8c4ffabd6b36a691fd3e2df68563808234</meta:generator><meta:creation-date>2003-10-02T15:57:29</meta:creation-date><dc:date>2024-03-03T15:16:09.338790904</dc:date><meta:editing-cycles>880</meta:editing-cycles><meta:editing-duration>P124DT12H36M25S</meta:editing-duration><meta:print-date>2024-02-21T10:01:49.801000000</meta:print-date><meta:printed-by>Fichiers PDF</meta:printed-by><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="6" meta:word-count="21" meta:character-count="119" meta:non-whitespace-character-count="90"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta> + <office:settings> + <config:config-item-set config:name="ooo:view-settings"> + <config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item> + <config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item> + <config:config-item config:name="ViewAreaWidth" config:type="long">20717</config:config-item> + <config:config-item config:name="ViewAreaHeight" config:type="long">10631</config:config-item> + <config:config-item config:name="ShowRedlineChanges" config:type="boolean">false</config:config-item> + <config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item> + <config:config-item-map-indexed config:name="Views"> + <config:config-item-map-entry> + <config:config-item config:name="ViewId" config:type="string">view2</config:config-item> + <config:config-item config:name="ViewLeft" config:type="long">11534</config:config-item> + <config:config-item config:name="ViewTop" config:type="long">5101</config:config-item> + <config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item> + <config:config-item config:name="VisibleTop" config:type="long">0</config:config-item> + <config:config-item config:name="VisibleRight" config:type="long">20715</config:config-item> + <config:config-item config:name="VisibleBottom" config:type="long">10629</config:config-item> + <config:config-item config:name="ZoomType" config:type="short">0</config:config-item> + <config:config-item config:name="ViewLayoutColumns" config:type="short">1</config:config-item> + <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item> + <config:config-item config:name="ZoomFactor" config:type="short">140</config:config-item> + <config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item> + <config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item> + <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item> + <config:config-item config:name="LegacySingleLineFontwork" config:type="boolean">true</config:config-item> + <config:config-item config:name="ConnectorUseSnapRect" config:type="boolean">false</config:config-item> + <config:config-item config:name="IgnoreBreakAfterMultilineField" config:type="boolean">false</config:config-item> + </config:config-item-map-entry> + </config:config-item-map-indexed> + </config:config-item-set> + <config:config-item-set config:name="ooo:configuration-settings"> + <config:config-item config:name="PrintAnnotationMode" config:type="short">0</config:config-item> + <config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintHiddenText" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintTextPlaceholder" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintControls" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintBlackFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintTables" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintReversed" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintFaxName" config:type="string"/> + <config:config-item config:name="DisableOffPagePositioning" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintPaperFromSetup" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseVariableWidthNBSP" config:type="boolean">false</config:config-item> + <config:config-item config:name="NoNumberingShowFollowBy" config:type="boolean">false</config:config-item> + <config:config-item config:name="JustifyLinesWithShrinking" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseOldNumbering" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item> + <config:config-item config:name="AddParaSpacingToTableCells" config:type="boolean">false</config:config-item> + <config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item> + <config:config-item config:name="GutterAtTop" config:type="boolean">false</config:config-item> + <config:config-item config:name="HeaderSpacingBelowLastPara" config:type="boolean">false</config:config-item> + <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item> + <config:config-item config:name="ProtectFields" config:type="boolean">false</config:config-item> + <config:config-item config:name="EmptyDbFieldHidesPara" config:type="boolean">false</config:config-item> + <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item> + <config:config-item config:name="MsWordCompMinLineHeightByFly" config:type="boolean">false</config:config-item> + <config:config-item config:name="ApplyParagraphMarkFormatToNumbering" config:type="boolean">false</config:config-item> + <config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item> + <config:config-item config:name="ContinuousEndnotes" config:type="boolean">false</config:config-item> + <config:config-item config:name="TabOverSpacing" config:type="boolean">false</config:config-item> + <config:config-item config:name="SubtractFlysAnchoredAtFlys" config:type="boolean">true</config:config-item> + <config:config-item config:name="TabOverMargin" config:type="boolean">false</config:config-item> + <config:config-item config:name="RsidRoot" config:type="int">449756</config:config-item> + <config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="HyphenateURLs" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="BackgroundParaOverDrawings" config:type="boolean">false</config:config-item> + <config:config-item config:name="AddFrameOffsets" config:type="boolean">false</config:config-item> + <config:config-item config:name="NoGapAfterNoteNumber" config:type="boolean">false</config:config-item> + <config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item> + <config:config-item config:name="TabOverflow" config:type="boolean">false</config:config-item> + <config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item> + <config:config-item config:name="SmallCapsPercentage66" config:type="boolean">true</config:config-item> + <config:config-item config:name="CollapseEmptyCellPara" config:type="boolean">true</config:config-item> + <config:config-item config:name="MathBaselineAlignment" config:type="boolean">false</config:config-item> + <config:config-item config:name="DropCapPunctuation" config:type="boolean">false</config:config-item> + <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item> + <config:config-item config:name="Rsid" config:type="int">20255833</config:config-item> + <config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" config:type="boolean">false</config:config-item> + <config:config-item config:name="FootnoteInColumnToPageEnd" config:type="boolean">false</config:config-item> + <config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">false</config:config-item> + <config:config-item config:name="TreatSingleColumnBreakAsPageBreak" config:type="boolean">false</config:config-item> + <config:config-item config:name="AddParaTableSpacing" config:type="boolean">false</config:config-item> + <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="UnxForceZeroExtLeading" config:type="boolean">true</config:config-item> + <config:config-item config:name="ProtectBookmarks" config:type="boolean">false</config:config-item> + <config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item> + <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item> + <config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item> + <config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item> + <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/> + <config:config-item config:name="PrintLeftPages" config:type="boolean">true</config:config-item> + <config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item> + <config:config-item config:name="AlignTabStopPosition" config:type="boolean">false</config:config-item> + <config:config-item config:name="AutoFirstLineIndentDisregardLineSpace" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item> + <config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">true</config:config-item> + <config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">false</config:config-item> + <config:config-item config:name="PropLineSpacingShrinksFirstLine" config:type="boolean">false</config:config-item> + <config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item> + <config:config-item config:name="AddExternalLeading" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseFormerLineSpacing" config:type="boolean">true</config:config-item> + <config:config-item config:name="AllowPrintJobCancel" config:type="boolean">false</config:config-item> + <config:config-item config:name="FrameAutowidthWithMorePara" config:type="boolean">false</config:config-item> + <config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-item> + <config:config-item config:name="UseFormerTextWrapping" config:type="boolean">true</config:config-item> + <config:config-item config:name="AddVerticalFrameOffsets" config:type="boolean">false</config:config-item> + <config:config-item config:name="LinkUpdateMode" config:type="short">1</config:config-item> + <config:config-item config:name="IsLabelDocument" config:type="boolean">false</config:config-item> + <config:config-item config:name="UpdateFromTemplate" config:type="boolean">false</config:config-item> + <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item> + <config:config-item config:name="PrinterIndependentLayout" config:type="string">low-resolution</config:config-item> + <config:config-item config:name="PrinterName" config:type="string">Canon iP7200 series</config:config-item> + <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item> + <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item> + <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/> + <config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item> + <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item> + <config:config-item config:name="CurrentDatabaseDataSource" config:type="string"/> + <config:config-item config:name="CurrentDatabaseCommand" config:type="string"/> + <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintEmptyPages" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrintPageBackground" config:type="boolean">true</config:config-item> + <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedSystemFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="UnbreakableNumberings" config:type="boolean">false</config:config-item> + <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">false</config:config-item> + <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item> + <config:config-item config:name="DoNotResetParaAttrsForNumFont" config:type="boolean">false</config:config-item> + <config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">false</config:config-item> + <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrinterSetup" config:type="base64Binary">NQH+/0Nhbm9uIGlQNzIwMCBzZXJpZXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ2Fub24gaVA3MjAwIHNlcmllcy1BaXJQcmludAAAAAAWAAQABAAAAAAAAAAEAAhSAAAEdAAAAAAAABIAQ09NUEFUX0RVUExFWF9NT0RFEwBEdXBsZXhNb2RlOjpVbmtub3duDABQUklOVEVSX05BTUUTAENhbm9uIGlQNzIwMCBzZXJpZXMLAERSSVZFUl9OQU1FHABDYW5vbiBpUDcyMDAgc2VyaWVzLUFpclByaW50</config:config-item> + </config:config-item-set> + </office:settings> + <office:scripts> + <office:script script:language="ooo:Basic"> + <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/> + </office:script> + </office:scripts> + <office:font-face-decls> + <style:font-face style:name="Arial" svg:font-family="Arial"/> + <style:font-face style:name="Arial Black" svg:font-family="'Arial Black'" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Arial1" svg:font-family="Arial" style:font-family-generic="swiss"/> + <style:font-face style:name="Arial2" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Arial3" svg:font-family="Arial, sans-serif"/> + <style:font-face style:name="Lucida Sans Unicode" svg:font-family="'Lucida Sans Unicode'" style:font-pitch="variable"/> + <style:font-face style:name="MS Gothic" svg:font-family="'MS Gothic'" style:font-pitch="variable"/> + <style:font-face style:name="Magma" svg:font-family="Magma" style:font-adornments="Gras" style:font-pitch="variable"/> + <style:font-face style:name="StarSymbol" svg:font-family="StarSymbol" style:font-charset="x-symbol"/> + <style:font-face style:name="Tahoma" svg:font-family="Tahoma"/> + <style:font-face style:name="Tahoma1" svg:font-family="Tahoma" style:font-pitch="variable"/> + <style:font-face style:name="Times New Roman" svg:font-family="'Times New Roman'" style:font-family-generic="roman"/> + <style:font-face style:name="Times New Roman1" svg:font-family="'Times New Roman'" style:font-family-generic="roman" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:writing-mode="lr-tb" style:flow-with-text="true"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" loext:tab-stop-distance="0cm" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Times New Roman1" fo:font-size="12pt" fo:language="fr" fo:country="FR" style:font-name-asian="Lucida Sans Unicode" style:font-size-asian="12pt" style:language-asian="fr" style:country-asian="FR" style:font-name-complex="Tahoma1" style:font-size-complex="12pt" style:language-complex="fr" style:country-complex="FR"/> + </style:default-style> + <style:default-style style:family="paragraph"> + <style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1cm" style:writing-mode="page"/> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Times New Roman1" fo:font-size="12pt" fo:language="fr" fo:country="FR" style:font-name-asian="Lucida Sans Unicode" style:font-size-asian="12pt" style:language-asian="fr" style:country-asian="FR" style:font-name-complex="Tahoma1" style:font-size-complex="12pt" style:language-complex="fr" style:country-complex="FR" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" loext:hyphenation-word-char-count="no-limit" loext:hyphenation-zone="no-limit"/> + </style:default-style> + <style:default-style style:family="table"> + <style:table-properties table:border-model="separating"/> + </style:default-style> + <style:default-style style:family="table-row"> + <style:table-row-properties fo:keep-together="always"/> + </style:default-style> + <style:style style:name="Standard" style:family="paragraph" style:class="text"/> + <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text"> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false"/> + </style:style> + <style:style style:name="Heading" style:family="paragraph" style:next-style-name="Text_20_body" style:class="text" style:master-page-name=""> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.21cm" style:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false" style:page-number="auto" fo:break-before="page" fo:keep-with-next="always"/> + <style:text-properties style:font-name="Arial Black" fo:font-family="'Arial Black'" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="24pt" fo:font-weight="900" style:font-name-asian="MS Gothic" style:font-family-asian="'MS Gothic'" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="Tahoma1" style:font-family-complex="Tahoma" style:font-pitch-complex="variable" style:font-size-complex="14pt"/> + </style:style> + <style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list"> + <style:text-properties style:font-name-complex="Tahoma" style:font-family-complex="Tahoma"/> + </style:style> + <style:style style:name="Header_20_and_20_Footer" style:display-name="Header and Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"> + <style:paragraph-properties text:number-lines="false" text:line-number="0"> + <style:tab-stops> + <style:tab-stop style:position="8.5cm" style:type="center"/> + <style:tab-stop style:position="17cm" style:type="right"/> + </style:tab-stops> + </style:paragraph-properties> + </style:style> + <style:style style:name="Header" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"> + <style:paragraph-properties text:number-lines="false" text:line-number="0"> + <style:tab-stops> + <style:tab-stop style:position="10.5cm" style:type="center"/> + <style:tab-stop style:position="21.001cm" style:type="right"/> + </style:tab-stops> + </style:paragraph-properties> + </style:style> + <style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"> + <style:paragraph-properties text:number-lines="false" text:line-number="0"> + <style:tab-stops> + <style:tab-stop style:position="10.5cm" style:type="center"/> + <style:tab-stop style:position="21.001cm" style:type="right"/> + </style:tab-stops> + </style:paragraph-properties> + </style:style> + <style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"> + <style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" text:number-lines="false" text:line-number="0"/> + <style:text-properties fo:font-size="10pt" fo:font-style="italic" style:font-size-asian="10pt" style:font-style-asian="italic" style:font-name-complex="Tahoma" style:font-family-complex="Tahoma" style:font-size-complex="10pt" style:font-style-complex="italic"/> + </style:style> + <style:style style:name="Frame_20_contents" style:display-name="Frame contents" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="extra"/> + <style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index"> + <style:paragraph-properties text:number-lines="false" text:line-number="0"/> + <style:text-properties style:font-name-complex="Tahoma" style:font-family-complex="Tahoma"/> + </style:style> + <style:style style:name="Normal" style:family="paragraph" style:parent-style-name="Standard"> + <style:paragraph-properties style:text-autospace="none"/> + <style:text-properties fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/> + </style:style> + <style:style style:name="_5b_Aucun_20_style_20_de_20_paragraphe_5d_" style:display-name="[Aucun style de paragraphe]" style:family="paragraph"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:line-height="120%" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:text-autospace="none" style:vertical-align="middle"/> + <style:text-properties fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Times New Roman" fo:font-family="'Times New Roman'" style:font-family-generic="roman" fo:font-size="12pt" fo:letter-spacing="normal" fo:language="en" fo:country="GB" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" style:font-name-asian="Times New Roman" style:font-family-asian="'Times New Roman'" style:font-family-generic-asian="roman" style:font-size-asian="12pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Times New Roman" style:font-family-complex="'Times New Roman'" style:font-family-generic-complex="roman" style:font-size-complex="12pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:text-scale="100%"/> + </style:style> + <style:style style:name="Table_20_Contents" style:display-name="Table Contents" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"> + <style:paragraph-properties text:number-lines="false" text:line-number="0"/> + </style:style> + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="_5b_Aucun_20_style_20_de_20_paragraphe_5d_" style:default-outline-level="1" style:class="text" style:master-page-name=""> + <style:paragraph-properties fo:margin-left="2cm" fo:margin-right="2cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto" fo:break-before="page" style:shadow="none"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties fo:color="#000080" loext:opacity="100%" style:font-name="Magma" fo:font-family="Magma" style:font-style-name="Gras" style:font-pitch="variable" fo:font-size="22pt" fo:font-weight="bold" fo:background-color="transparent" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading_20_1" style:next-style-name="Text_20_body" style:auto-update="true" style:default-outline-level="2" style:class="text" style:master-page-name=""> + <style:paragraph-properties fo:text-align="start" style:justify-single-word="false" style:page-number="auto" fo:break-before="auto" fo:break-after="auto"/> + <style:text-properties fo:font-size="14pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-style-complex="italic" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Table_20_Heading" style:display-name="Table Heading" style:family="paragraph" style:parent-style-name="Table_20_Contents" style:class="extra"> + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false" text:number-lines="false" text:line-number="0"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="List_20_Contents" style:display-name="List Contents" style:family="paragraph" style:parent-style-name="Standard" style:class="html"> + <style:paragraph-properties fo:margin-left="1cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/> + </style:style> + <style:style style:name="List_20_Heading" style:display-name="List Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="List_20_Contents" style:class="html"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/> + </style:style> + <style:style style:name="Quotations" style:family="paragraph" style:parent-style-name="Standard" style:class="html"> + <style:paragraph-properties fo:margin-left="1cm" fo:margin-right="1cm" fo:margin-top="0cm" fo:margin-bottom="0.499cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/> + </style:style> + <style:style style:name="Title" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter"> + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> + <style:text-properties fo:font-size="18pt" fo:font-weight="bold" style:font-size-asian="18pt" style:font-weight-asian="bold" style:font-size-complex="18pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter"> + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> + <style:text-properties fo:font-size="14pt" fo:font-style="italic" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-size-complex="14pt" style:font-style-complex="italic"/> + </style:style> + <style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="3" style:class="text"> + <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Footnote_20_Symbol" style:display-name="Footnote Symbol" style:family="text"/> + <style:style style:name="Numbering_20_Symbols" style:display-name="Numbering Symbols" style:family="text"/> + <style:style style:name="Bullet_20_Symbols" style:display-name="Bullet Symbols" style:family="text"> + <style:text-properties style:font-name="StarSymbol" fo:font-family="StarSymbol" style:font-charset="x-symbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-family-asian="StarSymbol" style:font-charset-asian="x-symbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-family-complex="StarSymbol" style:font-charset-complex="x-symbol" style:font-size-complex="9pt"/> + </style:style> + <style:style style:name="Internet_20_link" style:display-name="Internet link" style:family="text"> + <style:text-properties fo:color="#000080" loext:opacity="100%" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color"/> + </style:style> + <style:style style:name="Endnote_20_Symbol" style:display-name="Endnote Symbol" style:family="text"/> + <style:style style:name="RTF_5f_Num_20_3_20_1" style:display-name="RTF_Num 3 1" style:family="text"> + <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial1" fo:font-family="Arial" style:font-family-generic="swiss" fo:font-size="12pt" style:font-name-asian="Arial1" style:font-family-asian="Arial" style:font-family-generic-asian="swiss" style:font-size-asian="12pt" style:font-name-complex="Arial1" style:font-family-complex="Arial" style:font-family-generic-complex="swiss" style:font-size-complex="12pt"/> + </style:style> + <style:style style:name="RTF_5f_Num_20_4_20_1" style:display-name="RTF_Num 4 1" style:family="text"> + <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial1" fo:font-family="Arial" style:font-family-generic="swiss" fo:font-size="12pt" style:font-name-asian="Arial1" style:font-family-asian="Arial" style:font-family-generic-asian="swiss" style:font-size-asian="12pt" style:font-name-complex="Arial1" style:font-family-complex="Arial" style:font-family-generic-complex="swiss" style:font-size-complex="12pt"/> + </style:style> + <style:style style:name="Strong_20_Emphasis" style:display-name="Strong Emphasis" style:family="text"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="Footnote_20_anchor" style:display-name="Footnote anchor" style:family="text"> + <style:text-properties style:text-position="super 58%"/> + </style:style> + <style:style style:name="Endnote_20_anchor" style:display-name="Endnote anchor" style:family="text"> + <style:text-properties style:text-position="super 58%"/> + </style:style> + <style:style style:name="Frame" style:family="graphic"> + <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" fo:margin-left="0.201cm" fo:margin-right="0.201cm" fo:margin-top="0.201cm" fo:margin-bottom="0.201cm" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph-content" fo:background-color="transparent" draw:fill="none" draw:fill-color="#729fcf" fo:padding="0.15cm" fo:border="0.06pt solid #000000"/> + </style:style> + <style:style style:name="Graphics" style:family="graphic"> + <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="none" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph" fo:background-color="transparent" draw:fill="none" draw:fill-color="#729fcf"/> + </style:style> + <text:outline-style style:name="Outline"> + <text:outline-level-style text:level="1" loext:num-list-format="%1%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="2" loext:num-list-format="%2%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="3" loext:num-list-format="%3%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="4" loext:num-list-format="%4%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="5" loext:num-list-format="%5%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="6" loext:num-list-format="%6%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="7" loext:num-list-format="%7%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="8" loext:num-list-format="%8%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="9" loext:num-list-format="%9%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="10" loext:num-list-format="%10%" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + </text:outline-style> + <text:list-style style:name="RTF_5f_Num_20_2" style:display-name="RTF_Num 2"> + <text:list-level-style-number text:level="1" loext:num-list-format="%1%." style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="2" loext:num-list-format="%2%." style:num-suffix="." style:num-format="a" style:num-letter-sync="true"> + <style:list-level-properties text:space-before="0.501cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="3" loext:num-list-format="%3%." style:num-suffix="." style:num-format="i"> + <style:list-level-properties text:space-before="1cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="4" loext:num-list-format="(%4%)" style:num-prefix="(" style:num-suffix=")" style:num-format="1"> + <style:list-level-properties text:space-before="1.501cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="5" loext:num-list-format="(%5%)" style:num-prefix="(" style:num-suffix=")" style:num-format="a" style:num-letter-sync="true"> + <style:list-level-properties text:space-before="2cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="6" loext:num-list-format="(%6%)" style:num-prefix="(" style:num-suffix=")" style:num-format="i"> + <style:list-level-properties text:space-before="2.501cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="7" loext:num-list-format="%7%." style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="3.001cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="8" loext:num-list-format="%8%." style:num-suffix="." style:num-format="a" style:num-letter-sync="true"> + <style:list-level-properties text:space-before="3.502cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="9" loext:num-list-format="%9%" style:num-format="i"> + <style:list-level-properties text:space-before="4.001cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="10" loext:num-list-format="%10%." style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="4.502cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + </text:list-style> + <text:notes-configuration text:note-class="footnote" text:citation-style-name="Footnote_20_Symbol" text:citation-body-style-name="Footnote_20_anchor" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="page"/> + <text:notes-configuration text:note-class="endnote" text:citation-style-name="Endnote_20_Symbol" text:citation-body-style-name="Endnote_20_anchor" text:master-page-name="Endnote" style:num-format="1" text:start-value="0"/> + <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/> + <loext:theme loext:name="Office"> + <loext:theme-colors loext:name="LibreOffice"> + <loext:color loext:name="dark1" loext:color="#000000"/> + <loext:color loext:name="light1" loext:color="#ffffff"/> + <loext:color loext:name="dark2" loext:color="#000000"/> + <loext:color loext:name="light2" loext:color="#ffffff"/> + <loext:color loext:name="accent1" loext:color="#18a303"/> + <loext:color loext:name="accent2" loext:color="#0369a3"/> + <loext:color loext:name="accent3" loext:color="#a33e03"/> + <loext:color loext:name="accent4" loext:color="#8e03a3"/> + <loext:color loext:name="accent5" loext:color="#c99c00"/> + <loext:color loext:name="accent6" loext:color="#c9211e"/> + <loext:color loext:name="hyperlink" loext:color="#0000ee"/> + <loext:color loext:name="followed-hyperlink" loext:color="#551a8b"/> + </loext:theme-colors> + </loext:theme> + </office:styles> + <office:automatic-styles> + <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Footer"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2.037cm" fo:text-align="end" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"> + <style:tab-stops> + <style:tab-stop style:position="10.5cm" style:type="center"/> + <style:tab-stop style:position="20.999cm" style:type="right"/> + </style:tab-stops> + </style:paragraph-properties> + </style:style> + <style:style style:name="P2" style:family="paragraph" style:parent-style-name="Footer"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2.037cm" fo:text-align="end" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"> + <style:tab-stops> + <style:tab-stop style:position="10.5cm" style:type="center"/> + <style:tab-stop style:position="20.999cm" style:type="right"/> + </style:tab-stops> + </style:paragraph-properties> + </style:style> + <style:style style:name="P3" style:family="paragraph" style:parent-style-name="Normal"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2.037cm" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:text-autospace="none"/> + <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial2" fo:font-size="10pt" style:font-name-asian="Arial2" style:font-size-asian="10pt" style:font-name-complex="Arial2" style:font-size-complex="10pt"/> + </style:style> + <style:style style:name="P4" style:family="paragraph" style:parent-style-name="Normal"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2.037cm" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:text-autospace="none"/> + <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial2" fo:font-size="10pt" officeooo:paragraph-rsid="01332ee8" style:font-name-asian="Arial2" style:font-size-asian="10pt" style:font-name-complex="Arial2" style:font-size-complex="10pt"/> + </style:style> + <style:style style:name="P5" style:family="paragraph" style:parent-style-name="Normal" style:master-page-name=""> + <loext:graphic-properties draw:fill="none"/> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2cm" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto" fo:background-color="transparent" fo:padding-left="0.199cm" fo:padding-right="0.049cm" fo:padding-top="0.049cm" fo:padding-bottom="0.049cm" fo:border-left="3pt solid #b2b2b2" fo:border-right="none" fo:border-top="none" fo:border-bottom="none" style:text-autospace="none" style:join-border="true"/> + <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial2" fo:font-size="10pt" fo:language="fr" fo:country="FR" officeooo:paragraph-rsid="000a04a1" style:font-name-asian="Arial2" style:font-size-asian="10pt" style:font-name-complex="Arial2" style:font-size-complex="10pt"/> + </style:style> + <style:style style:name="P6" style:family="paragraph" style:parent-style-name="Normal"> + <style:paragraph-properties fo:margin-left="2.011cm" fo:margin-right="2.037cm" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:text-autospace="none"/> + <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial2" fo:font-size="10pt" fo:language="fr" fo:country="FR" officeooo:paragraph-rsid="012be791" style:font-name-asian="Arial2" style:font-size-asian="10pt" style:font-name-complex="Arial2" style:font-size-complex="10pt"/> + </style:style> + <style:style style:name="P7" style:family="paragraph" style:parent-style-name="Standard" style:master-page-name="Perso_20_-_20_Première_20_page"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="11.033cm" style:auto-text-indent="false" style:page-number="auto" style:text-autospace="none"/> + <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial" fo:font-size="11pt" fo:language="fr" fo:country="FR" fo:font-weight="bold" officeooo:rsid="00e842d8" style:font-name-asian="Arial2" style:font-size-asian="11pt" style:font-weight-asian="bold" style:font-name-complex="Arial2" style:font-size-complex="11pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="P8" style:family="paragraph"> + <style:paragraph-properties fo:text-align="start"/> + </style:style> + <style:style style:name="T1" style:family="text"> + <style:text-properties fo:background-color="#ffff00" loext:char-shading-value="0"/> + </style:style> + <style:style style:name="T2" style:family="text"> + <style:text-properties fo:background-color="#ffff00" loext:char-shading-value="0"/> + </style:style> + <style:style style:name="T3" style:family="text"> + <style:text-properties style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="9pt" fo:font-weight="normal" style:font-size-asian="9pt" style:font-weight-asian="normal" style:font-size-complex="9pt" style:font-weight-complex="normal"/> + </style:style> + <style:style style:name="T4" style:family="text"> + <style:text-properties style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="9pt" fo:font-weight="normal" officeooo:rsid="000a04a1" style:font-size-asian="9pt" style:font-weight-asian="normal" style:font-size-complex="9pt" style:font-weight-complex="normal"/> + </style:style> + <style:style style:name="T5" style:family="text"> + <style:text-properties style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="9pt" fo:language="fr" fo:country="FR" fo:font-weight="normal" style:font-size-asian="9pt" style:font-weight-asian="normal" style:font-size-complex="9pt" style:font-weight-complex="normal"/> + </style:style> + <style:style style:name="T6" style:family="text"> + <style:text-properties fo:language="fr" fo:country="FR" fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/> + </style:style> + <style:style style:name="gr1" style:family="graphic"> + <style:graphic-properties loext:decorative="false" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="middle" style:vertical-rel="line" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" draw:wrap-influence-on-position="once-concurrent" loext:allow-overlap="true" style:flow-with-text="false"/> + </style:style> + <style:style style:name="gr2" style:family="graphic"> + <style:graphic-properties draw:textarea-vertical-align="middle" loext:decorative="false" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="middle" style:vertical-rel="line" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" draw:wrap-influence-on-position="once-concurrent" loext:allow-overlap="true" style:flow-with-text="false"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" style:shadow="none" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="2cm" loext:margin-gutter="0cm"> + <style:columns fo:column-count="1" fo:column-gap="0cm"/> + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style> + <style:header-footer-properties fo:min-height="3.101cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.101cm" style:dynamic-spacing="false"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="2.499cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm" style:dynamic-spacing="false"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm2"> + <style:page-layout-properties fo:page-width="20.999cm" fo:page-height="29.699cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm" loext:margin-gutter="0cm"> + <style:footnote-sep style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style/> + <style:footer-style/> + </style:page-layout> + <style:page-layout style:name="pm3"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="2cm" fo:margin-right="1cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm" loext:margin-gutter="0cm"> -e ... etc. - the rest is truncated