configure.ac | 2 connectivity/source/drivers/file/fcomp.cxx | 4 cui/source/dialogs/hldoctp.cxx | 14 cui/source/inc/cuitabline.hxx | 2 cui/source/tabpages/tpline.cxx | 9 download.lst | 24 external/curl/configurable-z-option.patch.0 | 2 external/curl/curl-msvc-disable-protocols.patch.1 | 6 external/curl/curl-msvc.patch.1 | 18 external/curl/zlib.patch.0 | 40 - external/poppler/UnpackedTarball_poppler.mk | 1 external/poppler/char_traits.patch | 11 external/poppler/disable-freetype.patch.1 | 4 external/poppler/disable-nss-and-gpgmepp.patch.1 | 65 + external/poppler/inc/pch/precompiled_poppler.hxx | 19 external/poppler/poppler-config.patch.1 | 14 sc/source/ui/app/inputwin.cxx | 1 svx/inc/fmstring.hrc | 2 svx/source/sidebar/possize/PosSizePropertyPanel.cxx | 55 + svx/source/sidebar/possize/PosSizePropertyPanel.hxx | 6 svx/uiconfig/ui/textcontrolchardialog.ui | 1 svx/uiconfig/ui/textcontrolparadialog.ui | 1 sw/inc/usrfld.hxx | 5 sw/qa/extras/layout/data/U-min.fodt | 364 +++++++++++ sw/qa/extras/layout/data/hidden-sections-with-pagestyles.odt |binary sw/qa/extras/layout/data/hiddensection.fodt | 128 +++ sw/qa/extras/layout/data/tdf162109.fodt | 202 ++++++ sw/qa/extras/layout/data/tdf162220.fodt | 209 ++++++ sw/qa/extras/layout/data/tdf162725.fodt | 210 ++++++ sw/qa/extras/layout/layout3.cxx | 238 +++++++ sw/qa/extras/ooxmlexport/ooxmlexport9.cxx | 2 sw/source/core/fields/usrfld.cxx | 13 sw/source/core/inc/frame.hxx | 1 sw/source/core/inc/layfrm.hxx | 1 sw/source/core/inc/txtfrm.hxx | 2 sw/source/core/layout/frmtool.cxx | 23 sw/source/core/layout/laycache.cxx | 66 + sw/source/core/layout/layhelp.hxx | 3 sw/source/core/layout/sectfrm.cxx | 103 +++ sw/source/core/layout/tabfrm.cxx | 6 sw/source/core/text/itradj.cxx | 16 sw/source/core/text/itrform2.cxx | 1 sw/source/core/text/porlin.hxx | 7 sw/source/core/text/portxt.cxx | 8 sw/source/core/text/txtfrm.cxx | 12 sw/source/uibase/shells/textfld.cxx | 4 vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 28 vcl/source/control/tabctrl.cxx | 3 writerfilter/source/dmapper/StyleSheetTable.cxx | 8 xmloff/source/core/xmlexp.cxx | 2 50 files changed, 1807 insertions(+), 159 deletions(-)
New commits: commit 5b7c389f05319d6405a371eafce7cea5a8f62144 Author: Justin Luth <[email protected]> AuthorDate: Wed Sep 11 13:37:13 2024 -0400 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:46 2024 +0200 tdf#162884 writerfilter: map to built-in footnote style name This partial revert fixes a 24.2.4 regression from commit 72ea1005b987159a6a59f9379e63321e0b0dd44f Author: Michael Stahl on Mon May 6 15:58:36 2024 +0200 tdf#160402 writerfilter: extend StyleMap with all Word styles Footnote anchor character formatting is controlled by the character style set in Tools - Footnotes Settings. The default name of that style is UI dependent, so only the English UI was importing properly when the localized name was used in the mapping. "Footnote Symbol" is the internal name - both the internal name and the localized name are find-able at the same time, so the only things that will have a problem are things that don't connect to the style, but just hold the string name. The unit test change is also a revert from mstahl's commit. make CppunitTest_sw_ooxmlexport9 \ CPPUNIT_TEST_NAME=testTdf109310_endnoteStyleForMSO and is an indication of another problem that this fixes, namely that a new Footnote Characters style is added with each round-trip. Bug 162884 was only reproducible with a non-English UI. To reproduce, I compiled with autogen.input --with-lang=de Thus no unit test... Change-Id: I63d37f13f435ff7ec41d6b22d74db83dc495150a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173141 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> Reviewed-by: Miklos Vajna <[email protected]> (cherry picked from commit 3fddae6812f91e5c5f57dacf641f964cd995f2f5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173180 Reviewed-by: Michael Stahl <[email protected]> Reviewed-by: Justin Luth <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173262 diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx index 91f0deb4bb05..a91723b4f6d5 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx @@ -690,7 +690,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf109310_endnoteStyleForMSO) xmlDocUniquePtr pXmlDoc = parseExport("word/endnotes.xml"); // Check w:rStyle element has w:val attribute - note that w: is not specified for attribute assertXPath(pXmlDoc, "/w:endnotes/w:endnote[@w:id='2']/w:p/w:r[1]/w:rPr/w:rStyle"_ostr, "val"_ostr, - "EndnoteCharacters1"); + u"EndnoteCharacters"_ustr); } CPPUNIT_TEST_FIXTURE(Test, testTdf103389) diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx index 8b6da39037de..4477a390b29b 100644 --- a/writerfilter/source/dmapper/StyleSheetTable.cxx +++ b/writerfilter/source/dmapper/StyleSheetTable.cxx @@ -1665,8 +1665,8 @@ StyleSheetTable::ConvertStyleName(const OUString& rWWName) { "envelope address", "Addressee" }, // RES_POOLCOLL_ENVELOPE_ADDRESS { "Envelope Return", "Sender" }, // RES_POOLCOLL_SEND_ADDRESS { "envelope return", "Sender" }, // RES_POOLCOLL_SEND_ADDRESS - { "footnote reference", "Footnote Characters" }, // RES_POOLCHR_FOOTNOTE; tdf#82173 - { "Footnote Reference", "Footnote Characters" }, // RES_POOLCHR_FOOTNOTE; tdf#82173 + { "footnote reference", "Footnote Symbol" }, // RES_POOLCHR_FOOTNOTE; tdf#82173 tdf#162884 + { "Footnote Reference", "Footnote Symbol" }, // RES_POOLCHR_FOOTNOTE; tdf#82173 tdf#162884 { "Annotation Reference", "" }, { "annotation reference", "" }, { "Line Number", "Line Numbering" }, // RES_POOLCHR_LINENUM @@ -1674,8 +1674,8 @@ StyleSheetTable::ConvertStyleName(const OUString& rWWName) { "Page Number", "Page Number" }, // RES_POOLCHR_PAGENO { "page number", "Page Number" }, // RES_POOLCHR_PAGENO { "PageNumber", "Page Number" }, // RES_POOLCHR_PAGENO - { "endnote reference", "Endnote Characters" }, // RES_POOLCHR_ENDNOTE; tdf#82173 - { "Endnote Reference", "Endnote Characters" }, // RES_POOLCHR_ENDNOTE; tdf#82173 + { "endnote reference", "Endnote Symbol" }, // RES_POOLCHR_ENDNOTE; tdf#82173 tdf#162884 + { "Endnote Reference", "Endnote Symbol" }, // RES_POOLCHR_ENDNOTE; tdf#82173 tdf#162884 { "endnote text", "Endnote" }, // RES_POOLCOLL_ENDNOTE { "Endnote Text", "Endnote" }, // RES_POOLCOLL_ENDNOTE { "Table of Authorities", "Bibliography Heading" }, // RES_POOLCOLL_TOX_AUTHORITIESH commit 12dea9efceb8288f5fc683424df675ff458ffab0 Author: Taichi Haradaguchi <[email protected]> AuthorDate: Fri Aug 9 05:50:39 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:46 2024 +0200 poppler: upgrade to release 24.08.0 Fixes CVE-2024-6239 Downloaded from https://poppler.freedesktop.org/poppler-24.08.0.tar.xz Change-Id: I70373c367cc3da87d9847c00b02a17f514b52ae8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171667 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <[email protected]> (cherry picked from commit e266da95e0522fd9896f92f1c2ca3235e0e6fd66) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172951 Reviewed-by: Xisco Fauli <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173040 diff --git a/download.lst b/download.lst index fd89e44a3d84..c9b6c44b44fc 100644 --- a/download.lst +++ b/download.lst @@ -646,8 +646,8 @@ LIBTIFF_TARBALL := tiff-4.6.0.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -POPPLER_SHA256SUM := 0cdabd495cada11f6ee9e75c793f80daf46367b66c25a63ee8c26d0f9ec40c76 -POPPLER_TARBALL := poppler-24.06.0.tar.xz +POPPLER_SHA256SUM := 97453fbddf0c9a9eafa0ea45ac710d3d49bcf23a62e864585385d3c0b4403174 +POPPLER_TARBALL := poppler-24.08.0.tar.xz POPPLER_DATA_SHA256SUM := c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74 POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz # three static lines diff --git a/external/poppler/inc/pch/precompiled_poppler.hxx b/external/poppler/inc/pch/precompiled_poppler.hxx index 0760f9d4da4a..0a3c0a98353c 100644 --- a/external/poppler/inc/pch/precompiled_poppler.hxx +++ b/external/poppler/inc/pch/precompiled_poppler.hxx @@ -22,7 +22,7 @@ #include <sal/config.h> #if PCH_LEVEL >= 1 -#include <Object.h> +#include <Object.h> // Please include this header file to avoid error LNK2019. #include <algorithm> #include <annot_stamp_approved.h> #include <annot_stamp_as_is.h> commit 2cf4829e7247706465da7b8dde33e8fa7232c81e Author: Xisco Fauli <[email protected]> AuthorDate: Mon Jun 10 16:49:29 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:46 2024 +0200 poppler: Upgrade to 24.06.0 Downloaded from https://poppler.freedesktop.org/poppler-24.06.0.tar.xz Change-Id: I6b679ae014edd7a9897eed39a6e91c63251cc016 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168642 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173039 Reviewed-by: Taichi Haradaguchi <[email protected]> diff --git a/download.lst b/download.lst index bfd02f72f5b0..fd89e44a3d84 100644 --- a/download.lst +++ b/download.lst @@ -646,8 +646,8 @@ LIBTIFF_TARBALL := tiff-4.6.0.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -POPPLER_SHA256SUM := d8c5eb30b50285ad9f0af8c6335cc2d3b9597fca475cbc2598a5479fa379f779 -POPPLER_TARBALL := poppler-24.05.0.tar.xz +POPPLER_SHA256SUM := 0cdabd495cada11f6ee9e75c793f80daf46367b66c25a63ee8c26d0f9ec40c76 +POPPLER_TARBALL := poppler-24.06.0.tar.xz POPPLER_DATA_SHA256SUM := c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74 POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz # three static lines diff --git a/external/poppler/inc/pch/precompiled_poppler.hxx b/external/poppler/inc/pch/precompiled_poppler.hxx index 50944b80daef..0760f9d4da4a 100644 --- a/external/poppler/inc/pch/precompiled_poppler.hxx +++ b/external/poppler/inc/pch/precompiled_poppler.hxx @@ -13,7 +13,7 @@ manual changes will be rewritten by the next run of update_pch.sh (which presumably also fixes all possible problems, so it's usually better to use it). - Generated on 2023-06-18 21:15:26 using: + Generated on 2024-06-10 17:25:06 using: ./bin/update_pch external/poppler poppler --cutoff=1 --exclude:system --include:module --include:local If after updating build fails, use the following command to locate conflicting headers: @@ -43,6 +43,7 @@ #include <cctype> #include <cerrno> #include <cfloat> +#include <charconv> #include <climits> #include <clocale> #include <cmath> @@ -55,6 +56,7 @@ #include <cstdlib> #include <cstring> #include <ctime> +#include <functional> #include <gbase64.h> #include <gbasename.h> #include <gdir.h> @@ -67,11 +69,13 @@ #include <iostream> #include <limits> #include <memory> +#include <optional> #include <poppler-config.h> #include <random> #include <regex> #include <set> #include <sstream> +#include <unordered_set> #include <vector> #endif // PCH_LEVEL >= 1 #if PCH_LEVEL >= 2 @@ -100,6 +104,17 @@ #include <poppler/GfxState_helpers.h> #include <splash/Splash.h> #include <splash/SplashBitmap.h> +#include <splash/SplashErrorCodes.h> +#include <splash/SplashFont.h> +#include <splash/SplashFontEngine.h> +#include <splash/SplashFontFile.h> +#include <splash/SplashFontFileID.h> +#include <splash/SplashGlyphBitmap.h> +#include <splash/SplashMath.h> +#include <splash/SplashPath.h> +#include <splash/SplashPattern.h> +#include <splash/SplashScreen.h> +#include <splash/SplashState.h> #include <splash/SplashTypes.h> #include <sys/stat.h> #endif // PCH_LEVEL >= 3 diff --git a/external/poppler/poppler-config.patch.1 b/external/poppler/poppler-config.patch.1 index 8f71e987b2b9..e2163319fd43 100644 --- a/external/poppler/poppler-config.patch.1 +++ b/external/poppler/poppler-config.patch.1 @@ -179,7 +179,7 @@ index 0fbd336a..451213f8 100644 +#define PACKAGE_NAME "poppler" + +/* Define to the full name and version of this package. */ -+#define PACKAGE_STRING "poppler 23.09.0" ++#define PACKAGE_STRING "poppler 24.06.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "poppler" @@ -188,7 +188,7 @@ index 0fbd336a..451213f8 100644 +#define PACKAGE_URL "" + +/* Define to the version of this package. */ -+#define PACKAGE_VERSION "23.09.0" ++#define PACKAGE_VERSION "24.06.0" + +/* Poppler data dir */ +#define POPPLER_DATADIR "/usr/local/share/poppler" @@ -206,7 +206,7 @@ index 0fbd336a..451213f8 100644 +/* #undef USE_FLOAT */ + +/* Version number of package */ -+#define VERSION "23.09.0" ++#define VERSION "24.06.0" + +#if defined(__APPLE__) +#elif defined (_WIN32) @@ -290,7 +290,7 @@ index 0fbd336a..451213f8 100644 + +/* Defines the poppler version. */ +#ifndef POPPLER_VERSION -+#define POPPLER_VERSION "23.09.0" ++#define POPPLER_VERSION "24.06.0" +#endif + +/* Use single precision arithmetic in the Splash backend */ @@ -437,9 +437,9 @@ index 0fbd336a..451213f8 100644 + +#include "poppler-global.h" + -+#define POPPLER_VERSION "23.09.0" -+#define POPPLER_VERSION_MAJOR 23 -+#define POPPLER_VERSION_MINOR 9 ++#define POPPLER_VERSION "24.06.0" ++#define POPPLER_VERSION_MAJOR 24 ++#define POPPLER_VERSION_MINOR 6 +#define POPPLER_VERSION_MICRO 0 + +namespace poppler commit de539d4b801590e434fc2c07d73ae872b549dd26 Author: Xisco Fauli <[email protected]> AuthorDate: Mon May 13 11:14:06 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:46 2024 +0200 poppler: Upgrade 24.05.0 * external/poppler/char_traits.patch is no longer neeeded after https://cgit.freedesktop.org/poppler/poppler/commit/cpp/poppler-global.h?id=b4ac7d9af7cb5edfcfcbda035ed8b8c218ba8564 * Adapt external/poppler/disable-nss-and-gpgmepp.patch.1 after https://cgit.freedesktop.org/poppler/poppler/commit/?id=d40bb7e308c9e3299e50d3e2880229cd6272587e Downloaded from https://poppler.freedesktop.org/poppler-24.05.0.tar.xz Change-Id: I87ed833f92e504f0a39b5f64c1db42d579050a37 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167582 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173038 Reviewed-by: Taichi Haradaguchi <[email protected]> diff --git a/download.lst b/download.lst index 99acbf8dcd6d..bfd02f72f5b0 100644 --- a/download.lst +++ b/download.lst @@ -646,8 +646,8 @@ LIBTIFF_TARBALL := tiff-4.6.0.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -POPPLER_SHA256SUM := bafbf0db5713dec25b5d16eb2cd87e4a62351cdc40f050c3937cd8dd6882d446 -POPPLER_TARBALL := poppler-24.03.0.tar.xz +POPPLER_SHA256SUM := d8c5eb30b50285ad9f0af8c6335cc2d3b9597fca475cbc2598a5479fa379f779 +POPPLER_TARBALL := poppler-24.05.0.tar.xz POPPLER_DATA_SHA256SUM := c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74 POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz # three static lines diff --git a/external/poppler/UnpackedTarball_poppler.mk b/external/poppler/UnpackedTarball_poppler.mk index c6ddbf9785d3..784fc768e2a7 100644 --- a/external/poppler/UnpackedTarball_poppler.mk +++ b/external/poppler/UnpackedTarball_poppler.mk @@ -14,7 +14,6 @@ $(eval $(call gb_UnpackedTarball_set_tarball,poppler,$(POPPLER_TARBALL),,poppler $(eval $(call gb_UnpackedTarball_set_patchlevel,poppler,0)) $(eval $(call gb_UnpackedTarball_add_patches,poppler,\ - external/poppler/char_traits.patch \ external/poppler/disable-freetype.patch.1 \ external/poppler/disable-nss-and-gpgmepp.patch.1 \ external/poppler/poppler-config.patch.1 \ diff --git a/external/poppler/char_traits.patch b/external/poppler/char_traits.patch deleted file mode 100644 index 3483f2fe22d8..000000000000 --- a/external/poppler/char_traits.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- cpp/poppler-global.h -+++ cpp/poppler-global.h -@@ -98,7 +98,7 @@ - # pragma warning(push) - # pragma warning(disable : 4251) /* class 'A' needs to have dll interface for to be used by clients of class 'B'. */ - #endif --class POPPLER_CPP_EXPORT ustring : public std::basic_string<unsigned short> -+class POPPLER_CPP_EXPORT ustring : public std::u16string - { - public: - ustring(); diff --git a/external/poppler/disable-freetype.patch.1 b/external/poppler/disable-freetype.patch.1 index 3c4d1d0f7a8a..5d7426242c35 100644 --- a/external/poppler/disable-freetype.patch.1 +++ b/external/poppler/disable-freetype.patch.1 @@ -22,13 +22,13 @@ disable freetype dependent code #include <unordered_set> // helper for using std::visit to get a dependent false for static_asserts -@@ -2760,6 +2760,8 @@ +@@ -2840,6 +2840,8 @@ Form::AddFontResult Form::addFontToDefaultResources(const std::string &filepath, int faceIndex, const std::string &fontFamily, const std::string &fontStyle, bool forceName) { + return {}; +#if 0 - if (!GooString::endsWith(filepath, ".ttf") && !GooString::endsWith(filepath, ".ttc") && !GooString::endsWith(filepath, ".otf")) { + if (!filepath.ends_with(".ttf") && !filepath.ends_with(".ttc") && !filepath.ends_with(".otf")) { error(errIO, -1, "We only support embedding ttf/ttc/otf fonts for now. The font file for {0:s} {1:s} was {2:s}", fontFamily.c_str(), fontStyle.c_str(), filepath.c_str()); return {}; @@ -2994,6 +2996,7 @@ diff --git a/external/poppler/disable-nss-and-gpgmepp.patch.1 b/external/poppler/disable-nss-and-gpgmepp.patch.1 index 1d7f7f933433..1fc9ede6035c 100644 --- a/external/poppler/disable-nss-and-gpgmepp.patch.1 +++ b/external/poppler/disable-nss-and-gpgmepp.patch.1 @@ -11,9 +11,9 @@ disable NSS/GPGMEPP dependent code. #include "SignatureInfo.h" #include "CertificateInfo.h" #include "XRef.h" -@@ -578,7 +578,7 @@ +@@ -584,7 +584,7 @@ { - return static_cast<FormFieldSignature *>(field)->validateSignature(doVerifyCert, forceRevalidation, validationTime, ocspRevocationCheck, enableAIA); + return static_cast<FormFieldSignature *>(field)->validateSignatureResult(); } - +#if 0 @@ -60,19 +60,44 @@ disable NSS/GPGMEPP dependent code. } FormSignatureType FormWidgetSignature::signatureType() const -@@ -2388,6 +2392,7 @@ - - SignatureInfo *FormFieldSignature::validateSignature(bool doVerifyCert, bool forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool enableAIA) +@@ -2395,6 +2399,7 @@ + + SignatureInfo *FormFieldSignature::validateSignatureAsync(bool doVerifyCert, bool forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool enableAIA, const std::function<void()> &doneCallback) { +#if 0 auto backend = CryptoSign::Factory::createActive(); if (!backend) { - return signature_info; -@@ -2464,6 +2469,7 @@ - const CertificateValidationStatus cert_val_state = signature_handler->validateCertificate(std::chrono::system_clock::from_time_t(validationTime), ocspRevocationCheck, enableAIA); - signature_info->setCertificateValStatus(cert_val_state); - + if (doneCallback) { +@@ -2497,6 +2502,7 @@ + + signature_handler->validateCertificateAsync(std::chrono::system_clock::from_time_t(validationTime), ocspRevocationCheck, enableAIA, doneCallback); + +#endif return signature_info; } +@@ -2508,10 +2508,13 @@ + + CertificateValidationStatus FormFieldSignature::validateSignatureResult() + { ++#if 0 + if (!signature_handler) { + return CERTIFICATE_GENERIC_ERROR; + } + return signature_handler->validateCertificateResult(); ++#endif ++ return CERTIFICATE_GENERIC_ERROR; + } + + std::vector<Goffset> FormFieldSignature::getSignedRangeBounds() const + +--- poppler/poppler/Form.h 2024-05-13 10:18:04.303912457 +0200 ++++ poppler/poppler/Form.h 2024-05-13 11:41:51.547002511 +0200 +@@ -669,7 +669,6 @@ + double customAppearanceLeftFontSize = 20; + Ref imageResource = Ref::INVALID(); + std::unique_ptr<X509CertificateInfo> certificate_info; +- std::unique_ptr<CryptoSign::VerificationInterface> signature_handler; + + void print(int indent) override; + }; commit f8d9ec5674248ee7db33059ad827faa88acd62cf Author: Julien Nabet <[email protected]> AuthorDate: Wed Sep 11 10:31:43 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:46 2024 +0200 tdf#161007: Report Builder Wizard fails See https://bugs.documentfoundation.org/show_bug.cgi?id=161007#c7 Change-Id: Ide92b70f9006e229b59fab0c3eacfb37e0625ae6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173186 Reviewed-by: Henry Castro <[email protected]> Tested-by: Jenkins Reviewed-by: Julien Nabet <[email protected]> (cherry picked from commit a42270bb4d56a538333aa317cb6425a95c37bb8c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173171 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/svx/inc/fmstring.hrc b/svx/inc/fmstring.hrc index d630f354b879..4b0c7005f3f0 100644 --- a/svx/inc/fmstring.hrc +++ b/svx/inc/fmstring.hrc @@ -35,7 +35,7 @@ const TranslateId RID_RSC_SQL_INTERNATIONAL[] = NC_("RID_RSC_SQL_INTERNATIONAL", "BETWEEN"), NC_("RID_RSC_SQL_INTERNATIONAL", "OR"), NC_("RID_RSC_SQL_INTERNATIONAL", "AND"), - NC_("RID_RSC_SQL_INTERNATIONAL", "Average"), + NC_("RID_RSC_SQL_INTERNATIONAL", "AVG"), NC_("RID_RSC_SQL_INTERNATIONAL", "Count"), NC_("RID_RSC_SQL_INTERNATIONAL", "Maximum"), NC_("RID_RSC_SQL_INTERNATIONAL", "Minimum"), commit dbfe3a3de061b701b40f15c6560d50baa8a01b80 Author: Xisco Fauli <[email protected]> AuthorDate: Wed Sep 11 11:04:56 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:46 2024 +0200 curl: upgrade to 8.10.0 Downloaded from https://curl.se/download/curl-8.10.0.tar.xz Change-Id: I1eb9506a73162ce2e2adf1fe1e02267c34bc78ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173194 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit c95229bf8e3bd643b8529046f0754e2de4c6625b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173173 Reviewed-by: Taichi Haradaguchi <[email protected]> diff --git a/download.lst b/download.lst index 4cc89531c2b0..99acbf8dcd6d 100644 --- a/download.lst +++ b/download.lst @@ -80,8 +80,8 @@ CPPUNIT_TARBALL := cppunit-1.15.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -CURL_SHA256SUM := f292f6cc051d5bbabf725ef85d432dfeacc8711dd717ea97612ae590643801e5 -CURL_TARBALL := curl-8.9.1.tar.xz +CURL_SHA256SUM := e6b142f0e85e954759d37e26a3627e2278137595be80e3a860c4353e4335e5a0 +CURL_TARBALL := curl-8.10.0.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/curl/zlib.patch.0 b/external/curl/zlib.patch.0 index ff3ed07b4465..83993fe8a56f 100644 --- a/external/curl/zlib.patch.0 +++ b/external/curl/zlib.patch.0 @@ -8,18 +8,18 @@ # Check whether --with-zlib was given. if test ${with_zlib+y} -@@ -23045,6 +23044,7 @@ +@@ -23609,12 +23609,28 @@ - if test "$OPT_ZLIB" = "no" ; then -+ ZLIB_LIBS="" - { printf "%s " "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5 + if test "$OPT_ZLIB" = "no"; then ++ ZLIB_LIBS="" + { printf "%s " "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5 printf "%s " "$as_me: WARNING: zlib disabled" >&2;} else -@@ -23052,6 +23052,21 @@ + if test "$OPT_ZLIB" = "yes"; then OPT_ZLIB="" fi - ++ + if test -n "$ZLIB_CFLAGS$ZLIB_LIBS"; then + CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS" + LIBS="$ZLIB_LIBS $LIBS" @@ -34,10 +34,9 @@ + AMFIXLIB="1" + else + ZLIB_LIBS="" -+ - if test -z "$OPT_ZLIB" ; then - if test -n "$PKG_CONFIG"; then + if test -z "$OPT_ZLIB"; then + @@ -23903,6 +23903,7 @@ LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE zlib" curl_zlib_msg="enabled" @@ -48,21 +47,22 @@ if test x"$AMFIXLIB" = x1; then --- configure.ac +++ configure.ac -@@ -1243,19 +1243,30 @@ +@@ -1302,19 +1302,31 @@ clean_CPPFLAGS=$CPPFLAGS clean_LDFLAGS=$LDFLAGS clean_LIBS=$LIBS -ZLIB_LIBS="" ++ AC_ARG_WITH(zlib, AS_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH]) AS_HELP_STRING([--without-zlib],[disable use of zlib]), - [OPT_ZLIB="$withval"]) + [OPT_ZLIB="$withval"]) - if test "$OPT_ZLIB" = "no" ; then -+ ZLIB_LIBS="" - AC_MSG_WARN([zlib disabled]) + if test "$OPT_ZLIB" = "no"; then ++ ZLIB_LIBS="" + AC_MSG_WARN([zlib disabled]) else - if test "$OPT_ZLIB" = "yes" ; then + if test "$OPT_ZLIB" = "yes"; then OPT_ZLIB="" fi @@ -77,7 +77,7 @@ + else + ZLIB_LIBS="" + - if test -z "$OPT_ZLIB" ; then + if test -z "$OPT_ZLIB"; then CURL_CHECK_PKGCONFIG(zlib) @@ -1395,6 +1395,7 @@ commit 4f890c4cbce470cd97a01edf328eca2fbee73773 Author: Michael Stahl <[email protected]> AuthorDate: Tue Sep 10 10:30:00 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:46 2024 +0200 expat: upgrade to release 2.6.3 Fixes CVE-2024-45490 CVE-2024-45491 CVE-2024-45492 Change-Id: I17f7d9a5c540e7d2005515f1f4fd79e0a5c631ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173097 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> diff --git a/download.lst b/download.lst index 5f21f00f340b..4cc89531c2b0 100644 --- a/download.lst +++ b/download.lst @@ -111,8 +111,8 @@ ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO).tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -EXPAT_SHA256SUM := ee14b4c5d8908b1bec37ad937607eab183d4d9806a08adee472c3c3121d27364 -EXPAT_TARBALL := expat-2.6.2.tar.xz +EXPAT_SHA256SUM := 274db254a6979bde5aad404763a704956940e465843f2a9bd9ed7af22e2c0efc +EXPAT_TARBALL := expat-2.6.3.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit e1c53750f19a58e6ecdb6e8b62d1b9e829908c61 Author: Caolán McNamara <[email protected]> AuthorDate: Fri Sep 6 19:52:11 2024 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:45 2024 +0200 cid#1619147 Dereference before null check maybe it possible in --headless that ShowMarkWnd launches weld::DialogController::runAsync(mxMarkWnd, [this](sal_Int32 /*nResult*/) { mxMarkWnd.reset(); } ); and the auto-cancel calls mxMarkWnd.reset() immediately? Otherwise, not sure how this could come about. Change-Id: I761ee7450a8ba54b2a7f75d4ee116c30319ddaa8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172976 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit c8eb95e8407ef24436e0e8e218dce535df6bb2e5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173014 Reviewed-by: Xisco Fauli <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173063 Reviewed-by: Michael Stahl <[email protected]> diff --git a/cui/source/dialogs/hldoctp.cxx b/cui/source/dialogs/hldoctp.cxx index a971cd1145b0..c61b22519cd1 100644 --- a/cui/source/dialogs/hldoctp.cxx +++ b/cui/source/dialogs/hldoctp.cxx @@ -207,6 +207,9 @@ IMPL_LINK_NOARG(SvxHyperlinkDocTp, ClickTargetHdl_Impl, weld::Button&, void) { ShowMarkWnd(); + if (!mxMarkWnd) + return; + if ( GetPathType ( maStrURL ) == EPathType::ExistsFile || maStrURL.isEmpty() || maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) || @@ -216,13 +219,10 @@ IMPL_LINK_NOARG(SvxHyperlinkDocTp, ClickTargetHdl_Impl, weld::Button&, void) weld::WaitObject aWait(mpDialog->getDialog()); - if (mxMarkWnd) - { - if ( maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) ) - mxMarkWnd->RefreshTree ( "" ); - else - mxMarkWnd->RefreshTree ( maStrURL ); - } + if ( maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) ) + mxMarkWnd->RefreshTree ( "" ); + else + mxMarkWnd->RefreshTree ( maStrURL ); } else mxMarkWnd->SetError( LERR_DOCNOTOPEN ); commit f6167e16c7ac7c1c784eee53c60f0201d3a38ff7 Author: Xisco Fauli <[email protected]> AuthorDate: Sat Sep 7 00:42:57 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:45 2024 +0200 Python: upgrade to 3.8.20 Downloaded from https://www.python.org/ftp/python/3.8.20/Python-3.8.20.tar.xz Change-Id: I142d52236bcd4011359889ce6e64898ca08999c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172983 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins diff --git a/configure.ac b/configure.ac index d9a1f2335b40..ad8163a248a1 100644 --- a/configure.ac +++ b/configure.ac @@ -10115,7 +10115,7 @@ if test \( "$cross_compiling" = yes -a -z "$PYTHON_FOR_BUILD" \) -o "$enable_pyt SYSTEM_PYTHON= PYTHON_VERSION_MAJOR=3 PYTHON_VERSION_MINOR=8 - PYTHON_VERSION=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.19 + PYTHON_VERSION=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.20 if ! grep -q -i python.*${PYTHON_VERSION} ${SRC_ROOT}/download.lst; then AC_MSG_ERROR([PYTHON_VERSION ${PYTHON_VERSION} but no matching file in download.lst]) fi diff --git a/download.lst b/download.lst index fe06456080fe..5f21f00f340b 100644 --- a/download.lst +++ b/download.lst @@ -658,8 +658,8 @@ POSTGRESQL_TARBALL := postgresql-13.16.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts -PYTHON_SHA256SUM := d2807ac69f69b84fd46a0b93bbd02a4fa48d3e70f4b2835ff0f72a2885040076 -PYTHON_TARBALL := Python-3.8.19.tar.xz +PYTHON_SHA256SUM := 6fb89a7124201c61125c0ab4cf7f6894df339a40c02833bfd28ab4d7691fafb4 +PYTHON_TARBALL := Python-3.8.20.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit 339219d7453907e137e10878755c06e77596424b Author: Xisco Fauli <[email protected]> AuthorDate: Sat Sep 7 18:26:09 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:45 2024 +0200 xmloff: fix deref before null check Seen in https://crashreport.libreoffice.org/stats/signature/SvXMLExport::ExportThemeElement(std::shared_ptr%3Cmodel::Theme%3E%20const%20&) Change-Id: I12b9c3cf064100fb6cfeaaf2828dbf08e7dd8a81 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173000 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit c9f2ec93939417a120f26d64c2b2dff380e81286) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173010 Reviewed-by: Michael Stahl <[email protected]> diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx index bb7ef1cc695d..3f1d0667b3c4 100644 --- a/xmloff/source/core/xmlexp.cxx +++ b/xmloff/source/core/xmlexp.cxx @@ -1689,6 +1689,8 @@ void SvXMLExport::ExportThemeElement(std::shared_ptr<model::Theme> const& pTheme SvXMLElementExport aTheme(*this, XML_NAMESPACE_LO_EXT, XML_THEME, true, true); auto pColorSet = pTheme->getColorSet(); + if (!pColorSet) + return; if (!pColorSet->getName().isEmpty()) AddAttribute(XML_NAMESPACE_LO_EXT, XML_NAME, pColorSet->getName()); SvXMLElementExport aColorTable(*this, XML_NAMESPACE_LO_EXT, XML_THEME_COLORS, true, true); commit 70a2280118c176b4d072cdc20581fa35fd6156cb Author: Xisco Fauli <[email protected]> AuthorDate: Mon Mar 25 20:59:08 2024 +0100 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:45 2024 +0200 poppler: upgrade to release 24.03.0 Change-Id: Icd063dcc9a034e88283ddf16be64091a32f3453f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165292 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173037 Reviewed-by: Caolán McNamara <[email protected]> diff --git a/download.lst b/download.lst index a873561875e0..fe06456080fe 100644 --- a/download.lst +++ b/download.lst @@ -646,8 +646,8 @@ LIBTIFF_TARBALL := tiff-4.6.0.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts -POPPLER_SHA256SUM := 80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55 -POPPLER_TARBALL := poppler-23.09.0.tar.xz +POPPLER_SHA256SUM := bafbf0db5713dec25b5d16eb2cd87e4a62351cdc40f050c3937cd8dd6882d446 +POPPLER_TARBALL := poppler-24.03.0.tar.xz POPPLER_DATA_SHA256SUM := c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74 POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz # three static lines diff --git a/external/poppler/disable-nss-and-gpgmepp.patch.1 b/external/poppler/disable-nss-and-gpgmepp.patch.1 index 01b442f53a1c..1d7f7f933433 100644 --- a/external/poppler/disable-nss-and-gpgmepp.patch.1 +++ b/external/poppler/disable-nss-and-gpgmepp.patch.1 @@ -11,7 +11,7 @@ disable NSS/GPGMEPP dependent code. #include "SignatureInfo.h" #include "CertificateInfo.h" #include "XRef.h" -@@ -577,7 +577,7 @@ +@@ -578,7 +578,7 @@ { return static_cast<FormFieldSignature *>(field)->validateSignature(doVerifyCert, forceRevalidation, validationTime, ocspRevocationCheck, enableAIA); } @@ -20,12 +20,12 @@ disable NSS/GPGMEPP dependent code. // update hash with the specified range of data from the file static bool hashFileRange(FILE *f, CryptoSign::SigningInterface *handler, Goffset start, Goffset end) { -@@ -607,10 +607,12 @@ +@@ -608,10 +608,12 @@ delete[] buf; return true; } +#endif - + bool FormWidgetSignature::signDocument(const std::string &saveFilename, const std::string &certNickname, const std::string &password, const GooString *reason, const GooString *location, const std::optional<GooString> &ownerPassword, const std::optional<GooString> &userPassword) { @@ -33,44 +33,46 @@ disable NSS/GPGMEPP dependent code. auto backend = CryptoSign::Factory::createActive(); if (!backend) { return false; -@@ -698,6 +700,8 @@ +@@ -697,8 +699,8 @@ + signatureField->setSignature(*signature); + fclose(file); - - return true; +- +- return true; +#endif + return false; } - - bool FormWidgetSignature::signDocumentWithAppearance(const std::string &saveFilename, const std::string &certNickname, const std::string &password, const GooString *reason, const GooString *location, -@@ -2316,6 +2320,7 @@ - + + static std::tuple<double, double> calculateDxDy(int rot, const PDFRectangle *rect) +@@ -2355,6 +2357,7 @@ + void FormFieldSignature::hashSignedDataBlock(CryptoSign::VerificationInterface *handler, Goffset block_len) { +#if 0 if (!handler) { return; } -@@ -2335,6 +2340,7 @@ +@@ -2374,6 +2377,7 @@ i += BLOCK_SIZE; } } +#endif } - + FormSignatureType FormWidgetSignature::signatureType() const -@@ -2349,6 +2355,7 @@ - +@@ -2388,6 +2392,7 @@ + SignatureInfo *FormFieldSignature::validateSignature(bool doVerifyCert, bool forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool enableAIA) { +#if 0 auto backend = CryptoSign::Factory::createActive(); if (!backend) { return signature_info; -@@ -2425,6 +2432,7 @@ +@@ -2464,6 +2469,7 @@ const CertificateValidationStatus cert_val_state = signature_handler->validateCertificate(std::chrono::system_clock::from_time_t(validationTime), ocspRevocationCheck, enableAIA); signature_info->setCertificateValStatus(cert_val_state); - + +#endif return signature_info; } - + commit 829b27794b3d2d74bdb0bc116594c3c992d2d1d0 Author: Julien Nabet <[email protected]> AuthorDate: Sun Sep 8 11:02:43 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:45 2024 +0200 tdf#155751: dBase: BETWEEN won't include first and last value in queries Since the beginning: commit 86c5930e98a48fef73253535fa7508c187a093f0 Author: Jens-Heiner Rechtien <[email protected]> Date: Mon Aug 2 16:04:09 2004 +0000 INTEGRATION: CWS insight01 (1.19.14); FILE MERGED 2004/06/03 14:48:29 oj 1.19.14.3: #i18836# imple between key word 2004/05/28 11:16:26 oj 1.19.14.2: RESYNC: (1.19-1.20); FILE MERGED 2004/05/12 10:48:11 oj 1.19.14.1: change SQLFilterOperator Change-Id: I75d00c313072e08279ca2f37cb65bb3414447d16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173036 Tested-by: Jenkins Reviewed-by: Julien Nabet <[email protected]> (cherry picked from commit 403075b4614d2926a07cb43806c3e9ef311ee779) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173015 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 23e9fe3b8f71f7d47b0e4a132252efb91cac9e6d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173018 diff --git a/connectivity/source/drivers/file/fcomp.cxx b/connectivity/source/drivers/file/fcomp.cxx index 45c9022340a9..a47e9dd827bc 100644 --- a/connectivity/source/drivers/file/fcomp.cxx +++ b/connectivity/source/drivers/file/fcomp.cxx @@ -330,12 +330,12 @@ void OPredicateCompiler::execute_BETWEEN(OSQLParseNode const * pPredicateNode) OOperand* pColumnOp = execute(pColumn); OOperand* pOb1 = execute(p1stValue); - OBoolOperator* pOperator = new OOp_COMPARE(bNot ? SQLFilterOperator::LESS_EQUAL : SQLFilterOperator::GREATER); + OBoolOperator* pOperator = new OOp_COMPARE(bNot ? SQLFilterOperator::LESS : SQLFilterOperator::GREATER_EQUAL); m_aCodeList.emplace_back(pOperator); execute(pColumn); OOperand* pOb2 = execute(p2ndtValue); - pOperator = new OOp_COMPARE(bNot ? SQLFilterOperator::GREATER_EQUAL : SQLFilterOperator::LESS); + pOperator = new OOp_COMPARE(bNot ? SQLFilterOperator::GREATER : SQLFilterOperator::LESS_EQUAL); m_aCodeList.emplace_back(pOperator); if ( pColumnOp && pOb1 && pOb2 ) commit 524364596afc414bac1b073555541dd50cdb5ffd Author: Michael Stahl <[email protected]> AuthorDate: Fri Sep 6 14:09:15 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:45 2024 +0200 sw: fix hiding of flys in hidden sections, part 3 Sigh... the new section frame can be deleted! Missed that... (regression from commit e2f3ba12c238c895dfd61ad09fcd76789ebbfd53) Change-Id: I48f2b09ececf8fb8469c53a5ec0a3c75be5f7306 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172966 Tested-by: Jenkins Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit 0c6ec63c81676ed675931d9aa8a78d91ed0d9b6e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172954 Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index 0a7f5ae16456..d7d97c64c189 100644 --- a/sw/source/core/layout/frmtool.cxx +++ b/sw/source/core/layout/frmtool.cxx @@ -1908,10 +1908,6 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc, //section again. pActualSection.reset(pActualSection->GetUpper()); pLay = pLay->FindSctFrame(); - if (pLay->IsHiddenNow()) - { - newHiddenSections.push_back(static_cast<SwSectionFrame*>(pLay)); - } if ( pActualSection ) { //Could be, that the last SectionFrame remains empty. @@ -1926,6 +1922,10 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc, } else { + if (pLay->IsHiddenNow()) + { + newHiddenSections.push_back(static_cast<SwSectionFrame*>(pLay)); + } pPrv = pLay; pLay = pLay->GetUpper(); } @@ -1969,6 +1969,10 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc, } else { + if (pLay->IsHiddenNow()) + { + newHiddenSections.push_back(static_cast<SwSectionFrame*>(pLay)); + } //Nothing more with sections, it goes on right behind //the SectionFrame. pPrv = pLay; commit 221838f5c1bd4c444177fee4a6d6ba38be046b19 Author: Xisco Fauli <[email protected]> AuthorDate: Wed Jul 31 11:44:49 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:45 2024 +0200 curl: upgrade to 8.9.1 Downloaded from https://curl.se/download/curl-8.9.1.tar.xz Change-Id: I7a8ddd798c41ee6c9163b771b6c57f100fdc8af0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171292 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172834 Reviewed-by: Christian Lohmaier <[email protected]> Tested-by: Christian Lohmaier <[email protected]> diff --git a/download.lst b/download.lst index 0cd11960276d..a873561875e0 100644 --- a/download.lst +++ b/download.lst @@ -80,8 +80,8 @@ CPPUNIT_TARBALL := cppunit-1.15.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -CURL_SHA256SUM := ff09b2791ca56d25fd5c3f3a4927dce7c8a9dc4182200c487ca889fba1fdd412 -CURL_TARBALL := curl-8.9.0.tar.xz +CURL_SHA256SUM := f292f6cc051d5bbabf725ef85d432dfeacc8711dd717ea97612ae590643801e5 +CURL_TARBALL := curl-8.9.1.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts commit f4b1b192548695edbd19d43701ff6a21c69ce7c7 Author: Xisco Fauli <[email protected]> AuthorDate: Wed Jul 24 12:43:09 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:45 2024 +0200 curl: upgrade to 8.9.0 Downloaded from https://curl.se/download/curl-8.9.0.tar.xz Change-Id: Id8198dcc73e1679e8f672459b19d84606ae3e762 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170934 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins (cherry picked from commit 282da64a8fbcc71b59479bf13820a0b93c5f5889) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170945 Reviewed-by: Christian Lohmaier <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172833 Tested-by: Christian Lohmaier <[email protected]> diff --git a/download.lst b/download.lst index dea5dbd14e80..0cd11960276d 100644 --- a/download.lst +++ b/download.lst @@ -80,8 +80,8 @@ CPPUNIT_TARBALL := cppunit-1.15.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -CURL_SHA256SUM := 0f58bb95fc330c8a46eeb3df5701b0d90c9d9bfcc42bd1cd08791d12551d4400 -CURL_TARBALL := curl-8.8.0.tar.xz +CURL_SHA256SUM := ff09b2791ca56d25fd5c3f3a4927dce7c8a9dc4182200c487ca889fba1fdd412 +CURL_TARBALL := curl-8.9.0.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/curl/configurable-z-option.patch.0 b/external/curl/configurable-z-option.patch.0 index 84516ad21917..5be2445e28c1 100644 --- a/external/curl/configurable-z-option.patch.0 +++ b/external/curl/configurable-z-option.patch.0 @@ -6,7 +6,7 @@ CC_NODEBUG = $(CC) /O2 /DNDEBUG -CC_DEBUG = $(CC) /Od /Gm /Zi /D_DEBUG /GZ +CC_DEBUG = $(CC) /Od /Gm $(DEBUG_FLAGS_VALUE) /D_DEBUG /GZ - CFLAGS = /I. /I../lib /I../include /nologo /W4 /GX /DWIN32 /YX /FD /c /DBUILDING_LIBCURL + CFLAGS = /I. /I../lib /I../include /nologo /W4 /GX /YX /FD /c /DBUILDING_LIBCURL !ELSE CC_NODEBUG = $(CC) /O2 /DNDEBUG @@ -64,7 +64,7 @@ diff --git a/external/curl/curl-msvc.patch.1 b/external/curl/curl-msvc.patch.1 index 54ad026ec8c7..2295b1b53ecf 100644 --- a/external/curl/curl-msvc.patch.1 +++ b/external/curl/curl-msvc.patch.1 @@ -6,22 +6,22 @@ MSVC: using SOLARINC !ELSE CC_NODEBUG = $(CC) /O2 /DNDEBUG CC_DEBUG = $(CC) /Od /D_DEBUG /RTC1 /Z7 /LDd --CFLAGS = /I. /I ../lib /I../include /nologo /W4 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL -+CFLAGS = /I. /I ../lib /I../include /nologo /W4 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL $(SOLARINC) +-CFLAGS = /I. /I ../lib /I../include /nologo /W4 /EHsc /FD /c /DBUILDING_LIBCURL ++CFLAGS = /I. /I ../lib /I../include /nologo /W4 /EHsc /FD /c /DBUILDING_LIBCURL $(SOLARINC) !ENDIF LFLAGS = /nologo /machine:$(MACHINE) -@@ -426,11 +426,11 @@ +@@ -428,11 +428,11 @@ # CURL_XX macros are for the curl.exe command !IF "$(DEBUG)"=="yes" --RC_FLAGS = /dDEBUGBUILD=1 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc -+RC_FLAGS = $(SOLARINC) /dDEBUGBUILD=1 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc +-RC_FLAGS = /d_DEBUG /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc ++RC_FLAGS = $(SOLARINC) /d_DEBUG /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc CURL_CC = $(CC_DEBUG) $(RTLIB_DEBUG) - CURL_RC_FLAGS = $(CURL_RC_FLAGS) /i../include /dDEBUGBUILD=1 /Fo $@ $(CURL_SRC_DIR)+ CURL_RC_FLAGS = $(CURL_RC_FLAGS) /i../include /d_DEBUG /Fo $@ $(CURL_SRC_DIR) !ELSE --RC_FLAGS = /dDEBUGBUILD=0 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc -+RC_FLAGS = $(SOLARINC) /dDEBUGBUILD=0 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc +-RC_FLAGS = /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc ++RC_FLAGS = $(SOLARINC) /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc CURL_CC = $(CC_NODEBUG) $(RTLIB) - CURL_RC_FLAGS = $(CURL_RC_FLAGS) /i../include /dDEBUGBUILD=0 /Fo $@ $(CURL_SRC_DIR)+ CURL_RC_FLAGS = $(CURL_RC_FLAGS) /i../include /Fo $@ $(CURL_SRC_DIR) !ENDIF diff --git a/external/curl/zlib.patch.0 b/external/curl/zlib.patch.0 index b4442ba262d1..ff3ed07b4465 100644 --- a/external/curl/zlib.patch.0 +++ b/external/curl/zlib.patch.0 @@ -38,8 +38,8 @@ if test -z "$OPT_ZLIB" ; then if test -n "$PKG_CONFIG"; then -@@ -23344,6 +23359,7 @@ - printf "%s " "$as_me: found both libz and libz.h header" >&6;} +@@ -23903,6 +23903,7 @@ + LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE zlib" curl_zlib_msg="enabled" fi + fi @@ -80,8 +80,8 @@ if test -z "$OPT_ZLIB" ; then CURL_CHECK_PKGCONFIG(zlib) -@@ -1336,6 +1347,7 @@ - AC_MSG_NOTICE([found both libz and libz.h header]) +@@ -1395,6 +1395,7 @@ + LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE zlib" curl_zlib_msg="enabled" fi + fi commit aa38003c4b9fc67e58680caa6e6213f47b684115 Author: Michael Stahl <[email protected]> AuthorDate: Thu Sep 5 18:19:44 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:44 2024 +0200 sw: fix problem with 0-height tables after unhiding section Mysteriously this works the first time the section is made visible, but then hide it again and unhide it and a table has height 0 because only the table itself is invalidated and none of the text frames inside it. SwTabFrame::MakeAll() does Prepare(PrepareHint::FramePositionChanged) on all contained text frames, but that may actually do nothing in common cases. So just recursively invalidate everything in the section, that should fix things. (regression from commit ff7f1b59e22092d8548459e75fe912db852f056f) Change-Id: I26e72193947685fde52fb8da78e95592a3866c12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172920 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins (cherry picked from commit c647937e6066fb911b8ddc5a77b2621d5cb874e4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172945 Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sw/source/core/layout/sectfrm.cxx b/sw/source/core/layout/sectfrm.cxx index 953d55073676..a7dbf0e02be5 100644 --- a/sw/source/core/layout/sectfrm.cxx +++ b/sw/source/core/layout/sectfrm.cxx @@ -2671,6 +2671,24 @@ void SwSectionFrame::CalcEndAtEndFlag() } } +static void InvalidateFramesInSection(SwFrame * pFrame) +{ + while (pFrame) + { + pFrame->InvalidateAll(); + pFrame->InvalidateObjs(false); + if (pFrame->IsLayoutFrame()) + { + InvalidateFramesInSection(pFrame->GetLower()); + } + else if (pFrame->IsTextFrame()) + { + pFrame->Prepare(PrepareHint::Clear, nullptr, false); + } + pFrame = pFrame->GetNext(); + } +} + void SwSectionFrame::Notify(SfxHint const& rHint) { SwSectionFormat *const pFormat(GetSection()->GetFormat()); @@ -2732,35 +2750,8 @@ void SwSectionFrame::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) SwRectFnSet(this).SetHeight(area, HUGE_POSITIVE); } - SwColumnFrame * pColumn{Lower()->IsColumnFrame() - ? static_cast<SwColumnFrame*>(Lower()) : nullptr}; - auto IterateLower = [&pColumn](SwFrame *const pLowerFrame) -> SwFrame* - { - if (pLowerFrame->GetNext()) - { - return pLowerFrame->GetNext(); - } - if (pColumn) - { - pColumn = static_cast<SwColumnFrame*>(pColumn->GetNext()); - if (pColumn) - { - return static_cast<SwLayoutFrame*>(pColumn->Lower())->Lower(); - } - } - return nullptr; - }; - for (SwFrame* pLowerFrame = pColumn - ? static_cast<SwLayoutFrame*>(pColumn->Lower())->Lower() - : Lower(); - pLowerFrame; - pLowerFrame = IterateLower(pLowerFrame)) - { - pLowerFrame->Prepare(PrepareHint::Clear, nullptr, false); - pLowerFrame->InvalidateAll(); - pLowerFrame->InvalidateObjs(false); - pLowerFrame->HideAndShowObjects(); - } + InvalidateFramesInSection(Lower()); + Lower()->HideAndShowObjects(); // recursive // Check if any page-breaks have been unhidden, create the new pages. // Call IsHiddenNow() because a parent section could still hide. if (!IsFollow() && IsInDocBody() && !IsInTab() && !IsHiddenNow()) @@ -2789,8 +2780,24 @@ void SwSectionFrame::SwClientNotify(const SwModify& rMod, const SfxHint& rHint) pFirstOnPage = pFirstOnPage->GetUpper(); } assert(pFirstOnPage->IsContentFrame() || pFirstOnPage->IsTabFrame()); - pColumn = Lower()->IsColumnFrame() - ? static_cast<SwColumnFrame*>(Lower()) : nullptr; + SwColumnFrame * pColumn{Lower()->IsColumnFrame() + ? static_cast<SwColumnFrame*>(Lower()) : nullptr}; + auto IterateLower = [&pColumn](SwFrame *const pLowerFrame) -> SwFrame* + { + if (pLowerFrame->GetNext()) + { + return pLowerFrame->GetNext(); + } + if (pColumn) + { + pColumn = static_cast<SwColumnFrame*>(pColumn->GetNext()); + if (pColumn) + { + return static_cast<SwLayoutFrame*>(pColumn->Lower())->Lower(); + } + } + return nullptr; + }; for (SwFrame* pLowerFrame = pColumn ? static_cast<SwLayoutFrame*>(pColumn->Lower())->Lower() : Lower(); commit 1b23e6d533110f29f33766248913fdcc39bf1fe1 Author: Xisco Fauli <[email protected]> AuthorDate: Thu Sep 5 16:29:08 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:44 2024 +0200 cui: fix another plausible crash Similar to 6633afe0ff18e5921eb96be2f863f28bd7e1110d "fix crash in Hyperlink dialog" Change-Id: Ia53ffeffaca775c66fb269e109d5fdb8c32d0066 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172917 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> Reviewed-by: Noel Grandin <[email protected]> (cherry picked from commit 6605f58aeddb21629b842040b81df55a29443fd0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172902 Reviewed-by: Michael Stahl <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172936 diff --git a/cui/source/dialogs/hldoctp.cxx b/cui/source/dialogs/hldoctp.cxx index 8c65fdb47fd6..a971cd1145b0 100644 --- a/cui/source/dialogs/hldoctp.cxx +++ b/cui/source/dialogs/hldoctp.cxx @@ -216,10 +216,13 @@ IMPL_LINK_NOARG(SvxHyperlinkDocTp, ClickTargetHdl_Impl, weld::Button&, void) weld::WaitObject aWait(mpDialog->getDialog()); - if ( maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) ) - mxMarkWnd->RefreshTree ( "" ); - else - mxMarkWnd->RefreshTree ( maStrURL ); + if (mxMarkWnd) + { + if ( maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) ) + mxMarkWnd->RefreshTree ( "" ); + else + mxMarkWnd->RefreshTree ( maStrURL ); + } } else mxMarkWnd->SetError( LERR_DOCNOTOPEN ); commit f09c7dc21b189dfccf10abaa2784f255df1e0968 Author: Michael Stahl <[email protected]> AuthorDate: Thu Sep 5 15:19:13 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:44 2024 +0200 sw: fix hiding of flys in hidden sections, part 2 Didn't notice that this depends on a global variable "bObjsDirect" so it only works for some documents; move the HideAndShowObjects() call to the end so it works in all cases. (follow-up to commit 8a13277f797c6e2f1b0d9060ad6e5e4d72eb76d0) Change-Id: I26a7cecdb660179f3ac1c3ea1e5d19067806b741 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172915 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins (cherry picked from commit e2f3ba12c238c895dfd61ad09fcd76789ebbfd53) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172901 Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index e89274dad0bb..0a7f5ae16456 100644 --- a/sw/source/core/layout/frmtool.cxx +++ b/sw/source/core/layout/frmtool.cxx @@ -1587,6 +1587,8 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc, //the SwActualSection class has a member, which points to an upper(section). //When the "inner" section finishes, the upper will used instead. + std::vector<SwSectionFrame *> newHiddenSections; + // Do not consider the end node. The caller (Section/MakeFrames()) has to // ensure that the end of this range is positioned before EndIndex! for ( ; nEndIndex == SwNodeOffset(0) || nIndex < nEndIndex; ++nIndex) @@ -1907,12 +1909,8 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc, pActualSection.reset(pActualSection->GetUpper()); pLay = pLay->FindSctFrame(); if (pLay->IsHiddenNow()) - { // flys were created visible - for (SwFlowFrame * pSect = SwFlowFrame::CastFlowFrame(pLay); - pSect; pSect = pSect->GetPrecede()) - { // flys were created visible - pSect->GetFrame().HideAndShowObjects(); - } + { + newHiddenSections.push_back(static_cast<SwSectionFrame*>(pLay)); } if ( pActualSection ) { @@ -1947,11 +1945,7 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc, } else if (pOuterSectionFrame->IsHiddenNow()) { - for (SwFlowFrame * pSect = SwFlowFrame::CastFlowFrame(pOuterSectionFrame); - pSect; pSect = pSect->GetPrecede()) - { // flys were created visible - pSect->GetFrame().HideAndShowObjects(); - } + newHiddenSections.push_back(pOuterSectionFrame); } } else @@ -2024,6 +2018,15 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc *pDoc, bObjsDirect = true; } + // do it after AppendAllObjs() + for (SwSectionFrame * pNew : newHiddenSections) + { + for (SwFlowFrame * pSect = pNew; pSect; pSect = pSect->GetPrecede()) + { // flys were created visible; section may be paginated so iterate + pSect->GetFrame().HideAndShowObjects(); + } + } + if( pPageMaker ) { pPageMaker->CheckFlyCache( pPage ); commit 5fd622e9cdd353192df2bb311941de64e403ec0c Author: Noel Grandin <[email protected]> AuthorDate: Thu Sep 5 12:11:27 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:44 2024 +0200 fix crash in Hyperlink dialog which I managed to trigger by hitting escape repeatedly while it was trying to load the targets window Change-Id: I4c7cb3a30104c58bfc6652923a0aa2169c1bf3bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172907 Reviewed-by: Noel Grandin <[email protected]> Tested-by: Jenkins (cherry picked from commit 6633afe0ff18e5921eb96be2f863f28bd7e1110d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172894 Reviewed-by: Xisco Fauli <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172918 diff --git a/cui/source/dialogs/hldoctp.cxx b/cui/source/dialogs/hldoctp.cxx index a1c1454b69de..8c65fdb47fd6 100644 --- a/cui/source/dialogs/hldoctp.cxx +++ b/cui/source/dialogs/hldoctp.cxx @@ -253,10 +253,13 @@ IMPL_LINK_NOARG(SvxHyperlinkDocTp, TimeoutHdl_Impl, Timer *, void) { weld::WaitObject aWait(mpDialog->getDialog()); - if ( maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) ) - mxMarkWnd->RefreshTree ( "" ); - else - mxMarkWnd->RefreshTree ( maStrURL ); + if (mxMarkWnd) + { + if ( maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) ) + mxMarkWnd->RefreshTree ( "" ); + else + mxMarkWnd->RefreshTree ( maStrURL ); + } } } commit 691699e566c80b354203e78acfb4fb915d47954e Author: Michael Stahl <[email protected]> AuthorDate: Thu Sep 5 12:37:46 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:44 2024 +0200 sw: fix empty pages after hiding section due to SwTabFrame The problem with a full customer doc is that a table doesn't MoveBwd because ShouldBwdMoved finds that the rows don't fit as the rows still have non-0 heights, and the result is an empty page at the end; also the table later splits. Turns out that setting bDontSplit prevents both problems; the inner frames are all set to 0 height by lcl_RecalcTable(). (regression from commit ff7f1b59e22092d8548459e75fe912db852f056f) Change-Id: I5012142a0019ee2e978d5b8a9eb445ff0949e569 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172910 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins (cherry picked from commit 8087f479b373299d45469ff3996dba793a9cdb28) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172897 Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx index 040635a513b7..a41d04946d6e 100644 --- a/sw/source/core/layout/tabfrm.cxx +++ b/sw/source/core/layout/tabfrm.cxx @@ -2165,9 +2165,10 @@ void SwTabFrame::MakeAll(vcl::RenderContext* pRenderContext) std::optional<SwBorderAttrAccess> oAccess(std::in_place, SwFrame::GetCache(), this); const SwBorderAttrs *pAttrs = oAccess->Get(); + bool const isHiddenNow(IsHiddenNow()); // All rows should keep together - bool bDontSplit = !IsFollow() && - ( !GetFormat()->GetLayoutSplit().GetValue() ); + bool bDontSplit = isHiddenNow + || (!IsFollow() && !GetFormat()->GetLayoutSplit().GetValue()); // The number of repeated headlines const sal_uInt16 nRepeat = GetTable()->GetRowsToRepeat(); @@ -2262,7 +2263,6 @@ void SwTabFrame::MakeAll(vcl::RenderContext* pRenderContext) } } - bool const isHiddenNow(IsHiddenNow()); if (isHiddenNow) MakeValidZeroHeight(); commit 6c38013ff036ba17d88da6c4acc1126f795b90a5 Author: Justin Luth <[email protected]> AuthorDate: Fri Jul 19 09:50:11 2024 -0400 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:44 2024 +0200 tdf#161741 tdf#161705 pgnum wizard: avoid undo crash (sledgehammer) This was fixed differently (hopefully more elegantly) in master, but that patch cannot be confidently backported. So this alternate approach is proposed for backport to stable. The "kill undo completely" approach that this patch is reverting back too is still commonly used for anything-to-do-with-page-style-headers-and-footers. i.e sw/source/core/unocore/unostyle.cxx // Fix i64460: as long as Undo of page styles with header/footer causes trouble... LO 7.6 introduced the page number wizard which has more prominently exposed existing ways to make undo/redo of page style changes to crash. So treat this as pre-LO 7.2 and simply erase the undo stack after running the wizard. ------------------------------------------------------------------ The ability to undo/redo the "Header/footer change" started in bibisect-linux-64-7.2 commit 910d9a081daf11ea53235d227c3dc9623942a824 commit 8d8486f43c1a8a51157bfc3e0b87090b05a9229e Author: Daniel Arato (NISZ) on Mon Feb 22 16:59:38 2021 +0100 tdf#46561 sw: fix lost undo stack setting header/footer - if( bHeaderFooterChanged ) - GetIDocumentUndoRedo().DelAllUndoObj(); Change-Id: I00c529784bfd7b2cd1230474c05eea8516e6c1e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172822 Reviewed-by: Justin Luth <[email protected]> Tested-by: Jenkins Reviewed-by: Miklos Vajna <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172911 diff --git a/sw/source/uibase/shells/textfld.cxx b/sw/source/uibase/shells/textfld.cxx index 20f21bb92355..87aa34ffd724 100644 --- a/sw/source/uibase/shells/textfld.cxx +++ b/sw/source/uibase/shells/textfld.cxx @@ -1453,6 +1453,10 @@ FIELD_INSERT: rSh.EndAllAction(); rSh.LockView(false); rDoc.GetIDocumentUndoRedo().EndUndo(SwUndoId::INSERT_PAGE_NUMBER, nullptr); + + // avoid various ways to crash related to undo of SwPageDesc (tdf#161741, tdf#161705) + if (bChangePageDesc) + rDoc.GetIDocumentUndoRedo().DelAllUndoObj(); } pDlg->disposeOnce(); }); commit f860ec9c12f941baea223bc6bc65ce8563959e0c Author: Michael Stahl <[email protected]> AuthorDate: Tue Sep 3 20:25:36 2024 +0200 Commit: Andras Timar <[email protected]> CommitDate: Fri Sep 13 14:24:44 2024 +0200 sw: fix hiding of flys in hidden sections There are 2 different ways to hide flys, either destroy the SwFlyFrames (as is done for delete redlines or fieldmarks) or move them to an invisible layer (as is done for field-hidden paragraphs). Previously for hidden sections the FlyFrames would be destroyed, but it's easier now to move them to invisible layer. HideAndShowObjects() needs to be recursive so it can hide flys that are anchored in a table. (regression from commit ff7f1b59e22092d8548459e75fe912db852f056f) Change-Id: Ideab0343315e575c066eb9e2e901d2ee0acabe3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172865 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins (cherry picked from commit 8a13277f797c6e2f1b0d9060ad6e5e4d72eb76d0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172892 Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sw/qa/extras/layout/data/U-min.fodt b/sw/qa/extras/layout/data/U-min.fodt new file mode 100644 index 000000000000..404cf7b3ed84 --- /dev/null +++ b/sw/qa/extras/layout/data/U-min.fodt @@ -0,0 +1,364 @@ +<?xml version='1.0' encoding='UTF-8'?> +<office:document xmlns:officeooo="http://openoffice.org/2009/office" 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:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:dc="http://purl.org/dc/eleme nts/1.1/" xmlns:ooo="http://openoffice.org/2004/office" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0 " xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text"> + <office:font-face-decls> + <style:font-face style:name="Times New Roman" svg:font-family="'Times New Roman'" style:font-family-generic="roman" style:font-pitch="variable"/> + <style:font-face style:name="Times New Roman1" svg:font-family="'Times New Roman'" style:font-adornments="Standard" style:font-family-generic="roman" style:font-pitch="variable"/> + <style:font-face style:name="Arial" svg:font-family="Arial" style:font-adornments="Standard" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Lucida Sans Unicode" svg:font-family="'Lucida Sans Unicode'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="graphic"> + <style:graphic-properties svg:stroke-color="#808080" draw:fill-color="#cfe7f5" 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:flow-with-text="false"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:font-independent-line-spacing="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties fo:color="#000000" style:font-name="Times New Roman" fo:font-size="12pt" fo:language="de" fo:country="DE" style:font-name-asian="Lucida Sans Unicode" style:font-size-asian="12pt" style:language-asian="en" style:country-asian="US" style:font-name-complex="Tahoma" style:font-size-complex="12pt" style:language-complex="en" style:country-complex="US"/> + </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="1.997cm" style:writing-mode="page"/> + <style:text-properties fo:color="#000000" style:font-name="Times New Roman" fo:font-size="12pt" fo:language="de" fo:country="DE" style:font-name-asian="Lucida Sans Unicode" style:font-size-asian="12pt" style:language-asian="en" style:country-asian="US" style:font-name-complex="Tahoma" style:font-size-complex="12pt" style:language-complex="en" style:country-complex="US" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false"/> + </style:default-style> + <style:default-style style:family="table"> + <style:table-properties table:border-model="collapsing"/> + </style:default-style> + <style:default-style style:family="table-row"> + <style:table-row-properties fo:keep-together="auto"/> + </style:default-style> + <style:style style:name="Standard" style:family="paragraph" style:class="text"/> + <style:style style:name="Frame_20_contents" style:display-name="Frame contents" style:family="paragraph" style:class="extra"/> + <style:style style:name="VordruckGroß" style:family="paragraph" style:parent-style-name="Schrift1"> + <style:text-properties fo:font-size="11pt" fo:font-weight="bold"/> + </style:style> + <style:style style:name="Schrift1" style:family="paragraph"> + <style:paragraph-properties> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties style:font-name="Arial" fo:font-family="Arial" style:font-style-name="Standard" style:font-family-generic="swiss" style:font-pitch="variable"/> + </style:style> + <style:style style:name="Schrift2" style:family="paragraph" style:master-page-name=""> + <style:paragraph-properties style:page-number="auto"/> + <style:text-properties style:font-name="Times New Roman1" fo:font-family="'Times New Roman'" style:font-style-name="Standard" style:font-family-generic="roman" style:font-pitch="variable"/> + </style:style> + <style:style style:name="TextNormal" style:family="paragraph" style:parent-style-name="Schrift2" style:master-page-name=""> + <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="150%" fo:orphans="2" fo:widows="2" fo:hyphenation-ladder-count="no-limit" style:page-number="auto"/> + <style:text-properties fo:hyphenate="true" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false"/> + </style:style> + <style:style style:name="Vfg2" style:family="paragraph" style:parent-style-name="TextNormal" style:list-style-name="Numbering_20_1" style:master-page-name=""> + <style:paragraph-properties fo:line-height="100%" style:page-number="auto" text:number-lines="true" text:line-number="2"/> + </style:style> + <style:style style:name="Kopfzeile_5f_OFD" style:display-name="Kopfzeile_OFD" style:family="paragraph" style:parent-style-name="VordruckGroß" style:class="extra"> + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> + <style:text-properties style:font-name="Times New Roman" fo:font-family="'Times New Roman'" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="12pt"/> + </style:style> + <style:style style:name="Fusszeile_5f_OFD" style:display-name="Fusszeile_OFD" style:family="paragraph" style:parent-style-name="Schrift1" style:class="extra" style:master-page-name=""> + <style:paragraph-properties fo:text-align="end" style:justify-single-word="false" style:page-number="auto"> + <style:tab-stops> + <style:tab-stop style:position="17cm" style:type="right"/> + </style:tab-stops> + </style:paragraph-properties> + <style:text-properties style:font-name="Times New Roman1" fo:font-family="'Times New Roman'" style:font-style-name="Standard" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="12pt"/> + </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="Endnote_20_Symbol" style:display-name="Endnote Symbol" style:family="text"/> + <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 style:wrap="dynamic" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false"/> + </style:style> + <text:outline-style style:name="Outline"> + <text:outline-level-style text:level="1" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="2" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="3" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="4" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="5" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="6" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="7" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="8" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="9" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + <text:outline-level-style text:level="10" style:num-format=""> + <style:list-level-properties/> + </text:outline-level-style> + </text:outline-style> + <text:list-style style:name="Numbering_20_1" style:display-name="Numbering 1"> + <text:list-level-style-number text:level="1" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1" text:start-value="2"> + <style:list-level-properties text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="2" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="0.499cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="3" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="0.999cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="4" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="1.498cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="5" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="1.997cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="6" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="2.496cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="7" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="2.995cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="8" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="3.494cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="9" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="3.994cm" text:min-label-width="0.499cm"/> + </text:list-level-style-number> + <text:list-level-style-number text:level="10" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1"> + <style:list-level-properties text:space-before="4.493cm" 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"/> + </office:styles> + <office:automatic-styles> + <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Schrift1"> + <style:paragraph-properties> + <style:tab-stops> + <style:tab-stop style:position="17cm" style:type="right"/> + </style:tab-stops> + </style:paragraph-properties> + </style:style> + <style:style style:name="P3" style:family="paragraph" style:parent-style-name="VordruckGroß"> + <style:paragraph-properties fo:margin-left="1.05cm" fo:margin-right="0cm" fo:text-indent="-1cm" style:auto-text-indent="false"/> + </style:style> + <style:style style:name="P33" style:family="paragraph" style:parent-style-name="Frame_20_contents"> + <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> + </style:style> + <style:style style:name="P37" style:family="paragraph" style:parent-style-name="Standard"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.019cm" fo:line-height="100%" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"> + <style:tab-stops> + <style:tab-stop style:position="7.976cm"/> + <style:tab-stop style:position="9.49cm"/> + <style:tab-stop style:position="16.508cm"/> + </style:tab-stops> + </style:paragraph-properties> + <style:text-properties fo:font-size="12pt" style:text-underline-style="none"/> + </style:style> + <style:style style:name="P40" style:family="paragraph" style:parent-style-name="TextNormal"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.019cm" fo:line-height="100%" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties fo:font-size="8pt" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="8pt" style:font-size-complex="8pt"/> + </style:style> + <style:style style:name="P46" style:family="paragraph" style:parent-style-name="TextNormal"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.019cm" fo:line-height="100%" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"> + <style:tab-stops> + <style:tab-stop style:position="7.976cm"/> + <style:tab-stop style:position="9.49cm"/> + <style:tab-stop style:position="16.508cm"/> + </style:tab-stops> + </style:paragraph-properties> + <style:text-properties fo:font-size="12pt" style:text-underline-style="none"/> + </style:style> + <style:style style:name="P52" style:family="paragraph" style:parent-style-name="TextNormal"> + <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.019cm" fo:line-height="100%" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"> + <style:tab-stops/> + </style:paragraph-properties> + <style:text-properties fo:font-size="6pt" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="6pt" style:font-size-complex="6pt"/> + </style:style> + <style:style style:name="P61" style:family="paragraph" style:parent-style-name="TextNormal" style:master-page-name=""> + <style:paragraph-properties fo:text-align="start" style:justify-single-word="false" fo:keep-together="always" style:page-number="auto" fo:keep-with-next="always"> + <style:tab-stops> + <style:tab-stop style:position="1.342cm"/> + </style:tab-stops> + </style:paragraph-properties> + <style:text-properties style:text-underline-style="none"/> + </style:style> + <style:style style:name="P83" style:family="paragraph" style:parent-style-name="TextNormal" style:master-page-name="FragebogenRechts"> + <style:paragraph-properties style:page-number="auto" fo:break-before="page"/> + </style:style> + <style:style style:name="P85" style:family="paragraph" style:parent-style-name="Vfg2" style:list-style-name=""> + <style:paragraph-properties fo:line-height="150%"/> + <style:text-properties style:text-underline-style="none"/> + </style:style> + <style:style style:name="T1" style:family="text"> + <style:text-properties fo:font-size="10pt"/> + </style:style> + <style:style style:name="T4" style:family="text"> + <style:text-properties fo:font-weight="normal"/> + </style:style> + <style:style style:name="fr3" style:family="graphic" style:parent-style-name="Frameformat"> + <style:graphic-properties style:protect="content size position" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" fo:padding="0.049cm" fo:border-left="none" fo:border-right="none" fo:border-top="0.06pt solid #000000" fo:border-bottom="none"/> + </style:style> + <style:style style:name="fr7" style:family="graphic" style:parent-style-name="Frame"> + <style:graphic-properties style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph"/> + </style:style> + <style:style style:name="fr8" style:family="graphic" style:parent-style-name="Frame"> + <style:graphic-properties style:protect="size position" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" fo:padding="0.049cm" fo:border="none"> + <style:columns fo:column-count="1" fo:column-gap="0cm"/> + </style:graphic-properties> + </style:style> + <style:style style:name="Sect1" style:family="section"> + <style:section-properties style:editable="false"> + <style:columns fo:column-count="1" fo:column-gap="0cm"/> + </style:section-properties> + </style:style> + <style:page-layout style:name="pm1"> + <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="1cm" fo:margin-bottom="1cm" fo:margin-left="2.499cm" fo:margin-right="1.499cm" 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"> + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style/> + <style:footer-style> + <style:header-footer-properties svg:height="0.9cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.3cm"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm8"> + <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"> + <style:footnote-sep style:line-style="solid" 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="pm11"> + <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="2.401cm" 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"> + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style> + <style:header-footer-properties svg:height="1.499cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="1cm"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties svg:height="0.9cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.3cm"/> + </style:footer-style> + </style:page-layout> + <style:page-layout style:name="pm12" style:page-usage="right"> + <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="2.401cm" 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"> + <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/> + </style:page-layout-properties> + <style:header-style/> + <style:footer-style> + <style:header-footer-properties svg:height="0.9cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.3cm"/> + </style:footer-style> + </style:page-layout> + <number:number-style style:name="N0"> + <number:number number:min-integer-digits="1"/> + </number:number-style> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Standard" style:page-layout-name="pm1"> + <style:footer> + <text:p text:style-name="P1"><text:tab/><text:span text:style-name="T1"><text:page-continuation text:string-value="- " text:select-page="next"/></text:span><text:span text:style-name="T1"><text:page-number text:select-page="current" text:page-adjust="1"/></text:span><text:span text:style-name="T1"><text:page-continuation text:string-value=" -" text:select-page="next"/></text:span></text:p> + </style:footer> + </style:master-page> + <style:master-page style:name="Endnote" style:page-layout-name="pm8"/> + <style:master-page style:name="Fragebogen" style:page-layout-name="pm11"> + <style:header> + <text:p text:style-name="Kopfzeile_5f_OFD"><text:span text:style-name="T4">- </text:span><text:span text:style-name="T4"><text:page-number text:select-page="current">0</text:page-number></text:span><text:span text:style-name="T4"><text:s/>-</text:span></text:p> + </style:header> + <style:footer> + <text:p text:style-name="Fusszeile_5f_OFD"><text:tab/><text:page-continuation text:string-value="- " text:select-page="next"/><text:page-number text:select-page="current" text:page-adjust="1"/><text:page-continuation text:string-value=" -" text:select-page="next"/></text:p> + </style:footer> + </style:master-page> + <style:master-page style:name="FragebogenRechts" style:page-layout-name="pm12" style:next-style-name="Fragebogen"> + <style:footer> + <text:p text:style-name="Fusszeile_5f_OFD"><text:tab/></text:p> + </style:footer> + </style:master-page> + </office:master-styles> + <office:body> + <office:text text:use-soft-page-breaks="true"> + <office:forms form:automatic-focus="false" form:apply-design-mode="false"/> + <text:sequence-decls> + <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/> + <text:sequence-decl text:display-outline-level="0" text:name="Table"/> + <text:sequence-decl text:display-outline-level="0" text:name="Text"/> + <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/> + <text:sequence-decl text:display-outline-level="0" text:name="Figure"/> + </text:sequence-decls> + <text:user-field-decls> + <text:user-field-decl office:value-type="string" office:string-value="" text:name="x31Name1"/> + <text:user-field-decl office:value-type="string" office:string-value="" text:name="x31Postfach"/> + <text:user-field-decl office:value-type="string" office:string-value="" text:name="x31Plz2"/> + <text:user-field-decl office:value-type="string" office:string-value="" text:name="x31Ort"/> + <text:user-field-decl office:value-type="string" office:string-value="" text:name="x31Straße"/> + <text:user-field-decl office:value-type="string" office:string-value="" text:name="x31Plz1"/> + <text:user-field-decl office:value-type="string" office:string-value="" text:name="x31Name2"/> + <text:user-field-decl office:value-type="string" office:string-value="" text:name="x31GrosskPLZ"/> + <text:user-field-decl office:value-type="float" office:value="0" text:name="Verfügung"/> + </text:user-field-decls> + <text:p text:style-name="P85"><text:hidden-paragraph text:condition="ooow:TRUE" text:is-hidden="true"/></text:p> + <text:p text:style-name="P61"/> + <text:section text:style-name="Sect1" text:name="Anlage" text:condition="ooow:Verfügung EQ 0" text:is-hidden="true" text:display="condition"> + <text:p text:style-name="P83"><text:hidden-paragraph text:condition="ooow:Verfügung EQ 1"/></text:p> + <text:p text:style-name="P46"><draw:frame draw:style-name="fr8" draw:name="Rahmen19" text:anchor-type="paragraph" svg:x="0cm" svg:y="1.251cm" svg:width="7.997cm" draw:z-index="1"> + <draw:text-box fo:min-height="3cm"> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:line-break/>Postfach <text:user-field-get text:name="x31Postfach"/><text:line-break/><text:user-field-get text:name="x31Plz2"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:NOT(x31Plz2 G " ") OR (x31Name2 G " ") OR (x31GrosskPLZ NEQ "")" text:is-hidden="true"/></text:p> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:line-break/><text:user-field-get text:name="x31Straße"/><text:line-break/><text:user-field-get text:name="x31Plz1"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:x31Plz2 G " " OR (x31Name2 G " ") OR (x31GrosskPLZ NEQ "")"/></text:p> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:s/><text:user-field-get text:name="x31Name2"/><text:line-break/>Postfach <text:user-field-get text:name="x31Postfach"/><text:line-break/><text:user-field-get text:name="x31Plz2"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:NOT(x31Plz2 G " ") OR NOT(x31Name2 G " ") OR (x31GrosskPLZ NEQ "")" text:is-hidden="true"/></text:p> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:s/><text:user-field-get text:name="x31Name2"/><text:line-break/><text:user-field-get text:name="x31Straße"/><text:line-break/><text:user-field-get text:name="x31Plz1"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:x31Plz2 G " " OR NOT(x31Name2 G " ") OR (x31GrosskPLZ NEQ "")" text:is-hidden="true"/></text:p> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:line-break/><text:user-field-get text:name="x31GrosskPLZ"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:x31GrosskPLZ EQ """ text:is-hidden="true"/></text:p> + </draw:text-box> + </draw:frame><draw:frame draw:style-name="fr3" draw:name="Rahmen21" text:anchor-type="paragraph" svg:x="-1.625cm" svg:y="5.907cm" svg:width="0.497cm" svg:height="0.497cm" draw:z-index="2"> + <draw:text-box> + <text:p text:style-name="P3"/> + </draw:text-box> + </draw:frame></text:p> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"><draw:frame draw:style-name="fr7" draw:name="Rahmen22" text:anchor-type="paragraph" svg:x="9.615cm" svg:y="0.238cm" svg:width="6.863cm" draw:z-index="3"> + <draw:text-box fo:min-height="0.826cm"> + <text:p text:style-name="P33">(Nichtzutreffendes streichen bzw. Zutreffendes ankreuzen)</text:p> + </draw:text-box> + </draw:frame></text:p> + <text:p text:style-name="P46"/> + <text:p text:style-name="P52"/> + <text:p text:style-name="P40"/> + <text:p text:style-name="P37"><draw:frame draw:style-name="fr3" draw:name="Rahmen24" text:anchor-type="paragraph" svg:x="-1.625cm" svg:y="5.907cm" svg:width="0.497cm" svg:height="0.497cm" draw:z-index="6"> + <draw:text-box> + <text:p text:style-name="P3"/> + </draw:text-box> + </draw:frame><draw:frame draw:style-name="fr8" draw:name="Rahmen25" text:anchor-type="paragraph" svg:x="0cm" svg:y="1.251cm" svg:width="7.997cm" draw:z-index="5"> + <draw:text-box fo:min-height="3cm"> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:line-break/>Postfach <text:user-field-get text:name="x31Postfach"/><text:line-break/><text:user-field-get text:name="x31Plz2"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:NOT(x31Plz2 G " ") OR (x31Name2 G " ") OR (x31GrosskPLZ NEQ "")" text:is-hidden="true"/></text:p> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:line-break/><text:user-field-get text:name="x31Straße"/><text:line-break/><text:user-field-get text:name="x31Plz1"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:x31Plz2 G " " OR (x31Name2 G " ") OR (x31GrosskPLZ NEQ "")"/></text:p> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:s/><text:user-field-get text:name="x31Name2"/><text:line-break/>Postfach <text:user-field-get text:name="x31Postfach"/><text:line-break/><text:user-field-get text:name="x31Plz2"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:NOT(x31Plz2 G " ") OR NOT(x31Name2 G " ") OR (x31GrosskPLZ NEQ "")" text:is-hidden="true"/></text:p> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:s/><text:user-field-get text:name="x31Name2"/><text:line-break/><text:user-field-get text:name="x31Straße"/><text:line-break/><text:user-field-get text:name="x31Plz1"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:x31Plz2 G " " OR NOT(x31Name2 G " ") OR (x31GrosskPLZ NEQ "")" text:is-hidden="true"/></text:p> + <text:p text:style-name="TextNormal"><text:user-field-get text:name="x31Name1"/><text:line-break/><text:user-field-get text:name="x31GrosskPLZ"/> <text:user-field-get text:name="x31Ort"/><text:hidden-paragraph text:condition="ooow:x31GrosskPLZ EQ """ text:is-hidden="true"/></text:p> + </draw:text-box> + </draw:frame></text:p> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"/> + <text:p text:style-name="P46"><draw:frame draw:style-name="fr7" draw:name="Rahmen18" text:anchor-type="paragraph" svg:x="9.615cm" svg:y="0.238cm" svg:width="6.863cm" draw:z-index="4"> + <draw:text-box fo:min-height="0.826cm"> + <text:p text:style-name="P33">(Nichtzutreffendes streichen bzw. Zutreffendes ankreuzen)</text:p> + </draw:text-box> + </draw:frame></text:p> + <text:p text:style-name="P46"/> + </text:section> + <text:p text:style-name="Standard"><text:hidden-paragraph text:condition="ooow:true" text:is-hidden="true"/></text:p> + </office:text> + </office:body> +</office:document> diff --git a/sw/qa/extras/layout/layout3.cxx b/sw/qa/extras/layout/layout3.cxx index 175adfc1d9b5..cb1ea6cc5614 100644 --- a/sw/qa/extras/layout/layout3.cxx +++ b/sw/qa/extras/layout/layout3.cxx @@ -1687,6 +1687,68 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testSectionUnhide) } } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testHiddenSectionFlys) +{ + createSwDoc("U-min.fodt"); + + //NO! field update job masks if the visibility was created wrong when loading. + //Scheduler::ProcessEventsToIdle(); + + SwDoc* pDoc = getSwDoc(); + IDocumentDrawModelAccess const& rIDMA{ pDoc->getIDocumentDrawModelAccess() }; + SdrPage const* pDrawPage{ rIDMA.GetDrawModel()->GetPage(0) }; + int invisibleHeaven{ rIDMA.GetInvisibleHeavenId().get() }; + int visibleHeaven{ rIDMA.GetHeavenId().get() }; + + // these are hidden by moving to invisible layer, they're still in layout + { + xmlDocUniquePtr pXmlDoc = parseLayoutDump(); + assertXPath(pXmlDoc, "//anchored/fly"_ostr, 6); + discardDumpedLayout(); + + CPPUNIT_ASSERT_EQUAL(size_t(6), pDrawPage->GetObjCount()); + for (int i = 0; i < 6; ++i) + { + CPPUNIT_ASSERT_EQUAL(invisibleHeaven, int(pDrawPage->GetObj(i)->GetLayer().get())); + } + } + + // Show the section + auto xTextSectionsSupplier = mxComponent.queryThrow<css::text::XTextSectionsSupplier>(); -e ... etc. - the rest is truncated
