core.git: Branch 'distro/collabora/co-25.04' - 2 commits - sd/source
sd/source/ui/unoidl/unomodel.cxx | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) New commits: commit a00acd19d15a3c45b417eee572f0312fc422319d Author: Hubert Figuière AuthorDate: Wed Sep 18 17:22:14 2024 -0400 Commit: Andras Timar CommitDate: Tue Feb 11 13:36:16 2025 +0100 lok: getSlideShowInfo: return the slide names This allow finding slides by bookmark Change-Id: Ia951aebdd04b67f4138138f7c0e1404078cc23ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178345 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index 91eb985ee651..577666448bfd 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -4504,13 +4504,19 @@ OString SdXImpressDocument::getPresentationInfo() const } else { -SdrPage* pPage = pSlide->GetSdrPage(); +SdPage* pPage = SdPage::getImplementation(pSlide); auto aSlideNode = aJsonWriter.startStruct(); std::string sSlideHash = GetInterfaceHash(cppu::getXWeak(pSlide)); aJsonWriter.put("hash", sSlideHash); aJsonWriter.put("index", i); +if (pPage) +{ +auto aName = SdDrawPage::getPageApiNameFromUiName(pPage->GetName()); +aJsonWriter.put("name", aName); +} + bool bIsDrawPageEmpty = pSlide->getCount() == 0; aJsonWriter.put("empty", bIsDrawPageEmpty); commit 3e4f902ac5f78473f62f1b10faf92d353b3a51bf Author: Hubert Figuière AuthorDate: Tue Sep 10 14:24:28 2024 -0400 Commit: Andras Timar CommitDate: Tue Feb 11 13:35:05 2025 +0100 lok: impress: Fix variable name Was missed in https://gerrit.libreoffice.org/c/core/+/172847 Change-Id: I8e5ece6be2253106df6b6e535afa5efaa86850a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178291 Reviewed-by: Miklos Vajna Tested-by: Jenkins diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index db5c5ce45a4e..91eb985ee651 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -4592,7 +4592,7 @@ OString SdXImpressDocument::getPresentationInfo() const uno::Reference const xShapes(cppu::getXWeak(pSlide), uno::UNO_QUERY_THROW); if (xShapes.is()) { -auto aVideoList = aJsonWriter.startArray("interactions"); +auto aInteractions = aJsonWriter.startArray("interactions"); auto count = xShapes->getCount(); for (auto j = 0; j < count; j++) {
core.git: sc/qa sc/source
sc/qa/unit/data/ods/RowHeightTdf165003.ods |binary sc/qa/unit/subsequent_filters_test4.cxx| 23 +++ sc/source/core/data/column2.cxx|8 +++- 3 files changed, 30 insertions(+), 1 deletion(-) New commits: commit f2639e2a98f114f053a13da669440587d56a0dd8 Author: Noel Grandin AuthorDate: Tue Feb 11 12:54:02 2025 +0200 Commit: Noel Grandin CommitDate: Tue Feb 11 14:39:09 2025 +0100 tdf#165003 Row height wrong at writing direction 90° regression from commit f91a411340ae204ce1e6997f22e0352a4c6a8355 Author: Noel Grandin Date: Thu May 23 15:09:52 2024 +0200 reduce cost of calc column height calculation This also fixes another bug in the above commit where the code did not update nValue for the "else if (bBreak && !bWidth)" case Change-Id: I367a56c2cb555336e1d510efb0c7acac1447525f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181417 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/sc/qa/unit/data/ods/RowHeightTdf165003.ods b/sc/qa/unit/data/ods/RowHeightTdf165003.ods new file mode 100644 index ..b3672f929f82 Binary files /dev/null and b/sc/qa/unit/data/ods/RowHeightTdf165003.ods differ diff --git a/sc/qa/unit/subsequent_filters_test4.cxx b/sc/qa/unit/subsequent_filters_test4.cxx index 72a5b1bd2a53..d8f11d5a3493 100644 --- a/sc/qa/unit/subsequent_filters_test4.cxx +++ b/sc/qa/unit/subsequent_filters_test4.cxx @@ -440,6 +440,29 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightODS) CPPUNIT_ASSERT_MESSAGE("Row should have an automatic height.", !bManual); } +CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightTdf165003) +{ +createScDoc("ods/RowHeightTdf165003.ods"); + +SCTAB nTab = 0; +SCROW nRow = 0; +ScDocument* pDoc = getScDoc(); + +int nHeight = pDoc->GetRowHeight(nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +// this row has 90-degree rotated text, and without the fix, would have had zero height. +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(582, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +} + CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRichTextContentODS) { createScDoc("ods/rich-text-cells.ods"); diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index e0e5505da9aa..37db657fb552 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -310,7 +310,10 @@ tools::Long ScColumn::GetNeededSize( tools::Long nWidth = 0; if ( eOrient != SvxCellOrientation::Standard ) { -nWidth = pDev->GetTextHeight(); +tools::Long nHeight = pDev->GetTextHeight(); +// swap width and height +nValue = bWidth ? nHeight : pDev->GetTextWidth( aValStr ); +nWidth = nHeight; } else if ( nRotate ) { @@ -363,7 +366,10 @@ tools::Long ScColumn::GetNeededSize( } } else if (bBreak && !bWidth) +{ nWidth = pDev->GetTextWidth(aValStr); +nValue = pDev->GetTextHeight(); +} else // in the common case (height), avoid calling the expensive GetTextWidth nValue = bWidth ? pDev->GetTextWidth( aValStr ) : pDev->GetTextHeight();
core.git: Branch 'feature/cib_contract891c' - xmlsecurity/qa
xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx |8 1 file changed, 8 insertions(+) New commits: commit 62417cc5bee7cbc130f6810ac2bd4ff8667cdb29 Author: Thorsten Behrens AuthorDate: Tue Feb 11 17:12:51 2025 +0100 Commit: Thorsten Behrens CommitDate: Tue Feb 11 17:12:51 2025 +0100 Make pdf signature tests conditional to pdfium availability Change-Id: I5f3000ef58eeefee469fdc6fdca6d3217afec0cd diff --git a/xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx b/xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx index 58335210bf5d..3b95ebf548e8 100644 --- a/xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx +++ b/xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx @@ -436,6 +436,7 @@ void PDFSigningTest::testBadCertP1() = verify(m_directories.getURLFromSrc(DATA_DIRECTORY) + "bad-cert-p1.pdf", 1, /*rExpectedSubFilter=*/OString()); CPPUNIT_ASSERT(!aInfos.empty()); +#if HAVE_FEATURE_PDFIUM SignatureInformation& rInformation = aInfos[0]; // Without the accompanying fix in place, this test would have failed with: // - Expected: 0 (SecurityOperationStatus_UNKNOWN) @@ -443,6 +444,7 @@ void PDFSigningTest::testBadCertP1() // i.e. annotation after a P1 signature was not considered as a bad modification. CPPUNIT_ASSERT_EQUAL(xml::crypto::SecurityOperationStatus::SecurityOperationStatus_UNKNOWN, rInformation.nStatus); +#endif } void PDFSigningTest::testBadCertP3Stamp() @@ -451,6 +453,7 @@ void PDFSigningTest::testBadCertP3Stamp() = verify(m_directories.getURLFromSrc(DATA_DIRECTORY) + "bad-cert-p3-stamp.pdf", 1, /*rExpectedSubFilter=*/OString()); CPPUNIT_ASSERT(!aInfos.empty()); +#if HAVE_FEATURE_PDFIUM SignatureInformation& rInformation = aInfos[0]; // Without the accompanying fix in place, this test would have failed with: @@ -459,6 +462,7 @@ void PDFSigningTest::testBadCertP3Stamp() // i.e. adding a stamp annotation was not considered as a bad modification. CPPUNIT_ASSERT_EQUAL(xml::crypto::SecurityOperationStatus::SecurityOperationStatus_UNKNOWN, rInformation.nStatus); +#endif } /// Test writing a PAdES signature. @@ -473,12 +477,14 @@ void PDFSigningTest::testSigningCertificateAttribute() if (!bHadCertificates) return; +#if HAVE_FEATURE_PDFIUM // Verify it. std::vector aInfos = verify(aOutURL, 1, "ETSI.CAdES.detached"); CPPUNIT_ASSERT(!aInfos.empty()); SignatureInformation& rInformation = aInfos[0]; // Assert that it has a signed signingCertificateV2 attribute. CPPUNIT_ASSERT(rInformation.bHasSigningCertificate); +#endif } void PDFSigningTest::testGood() @@ -491,6 +497,7 @@ void PDFSigningTest::testGood() "dict-bool.pdf", }; +#if HAVE_FEATURE_PDFIUM for (const auto& rName : aNames) { std::vector aInfos = verify(m_directories.getURLFromSrc(DATA_DIRECTORY) + rName, 1, /*rExpectedSubFilter=*/OString()); @@ -498,6 +505,7 @@ void PDFSigningTest::testGood() SignatureInformation& rInformation = aInfos[0]; CPPUNIT_ASSERT_EQUAL((int)xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED, (int)rInformation.nStatus); } +#endif } void PDFSigningTest::testTokenize()
core.git: winaccessibility/source
winaccessibility/source/UAccCOM/MAccessible.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit a4dac9f93347aa3321e8efe7c575e87ab418f5e6 Author: Andrea Gelmini AuthorDate: Tue Feb 11 10:32:26 2025 +0100 Commit: Julien Nabet CommitDate: Tue Feb 11 15:19:54 2025 +0100 Fix typo Change-Id: I34fef02e800fd1ca8d2e00e30c66e9dbea02621c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181410 Tested-by: Jenkins Reviewed-by: Julien Nabet diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx index a6454f3c39f8..f1a8a9b548b2 100644 --- a/winaccessibility/source/UAccCOM/MAccessible.cxx +++ b/winaccessibility/source/UAccCOM/MAccessible.cxx @@ -302,7 +302,7 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP CMAccessible::get_accChildCount(long *pcountCh // return error code if child count exceeds max long value // (for Calc sheets which report all cells as children); // tdf#153131: Windows Speech Recognition and apparently some other -// tools quering information via the a11y API seem to query all children unconditionally, +// tools querying information via the a11y API seem to query all children unconditionally, // so returning a large number (like std::numeric_limits::max) would cause a freeze SAL_WARN("iacc2", "CMAccessible::get_accChildCount: Child count exceeds maximum long value"); return S_FALSE;
core.git: Branch 'distro/collabora/co-24.04' - writerfilter/source
writerfilter/source/dmapper/DomainMapper.cxx |2 +- writerfilter/source/dmapper/DomainMapper_Impl.cxx |4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) New commits: commit 706b303a5abadd7cd4f58905ae6582c84ed5dcbd Author: Justin Luth AuthorDate: Sat Feb 8 20:00:38 2025 -0500 Commit: Miklos Vajna CommitDate: Tue Feb 11 15:27:05 2025 +0100 tdf#164876 tdf#165117 writerfilter: no dummy paragraphs in header The problem was that an extra CR was being added (often every round-trip) to headers that started with a table. This is a long-standing bug (see moz1211781-1.docx) that got more exposure recently from changes to 7.6.6 (via 86ad08f9d25110e91e92a0badf6de75e785b3644) and 24.8.0 (via ef77086255821d61838a7e26fee9baadaca0b9e0) Change-Id: Idb6a0efda246fa064822f01a9ce097f686810b5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181307 Tested-by: Jenkins Reviewed-by: Justin Luth (cherry picked from commit 44eda1f72b4d67b9627155741067d3e57a1f9747) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181354 Reviewed-by: Xisco Fauli Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181368 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181420 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 479373de6660..8183dccd70a3 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -3418,7 +3418,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext ) if (m_pImpl->m_StreamStateStack.top().nTableDepth == 0 && m_pImpl->GetIsFirstParagraphInSection() && !m_pImpl->GetIsDummyParaAddedForTableInSection() && !m_pImpl->GetIsTextFrameInserted() -&& !m_pImpl->GetIsPreviousParagraphFramed() && !IsInHeaderFooter()) +&& !m_pImpl->GetIsPreviousParagraphFramed()) { m_pImpl->AddDummyParaForTableInSection(); } diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 2247758d8ad0..0057799f99a2 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -691,8 +691,8 @@ void DomainMapper_Impl::RemoveDummyParaForTableInSection() } void DomainMapper_Impl::AddDummyParaForTableInSection() { -// Shapes and textboxes can't have sections. -if (IsInShape() || m_bIsInTextBox) +// Shapes, headers, and textboxes can't have sections. +if (IsInShape() || IsInHeaderFooter() || m_bIsInTextBox) return; if (!m_aTextAppendStack.empty())
core.git: Branch 'distro/collabora/co-24.04' - sw/source
sw/source/filter/ww8/docxattributeoutput.cxx |5 +-- sw/source/filter/ww8/docxexport.cxx | 36 +- sw/source/filter/ww8/docxexportfilter.cxx | 27 +++ sw/source/filter/ww8/docxtablestyleexport.cxx |3 +- sw/source/filter/ww8/wrtww8.cxx |5 ++- sw/source/filter/ww8/wrtww8.hxx |2 + 6 files changed, 34 insertions(+), 44 deletions(-) New commits: commit 62ccbbbc3fdc9c07e84a13b3872db9ff3d842610 Author: Caolán McNamara AuthorDate: Sun Feb 9 21:37:00 2025 + Commit: Miklos Vajna CommitDate: Tue Feb 11 15:24:11 2025 +0100 cut down the amount of GetBaseModel querying Change-Id: Ib7007a223373232006b8c4261778748b6fe3bf97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181409 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index da96e47b0611..2e4b2367c064 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -4879,7 +4879,7 @@ DocxStringTokenMap const aExceptionTokens[] = { void DocxAttributeOutput::LatentStyles() { // Do we have latent styles available? -uno::Reference xPropertySet(m_rExport.m_rDoc.GetDocShell()->GetBaseModel(), uno::UNO_QUERY_THROW); +rtl::Reference xPropertySet(m_rExport.m_xTextDoc); uno::Sequence aInteropGrabBag; xPropertySet->getPropertyValue("InteropGrabBag") >>= aInteropGrabBag; uno::Sequence aLatentStyles; @@ -5870,9 +5870,8 @@ void DocxAttributeOutput::WriteOLE( SwOLENode& rNode, const Size& rSize, const S OSL_ASSERT(pFlyFrameFormat); // get interoperability information about embedded objects -uno::Reference< beans::XPropertySet > xPropSet( m_rExport.m_rDoc.GetDocShell()->GetBaseModel(), uno::UNO_QUERY_THROW ); uno::Sequence< beans::PropertyValue > aGrabBag, aObjectsInteropList,aObjectInteropAttributes; -xPropSet->getPropertyValue( UNO_NAME_MISC_OBJ_INTEROPGRABBAG ) >>= aGrabBag; +m_rExport.m_xTextDoc->getPropertyValue( UNO_NAME_MISC_OBJ_INTEROPGRABBAG ) >>= aGrabBag; auto pProp = std::find_if(std::cbegin(aGrabBag), std::cend(aGrabBag), [](const beans::PropertyValue& rProp) { return rProp.Name == "EmbeddedObjects"; }); if (pProp != std::cend(aGrabBag)) diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx index fe0b86381369..d6cd3522b6df 100644 --- a/sw/source/filter/ww8/docxexport.cxx +++ b/sw/source/filter/ww8/docxexport.cxx @@ -1228,15 +1228,13 @@ void DocxExport::WriteSettings() m_pAttrOutput->WriteFootnoteEndnotePr( pFS, XML_endnotePr, m_rDoc.GetEndNoteInfo(), XML_endnote ); // Has themeFontLang information -rtl::Reference< SwXTextDocument > xPropSet( pDocShell->GetXTextDocument() ); - bool bUseGrabBagProtection = false; bool bWriterWantsToProtect = false; bool bWriterWantsToProtectForm = false; bool bWriterWantsToProtectRedline = false; bool bHasDummyRedlineProtectionKey = false; bool bReadOnlyStatusUnchanged = true; -uno::Reference< beans::XPropertySetInfo > xPropSetInfo = xPropSet->getPropertySetInfo(); +uno::Reference< beans::XPropertySetInfo > xPropSetInfo = m_xTextDoc->getPropertySetInfo(); if ( m_rDoc.getIDocumentSettingAccess().get(DocumentSettingId::PROTECT_FORM) || m_pSections->DocumentIsProtected() ) { @@ -1245,7 +1243,7 @@ void DocxExport::WriteSettings() if ( xPropSetInfo->hasPropertyByName( "RedlineProtectionKey" ) ) { uno::Sequence aKey; -xPropSet->getPropertyValue( "RedlineProtectionKey" ) >>= aKey; +m_xTextDoc->getPropertyValue( "RedlineProtectionKey" ) >>= aKey; bool bHasRedlineProtectionKey = aKey.hasElements(); bHasDummyRedlineProtectionKey = aKey.getLength() == 1 && aKey[0] == 1; if ( bHasRedlineProtectionKey && !bHasDummyRedlineProtectionKey ) @@ -1275,7 +1273,7 @@ void DocxExport::WriteSettings() if ( xPropSetInfo->hasPropertyByName( aGrabBagName ) ) { uno::Sequence< beans::PropertyValue > propList; -xPropSet->getPropertyValue( aGrabBagName ) >>= propList; +m_xTextDoc->getPropertyValue( aGrabBagName ) >>= propList; for( const auto& rProp : std::as_const(propList) ) { @@ -1502,9 +1500,7 @@ void DocxExport::WriteTheme() // See OOXMLDocumentImpl::resolveGlossaryStream void DocxExport::WriteGlossary() { -rtl::Reference< SwXTextDocument > xPropSet( m_rDoc.GetDocShell()->GetXTextDocument() ); - -uno::Reference< beans::XPropertySetInfo > xPropSetInfo = xPropSet->getPropertySetInfo(); +uno::Reference< beans::XPropertySetInfo > xPropSetInfo = m_xTextDoc->getPropertySetInfo(); OUString aName = UNO_NAME_MISC_OBJ_INTEROPGRABBAG; if ( !xPropSetInfo->hasPropertyByName( aName ) ) return; @@ -1512,7 +1508,7
core.git: Branch 'feature/cib_contract49d' - sw/qa sw/source
sw/qa/extras/ooxmlexport/data/tdf164176.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport21.cxx | 15 +++ sw/source/writerfilter/dmapper/SettingsTable.cxx |4 +++- 3 files changed, 18 insertions(+), 1 deletion(-) New commits: commit fc5f6664668c3b07234f8b0c42170ae125c26712 Author: Oliver Specht AuthorDate: Thu Dec 5 07:48:10 2024 +0100 Commit: Gabor Kelemen CommitDate: Tue Feb 11 17:26:17 2025 +0100 tdf#164176 Import multiline document variable with break Converts the '_x000d_' or '_x000d__x000a_' to a paragraph break in docx import. Change-Id: Ib8b5203338e987028279711928d3aecb9cedd836 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178731 Reviewed-by: Gabor Kelemen Tested-by: allotropia jenkins diff --git a/sw/qa/extras/ooxmlexport/data/tdf164176.docx b/sw/qa/extras/ooxmlexport/data/tdf164176.docx new file mode 100644 index ..2d93cfd3765d Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf164176.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx index f846a248022d..1107173e0ad8 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx @@ -16,6 +16,8 @@ #include #include #include +#include +#include #include #include #include @@ -890,6 +892,19 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf164065) CPPUNIT_ASSERT_EQUAL(u"a"_ustr, xCell->getString()); } +DECLARE_OOXMLEXPORT_TEST(testTdf164176, "tdf164176.docx") +{ +uno::Reference xTextFieldsSupplier(mxComponent, uno::UNO_QUERY); +uno::Reference xFieldsAccess( +xTextFieldsSupplier->getTextFields()); +uno::Reference xFields(xFieldsAccess->createEnumeration()); + +uno::Reference xEnumerationAccess1(xFields->nextElement(), uno::UNO_QUERY); +rtl::OUString sPresentation = xEnumerationAccess1->getPresentation(true).trim(); +CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), sPresentation.indexOf("_x000d_")); +CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), sPresentation.indexOf("_x000a_")); +} + } // end of anonymous namespace CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/writerfilter/dmapper/SettingsTable.cxx b/sw/source/writerfilter/dmapper/SettingsTable.cxx index da276ca67d92..6e2da1061525 100644 --- a/sw/source/writerfilter/dmapper/SettingsTable.cxx +++ b/sw/source/writerfilter/dmapper/SettingsTable.cxx @@ -212,7 +212,9 @@ void SettingsTable::lcl_attribute(Id nName, Value & val) m_pImpl->m_aDocVars.back().first = sStringValue; break; case NS_ooxml::LN_CT_DocVar_val: -m_pImpl->m_aDocVars.back().second = sStringValue; +m_pImpl->m_aDocVars.back().second = +sStringValue.replaceAll("_x000d__x000a_", " ") +.replaceAll("_x000d_", " "); break; case NS_ooxml::LN_CT_CompatSetting_name: m_pImpl->m_aCurrentCompatSettingName = sStringValue;
core.git: Branch 'feature/cib_contract49d' - sw/inc sw/source
sw/inc/crsrsh.hxx|8 sw/inc/fesh.hxx |2 +- sw/inc/mdiexp.hxx|4 +++- sw/inc/view.hxx |7 +-- sw/inc/viewsh.hxx|9 - sw/source/core/crsr/crsrsh.cxx | 19 ++- sw/source/core/frmedt/feshview.cxx |4 ++-- sw/source/core/view/viewsh.cxx |4 ++-- sw/source/ui/dialog/uiregionsw.cxx |2 +- sw/source/ui/index/swuiidxmrk.cxx|2 +- sw/source/ui/misc/insfnote.cxx |6 +++--- sw/source/uibase/dochdl/swdtflvr.cxx |2 +- sw/source/uibase/docvw/edtdd.cxx |4 ++-- sw/source/uibase/docvw/edtwin.cxx| 22 ++ sw/source/uibase/docvw/edtwin3.cxx |5 +++-- sw/source/uibase/inc/edtwin.hxx |4 +++- sw/source/uibase/inc/wrtsh.hxx | 20 +--- sw/source/uibase/shells/tabsh.cxx|2 +- sw/source/uibase/shells/textsh1.cxx |2 +- sw/source/uibase/uiview/viewport.cxx | 29 +++-- sw/source/uibase/uno/unotxdoc.cxx|2 +- sw/source/uibase/wrtsh/move.cxx |6 +++--- sw/source/uibase/wrtsh/select.cxx| 16 sw/source/uibase/wrtsh/wrtsh3.cxx|8 24 files changed, 117 insertions(+), 72 deletions(-) New commits: commit 80d581202abf3fe0a1a565016182c756d27ec429 Author: Oliver Specht AuthorDate: Wed Dec 18 15:11:38 2024 +0100 Commit: Gabor Kelemen CommitDate: Tue Feb 11 17:38:39 2025 +0100 tdf#50743 tdf#37507 Improve scrolling while selecting If the mouse leaves the document window scrolling of selections happens now in smaller steps so the user is able to stop at the intended position easier. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178724 Reviewed-by: Gabor Kelemen Tested-by: Jenkins Tested-by: Gabor Kelemen Change-Id: Ic6c48cffa246b0e341bc25c35070e95f5e706f0c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181415 Tested-by: allotropia jenkins diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index 2417fb507cae..fd1ca6b11fa2 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -169,7 +169,7 @@ public: SW_DLLPUBLIC void UpdateCursor( sal_uInt16 eFlags = SwCursorShell::SCROLLWIN|SwCursorShell::CHKRANGE, -bool bIdleEnd = false ); +bool bIdleEnd = false, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); private: @@ -421,7 +421,7 @@ public: *the cursor is done in order to get at the properties under the mouse pointer. */ SW_DLLPUBLIC int SetCursor(const Point& rPt, bool bOnlyText = false, bool bBlock = true, - bool bFieldInfo = false); + bool bFieldInfo = false, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); /* * Notification that the visible area was changed. m_aVisArea is reset, then @@ -731,7 +731,7 @@ public: // Place only the visible cursor at the given position in the document. // Return false if SPoint was corrected by layout. // (This is needed for displaying the Drag&Drop/Copy-Cursor.) -bool SetVisibleCursor( const Point &rPt ); +bool SetVisibleCursor( const Point &rPt, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); inline void UnSetVisibleCursor(); SW_DLLPUBLIC SwVisibleCursor* GetVisibleCursor() const; @@ -813,7 +813,7 @@ public: bool GotoRegion( std::u16string_view rName ); // show the current selection -virtual void MakeSelVisible(); +virtual void MakeSelVisible(ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); // set the cursor to a NOT protected/hidden node bool FindValidContentNode( bool bOnlyText ); diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx index 6e4466dc60d7..b6ccbee8b939 100644 --- a/sw/inc/fesh.hxx +++ b/sw/inc/fesh.hxx @@ -360,7 +360,7 @@ public: void SetPageObjsNewPage( std::vector& rFillArr ); /// Show current selection (frame / draw object as required). -virtual void MakeSelVisible() override; +virtual void MakeSelVisible(ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault) override; /** @return FrameFormat of object that may be under Point. Object does not become selected! */ diff --git a/sw/inc/mdiexp.hxx b/sw/inc/mdiexp.hxx index afe308e1ad89..6d4af73bd80b 100644 --- a/sw/inc/mdiexp.hxx +++ b/sw/inc/mdiexp.hxx @@ -22,6 +22,7 @@ #include "tblenum.hxx" #include "swdllapi.h" #include +#include "viewsh.hxx" #include @@ -30,7 +31,8 @@ class Size; class SwViewShell; class SwDocShell; -extern void ScrollMDI(SwViewShell const * pVwSh, const SwRect &, sal_uInt16 nRangeX, sal_uInt16 nRangeY); +extern void ScrollMDI(SwViewShell const * pVwSh, const SwRect &, sal_uInt16 nRangeX, sal_uInt16 nRangeY +, ScrollSizeMode eScrollSizeMode = ScrollSizeMod
core.git: Branch 'feature/cib_contract49d' - sw/inc sw/source
sw/inc/crsrsh.hxx|9 - sw/inc/fesh.hxx |2 +- sw/inc/mdiexp.hxx|4 +--- sw/inc/view.hxx |7 ++- sw/inc/viewsh.hxx|9 + sw/source/core/crsr/crsrsh.cxx | 19 +-- sw/source/core/frmedt/feshview.cxx |4 ++-- sw/source/core/view/viewsh.cxx |4 ++-- sw/source/ui/dialog/uiregionsw.cxx |2 +- sw/source/ui/index/swuiidxmrk.cxx|2 +- sw/source/ui/misc/insfnote.cxx |6 +++--- sw/source/uibase/dochdl/swdtflvr.cxx |2 +- sw/source/uibase/docvw/edtdd.cxx |4 ++-- sw/source/uibase/docvw/edtwin.cxx| 22 -- sw/source/uibase/docvw/edtwin3.cxx |5 ++--- sw/source/uibase/inc/edtwin.hxx |4 +--- sw/source/uibase/inc/wrtsh.hxx | 20 +++- sw/source/uibase/shells/tabsh.cxx|2 +- sw/source/uibase/shells/textsh1.cxx |2 +- sw/source/uibase/uiview/viewport.cxx | 29 ++--- sw/source/uibase/uno/unotxdoc.cxx|2 +- sw/source/uibase/wrtsh/move.cxx |6 +++--- sw/source/uibase/wrtsh/select.cxx| 16 sw/source/uibase/wrtsh/wrtsh3.cxx|8 24 files changed, 72 insertions(+), 118 deletions(-) New commits: commit db37276f60f5e1d93d5685918904beeb04daa80a Author: Gabor Kelemen AuthorDate: Mon Feb 10 17:53:30 2025 + Commit: Gabor Kelemen CommitDate: Tue Feb 11 17:38:23 2025 +0100 Revert "tdf#50743 Improve scrolling while selecting" This reverts commit b357de0cb6eb5108b6b31de2c8ee652c71d0fe7a. This was an older version of the patch than the one in master Change-Id: I98c33e72d4de1249dbbed8a83f2e4c245028577e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181414 Tested-by: allotropia jenkins Reviewed-by: Gabor Kelemen diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index 2cb968fb7905..2417fb507cae 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -169,7 +169,7 @@ public: SW_DLLPUBLIC void UpdateCursor( sal_uInt16 eFlags = SwCursorShell::SCROLLWIN|SwCursorShell::CHKRANGE, -bool bIdleEnd = false, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); +bool bIdleEnd = false ); private: @@ -421,7 +421,7 @@ public: *the cursor is done in order to get at the properties under the mouse pointer. */ SW_DLLPUBLIC int SetCursor(const Point& rPt, bool bOnlyText = false, bool bBlock = true, - bool bFieldInfo = false, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); + bool bFieldInfo = false); /* * Notification that the visible area was changed. m_aVisArea is reset, then @@ -731,8 +731,7 @@ public: // Place only the visible cursor at the given position in the document. // Return false if SPoint was corrected by layout. // (This is needed for displaying the Drag&Drop/Copy-Cursor.) -bool SetVisibleCursor( const Point &rPt, -ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault ); +bool SetVisibleCursor( const Point &rPt ); inline void UnSetVisibleCursor(); SW_DLLPUBLIC SwVisibleCursor* GetVisibleCursor() const; @@ -814,7 +813,7 @@ public: bool GotoRegion( std::u16string_view rName ); // show the current selection -virtual void MakeSelVisible(ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); +virtual void MakeSelVisible(); // set the cursor to a NOT protected/hidden node bool FindValidContentNode( bool bOnlyText ); diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx index b6ccbee8b939..6e4466dc60d7 100644 --- a/sw/inc/fesh.hxx +++ b/sw/inc/fesh.hxx @@ -360,7 +360,7 @@ public: void SetPageObjsNewPage( std::vector& rFillArr ); /// Show current selection (frame / draw object as required). -virtual void MakeSelVisible(ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault) override; +virtual void MakeSelVisible() override; /** @return FrameFormat of object that may be under Point. Object does not become selected! */ diff --git a/sw/inc/mdiexp.hxx b/sw/inc/mdiexp.hxx index 6d4af73bd80b..afe308e1ad89 100644 --- a/sw/inc/mdiexp.hxx +++ b/sw/inc/mdiexp.hxx @@ -22,7 +22,6 @@ #include "tblenum.hxx" #include "swdllapi.h" #include -#include "viewsh.hxx" #include @@ -31,8 +30,7 @@ class Size; class SwViewShell; class SwDocShell; -extern void ScrollMDI(SwViewShell const * pVwSh, const SwRect &, sal_uInt16 nRangeX, sal_uInt16 nRangeY -, ScrollSizeMode eScrollSizeMode = ScrollSizeMode::ScrollSizeDefault); +extern void ScrollMDI(SwViewShell const * pVwSh, const SwRect &, sal_uInt16 nRangeX, sal_uInt16 nRangeY); extern bool IsScrollMDI(SwViewShell const * pVwSh, const SwRect &); extern void SizeNotify(SwViewShell const * pV
core.git: desktop/source
desktop/source/lib/init.cxx | 29 +++-- 1 file changed, 23 insertions(+), 6 deletions(-) New commits: commit 01a214d9596a595570b08d5e9d0c5776f892aa09 Author: Caolán McNamara AuthorDate: Mon Jan 27 12:56:26 2025 + Commit: Caolán McNamara CommitDate: Tue Feb 11 11:51:45 2025 +0100 allow zero or more xcu files to be installed Change-Id: Ibcca052697c391794b636606cf590549568821be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180782 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna (cherry picked from commit e3b6888f9071011fd69e1d15aa8adb0eae5e658c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181411 Reviewed-by: Caolán McNamara Tested-by: Jenkins diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index b143e8b104b3..ea70d1f186b2 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -5247,15 +5247,13 @@ static void lo_sendDialogEvent(LibreOfficeKit* /*pThis*/, unsigned long long int static void updateConfig(const OUString& rConfigPath) { osl::Directory aScanRootDir(rConfigPath); -osl::FileBase::RC nRetCode = aScanRootDir.open(); -if (nRetCode != osl::Directory::E_None) +if (aScanRootDir.open() != osl::Directory::E_None) { SAL_WARN("lok", "Failed to open config URL: " << rConfigPath); return; } osl::DirectoryItem item; -osl::File::RC errorNext = osl::File::E_None; -while ((errorNext = aScanRootDir.getNextItem(item)) == ::osl::File::E_None) +while (aScanRootDir.getNextItem(item) == ::osl::File::E_None) { osl::FileStatus stat(osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_FileURL); if (item.getFileStatus(stat) != osl::FileBase::E_None) @@ -5267,9 +5265,28 @@ static void updateConfig(const OUString& rConfigPath) OUString sFileName = stat.getFileName(); if (sFileName == "xcu") { -OUString aXcuPath(stat.getFileURL() + "/config.xcu"); +osl::Directory aXCURootDir(stat.getFileURL()); +if (aXCURootDir.open() != osl::Directory::E_None) +{ +SAL_WARN("lok", "Failed to open XCU URL: " << stat.getFileURL()); +continue; +} + auto xUpdate(css::configuration::Update::get(comphelper::getProcessComponentContext())); -xUpdate->insertModificationXcuFile(aXcuPath, { u"/"_ustr }, {}); + +osl::DirectoryItem xcu; +while (aXCURootDir.getNextItem(xcu) == ::osl::File::E_None) +{ +osl::FileStatus xcustat(osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_FileURL); +if (xcu.getFileStatus(xcustat) != osl::FileBase::E_None) +{ +SAL_WARN("lok", "Failed to get xcu item info"); +continue; +} + +SAL_INFO("lok", "Installing XCU Item: " << xcustat.getFileName()); +xUpdate->insertModificationXcuFile(xcustat.getFileURL(), { u"/"_ustr }, {}); +} } else if (sFileName == "wordbook") {
core.git: Branch 'distro/collabora/co-25.04' - sc/inc sc/qa sc/source
sc/inc/document.hxx | 10 +++ sc/inc/table.hxx | 10 +++ sc/qa/unit/tiledrendering/tiledrendering.cxx |4 + sc/source/core/data/document.cxx |5 + sc/source/core/data/table2.cxx | 85 +++ sc/source/ui/view/viewdata.cxx | 33 +++--- 6 files changed, 137 insertions(+), 10 deletions(-) New commits: commit f06d8569fe19cd086d6d7e165e880cbc1833a206 Author: Noel Grandin AuthorDate: Fri Dec 20 13:00:39 2024 +0200 Commit: Andras Timar CommitDate: Tue Feb 11 13:34:05 2025 +0100 optimise ScBoundsProvider::GetIndexTowards Especially when laying out rows in sheets with thousands of rows. By pushing the work down to a new GetRowForHeightPixels method, we can do the work in only a couple of iterations of the loop, because row heights are normally represented by only a few spans. Change-Id: If3f62a131a3e7a0794d7352d7c6c1a5de0ef2df0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179086 Reviewed-by: Noel Grandin Tested-by: Jenkins diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 7908be80dcc7..027abc943f15 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -2061,6 +2061,16 @@ public: * specified height. */ SCROW GetRowForHeight( SCTAB nTab, tools::Long nHeight ) const; +/** + * Given the height i.e. total vertical distance from the top of the sheet + * grid, return the first visible row whose top position is below the + * specified height and after the specified row. + * Note that this variant uses pixels, not twips. + * @param nStartRow the row to start searching at. + * @param rStartRowHeightPx this is both the height at nStartRow, and returns the height of the first row + *which has height > nHeight + */ +SCROW GetRowForHeightPixels( SCTAB nTab, SCROW nStartRow, tools::Long& rStartRowHeightPx, tools::Long nHeightPx, double fPPTY ) const; tools::Long GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, double fScale ) const; SC_DLLPUBLIC tools::LongGetColOffset( SCCOL nCol, SCTAB nTab, bool bHiddenAsZero = true ) const; SC_DLLPUBLIC tools::LongGetRowOffset( SCROW nRow, SCTAB nTab, bool bHiddenAsZero = true ) const; diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 5f36e5d9d5c7..74d4f978a523 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -909,6 +909,16 @@ public: * @return SCROW last row of the range within specified height. */ SCROW GetRowForHeight(tools::Long nHeight) const; +/** + * Given the height i.e. total vertical distance from the top of the sheet + * grid, return the first visible row whose top position is below the + * specified height. + * Note that this variant uses pixels, not twips. + * @param nStartRow the row to start searching at. + * @param rStartRowHeightPx this is both the height at nStartRow, and returns the height of the first row + *which has height > nHeight + */ +SCROW GetRowForHeightPixels( SCROW nStartRow, tools::Long& rStartRowHeightPx, tools::Long nHeightPx, double fPPTY ) const; sal_uInt16 GetOriginalWidth( SCCOL nCol ) const; sal_uInt16 GetOriginalHeight( SCROW nRow ) const; diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx index ca4c5191c1c5..8d5280ea3128 100644 --- a/sc/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx @@ -1547,6 +1547,10 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, testInsertDeletePageInvalidation) CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, testGetRowColumnHeadersInvalidation) { +// NOTE NOTE NOTE +// If you run this test in isolation using CPPUNIT_TEST_NAME=, it will fail because the invalidations +// will be different. + ScModelObj* pModelObj = createDoc("empty.ods"); ScViewData* pViewData = ScDocShell::GetViewData(); CPPUNIT_ASSERT(pViewData); diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 36f37a7ee8de..231a42d52a4e 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -4248,6 +4248,11 @@ SCROW ScDocument::GetRowForHeight( SCTAB nTab, tools::Long nHeight ) const return maTabs[nTab]->GetRowForHeight(nHeight); } +SCROW ScDocument::GetRowForHeightPixels( SCTAB nTab, SCROW nStartRow, tools::Long& rStartRowHeightPx, tools::Long nHeightPx, double fPPTY ) const +{ +return maTabs[nTab]->GetRowForHeightPixels(nStartRow, rStartRowHeightPx, nHeightPx, fPPTY); +} + tools::Long ScDocument::GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, double fScale ) const { diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index 0
core.git: Branch 'distro/collabora/co-25.04' - sc/qa sc/source
sc/qa/unit/data/xlsx/freezePaneStartCell.xlsx |binary sc/qa/unit/subsequent_export_test2.cxx| 16 sc/source/filter/excel/xeview.cxx |7 +++ 3 files changed, 23 insertions(+) New commits: commit 427bbe63c153d50ce34110ef4aa6131deb95fe61 Author: Justin Luth AuthorDate: Fri Feb 7 14:08:42 2025 -0500 Commit: Andras Timar CommitDate: Tue Feb 11 13:52:25 2025 +0100 tdf#165130 sc: prevent pane's topLeftCell from being in frozen zone While Excel 2010 opens this unit test just fine (and looks like a split window) Excel 2019 complains it is corrupt. So, this patch just prevents writing an invalid topLeftCell which will avoid us from causing such a problem as well as fixing documents that already exhibit the problem. make CppunitTest_sc_subsequent_export_test2 \ CPPUNIT_TEST_NAME=testFreezePaneStartCellXLSX Change-Id: I32888d7d020ec16dca436686cd76008ed417d699 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181275 Reviewed-by: Justin Luth Tested-by: Jenkins diff --git a/sc/qa/unit/data/xlsx/freezePaneStartCell.xlsx b/sc/qa/unit/data/xlsx/freezePaneStartCell.xlsx new file mode 100644 index ..9bce2671009c Binary files /dev/null and b/sc/qa/unit/data/xlsx/freezePaneStartCell.xlsx differ diff --git a/sc/qa/unit/subsequent_export_test2.cxx b/sc/qa/unit/subsequent_export_test2.cxx index 43226bb14e9f..4f705abe5a7e 100644 --- a/sc/qa/unit/subsequent_export_test2.cxx +++ b/sc/qa/unit/subsequent_export_test2.cxx @@ -50,6 +50,22 @@ CPPUNIT_TEST_FIXTURE(ScExportTest2, testGroupShape) assertXPath(pDoc, "/xdr:wsDr/xdr:twoCellAnchor/xdr:grpSp/xdr:grpSpPr"); } +CPPUNIT_TEST_FIXTURE(ScExportTest2, testFreezePaneStartCellXLSX) +{ +// given a hand-mangled document with a newly-invalid topLeftCell for the active pane +// where pane xSplit="5" ySplit="10" topLeftCell="A1" state="frozen" + +createScDoc("xlsx/freezePaneStartCell.xlsx"); + +save(u"Calc Office Open XML"_ustr); + +xmlDocUniquePtr pDoc = parseExport(u"xl/worksheets/sheet1.xml"_ustr); +OUString sFirstNonFrozenCell = getXPath(pDoc, "//x:sheetViews//x:pane", "topLeftCell"); + +// new versions of Excel complain if the start of the non-frozen section is inside the freeze +CPPUNIT_ASSERT_EQUAL(u"F11"_ustr, sFirstNonFrozenCell); +} + CPPUNIT_TEST_FIXTURE(ScExportTest2, testMatrixMultiplicationXLSX) { createScDoc("xlsx/matrix-multiplication.xlsx"); diff --git a/sc/source/filter/excel/xeview.cxx b/sc/source/filter/excel/xeview.cxx index 5db6de1c2fff..c5760fafcdb7 100644 --- a/sc/source/filter/excel/xeview.cxx +++ b/sc/source/filter/excel/xeview.cxx @@ -348,6 +348,13 @@ XclExpTabViewSettings::XclExpTabViewSettings( const XclExpRoot& rRoot, SCTAB nSc maData.mnActivePane = EXC_PANE_TOPRIGHT; else if( maData.HasPane( EXC_PANE_BOTTOMLEFT ) ) maData.mnActivePane = EXC_PANE_BOTTOMLEFT; + +// Starting cell for active, frozen pane must not be less than the split position +// i.e. it must not be in the frozen section (or Excel 2019 considers the file corrupt). +if (maData.maSecondXclPos.mnCol < maData.mnSplitX) +maData.maSecondXclPos.mnCol = maData.mnSplitX; +if (maData.maSecondXclPos.mnRow < maData.mnSplitY) +maData.maSecondXclPos.mnRow = maData.mnSplitY; } else {
core.git: Branch 'distro/collabora/co-25.04' - sc/source
sc/source/filter/xcl97/xcl97esc.cxx |4 1 file changed, 4 insertions(+) New commits: commit 7f06e1e26cd3e76c65fcb271563d5741b3a45333 Author: Gülşah Köse AuthorDate: Fri Jan 17 16:57:59 2025 +0300 Commit: Gülşah Köse CommitDate: Tue Feb 11 15:44:16 2025 +0100 tdf#164141 Fix command button xls to xlsx convert problem. MSO has two type controls. ActiveX and normal. ControlTypeinMSO specifies the form control object is ActiveX or not. 2: ActiveX form control 1: Normal form control Current case is simple ActiveX button created by MSO can not be exported by LibreOffice properly. It was triggering the repair dialog on MSO. And we even lost the button in LibreOffice. If the pCurrXclObj is failed, we need to give a chance to export button by using XclExpTbxControlObj instead of directly XclObjAny This patch just fixes the Command button xls to xlsx convertion problem. Not all the form controls. Signed-off-by: Gülşah Köse Change-Id: Ifabf4d0e16bd620f8201a2143d8af7c64d8859a6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180414 Reviewed-by: Szymon Kłos Tested-by: Jenkins CollaboraOffice Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181345 diff --git a/sc/source/filter/xcl97/xcl97esc.cxx b/sc/source/filter/xcl97/xcl97esc.cxx index b2f81453c667..525ddb1bf44e 100644 --- a/sc/source/filter/xcl97/xcl97esc.cxx +++ b/sc/source/filter/xcl97/xcl97esc.cxx @@ -240,7 +240,11 @@ EscherExHostAppData* XclEscherEx::StartShape( const Reference< XShape >& rxShape SAL_WARN("sc", "XclEscherEx::StartShape, this control can't get the property ControlTypeinMSO!"); } if( nMsCtlType == 2 ) //OCX Form Control +{ pCurrXclObj = CreateOCXCtrlObj( rxShape, pChildAnchor ).release(); +if(!pCurrXclObj) // Give a chance to handle control object with XclExpTbxControlObj instead of XclObjAny +pCurrXclObj = CreateTBXCtrlObj( rxShape, pChildAnchor ).release(); +} else //TBX Form Control pCurrXclObj = CreateTBXCtrlObj( rxShape, pChildAnchor ).release(); if( !pCurrXclObj )
core.git: sc/qa
sc/qa/unit/data/xls/tdf165080.xls |binary sc/qa/unit/subsequent_filters_test2.cxx | 18 ++ 2 files changed, 18 insertions(+) New commits: commit 449b905f78737337eef8daff03a6342f96df845e Author: Xisco Fauli AuthorDate: Tue Feb 11 14:41:14 2025 +0100 Commit: Xisco Fauli CommitDate: Tue Feb 11 15:46:17 2025 +0100 tdf#165080: sc_subsequent_filters_test2: Add unittest Change-Id: I2352f6c40cf18344a5ac97467ddfe074e9bb4016 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181421 Tested-by: Jenkins Reviewed-by: Xisco Fauli diff --git a/sc/qa/unit/data/xls/tdf165080.xls b/sc/qa/unit/data/xls/tdf165080.xls new file mode 100644 index ..01323774499c Binary files /dev/null and b/sc/qa/unit/data/xls/tdf165080.xls differ diff --git a/sc/qa/unit/subsequent_filters_test2.cxx b/sc/qa/unit/subsequent_filters_test2.cxx index 60966f08bc5c..f1d9faec8c4b 100644 --- a/sc/qa/unit/subsequent_filters_test2.cxx +++ b/sc/qa/unit/subsequent_filters_test2.cxx @@ -862,6 +862,24 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest2, testTdf130132) } } +CPPUNIT_TEST_FIXTURE(ScFiltersTest2, testTdf165080) +{ +createScDoc("xls/tdf165080.xls"); + +ScDocument* pDoc = getScDoc(); + +const ScPatternAttr* pAttr = pDoc->GetPattern(0, 0, 0); + +const SfxPoolItem& rItem = pAttr->GetItem(ATTR_BACKGROUND); +const SvxBrushItem& rBackground = static_cast(rItem); +const Color& rColor = rBackground.GetColor(); + +// Without the fix in place, this test would have failed with +// - Expected: rgba[c0c0c0ff] +// - Actual : rgba[ff00] +CPPUNIT_ASSERT_EQUAL(COL_LIGHTGRAY, rColor); +} + CPPUNIT_TEST_FIXTURE(ScFiltersTest2, testTdf133327) { createScDoc("ods/tdf133327.ods");
core.git: Branch 'libreoffice-24-8' - sc/qa sc/source
sc/qa/unit/data/ods/RowHeightTdf165003.ods |binary sc/qa/unit/subsequent_filters_test4.cxx| 23 +++ sc/source/core/data/column2.cxx|8 +++- 3 files changed, 30 insertions(+), 1 deletion(-) New commits: commit ef385dbed89bbec4eac75f9fb6e1d348bc91fd03 Author: Noel Grandin AuthorDate: Tue Feb 11 12:54:02 2025 +0200 Commit: Xisco Fauli CommitDate: Tue Feb 11 15:46:26 2025 +0100 tdf#165003 Row height wrong at writing direction 90° regression from commit f91a411340ae204ce1e6997f22e0352a4c6a8355 Author: Noel Grandin Date: Thu May 23 15:09:52 2024 +0200 reduce cost of calc column height calculation This also fixes another bug in the above commit where the code did not update nValue for the "else if (bBreak && !bWidth)" case Change-Id: I367a56c2cb555336e1d510efb0c7acac1447525f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181417 Tested-by: Jenkins Reviewed-by: Noel Grandin (cherry picked from commit f2639e2a98f114f053a13da669440587d56a0dd8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181423 Reviewed-by: Xisco Fauli diff --git a/sc/qa/unit/data/ods/RowHeightTdf165003.ods b/sc/qa/unit/data/ods/RowHeightTdf165003.ods new file mode 100644 index ..b3672f929f82 Binary files /dev/null and b/sc/qa/unit/data/ods/RowHeightTdf165003.ods differ diff --git a/sc/qa/unit/subsequent_filters_test4.cxx b/sc/qa/unit/subsequent_filters_test4.cxx index caf29b9f9c03..d3e29f89d333 100644 --- a/sc/qa/unit/subsequent_filters_test4.cxx +++ b/sc/qa/unit/subsequent_filters_test4.cxx @@ -418,6 +418,29 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightODS) CPPUNIT_ASSERT_MESSAGE("Row should have an automatic height.", !bManual); } +CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightTdf165003) +{ +createScDoc("ods/RowHeightTdf165003.ods"); + +SCTAB nTab = 0; +SCROW nRow = 0; +ScDocument* pDoc = getScDoc(); + +int nHeight = pDoc->GetRowHeight(nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +// this row has 90-degree rotated text, and without the fix, would have had zero height. +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(582, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +} + CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRichTextContentODS) { createScDoc("ods/rich-text-cells.ods"); diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index 2b0a88aef220..dd9fbf29a566 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -310,7 +310,10 @@ tools::Long ScColumn::GetNeededSize( tools::Long nWidth = 0; if ( eOrient != SvxCellOrientation::Standard ) { -nWidth = pDev->GetTextHeight(); +tools::Long nHeight = pDev->GetTextHeight(); +// swap width and height +nValue = bWidth ? nHeight : pDev->GetTextWidth( aValStr ); +nWidth = nHeight; } else if ( nRotate ) { @@ -363,7 +366,10 @@ tools::Long ScColumn::GetNeededSize( } } else if (bBreak && !bWidth) +{ nWidth = pDev->GetTextWidth(aValStr); +nValue = pDev->GetTextHeight(); +} else // in the common case (height), avoid calling the expensive GetTextWidth nValue = bWidth ? pDev->GetTextWidth( aValStr ) : pDev->GetTextHeight();
core.git: helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit f647131cb34fabbc206b4b72705d95a5d59884e7 Author: Olivier Hallot AuthorDate: Tue Feb 11 11:53:55 2025 -0300 Commit: Gerrit Code Review CommitDate: Tue Feb 11 15:53:55 2025 +0100 Update git submodules * Update helpcontent2 from branch 'master' to 84435ba08d96a46d9ced24ccd37599d2932e8932 - tdf#137419 (part) Restore Data Provider Help page + Restore deleted help page + Refactor, add some bookmark entries, how-to-get ... + Page need further work once the feature is properly documented. Change-Id: I7984ac16dd355f4df1e63bbbcd928109660b0cd5 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/181419 Reviewed-by: Olivier Hallot Tested-by: Jenkins diff --git a/helpcontent2 b/helpcontent2 index 59b3b34772dc..84435ba08d96 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit 59b3b34772dc046c393d4b31570a4262cfd523ef +Subproject commit 84435ba08d96a46d9ced24ccd37599d2932e8932
core.git: Branch 'libreoffice-25-2' - download.lst
download.lst |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) New commits: commit c252b97bb875ff37fa1f85d1b8cac0791c4ce1dd Author: Xisco Fauli AuthorDate: Tue Feb 11 17:36:26 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:13:42 2025 +0100 openssl: upgrade to 3.0.16 Downloaded from https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz Change-Id: I9eeb10132455be1240cbe7312275d5211dee3600 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181442 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit fe39e60102f34f6dba59828579ee75e4c05486e0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181453 Reviewed-by: Michael Weghorn diff --git a/download.lst b/download.lst index 4b85a040e8e5..98293e9dc0cd 100644 --- a/download.lst +++ b/download.lst @@ -543,8 +543,8 @@ OPENLDAP_TARBALL := openldap-2.6.9.tgz # three static lines # so that git cherry-pick # will not run into conflicts -OPENSSL_SHA256SUM := 23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533 -OPENSSL_TARBALL := openssl-3.0.15.tar.gz +OPENSSL_SHA256SUM := 57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86 +OPENSSL_TARBALL := openssl-3.0.16.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts
core.git: Branch 'libreoffice-24-8-5' - xmlsecurity/source
xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx |1 + 1 file changed, 1 insertion(+) New commits: commit e7405fe114fcb81073f8e875da0711e38fcaa233 Author: Miklos Vajna AuthorDate: Tue Jan 28 16:38:10 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:19:35 2025 +0100 tdf#161872 xmlsecurity nss: don't require trusted signing certs Configure your signing cert in Firefox, (unusually) don't trust the CA that you would use to issue your signing cert, try to sign a document, error. This is reportedly wrong since commit bfd479abf0d1d8ce36c3b0dcc6c824216f88a95b (Update libxmlsec to 1.3.1, 2023-06-09), for some reason our usage of libxmlsec-1.2 didn't trigger this problem. Given that we already disable libxmlsec-side cert verify while verifying a signature (and have our own logic there), it's consistent to do the same while creating the signature, and that fixes the bug, too. The Windows / MSCNG backend is not yet changed here. Change-Id: I8a7adf06b9a26731f1a180a4f6257317084e414a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180844 Tested-by: Jenkins Reviewed-by: Miklos Vajna (cherry picked from commit 1817760f56b74e47120c1b4d7641fbaebcf378ad) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180885 Reviewed-by: Moritz Duge Reviewed-by: Xisco Fauli (cherry picked from commit 723ecfa63f5218b2f06f0a807b56869b80a19fe2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181049 (cherry picked from commit 3166d5fc732a812ca8f8c296de285dbeee6dcb1e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181367 Reviewed-by: Ilmari Lauhakangas Reviewed-by: Michael Weghorn Tested-by: Michael Weghorn diff --git a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx index ce61942dda27..feb31594f5d4 100644 --- a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx +++ b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx @@ -150,6 +150,7 @@ SAL_CALL XMLSignature_NssImpl::generate( } //Sign the template +pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; if( xmlSecDSigCtxSign( pDsigCtx.get() , pNode ) == 0 ) { if (pDsigCtx->status == xmlSecDSigStatusSucceeded)
core.git: Branch 'libreoffice-24-8-5' - xmlsecurity/source
xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx |1 + 1 file changed, 1 insertion(+) New commits: commit c61a5f5657bc259accc2d05d9c628050db2153c1 Author: Miklos Vajna AuthorDate: Wed Jan 29 09:40:46 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:20:18 2025 +0100 tdf#161872 xmlsecurity mscrypt: don't require trusted signing certs See commit 1817760f56b74e47120c1b4d7641fbaebcf378ad (tdf#161872 xmlsecurity nss: don't require trusted signing certs, 2025-01-28), this is the same situation, but this time on Windows. Change-Id: I945899da47ab5dcc421f35db31ec7af240c59b8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180881 Reviewed-by: Miklos Vajna Tested-by: Jenkins (cherry picked from commit ec9dbbe288ccb759ed95533fb849dac8a65c4a6b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180886 Reviewed-by: Moritz Duge Reviewed-by: Xisco Fauli (cherry picked from commit b9c8f8a0fb0f56fc91b4882afcc06041796f1ca3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181050 (cherry picked from commit 83a67cfbde00887b5e158e1026d0b6c2cadff3b4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181366 Tested-by: Michael Weghorn Reviewed-by: Michael Weghorn Reviewed-by: Ilmari Lauhakangas diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx index 581249292f1a..1014addbff27 100644 --- a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx +++ b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx @@ -143,6 +143,7 @@ SAL_CALL XMLSignature_MSCryptImpl::generate( } //Sign the template +pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; if( xmlSecDSigCtxSign( pDsigCtx , pNode ) == 0 ) { if (pDsigCtx->status == xmlSecDSigStatusSucceeded)
core.git: Branch 'libreoffice-24-8-5' - sc/source
sc/source/ui/dbgui/filtdlg.cxx |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) New commits: commit 4cc9f1db86c636bd8f01fca514be5a65c0317fcf Author: Samuel Mehrbrodt AuthorDate: Mon Feb 3 09:37:24 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:22:14 2025 +0100 tdf#149907 Update results when changing condition Regression from d9dd003f63a781e63bfbe380ea737e080c21881f Change-Id: I9373be1f77ba13049a91816f57c5ae6b8913f071 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181028 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt (cherry picked from commit 5be5e9da58c7dcee418264b2da29ddcc07e4709d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181033 Reviewed-by: Xisco Fauli (cherry picked from commit 78c5864e5b98d5dc0fd6fd6118e4678c6e419bd3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181129 Reviewed-by: Michael Weghorn Reviewed-by: Ilmari Lauhakangas Reviewed-by: Jonathan Clark Tested-by: Michael Weghorn diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx index 8e9995b07385..daa057c73fcb 100644 --- a/sc/source/ui/dbgui/filtdlg.cxx +++ b/sc/source/ui/dbgui/filtdlg.cxx @@ -1160,8 +1160,7 @@ IMPL_LINK(ScFilterDlg, LbSelectHdl, weld::ComboBox&, rLb, void) UpdateColorList(4); } -auto aEntry = theQueryData.GetEntry(nQ); -aEntry.eOp = op; +theQueryData.GetEntry(nQ).eOp = op; } else if (&rLb == m_xLbColor1.get() || &rLb == m_xLbColor2.get() || &rLb == m_xLbColor3.get() || &rLb == m_xLbColor4.get())
core.git: Branch 'libreoffice-24-8-5' - sc/qa sc/source
sc/qa/unit/data/ods/RowHeightTdf165003.ods |binary sc/qa/unit/subsequent_filters_test4.cxx| 23 +++ sc/source/core/data/column2.cxx|8 +++- 3 files changed, 30 insertions(+), 1 deletion(-) New commits: commit 4a334d519c3fb2b5cb9c59b3ea4adc3a22be5d58 Author: Noel Grandin AuthorDate: Tue Feb 11 12:54:02 2025 +0200 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:21:18 2025 +0100 tdf#165003 Row height wrong at writing direction 90° regression from commit f91a411340ae204ce1e6997f22e0352a4c6a8355 Author: Noel Grandin Date: Thu May 23 15:09:52 2024 +0200 reduce cost of calc column height calculation This also fixes another bug in the above commit where the code did not update nValue for the "else if (bBreak && !bWidth)" case Change-Id: I367a56c2cb555336e1d510efb0c7acac1447525f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181417 Tested-by: Jenkins Reviewed-by: Noel Grandin (cherry picked from commit f2639e2a98f114f053a13da669440587d56a0dd8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181423 Reviewed-by: Xisco Fauli (cherry picked from commit ef385dbed89bbec4eac75f9fb6e1d348bc91fd03) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181427 Reviewed-by: Michael Weghorn Tested-by: Michael Weghorn Reviewed-by: Ilmari Lauhakangas diff --git a/sc/qa/unit/data/ods/RowHeightTdf165003.ods b/sc/qa/unit/data/ods/RowHeightTdf165003.ods new file mode 100644 index ..b3672f929f82 Binary files /dev/null and b/sc/qa/unit/data/ods/RowHeightTdf165003.ods differ diff --git a/sc/qa/unit/subsequent_filters_test4.cxx b/sc/qa/unit/subsequent_filters_test4.cxx index caf29b9f9c03..d3e29f89d333 100644 --- a/sc/qa/unit/subsequent_filters_test4.cxx +++ b/sc/qa/unit/subsequent_filters_test4.cxx @@ -418,6 +418,29 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightODS) CPPUNIT_ASSERT_MESSAGE("Row should have an automatic height.", !bManual); } +CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightTdf165003) +{ +createScDoc("ods/RowHeightTdf165003.ods"); + +SCTAB nTab = 0; +SCROW nRow = 0; +ScDocument* pDoc = getScDoc(); + +int nHeight = pDoc->GetRowHeight(nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +// this row has 90-degree rotated text, and without the fix, would have had zero height. +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(582, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +} + CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRichTextContentODS) { createScDoc("ods/rich-text-cells.ods"); diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index 2b0a88aef220..dd9fbf29a566 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -310,7 +310,10 @@ tools::Long ScColumn::GetNeededSize( tools::Long nWidth = 0; if ( eOrient != SvxCellOrientation::Standard ) { -nWidth = pDev->GetTextHeight(); +tools::Long nHeight = pDev->GetTextHeight(); +// swap width and height +nValue = bWidth ? nHeight : pDev->GetTextWidth( aValStr ); +nWidth = nHeight; } else if ( nRotate ) { @@ -363,7 +366,10 @@ tools::Long ScColumn::GetNeededSize( } } else if (bBreak && !bWidth) +{ nWidth = pDev->GetTextWidth(aValStr); +nValue = pDev->GetTextHeight(); +} else // in the common case (height), avoid calling the expensive GetTextWidth nValue = bWidth ? pDev->GetTextWidth( aValStr ) : pDev->GetTextHeight();
core.git: Branch 'libreoffice-24-8-5' - download.lst external/gpgmepp
download.lst|4 ++-- external/gpgmepp/ExternalPackage_gpgmepp.mk |4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) New commits: commit 097eb0bbe0b1ae1f8729142ee11cd5efcde884e7 Author: Xisco Fauli AuthorDate: Mon Feb 10 15:58:58 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:23:35 2025 +0100 gpgme: upgrade to 1.24.2 Downloaded from https://gnupg.org/ftp/gcrypt/gpgme/gpgme-1.24.2.tar.bz2 Change-Id: I3b75db7258a99cbab1f68151e678d118376b949c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181362 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit 249440f5b7a84f5855301ce71f365679e7ce45a6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181384 Reviewed-by: Taichi Haradaguchi <20001...@protonmail.com> (cherry picked from commit 7478a018d7fb068b46f301452b7f8e88043ee1f5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181403 Reviewed-by: Ilmari Lauhakangas Reviewed-by: Michael Weghorn Tested-by: Michael Weghorn Reviewed-by: Christian Lohmaier diff --git a/download.lst b/download.lst index a4cafb3e6f04..38916325cebd 100644 --- a/download.lst +++ b/download.lst @@ -282,8 +282,8 @@ GLM_TARBALL := glm-1.0.1.zip # three static lines # so that git cherry-pick # will not run into conflicts -GPGME_SHA256SUM := ea05d0258e71061d61716584ec34cef59330a91340571edc46b78374973ba85f -GPGME_TARBALL := gpgme-1.24.1.tar.bz2 +GPGME_SHA256SUM := e11b1a0e361777e9e55f48a03d89096e2abf08c63d84b7017cfe1dce06639581 +GPGME_TARBALL := gpgme-1.24.2.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/gpgmepp/ExternalPackage_gpgmepp.mk b/external/gpgmepp/ExternalPackage_gpgmepp.mk index 731e3a6a87bc..448815c8a630 100644 --- a/external/gpgmepp/ExternalPackage_gpgmepp.mk +++ b/external/gpgmepp/ExternalPackage_gpgmepp.mk @@ -15,8 +15,8 @@ ifneq ($(DISABLE_DYNLOADING),TRUE) ifeq ($(OS),LINUX) -$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.21.1)) -$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.33.1)) +$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.21.2)) +$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.33.2)) else ifeq ($(OS),MACOSX)
core.git: Branch 'libreoffice-24-8-5' - sc/qa sc/source
sc/qa/unit/data/functions/spreadsheet/fods/unique.fods | 111 + sc/source/core/tool/interpr1.cxx |6 2 files changed, 114 insertions(+), 3 deletions(-) New commits: commit 28e3f195794f4ea00d097b1eecea84ea2f604113 Author: Xisco Fauli AuthorDate: Mon Feb 3 12:11:34 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:23:10 2025 +0100 tdf#162601: UNIQUE function is case-insensitive This patch also includes commit 11e62f3a0566464186cef88f6133dbf88fe60a08 (origin/master, origin/HEAD) Author: Xisco Fauli Date: Mon Feb 3 20:56:35 2025 +0100 related: tdf#162601 UNIQUE function is case-insensitive also for non ASCII Kudos to M. Kaganski for flagging it Change-Id: I12d67cb926c1e6dc8b7863529639dc252385b8e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181035 Reviewed-by: Xisco Fauli Tested-by: Jenkins (cherry picked from commit 0ef05087b54621caec96e72fc8aaf13f86a90bf9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181063 Tested-by: Xisco Fauli Reviewed-by: Balazs Varga (cherry picked from commit 29c9a61b96c88856784d2c4f9abafcfc0e979bc1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181064 (cherry picked from commit e348153cbd05391f0be124c026341b3055ada429) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181114 Reviewed-by: Jonathan Clark Tested-by: Michael Weghorn Reviewed-by: Michael Weghorn Reviewed-by: Ilmari Lauhakangas diff --git a/sc/qa/unit/data/functions/spreadsheet/fods/unique.fods b/sc/qa/unit/data/functions/spreadsheet/fods/unique.fods index 5fce49310229..ac9674441351 100644 --- a/sc/qa/unit/data/functions/spreadsheet/fods/unique.fods +++ b/sc/qa/unit/data/functions/spreadsheet/fods/unique.fods @@ -5044,6 +5044,117 @@ + + + + + + case insensitive + + + + + + A + + + + A + + + + TRUE + + + {=UNIQUE({"A";"a";"b";"B"})} + + + + + + b + + + + b + + + + TRUE + + + {=UNIQUE({"A";"a";"b";"B"})} + + + + + + c + + + + c + + + + TRUE + + + {=UNIQUE({"A";"a";"b";"B";"c"}; ; 1)} + + + + + + Á + + + + Á + + + + TRUE + + + {=UNIQUE({"Á";"á";"é";"É"})} + + + + + + é + + + + é + + + + TRUE + + + {=UNIQUE({"Á";"á";"é";"É"})} + + + + + + c + + + + c + + + + TRUE + + + {=UNIQUE({"Á";"á";"é";"É";"c"}; ; 1)} + + + diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index e8ccc4570acb..01b06bd45218 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -8854,7 +8854,7 @@ void ScInterpreter::ScUnique() aStr += aCellStr + u"\x0001"; } -if (aStrSet.insert(aStr).second) // unique if inserted +if (aStrSet.insert(ScGlobal::getCharClass().lowercase(aStr)).second) // unique if inserted { aResPos.emplace_back(std::make_pair(i, aStr)); } @@ -8863,9 +8863,9 @@ void ScInterpreter::ScUnique() if (bExactly_once) { auto it = std::find_if(aResPos.begin(), aResPos.end(), -[&aStr](const std::pair& aRes) +[str = ScGlobal::getCharClass().lowercase(aStr)](const std::pair& aRes) { -return aRes.second.equals(aStr); +return ScGlobal::getCharClass().lowercase(aRes.second).equals(str); } ); if (it != aResPos.end())
core.git: Branch 'libreoffice-24-8' - download.lst external/gpgmepp
download.lst|4 ++-- external/gpgmepp/ExternalPackage_gpgmepp.mk |4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) New commits: commit 6abc5b882ee8f377e1252f239471a7d54d775411 Author: Xisco Fauli AuthorDate: Mon Feb 10 15:58:58 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:23:50 2025 +0100 gpgme: upgrade to 1.24.2 Downloaded from https://gnupg.org/ftp/gcrypt/gpgme/gpgme-1.24.2.tar.bz2 Change-Id: I3b75db7258a99cbab1f68151e678d118376b949c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181362 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit 249440f5b7a84f5855301ce71f365679e7ce45a6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181384 Reviewed-by: Taichi Haradaguchi <20001...@protonmail.com> (cherry picked from commit 7478a018d7fb068b46f301452b7f8e88043ee1f5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181402 Reviewed-by: Michael Weghorn diff --git a/download.lst b/download.lst index 1e31bb1c1121..24992a0a6fb7 100644 --- a/download.lst +++ b/download.lst @@ -282,8 +282,8 @@ GLM_TARBALL := glm-1.0.1.zip # three static lines # so that git cherry-pick # will not run into conflicts -GPGME_SHA256SUM := ea05d0258e71061d61716584ec34cef59330a91340571edc46b78374973ba85f -GPGME_TARBALL := gpgme-1.24.1.tar.bz2 +GPGME_SHA256SUM := e11b1a0e361777e9e55f48a03d89096e2abf08c63d84b7017cfe1dce06639581 +GPGME_TARBALL := gpgme-1.24.2.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/gpgmepp/ExternalPackage_gpgmepp.mk b/external/gpgmepp/ExternalPackage_gpgmepp.mk index 731e3a6a87bc..448815c8a630 100644 --- a/external/gpgmepp/ExternalPackage_gpgmepp.mk +++ b/external/gpgmepp/ExternalPackage_gpgmepp.mk @@ -15,8 +15,8 @@ ifneq ($(DISABLE_DYNLOADING),TRUE) ifeq ($(OS),LINUX) -$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.21.1)) -$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.33.1)) +$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.21.2)) +$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.33.2)) else ifeq ($(OS),MACOSX)
core.git: Branch 'libreoffice-24-8' - download.lst
download.lst |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) New commits: commit 9d23fc99a20abcb5335f3982552b6fee689887b4 Author: Xisco Fauli AuthorDate: Mon Feb 10 10:19:13 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:24:52 2025 +0100 language-subtag-registry: upgrade to 2025-02-06 How the file was created: mkdir data cd data wget https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry cd .. tar cvjf language-subtag-registry-2025-02-06.tar.bz2 data/language-subtag-registry Change-Id: I3b61e752e14384ff45b692f63b2f741d6a09dc77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181331 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit ee29fb4b41b143eaa6cae5d962c55339e7cf1906) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181349 Reviewed-by: Michael Weghorn diff --git a/download.lst b/download.lst index 24992a0a6fb7..7d5e4dd861ee 100644 --- a/download.lst +++ b/download.lst @@ -359,8 +359,8 @@ LIBJPEG_TURBO_TARBALL := libjpeg-turbo-2.1.5.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LANGTAGREG_SHA256SUM := 06b37484c2736816e84b8bdd2075011d5961c2316865bc2795831230b925608d -LANGTAGREG_TARBALL := language-subtag-registry-2025-01-21.tar.bz2 +LANGTAGREG_SHA256SUM := e5fffcbd640e743fa9b699087d63ccf8ab5b52eed521da68f8c894f350856662 +LANGTAGREG_TARBALL := language-subtag-registry-2025-02-06.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts
core.git: Branch 'libreoffice-24-8-5' - download.lst
download.lst |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) New commits: commit cb4685685e4ad3c66de01e69ba97b762488c041e Author: Xisco Fauli AuthorDate: Mon Feb 10 10:19:13 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:25:29 2025 +0100 language-subtag-registry: upgrade to 2025-02-06 How the file was created: mkdir data cd data wget https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry cd .. tar cvjf language-subtag-registry-2025-02-06.tar.bz2 data/language-subtag-registry Change-Id: I3b61e752e14384ff45b692f63b2f741d6a09dc77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181331 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit ee29fb4b41b143eaa6cae5d962c55339e7cf1906) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181382 Reviewed-by: Michael Weghorn Reviewed-by: Christian Lohmaier Reviewed-by: Ilmari Lauhakangas Tested-by: Michael Weghorn diff --git a/download.lst b/download.lst index 24992a0a6fb7..7d5e4dd861ee 100644 --- a/download.lst +++ b/download.lst @@ -359,8 +359,8 @@ LIBJPEG_TURBO_TARBALL := libjpeg-turbo-2.1.5.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LANGTAGREG_SHA256SUM := 06b37484c2736816e84b8bdd2075011d5961c2316865bc2795831230b925608d -LANGTAGREG_TARBALL := language-subtag-registry-2025-01-21.tar.bz2 +LANGTAGREG_SHA256SUM := e5fffcbd640e743fa9b699087d63ccf8ab5b52eed521da68f8c894f350856662 +LANGTAGREG_TARBALL := language-subtag-registry-2025-02-06.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts
core.git: Branch 'libreoffice-24-8-5' - xmloff/source
xmloff/source/draw/shapeexport.cxx |4 ++-- xmloff/source/forms/layerexport.cxx | 14 ++ 2 files changed, 16 insertions(+), 2 deletions(-) New commits: commit aef44ca736e5d6921b5350e5e61767f74d17b4a8 Author: Balazs Varga AuthorDate: Fri Feb 7 12:53:22 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:28:53 2025 +0100 tdf#120397 - odf export fix missing texts in text box control (Ab)use a call to XTextRange::getText to flush edits and restore the selection of the textcontent in the textfields. TODO: unit/UItest Change-Id: If8e1c85f3565ae1b80fd0645c0905aae16404379 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181245 Tested-by: Jenkins Reviewed-by: Balazs Varga (cherry picked from commit 4328d1cca66ed9d1e34a8d788d16a2205fe77c1c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181280 Reviewed-by: Michael Stahl (cherry picked from commit 960e6af4fbe15e4cf857f74382adc0b994a12ff8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181326 Reviewed-by: Ilmari Lauhakangas Tested-by: Michael Weghorn Reviewed-by: Xisco Fauli Reviewed-by: Michael Weghorn diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx index 65709b7bfba3..b77cd9927cb8 100644 --- a/xmloff/source/draw/shapeexport.cxx +++ b/xmloff/source/draw/shapeexport.cxx @@ -311,10 +311,10 @@ void XMLShapeExport::collectShapeAutoStyles(const uno::Reference< drawing::XShap { try { -// tdf#153161: it seems that the call to XTextRange::getString flushes the changes +// tdf#153161: it seems that the call to xText->getText flushes the changes // for some objects, that otherwise fail to get exported correctly. Maybe at some // point it would make sense to find a better place for more targeted flush. -xText->getString(); +xText = xText->getText(); } catch (uno::RuntimeException const&) { diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx index 13785cd60156..9e38e9659a24 100644 --- a/xmloff/source/forms/layerexport.cxx +++ b/xmloff/source/forms/layerexport.cxx @@ -524,6 +524,20 @@ namespace xmloff Reference< XText > xControlText( _rxObject, UNO_QUERY ); if ( xControlText.is() ) { +try +{ +// tdf#120397: similar to the fix of tdf#153161 where +// XTextRange::getText() --> ::GetSelection() flushes the changes +// for some Shape objects we also need to set the end cursor pos +// to the end of the form text objects, otherwise fail to get +// exported correctly. Maybe at some point it would make sense +// to find a better place for more targeted flush. +xControlText = xControlText->getText(); +} +catch (css::uno::RuntimeException const&) +{ +// just in case if we would hit something here +} m_rContext.GetTextParagraphExport()->collectTextAutoStyles( xControlText ); }
core.git: Branch 'libreoffice-25-2' - download.lst
download.lst |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) New commits: commit 0124275c06b9f06fc6dab459e7a4e9f5177c6e5d Author: Xisco Fauli AuthorDate: Mon Feb 10 10:19:13 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:25:01 2025 +0100 language-subtag-registry: upgrade to 2025-02-06 How the file was created: mkdir data cd data wget https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry cd .. tar cvjf language-subtag-registry-2025-02-06.tar.bz2 data/language-subtag-registry Change-Id: I3b61e752e14384ff45b692f63b2f741d6a09dc77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181331 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit ee29fb4b41b143eaa6cae5d962c55339e7cf1906) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181348 Reviewed-by: Michael Weghorn diff --git a/download.lst b/download.lst index 98293e9dc0cd..91f58642270e 100644 --- a/download.lst +++ b/download.lst @@ -394,8 +394,8 @@ LIBJPEG_TURBO_TARBALL := libjpeg-turbo-2.1.5.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -LANGTAGREG_SHA256SUM := 06b37484c2736816e84b8bdd2075011d5961c2316865bc2795831230b925608d -LANGTAGREG_TARBALL := language-subtag-registry-2025-01-21.tar.bz2 +LANGTAGREG_SHA256SUM := e5fffcbd640e743fa9b699087d63ccf8ab5b52eed521da68f8c894f350856662 +LANGTAGREG_TARBALL := language-subtag-registry-2025-02-06.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts
core.git: Branch 'libreoffice-24-8-5' - download.lst
download.lst |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) New commits: commit 1e92026e4eea4db8de55c6f99b19147d173b66d0 Author: Xisco Fauli AuthorDate: Fri Feb 7 12:35:30 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:24:23 2025 +0100 mariadb-connector-c: upgrade to 3.3.14 Downloaded from https://mirror.raiolanetworks.com/mariadb///connector-c-3.3.14/mariadb-connector-c-3.3.14-src.tar.gz Change-Id: I4efa0c4bfff6587758c85f69442b2c78b81fd384 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181247 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001...@protonmail.com> (cherry picked from commit ded3931062020bf886f764a8593f21b933f962d3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181260 Reviewed-by: Ilmari Lauhakangas Tested-by: Michael Weghorn Reviewed-by: Christian Lohmaier Reviewed-by: Michael Weghorn diff --git a/download.lst b/download.lst index 38916325cebd..24992a0a6fb7 100644 --- a/download.lst +++ b/download.lst @@ -446,8 +446,8 @@ LXML_TARBALL := lxml-5.2.2.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -MARIADB_CONNECTOR_C_SHA256SUM := 1c03c30b394871ab354dbdb47574beae19e2657da21a911ecc9e33e9388a3bef -MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.13-src.tar.gz +MARIADB_CONNECTOR_C_SHA256SUM := 497c324ed9ebce1dd8a940c1d308574f0d4db41c8209f19bfb3ded25e733ed49 +MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.14-src.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts
core.git: Branch 'libreoffice-24-8-5' - sw/inc sw/source
sw/inc/unotextrange.hxx|8 +--- sw/source/core/unocore/unobkm.cxx |3 ++- sw/source/core/unocore/unoobj2.cxx | 25 - 3 files changed, 23 insertions(+), 13 deletions(-) New commits: commit 2273885b0785b91546962925e5ec44326eb302de Author: Michael Stahl AuthorDate: Fri Jan 31 11:47:46 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:27:40 2025 +0100 tdf#158198 sw: prevent xBookmark.getAnchor().setString("") from deleting ... the bookmark. Add a RANGE_IS_BOOKMARK to SwXTextRange and special case setString() so that it will do a replace, not a delete, to prevent the bookmark from being deleted. SwXBookmark::getAnchor() will create such a SwXTextRange. Bookmarks may be in table cells of course so we need RANGE_IN_CELL to be a flag now so it can be used with 2 different enum values. (regression from commit baf8d2c1c16cb3bdc4edad2560f95fea807a034f) Change-Id: I69169b9a5f6f7525715122b16de009c894246bef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180985 Reviewed-by: Michael Stahl Tested-by: Jenkins (cherry picked from commit b0d4b4664a295631ce4d8dee2ceb5cd94ae12edb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180989 Reviewed-by: Adolfo Jayme Barrientos (cherry picked from commit fe5635c78557ef9f51e3bac1d782cf1c8555655d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181105 Reviewed-by: Michael Weghorn Tested-by: Michael Weghorn Reviewed-by: Christian Lohmaier Reviewed-by: Ilmari Lauhakangas diff --git a/sw/inc/unotextrange.hxx b/sw/inc/unotextrange.hxx index 1d2265ddfec1..077bbf3e3e75 100644 --- a/sw/inc/unotextrange.hxx +++ b/sw/inc/unotextrange.hxx @@ -110,14 +110,15 @@ public: enum RangePosition { RANGE_IN_TEXT, // "ordinary" css::text::TextRange -RANGE_IN_CELL, // position created with a cell that has no uno object RANGE_IS_TABLE, // anchor of a table RANGE_IS_SECTION, // anchor of a section +RANGE_IS_BOOKMARK, ///< anchor of a bookmark }; SwXTextRange(SwPaM const & rPam, const css::uno::Reference< css::text::XText > & xParent, -const enum RangePosition eRange = RANGE_IN_TEXT); +const enum RangePosition eRange = RANGE_IN_TEXT, +bool isInCell = false); // only for RANGE_IS_TABLE SwXTextRange(SwTableFormat& rTableFormat); // only for RANGE_IS_SECTION @@ -130,7 +131,8 @@ public: static rtl::Reference< SwXTextRange > CreateXTextRange( SwDoc & rDoc, -const SwPosition& rPos, const SwPosition *const pMark); +const SwPosition& rPos, const SwPosition *const pMark, +RangePosition eRange = RANGE_IN_TEXT); // XServiceInfo virtual OUString SAL_CALL getImplementationName() override; diff --git a/sw/source/core/unocore/unobkm.cxx b/sw/source/core/unocore/unobkm.cxx index cb9b3894a72e..6f0aa41fdf70 100644 --- a/sw/source/core/unocore/unobkm.cxx +++ b/sw/source/core/unocore/unobkm.cxx @@ -272,7 +272,8 @@ uno::Reference< text::XTextRange > SAL_CALL SwXBookmark::getAnchor() *m_pImpl->m_pDoc, m_pImpl->m_pRegisteredBookmark->GetMarkPos(), (m_pImpl->m_pRegisteredBookmark->IsExpanded()) -? &m_pImpl->m_pRegisteredBookmark->GetOtherMarkPos() : nullptr); +? &m_pImpl->m_pRegisteredBookmark->GetOtherMarkPos() : nullptr, +SwXTextRange::RANGE_IS_BOOKMARK); } void SAL_CALL SwXBookmark::dispose() diff --git a/sw/source/core/unocore/unoobj2.cxx b/sw/source/core/unocore/unoobj2.cxx index f043515aefb4..5fa37d8b6b98 100644 --- a/sw/source/core/unocore/unoobj2.cxx +++ b/sw/source/core/unocore/unoobj2.cxx @@ -676,16 +676,18 @@ class SwXTextRange::Impl public: const SfxItemPropertySet& m_rPropSet; const enum RangePosition m_eRangePosition; +bool const m_isRangeInCell; //< position created with a cell that has no uno object SwDoc& m_rDoc; uno::Reference m_xParentText; const SwFrameFormat* m_pTableOrSectionFormat; const ::sw::mark::IMark* m_pMark; -Impl(SwDoc& rDoc, const enum RangePosition eRange, +Impl(SwDoc& rDoc, const enum RangePosition eRange, bool const isInCell, SwFrameFormat* const pTableOrSectionFormat, uno::Reference xParent = nullptr) : m_rPropSet(*aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_CURSOR)) , m_eRangePosition(eRange) +, m_isRangeInCell(isInCell) , m_rDoc(rDoc) , m_xParentText(std::move(xParent)) , m_pTableOrSectionFormat(pTableOrSectionFormat) @@ -744,15 +746,16 @@ void SwXTextRange::Impl::Notify(const SfxHint& rHint) SwXTextRange::SwXTextRange(SwPaM const & rPam, const uno::Reference< text::XText > & xParent, -const enum RangePosition eRange) -: m_pImpl( new SwXTextRange::Imp
core.git: Branch 'libreoffice-24-8-5' - sc/qa sc/source
sc/qa/unit/data/functions/date_time/fods/weeknum.fods | 10 +- sc/source/core/tool/interpr2.cxx | 15 ++- 2 files changed, 19 insertions(+), 6 deletions(-) New commits: commit ffa1dd40bd10d265c7bf8e25ba2e7ca24a061785 Author: Andras Timar AuthorDate: Mon Feb 3 14:55:54 2025 +0100 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:28:16 2025 +0100 tdf#165011 accept empty second parameter of WEEKNUM spreadsheet function and treat it like if it was the the default "1". Change-Id: I618575a7441a2a6650228fc1a29177e294933ce0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181048 Tested-by: Jenkins Reviewed-by: Andras Timar (cherry picked from commit bfb8dbc4a6a462bc9a836d125faaeafd81daadd9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181097 Reviewed-by: Xisco Fauli (cherry picked from commit 199f1c9da36470ce46b653f95a447e9d78d9605c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181104 Tested-by: Christian Lohmaier Reviewed-by: Christian Lohmaier Reviewed-by: Ilmari Lauhakangas diff --git a/sc/qa/unit/data/functions/date_time/fods/weeknum.fods b/sc/qa/unit/data/functions/date_time/fods/weeknum.fods index a4e1c08ebbd6..2f84286ae929 100644 --- a/sc/qa/unit/data/functions/date_time/fods/weeknum.fods +++ b/sc/qa/unit/data/functions/date_time/fods/weeknum.fods @@ -769,13 +769,13 @@ - - Err:502 + + 31 - - ERR + + 31 - + PRAVDA diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx index 2d87abed4789..c556df37d1cb 100644 --- a/sc/source/core/tool/interpr2.cxx +++ b/sc/source/core/tool/interpr2.cxx @@ -253,7 +253,20 @@ void ScInterpreter::ScGetWeekOfYear() if ( !MustHaveParamCount( nParamCount, 1, 2 ) ) return; -sal_Int16 nFlag = ( nParamCount == 1 ) ? 1 : GetInt16(); +sal_Int16 nFlag; +if (nParamCount == 1) +{ +nFlag = 1; +} +else if (GetRawStackType() == svMissing) +{ +nFlag = 1; +Pop(); +} +else +{ +nFlag = GetInt16(); +} Date aDate = mrContext.NFGetNullDate(); aDate.AddDays( GetFloor32());
core.git: Branch 'libreoffice-25-2' - sc/source
sc/source/filter/excel/xistyle.cxx | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-) New commits: commit cadfb0db14c6ff96688259b8a1eeb8615a2f8a49 Author: Noel Grandin AuthorDate: Mon Feb 10 13:20:24 2025 +0200 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:29:59 2025 +0100 tdf#165080 Background color cells are reset to white regression from commit 2d208c4e42595bb85fd0ef726a89e10dd32b48b1 Author: Noel Grandin Date: Tue Jun 25 09:03:49 2024 +0200 tdf#161210 speed xls load Change-Id: Ided4df0ce448cf811e7f43bcf601641e2b7c29c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181350 Reviewed-by: Noel Grandin Tested-by: Jenkins (cherry picked from commit c5f3e78f34a31077df6f9f8e3e9093454cdca25f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181385 Reviewed-by: Michael Weghorn diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx index dddf509b0944..0c859e6be53f 100644 --- a/sc/source/filter/excel/xistyle.cxx +++ b/sc/source/filter/excel/xistyle.cxx @@ -1993,17 +1993,6 @@ void XclImpXFRangeBuffer::Finalize() ScDocument& rDoc = rDocImport.getDoc(); SCTAB nScTab = GetCurrScTab(); -// apply row styles -for( SCROW nScRow = 0; nScRow < static_cast(maRows.size()); ++nScRow ) -{ -if (!maRows[nScRow]) -continue; -sal_uInt16 nXFIndex = *maRows[nScRow]; -for( SCCOL nScCol = 0; nScCol < static_cast(maColumns.size()); ++nScCol ) -if (maColumns[nScCol]) -SetXF( ScAddress( nScCol, nScRow, 0 ), nXFIndex, xlXFModeRow ); -} - // apply patterns XclImpXFBuffer& rXFBuffer = GetXFBuffer(); ScDocumentImport::Attrs aPendingAttrParam; @@ -2062,6 +2051,16 @@ void XclImpXFRangeBuffer::Finalize() if( pendingColStart != -1 ) rDocImport.setAttrEntries(nScTab, pendingColStart, pendingColEnd, std::move(aPendingAttrParam)); +// apply row styles +for( SCROW nScRow = 0; nScRow < static_cast(maRows.size()); ++nScRow ) +{ +if (!maRows[nScRow]) +continue; +sal_uInt16 nXFIndex = *maRows[nScRow]; +for( nScCol = 0; nScCol < static_cast(maColumns.size()); ++nScCol ) +SetXF( ScAddress( nScCol, nScRow, 0 ), nXFIndex, xlXFModeRow ); +} + // insert hyperlink cells for( const auto& [rXclRange, rUrl] : maHyperlinks ) XclImpHyperlink::InsertUrl( GetRoot(), rXclRange, rUrl );
core.git: Branch 'libreoffice-25-2-1' - vcl/win
vcl/win/gdi/salnativewidgets-luna.cxx | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) New commits: commit f59ec1465b440aa89e20a82c298fd4e3bdf316f6 Author: Sahil Gautam AuthorDate: Fri Feb 7 23:40:31 2025 +0530 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:32:00 2025 +0100 tdf#164972 Fix white-on-white themed scrollbars on windows - in case of light mode, decrease the base color luminance. - this is just a temporary fix similar to how other controls like disabled buttons are themed and would be replaced with themed native controls. Change-Id: If574e96499f48a5139775a2efcd6aa1f20e26c43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181271 Tested-by: Jenkins Reviewed-by: Sahil Gautam (cherry picked from commit 731a4876b72d9794d2a76f170d0338f799369d3f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181332 Reviewed-by: Xisco Fauli (cherry picked from commit d879bc9e76afb1873236a1aabd3df6bd4f3ad495) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181392 Tested-by: Michael Weghorn Reviewed-by: Michael Stahl Reviewed-by: Michael Weghorn diff --git a/vcl/win/gdi/salnativewidgets-luna.cxx b/vcl/win/gdi/salnativewidgets-luna.cxx index 36011eb31bee..d0aa805284b8 100644 --- a/vcl/win/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/gdi/salnativewidgets-luna.cxx @@ -498,10 +498,17 @@ static bool drawThemedControl(HDC hDC, ControlType nType, int iPart, int iState, Color aScrollBarThumbColor = ThemeColors::GetThemeColors().GetBaseColor(); const Color& rBackgroundColor = ThemeColors::GetThemeColors().GetWindowColor(); +bool bUseDarkMode = UseDarkMode(); if (iState == SCRBS_PRESSED) -aScrollBarThumbColor.IncreaseLuminance(60); +if (bUseDarkMode) +aScrollBarThumbColor.IncreaseLuminance(60); +else +aScrollBarThumbColor.DecreaseLuminance(60); else if (iState = SCRBS_HOT) -aScrollBarThumbColor.IncreaseLuminance(30); +if (bUseDarkMode) +aScrollBarThumbColor.IncreaseLuminance(30); +else +aScrollBarThumbColor.DecreaseLuminance(30); ScopedHBRUSH hbrush(CreateSolidBrush(RGB(rBackgroundColor.GetRed(), rBackgroundColor.GetGreen(),
help.git: source/text
source/text/sbasic/shared/03030203.xhp |3 +++ 1 file changed, 3 insertions(+) New commits: commit 0b34aab50fc803bfe100a2b4dbe62a52ae3dccb3 Author: Simon Chenery AuthorDate: Mon Feb 10 19:30:42 2025 +0100 Commit: Olivier Hallot CommitDate: Tue Feb 11 22:33:03 2025 +0100 tdf#154285 Error code 5 Invalid procedure call possible for NOW() Change-Id: Ia2b249988f7df784801dc74992127c26f967749d Reviewed-on: https://gerrit.libreoffice.org/c/help/+/181376 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/source/text/sbasic/shared/03030203.xhp b/source/text/sbasic/shared/03030203.xhp index 0bbd2ebc22..9777a2d1a6 100644 --- a/source/text/sbasic/shared/03030203.xhp +++ b/source/text/sbasic/shared/03030203.xhp @@ -44,6 +44,9 @@ Date + + + Sub ExampleNow
core.git: helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 5204069793c77c2179c059679cae8b69a5b5edaa Author: Olivier Hallot AuthorDate: Tue Feb 11 18:34:07 2025 -0300 Commit: Gerrit Code Review CommitDate: Tue Feb 11 22:34:07 2025 +0100 Update git submodules * Update helpcontent2 from branch 'master' to 35b759e6da136e3d46e3e1d08ef2245c50b1d76d - tdf#137419 (part 2) Data Provider Help page + Refactor, add some bookmark entries, how-to-get ... + Page need further work once the feature is properly documented. Change-Id: I6bfb9fc2c1bef43ee49caef7e5b9d6d5adbd153d Reviewed-on: https://gerrit.libreoffice.org/c/help/+/181462 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/helpcontent2 b/helpcontent2 index 0b34aab50fc8..35b759e6da13 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit 0b34aab50fc803bfe100a2b4dbe62a52ae3dccb3 +Subproject commit 35b759e6da136e3d46e3e1d08ef2245c50b1d76d
core.git: helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit b064297cfc660a01a4e788bac331e5765649c121 Author: Simon Chenery AuthorDate: Tue Feb 11 22:33:03 2025 +0100 Commit: Gerrit Code Review CommitDate: Tue Feb 11 22:33:03 2025 +0100 Update git submodules * Update helpcontent2 from branch 'master' to 0b34aab50fc803bfe100a2b4dbe62a52ae3dccb3 - tdf#154285 Error code 5 Invalid procedure call possible for NOW() Change-Id: Ia2b249988f7df784801dc74992127c26f967749d Reviewed-on: https://gerrit.libreoffice.org/c/help/+/181376 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/helpcontent2 b/helpcontent2 index 07e8db4df115..0b34aab50fc8 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit 07e8db4df115a5662b5e28831cbc7049cd50c217 +Subproject commit 0b34aab50fc803bfe100a2b4dbe62a52ae3dccb3
core.git: sw/qa sw/source
sw/qa/extras/unowriter/data/tdf164921.odt |binary sw/qa/extras/unowriter/unowriter.cxx | 44 ++ sw/source/core/doc/docnum.cxx | 19 +++- 3 files changed, 61 insertions(+), 2 deletions(-) New commits: commit fe1a74c68b892d01bf5d8be9aed90c12c5bf6abd Author: Oliver Specht AuthorDate: Wed Jan 29 12:38:55 2025 +0100 Commit: Gabor Kelemen CommitDate: Tue Feb 11 23:05:52 2025 +0100 tdf#164921 Renaming list styles fixed User defined list styles are now correctly updated in paragraph styles that are using them and only directly applied to paragraphs that had a direct formating before. Change-Id: I9b671655ffa430d643c48fc35f15f38b41de4b9b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180892 Reviewed-by: Gabor Kelemen Tested-by: Gabor Kelemen Tested-by: Jenkins diff --git a/sw/qa/extras/unowriter/data/tdf164921.odt b/sw/qa/extras/unowriter/data/tdf164921.odt new file mode 100644 index ..b24b4b6f3299 Binary files /dev/null and b/sw/qa/extras/unowriter/data/tdf164921.odt differ diff --git a/sw/qa/extras/unowriter/unowriter.cxx b/sw/qa/extras/unowriter/unowriter.cxx index fee61f62b819..0e74fb83cdde 100644 --- a/sw/qa/extras/unowriter/unowriter.cxx +++ b/sw/qa/extras/unowriter/unowriter.cxx @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -1516,6 +1517,49 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf164885) CPPUNIT_ASSERT_EQUAL(u".uno:Open"_ustr, interceptor->pDispatch->sLastCommand); } +CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf164921) +{ +// check renaming list style +OUString sChangedListStyle = u"ChangedListStyle"_ustr; + +{ +createSwDoc("tdf164921.odt"); +//change list style name +//auto xModel = mxComponent.queryThrow(); +uno::Reference xSFS(mxComponent, uno::UNO_QUERY); +uno::Reference xListStyles( +xSFS->getStyleFamilies()->getByName(u"NumberingStyles"_ustr), uno::UNO_QUERY); +uno::Reference xListStyle(xListStyles->getByName(u"NewListStyle"_ustr), + uno::UNO_QUERY); +xListStyle->setName(sChangedListStyle); + +utl::MediaDescriptor aMediaDescriptor; +aMediaDescriptor[u"FilterName"_ustr] <<= u"writer8"_ustr; +uno::Reference const xStorable(mxComponent, uno::UNO_QUERY); +xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); +} +{ +saveAndReload(u"writer8"_ustr); + +uno::Reference xSFS(mxComponent, uno::UNO_QUERY); +uno::Reference xListStyles( +xSFS->getStyleFamilies()->getByName(u"NumberingStyles"_ustr), uno::UNO_QUERY); +uno::Reference xNewListStyle( +xListStyles->getByName(u"ChangedListStyle"_ustr), uno::UNO_QUERY); + +CPPUNIT_ASSERT_EQUAL(xNewListStyle->getName(), sChangedListStyle); + +uno::Reference xParaStyles( +xSFS->getStyleFamilies()->getByName(u"ParagraphStyles"_ustr), uno::UNO_QUERY); +uno::Reference xBodyTextStyle(xParaStyles->getByName("Text body"), + uno::UNO_QUERY); + +rtl::OUString sListStyleName; +xBodyTextStyle->getPropertyValue(u"NumberingStyleName"_ustr) >>= sListStyleName; +CPPUNIT_ASSERT_EQUAL(sListStyleName, sChangedListStyle); +} +} + } // end of anonymous namespace CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx index afbdfe7b63dc..c33c4fd77e49 100644 --- a/sw/source/core/doc/docnum.cxx +++ b/sw/source/core/doc/docnum.cxx @@ -1232,12 +1232,27 @@ bool SwDoc::RenameNumRule(const OUString & rOldName, const OUString & rNewName, pNumRule->GetTextNodeList( aTextNodeList ); pNumRule->SetName( rNewName, getIDocumentListsAccess() ); - SwNumRuleItem aItem(rNewName); +const size_t nArrLen = GetTextFormatColls()->size(); +for( size_t i = 0; i < nArrLen; i++ ) +{ +SwTextFormatColl* pColl = (*GetTextFormatColls())[ i ]; +const SwAttrSet& rAttrSet = pColl->GetAttrSet(); + +const SfxPoolItem* pTempItem = nullptr; +if (SfxItemState::SET == rAttrSet.GetItemState(RES_PARATR_NUMRULE, false, &pTempItem)) +{ +const SwNumRuleItem* pNumItem = static_cast(pTempItem); +if (pNumItem->GetValue().equals(rOldName)) +pColl->SetFormatAttr( aItem ); +} +} + for ( SwTextNode* pTextNd : aTextNodeList ) { -pTextNd->SetAttr(aItem); +if (SfxItemState::SET == pTextNd->GetSwAttrSet().GetItemState(RES_PARATR_NUMRULE, false)) +pTextNd->SetAttr(aItem); } bResult = true;
core.git: Branch 'feature/cib_contract49d' - sw/qa
sw/qa/extras/rtfimport/data/tdf162198.rtf | 258 ++ sw/qa/extras/rtfimport/rtfimport.cxx | 17 + 2 files changed, 275 insertions(+) New commits: commit 680b04ebc82a9ce29964376cef0e02bef2bb6f7b Author: Oliver Specht AuthorDate: Thu Sep 26 11:39:46 2024 +0200 Commit: Gabor Kelemen CommitDate: Tue Feb 11 22:49:21 2025 +0100 tdf#162198 Reset default cell padding in RTF 66b4bfe302e248fc1503c5c74b83f4fb5fee4026 introduced a default left/right cell margin of 0.19 cm in DOCX import but is was also applied in RTF. This is no longer applied in RTF import. Change-Id: I192b2d17018c234837b926be64fdf27554b024e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173981 Tested-by: Jenkins Tested-by: Gabor Kelemen Reviewed-by: Thorsten Behrens (cherry picked from commit 0313b56b931d78453ac5711d5f5f16eed38d02ca) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181461 Tested-by: allotropia jenkins Reviewed-by: Gabor Kelemen diff --git a/sw/qa/extras/rtfimport/data/tdf162198.rtf b/sw/qa/extras/rtfimport/data/tdf162198.rtf new file mode 100644 index ..d211768aee53 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/tdf162198.rtf @@ -0,0 +1,258 @@ +{ tf1deflang1025nsinsicpg1250\uc1deff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1038\deflangfe1038 hemelang3079hemelangfe0 hemelangcs0{onttbl{0bidi roman charset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};} +{0bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};}{40bidi swisscharset0prq2{\*\panose }Verdana;} +{lomajor31500bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};}{dbmajor31501bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};} +{himajor31502bidi romancharset0prq2{\*\panose 02040503050406030204}Cambria;}{bimajor31503bidi romancharset0 prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};} +{lominor31504bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};}{dbminor31505bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};} +{himinor31506bidi swisscharset0prq2{\*\panose 020f0502020204030204}Calibri;}{biminor31507bidi romancharset0 prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};} +{42bidi romancharset238prq2 Times New Roman CE{\*alt Arial};}{43bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};}{45bidi roman charset161prq2 Times New Roman Greek{\*alt Arial};} +{46bidi romancharset162prq2 Times New Roman Tur{\*alt Arial};}{47bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Arial};}{48bidi roman charset178prq2 Times New Roman (Arabic){\*alt Arial};} +{49bidi romancharset186prq2 Times New Roman Baltic{\*alt Arial};}{50 bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Arial};}{42 bidi romancharset238prq2 Times New Roman CE{\*alt Arial};} +{43bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};}{45bidi romancharset161prq2 Times New Roman Greek{\*alt Arial};}{46bidi roman charset162prq2 Times New Roman Tur{\*alt Arial};} +{47bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Arial};}{48 bidi romancharset178prq2 Times New Roman (Arabic){\*alt Arial};}{49bidi romancharset186prq2 Times New Roman Baltic{\*alt Arial};} +{50bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Arial};}{ 442bidi swisscharset238prq2 Verdana CE;}{443bidi swisscharset204prq2 Verdana Cyr;}{445bidi swisscharset161prq2 Verdana Greek;} +{446bidi swisscharset162prq2 Verdana Tur;}{449bidi swisscharset186 prq2 Verdana Baltic;}{450bidi swisscharset163prq2 Verdana (Vietnamese);}{ lomajor31508bidi romancharset238prq2 Times New Roman CE{\*alt Arial};} +{lomajor31509bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};}{lomajor31511bidi romancharset161prq2 Times New Roman Greek{\* alt Arial};} +{lomajor31512bidi romancharset162prq2 Times New Roman Tur{\*alt Arial};}{lomajor31513bidi romancharset177prq2 Times New Roman (Hebrew){\* alt Arial};} +{lomajor31514bidi romancharset178prq2 Times New Roman (Arabic){\*alt Arial};}{lomajor31515bidi romancharset186prq2 Times New Roman Baltic{\* alt Arial};} +{lomajor31516bidi romancharset163prq2 Times New Roman (Vietnamese){\* alt Arial};}{dbmajor31518bidi romancharset238prq2 Times New Roman CE{\* alt Arial};} +{dbmajor31519bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};}{dbmajor31521bidi romancharset161prq2 Times New Roman Greek{\* alt Arial};} +{dbmajor31522bidi romancharset162prq2 Times New Roman Tur{\*alt Arial};}{dbmajor31523bid
core.git: Branch 'distro/collabora/co-24.04' - sc/qa sc/source
sc/qa/unit/data/xlsx/freezePaneStartCell.xlsx |binary sc/qa/unit/subsequent_export_test2.cxx| 17 + sc/source/filter/excel/xeview.cxx |7 +++ 3 files changed, 24 insertions(+) New commits: commit fd253b79f8f4c641f57d675cddb7f3a9609e45dd Author: Justin Luth AuthorDate: Fri Feb 7 14:08:42 2025 -0500 Commit: Miklos Vajna CommitDate: Tue Feb 11 09:19:33 2025 +0100 tdf#165130 sc: prevent pane's topLeftCell from being in frozen zone While Excel 2010 opens this unit test just fine (and looks like a split window) Excel 2019 complains it is corrupt. So, this patch just prevents writing an invalid topLeftCell which will avoid us from causing such a problem as well as fixing documents that already exhibit the problem. make CppunitTest_sc_subsequent_export_test2 \ CPPUNIT_TEST_NAME=testFreezePaneStartCellXLSX Change-Id: I32888d7d020ec16dca436686cd76008ed417d699 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181275 Reviewed-by: Justin Luth Tested-by: Jenkins (cherry picked from commit 5ef44a0b2ad238fbd13196e2f602de71f42a34d1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181301 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/sc/qa/unit/data/xlsx/freezePaneStartCell.xlsx b/sc/qa/unit/data/xlsx/freezePaneStartCell.xlsx new file mode 100644 index ..9bce2671009c Binary files /dev/null and b/sc/qa/unit/data/xlsx/freezePaneStartCell.xlsx differ diff --git a/sc/qa/unit/subsequent_export_test2.cxx b/sc/qa/unit/subsequent_export_test2.cxx index 5a3c87e4548f..0252c8e6321e 100644 --- a/sc/qa/unit/subsequent_export_test2.cxx +++ b/sc/qa/unit/subsequent_export_test2.cxx @@ -50,6 +50,23 @@ CPPUNIT_TEST_FIXTURE(ScExportTest2, testGroupShape) assertXPath(pDoc, "/xdr:wsDr/xdr:twoCellAnchor/xdr:grpSp/xdr:grpSpPr"_ostr); } +CPPUNIT_TEST_FIXTURE(ScExportTest2, testFreezePaneStartCellXLSX) +{ +// given a hand-mangled document with a newly-invalid topLeftCell for the active pane +// where pane xSplit="5" ySplit="10" topLeftCell="A1" state="frozen" + +createScDoc("xlsx/freezePaneStartCell.xlsx"); + +save(u"Calc Office Open XML"_ustr); + +xmlDocUniquePtr pDoc = parseExport(u"xl/worksheets/sheet1.xml"_ustr); +OUString sFirstNonFrozenCell += getXPath(pDoc, "//x:sheetViews//x:pane"_ostr, "topLeftCell"_ostr); + +// new versions of Excel complain if the start of the non-frozen section is inside the freeze +CPPUNIT_ASSERT_EQUAL(u"F11"_ustr, sFirstNonFrozenCell); +} + CPPUNIT_TEST_FIXTURE(ScExportTest2, testMatrixMultiplicationXLSX) { createScDoc("xlsx/matrix-multiplication.xlsx"); diff --git a/sc/source/filter/excel/xeview.cxx b/sc/source/filter/excel/xeview.cxx index 5db6de1c2fff..c5760fafcdb7 100644 --- a/sc/source/filter/excel/xeview.cxx +++ b/sc/source/filter/excel/xeview.cxx @@ -348,6 +348,13 @@ XclExpTabViewSettings::XclExpTabViewSettings( const XclExpRoot& rRoot, SCTAB nSc maData.mnActivePane = EXC_PANE_TOPRIGHT; else if( maData.HasPane( EXC_PANE_BOTTOMLEFT ) ) maData.mnActivePane = EXC_PANE_BOTTOMLEFT; + +// Starting cell for active, frozen pane must not be less than the split position +// i.e. it must not be in the frozen section (or Excel 2019 considers the file corrupt). +if (maData.maSecondXclPos.mnCol < maData.mnSplitX) +maData.maSecondXclPos.mnCol = maData.mnSplitX; +if (maData.maSecondXclPos.mnRow < maData.mnSplitY) +maData.maSecondXclPos.mnRow = maData.mnSplitY; } else {
core.git: vcl/unx
vcl/unx/gtk3/custom-theme.cxx | 35 --- 1 file changed, 24 insertions(+), 11 deletions(-) New commits: commit 2ebefc61f48b13456de7b45597e64ca5f4d9f729 Author: Sahil Gautam AuthorDate: Tue Feb 11 00:46:34 2025 +0530 Commit: Sahil Gautam CommitDate: Tue Feb 11 10:55:46 2025 +0100 tdf#164969 fix widget theming/styling in gtk - when using automatic theme, and when theming is enabled, if everything is set to automatic, then the application shouldn't have any visual changes. - use close button color from libadwaita specification, that's the closest we can get to the defaults without defining a "close button color" variable under theme colors. - remove border from the notebook headers, change the color/style to match the default look without any theming. Change-Id: Ib0143ccc681b4f0f5863be028a32af32d9631917 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181381 Reviewed-by: Sahil Gautam Tested-by: Jenkins diff --git a/vcl/unx/gtk3/custom-theme.cxx b/vcl/unx/gtk3/custom-theme.cxx index 71bb0ec843b8..b22bb0fe4439 100644 --- a/vcl/unx/gtk3/custom-theme.cxx +++ b/vcl/unx/gtk3/custom-theme.cxx @@ -125,11 +125,18 @@ OString CreateStyleString() Color aSpinBack = aThemeColors.GetBaseColor(); aSpinBack.SetAlpha(20); -Color aPressedColor = ThemeColors::GetThemeColors().GetWindowColor(); +Color aPressedColor = ThemeColors::GetThemeColors().GetBaseColor(); +Color aNotebookBorderColor = aPressedColor; if (aPressedColor.IsDark()) -aPressedColor.IncreaseLuminance(30); +{ +aPressedColor.DecreaseLuminance(5); +aNotebookBorderColor.DecreaseLuminance(20); +} else -aPressedColor.DecreaseLuminance(30); +{ +aPressedColor.IncreaseLuminance(5); +aNotebookBorderColor.IncreaseLuminance(20); +} // clang-format off OUString aStr = @@ -295,25 +302,30 @@ OString CreateStyleString() */ "tabbox > tab:hover," +"notebook > header tab:checked:hover," "notebook > header tab:hover {" -" background-color: #" + aPressedColor.AsRGBHexString() + ";" -" border: 1px solid #" + aThemeColors.GetSeparatorColor().AsRGBHexString() + ";" +" background-color: #" + ThemeColors::GetThemeColors().GetBaseColor().AsRGBHexString() + ";" " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" "}" "tabbox > tab:checked, notebook > header tab:checked {" " background-color: #" + aPressedColor.AsRGBHexString() + ";" -" border: 1px solid #" + aThemeColors.GetSeparatorColor().AsRGBHexString() + ";" +" color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" +"}" + +"tabbox > tab, notebook > header tab {" " color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" "}" "notebook {" " background-color: #" + aThemeColors.GetWindowColor().AsRGBHexString() + ";" +" color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" "}" "notebook > header {" -" background-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" -" border-color: #" + aThemeColors.GetBaseColor().AsRGBHexString() + ";" +" background-color: #" + aPressedColor.AsRGBHexString() + ";" +" border-color: #" + aNotebookBorderColor.AsRGBHexString() + ";" +" color: #" + aThemeColors.GetWindowTextColor().AsRGBHexString() + ";" "}" "notebook > stack:not(:only-child) {" @@ -522,7 +534,6 @@ OString CreateStyleString() "}" "button.combo:only-child:disabled {" -" box-shadow: 0 0 0 2px transparent;" " background-color: #" + aThemeColors.GetDisabledColor().AsRGBHexString() + ";" " color: #" + aThemeColors.GetInactiveTextColor().AsRGBHexString() + ";" "}" @@ -595,9 +606,11 @@ OString CreateStyleString() " text-shadow: none;" "}" +// use default destructive color value as per libadwaita named-colors.html +// https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1.5/named-colors.html "button.destructive-action:not(:disabled) {" -" background-color: #f38ba8;" -" color: #" + aThemeColors.GetButtonTextColor().AsRGBHexString() + ";" +" background-color: #c01c28;" +" color: #ff;" "}" ".view:selected {"
core.git: sc/source sd/source sfx2/sdi sw/source
sc/source/ui/view/tabvwsha.cxx |2 +- sd/source/ui/docshell/docshell.cxx |2 +- sfx2/sdi/sfx.sdi |2 +- sw/source/uibase/uiview/viewsrch.cxx |2 +- 4 files changed, 4 insertions(+), 4 deletions(-) New commits: commit ebea5ef578bd919ab10d769d2eb27521d2c15012 Author: Mike Kaganski AuthorDate: Tue Feb 11 14:24:40 2025 +0500 Commit: Mike Kaganski CommitDate: Tue Feb 11 11:29:23 2025 +0100 tdf#165185: consider LOK read-only view in SID_SEARCH_OPTIONS This reverts commit cae3ed92df74672a886ee706ebb970a763be3712 "disable invoking Search and Replace dialog (by Ctrl+H) in read-only documents", 2025-02-11. Instead, the dialog will disable replacement controls. Change-Id: Iefef1f636492f60b2bcff07379c2c2dc7bcead79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181408 Tested-by: Jenkins Reviewed-by: Mike Kaganski diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx index 63e930928439..bca95efa1494 100644 --- a/sc/source/ui/view/tabvwsha.cxx +++ b/sc/source/ui/view/tabvwsha.cxx @@ -254,7 +254,7 @@ void ScTabViewShell::GetState( SfxItemSet& rSet ) SearchOptionFlags nOptions = SearchOptionFlags::ALL; // No replacement if ReadOnly -if (GetViewData().GetDocShell()->IsReadOnly()) +if (GetViewData().GetDocShell()->IsReadOnly() || IsCurrentLokViewReadOnly()) nOptions &= ~SearchOptionFlags( SearchOptionFlags::REPLACE | SearchOptionFlags::REPLACE_ALL ); rSet.Put( SfxUInt16Item( nWhich, static_cast(nOptions) ) ); } diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx index 834de4941159..d1c4d1c0b091 100644 --- a/sd/source/ui/docshell/docshell.cxx +++ b/sd/source/ui/docshell/docshell.cxx @@ -241,7 +241,7 @@ void DrawDocShell::GetState(SfxItemSet &rSet) SearchOptionFlags::SIMILARITY | SearchOptionFlags::SELECTION; -if (!IsReadOnly()) +if (!IsReadOnly() && !SfxViewShell::IsCurrentLokViewReadOnly()) { nOpt |= SearchOptionFlags::REPLACE; nOpt |= SearchOptionFlags::REPLACE_ALL; diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi index 2952289293cf..c07d4bbf7a83 100644 --- a/sfx2/sdi/sfx.sdi +++ b/sfx2/sdi/sfx.sdi @@ -4002,7 +4002,7 @@ SfxBoolItem SearchDialog SID_SEARCH_DLG [ AutoUpdate = TRUE, FastCall = FALSE, -ReadOnlyDoc = FALSE, +ReadOnlyDoc = TRUE, Toggle = FALSE, Container = FALSE, RecordAbsolute = FALSE, diff --git a/sw/source/uibase/uiview/viewsrch.cxx b/sw/source/uibase/uiview/viewsrch.cxx index 8234cf5501af..1944f1f40ca3 100644 --- a/sw/source/uibase/uiview/viewsrch.cxx +++ b/sw/source/uibase/uiview/viewsrch.cxx @@ -869,7 +869,7 @@ void SwView::StateSearch(SfxItemSet &rSet) case SID_SEARCH_OPTIONS: { SearchOptionFlags nOpt = SearchOptionFlags::ALL; -if( GetDocShell()->IsReadOnly() ) +if (GetDocShell()->IsReadOnly() || IsCurrentLokViewReadOnly()) nOpt &= ~SearchOptionFlags( SearchOptionFlags::REPLACE | SearchOptionFlags::REPLACE_ALL ); rSet.Put( SfxUInt16Item( SID_SEARCH_OPTIONS, static_cast(nOpt) ));
core.git: download.lst external/lcms2
download.lst|4 +-- external/lcms2/0001-Added-missing-export.patch.1| 25 --- external/lcms2/ExternalPackage_lcms2.mk |2 - external/lcms2/UnpackedTarball_lcms2.mk |4 --- external/lcms2/lcms2-windows_aarch64_outdir.patch.1 | 26 5 files changed, 3 insertions(+), 58 deletions(-) New commits: commit e52899ed08405f67ea755271a2592ed0df516c77 Author: Xisco Fauli AuthorDate: Mon Feb 10 10:52:43 2025 +0100 Commit: Xisco Fauli CommitDate: Tue Feb 11 11:09:52 2025 +0100 lcms2: upgrade to 2.17 * external/lcms2/0001-Added-missing-export.patch.1 has been fixed uptream * external/lcms2/lcms2-windows_aarch64_outdir.patch.1 has been fixed upstream Downloaded from https://sourceforge.net/projects/lcms/files/lcms/2.17/lcms2-2.17.tar.gz/download Change-Id: Iae97a557f153279582878c8eb94dc2fab75b658d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181340 Reviewed-by: Xisco Fauli Tested-by: Jenkins diff --git a/download.lst b/download.lst index c18cd6d64a7d..9fa191045967 100644 --- a/download.lst +++ b/download.lst @@ -399,8 +399,8 @@ LANGTAGREG_TARBALL := language-subtag-registry-2025-02-06.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts -LCMS2_SHA256SUM := d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51 -LCMS2_TARBALL := lcms2-2.16.tar.gz +LCMS2_SHA256SUM := d11af569e42a1baa1650d20ad61d12e41af4fead4aa7964a01f93b08b53ab074 +LCMS2_TARBALL := lcms2-2.17.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/lcms2/0001-Added-missing-export.patch.1 b/external/lcms2/0001-Added-missing-export.patch.1 deleted file mode 100644 index ad131e9533d3.. --- a/external/lcms2/0001-Added-missing-export.patch.1 +++ /dev/null @@ -1,25 +0,0 @@ -From f7b3c637c20508655f8b49935a4b556d52937b69 Mon Sep 17 00:00:00 2001 -From: Dirk Lemstra -Date: Sun, 10 Dec 2023 20:31:32 +0100 -Subject: [PATCH] Added missing export. - - src/cmsvirt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/cmsvirt.c b/src/cmsvirt.c -index 3d662b2..6615604 100644 a/src/cmsvirt.c -+++ b/src/cmsvirt.c -@@ -676,7 +676,7 @@ cmsHPROFILE CMSEXPORT cmsCreate_sRGBProfile(void) - * - * This virtual profile cannot be saved as an ICC file - */ --cmsHPROFILE cmsCreate_OkLabProfile(cmsContext ctx) -+cmsHPROFILE CMSEXPORT cmsCreate_OkLabProfile(cmsContext ctx) - { - cmsStage* XYZPCS = _cmsStageNormalizeFromXyzFloat(ctx); - cmsStage* PCSXYZ = _cmsStageNormalizeToXyzFloat(ctx); --- -2.44.0.windows.1 - diff --git a/external/lcms2/ExternalPackage_lcms2.mk b/external/lcms2/ExternalPackage_lcms2.mk index 62e2ebad8981..a71b31ef7395 100644 --- a/external/lcms2/ExternalPackage_lcms2.mk +++ b/external/lcms2/ExternalPackage_lcms2.mk @@ -17,7 +17,7 @@ $(eval $(call gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/liblcms2.2.dy else ifeq ($(COM),MSC) $(eval $(call gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/lcms2.dll,bin/lcms2.dll)) else -$(eval $(call gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/liblcms2.so.2,src/.libs/liblcms2.so.2.0.16)) +$(eval $(call gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/liblcms2.so.2,src/.libs/liblcms2.so.2.0.17)) endif endif # $(DISABLE_DYNLOADING) diff --git a/external/lcms2/UnpackedTarball_lcms2.mk b/external/lcms2/UnpackedTarball_lcms2.mk index f44683e03809..f99fc708a33e 100644 --- a/external/lcms2/UnpackedTarball_lcms2.mk +++ b/external/lcms2/UnpackedTarball_lcms2.mk @@ -20,12 +20,8 @@ ifneq ($(MSYSTEM),) $(eval $(call gb_UnpackedTarball_set_patchflags,lcms2,--binary)) endif -# external/lcms2/0001-Added-missing-export.patch.1: -# backport of https://github.com/mm2/Little-CMS/commit/f7b3c637c20508655f8b49935a4b556d52937b69 $(eval $(call gb_UnpackedTarball_add_patches,lcms2,\ - external/lcms2/0001-Added-missing-export.patch.1 \ external/lcms2/lcms2-2.4-windows.patch \ - external/lcms2/lcms2-windows_aarch64_outdir.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/lcms2/lcms2-windows_aarch64_outdir.patch.1 b/external/lcms2/lcms2-windows_aarch64_outdir.patch.1 deleted file mode 100644 index aa27b1b77923.. --- a/external/lcms2/lcms2-windows_aarch64_outdir.patch.1 +++ /dev/null @@ -1,26 +0,0 @@ -diff -ur lcms2.org/Projects/VC2019/lcms2_DLL/lcms2_DLL.vcxproj lcms2/Projects/VC2019/lcms2_DLL/lcms2_DLL.vcxproj lcms2.org/Projects/VC2019/lcms2_DLL/lcms2_DLL.vcxproj 2023-12-08 18:49:59.819483000 +0100 -+++ lcms2/Projects/VC2019/lcms2_DLL/lcms2_DLL.vcxproj 2023-12-08 18:50:59.460115500 +0100 -@@ -92,6 +92,7 @@ - <_ProjectFileVersion>10.0.21006.1 - ..\..\..in\ - ..\..\..in\ -+..\..\..in\ - $(Configuration)_$(Platform)\ - $(Configuration)_$(Platform)\ - $(Configuration)_$(Platf
core.git: include/svx svx/source
include/svx/galctrl.hxx |6 +++--- svx/source/gallery2/galctrl.cxx | 12 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) New commits: commit fb8bf5f209e1bd7fd7d8ad555ec66dbf31649ee8 Author: Miklos Vajna AuthorDate: Tue Feb 11 08:08:50 2025 +0100 Commit: Miklos Vajna CommitDate: Tue Feb 11 09:11:33 2025 +0100 svx: prefix members of DialogGalleryPreview See tdf#94879 for motivation. Change-Id: I2ddf9dfcd65ae44852fc17d97d634c5382d296b3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181400 Reviewed-by: Miklos Vajna Tested-by: Jenkins diff --git a/include/svx/galctrl.hxx b/include/svx/galctrl.hxx index 4e35d5aaae3d..43e3b3673bea 100644 --- a/include/svx/galctrl.hxx +++ b/include/svx/galctrl.hxx @@ -69,8 +69,8 @@ public: class SVXCORE_DLLPUBLIC DialogGalleryPreview final : public weld::CustomWidgetController { private: -GraphicObject aGraphicObj; -tools::Rectangle aPreviewRect; +GraphicObject maGraphicObj; +tools::Rectangle maPreviewRect; SVX_DLLPRIVATE bool ImplGetGraphicCenterRect( const Graphic& rGraphic, tools::Rectangle& rResultRect ) const; @@ -81,7 +81,7 @@ public: DialogGalleryPreview(); virtual voidSetDrawingArea(weld::DrawingArea* pDrawingArea) override; -voidSetGraphic( const Graphic& rGraphic ) { aGraphicObj.SetGraphic( rGraphic ); } +voidSetGraphic( const Graphic& rGraphic ) { maGraphicObj.SetGraphic( rGraphic ); } boolSetGraphic( const INetURLObject& ); }; diff --git a/svx/source/gallery2/galctrl.cxx b/svx/source/gallery2/galctrl.cxx index 4e33db6d8267..a6b916beb472 100644 --- a/svx/source/gallery2/galctrl.cxx +++ b/svx/source/gallery2/galctrl.cxx @@ -258,15 +258,15 @@ void DialogGalleryPreview::Paint(vcl::RenderContext& rRenderContext, const tools { rRenderContext.SetBackground(Wallpaper(GALLERY_BG_COLOR)); -if (ImplGetGraphicCenterRect(aGraphicObj.GetGraphic(), aPreviewRect)) +if (ImplGetGraphicCenterRect(maGraphicObj.GetGraphic(), maPreviewRect)) { -const Point aPos( aPreviewRect.TopLeft() ); -const Size aSize( aPreviewRect.GetSize() ); +const Point aPos( maPreviewRect.TopLeft() ); +const Size aSize( maPreviewRect.GetSize() ); -if( aGraphicObj.IsAnimated() ) -aGraphicObj.StartAnimation(rRenderContext, aPos, aSize); +if( maGraphicObj.IsAnimated() ) +maGraphicObj.StartAnimation(rRenderContext, aPos, aSize); else -aGraphicObj.Draw(rRenderContext, aPos, aSize); +maGraphicObj.Draw(rRenderContext, aPos, aSize); } }
core.git: Branch 'libreoffice-25-2' - sw/source
sw/source/core/objectpositioning/anchoredobjectposition.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 45d640fcf5b473acec55ef45503aa56b998c3b8b Author: Justin Luth AuthorDate: Mon Feb 10 16:37:10 2025 -0500 Commit: Michael Stahl CommitDate: Tue Feb 11 10:06:53 2025 +0100 tdf#165040 tdf#143899 compat15 layout: restrict body fly #2 What was happening was that layout was considering whether to put the fly on a different page than the anchor, and my 25.2 commit 1de6bea27ed36167ec138818607da7b49e92ec4a apparently caused layout to accept that location in some cases, in which case it wasn't visible at all... Now, I'm not going to pretend that I actually understand LAYOUT at all, but my patch was only intending to affect the image in relation to the same page as the anchor is. So forcing that as a criteria seems to get me out of hot water. Since this is just bits-on-a-screen in some random kind of I'd-like-to-stick-myself-on-a-different-page layout anomaly and I don't have any nice changes-page-count examples, I'm not going to try to add a unit test. Change-Id: I84b980f109016ae6d904fb3720f77e131197b6a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181391 Tested-by: Jenkins Reviewed-by: Justin Luth (cherry picked from commit 95b173d41fa7a450821d0e69225df3faa899d290) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181396 Reviewed-by: Michael Stahl diff --git a/sw/source/core/objectpositioning/anchoredobjectposition.cxx b/sw/source/core/objectpositioning/anchoredobjectposition.cxx index c2a4797e..fffa50e1948e 100644 --- a/sw/source/core/objectpositioning/anchoredobjectposition.cxx +++ b/sw/source/core/objectpositioning/anchoredobjectposition.cxx @@ -495,7 +495,7 @@ SwTwips SwAnchoredObjectPosition::ImplAdjustVertRelPos( const SwTwips nTopOfAnch const SwBodyFrame* pBodyFrame = mpAnchorFrame->FindBodyFrame(); while (pBodyFrame && !pBodyFrame->IsPageBodyFrame()) pBodyFrame = pBodyFrame->GetUpper()->FindBodyFrame(); -if (pBodyFrame) +if (pBodyFrame && pBodyFrame->GetUpper() == &rPageFrame) // same physical page... aPgAlignArea = pBodyFrame->getFrameArea(); } }
core.git: Branch 'distro/collabora/co-24.04' - sc/source sd/source sfx2/sdi sw/source
sc/source/ui/view/tabvwsha.cxx |2 +- sd/source/ui/docshell/docshell.cxx |2 +- sfx2/sdi/sfx.sdi |2 +- sw/source/uibase/uiview/viewsrch.cxx |2 +- 4 files changed, 4 insertions(+), 4 deletions(-) New commits: commit 60861c131d0bbc6e45d235f09c8c3d8c1bd69b0a Author: Mike Kaganski AuthorDate: Tue Feb 11 14:24:40 2025 +0500 Commit: Andras Timar CommitDate: Tue Feb 11 11:40:50 2025 +0100 tdf#165185: consider LOK read-only view in SID_SEARCH_OPTIONS This reverts commit cae3ed92df74672a886ee706ebb970a763be3712 "disable invoking Search and Replace dialog (by Ctrl+H) in read-only documents", 2025-02-11. Instead, the dialog will disable replacement controls. Change-Id: Iefef1f636492f60b2bcff07379c2c2dc7bcead79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181412 Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx index ead308730fd9..ddd94926303a 100644 --- a/sc/source/ui/view/tabvwsha.cxx +++ b/sc/source/ui/view/tabvwsha.cxx @@ -255,7 +255,7 @@ void ScTabViewShell::GetState( SfxItemSet& rSet ) SearchOptionFlags nOptions = SearchOptionFlags::ALL; // No replacement if ReadOnly -if (GetViewData().GetDocShell()->IsReadOnly()) +if (GetViewData().GetDocShell()->IsReadOnly() || IsCurrentLokViewReadOnly()) nOptions &= ~SearchOptionFlags( SearchOptionFlags::REPLACE | SearchOptionFlags::REPLACE_ALL ); rSet.Put( SfxUInt16Item( nWhich, static_cast(nOptions) ) ); } diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx index 5ac592f80be3..6dae05250ba1 100644 --- a/sd/source/ui/docshell/docshell.cxx +++ b/sd/source/ui/docshell/docshell.cxx @@ -241,7 +241,7 @@ void DrawDocShell::GetState(SfxItemSet &rSet) SearchOptionFlags::SIMILARITY | SearchOptionFlags::SELECTION; -if (!IsReadOnly()) +if (!IsReadOnly() && !SfxViewShell::IsCurrentLokViewReadOnly()) { nOpt |= SearchOptionFlags::REPLACE; nOpt |= SearchOptionFlags::REPLACE_ALL; diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi index 7318b659c292..ad4a5a5b4189 100644 --- a/sfx2/sdi/sfx.sdi +++ b/sfx2/sdi/sfx.sdi @@ -3968,7 +3968,7 @@ SfxBoolItem SearchDialog SID_SEARCH_DLG [ AutoUpdate = TRUE, FastCall = FALSE, -ReadOnlyDoc = FALSE, +ReadOnlyDoc = TRUE, Toggle = FALSE, Container = FALSE, RecordAbsolute = FALSE, diff --git a/sw/source/uibase/uiview/viewsrch.cxx b/sw/source/uibase/uiview/viewsrch.cxx index 5fc92d517b1b..1b2b64d1d460 100644 --- a/sw/source/uibase/uiview/viewsrch.cxx +++ b/sw/source/uibase/uiview/viewsrch.cxx @@ -855,7 +855,7 @@ void SwView::StateSearch(SfxItemSet &rSet) case SID_SEARCH_OPTIONS: { SearchOptionFlags nOpt = SearchOptionFlags::ALL; -if( GetDocShell()->IsReadOnly() ) +if (GetDocShell()->IsReadOnly() || IsCurrentLokViewReadOnly()) nOpt &= ~SearchOptionFlags( SearchOptionFlags::REPLACE | SearchOptionFlags::REPLACE_ALL ); rSet.Put( SfxUInt16Item( SID_SEARCH_OPTIONS, static_cast(nOpt) ));
core.git: Branch 'distro/collabora/co-25.04' - sc/source sd/source sfx2/sdi sw/source
sc/source/ui/view/tabvwsha.cxx |2 +- sd/source/ui/docshell/docshell.cxx |2 +- sfx2/sdi/sfx.sdi |2 +- sw/source/uibase/uiview/viewsrch.cxx |2 +- 4 files changed, 4 insertions(+), 4 deletions(-) New commits: commit 7270173d1f891c30d95e04aa538da636ce9e66fb Author: Mike Kaganski AuthorDate: Tue Feb 11 14:24:40 2025 +0500 Commit: Andras Timar CommitDate: Tue Feb 11 11:41:23 2025 +0100 tdf#165185: consider LOK read-only view in SID_SEARCH_OPTIONS This reverts commit cae3ed92df74672a886ee706ebb970a763be3712 "disable invoking Search and Replace dialog (by Ctrl+H) in read-only documents", 2025-02-11. Instead, the dialog will disable replacement controls. Change-Id: Iefef1f636492f60b2bcff07379c2c2dc7bcead79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181412 Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar (cherry picked from commit 60861c131d0bbc6e45d235f09c8c3d8c1bd69b0a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181416 Tested-by: Andras Timar diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx index 63e930928439..bca95efa1494 100644 --- a/sc/source/ui/view/tabvwsha.cxx +++ b/sc/source/ui/view/tabvwsha.cxx @@ -254,7 +254,7 @@ void ScTabViewShell::GetState( SfxItemSet& rSet ) SearchOptionFlags nOptions = SearchOptionFlags::ALL; // No replacement if ReadOnly -if (GetViewData().GetDocShell()->IsReadOnly()) +if (GetViewData().GetDocShell()->IsReadOnly() || IsCurrentLokViewReadOnly()) nOptions &= ~SearchOptionFlags( SearchOptionFlags::REPLACE | SearchOptionFlags::REPLACE_ALL ); rSet.Put( SfxUInt16Item( nWhich, static_cast(nOptions) ) ); } diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx index 834de4941159..d1c4d1c0b091 100644 --- a/sd/source/ui/docshell/docshell.cxx +++ b/sd/source/ui/docshell/docshell.cxx @@ -241,7 +241,7 @@ void DrawDocShell::GetState(SfxItemSet &rSet) SearchOptionFlags::SIMILARITY | SearchOptionFlags::SELECTION; -if (!IsReadOnly()) +if (!IsReadOnly() && !SfxViewShell::IsCurrentLokViewReadOnly()) { nOpt |= SearchOptionFlags::REPLACE; nOpt |= SearchOptionFlags::REPLACE_ALL; diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi index 2952289293cf..c07d4bbf7a83 100644 --- a/sfx2/sdi/sfx.sdi +++ b/sfx2/sdi/sfx.sdi @@ -4002,7 +4002,7 @@ SfxBoolItem SearchDialog SID_SEARCH_DLG [ AutoUpdate = TRUE, FastCall = FALSE, -ReadOnlyDoc = FALSE, +ReadOnlyDoc = TRUE, Toggle = FALSE, Container = FALSE, RecordAbsolute = FALSE, diff --git a/sw/source/uibase/uiview/viewsrch.cxx b/sw/source/uibase/uiview/viewsrch.cxx index 8234cf5501af..1944f1f40ca3 100644 --- a/sw/source/uibase/uiview/viewsrch.cxx +++ b/sw/source/uibase/uiview/viewsrch.cxx @@ -869,7 +869,7 @@ void SwView::StateSearch(SfxItemSet &rSet) case SID_SEARCH_OPTIONS: { SearchOptionFlags nOpt = SearchOptionFlags::ALL; -if( GetDocShell()->IsReadOnly() ) +if (GetDocShell()->IsReadOnly() || IsCurrentLokViewReadOnly()) nOpt &= ~SearchOptionFlags( SearchOptionFlags::REPLACE | SearchOptionFlags::REPLACE_ALL ); rSet.Put( SfxUInt16Item( SID_SEARCH_OPTIONS, static_cast(nOpt) ));
core.git: filter/source
filter/source/config/fragments/types/impress_OOXML_Presentation.xcu | 2 +- filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu | 2 +- filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) New commits: commit d4c7b78827c12c4bbc871c3b9eb0ce28271adba4 Author: Aron Budea AuthorDate: Tue Feb 11 11:39:07 2025 +1030 Commit: Aron Budea CommitDate: Tue Feb 11 18:23:46 2025 +0100 tdf#165180 convert-to: prefer PowerPoint 2007-365, not Office Open XML I haven't seen it causing an actual issue so far, but let's use the correct filter. Similar rationale as c90c1d4435a64531e1d9b41d0a8dc0b91ba236cd. Change-Id: I2afd686db6f41b385214c274e47d293ef546b901 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181398 Tested-by: Jenkins Reviewed-by: Aron Budea diff --git a/filter/source/config/fragments/types/impress_OOXML_Presentation.xcu b/filter/source/config/fragments/types/impress_OOXML_Presentation.xcu index 6264ce716787..ac15128781f8 100644 --- a/filter/source/config/fragments/types/impress_OOXML_Presentation.xcu +++ b/filter/source/config/fragments/types/impress_OOXML_Presentation.xcu @@ -20,7 +20,7 @@ pptx pptm application/vnd.openxmlformats-officedocument.presentationml.presentation -true +false Impress Office Open XML Office Open XML Presentation diff --git a/filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu b/filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu index 78c638daedf6..5a1cd6860564 100644 --- a/filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu +++ b/filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu @@ -20,7 +20,7 @@ ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow -true +false Impress Office Open XML AutoPlay Office Open XML Presentation AutoPlay diff --git a/filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu b/filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu index c34d39541b8c..d858d9ff8d8c 100644 --- a/filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu +++ b/filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu @@ -20,7 +20,7 @@ potx potm application/vnd.openxmlformats-officedocument.presentationml.template -true +false Impress Office Open XML Template Office Open XML Presentation Template
core.git: sw/qa sw/source
sw/qa/extras/layout/data/tdf164499.docx |binary sw/qa/extras/layout/layout3.cxx | 28 +++- sw/source/core/text/portxt.cxx |2 ++ 3 files changed, 25 insertions(+), 5 deletions(-) New commits: commit ed7fbfce0b434f7d2a5542483d2838af51958e34 Author: László Németh AuthorDate: Tue Feb 11 01:22:42 2025 +0100 Commit: László Németh CommitDate: Tue Feb 11 18:26:23 2025 +0100 tdf#164499 sw smart justify: disable in tabulated lines to fix ToC Calculated extra text content without shrinking resulted overhanging text lines, e.g page numbers over the margin in ToC. Fix it by skipping space shrinking completely in tabulated lines, restoring also interoperability. Regression since commit 53de98b29548ded88e0a44c80256fc5e340d551e "tdf#158333 sw smart justify: fix multiple text portions". Change-Id: I390a254b8a47c6563d2c01a2f818f5ac6122e2ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181397 Tested-by: Jenkins Reviewed-by: László Németh diff --git a/sw/qa/extras/layout/data/tdf164499.docx b/sw/qa/extras/layout/data/tdf164499.docx new file mode 100644 index ..d970bb29affa Binary files /dev/null and b/sw/qa/extras/layout/data/tdf164499.docx differ diff --git a/sw/qa/extras/layout/layout3.cxx b/sw/qa/extras/layout/layout3.cxx index af6dac583f29..5460eae5199a 100644 --- a/sw/qa/extras/layout/layout3.cxx +++ b/sw/qa/extras/layout/layout3.cxx @@ -479,12 +479,10 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf161810) auto pTextArrayAction = static_cast(pAction); auto pDXArray = pTextArrayAction->GetDXArray(); -// There should be 73 chars on the first line -CPPUNIT_ASSERT_EQUAL(size_t(73), pDXArray.size()); +// There should be 70 chars on the first line +// (tdf#164499 no space shrinking in lines with tabulation) +CPPUNIT_ASSERT_EQUAL(size_t(70), pDXArray.size()); -// Assert we are using the expected position for the last char -// This was 9369, now 9165, according to the fixed space shrinking -CPPUNIT_ASSERT_LESS(sal_Int32(9300), sal_Int32(pDXArray[72])); break; } } @@ -535,6 +533,26 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf163149) } } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf164499) +{ +createSwDoc("tdf164499.docx"); + +// Ensure that all text portions are calculated before testing. +SwViewShell* pViewShell = getSwDoc()->getIDocumentLayoutAccess().GetCurrentViewShell(); +CPPUNIT_ASSERT(pViewShell); +pViewShell->Reformat(); + +xmlDocUniquePtr pXmlDoc = parseLayoutDump(); + +// no shrinking in tabulated text lines + +// This was 1 (no line break in heading 2.5.5) +assertXPath(pXmlDoc, "/root/page[1]/body/section/txt[18]/SwParaPortion/SwLineLayout", 2); +// line break in heading 2.5.5: the second line contains only the page number +assertXPath(pXmlDoc, "/root/page[1]/body/section/txt[18]/SwParaPortion/SwLineLayout[2]", +"portion", u"*1"); +} + CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf132599_always) { uno::Reference xHyphenator = LinguMgr::GetHyphenator(); diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx index ff8f05e28197..8f453531d4f3 100644 --- a/sw/source/core/text/portxt.cxx +++ b/sw/source/core/text/portxt.cxx @@ -333,6 +333,8 @@ bool SwTextPortion::Format_( SwTextFormatInfo &rInf ) pGuess->BreakPos() != TextFrameIndex(COMPLETE_STRING) && rInf.GetTextFrame()->GetDoc().getIDocumentSettingAccess().get( DocumentSettingId::JUSTIFY_LINES_WITH_SHRINKING) && + // tdf#164499 no shrinking in tabulated line + ( !rInf.GetLast() || !rInf.GetLast()->InTabGrp() ) && // tdf#158436 avoid shrinking at underflow, e.g. no-break space after a // very short word resulted endless loop !rInf.IsUnderflow() )
core.git: Branch 'distro/collabora/co-25.04' - 4 commits - cui/source desktop/source include/sfx2 include/svx sd/sdi sd/source sfx2/source svx/sdi svx/source xmlsecurity/source
cui/source/dialogs/SignSignatureLineDialog.cxx |2 desktop/source/lib/init.cxx| 14 ++ include/sfx2/digitalsignatures.hxx |8 + include/sfx2/objsh.hxx |2 include/svx/signaturelinehelper.hxx|3 sd/sdi/_drvwsh.sdi |1 sd/source/ui/func/fuconrec.cxx |1 sd/source/ui/view/drviewse.cxx | 38 ++ sfx2/source/doc/objserv.cxx| 74 - svx/sdi/svx.sdi|2 svx/source/dialog/signaturelinehelper.cxx |9 + svx/source/svdraw/svdedtv1.cxx | 11 + xmlsecurity/source/component/documentdigitalsignatures.cxx | 29 +++-- 13 files changed, 150 insertions(+), 44 deletions(-) New commits: commit 817b1c6a5cbf266f77049a0e9c26b882f5e1bd2c Author: Miklos Vajna AuthorDate: Wed Jan 8 09:42:53 2025 +0100 Commit: Miklos Vajna CommitDate: Tue Feb 11 13:50:16 2025 +0100 cool#10630 lok doc sign: allow setting the pos of the Impress sign line Open a PDF in LOK mode, insert a signature line, try to drag the selected signature widget/shape, nothing happens. Given that the inserted shape has a default position at page center, you typically want to adjust that default position, but that requires adding a few exceptions, since PDFs are normally read-only. Desktop Impress gets around this since commit 5d296183072dc7cfe7a9985c38388b56f37d873c (sd signature line: allow move / resize of shape before signing, 2020-06-26), but LOK clients want to rather dispatch an UNO command (instead of handling this in the mouse event handler), so this requires additional work. A first problem is in isCommandAllowed() in desktop/ that explicitly rejects the UNO command for read-only documents: allow this when a signature widget is selected. A second problem is in SdrEditView::SetGeoAttrToMarked(), check for the signature widget there as well. Given that the implementation of .uno:TransformDialog already has a set of flags to prevent doing anything for read-only documents, it looks safe to allow the execution of the command itself. The size of the widget should be also possible to modify, that's not yet done here. Change-Id: I92a60717e98ac33f7a1eb9770cd0c7903f60759c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180049 Reviewed-by: Miklos Vajna Tested-by: Jenkins diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index fa273ea8de8d..1d6fbc1be272 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -5143,13 +5143,23 @@ static bool isCommandAllowed(OUString& command) { return true; else { -if (command == u".uno:Save"_ustr && SfxViewShell::Current() && SfxViewShell::Current()->IsAllowChangeComments()) +SfxViewShell* pViewShell = SfxViewShell::Current(); +if (command == u".uno:Save"_ustr && pViewShell && pViewShell->IsAllowChangeComments()) return true; for (size_t i = 0; i < std::size(nonAllowedList); i++) { if (nonAllowedList[i] == command) -return false; +{ +bool bRet = false; +if (pViewShell && command == u".uno:TransformDialog"_ustr) +{ +// If the just added signature line shape is selected, allow moving it. +SfxObjectShell* pDocShell = pViewShell->GetObjectShell(); +bRet = pDocShell->GetSignPDFCertificate().is(); +} +return bRet; +} } return true; } diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi index 23767a837e9f..917d369ac8fc 100644 --- a/sd/sdi/_drvwsh.sdi +++ b/sd/sdi/_drvwsh.sdi @@ -236,6 +236,7 @@ interface DrawView [ ExecMethod = FuTemporary ; StateMethod = GetMenuState ; +ReadOnlyDoc = TRUE ; ] SID_ATTR_TRANSFORM_WIDTH // ole : no, status : ? diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx index acf0b6885028..00034815fb7b 100644 --- a/svx/source/svdraw/svdedtv1.cxx +++ b/svx/source/svdraw/svdedtv1.cxx @@ -69,6 +69,7 @@ #include #include #include +#include // EditView @@ -1825,7 +1826,15 @@ void SdrEditView::SetGeoAttrToMarked(const SfxItemSet& rAttr, bool addPageMargin } // change position -if (bChgPos && m_bMoveAllowed) { +bool bMoveAllowed = m_bMoveAllowed; +SfxViewShell* pViewShell = GetSfxViewShell(); +SfxObjectShell* pObjectShell = pViewShell ? pViewShell->GetObjectShell() : nullptr; +if (!bMoveAllowed && pObjectShell && pObjectShell->GetSignPDFCertificate
core.git: Branch 'libreoffice-25-2' - sc/qa sc/source
sc/qa/unit/data/xlsx/sortconditionref2.xlsx |binary sc/qa/unit/subsequent_export_test2.cxx | 13 + sc/source/filter/oox/autofilterbuffer.cxx |2 +- 3 files changed, 14 insertions(+), 1 deletion(-) New commits: commit c0f04f9827a614aa6fb0e3847e21e31597bfd716 Author: Gülşah Köse AuthorDate: Fri Feb 7 16:05:16 2025 +0300 Commit: Xisco Fauli CommitDate: Tue Feb 11 15:03:32 2025 +0100 Fix wrong detection of sortCondition reference Signed-off-by: Gülşah Köse Change-Id: I877ede71f9487ba35efd7da6a954560272cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181344 Reviewed-by: Szymon Kłos Tested-by: Jenkins (cherry picked from commit 641fd154649edfb3fe1dad89f833f2e48caf41d7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181404 Reviewed-by: Xisco Fauli diff --git a/sc/qa/unit/data/xlsx/sortconditionref2.xlsx b/sc/qa/unit/data/xlsx/sortconditionref2.xlsx new file mode 100644 index ..748e894ac0a7 Binary files /dev/null and b/sc/qa/unit/data/xlsx/sortconditionref2.xlsx differ diff --git a/sc/qa/unit/subsequent_export_test2.cxx b/sc/qa/unit/subsequent_export_test2.cxx index 4f705abe5a7e..485221cc8b2c 100644 --- a/sc/qa/unit/subsequent_export_test2.cxx +++ b/sc/qa/unit/subsequent_export_test2.cxx @@ -432,6 +432,19 @@ CPPUNIT_TEST_FIXTURE(ScExportTest2, testSortConditionRef) assertXPath(pDoc, "//x:worksheet/x:autoFilter/x:sortState/x:sortCondition", "ref", u"B3:B2"); } +CPPUNIT_TEST_FIXTURE(ScExportTest2, testSortConditionRef2) +{ +// Ascending sortCondition reference detected wrong without fix. +//- Expected: A11:A300 +//- Actual : J11:J300 +//- In <>, attribute 'ref' of '//x:worksheet/x:autoFilter/x:sortState/x:sortCondition' incorrect value. +createScDoc("xlsx/sortconditionref2.xlsx"); +save("Calc Office Open XML"); +xmlDocUniquePtr pDoc = parseExport("xl/worksheets/sheet1.xml"); + +assertXPath(pDoc, "//x:worksheet/x:autoFilter/x:sortState/x:sortCondition", "ref", u"A11:A300"); +} + CPPUNIT_TEST_FIXTURE(ScExportTest2, testDateAutofilterXLSX) { // XLSX Roundtripping autofilter with date list diff --git a/sc/source/filter/oox/autofilterbuffer.cxx b/sc/source/filter/oox/autofilterbuffer.cxx index 1d7b7ffb0d70..dcf8da5fdc9d 100644 --- a/sc/source/filter/oox/autofilterbuffer.cxx +++ b/sc/source/filter/oox/autofilterbuffer.cxx @@ -846,7 +846,7 @@ void AutoFilter::finalizeImport( const Reference< XDatabaseRange >& rxDatabaseRa if (!aParam.bUserDef) return; -SCCOLROW nStartPos = aParam.bByRow ? maRange.aStart.Col() : maRange.aStart.Row(); +SCCOLROW nStartPos = aParam.bByRow ? maRange.aStart.Row() : maRange.aStart.Col(); // descending sort - need to enable 1st SortParam slot if (rSorConditionLoaded.mbDescending) assert(aParam.GetSortKeyCount() == DEFSORT);
core.git: comphelper/source desktop/source include/comphelper sw/qa sw/source
comphelper/source/misc/lok.cxx | 15 + desktop/source/lib/init.cxx | 15 + include/comphelper/lok.hxx |8 +++ sw/qa/extras/tiledrendering/data/3pages.odt |binary sw/qa/extras/tiledrendering/tiledrendering2.cxx | 26 sw/source/core/view/vnew.cxx|9 6 files changed, 73 insertions(+) New commits: commit 5300efbbb13c73d7d5d17cd9834f9cb118657915 Author: Miklos Vajna AuthorDate: Fri Feb 7 14:09:22 2025 +0100 Commit: Miklos Vajna CommitDate: Tue Feb 11 16:48:27 2025 +0100 cool#11064 sw lok: allow specifying the visible area during doc load Large enough documents significantly faster on the desktop than in LOK mode for some reason. Investigating the reason, it turns out that the layout mechanism to layout the visible area (first page, typically) of the document as part of doc load goes wrong in the LOK case, where nominally the entire document is visible. Fix the problem by adding new "ClientVisibleArea" option to lo_documentLoadWithOptions(), so the LOK client can inform us about what is the visible area before SwXTextDocument::setClientVisibleArea() can be called. lok::Office::documentLoad() cost for the bugdoc: - before: 540 ms - after: 112 ms Change-Id: Ib1df71e768fc42cf92b858a717d7a0e5d51678b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181426 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/comphelper/source/misc/lok.cxx b/comphelper/source/misc/lok.cxx index b3ac3ce79420..7d4ca7536b4b 100644 --- a/comphelper/source/misc/lok.cxx +++ b/comphelper/source/misc/lok.cxx @@ -8,12 +8,17 @@ */ #include + +#include + #include #include #include #include +using namespace com::sun::star; + namespace comphelper::LibreOfficeKit { @@ -43,6 +48,9 @@ static void* g_pAnyInputCallbackData; static std::function g_pViewSetter; static std::function g_pViewGetter; +/// Visible area of the first view during document load. +static awt::Rectangle g_aInitialClientVisibleArea; + namespace { @@ -370,6 +378,13 @@ int getView() return g_pViewGetter(); } +void setInitialClientVisibleArea(const awt::Rectangle& rClientVisibleArea) +{ +g_aInitialClientVisibleArea = rClientVisibleArea; +} + +awt::Rectangle getInitialClientVisibleArea() { return g_aInitialClientVisibleArea; } + } // namespace /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index ea70d1f186b2..4e9977d27418 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -2880,6 +2880,21 @@ static LibreOfficeKitDocument* lo_documentLoadWithOptions(LibreOfficeKit* pThis, } SvtSecurityOptions::SetMacroSecurityLevel(nMacroSecurityLevel); +OUString aClientVisibleArea = extractParameter(aOptions, u"ClientVisibleArea"); +if (!aClientVisibleArea.isEmpty()) +{ +std::vector aTokens = comphelper::string::split(aClientVisibleArea, ';'); +if (aTokens.size() >= 4) +{ +awt::Rectangle aRectangle; +aRectangle.X = aTokens[0].toInt32(); +aRectangle.Y = aTokens[1].toInt32(); +aRectangle.Width = aTokens[2].toInt32(); +aRectangle.Height = aTokens[3].toInt32(); + comphelper::LibreOfficeKit::setInitialClientVisibleArea(aRectangle); +} +} + #if defined(ANDROID) && HAVE_FEATURE_ANDROID_LOK sal_Int16 nMacroExecMode = document::MacroExecMode::USE_CONFIG; #else diff --git a/include/comphelper/lok.hxx b/include/comphelper/lok.hxx index 0dd5fbdb2f23..e222690c7e30 100644 --- a/include/comphelper/lok.hxx +++ b/include/comphelper/lok.hxx @@ -16,6 +16,10 @@ #include class LanguageTag; +namespace com::sun::star::awt +{ +struct Rectangle; +} // Interface between the LibreOfficeKit implementation called by LibreOfficeKit clients and other // LibreOffice code. @@ -144,6 +148,10 @@ COMPHELPER_DLLPUBLIC void setViewSetter(const std::function& pViewSet COMPHELPER_DLLPUBLIC void setView(int nView); COMPHELPER_DLLPUBLIC void setViewGetter(const std::function& pViewGetter); COMPHELPER_DLLPUBLIC int getView(); + +COMPHELPER_DLLPUBLIC void +setInitialClientVisibleArea(const css::awt::Rectangle& rClientVisibleArea); +COMPHELPER_DLLPUBLIC css::awt::Rectangle getInitialClientVisibleArea(); } #endif // INCLUDED_COMPHELPER_LOK_HXX diff --git a/sw/qa/extras/tiledrendering/data/3pages.odt b/sw/qa/extras/tiledrendering/data/3pages.odt new file mode 100644 index ..565cdeae77a5 Binary files /dev/null and b/sw/qa/extras/tiledrendering/data/3pages.odt differ diff --git a/sw/qa/extras/tiledrendering/tiledrendering2.cxx b/sw/qa/extras/tiledrendering/tiledrendering2.cxx index 5464257a
core.git: Branch 'libreoffice-25-2' - sc/qa sc/source
sc/qa/unit/data/ods/RowHeightTdf165003.ods |binary sc/qa/unit/subsequent_filters_test4.cxx| 23 +++ sc/source/core/data/column2.cxx|8 +++- 3 files changed, 30 insertions(+), 1 deletion(-) New commits: commit f4ad405f8c93afaeb4281f43a6608c4aecca7249 Author: Noel Grandin AuthorDate: Tue Feb 11 12:54:02 2025 +0200 Commit: Xisco Fauli CommitDate: Tue Feb 11 15:59:17 2025 +0100 tdf#165003 Row height wrong at writing direction 90° regression from commit f91a411340ae204ce1e6997f22e0352a4c6a8355 Author: Noel Grandin Date: Thu May 23 15:09:52 2024 +0200 reduce cost of calc column height calculation This also fixes another bug in the above commit where the code did not update nValue for the "else if (bBreak && !bWidth)" case Change-Id: I367a56c2cb555336e1d510efb0c7acac1447525f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181417 Tested-by: Jenkins Reviewed-by: Noel Grandin (cherry picked from commit f2639e2a98f114f053a13da669440587d56a0dd8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181422 Reviewed-by: Xisco Fauli diff --git a/sc/qa/unit/data/ods/RowHeightTdf165003.ods b/sc/qa/unit/data/ods/RowHeightTdf165003.ods new file mode 100644 index ..b3672f929f82 Binary files /dev/null and b/sc/qa/unit/data/ods/RowHeightTdf165003.ods differ diff --git a/sc/qa/unit/subsequent_filters_test4.cxx b/sc/qa/unit/subsequent_filters_test4.cxx index 72a5b1bd2a53..d8f11d5a3493 100644 --- a/sc/qa/unit/subsequent_filters_test4.cxx +++ b/sc/qa/unit/subsequent_filters_test4.cxx @@ -440,6 +440,29 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightODS) CPPUNIT_ASSERT_MESSAGE("Row should have an automatic height.", !bManual); } +CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightTdf165003) +{ +createScDoc("ods/RowHeightTdf165003.ods"); + +SCTAB nTab = 0; +SCROW nRow = 0; +ScDocument* pDoc = getScDoc(); + +int nHeight = pDoc->GetRowHeight(nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +// this row has 90-degree rotated text, and without the fix, would have had zero height. +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(582, nHeight); +nHeight = pDoc->GetRowHeight(++nRow, nTab, false); +CPPUNIT_ASSERT_EQUAL(256, nHeight); +} + CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRichTextContentODS) { createScDoc("ods/rich-text-cells.ods"); diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index e0e5505da9aa..37db657fb552 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -310,7 +310,10 @@ tools::Long ScColumn::GetNeededSize( tools::Long nWidth = 0; if ( eOrient != SvxCellOrientation::Standard ) { -nWidth = pDev->GetTextHeight(); +tools::Long nHeight = pDev->GetTextHeight(); +// swap width and height +nValue = bWidth ? nHeight : pDev->GetTextWidth( aValStr ); +nWidth = nHeight; } else if ( nRotate ) { @@ -363,7 +366,10 @@ tools::Long ScColumn::GetNeededSize( } } else if (bBreak && !bWidth) +{ nWidth = pDev->GetTextWidth(aValStr); +nValue = pDev->GetTextHeight(); +} else // in the common case (height), avoid calling the expensive GetTextWidth nValue = bWidth ? pDev->GetTextWidth( aValStr ) : pDev->GetTextHeight();
core.git: helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 6c0685d82238fd3813ffe7d67be3778280f2d47e Author: Olivier Hallot AuthorDate: Tue Feb 11 11:55:45 2025 -0300 Commit: Gerrit Code Review CommitDate: Tue Feb 11 15:55:45 2025 +0100 Update git submodules * Update helpcontent2 from branch 'master' to 07e8db4df115a5662b5e28831cbc7049cd50c217 - tdf#165141 - Fix Draw - Scale Help page + Refactor + Improve how to get + Remove switches. Change-Id: I3649c9a87170b4d665c1766d211074fa519a8405 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/181373 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/helpcontent2 b/helpcontent2 index 84435ba08d96..07e8db4df115 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit 84435ba08d96a46d9ced24ccd37599d2932e8932 +Subproject commit 07e8db4df115a5662b5e28831cbc7049cd50c217
core.git: Branch 'distro/collabora/co-25.04' - 14 commits - desktop/source include/sfx2 include/svl include/svx officecfg/registry sfx2/source svl/source svx/sdi sw/inc sw/sdi sw/source
desktop/source/lib/init.cxx | 29 ++- include/sfx2/StylePreviewRenderer.hxx|2 include/svl/style.hxx|3 include/svx/svxids.hrc |2 officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu |5 sfx2/source/dialog/StyleList.cxx | 91 ++ sfx2/source/doc/objserv.cxx | 21 +- svl/source/items/style.cxx |5 svx/sdi/svx.sdi | 17 + sw/inc/docstyle.hxx |2 sw/inc/modcfg.hxx|2 sw/inc/rdfhelper.hxx |2 sw/inc/view.hxx |4 sw/sdi/_textsh.sdi |6 sw/source/core/doc/rdfhelper.cxx | 27 +- sw/source/core/layout/paintfrm.cxx | 40 +++- sw/source/core/text/inftxt.cxx | 37 ++-- sw/source/core/unocore/unoobj2.cxx |2 sw/source/filter/ww8/docxattributeoutput.cxx |7 sw/source/filter/ww8/docxexport.cxx | 15 - sw/source/uibase/app/docstyle.cxx| 19 ++ sw/source/uibase/config/modcfg.cxx | 46 +++-- sw/source/uibase/config/usrpref.cxx | 42 ++-- sw/source/uibase/docvw/edtwin2.cxx |8 sw/source/uibase/lingu/olmenu.cxx| 43 ++-- sw/source/uibase/shells/textsh1.cxx | 53 - sw/source/uibase/uiview/view0.cxx| 30 ++- sw/source/uibase/uno/unotxdoc.cxx|9 28 files changed, 395 insertions(+), 174 deletions(-) New commits: commit c90b82892ea22d67c28e5d40a086b914c496f62c Author: Caolán McNamara AuthorDate: Tue Jan 28 20:53:29 2025 + Commit: Caolán McNamara CommitDate: Tue Feb 11 14:51:32 2025 + xml::sax::XWriter is a xml::sax::XDocumentHandler Change-Id: I492bff5580b61c222a7e9b84d49ba70a5dc318b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180865 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx index 5472a0de8460..ffeb0b85a099 100644 --- a/sw/source/filter/ww8/docxexport.cxx +++ b/sw/source/filter/ww8/docxexport.cxx @@ -1582,8 +1582,7 @@ void DocxExport::WriteGlossary() uno::Reference< xml::sax::XSAXSerializable > serializer( glossaryDocDom, uno::UNO_QUERY ); uno::Reference< xml::sax::XWriter > writer = xml::sax::Writer::create( comphelper::getProcessComponentContext() ); writer->setOutputStream( xOutputStream ); -serializer->serialize( uno::Reference< xml::sax::XDocumentHandler >( writer, uno::UNO_QUERY_THROW ), -uno::Sequence< beans::StringPair >() ); +serializer->serialize(writer, uno::Sequence< beans::StringPair >()); for (const uno::Sequence& glossaryElement : glossaryDomList) { @@ -1624,8 +1623,7 @@ void DocxExport::WriteGlossary() continue; // External relation, no stream to write uno::Reference< xml::sax::XSAXSerializable > gserializer( xDom, uno::UNO_QUERY ); writer->setOutputStream(GetFilter().openFragmentStream( "word/glossary/" + gTarget, contentType ) ); -gserializer->serialize( uno::Reference< xml::sax::XDocumentHandler >( writer, uno::UNO_QUERY_THROW ), - uno::Sequence< beans::StringPair >() ); +gserializer->serialize(writer, uno::Sequence< beans::StringPair >()); } } @@ -1747,8 +1745,7 @@ void DocxExport::WriteCustomXml() writer->setOutputStream(xMemStream->getOutputStream()); -serializer->serialize(uno::Reference< xml::sax::XDocumentHandler >(writer, uno::UNO_QUERY_THROW), -uno::Sequence< beans::StringPair >()); +serializer->serialize(writer, uno::Sequence< beans::StringPair >()); uno::Reference< io::XStream > xXSLTInStream = xMemStream; uno::Reference< io::XStream > xXSLTOutStream; @@ -1779,8 +1776,7 @@ void DocxExport::WriteCustomXml() { writer->setOutputStream(xOutStream); -serializer->serialize(uno::Reference< xml::sax::XDocumentHandler >(writer, uno::UNO_QUERY_THROW), -uno::Sequence< beans::Str
core.git: Branch 'libreoffice-24-8-5' - i18npool/source offapi/com sc/source sw/source
i18npool/source/characterclassification/cclass_unicode_parser.cxx | 18 -- offapi/com/sun/star/i18n/KParseTokens.idl |7 +++ sc/source/core/tool/compiler.cxx |6 +-- sw/source/core/bastyp/calc.cxx|2 - 4 files changed, 26 insertions(+), 7 deletions(-) New commits: commit a760f3887d4b8a0452ac08269a66a45003174c34 Author: Michael Stahl AuthorDate: Wed Jan 29 19:54:14 2025 +0100 Commit: Christian Lohmaier CommitDate: Tue Feb 11 16:14:21 2025 +0100 tdf#158867 offapi,i18npool,starmath: fix "," in Math again This is essentially the same bug that was fixed in commit 2caa9d7ddcff3f6e380c306b737e9b5e9cdaf4c2 "Resolves: tdf#127873 accept ',' comma group separator in number entities again". The problem is that sw wants to recognize group separators only if there are 3 digits following so it really looks like a number (see bug tdf#42518), but starmath really wants to recognize either comma or dot as a decimal separator and uses the GROUP_SEPARATOR_IN_NUMBER as a hack to get this behaviour, so the same parser can work in any locale. Introduce new constant GROUP_SEPARATOR_IN_NUMBER_3 so that sw and starmath can request different parsing. sc/source/core/tool/compiler.cxx also uses GROUP_SEPARATOR_IN_NUMBER and it's unclear to me what is desired there, but there are no known regression reports so leave the behaviour there unchanged. (regression from commit 1bd9a51b826015746069fcc0d02a30a2ddc7e7f5) Change-Id: Icb7662f26d89677cf84ccad07a2ea4c380587ab4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180920 Tested-by: Jenkins Reviewed-by: Michael Stahl (cherry picked from commit ff16c4e3f27efc0fc9ed734b19ae778482566cdb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181118 Reviewed-by: Thorsten Behrens (cherry picked from commit 0644deaa8a441e2ad9c41ad4b4a528b1579e9cd9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181127 Tested-by: Christian Lohmaier Reviewed-by: Xisco Fauli Reviewed-by: Christian Lohmaier diff --git a/i18npool/source/characterclassification/cclass_unicode_parser.cxx b/i18npool/source/characterclassification/cclass_unicode_parser.cxx index 9ed95e2f907a..97fae9518adc 100644 --- a/i18npool/source/characterclassification/cclass_unicode_parser.cxx +++ b/i18npool/source/characterclassification/cclass_unicode_parser.cxx @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -441,7 +442,11 @@ void cclass_Unicode::initParserTable( const Locale& rLocale, sal_Int32 startChar cDecimalSepAlt = aItem.decimalSeparatorAlternative.toChar(); } -if (nContTypes & KParseTokens::GROUP_SEPARATOR_IN_NUMBER) +SAL_WARN_IF((nContTypes & KParseTokens::GROUP_SEPARATOR_IN_NUMBER) + && (nContTypes & KParseTokens::GROUP_SEPARATOR_IN_NUMBER_3), +"i18npool", "only one GROUP_SEPARATOR_IN_NUMBER* should be used"); +if (nContTypes & KParseTokens::GROUP_SEPARATOR_IN_NUMBER +|| nContTypes & KParseTokens::GROUP_SEPARATOR_IN_NUMBER_3) { if ( cGroupSep < nDefCnt ) pTable[cGroupSep] |= ParserFlags::VALUE; @@ -827,13 +832,20 @@ void cclass_Unicode::parseText( ParseResult& r, const OUString& rText, sal_Int32 { if (current == cGroupSep) { -// accept only if it is followed by 3 digits +// depending or requested nContTypes, accept only if +// it is followed by 3 digits sal_Int32 tempIndex(index); sal_uInt32 const nextChar2((tempIndex < rText.getLength()) ? rText.iterateCodePoints(&tempIndex) : 0); sal_uInt32 const nextChar3((tempIndex < rText.getLength()) ? rText.iterateCodePoints(&tempIndex) : 0); -if (getFlags(nextChar, eState) & ParserFlags::VALUE_DIGIT +if ((nContTypes & KParseTokens::GROUP_SEPARATOR_IN_NUMBER_3) +&& getFlags(nextChar, eState) & ParserFlags::VALUE_DIGIT && getFlags(nextChar2, eState) & ParserFlags::VALUE_DIGIT && getFlags(nextChar3, eState) & ParserFlags::VALUE_DIGIT) +{ +nParseTokensType |= KParseTokens::GROUP_SEPARATOR_IN_NUMBER_3; +} +else if ((nContTypes & KParseTokens::GROUP_SEPARATOR_IN_NUMBER_3) == 0 +&& getFlags(nextChar, eState) & ParserFlags::VALUE_DIGIT) { nParseTokensType |= KParseTokens::GROUP_SEPARATOR_IN_NUMBER; } diff --git a/offapi/com/sun/star/i18n/KParseTok
core.git: Branch 'libreoffice-24-8-5' - sw/source
sw/source/core/docnode/node2lay.cxx |7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) New commits: commit df89de9f9d02df5def41f5b8422514704d42cbde Author: Michael Stahl AuthorDate: Wed Jan 29 17:36:41 2025 +0100 Commit: Christian Lohmaier CommitDate: Tue Feb 11 16:15:01 2025 +0100 tdf#156348 sw: fix crash on converting text to table with SwSetExpField The problem is that the table node only gets a SwFrameFormat assigned at the end of the operation after all the nodes have been split etc., and moving a field into a newly split node calls sw::FindNeighbourFrameForNode() which needs to handle table node without SwFrameFormat now when going backwards (not when going forwards because the table node is always before the nodes in the table). (regression from commit 9dc6e2c9062725ef1f9d7e321cae5f4dbe8ca749) Change-Id: Ia0c1f7d7b14f525aa8de4a2b6492c39b59f31052 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180914 Reviewed-by: Michael Stahl Tested-by: Jenkins (cherry picked from commit b5967157b37904219865fd847b20938b3ccfbd72) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180919 Reviewed-by: Adolfo Jayme Barrientos (cherry picked from commit 23d225dac8f717bea8e960e4c2130963db7f3920) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181106 Tested-by: Christian Lohmaier Reviewed-by: Xisco Fauli Reviewed-by: Christian Lohmaier diff --git a/sw/source/core/docnode/node2lay.cxx b/sw/source/core/docnode/node2lay.cxx index 312ce2dff440..3efaea7f08ff 100644 --- a/sw/source/core/docnode/node2lay.cxx +++ b/sw/source/core/docnode/node2lay.cxx @@ -115,7 +115,12 @@ static SwNode* GoPreviousWithFrame(SwNodeIndex *pIdx, SwFlowFrame const**const p // frame as the caller's one pFound = SwIterator(*static_cast(pNd)).First(); else if ( pNd->IsTableNode() ) -pFound = SwIterator(*static_cast(pNd)->GetTable().GetFrameFormat()).First(); +{ +if (SwFrameFormat *const pFormat{static_cast(pNd)->GetTable().GetFrameFormat()}) +{ +pFound = SwIterator(*pFormat).First(); +} +} else if( pNd->IsStartNode() && !pNd->IsSectionNode() ) { pNd = nullptr;
core.git: Branch 'libreoffice-25-2' - winaccessibility/source
winaccessibility/source/UAccCOM/MAccessible.cxx | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) New commits: commit a3773ad48a87fdbe3543e8005483e913068498b9 Author: Michael Weghorn AuthorDate: Mon Feb 10 17:17:39 2025 +0100 Commit: Xisco Fauli CommitDate: Tue Feb 11 16:15:49 2025 +0100 tdf#153131 wina11y: Return error code when child count exceeds max long When the accessible child count exceeds max long, no longer return max long in the IAccessible::get_accChildCount [1] implementation in the Windows a11y bridge, but instead return error code `S_FALSE` [2]: > The method succeeded in part. This happens when the method succeeds, but > the requested information is not available. For example, Microsoft > Active Accessibility returns S_FALSE if you call IAccessible::accHitTest > to retrieve a child object at a given point, and the specified point is > not within the object or the object's child. This prevents the problem that Windows Speech Recognition on Windows 10 (see tdf#153131) and apparently some tools on Windows 11 that query information from LO via the accessibility API (see tdf#165131 and tickets referenced from there) apparently try to iterate over all children from child index 0 to (excluding) the returned index unconditionally, which causes a freeze if the returned number is too large. In practice, this is known to be a problem with Calc sheets, for which all cells are currently considered direct children. A quick test with NVDA and this change in place didn't reveal any issues. (Independent of this change, using JAWS 2025.2412.50 instantly results in a crash somewhere in the AT code that gets run in-process, preventing to test what implications this change would have there otherwise.) [1] https://learn.microsoft.com/en-us/windows/win32/api/oleacc/nf-oleacc-iaccessible-get_accchildcount [2] https://learn.microsoft.com/en-us/windows/win32/winauto/return-values Change-Id: If12dbcbb387a765bec4194d2bfe61bd29aa0f8a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181370 Tested-by: Jenkins Reviewed-by: Michael Weghorn (cherry picked from commit 9ee01d58771b8ea585698094019b1a4dd38e54eb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181379 Reviewed-by: Xisco Fauli diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx index fb13e7e6878a..a6454f3c39f8 100644 --- a/winaccessibility/source/UAccCOM/MAccessible.cxx +++ b/winaccessibility/source/UAccCOM/MAccessible.cxx @@ -299,9 +299,13 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP CMAccessible::get_accChildCount(long *pcountCh sal_Int64 nChildCount = pRContext->getAccessibleChildCount(); if (nChildCount > std::numeric_limits::max()) { -SAL_WARN("iacc2", "CMAccessible::get_accChildCount: Child count exceeds maximum long value, " - "returning max long."); -nChildCount = std::numeric_limits::max(); +// return error code if child count exceeds max long value +// (for Calc sheets which report all cells as children); +// tdf#153131: Windows Speech Recognition and apparently some other +// tools quering information via the a11y API seem to query all children unconditionally, +// so returning a large number (like std::numeric_limits::max) would cause a freeze +SAL_WARN("iacc2", "CMAccessible::get_accChildCount: Child count exceeds maximum long value"); +return S_FALSE; } *pcountChildren = nChildCount;
help.git: source/text
source/text/shared/00/0406.xhp | 15 source/text/shared/optionen/01070500.xhp | 99 --- 2 files changed, 55 insertions(+), 59 deletions(-) New commits: commit 07e8db4df115a5662b5e28831cbc7049cd50c217 Author: Olivier Hallot AuthorDate: Mon Feb 10 14:59:39 2025 -0300 Commit: Olivier Hallot CommitDate: Tue Feb 11 15:55:44 2025 +0100 tdf#165141 - Fix Draw - Scale Help page + Refactor + Improve how to get + Remove switches. Change-Id: I3649c9a87170b4d665c1766d211074fa519a8405 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/181373 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/source/text/shared/00/0406.xhp b/source/text/shared/00/0406.xhp index dfbe2aacb4..cf5e795a7f 100644 --- a/source/text/shared/00/0406.xhp +++ b/source/text/shared/00/0406.xhp @@ -373,7 +373,20 @@ Open a spreadsheet document, choose %PRODUCTNAME - PreferencesTools - Options - %PRODUCTNAME Calc - Sort Lists - Copy button. Open a spreadsheet document, choose %PRODUCTNAME - PreferencesTools - Options - %PRODUCTNAME Calc - Changes. Open a presentation document, choose %PRODUCTNAME - PreferencesTools - Options - %PRODUCTNAME Impress. -Open a presentation document, choose %PRODUCTNAME - PreferencesTools - Options - %PRODUCTNAME Impress/%PRODUCTNAME Draw - General. + + + +Open a presentation or drawing document, then + +Choose %PRODUCTNAME - PreferencesTools - Options - %PRODUCTNAME Impress/%PRODUCTNAME Draw - General. + +Click the Options button on the right and choose %PRODUCTNAME Impress/%PRODUCTNAME Draw - General. + +Alt + F12 and choose %PRODUCTNAME Impress/%PRODUCTNAME Draw - General. + + + + Open a presentation document, choose %PRODUCTNAME - PreferencesTools - Options - %PRODUCTNAME Impress/%PRODUCTNAME Draw - View. Open a presentation document, choose %PRODUCTNAME - PreferencesTools - Options - %PRODUCTNAME Impress/%PRODUCTNAME Draw - Grid. Open a presentation document, choose %PRODUCTNAME - PreferencesTools - Options - %PRODUCTNAME Impress/%PRODUCTNAME Draw - Print. diff --git a/source/text/shared/optionen/01070500.xhp b/source/text/shared/optionen/01070500.xhp index e596d5223c..e6777b8106 100644 --- a/source/text/shared/optionen/01070500.xhp +++ b/source/text/shared/optionen/01070500.xhp @@ -22,97 +22,80 @@ -General +General /text/shared/optionen/01070500.xhp -presentations; starting with wizard +presentations; starting with wizard objects; always moveable (Impress/Draw) distorting in drawings spacing; tabs in presentations tab stops; spacing in presentations text objects; in presentations and drawings +scale; in drawings - - -General -Defines the general options for drawing or presentation documents. + + +General (Impress and Draw) +Defines the general options for drawing or presentation documents. - - - - -New document -Start with Template Selection -Specifies whether to activate the Select a Template window when opening a presentation with File - New - Presentation. - - + +New document (Impress) +Start with Template Selection +Specifies whether to activate the Select a Template window when opening a presentation with File - New - Presentation. Text objects - - + + Allow quick editing -If on, you can edit text immediately after clicking a text object. If off, you must double-click to edit text. - - - - - -In a presentation or drawing document, you can also activate the text editing mode through the Allow Quick Editing icon in the Options bar. - - +If on, you can edit text immediately after clicking a text object. If off, you must double-click to edit text. +In a presentation or drawing document, you can also activate the text editing mode through the Allow Quick Editing icon in the Options bar. + + Only text area selectable -Specifies whether to select a text box by clicking the text. +Specifies whether to select a text box by clicking the text. -In the area of the text box that is not filled with text, an object behind the text box can be selected. +In the area of the text box that is not filled with text, an object behind the text box can be selected. - - - - -In a presentation or drawing document, you can also activate this mode through the Select Text Area Only icon in the Options bar. +In a presentation or drawing document, you can also activate this mode through the Select Text Area Only icon in the Options bar. Settings - -Use background cache -Specifies whether to use the cache for displaying objects on the master slide. This speeds up the display. Unmark the Use background cache option if you want to display changing contents on the master slide. - + Copy when moving -If enabled, a copy is created when you move an object while holding down the
core.git: Branch 'libreoffice-24-8' - sc/qa sc/source
sc/qa/unit/data/xlsx/sortconditionref2.xlsx |binary sc/qa/unit/subsequent_export_test2.cxx | 14 ++ sc/source/filter/oox/autofilterbuffer.cxx |2 +- 3 files changed, 15 insertions(+), 1 deletion(-) New commits: commit 1394a950cef4f3d97a79388dcd3e49b29e660077 Author: Gülşah Köse AuthorDate: Fri Feb 7 16:05:16 2025 +0300 Commit: Xisco Fauli CommitDate: Tue Feb 11 16:03:56 2025 +0100 Fix wrong detection of sortCondition reference Signed-off-by: Gülşah Köse Change-Id: I877ede71f9487ba35efd7da6a954560272cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181344 Reviewed-by: Szymon Kłos Tested-by: Jenkins (cherry picked from commit 641fd154649edfb3fe1dad89f833f2e48caf41d7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181405 Reviewed-by: Xisco Fauli diff --git a/sc/qa/unit/data/xlsx/sortconditionref2.xlsx b/sc/qa/unit/data/xlsx/sortconditionref2.xlsx new file mode 100644 index ..748e894ac0a7 Binary files /dev/null and b/sc/qa/unit/data/xlsx/sortconditionref2.xlsx differ diff --git a/sc/qa/unit/subsequent_export_test2.cxx b/sc/qa/unit/subsequent_export_test2.cxx index 7f4703a11cfe..0777a073e1d6 100644 --- a/sc/qa/unit/subsequent_export_test2.cxx +++ b/sc/qa/unit/subsequent_export_test2.cxx @@ -442,6 +442,20 @@ CPPUNIT_TEST_FIXTURE(ScExportTest2, testSortConditionRef) u"B3:B2"_ustr); } +CPPUNIT_TEST_FIXTURE(ScExportTest2, testSortConditionRef2) +{ +// Ascending sortCondition reference detected wrong without fix. +//- Expected: A11:A300 +//- Actual : J11:J300 +//- In <>, attribute 'ref' of '//x:worksheet/x:autoFilter/x:sortState/x:sortCondition' incorrect value. +createScDoc("xlsx/sortconditionref2.xlsx"); +save(u"Calc Office Open XML"_ustr); +xmlDocUniquePtr pDoc = parseExport(u"xl/worksheets/sheet1.xml"_ustr); + +assertXPath(pDoc, "//x:worksheet/x:autoFilter/x:sortState/x:sortCondition"_ostr, "ref"_ostr, +u"A11:A300"_ustr); +} + CPPUNIT_TEST_FIXTURE(ScExportTest2, testDateAutofilterXLSX) { // XLSX Roundtripping autofilter with date list diff --git a/sc/source/filter/oox/autofilterbuffer.cxx b/sc/source/filter/oox/autofilterbuffer.cxx index 1d7b7ffb0d70..dcf8da5fdc9d 100644 --- a/sc/source/filter/oox/autofilterbuffer.cxx +++ b/sc/source/filter/oox/autofilterbuffer.cxx @@ -846,7 +846,7 @@ void AutoFilter::finalizeImport( const Reference< XDatabaseRange >& rxDatabaseRa if (!aParam.bUserDef) return; -SCCOLROW nStartPos = aParam.bByRow ? maRange.aStart.Col() : maRange.aStart.Row(); +SCCOLROW nStartPos = aParam.bByRow ? maRange.aStart.Row() : maRange.aStart.Col(); // descending sort - need to enable 1st SortParam slot if (rSorConditionLoaded.mbDescending) assert(aParam.GetSortKeyCount() == DEFSORT);
core.git: Branch 'libreoffice-24-8-5' - download.lst external/curl
download.lst |4 ++-- external/curl/ExternalProject_curl.mk |1 + external/curl/curl-msvc-disable-protocols.patch.1 | 10 ++ 3 files changed, 9 insertions(+), 6 deletions(-) New commits: commit 394b7f93dd0cef150e404b57a2e7a53aa06c74b7 Author: Xisco Fauli AuthorDate: Wed Feb 5 15:07:33 2025 +0100 Commit: Christian Lohmaier CommitDate: Tue Feb 11 16:10:56 2025 +0100 curl: upgrade to 8.12.0 Downloaded from https://curl.se/download/curl-8.12.0.tar.xz Windows build fails now with WARNING: The winbuild build system is deprecated and will be removed in September 2025 in favor of the CMake build system. Please see docs/INSTALL-CMAKE.md : "Migrating from winbuild builds" To use the winbuild build system you must acknowledge this warning by setting command line option WINBUILD_ACKNOWLEDGE_DEPRECATED=yes Makefile.vc(37) : fatal error U1050: The user must acknowledge the deprecation warning to continue. Stop. so building with WINBUILD_ACKNOWLEDGE_DEPRECATED=yes for now until the migration from winbuild is done Change-Id: I5d357b20a93863c81f7637f43abbf7d3167f6dd2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181173 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit 0843e1df9be6451d3462d0c907de945df30bbf68) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181193 Reviewed-by: Taichi Haradaguchi <20001...@protonmail.com> Tested-by: Christian Lohmaier Reviewed-by: Christian Lohmaier diff --git a/download.lst b/download.lst index bd8af05dcde9..a4cafb3e6f04 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 := c7ca7db48b0909743eaef34250da02c19bc61d4f1dcedd6603f109409536ab56 -CURL_TARBALL := curl-8.11.1.tar.xz +CURL_SHA256SUM := 9a4628c764be6b1a9909567c13e8e771041609df43b2158fcac4e05ea7097e5d +CURL_TARBALL := curl-8.12.0.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/curl/ExternalProject_curl.mk b/external/curl/ExternalProject_curl.mk index d44f8e77ee2c..78f8f45df60a 100644 --- a/external/curl/ExternalProject_curl.mk +++ b/external/curl/ExternalProject_curl.mk @@ -88,6 +88,7 @@ $(call gb_ExternalProject_get_state_target,curl,build): ENABLE_IPV6=yes \ ENABLE_SSPI=yes \ ENABLE_WINSSL=yes \ + WINBUILD_ACKNOWLEDGE_DEPRECATED=yes \ WITH_ZLIB=static \ ,winbuild) $(call gb_Trace_EndRange,curl,EXTERNAL) diff --git a/external/curl/curl-msvc-disable-protocols.patch.1 b/external/curl/curl-msvc-disable-protocols.patch.1 index 1c74fa63381b..fcf90b0ab2f8 100644 --- a/external/curl/curl-msvc-disable-protocols.patch.1 +++ b/external/curl/curl-msvc-disable-protocols.patch.1 @@ -2,9 +2,9 @@ disable protocols nobody needs in MSVC build --- curl/lib/config-win32.h.orig 2017-08-09 16:43:29.46400 +0200 +++ curl/lib/config-win32.h2017-08-09 16:47:38.54920 +0200 -@@ -509,4 +509,20 @@ - /* If you want to build curl with the built-in manual */ - #define USE_MANUAL 1 +@@ -500,6 +500,22 @@ + # endif /* UNDER_CE */ + #endif /* !CURL_OS */ +#define CURL_DISABLE_DICT 1 +#define CURL_DISABLE_FILE 1 @@ -22,7 +22,9 @@ disable protocols nobody needs in MSVC build +#define CURL_DISABLE_TELNET 1 +#define CURL_DISABLE_TFTP 1 + - #endif /* HEADER_CURL_CONFIG_WIN32_H */ + /* */ + /*Windows CE*/ + /* */ --- curl/winbuild/MakefileBuild.vc.orig2017-10-23 23:41:21.39320 +0200 +++ curl/winbuild/MakefileBuild.vc 2017-10-23 23:34:16.02800 +0200 @@ -562,7 +562,7 @@
help.git: AllLangHelp_scalc.mk source/text
AllLangHelp_scalc.mk |1 source/text/scalc/01/data_provider.xhp | 52 + 2 files changed, 53 insertions(+) New commits: commit 84435ba08d96a46d9ced24ccd37599d2932e8932 Author: Olivier Hallot AuthorDate: Tue Feb 11 09:30:34 2025 -0300 Commit: Olivier Hallot CommitDate: Tue Feb 11 15:53:55 2025 +0100 tdf#137419 (part) Restore Data Provider Help page + Restore deleted help page + Refactor, add some bookmark entries, how-to-get ... + Page need further work once the feature is properly documented. Change-Id: I7984ac16dd355f4df1e63bbbcd928109660b0cd5 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/181419 Reviewed-by: Olivier Hallot Tested-by: Jenkins diff --git a/AllLangHelp_scalc.mk b/AllLangHelp_scalc.mk index f4ba1c742f..90601dbdb6 100644 --- a/AllLangHelp_scalc.mk +++ b/AllLangHelp_scalc.mk @@ -183,6 +183,7 @@ $(eval $(call gb_AllLangHelp_add_helpfiles,scalc,\ helpcontent2/source/text/scalc/01/data_form \ helpcontent2/source/text/scalc/01/databar_more_options \ helpcontent2/source/text/scalc/01/database_table_reference \ +helpcontent2/source/text/scalc/01/data_provider \ helpcontent2/source/text/scalc/01/default_number_formats \ helpcontent2/source/text/scalc/01/DeleteNote \ helpcontent2/source/text/scalc/01/DeleteAllNotes \ diff --git a/source/text/scalc/01/data_provider.xhp b/source/text/scalc/01/data_provider.xhp new file mode 100644 index 00..156c56d862 --- /dev/null +++ b/source/text/scalc/01/data_provider.xhp @@ -0,0 +1,52 @@ + + + + + + +Data Provider for Spreadsheet +/text/scalc/01/data_provider.xhp + + + + + + + + +data provider;for spreadsheets + + + +Data Provider for Spreadsheets +Data Provider for Spreadsheets + + + + + On the Data tab, choose Data Provider. + + + + +Data Provider + + + +
core.git: Branch 'libreoffice-24-8-5' - sc/source
sc/source/core/data/documen8.cxx |5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) New commits: commit b66790e7c6bfa3bcc892d7bef61dbf60b00735c0 Author: Caolán McNamara AuthorDate: Mon Feb 3 21:13:47 2025 + Commit: Christian Lohmaier CommitDate: Tue Feb 11 16:17:21 2025 +0100 crashtesting: SvBaseLink::Update can invalidate later entries e.g. load forum-mso-en4-62141.xls and update links #0 sfx2::LinkManager::Remove (this=0x270d720, pLink=0x27b5780) at core/sfx2/source/appl/linkmgr2.cxx:118 #1 0x7fffa9813eef in ScDocument::UpdateRefAreaLinks (this=0x1f5d740, eUpdateRefMode=URM_INSDEL, rRange=..., nDx=0, nDy=-6, nDz=0) at core/sc/source/core/data/documen8.cxx:1141 #2 0x7fffa97a8639 in ScDocument::UpdateReference (this=0x1f5d740, rCxt=..., pUndoDoc=0x0, bIncludeDraw=true, bUpdateNoteCaptionPos=false) at core/sc/source/core/data/documen3.cxx:1053 #3 0x7fffa9829c9e in ScDocument::DeleteRow (this=0x1f5d740, nStartCol=1, nStartTab=0, nEndCol=7, nEndTab=0, nStartRow=3, nSize=6, pRefUndoDoc=0x0, pUndoOutline=0x0, pTabMark=0x0) at core/sc/source/core/data/document.cxx:1431 #4 0x7fffa982a324 in ScDocument::DeleteRow (this=0x1f5d740, rRange=...) at core/sc/source/core/data/document.cxx:1484 #5 0x7fffa982d1a4 in ScDocument::FitBlock (this=0x1f5d740, rOld=..., rNew=..., bClear=true) at core/sc/source/core/data/document.cxx:1883 #6 0x7fffaa6c385d in ScAreaLink::Refresh (this=0x27b5780, rNewFile="http://stocks.tradingcharts.com/stocks/symbols/s/NYSE/Boeing";, rNewFilter="calc_HTML_WebQuery", rNewArea="HTML_2", nNewRefreshDelaySeconds=0) at core/sc/source/ui/docshell/arealink.cxx:365 #7 0x7fffaa6c5069 in ScAreaLink::DataChanged (this=0x27b5780) at core/sc/source/ui/docshell/arealink.cxx:128 #8 0x73ac81e1 in sfx2::SvBaseLink::Update (this=0x27b5780) at core/sfx2/source/appl/lnkbase2.cxx:324 #9 0x7fffa98137b6 in ScDocument::UpdateAreaLinks (this=0x1f5d740) at core/sc/source/core/data/documen8.cxx:1058 Change-Id: Ie6c59b240d9a24cbf427be9c5bfda1660fe888c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181078 Reviewed-by: Caolán McNamara Tested-by: Jenkins (cherry picked from commit cdb0c1e5c99cdb9b31e24f50e96a9b254dd9fb33) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181098 Reviewed-by: Xisco Fauli (cherry picked from commit 165b69e2afaead0a374bf3d73bcf31bda6338793) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181103 Reviewed-by: Christian Lohmaier Tested-by: Christian Lohmaier diff --git a/sc/source/core/data/documen8.cxx b/sc/source/core/data/documen8.cxx index 5fb5eec14acc..c6baa15ad059 100644 --- a/sc/source/core/data/documen8.cxx +++ b/sc/source/core/data/documen8.cxx @@ -1051,9 +1051,10 @@ void ScDocument::UpdateAreaLinks() return; const ::sfx2::SvBaseLinks& rLinks = pMgr->GetLinks(); -for (const auto & rLink : rLinks) +// Note: SvBaseLink::Update can remove entries after the current one +for (size_t i = 0; i < rLinks.size(); ++i) { -::sfx2::SvBaseLink* pBase = rLink.get(); +::sfx2::SvBaseLink* pBase = rLinks[i].get(); if (dynamic_cast( pBase) != nullptr) pBase->Update(); }
core.git: Branch 'libreoffice-24-8-5' - desktop/source
desktop/source/app/cmdlineargs.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 49e7e203920500891e92d3a53b92b44c5f8abb1e Author: Caolán McNamara AuthorDate: Thu Jan 30 20:37:38 2025 + Commit: Christian Lohmaier CommitDate: Tue Feb 11 16:15:18 2025 +0100 Filter out more unwanted command URIs Change-Id: I24c95d73b4fee89bdf044d5dd6efc9cd89627c54 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181016 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit 7105fb698f897ddb38bd60315444c07356689e14) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181116 Reviewed-by: Caolán McNamara Reviewed-by: Christian Lohmaier Tested-by: Christian Lohmaier diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx index 09a0cd212947..50220e4db590 100644 --- a/desktop/source/app/cmdlineargs.cxx +++ b/desktop/source/app/cmdlineargs.cxx @@ -165,7 +165,7 @@ CommandLineEvent CheckOfficeURI(/* in,out */ OUString& arg, CommandLineEvent cur if (nURIlen < 0) nURIlen = rest2.getLength(); auto const uri = rest2.subView(0, nURIlen); -if (INetURLObject(uri).GetProtocol() == INetProtocol::Macro) { +if (INetURLObject(uri).IsExoticProtocol()) { // Let the "Open" machinery process the full command URI (leading to failure, by intention, // as the "Open" machinery does not know about those command URI schemes): curEvt = CommandLineEvent::Open;
core.git: Branch 'libreoffice-24-8-5' - sw/source
sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) New commits: commit 933e1258318fd32b4a20b4a29ffe8435695fc53d Author: Miklos Vajna AuthorDate: Thu Feb 6 08:35:33 2025 +0100 Commit: Christian Lohmaier CommitDate: Tue Feb 11 16:15:47 2025 +0100 writerfilter: fix crash in DomainMapperTableHandler::endTable() Crashreport signature: /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_stack.h:234: std::stack<_Tp, _Sequence>::reference std::stack<_Tp, _Sequence>::top() [with _Tp = writerfilter::dmapper::TextAppendContext; _Sequence = std::deque >; reference = writerfilter::dmapper::TextAppendContext&]: Assertion '!this->empty()' failed. SIG Fatal signal received: SIGABRT code: 18446744073709551610 for address: 0x734d65 program/libwriterfilterlo.so writerfilter::dmapper::DomainMapper_Impl::GetTopTextAppend() /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_stack.h:234 program/libwriterfilterlo.so writerfilter::dmapper::DomainMapperTableHandler::endTable(unsigned int) workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/text/XTextAppendAndConvert.hpp:23 program/libwriterfilterlo.so writerfilter::dmapper::TableManager::resolveCurrentTable() include/tools/ref.hxx:56 program/libwriterfilterlo.so writerfilter::dmapper::TableManager::endLevel() writerfilter/source/dmapper/TableManager.cxx:461 It seems the trouble is that DomainMapperTableHandler::endTable() calls GetTopTextAppend() unconditionally, which asserts that the text append stack is non-empty. GetCurrentXText() already check if this stack is empty, so use that to check for emptyness and only then get the top of the stack. Later DomainMapperTableHandler::endTable() already checks if xTextAppendAndConvert is an empty reference or not. Change-Id: Ibb377cb03f8beaed9b3c9d45e322c8ad1f9d26c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181231 Tested-by: Jenkins Reviewed-by: Miklos Vajna (cherry picked from commit 7192e3e5d6f875e4e9d2eda6de9e1f31c4917f62) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181242 Reviewed-by: Xisco Fauli (cherry picked from commit 5d678aa14046041efef1e025fcc1c064e2d59efd) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181261 Tested-by: Christian Lohmaier Reviewed-by: Christian Lohmaier diff --git a/sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx b/sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx index 6c2a72ddeb9e..4962794c0c40 100644 --- a/sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx +++ b/sw/source/writerfilter/dmapper/DomainMapperTableHandler.cxx @@ -1661,7 +1661,11 @@ void DomainMapperTableHandler::endTable(unsigned int nestedTableLevel) sal_Int32 nTableWidthType = text::SizeType::FIX; m_aTableProperties->getValue(TablePropertyMap::TABLE_WIDTH_TYPE, nTableWidthType); // m_xText points to the body text, get the current xText from m_rDMapper_Impl, in case e.g. we would be in a header. -uno::Reference xTextAppendAndConvert(m_rDMapper_Impl.GetTopTextAppend(), uno::UNO_QUERY); +uno::Reference xTextAppendAndConvert; +if (m_rDMapper_Impl.GetCurrentXText()) +{ +xTextAppendAndConvert.set(m_rDMapper_Impl.GetTopTextAppend(), uno::UNO_QUERY); +} uno::Reference xFrameAnchor; // Writer layout has problems with redlines on floating table rows in footnotes, avoid
core.git: sw/qa sw/source
sw/qa/extras/ooxmlexport/data/tdf164176.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport21.cxx | 14 ++ sw/source/writerfilter/dmapper/SettingsTable.cxx |4 +++- 3 files changed, 17 insertions(+), 1 deletion(-) New commits: commit 9647aded124c17e97db1bf7bb071136c7f91cb90 Author: Oliver Specht AuthorDate: Thu Dec 5 07:48:10 2024 +0100 Commit: Gabor Kelemen CommitDate: Tue Feb 11 16:33:21 2025 +0100 tdf#164176 Import multiline document variable with break Converts the '_x000d_' or '_x000d__x000a_' to a paragraph break in docx import. Change-Id: Ib8b5203338e987028279711928d3aecb9cedd836 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177838 Tested-by: Jenkins Reviewed-by: Gabor Kelemen Tested-by: Gabor Kelemen diff --git a/sw/qa/extras/ooxmlexport/data/tdf164176.docx b/sw/qa/extras/ooxmlexport/data/tdf164176.docx new file mode 100644 index ..2d93cfd3765d Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf164176.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx index 91bf853c784c..89ba838e10ba 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -1242,6 +1243,19 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf164474) } } +DECLARE_OOXMLEXPORT_TEST(testTdf164176, "tdf164176.docx") +{ +uno::Reference xTextFieldsSupplier(mxComponent, uno::UNO_QUERY); +uno::Reference xFieldsAccess( +xTextFieldsSupplier->getTextFields()); +uno::Reference xFields(xFieldsAccess->createEnumeration()); + +uno::Reference xEnumerationAccess1(xFields->nextElement(), uno::UNO_QUERY); +rtl::OUString sPresentation = xEnumerationAccess1->getPresentation(true).trim(); +CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), sPresentation.indexOf("_x000d_")); +CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), sPresentation.indexOf("_x000a_")); +} + } // end of anonymous namespace CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/writerfilter/dmapper/SettingsTable.cxx b/sw/source/writerfilter/dmapper/SettingsTable.cxx index b4bf82541484..7ec07453d4f6 100644 --- a/sw/source/writerfilter/dmapper/SettingsTable.cxx +++ b/sw/source/writerfilter/dmapper/SettingsTable.cxx @@ -215,7 +215,9 @@ void SettingsTable::lcl_attribute(Id nName, const Value & val) m_pImpl->m_aDocVars.back().first = sStringValue; break; case NS_ooxml::LN_CT_DocVar_val: -m_pImpl->m_aDocVars.back().second = sStringValue; +m_pImpl->m_aDocVars.back().second = +sStringValue.replaceAll("_x000d__x000a_", " ") +.replaceAll("_x000d_", " "); break; case NS_ooxml::LN_CT_CompatSetting_name: m_pImpl->m_aCurrentCompatSettingName = sStringValue;
core.git: slideshow/source
slideshow/source/engine/activities/accumulation.hxx |5 + slideshow/source/engine/activities/activitybase.hxx |5 + slideshow/source/engine/activities/activityparameters.hxx |5 + slideshow/source/engine/activities/continuousactivitybase.hxx |5 + 4 files changed, 4 insertions(+), 16 deletions(-) New commits: commit b3503b8b33093e4143d0507dc565eb9546d4c14f Author: sid-sg AuthorDate: Sun Jan 12 02:03:04 2025 +0530 Commit: Ilmari Lauhakangas CommitDate: Wed Feb 12 07:10:30 2025 +0100 tdf#143148: Replace include guards with #pragma once in slideshow module Change-Id: Id48764be9df30bee8d5a803ea78097db9c5c41e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180129 Reviewed-by: Ilmari Lauhakangas Tested-by: Jenkins Reviewed-by: Simon Chenery diff --git a/slideshow/source/engine/activities/accumulation.hxx b/slideshow/source/engine/activities/accumulation.hxx index ec04195597af..66e0cdedd930 100644 --- a/slideshow/source/engine/activities/accumulation.hxx +++ b/slideshow/source/engine/activities/accumulation.hxx @@ -17,8 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACCUMULATION_HXX -#define INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACCUMULATION_HXX +#pragma once #include #include @@ -79,6 +78,4 @@ namespace slideshow::internal } -#endif // INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACCUMULATION_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/slideshow/source/engine/activities/activitybase.hxx b/slideshow/source/engine/activities/activitybase.hxx index e76c84d8e6c5..c341ad5cfbe0 100644 --- a/slideshow/source/engine/activities/activitybase.hxx +++ b/slideshow/source/engine/activities/activitybase.hxx @@ -17,8 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACTIVITYBASE_HXX -#define INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACTIVITYBASE_HXX +#pragma once #include #include "activityparameters.hxx" @@ -138,6 +137,4 @@ private: } // namespace presentation::internal -#endif // INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACTIVITYBASE_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/slideshow/source/engine/activities/activityparameters.hxx b/slideshow/source/engine/activities/activityparameters.hxx index 9df762838530..01eeebe6c91c 100644 --- a/slideshow/source/engine/activities/activityparameters.hxx +++ b/slideshow/source/engine/activities/activityparameters.hxx @@ -17,8 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACTIVITYPARAMETERS_HXX -#define INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACTIVITYPARAMETERS_HXX +#pragma once #include #include @@ -129,6 +128,4 @@ struct ActivityParameters } // namespace presentation::internal -#endif // INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_ACTIVITYPARAMETERS_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/slideshow/source/engine/activities/continuousactivitybase.hxx b/slideshow/source/engine/activities/continuousactivitybase.hxx index 8fd19d421e0c..c6421ea9d461 100644 --- a/slideshow/source/engine/activities/continuousactivitybase.hxx +++ b/slideshow/source/engine/activities/continuousactivitybase.hxx @@ -17,8 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_CONTINUOUSACTIVITYBASE_HXX -#define INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_CONTINUOUSACTIVITYBASE_HXX +#pragma once #include "simplecontinuousactivitybase.hxx" @@ -60,6 +59,4 @@ namespace slideshow::internal } -#endif // INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_CONTINUOUSACTIVITYBASE_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
core.git: basic/source
basic/source/runtime/methods.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 6586dbe9569be562c5be1982d488417fb08b082e Author: Simon Chenery AuthorDate: Tue Feb 11 17:59:27 2025 +0100 Commit: Mike Kaganski CommitDate: Wed Feb 12 07:41:21 2025 +0100 tdf#154285 Check too many arguments to SbRtl_Abs() for BASIC ABS function Change-Id: I82f1df998afca37f5e14baacc9c36339596724ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181447 Tested-by: Jenkins Reviewed-by: Mike Kaganski diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index d9cdd59cd053..e1353bb5d66d 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -287,7 +287,7 @@ void SbRtl_Atn(StarBASIC *, SbxArray & rPar, bool) void SbRtl_Abs(StarBASIC *, SbxArray & rPar, bool) { -if (rPar.Count() < 2) +if (rPar.Count() != 2) return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT ); SbxVariableRef pArg = rPar.Get(1);
core.git: 3 commits - include/vcl vcl/inc vcl/source
include/vcl/accessibility/AccessibleBrowseBox.hxx |7 - include/vcl/accessibility/AccessibleBrowseBoxBase.hxx | 64 -- include/vcl/accessibility/AccessibleBrowseBoxCheckBoxCell.hxx | 18 -- include/vcl/accessibility/AccessibleBrowseBoxHeaderCell.hxx |2 include/vcl/accessibility/AccessibleBrowseBoxTableBase.hxx|8 - include/vcl/accessibility/AccessibleBrowseBoxTableCell.hxx|9 - vcl/inc/accessibility/vclxaccessiblelistitem.hxx |2 vcl/source/accessibility/AccessibleBrowseBox.cxx | 13 -- vcl/source/accessibility/AccessibleBrowseBoxBase.cxx | 39 +- vcl/source/accessibility/AccessibleBrowseBoxCheckBoxCell.cxx | 27 +--- vcl/source/accessibility/AccessibleBrowseBoxHeaderCell.cxx| 17 +- vcl/source/accessibility/AccessibleBrowseBoxTableBase.cxx |7 - vcl/source/accessibility/AccessibleBrowseBoxTableCell.cxx | 11 - vcl/source/accessibility/vclxaccessiblelistitem.cxx | 34 + 14 files changed, 55 insertions(+), 203 deletions(-) New commits: commit f1fdedb2f5d1ab108678c07cdce2a5d692ff1760 Author: Michael Weghorn AuthorDate: Tue Feb 11 11:21:29 2025 +0100 Commit: Michael Weghorn CommitDate: Wed Feb 12 08:06:57 2025 +0100 listbox a11y: Consistently lock (only) SolarMutex So far, some of the public XAccessible* method implementations were locking only the SolarMutex, some were locking only `m_aMutex` and some were locking both. Unify that to always lock only the SolarMutex in all of those methods. Change-Id: Ia6e7655d47a372d4b70d3c7de8715881b9aaddc5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181428 Reviewed-by: Michael Weghorn Tested-by: Jenkins diff --git a/vcl/inc/accessibility/vclxaccessiblelistitem.hxx b/vcl/inc/accessibility/vclxaccessiblelistitem.hxx index b6b1e7e9cc47..271db9613648 100644 --- a/vcl/inc/accessibility/vclxaccessiblelistitem.hxx +++ b/vcl/inc/accessibility/vclxaccessiblelistitem.hxx @@ -75,7 +75,7 @@ private: virtual css::lang::Locale implGetLocale() override; virtual voidimplGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override; -OUString getTextRangeImpl(std::unique_lock& rGuard, sal_Int32 nStartIndex, sal_Int32 nEndIndex); +OUString getTextRangeImpl(sal_Int32 nStartIndex, sal_Int32 nEndIndex); public: /** OAccessibleBase needs a valid view diff --git a/vcl/source/accessibility/vclxaccessiblelistitem.cxx b/vcl/source/accessibility/vclxaccessiblelistitem.cxx index 6465f627a717..4810324f08c3 100644 --- a/vcl/source/accessibility/vclxaccessiblelistitem.cxx +++ b/vcl/source/accessibility/vclxaccessiblelistitem.cxx @@ -201,7 +201,7 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleChild( sa Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleParent( ) { -std::unique_lock aGuard( m_aMutex ); +SolarMutexGuard aSolarGuard; return m_xParent; } @@ -225,7 +225,7 @@ OUString SAL_CALL VCLXAccessibleListItem::getAccessibleDescription( ) OUString SAL_CALL VCLXAccessibleListItem::getAccessibleName( ) { -std::unique_lock aGuard( m_aMutex ); +SolarMutexGuard aSolarGuard; // entry text == accessible name return m_sEntryText; @@ -238,7 +238,7 @@ Reference< XAccessibleRelationSet > SAL_CALL VCLXAccessibleListItem::getAccessib sal_Int64 SAL_CALL VCLXAccessibleListItem::getAccessibleStateSet( ) { -std::unique_lock aGuard( m_aMutex ); +SolarMutexGuard aSolarGuard; sal_Int64 nStateSet = 0; @@ -271,7 +271,6 @@ sal_Int64 SAL_CALL VCLXAccessibleListItem::getAccessibleStateSet( ) Locale SAL_CALL VCLXAccessibleListItem::getLocale( ) { SolarMutexGuard aSolarGuard; -std::unique_lock aGuard( m_aMutex ); return implGetLocale(); } @@ -281,7 +280,6 @@ Locale SAL_CALL VCLXAccessibleListItem::getLocale( ) sal_Bool SAL_CALL VCLXAccessibleListItem::containsPoint( const awt::Point& _aPoint ) { SolarMutexGuard aSolarGuard; -std::unique_lock aGuard( m_aMutex ); bool bInside = false; IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr; @@ -302,7 +300,6 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleAtPoint( awt::Rectangle SAL_CALL VCLXAccessibleListItem::getBounds( ) { SolarMutexGuard aSolarGuard; -std::unique_lock aGuard( m_aMutex ); awt::Rectangle aRect; IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr; @@ -316,7 +313,6 @@ awt::Rectangle SAL_CALL VCLXAccessibleListItem::getBounds( ) awt::Point SAL_CALL VCLXAccessibleListItem::getLocation( ) { SolarMutexGuard aSolarGuard; -std::unique_lock aGuard( m_aMutex ); Point aPoint(0,0); IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getLi
core.git: 3 commits - vcl/inc vcl/source
vcl/inc/accessibility/listboxhelper.hxx |5 -- vcl/inc/accessibility/vclxaccessiblelist.hxx|6 +- vcl/inc/accessibility/vclxaccessiblelistitem.hxx|3 + vcl/source/accessibility/vclxaccessiblelist.cxx | 30 vcl/source/accessibility/vclxaccessiblelistitem.cxx | 50 +++- 5 files changed, 36 insertions(+), 58 deletions(-) New commits: commit 59640987b0e45b6b58ca48dda0ac036ba47e42ca Author: Michael Weghorn AuthorDate: Tue Feb 11 14:58:34 2025 +0100 Commit: Michael Weghorn CommitDate: Wed Feb 12 08:07:14 2025 +0100 list a11y: Fix parent-relative position So far, VCLXAccessibleList::implGetBounds (which is supposed to report the bounds relative to the direct parent) and VCLXAccessibleList::getLocationOnScreen (which is supposed to report the absolte screen position) were mostly duplicating the logic. VCLXAccessibleList::getLocationOnScreen seems correct, but VCLXAccessibleList::implGetBounds reported an incorrect position for an expanded combobox list. This is because VCLListBoxHelper::GetDropDownPosSizePixel was returning a screen position, not a position relative to the parent. Fix this by: * Making VCLListBoxHelper::GetDropDownPosSizePixel return a parent-relative position instead. * Adjusting VCLXAccessibleList::getLocationOnScreen to not duplicate most of the logic, but calling VCLXAccessibleList::implGetBounds to get the parent-relative position and then adding the parent's screen position to get the own screen position. The fact that the parent-relative position is incorrect was noticed while working on fixing the parent-relative position reported by VCLXAccessibleListItem and even with an issue in the implementation there, the incorrect position was still reported. (The VCLXAccessibleListItem will be done in a separate upcoming commit.) Change-Id: I322327753ceec7bc7912ec13c45e208a79dd6976 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181431 Reviewed-by: Michael Weghorn Tested-by: Jenkins diff --git a/vcl/inc/accessibility/listboxhelper.hxx b/vcl/inc/accessibility/listboxhelper.hxx index 5fd43e6eedd1..907524641734 100644 --- a/vcl/inc/accessibility/listboxhelper.hxx +++ b/vcl/inc/accessibility/listboxhelper.hxx @@ -49,10 +49,7 @@ public: virtual tools::Rectangle GetDropDownPosSizePixel() const override { -AbsoluteScreenPixelRectangle aTemp = m_aComboListBox.GetWindowExtentsAbsolute(); -tools::Rectangle aRet = m_aComboListBox.GetDropDownPosSizePixel(); -aRet.Move(aTemp.Left(), aTemp.Top()); -return aRet; +return m_aComboListBox.GetDropDownPosSizePixel(); } virtual tools::Rectangle GetBoundingRectangle( sal_uInt16 nItem ) const override diff --git a/vcl/source/accessibility/vclxaccessiblelist.cxx b/vcl/source/accessibility/vclxaccessiblelist.cxx index ed166c7274be..784c04cfbd9f 100644 --- a/vcl/source/accessibility/vclxaccessiblelist.cxx +++ b/vcl/source/accessibility/vclxaccessiblelist.cxx @@ -882,7 +882,8 @@ awt::Rectangle VCLXAccessibleList::implGetBounds() else { // a list has the same bounds as his parent but starts at (0,0) -aBounds = VCLXAccessibleComponent::implGetBounds(); +if (m_xParent) +aBounds = m_xParent->getBounds(); aBounds.X = 0; aBounds.Y = 0; if ( m_aBoxType == COMBOBOX ) @@ -905,26 +906,15 @@ awt::Point VCLXAccessibleList::getLocationOnScreen( ) SolarMutexGuard aSolarGuard; ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() ); -awt::Point aPos; -if ( m_pListBoxHelper -&& (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN ) +awt::Rectangle aBounds = implGetBounds(); +awt::Point aPos(aBounds.X, aBounds.Y); +if (m_xParent.is()) { -if ( m_pListBoxHelper->IsInDropDown() ) -aPos = vcl::unohelper::ConvertToAWTPoint( -m_pListBoxHelper->GetDropDownPosSizePixel().TopLeft()); -} -else -{ -aPos = VCLXAccessibleComponent::getLocationOnScreen(); -if ( m_aBoxType == COMBOBOX ) -{ -VclPtr< ComboBox > pBox = GetAs< ComboBox >(); -if ( pBox ) -{ -aPos.Y += pBox->GetSubEdit()->GetSizePixel().Height(); -} -} +awt::Point aParentLocation = m_xParent->getLocationOnScreen(); +aPos.X += aParentLocation.X; +aPos.Y += aParentLocation.Y; } + return aPos; } commit 7bcd976db8b29b86b49bdb4c33d07ef156f1fa8f Author: Michael Weghorn AuthorDate: Tue Feb 11 14:44:30 2025 +0100 Commit: Michael Weghorn CommitDate: Wed Feb 12 08:07:08 2025 +0100 list a11y: Use ref to concrete VCLXAccessibleBox This will come in handy when simplifying and fixing VCLXAcces
core.git: 2 commits - vcl/inc vcl/source
vcl/inc/accessibility/vclxaccessiblelistitem.hxx| 38 +- vcl/source/accessibility/vclxaccessiblelistitem.cxx | 122 ++-- 2 files changed, 24 insertions(+), 136 deletions(-) New commits: commit 95aaa121a5705a029f147a92d5818469c161ce92 Author: Michael Weghorn AuthorDate: Tue Feb 11 15:32:59 2025 +0100 Commit: Michael Weghorn CommitDate: Wed Feb 12 08:07:25 2025 +0100 list item a11y: Use comphelper::OAccessibleComponentHelper Let VCLXAccessibleListItem subclass comphelper::OAccessibleComponentHelper which already implements the logic for event handling and most of the location/bounds handling, instead of duplicating the logic here. The existing VCLXAccessibleListItem::implGetBounds basically already implements the logic needed to override the purely virtual comphelper::OAccessibleComponentHelper::implGetBounds, only the required conversion from tools::Rectangle to awt::Rectangle is still added in this commit. Tested as described in more detail in previous commit Change-Id: I53c686276537713fec604eb22d19be2331ce1f56 Author: Michael Weghorn Date: Tue Feb 11 15:13:41 2025 +0100 list item a11y: Fix parent-relative position with no change in behavior noticed (now that the issues detected previously have been addressed in previous commits already in preparation for this commit). Change-Id: I74e53e3297948977bed1b8608468dc8378859426 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181433 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/vcl/inc/accessibility/vclxaccessiblelistitem.hxx b/vcl/inc/accessibility/vclxaccessiblelistitem.hxx index 5345de57ffe9..e3d3b87abc35 100644 --- a/vcl/inc/accessibility/vclxaccessiblelistitem.hxx +++ b/vcl/inc/accessibility/vclxaccessiblelistitem.hxx @@ -21,10 +21,7 @@ #include #include -#include -#include #include -#include #include #include #include @@ -42,18 +39,13 @@ namespace com::sun::star::awt { // class VCLXAccessibleListItem -- -typedef ::comphelper::WeakComponentImplHelper< css::accessibility::XAccessible -, css::accessibility::XAccessibleContext -, css::accessibility::XAccessibleComponent -, css::accessibility::XAccessibleEventBroadcaster -, css::accessibility::XAccessibleText -, css::lang::XServiceInfo > VCLXAccessibleListItem_BASE; - /** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry */ -class VCLXAccessibleListItem final : - public ::comphelper::OCommonAccessibleText, - public VCLXAccessibleListItem_BASE +class VCLXAccessibleListItem final +: public cppu::ImplInheritanceHelper< + comphelper::OAccessibleComponentHelper, css::accessibility::XAccessible, + css::accessibility::XAccessibleText, css::lang::XServiceInfo>, + public comphelper::OCommonAccessibleText { private: OUStringm_sEntryText; @@ -61,22 +53,19 @@ private: boolm_bSelected; boolm_bVisible; -/// client id in the AccessibleEventNotifier queue -sal_uInt32 m_nClientId; - rtl::Reference< VCLXAccessibleList > m_xParent; virtual ~VCLXAccessibleListItem() override = default; -/** this function is called upon disposing the component -*/ -virtual void disposing(std::unique_lock& rGuard) override; + +virtual void SAL_CALL disposing() override; // OCommonAccessibleText virtual OUStringimplGetText() override; virtual css::lang::Locale implGetLocale() override; virtual voidimplGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override; -tools::Rectangle implGetBounds(); +// OCommonAccessibleComponent +virtual css::awt::Rectangle implGetBounds() override; OUString getTextRangeImpl(sal_Int32 nStartIndex, sal_Int32 nEndIndex); @@ -120,12 +109,7 @@ public: virtual css::lang::Locale SAL_CALL getLocale( ) override; // XAccessibleComponent -virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override; virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override; -virtual css::awt::Rectangle SAL_CALL getBounds( ) override; -virtual css::awt::Point SAL_CALL getLocation( ) override; -virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override; -vi
core.git: sc/inc sc/source
sc/inc/scfuncs.hrc | 12 sc/source/core/data/funcdesc.cxx |4 ++-- sc/source/core/tool/parclass.cxx |4 ++-- sc/source/filter/excel/xlformula.cxx |4 ++-- sc/source/filter/oox/formulabase.cxx |4 ++-- 5 files changed, 12 insertions(+), 16 deletions(-) New commits: commit 7a2fec66b5f2c527b79db312135e3691bb8b56ac Author: Xisco Fauli AuthorDate: Tue Feb 11 16:44:36 2025 +0100 Commit: Xisco Fauli CommitDate: Tue Feb 11 20:57:44 2025 +0100 tdf#165119: fix number of parameters in CHOOSECOLS/CHOOSEROWS Change-Id: I39fee81e0fc8aaa33265a3539bd4e6dff5d9d2e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181439 Tested-by: Jenkins Reviewed-by: Xisco Fauli diff --git a/sc/inc/scfuncs.hrc b/sc/inc/scfuncs.hrc index ab93fde00834..8f9e795955b7 100644 --- a/sc/inc/scfuncs.hrc +++ b/sc/inc/scfuncs.hrc @@ -4257,10 +4257,8 @@ const TranslateId SC_OPCODE_CHOOSECOLS_ARY[] = NC_("SC_OPCODE_CHOOSECOLS", "Returns the specified columns from an array."), NC_("SC_OPCODE_CHOOSECOLS", "Array"), NC_("SC_OPCODE_CHOOSECOLS", "The array containing the columns to be returned in the new array."), -NC_("SC_OPCODE_CHOOSECOLS", "Column 1"), -NC_("SC_OPCODE_CHOOSECOLS", "The number of the first column to be returned."), -NC_("SC_OPCODE_CHOOSECOLS", "Column 2"), -NC_("SC_OPCODE_CHOOSECOLS", "Column 2, Column 3,... The list of column numbers to be returned.") +NC_("SC_OPCODE_CHOOSECOLS", "Column "), +NC_("SC_OPCODE_CHOOSECOLS", "Column 1, Column 2,... The list of column numbers to be returned.") }; // -=*# Resource for function CHOOSEROWS #*=- @@ -4269,10 +4267,8 @@ const TranslateId SC_OPCODE_CHOOSEROWS_ARY[] = NC_("SC_OPCODE_CHOOSEROWS", "Returns the specified rows from an array."), NC_("SC_OPCODE_CHOOSEROWS", "Array"), NC_("SC_OPCODE_CHOOSEROWS", "The array containing the rows to be returned in the new array."), -NC_("SC_OPCODE_CHOOSEROWS", "Row 1"), -NC_("SC_OPCODE_CHOOSEROWS", "The number of the first row to be returned."), -NC_("SC_OPCODE_CHOOSEROWS", "Row 2"), -NC_("SC_OPCODE_CHOOSEROWS", "Row 2, Row 3,... The list of row numbers to be returned.") +NC_("SC_OPCODE_CHOOSEROWS", "Row "), +NC_("SC_OPCODE_CHOOSEROWS", "Row 1, Row 2,... The list of row numbers to be returned.") }; // -=*# Resource for function DROP #*=- diff --git a/sc/source/core/data/funcdesc.cxx b/sc/source/core/data/funcdesc.cxx index a916d380f651..a8eec7591813 100644 --- a/sc/source/core/data/funcdesc.cxx +++ b/sc/source/core/data/funcdesc.cxx @@ -793,8 +793,8 @@ ScFunctionList::ScFunctionList( bool bEnglishFunctionNames ) { SC_OPCODE_SORTBY, ENTRY(SC_OPCODE_SORTBY_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_SORTBY_MS, PAIRED_VAR_ARGS + 1, { 0, 0, 1 }, 0 }, { SC_OPCODE_MAT_SEQUENCE, ENTRY(SC_OPCODE_MAT_SEQUENCE_ARY), 0, ID_FUNCTION_GRP_MATRIX, HID_FUNC_MSEQUENCE_MS, 4, { 0, 1, 1, 1 }, 0 }, { SC_OPCODE_RANDARRAY, ENTRY(SC_OPCODE_RANDARRAY_ARY), 0, ID_FUNCTION_GRP_MATH, HID_FUNC_RANDARRAY_MS, 5, { 1, 1, 1, 1, 1 }, 0 }, -{ SC_OPCODE_CHOOSECOLS, ENTRY(SC_OPCODE_CHOOSECOLS_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_CHOOSECOLS_MS, VAR_ARGS + 2, { 0, 0, 1 }, 0 }, -{ SC_OPCODE_CHOOSEROWS, ENTRY(SC_OPCODE_CHOOSEROWS_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_CHOOSEROWS_MS, VAR_ARGS + 2, { 0, 0, 1 }, 0 }, +{ SC_OPCODE_CHOOSECOLS, ENTRY(SC_OPCODE_CHOOSECOLS_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_CHOOSECOLS_MS, VAR_ARGS + 1, { 0, 0 }, 0 }, +{ SC_OPCODE_CHOOSEROWS, ENTRY(SC_OPCODE_CHOOSEROWS_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_CHOOSEROWS_MS, VAR_ARGS + 1, { 0, 0 }, 0 }, { SC_OPCODE_DROP, ENTRY(SC_OPCODE_DROP_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_DROP_MS, 3, { 0, 0, 1 }, 0 }, { SC_OPCODE_EXPAND, ENTRY(SC_OPCODE_EXPAND_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_EXPAND_MS, 4, { 0, 0, 1, 1 }, 0 }, { SC_OPCODE_HSTACK, ENTRY(SC_OPCODE_HSTACK_ARY), 0, ID_FUNCTION_GRP_TABLE, HID_FUNC_HSTACK_MS, VAR_ARGS + 1, { 0, 1 }, 0 }, diff --git a/sc/source/core/tool/parclass.cxx b/sc/source/core/tool/parclass.cxx index e556817fec9d..204c9a943f7d 100644 --- a/sc/source/core/tool/parclass.cxx +++ b/sc/source/core/tool/parclass.cxx @@ -57,8 +57,8 @@ const ScParameterClassification::RawData ScParameterClassification::pRawData[] = { ocIfError, {{ Array, Reference }, 0, Value }}, { ocIfNA,{{ Array, Reference }, 0, Value }}, { ocChoose, {{ Array, Reference }, 1, Value }}, -{ ocChooseCols, {{ ReferenceOrRefArray, ReferenceOrRefArray, ReferenceOrRefArray, }, 2, ForceArrayReturn }}, -{ ocChooseRows, {{ ReferenceOrRefArray, ReferenceOrRefArray, ReferenceOrRefArray, }, 2, ForceArrayReturn }}, +{ ocChooseCols, {{ ReferenceOrRefArray, ReferenceOrRef
core.git: 2 commits - download.lst
download.lst |8 1 file changed, 4 insertions(+), 4 deletions(-) New commits: commit fe39e60102f34f6dba59828579ee75e4c05486e0 Author: Xisco Fauli AuthorDate: Tue Feb 11 17:36:26 2025 +0100 Commit: Xisco Fauli CommitDate: Tue Feb 11 20:58:34 2025 +0100 openssl: upgrade to 3.0.16 Downloaded from https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz Change-Id: I9eeb10132455be1240cbe7312275d5211dee3600 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181442 Tested-by: Jenkins Reviewed-by: Xisco Fauli diff --git a/download.lst b/download.lst index 1ba0133c8775..249a2fbc8b05 100644 --- a/download.lst +++ b/download.lst @@ -543,8 +543,8 @@ OPENLDAP_TARBALL := openldap-2.6.9.tgz # three static lines # so that git cherry-pick # will not run into conflicts -OPENSSL_SHA256SUM := 23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533 -OPENSSL_TARBALL := openssl-3.0.15.tar.gz +OPENSSL_SHA256SUM := 57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86 +OPENSSL_TARBALL := openssl-3.0.16.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit 0b0e651f2ffc6ce86fbf6db3f79225403dfbf2cd Author: Xisco Fauli AuthorDate: Tue Feb 11 17:40:43 2025 +0100 Commit: Xisco Fauli CommitDate: Tue Feb 11 20:58:23 2025 +0100 xmlsec: upgrade to 1.3.7 Downloaded from https://www.aleksey.com/xmlsec/download/xmlsec1-1.3.7.tar.gz Change-Id: I0f49daab676969ef2bd9452825cd02e2c7aa7037 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181444 Reviewed-by: Xisco Fauli Tested-by: Jenkins diff --git a/download.lst b/download.lst index 9fa191045967..1ba0133c8775 100644 --- a/download.lst +++ b/download.lst @@ -454,8 +454,8 @@ LIBWEBP_TARBALL := libwebp-1.5.0.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -XMLSEC_SHA256SUM := 952b626ad3f3be1a4598622dab52fdab2a8604d0837c1b00589f3637535af92f -XMLSEC_TARBALL := xmlsec1-1.3.6.tar.gz +XMLSEC_SHA256SUM := d82e93b69b8aa205a616b62917a269322bf63a3eaafb3775014e61752b2013ea +XMLSEC_TARBALL := xmlsec1-1.3.7.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts
core.git: sw/qa sw/source
sw/qa/extras/rtfimport/rtfimport.cxx |7 +++ sw/source/writerfilter/rtftok/rtfdispatchvalue.cxx |6 ++ 2 files changed, 13 insertions(+) New commits: commit 0e0ae62ded3f72768bc06e38253dacbf5af0ed5a Author: Oliver Specht AuthorDate: Tue Jan 28 14:16:07 2025 +0100 Commit: Gabor Kelemen CommitDate: Tue Feb 11 21:26:30 2025 +0100 tdf#164266 RTF: border distance in style is not applied to table Attributes from styles are only valid if they are repeated at the location where the style is applied. Change-Id: I0083b833266346084d51aaf78a162b96012a0dab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180835 Reviewed-by: Gabor Kelemen Tested-by: Jenkins Tested-by: Gabor Kelemen diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 515fae3c4a5c..54315245036d 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -1958,6 +1958,13 @@ CPPUNIT_TEST_FIXTURE(Test, test162198Tdf) sal_Int32 nRightDistance = getProperty(xCellPropSet, u"LeftBorderDistance"_ustr); CPPUNIT_ASSERT_EQUAL_MESSAGE("left cell spacing to contents", sal_Int32(9), nLeftDistance); CPPUNIT_ASSERT_EQUAL_MESSAGE("right cell spacing to contents", sal_Int32(9), nRightDistance); + +xCell = xTable1->getCellByName(u"B1"_ustr); +xCellPropSet = uno::Reference(xCell, uno::UNO_QUERY_THROW); +nLeftDistance = getProperty(xCellPropSet, u"LeftBorderDistance"_ustr); +nRightDistance = getProperty(xCellPropSet, u"LeftBorderDistance"_ustr); +CPPUNIT_ASSERT_EQUAL_MESSAGE("left cell spacing to contents", sal_Int32(9), nLeftDistance); +CPPUNIT_ASSERT_EQUAL_MESSAGE("right cell spacing to contents", sal_Int32(9), nRightDistance); } CPPUNIT_TEST_FIXTURE(Test, test153192Tdf) diff --git a/sw/source/writerfilter/rtftok/rtfdispatchvalue.cxx b/sw/source/writerfilter/rtftok/rtfdispatchvalue.cxx index 85ad1613a5dd..d89c3420017a 100644 --- a/sw/source/writerfilter/rtftok/rtfdispatchvalue.cxx +++ b/sw/source/writerfilter/rtftok/rtfdispatchvalue.cxx @@ -665,6 +665,12 @@ bool RTFDocumentImpl::dispatchTableValue(RTFKeyword nKeyword, int nParam) case RTFKeyword::TRPADDR: case RTFKeyword::TRPADDT: { +// tdf#162198 prevent adding attributes to rows/cells from style without +// being repeated at the cell/row level +// this might be required for other attributes, too +if (m_aStates.top().getDestination() == Destination::STYLEENTRY) +return true; + RTFSprms aAttributes; aAttributes.set(NS_ooxml::LN_CT_TblWidth_w, new RTFValue(nParam)); switch (nKeyword)
help.git: source/text
source/text/scalc/01/data_provider.xhp | 40 + 1 file changed, 36 insertions(+), 4 deletions(-) New commits: commit 35b759e6da136e3d46e3e1d08ef2245c50b1d76d Author: Olivier Hallot AuthorDate: Tue Feb 11 18:30:16 2025 -0300 Commit: Olivier Hallot CommitDate: Tue Feb 11 22:34:07 2025 +0100 tdf#137419 (part 2) Data Provider Help page + Refactor, add some bookmark entries, how-to-get ... + Page need further work once the feature is properly documented. Change-Id: I6bfb9fc2c1bef43ee49caef7e5b9d6d5adbd153d Reviewed-on: https://gerrit.libreoffice.org/c/help/+/181462 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/source/text/scalc/01/data_provider.xhp b/source/text/scalc/01/data_provider.xhp index 156c56d862..ef2df39bfa 100644 --- a/source/text/scalc/01/data_provider.xhp +++ b/source/text/scalc/01/data_provider.xhp @@ -31,22 +31,54 @@ data provider;for spreadsheets +data provider;refresh data provider Data Provider for Spreadsheets -Data Provider for Spreadsheets +Imports data from data sources. At present, the supported external data formats include CSV, HTML, XML, and %PRODUCTNAME Base files. +Data may be imported from either local storage, such as CSV files, or from external sources, such as HTML Web Pages. +Additionally, data can be manipulated using various transformations before being loaded into the sheet. + + Choose Data - Data Provider. On the Data tab, choose Data Provider. + + + + +Icon Data Provider + + +Data Provider + + + - + +Database range +The database range to receive the data from the provider. Choose the range from the available dropdown list. +Data Provider +The type of the data to be imported. +URL +The URL of the data provider. If the provider is a local file, insert the file path and name. If the provider is a web service, insert the URL. +Id/Xpath +The target ID for HTML provided data or Xpath for XML provided data. +Transformations +The provided data can be transformed using the available transformations from the dropdown list. You will need to provide further information depending on the transformation. For example, you can set the sort order for the sort transformations. +Add +Click Add to include the selected transformation to the transformation set. Transformations are included at the bottom of the list. +If the order of transformations is important, plan the sequence of transformations in advance. +Delete +Deletes the transformation from the list. +Apply +Applies the transformations to the provided data and displays results in the preview area for inspection. The data is not loaded in the spreadsheet until you press OK. -Data Provider +Refresh Data Provider -
core.git: Branch 'libreoffice-24-8-5' - include/vcl svx/source vcl/source
include/vcl/svapp.hxx |5 - svx/source/unodraw/UnoGraphicExporter.cxx |4 ++-- vcl/source/app/svapp.cxx |8 +--- 3 files changed, 11 insertions(+), 6 deletions(-) New commits: commit 2b2958c1b3ecfdbcd3faf3641b897efdf03b4837 Author: Mike Kaganski AuthorDate: Sat Feb 8 13:32:33 2025 +0500 Commit: Michael Weghorn CommitDate: Tue Feb 11 22:26:47 2025 +0100 tdf#165099: do not notify change listeners about temporary changes Commit bc09a4f1ce1f6a714f7827a404aa6317b503d307 (Disable subpixel AA in GraphicExporter::filter unconditionally, 2024-12-04) had changed GraphicExporter::filter to set application settings unconditionally, instead of only when AA was explicitly set. That uncovered a problem that the change may trigger a rebuild of sidebars; and in slideshow case, it may make the rebuilt sidebars to capture the temporary view created for the slideshow. 1. Slideshow is built; in SlideShow::StartFullscreenPresentation, it creates a new component with a frame, which eventually creates a new sd::DrawController; 2. Slideshow draws its slide(s); in slideshow::internal::getMetaFile, GraphicExporter::filter is called, which would change application settings; 3. Application::SetSettings eventually trigger WindowEventHandler in sfx2::sidebar::SidebarController, with WindowDataChanged; 4. SidebarController::maContextChangeUpdate is called asynchronously, i.e., after all the draw is finished; eventually this will call SidebarController::UpdateConfigurations for SdSlideTransitionDeck, which forces rebuild of the deck; 5. sd::SlideTransitionPane::Initialize resets its mxView to current controller, which is the sd::DrawController created on step 1 for the slideshow; 6. sd::SlideShow::end closes its frame, eventually disposing frame's controller (calling sd::DrawController::dispose); note that this controller is still referenced from sidebar. After that, the sidebar interactions will crash because of unhandled exception thrown from DrawController::ThrowIfDisposed. Note that the change in the abovementioned commit only uncovered the problem; before that change it could still crash, when AA was set in the GraphicExporter::filter call. This change makes sure to not notify listeners in the #3 above, when the change of the settings is only temporary (for the duration of a export). This is similar to the existing bTemporary argument that is already passed to SetAntiAliasing from GraphicExporter::filter. This allows to avoid the unwanted sidebar rebuild; and also, this should improve the filter call performance. The hope is, that this wouldn't modify the result; but if some components, that listen to the change notifications, happen to affect the export, we likely would need to change their behavior to always use Application::GetSettings. It seems to me, that after this change, clicking the first time on a transition after a slideshow will not select it. Seems like another pre-existing problem; it flickered before selection even before the change; likely needs a separate fix. Change-Id: Ia0ba19401ca805c2190926623c1c708cf26a313b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181288 Tested-by: Jenkins Reviewed-by: Mike Kaganski (cherry picked from commit ca31eac04b10fec6bf27a801b9164ec419062763) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181300 Reviewed-by: Xisco Fauli (cherry picked from commit ab33bb9e3e1a3e2039715db6483e412d51a06f01) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181351 (cherry picked from commit d9c7b214c6a040483431e9120099237072aa5bcb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181363 Tested-by: Michael Weghorn Reviewed-by: Ilmari Lauhakangas Reviewed-by: Michael Weghorn Reviewed-by: Jonathan Clark diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx index 2725642763c0..7196ed83f971 100644 --- a/include/vcl/svapp.hxx +++ b/include/vcl/svapp.hxx @@ -641,9 +641,12 @@ public: @param rSettings const reference to settings object used to change the application's settings. + @param bTemporary this is a temporary change (used in GraphicExporter::filter), +do not notify change listeners + @see OverrideSystemSettings, MergeSystemSettings, GetSettings */ -static void SetSettings( const AllSettings& rSettings ); +static void SetSettings( const AllSettings& rSettings, bool bTemporary = false ); /** Gets the application's settings. If the application hasn't initialized it's settings, then it does so (lazy initialization). diff --git a/svx/so
core.git: Branch 'feature/cib_contract891c' - 2 commits - desktop/source external/redland
desktop/source/app/cmdlineargs.cxx |2 - external/redland/ExternalProject_raptor.mk |4 +- external/redland/UnpackedTarball_raptor.mk |1 external/redland/raptor/CVE-2024-57823.patch.1 | 35 + 4 files changed, 39 insertions(+), 3 deletions(-) New commits: commit 441c2470a4756b7210d4a9cdb89595a75b8624ee Author: Michael Stahl AuthorDate: Wed Jan 15 10:55:05 2025 +0100 Commit: Thorsten Behrens CommitDate: Wed Feb 12 00:13:46 2025 +0100 redland: disable all raptor parsers except for "rdfxml" It's the only one the unordf component invokes. CVE-2024-57823 CVE-2024-57822 affect the "ntriples" and "turtle" parsers. However it appears that the function raptor_uri_normalize_path() could also be called from raptor_libxml_* functions? Somewhat unclear, let's add the patch just in case. Change-Id: Idd7ebbc29c63e84ca2434b06c26f7aca34bdcaa5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180272 Tested-by: Jenkins Reviewed-by: Michael Stahl (cherry picked from commit 2b50dc0e4482ac0ad27d69147b4175e05af4fba4) (cherry picked from commit 1ac4aa8db84ee647b471edbdd9a702e66fe52e78) diff --git a/external/redland/ExternalProject_raptor.mk b/external/redland/ExternalProject_raptor.mk index 70e28edf99b8..52511ea822ac 100644 --- a/external/redland/ExternalProject_raptor.mk +++ b/external/redland/ExternalProject_raptor.mk @@ -25,8 +25,8 @@ $(call gb_ExternalProject_get_state_target,raptor,build): $(if $(SYSBASE),$(if $(filter LINUX SOLARIS,$(OS)),-L$(SYSBASE)/lib -L$(SYSBASE)/usr/lib -lpthread -ldl))" \ CPPFLAGS="$(if $(SYSBASE),-I$(SYSBASE)/usr/include)" \ ./configure --disable-gtk-doc \ ---enable-parsers="rdfxml ntriples turtle trig guess rss-tag-soup" \ - --with-www=xml \ + --enable-parsers="rdfxml" \ + --without-www \ --without-xslt-config \ $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) \ $(if $(filter INTEL ARM,$(CPUNAME)),ac_cv_c_bigendian=no)) \ diff --git a/external/redland/UnpackedTarball_raptor.mk b/external/redland/UnpackedTarball_raptor.mk index 961047e16d3a..b69ca71de59a 100644 --- a/external/redland/UnpackedTarball_raptor.mk +++ b/external/redland/UnpackedTarball_raptor.mk @@ -30,6 +30,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,raptor,\ external/redland/raptor/libtool.patch \ external/redland/raptor/Wint-conversion.patch \ external/redland/raptor/raptor-libxml2-11.patch.1 \ + external/redland/raptor/CVE-2024-57823.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/redland/raptor/CVE-2024-57823.patch.1 b/external/redland/raptor/CVE-2024-57823.patch.1 new file mode 100644 index ..b06689304b0a --- /dev/null +++ b/external/redland/raptor/CVE-2024-57823.patch.1 @@ -0,0 +1,35 @@ +--- raptor2-2.0.15/src/raptor_rfc2396.c.CVE-2024-57823 2014-07-26 23:07:37.0 +0200 raptor2-2.0.15/src/raptor_rfc2396.c2025-01-13 12:59:22.175568228 +0100 +@@ -289,10 +289,8 @@ raptor_uri_normalize_path(unsigned char* + } + + +-#if defined(RAPTOR_DEBUG) + if(path_len != strlen((const char*)path_buffer)) + RAPTOR_FATAL4("Path '%s' length %ld does not match calculated %ld.", (const char*)path_buffer, (long)strlen((const char*)path_buffer), (long)path_len); +-#endif + + /* Remove all "/../" path components */ + +@@ -327,10 +325,8 @@ raptor_uri_normalize_path(unsigned char* + if(!prev || !cur) + continue; + +-#if defined(RAPTOR_DEBUG) + if(path_len != strlen((const char*)path_buffer)) + RAPTOR_FATAL3("Path length %ld does not match calculated %ld.", (long)strlen((const char*)path_buffer), (long)path_len); +-#endif + + /* If the current one is '..' */ + if(s == (cur+2) && cur[0] == '.' && cur[1] == '.') { +@@ -393,10 +389,8 @@ raptor_uri_normalize_path(unsigned char* + } + + +-#if defined(RAPTOR_DEBUG) + if(path_len != strlen((const char*)path_buffer)) + RAPTOR_FATAL3("Path length %ld does not match calculated %ld.", (long)strlen((const char*)path_buffer), (long)path_len); +-#endif + + /* RFC3986 Appendix C.2 / 5.4.2 Abnormal Examples +* Remove leading /../ and /./ commit 977c5f78f62de259843116691a8f18efe9f0ec4a Author: Caolán McNamara AuthorDate: Thu Jan 30 20:37:38 2025 + Commit: Thorsten Behrens CommitDate: Wed Feb 12 00:11:30 2025 +0100 Filter out more unwanted command URIs Change-Id: I24c95d73b4fee89bdf044d5dd6efc9cd89627c54 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180970 Tested-by: Jenkins Reviewed-by: Mike Kaganski Reviewed-by: Caolán McNamara diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx index
core.git: sc/uiconfig
sc/uiconfig/scalc/ui/dataproviderdlg.ui | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) New commits: commit 5a77b665a40b606ba914f361d4d4271be0a064c6 Author: Olivier Hallot AuthorDate: Tue Feb 11 11:32:03 2025 -0300 Commit: Olivier Hallot CommitDate: Wed Feb 12 00:49:13 2025 +0100 tdf#165196 Help button to Data Provider dialog + Rename dialog button container (was blank) Change-Id: I2da0a2896635565fc534bfc9513620e40f72069c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181425 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/sc/uiconfig/scalc/ui/dataproviderdlg.ui b/sc/uiconfig/scalc/ui/dataproviderdlg.ui index 23eb805a6066..1661562081d0 100644 --- a/sc/uiconfig/scalc/ui/dataproviderdlg.ui +++ b/sc/uiconfig/scalc/ui/dataproviderdlg.ui @@ -13,7 +13,7 @@ vertical 12 - + False 6 6 @@ -48,6 +48,21 @@ 1 + + +_Help +True +True +True +True + + +True +True +2 +True + + False @@ -407,6 +422,7 @@ ok cancel + help
Siddharth Sengupta license statement
All of my past & future contributions to LibreOffice may be licensed under the MPLv2/LGPLv3+ dual license.
core.git: Branch 'feature/cib_contract49d' - sw/qa sw/source
sw/qa/extras/unowriter/data/tdf164921.odt |binary sw/qa/extras/unowriter/unowriter.cxx | 43 ++ sw/source/core/doc/docnum.cxx | 19 +++-- 3 files changed, 60 insertions(+), 2 deletions(-) New commits: commit b262c9b31d192d2b750bbbcc11e31388c526fb76 Author: Oliver Specht AuthorDate: Wed Jan 29 12:38:55 2025 +0100 Commit: Gabor Kelemen CommitDate: Wed Feb 12 08:32:54 2025 +0100 tdf#164921 Renaming list styles fixed User defined list styles are now correctly updated in paragraph styles that are using them and only directly applied to paragraphs that had a direct formating before. Change-Id: I9b671655ffa430d643c48fc35f15f38b41de4b9b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180927 Reviewed-by: Gabor Kelemen Tested-by: allotropia jenkins diff --git a/sw/qa/extras/unowriter/data/tdf164921.odt b/sw/qa/extras/unowriter/data/tdf164921.odt new file mode 100644 index ..b24b4b6f3299 Binary files /dev/null and b/sw/qa/extras/unowriter/data/tdf164921.odt differ diff --git a/sw/qa/extras/unowriter/unowriter.cxx b/sw/qa/extras/unowriter/unowriter.cxx index f39448455bbf..56725817393a 100644 --- a/sw/qa/extras/unowriter/unowriter.cxx +++ b/sw/qa/extras/unowriter/unowriter.cxx @@ -43,6 +43,7 @@ #include #include #include +#include #include #include @@ -1330,6 +1331,48 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf162480) CPPUNIT_ASSERT_EQUAL(xCellText, xAnchorRange->getText()); } +CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf164921) +{ +// check renaming list style +OUString sChangedListStyle = u"ChangedListStyle"_ustr; + +{ +createSwDoc("tdf164921.odt"); +//change list style name +//auto xModel = mxComponent.queryThrow(); +uno::Reference xSFS(mxComponent, uno::UNO_QUERY); +uno::Reference xListStyles( +xSFS->getStyleFamilies()->getByName(u"NumberingStyles"_ustr), uno::UNO_QUERY); +uno::Reference xListStyle(xListStyles->getByName(u"NewListStyle"_ustr), + uno::UNO_QUERY); +xListStyle->setName(sChangedListStyle); + +utl::MediaDescriptor aMediaDescriptor; +aMediaDescriptor[u"FilterName"_ustr] <<= u"writer8"_ustr; +uno::Reference const xStorable(mxComponent, uno::UNO_QUERY); +xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); +} +{ +saveAndReload(u"writer8"_ustr); + +uno::Reference xSFS(mxComponent, uno::UNO_QUERY); +uno::Reference xListStyles( +xSFS->getStyleFamilies()->getByName(u"NumberingStyles"_ustr), uno::UNO_QUERY); +uno::Reference xNewListStyle( +xListStyles->getByName(u"ChangedListStyle"_ustr), uno::UNO_QUERY); + +CPPUNIT_ASSERT_EQUAL(xNewListStyle->getName(), sChangedListStyle); + +uno::Reference xParaStyles( +xSFS->getStyleFamilies()->getByName(u"ParagraphStyles"_ustr), uno::UNO_QUERY); +uno::Reference xBodyTextStyle(xParaStyles->getByName("Text body"), + uno::UNO_QUERY); + +rtl::OUString sListStyleName; +xBodyTextStyle->getPropertyValue(u"NumberingStyleName"_ustr) >>= sListStyleName; +CPPUNIT_ASSERT_EQUAL(sListStyleName, sChangedListStyle); +} +} } // end of anonymous namespace CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx index 93f29d72f1fb..1a39c3a96073 100644 --- a/sw/source/core/doc/docnum.cxx +++ b/sw/source/core/doc/docnum.cxx @@ -1181,12 +1181,27 @@ bool SwDoc::RenameNumRule(const OUString & rOldName, const OUString & rNewName, pNumRule->GetTextNodeList( aTextNodeList ); pNumRule->SetName( rNewName, getIDocumentListsAccess() ); - SwNumRuleItem aItem(rNewName); +const size_t nArrLen = GetTextFormatColls()->size(); +for( size_t i = 0; i < nArrLen; i++ ) +{ +SwTextFormatColl* pColl = (*GetTextFormatColls())[ i ]; +const SwAttrSet& rAttrSet = pColl->GetAttrSet(); + +const SfxPoolItem* pTempItem = nullptr; +if (SfxItemState::SET == rAttrSet.GetItemState(RES_PARATR_NUMRULE, false, &pTempItem)) +{ +const SwNumRuleItem* pNumItem = static_cast(pTempItem); +if (pNumItem->GetValue().equals(rOldName)) +pColl->SetFormatAttr( aItem ); +} +} + for ( SwTextNode* pTextNd : aTextNodeList ) { -pTextNd->SetAttr(aItem); +if (SfxItemState::SET == pTextNd->GetSwAttrSet().GetItemState(RES_PARATR_NUMRULE, false)) +pTextNd->SetAttr(aItem); } bResult = true;