GSoC'23 Week 3 Report: More Certificate Manager Improvements
Dear everyone, I hope this email finds you well. Excited to share the current progress in GSoC. You can find the complete report on my blog at the following link: https://tokiesan.github.io/blogposts/gsoc/week_3_report.html *TL;DR*: Improved LibreOffice certificate managers' integration and optimized certificate caching for enhanced user experience. I would like to express my extreme gratitude to Thorsten Behrens, Heiko Tietze, and Hossein Nourikhah for their invaluable guidance throughout this journey. Stay tuned for more updates in the upcoming weeks! If you have any suggestions, questions, or just want to chat, please feel free to reach out to me. Best regards, Tokhy
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - svgio/inc svgio/qa svgio/source
svgio/inc/svgnode.hxx |3 svgio/qa/cppunit/SvgImportTest.cxx | 19 svgio/qa/cppunit/data/tdf156034.svg | 20 + svgio/source/svgreader/svgnode.cxx | 140 ++-- 4 files changed, 115 insertions(+), 67 deletions(-) New commits: commit 47a7f7e41e4c89ebeacab26d31dc78a2ffa94311 Author: Xisco Fauli AuthorDate: Fri Jun 23 12:59:17 2023 +0200 Commit: Xisco Fauli CommitDate: Sat Jun 24 09:36:37 2023 +0200 tdf#156034: check for css style further up in the hierarchy Change-Id: I92c6673f1249cc4a273c490cdc0496474ce1f0c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153498 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit dc7f80159823ef00048d9f5c2716e3122654cbbb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153518 diff --git a/svgio/inc/svgnode.hxx b/svgio/inc/svgnode.hxx index f2eb0fcb1b6e..af23bc4eb32f 100644 --- a/svgio/inc/svgnode.hxx +++ b/svgio/inc/svgnode.hxx @@ -120,6 +120,9 @@ namespace svgio::svgreader /// helper for filling the CssStyle vector once dependent on mbCssStyleVectorBuilt void fillCssStyleVector(const OUString& rClassStr, const SvgStyleAttributes& rOriginal); +void addCssStyle( +const SvgDocument& rDocument, +const OUString& aConcatenated); void fillCssStyleVectorUsingHierarchyAndSelectors( const OUString& rClassStr, const SvgNode& rCurrent, diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index d29cc30bf41c..8e7d86c145f2 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -320,6 +320,25 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf145896) assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor[3]", "color", "#ff"); } +CPPUNIT_TEST_FIXTURE(Test, testTdf156034) +{ +Primitive2DSequence aSequence = parseSvg(u"/svgio/qa/cppunit/data/tdf156034.svg"); +CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength())); + +drawinglayer::Primitive2dXmlDump dumper; +xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence); + +CPPUNIT_ASSERT (pDocument); + +// Without the fix in place, this test would have failed with +// - Expected: #008000 +// - Actual : #ff +assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor[1]", "color", "#008000"); +assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor[2]", "color", "#008000"); +assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor[3]", "color", "#008000"); +assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor[4]", "color", "#008000"); +} + CPPUNIT_TEST_FIXTURE(Test, testTdf156018) { Primitive2DSequence aSequence = parseSvg(u"/svgio/qa/cppunit/data/tdf156018.svg"); diff --git a/svgio/qa/cppunit/data/tdf156034.svg b/svgio/qa/cppunit/data/tdf156034.svg new file mode 100644 index ..ed14c5fe4aaf --- /dev/null +++ b/svgio/qa/cppunit/data/tdf156034.svg @@ -0,0 +1,20 @@ +http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; viewBox="-0 0 300 300"> + + +.g1 rect {fill:green;} +#g3 rect {fill:green;} + + + + + + + + + + + + + + + diff --git a/svgio/source/svgreader/svgnode.cxx b/svgio/source/svgreader/svgnode.cxx index 2137209d5599..35277ef0ed87 100644 --- a/svgio/source/svgreader/svgnode.cxx +++ b/svgio/source/svgreader/svgnode.cxx @@ -39,53 +39,30 @@ namespace svgio::svgreader return nullptr; } -void SvgNode::fillCssStyleVectorUsingHierarchyAndSelectors( -const OUString& rClassStr, -const SvgNode& rCurrent, -const OUString& aConcatenated) +void SvgNode::addCssStyle(const SvgDocument& rDocument, const OUString& aConcatenated) { -const SvgDocument& rDocument = getDocument(); +const SvgStyleAttributes* pNew = rDocument.findGlobalCssStyleAttributes(aConcatenated); -if(!rDocument.hasGlobalCssStyleAttributes()) -return; - -const SvgNode* pParent = rCurrent.getParent(); - -// check for ID (highest priority) -if(rCurrent.getId()) +if(pNew) { -const OUString& rId = *rCurrent.getId(); - -if(rId.getLength()) -{ -const OUString aNewConcatenated( -"#" + rId + aConcatenated); - -if(pParent) -{ -// check for combined selectors at parent firstso that higher specificity will be in front - fillCssStyleVectorUsingHierarchyAndSelectors(rClassStr, *pParent, aNewConcatenated); -} - -c
New Defects reported by Coverity Scan for LibreOffice
Hi, Please find the latest report on new defect(s) introduced to LibreOffice found with Coverity Scan. 37 new defect(s) introduced to LibreOffice found with Coverity Scan. 1 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan. New defect(s) Reported-by: Coverity Scan Showing 20 of 37 defect(s) ** CID 1532480: Uninitialized variables (UNINIT) *** CID 1532480: Uninitialized variables (UNINIT) /oox/source/ppt/pptshape.cxx: 458 in oox::ppt::PPTShape::addShape(oox::core::XmlFilterBase &, const oox::ppt::SlidePersist &, const oox::drawingml::Theme *, const com::sun::star::uno::Reference &, basegfx::B2DHomMatrix &, std::map, std::less, std::allocator>>> *)() 452 if (meShapeLocation == Slide && mpPlaceholder && getTextBody() && getTextBody()->isEmpty()) 453 { 454 Reference < XText > xText(mxShape, UNO_QUERY); 455 if (xText.is()) 456 { 457 TextCharacterProperties aCharStyleProperties; >>> CID 1532480: Uninitialized variables (UNINIT) >>> Using uninitialized value >>> "aCharStyleProperties.maUnderlineColor.meThemeColorType" when calling >>> "ApplyStyleEmpty". 458 getTextBody()->ApplyStyleEmpty(rFilterBase, xText, aCharStyleProperties, mpMasterTextListStyle); 459 } 460 } 461 if (pShapeMap) 462 { 463 // bnc#705982 - if optional model id reference is ** CID 1532479: Memory - corruptions (MISMATCHED_ITERATOR) /cui/source/tabpages/tptrans.cxx: 373 in SvxTransparenceTabPage::Reset(const SfxItemSet *)() *** CID 1532479: Memory - corruptions (MISMATCHED_ITERATOR) /cui/source/tabpages/tptrans.cxx: 373 in SvxTransparenceTabPage::Reset(const SfxItemSet *)() 367 m_xMtrTrgrStartValue->set_value(static_cast(((static_cast(aStart.GetRed()) + 1) * 100) / 255), FieldUnit::PERCENT); 368 m_xMtrTrgrEndValue->set_value(static_cast(((static_cast(aEnd.GetRed()) + 1) * 100) / 255), FieldUnit::PERCENT); 369 370 // MCGR: preserve ColorStops if given 371 // tdf#155901 We need offset of first and last stop, so include them. 372 if (rGradient.GetColorStops().size() >= 2) >>> CID 1532479: Memory - corruptions (MISMATCHED_ITERATOR) >>> Using iterator "rGradient->GetColorStops()->end()" from >>> "rGradient->GetColorStops()" with "". 373 maColorStops = basegfx::BColorStops(rGradient.GetColorStops().begin(), rGradient.GetColorStops().end()); 374 else 375 maColorStops.clear(); 376 377 // linear transparence 378 sal_uInt16 nTransp = pLinearItem->GetValue(); ** CID 1532478:(CHECKED_RETURN) /svgio/source/svgreader/svgfecolormatrixnode.cxx: 99 in svgio::svgreader::SvgFeColorMatrixNode::apply(drawinglayer::primitive2d::Primitive2DContainer &) const() /svgio/source/svgreader/svgfecolormatrixnode.cxx: 88 in svgio::svgreader::SvgFeColorMatrixNode::apply(drawinglayer::primitive2d::Primitive2DContainer &) const() *** CID 1532478:(CHECKED_RETURN) /svgio/source/svgreader/svgfecolormatrixnode.cxx: 99 in svgio::svgreader::SvgFeColorMatrixNode::apply(drawinglayer::primitive2d::Primitive2DContainer &) const() 93 std::make_shared(aNum.getNumber(; 94 rTarget = drawinglayer::primitive2d::Primitive2DContainer{ xRef }; 95 } 96 else if (maType == ColorType::HueRotate) 97 { 98 SvgNumber aNum(0.0); >>> CID 1532478:(CHECKED_RETURN) >>> Calling "readSingleNumber" without checking return value (as is done >>> elsewhere 65 out of 67 times). 99 readSingleNumber(maValuesContent, aNum); 100 const drawinglayer::primitive2d::Primitive2DReference xRef( 101 new drawinglayer::primitive2d::ModifiedColorPrimitive2D( 102 std::move(rTarget), std::make_shared( 103 basegfx::deg2rad(aNum.getNumber(); 104 rTarget = drawinglayer::primitive2d::Primitive2DContainer{ xRef }; /svgio/source/svgreader/svgfecolormatrixnode.cxx: 88 in svgio::svgreader::SvgFeColorMatrixNode::apply(drawinglayer::primitive2d::Primitive2DContainer &) const() 82 std::make_shared())); 83 rTarget = drawinglayer::primitive2d::Primitive2DContainer{ xRef }; 84 } 85 else if (maType == ColorType::Saturate) 86 { 87 SvgNumber aNum(1.0); >>> CID 1532478:(CHECKED_RETURN) >>> Calling "rea
[Libreoffice-commits] core.git: sw/inc sw/qa sw/source writerfilter/source xmloff/source
sw/inc/unoprnms.hxx |2 sw/qa/core/layout/data/floattable-2cols.docx |binary sw/qa/core/layout/data/floattable-compat14-body.docx |binary sw/qa/core/layout/data/floattable-compat14-nosplit.docx |binary sw/qa/core/layout/data/floattable-compat14.docx |binary sw/qa/core/layout/data/floattable-footer-2rows.docx |binary sw/qa/core/layout/data/floattable-footer.docx|binary sw/qa/core/layout/data/floattable-widow.docx |binary sw/qa/extras/layout/data/tdf116256.docx |binary sw/qa/extras/layout/data/tdf136613.docx |binary sw/qa/extras/layout/layout2.cxx | 13 sw/qa/extras/ooxmlexport/data/lastEmptyLineWithDirectFormatting.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport19.cxx | 11 sw/qa/extras/rtfexport/rtfexport6.cxx|4 sw/qa/extras/rtfimport/rtfimport.cxx |7 sw/source/core/doc/DocumentContentOperationsManager.cxx |7 sw/source/core/doc/docfmt.cxx|6 sw/source/core/unocore/unoobj.cxx|9 writerfilter/source/dmapper/DomainMapper_Impl.cxx| 169 ++ xmloff/source/text/txtparai.cxx | 30 - 20 files changed, 155 insertions(+), 103 deletions(-) New commits: commit fc1b9ab2913bc8c2d8414b6d8de3ceed3910c5d8 Author: Mike Kaganski AuthorDate: Fri Jun 23 09:31:01 2023 +0300 Commit: Mike Kaganski CommitDate: Sat Jun 24 10:18:47 2023 +0200 tdf#133560: re-anchor objects, to use paragraph's dispose for bEndOfDocument 1. During import, XParagraphAppend::finishParagraph(Insert) are called, which are implemented using SwXText::Impl::finishOrAppendParagraph, and the latter calls m_pDoc->getIDocumentContentOperations().AppendTextNode( *aPam.GetPoint() ); // remove attributes from the previous paragraph m_pDoc->ResetAttrs(aPam); so that there is always another (empty) paragraph after the finalized one; 2. During import, lcl_AddRange is called to create anchored text content; the start and end of it may reference the very end of the document (using xTextAppend->getEnd()) - i.e., that last (maybe empty, maybe extra) paragraph. 3. In many places, and in particular, in DomainMapper_Impl destructor, DomainMapper_Impl::RemoveLastParagraph is called; and the latter uses one of the two techniques to remove that last paragraph: 3.1. It either obtains the paragraph's lang::XComponent interface, and calls its dispose (SwXParagraph::dispose), which eventually calls DocumentContentOperationsManager::DelFullPara; 3.2. Or it uses cursor to select 1 ch back, and replace the resulting selection with nothing. 3.1 has an advantage of keeping the formatting of the remaining (second- to-last) paragraph, but DocumentContentOperationsManager::DelFullPara, among other things, removes all anchored objects, thus this mode is not used for the end-of-document case (e.g., see commit message of commit e521930ea1c855c236efb67793e540d07c201d35 "fdo#58327: writerfilter: RemoveLastParagraph is tricky:", 2013-01-10); 3.2 keeps the anchored objects, but needs workarounds to keep bookmarks, and destroys the remaining paragraph character formatting. Let me try to use #3.1 also in the end-of-document case, by introducing code to move anchored objects to previous paragraph before calling XComponent::dispose. Indeed, it may happen that more processing could be needed, if more properties would happen to be bound to the very last extra paragraph. This change adds a call to DocumentRedlineManager::CompressRedlines in DocumentContentOperationsManager::DelFullPara, because previously, this was called during #3.2 inside setString. testTdf150086 failed without this change. testTdf131386 and testTdf152872 were changed to the now-correct import of last paragraph properties (previously both of them relied on the hidden property not present there, while it is there in Word). In DomainMapper_Impl::RemoveLastParagraph, the check of the content of selection made by moving backward one character was generalized to be run before both cases, because RTF sometimes has only one paragraph after a table (see e.g. testTdf148515), which now could be removed in the absence of the check. testTdf104390 was changed to not check the number of runs, because now the paragraph keeps the trailing "paragraph mark for
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/inc sw/qa sw/source writerfilter/source xmloff/source
sw/inc/unoprnms.hxx |2 sw/qa/core/layout/data/floattable-2cols.docx |binary sw/qa/core/layout/data/floattable-compat14-body.docx |binary sw/qa/core/layout/data/floattable-compat14-nosplit.docx |binary sw/qa/core/layout/data/floattable-compat14.docx |binary sw/qa/core/layout/data/floattable-footer-2rows.docx |binary sw/qa/core/layout/data/floattable-footer.docx|binary sw/qa/core/layout/data/floattable-widow.docx |binary sw/qa/extras/layout/data/tdf116256.docx |binary sw/qa/extras/layout/data/tdf136613.docx |binary sw/qa/extras/layout/layout2.cxx | 13 sw/qa/extras/ooxmlexport/data/lastEmptyLineWithDirectFormatting.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport19.cxx | 11 sw/qa/extras/rtfexport/rtfexport6.cxx|4 sw/qa/extras/rtfimport/rtfimport.cxx |7 sw/source/core/doc/DocumentContentOperationsManager.cxx |7 sw/source/core/doc/docfmt.cxx|6 sw/source/core/unocore/unoobj.cxx|9 writerfilter/source/dmapper/DomainMapper_Impl.cxx| 169 ++ xmloff/source/text/txtparai.cxx | 30 - 20 files changed, 155 insertions(+), 103 deletions(-) New commits: commit 0e6ad9029b8e6b0e912610d2e446682a16ceb402 Author: Mike Kaganski AuthorDate: Fri Jun 23 09:31:01 2023 +0300 Commit: Mike Kaganski CommitDate: Sat Jun 24 11:08:35 2023 +0200 tdf#133560: re-anchor objects, to use paragraph's dispose for bEndOfDocument 1. During import, XParagraphAppend::finishParagraph(Insert) are called, which are implemented using SwXText::Impl::finishOrAppendParagraph, and the latter calls m_pDoc->getIDocumentContentOperations().AppendTextNode( *aPam.GetPoint() ); // remove attributes from the previous paragraph m_pDoc->ResetAttrs(aPam); so that there is always another (empty) paragraph after the finalized one; 2. During import, lcl_AddRange is called to create anchored text content; the start and end of it may reference the very end of the document (using xTextAppend->getEnd()) - i.e., that last (maybe empty, maybe extra) paragraph. 3. In many places, and in particular, in DomainMapper_Impl destructor, DomainMapper_Impl::RemoveLastParagraph is called; and the latter uses one of the two techniques to remove that last paragraph: 3.1. It either obtains the paragraph's lang::XComponent interface, and calls its dispose (SwXParagraph::dispose), which eventually calls DocumentContentOperationsManager::DelFullPara; 3.2. Or it uses cursor to select 1 ch back, and replace the resulting selection with nothing. 3.1 has an advantage of keeping the formatting of the remaining (second- to-last) paragraph, but DocumentContentOperationsManager::DelFullPara, among other things, removes all anchored objects, thus this mode is not used for the end-of-document case (e.g., see commit message of commit e521930ea1c855c236efb67793e540d07c201d35 "fdo#58327: writerfilter: RemoveLastParagraph is tricky:", 2013-01-10); 3.2 keeps the anchored objects, but needs workarounds to keep bookmarks, and destroys the remaining paragraph character formatting. Let me try to use #3.1 also in the end-of-document case, by introducing code to move anchored objects to previous paragraph before calling XComponent::dispose. Indeed, it may happen that more processing could be needed, if more properties would happen to be bound to the very last extra paragraph. This change adds a call to DocumentRedlineManager::CompressRedlines in DocumentContentOperationsManager::DelFullPara, because previously, this was called during #3.2 inside setString. testTdf150086 failed without this change. testTdf131386 and testTdf152872 were changed to the now-correct import of last paragraph properties (previously both of them relied on the hidden property not present there, while it is there in Word). In DomainMapper_Impl::RemoveLastParagraph, the check of the content of selection made by moving backward one character was generalized to be run before both cases, because RTF sometimes has only one paragraph after a table (see e.g. testTdf148515), which now could be removed in the absence of the check. testTdf104390 was changed to not check the number of runs, because now the paragraph keeps the trailing "paragraph mark for
[Libreoffice-commits] core.git: solenv/vs
solenv/vs/LibreOffice.natvis | 10 ++ 1 file changed, 10 insertions(+) New commits: commit 698d82ec6c582fdd4633e9e5cc9c439d4a0eff7d Author: Mike Kaganski AuthorDate: Sat Jun 24 11:57:35 2023 +0300 Commit: Mike Kaganski CommitDate: Sat Jun 24 11:52:05 2023 +0200 Add a natvis entry for o3tl::span Change-Id: I6023047e166dce0e46b24338bc60c470666aa5b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153548 Tested-by: Jenkins Reviewed-by: Mike Kaganski diff --git a/solenv/vs/LibreOffice.natvis b/solenv/vs/LibreOffice.natvis index b2732cef3736..ba0ab29ae96b 100644 --- a/solenv/vs/LibreOffice.natvis +++ b/solenv/vs/LibreOffice.natvis @@ -147,6 +147,16 @@ + +o3tl::span (empty) +o3tl::span of {size_,d} {"$T1",sb} + + +size_ +reinterpret_cast < const $T1 * >( data_ ) + + + {{{m_nSize,d} nodes}}
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-22.05' - sw/source
sw/source/core/undo/docundo.cxx |7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) New commits: commit ad5539626401e097a7026d896339764e805789a4 Author: Szymon Kłos AuthorDate: Thu Jun 22 16:46:22 2023 +0200 Commit: Caolán McNamara CommitDate: Sat Jun 24 11:54:35 2023 +0200 lok: use correct shell when doing undo When doing undo we save EditShell reference in the context object. Later it is used to get cursor we want to move to the place where modification was done (in sw/source/core/undo/unins.cxx:281). In LOK case when 2 different sessions were used and undo was done by user A - then user's B cursor was moved. This fixes that issue. We use current shell instead of getting it indirectly through SwDoc::GetEditShell() Change-Id: I7a10ea98587f48818e8d0aaa9ad739d4eed514f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153461 Tested-by: Jenkins CollaboraOffice Reviewed-by: Michael Meeks Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153492 Reviewed-by: Caolán McNamara diff --git a/sw/source/core/undo/docundo.cxx b/sw/source/core/undo/docundo.cxx index ccff1b663cf3..1933741ea971 100644 --- a/sw/source/core/undo/docundo.cxx +++ b/sw/source/core/undo/docundo.cxx @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -665,8 +666,10 @@ bool UndoManager::impl_DoUndoRedo(UndoOrRedoType undoOrRedo, size_t nUndoOffset) UnoActionContext c(& rDoc); // exception-safe StartAllAction/EndAllAction -SwEditShell *const pEditShell( rDoc.GetEditShell() ); - +SwView* pViewShell = dynamic_cast(SfxViewShell::Current()); +SwEditShell *const pEditShell( +comphelper::LibreOfficeKit::isActive() && pViewShell ? pViewShell->GetWrtShellPtr() +: rDoc.GetEditShell()); OSL_ENSURE(pEditShell, "sw::UndoManager needs a SwEditShell!"); if (!pEditShell) {
[Libreoffice-commits] core.git: sw/qa sw/source
sw/qa/extras/htmlexport/data/twoListsWithSameStyle.fodt | 19 +++ sw/qa/extras/htmlexport/htmlexport.cxx | 14 + sw/source/filter/html/htmlnumwriter.cxx | 40 3 files changed, 53 insertions(+), 20 deletions(-) New commits: commit ad3cbef7f60de1e490c752051823a35ee37b311e Author: Mike Kaganski AuthorDate: Sat Jun 24 12:00:08 2023 +0300 Commit: Mike Kaganski CommitDate: Sat Jun 24 11:57:10 2023 +0200 ReqIF: 'ol' elements must have no 'start' attribute Change-Id: If02f4d2f0a34f2f39b90fb7b8c6d29e46d0da0ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153549 Tested-by: Jenkins Reviewed-by: Mike Kaganski diff --git a/sw/qa/extras/htmlexport/data/twoListsWithSameStyle.fodt b/sw/qa/extras/htmlexport/data/twoListsWithSameStyle.fodt new file mode 100644 index ..a5dc0f014d2a --- /dev/null +++ b/sw/qa/extras/htmlexport/data/twoListsWithSameStyle.fodt @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx index 521f15504357..6fdb67f68eb7 100644 --- a/sw/qa/extras/htmlexport/htmlexport.cxx +++ b/sw/qa/extras/htmlexport/htmlexport.cxx @@ -2703,6 +2703,20 @@ CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testTdf155871) CPPUNIT_ASSERT(pDoc); } +CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testReqIF_ListsNoStartAttribute) +{ +createSwDoc("twoListsWithSameStyle.fodt"); +ExportToReqif(); + +SvMemoryStream aStream; +WrapReqifFromTempFile(aStream); +xmlDocUniquePtr pDoc = parseXmlStream(&aStream); +CPPUNIT_ASSERT(pDoc); + +// No 'start' attribute must be present in 'ol' +assertXPath(pDoc, "//reqif-xhtml:ol[@start]", 0); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/html/htmlnumwriter.cxx b/sw/source/filter/html/htmlnumwriter.cxx index 8fa9b0074c99..6640f8f9376b 100644 --- a/sw/source/filter/html/htmlnumwriter.cxx +++ b/sw/source/filter/html/htmlnumwriter.cxx @@ -217,10 +217,10 @@ SwHTMLWriter& OutHTML_NumberBulletListStart( SwHTMLWriter& rWrt, // Ordered list: sOut += OOO_STRING_SVTOOLS_HTML_orderlist; -// determine the type by the format -char cType = 0; -if (!rWrt.mbReqIF) // No 'type' attribute in ReqIF +if (!rWrt.mbReqIF) // No 'type' nor 'start' attribute in ReqIF { +// determine the type by the format +char cType = 0; switch (eType) { case SVX_NUM_CHARS_UPPER_LETTER: @@ -238,29 +238,29 @@ SwHTMLWriter& OutHTML_NumberBulletListStart( SwHTMLWriter& rWrt, cType = 'i'; break; } -} -if( cType ) -{ -sOut += " " OOO_STRING_SVTOOLS_HTML_O_type "=\"" + OStringChar(cType) + "\""; -} +if( cType ) +{ +sOut += " " OOO_STRING_SVTOOLS_HTML_O_type "=\"" + OStringChar(cType) + "\""; +} -sal_uInt16 nStartVal = rNumFormat.GetStart(); -if( bStartValue && 1 == nStartVal && i == rInfo.GetDepth()-1 ) -{ -if ( rWrt.m_pCurrentPam->GetPointNode().GetTextNode()->GetNum() ) +sal_uInt16 nStartVal = rNumFormat.GetStart(); +if( bStartValue && 1 == nStartVal && i == rInfo.GetDepth()-1 ) { -nStartVal = static_cast< sal_uInt16 >( rWrt.m_pCurrentPam->GetPointNode() -.GetTextNode()->GetNumberVector()[i] ); +if ( rWrt.m_pCurrentPam->GetPointNode().GetTextNode()->GetNum() ) +{ +nStartVal = static_cast< sal_uInt16 >( rWrt.m_pCurrentPam->GetPointNode() +.GetTextNode()->GetNumberVector()[i] ); +} +else +{ +OSL_FAIL( "(nStartVal)) + "\""; } } -if( nStartVal != 1 ) -{ -sOut += " " OOO_STRING_SVTOOLS_HTML_O_start "=\"" + OString::number(static_cast(nStartVal)) + "\""; -} } rWrt.Strm().WriteOString(sOut);
[Libreoffice-commits] core.git: vcl/source
vcl/source/filter/GraphicFormatDetector.cxx |7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) New commits: commit 85013c57dd29e32ec0411c159ea72824ebca5aa9 Author: Paris Oplopoios AuthorDate: Sat Jun 24 03:48:32 2023 +0300 Commit: Paris Oplopoios CommitDate: Sat Jun 24 12:16:34 2023 +0200 tdf#156016 Fix bug where SVG check size would be 0 Change-Id: I1c4adf75bbfbce7cb6b779375714b1c1bc7ec50d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153543 Tested-by: Jenkins Reviewed-by: Paris Oplopoios diff --git a/vcl/source/filter/GraphicFormatDetector.cxx b/vcl/source/filter/GraphicFormatDetector.cxx index 4fc2c85c2a4e..d4a027d60ed3 100644 --- a/vcl/source/filter/GraphicFormatDetector.cxx +++ b/vcl/source/filter/GraphicFormatDetector.cxx @@ -1272,7 +1272,7 @@ bool GraphicFormatDetector::checkSVG() SVG_CHECK_SIZE, nDecompressedSize); nCheckSize = std::min(nDecompressedSize, 256); bool bIsSvg(false); -bool bIsGZip = (nDecompressedSize > 0); +bool bIsGZip = mbWasCompressed; const char* pCheckArrayAsCharArray = reinterpret_cast(pCheckArray); // check for XML // #119176# SVG files which have no xml header at all have shown up this is optional @@ -1302,11 +1302,11 @@ bool GraphicFormatDetector::checkSVG() if (bIsGZip) { -nCheckSize = std::min(nDecompressedSize, 2048); +nCheckSize = std::min(nDecompressedSize, SVG_CHECK_SIZE); } else { -nCheckSize = std::min(mnStreamLength, 2048); +nCheckSize = std::min(mnStreamLength, SVG_CHECK_SIZE); mrStream.Seek(mnStreamPosition); nCheckSize = mrStream.ReadBytes(sExtendedOrDecompressedFirstBytes, nCheckSize); } @@ -1423,7 +1423,6 @@ sal_uInt8* GraphicFormatDetector::checkAndUncompressBuffer(sal_uInt8* aUncompres mbWasCompressed = true; return aUncompressedBuffer; } -nRetSize = 0; mbWasCompressed = false; return maFirstBytes.data(); }
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-22.05' - include/formula sc/inc sc/source
include/formula/tokenarray.hxx |5 + sc/inc/document.hxx|2 +- sc/inc/formulacell.hxx |3 ++- sc/source/core/data/formulacell.cxx|8 +++- sc/source/filter/oox/formulabuffer.cxx | 31 --- sc/source/ui/view/output2.cxx | 13 +++-- 6 files changed, 46 insertions(+), 16 deletions(-) New commits: commit 447296c3c2676c855d98200b03bcec15310629bc Author: Eike Rathke AuthorDate: Thu Feb 23 01:22:16 2023 +0100 Commit: Aron Budea CommitDate: Sat Jun 24 12:28:48 2023 +0200 Resolves: tdf#153767 Try harder to import OOXML bool shared formula result ... by setting the result value or if necessary recalculating even if AutoCalc is turned off for the document. Similar for other implicitly recalculating formula types. Also set a boolean number format if none. Change-Id: I2f75735707180eccf4b2c525738ac0b763901230 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147425 Reviewed-by: Eike Rathke Tested-by: Jenkins (cherry picked from commit 05ac57f85eb622b798719db03bbdd07b79e1703a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147444 Reviewed-by: Xisco Fauli (cherry picked from commit 816b0e97f32df82a1ffc23950d5bf21760a4cd39) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153546 Tested-by: Jenkins CollaboraOffice Reviewed-by: Aron Budea diff --git a/include/formula/tokenarray.hxx b/include/formula/tokenarray.hxx index 6b373ff44e15..e3c44e934a11 100644 --- a/include/formula/tokenarray.hxx +++ b/include/formula/tokenarray.hxx @@ -429,6 +429,11 @@ public: example OOXML. */ boolIsRecalcModeMustAfterImport() const { return (nMode & ScRecalcMode::EMask) <= ScRecalcMode::ONLOAD_ONCE; } +voidClearRecalcModeMustAfterImport() +{ +if (IsRecalcModeMustAfterImport() && !IsRecalcModeAlways()) +SetExclusiveRecalcModeNormal(); +} /** Get OpCode of the most outer function */ inline OpCode GetOuterFuncOpCode() const; diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 4f06b4b6473b..1188bbd9da2c 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -1226,7 +1226,7 @@ public: SC_DLLPUBLIC sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nRow, SCTAB nTab ) const; sal_uInt32GetNumberFormat( const ScRange& rRange ) const; SC_DLLPUBLIC sal_uInt32 GetNumberFormat( const ScInterpreterContext& rContext, const ScAddress& ) const; -void SetNumberFormat( const ScAddress& rPos, sal_uInt32 nNumberFormat ); +SC_DLLPUBLIC void SetNumberFormat( const ScAddress& rPos, sal_uInt32 nNumberFormat ); void GetNumberFormatInfo( const ScInterpreterContext& rContext, SvNumFormatType& nType, sal_uInt32& nIndex, const ScAddress& rPos ) const; SC_DLLPUBLIC const ScFormulaCell* GetFormulaCell( const ScAddress& rPos ) const; diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index 013a0058ba5d..6c1bca21f035 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -443,7 +443,8 @@ public: if (!IsDirtyOrInTableOpDirty()) return false; -return (rDocument.GetAutoCalc() || (cMatrixFlag != ScMatrixMode::NONE)); +return rDocument.GetAutoCalc() || (cMatrixFlag != ScMatrixMode::NONE) +|| (pCode->IsRecalcModeMustAfterImport() && !pCode->IsRecalcModeAlways()); } void MaybeInterpret() diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index 93cc0697090d..9547dcf8c072 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -2331,6 +2331,8 @@ void ScFormulaCell::InterpretTail( ScInterpreterContext& rContext, ScInterpretTa OSL_ENSURE( pCode->GetCodeError() != FormulaError::NONE, "no RPN code and no errors ?!?!" ); ResetDirty(); } + +pCode->ClearRecalcModeMustAfterImport(); } void ScFormulaCell::HandleStuffAfterParallelCalculation(ScInterpreter* pInterpreter) @@ -2546,7 +2548,7 @@ void ScFormulaCell::SetDirty( bool bDirtyFlag ) // the FormulaTree, once in there it would be assumed that its // dependents already had been tracked and it would be skipped on a // subsequent notify. Postpone tracking until all listeners are set. -if (!rDocument.IsImportingXML()) +if (!rDocument.IsImportingXML() && !rDocument.IsInsertingFromOtherDoc()) rDocument.TrackFormulas(); } @@ -2647,10 +2649,6 @@ void ScFormulaCell::AddRecalcMod
[Libreoffice-commits] core.git: basegfx/source basegfx/test include/basegfx svgio/inc svgio/qa svgio/source
basegfx/source/color/bcolormodifier.cxx | 19 basegfx/test/BColorModifierTest.cxx | 27 +++ include/basegfx/color/bcolormodifier.hxx | 20 + svgio/inc/svgfecolormatrixnode.hxx |2 + svgio/inc/svgfegaussianblurnode.hxx | 14 --- svgio/inc/svgfilternode.hxx |6 + svgio/qa/cppunit/SvgImportTest.cxx |3 +- svgio/qa/cppunit/data/filterFeGaussianBlur.svg |2 - svgio/source/svgreader/svgfecolormatrixnode.cxx | 21 + svgio/source/svgreader/svgfegaussianblurnode.cxx | 18 +-- 10 files changed, 115 insertions(+), 17 deletions(-) New commits: commit 75399b8aad6c0f0998b9d0a6eddb2e29f8bc114c Author: Xisco Fauli AuthorDate: Sat Jun 24 11:17:16 2023 +0200 Commit: Xisco Fauli CommitDate: Sat Jun 24 12:33:12 2023 +0200 tdf#132246, tdf#155735: Add support for SourceAlpha Change-Id: I8feae2447b17e15113ca45fe46c0d68cb6b6ab71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153550 Tested-by: Jenkins Reviewed-by: Xisco Fauli diff --git a/basegfx/source/color/bcolormodifier.cxx b/basegfx/source/color/bcolormodifier.cxx index 829b0abda659..52f34a69f205 100644 --- a/basegfx/source/color/bcolormodifier.cxx +++ b/basegfx/source/color/bcolormodifier.cxx @@ -69,6 +69,25 @@ namespace basegfx return "invert"; } +BColorModifier_alpha::~BColorModifier_alpha() +{ +} + +bool BColorModifier_alpha::operator==(const BColorModifier& rCompare) const +{ +return dynamic_cast< const BColorModifier_alpha* >(&rCompare) != nullptr; +} + +::basegfx::BColor BColorModifier_alpha::getModifiedColor(const ::basegfx::BColor& /*aSourceColor*/) const +{ +return ::basegfx::BColor(0.0, 0.0, 0.0); +} + +OUString BColorModifier_alpha::getModifierName() const +{ +return "alpha"; +} + BColorModifier_luminance_to_alpha::~BColorModifier_luminance_to_alpha() { } diff --git a/basegfx/test/BColorModifierTest.cxx b/basegfx/test/BColorModifierTest.cxx index 6be160ce43ae..5a4b941e1c44 100755 --- a/basegfx/test/BColorModifierTest.cxx +++ b/basegfx/test/BColorModifierTest.cxx @@ -378,6 +378,32 @@ public: CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier2)); } +void testAlpha() +{ +const basegfx::BColorModifierSharedPtr aBColorModifier += std::make_shared(); + +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maWhite)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maGray)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maBlack)); + +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maRed)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maGreen)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maBlue)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maYellow)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maMagenta)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maCyan)); + +CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier)); +const basegfx::BColorModifierSharedPtr aBColorModifierInvert += std::make_shared(); +CPPUNIT_ASSERT(*aBColorModifier != *aBColorModifierInvert); + +const basegfx::BColorModifierSharedPtr aBColorModifier2 += std::make_shared(); +CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier2)); +} + CPPUNIT_TEST_SUITE(bcolormodifier); CPPUNIT_TEST(testGray); CPPUNIT_TEST(testInvert); @@ -389,6 +415,7 @@ public: CPPUNIT_TEST(testMatrix); CPPUNIT_TEST(testIdentityMatrix); CPPUNIT_TEST(testBlackAndWhite); +CPPUNIT_TEST(testAlpha); CPPUNIT_TEST_SUITE_END(); }; diff --git a/include/basegfx/color/bcolormodifier.hxx b/include/basegfx/color/bcolormodifier.hxx index 6eb40b67e9d7..37c6a5b9e2f3 100644 --- a/include/basegfx/color/bcolormodifier.hxx +++ b/include/basegfx/color/bcolormodifier.hxx @@ -126,6 +126,26 @@ namespace basegfx SAL_DLLPRIVATE virtual OUString getModifierName() const override; }; +/** + * convert to alpha +*/ +class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier_alpha final : public BColorModifier +{ +public: +BColorModifier_alpha() +{ +} + +virtual ~BColorModifier_alpha() override; + +// compare operator +SAL_DLLPRIVATE virtual bool operator==(const BColorModifier& rCompare) const override; + +// compute modified color +SAL_DLLPRIVATE virtual ::basegfx::BColor getModifiedColor(const ::basegfx::BColor& aSourceColor) const override; +SAL_DLLPRIVATE virtual OUString
[Libreoffice-commits] help.git: source/text
source/text/scalc/01/04060199.xhp | 140 +++--- 1 file changed, 70 insertions(+), 70 deletions(-) New commits: commit 5d7fd5dd8910f3d7bc98c8a3d452102d133f4ffa Author: Olivier Hallot AuthorDate: Fri Jun 23 19:31:32 2023 -0300 Commit: Olivier Hallot CommitDate: Sat Jun 24 13:10:15 2023 +0200 Refactor, no changes. Change-Id: I11d58e24520d749c30b73913555d478a24806cfc Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153541 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/source/text/scalc/01/04060199.xhp b/source/text/scalc/01/04060199.xhp index 2f0be70c8a..d7c050fb11 100644 --- a/source/text/scalc/01/04060199.xhp +++ b/source/text/scalc/01/04060199.xhp @@ -19,12 +19,12 @@ -Operators in $[officename] Calc +Operators in $[officename] Calc /text/scalc/01/04060199.xhp -formulas; operators +formulas; operators operators; formula functions division sign, see also operators multiplication sign, see also operators @@ -35,16 +35,16 @@ arithmetical operators reference operators mw added 7 new index entriesOperators in $[officename] Calc -You can use the following operators in $[officename] Calc: +You can use the following operators in $[officename] Calc: Arithmetical Operators -These operators return numerical results. +These operators return numerical results. -Operator +Operator -Name +Name Example @@ -52,79 +52,79 @@ -+ (Plus) ++ (Plus) -Addition +Addition -1+1 +1+1 -- (Minus) +- (Minus) -Subtraction +Subtraction -2-1 +2-1 -- (Minus) +- (Minus) -Negation +Negation --5 +-5 -* (asterisk) +* (asterisk) -Multiplication +Multiplication -2*2 +2*2 -/ (Slash) +/ (Slash) -Division +Division -9/3 +9/3 -% (Percent) +% (Percent) -Percent +Percent -15% +15% -^ (Caret) +^ (Caret) -Exponentiation +Exponentiation -3^2 +3^2 @@ -132,14 +132,14 @@ Prefix "-" (negation) has a higher precedence than "^" (exponentiation). For example -3^2 equals 9, which is the square of a negative number. Comparative operators -These operators return either true or false. +These operators return either true or false. -Operator +Operator -Name +Name Example @@ -147,80 +147,80 @@ -= (equal sign) += (equal sign) -Equal +Equal -A1=B1 +A1=B1 -> (Greater than) +> (Greater than) -Greater than +Greater than -A1>B1 +A1>B1 -< (Less than) +< (Less than) -Less than +Less than -A1= (Greater than or equal to) +>= (Greater than or equal to) -Greater than or equal to +Greater than or equal to -A1>=B1 +A1>=B1 -<= (Less than or equal to) +<= (Less than or equal to) -Less than or equal to +Less than or equal to -A1<=B1 +A1<=B1 -<> (Inequality) +<> (Inequality) -Inequality +Inequality -A1<>B1 +A1<>B1 Text operators -The operator combines separate texts into one text. +The operator combines separate texts into one text. -Operator +Operator -Name +Name Example @@ -228,29 +228,29 @@ -& (And) +& (And) -text concatenation AND +text concatenation AND -text concatenation AND +text concatenation AND -"Sun" & "day" is "Sunday" +"Sun" & "day" is "Sunday" Reference operators -These operators return a cell range of zero, one or more cells. -Range has the highest precedence, then intersection, and then finally union. +These operators return a cell range of zero, one or more cells. +Range has the highest precedence, then intersection, and then finally union. -Operator +Operator -Name +Name Example @@ -258,38 +258,38 @@ -: (Colon) +: (Colon) -Range +Range -A1:C108, A:D or 3:13 +A1:C108, A:D or 3:13 -! (Exclamation point) +! (Exclamation point) -intersection operator +intersection operator -Intersection +Intersection -SUM(A1:B6!B5:C12) -Calculates the sum of all cells in the intersection; in this example, the result yields the sum of cells B5 and B6. +SUM(A1:B6!B5:C12) +Calculates the sum of all cells in the intersection; in this example, the result yields the sum of cells B5 and B6. -~ (Tilde) +~ (Tilde) -Concatenation or union +Concatenation or union -Takes two references and returns a reference list, which is a concatenation of the left reference followed by the right reference. Double entries are referenced twice. +Takes two references and returns a reference list, which is a concatenation of the left reference followed by the right reference. Double entries are referenced twice. =COUNT(A1:B2~B2:C3) counts values of A1:B2 and B2:C3. Note that the cell B2 is counted twice. =INDEX(A1:B2~C1:D2;2;1;2) selects cell C2, that is, the first cell of the second row, first column, of the second range (C1:D2) of the range list.
[Libreoffice-commits] core.git: helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit da9dece79dd79d227e715e9c753e27175bcc445e Author: Olivier Hallot AuthorDate: Sat Jun 24 08:10:15 2023 -0300 Commit: Gerrit Code Review CommitDate: Sat Jun 24 13:10:15 2023 +0200 Update git submodules * Update helpcontent2 from branch 'master' to 5d7fd5dd8910f3d7bc98c8a3d452102d133f4ffa - Refactor, no changes. Change-Id: I11d58e24520d749c30b73913555d478a24806cfc Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153541 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/helpcontent2 b/helpcontent2 index 6b96b1090554..5d7fd5dd8910 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit 6b96b109055418994353b2d36c8735b0fff14637 +Subproject commit 5d7fd5dd8910f3d7bc98c8a3d452102d133f4ffa
[Libreoffice-commits] help.git: source/text
source/text/scalc/01/04060199.xhp | 176 +++--- 1 file changed, 145 insertions(+), 31 deletions(-) New commits: commit 9615cb2ed0275615f853c027087fa5ef46f72eae Author: Olivier Hallot AuthorDate: Fri Jun 23 21:14:25 2023 -0300 Commit: Olivier Hallot CommitDate: Sat Jun 24 13:10:39 2023 +0200 tdf#156029 operator precedence in Calc Change-Id: If6410c72b4b085f3012e926c9a0dc2175d4ce2af Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153542 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/source/text/scalc/01/04060199.xhp b/source/text/scalc/01/04060199.xhp index d7c050fb11..30648afb93 100644 --- a/source/text/scalc/01/04060199.xhp +++ b/source/text/scalc/01/04060199.xhp @@ -24,18 +24,20 @@ -formulas; operators + +operators; in spreadsheet formulas +formulas; operators operators; formula functions +mw added 7 new index entries +Operators in $[officename] Calc +You can use the following operators in $[officename] Calc: + +arithmetical operators division sign, see also operators multiplication sign, see also operators minus sign, see also operators plus sign, see also operators -text operators -comparisons;operators in Calc -arithmetical operators -reference operators -mw added 7 new index entriesOperators in $[officename] Calc -You can use the following operators in $[officename] Calc: + Arithmetical Operators These operators return numerical results. @@ -52,7 +54,7 @@ -+ (Plus) ++ Addition @@ -63,7 +65,7 @@ -- (Minus) +- Subtraction @@ -74,7 +76,7 @@ -- (Minus) +- Negation @@ -85,7 +87,7 @@ -* (asterisk) +* Multiplication @@ -96,7 +98,7 @@ -/ (Slash) +/ Division @@ -107,7 +109,7 @@ -% (Percent) +% Percent @@ -118,7 +120,7 @@ -^ (Caret) +^ Exponentiation @@ -131,6 +133,10 @@ Prefix "-" (negation) has a higher precedence than "^" (exponentiation). For example -3^2 equals 9, which is the square of a negative number. + +operators;comparison +comparisons;operators in Calc + Comparative operators These operators return either true or false. @@ -147,7 +153,7 @@ -= (equal sign) += Equal @@ -158,18 +164,18 @@ -> (Greater than) +> Greater than -A1>B1 +A1>B1 -< (Less than) +< Less than @@ -180,7 +186,7 @@ ->= (Greater than or equal to) +>= Greater than or equal to @@ -191,7 +197,7 @@ -<= (Less than or equal to) +<= Less than or equal to @@ -202,7 +208,7 @@ -<> (Inequality) +<> Inequality @@ -212,6 +218,10 @@ + +text operators +text concatenation + Text operators The operator combines separate texts into one text. @@ -228,18 +238,22 @@ -& (And) +& -text concatenation AND - -text concatenation AND +text concatenation "Sun" & "day" is "Sunday" + +reference operators +intersection reference operator +union reference operator +range operator + Reference operators These operators return a cell range of zero, one or more cells. @@ -253,12 +267,12 @@ Name -Example +Example -: (Colon) +: Range @@ -269,11 +283,9 @@ -! (Exclamation point) +! -intersection operator - Intersection @@ -283,7 +295,7 @@ -~ (Tilde) +~ Concatenation or union @@ -297,5 +309,107 @@ A reference list is not allowed inside an array expression. + +operators;precedence of + +Operator precedence +Associativity and precedence of operators, from highest to lowest precedence. + + +Associativity + +Operator(s) + +Comments + + + +left + +: + +Range. + + + +left + +! + +Reference intersection (A1:C4!B1:B5 is B1:B4). + + + +left + +~ + +Reference union. + + + +right ++,- + +Prefix unary operators, e.g., -5 or -A1. Note that these have a different precedence than add and subtract. + + + +left + +% + +Postfix unary operator % (divide by 100). Note that this is legal with expressions, for example, B1%. + + + +left + +^ + +Power (2^3 is 8). + + + +left + +*,/ + +Multiply, divide. + + + +left + ++,- + +Binary operations add, subtract. Note that unary (prefix) + and - have a different precedence. + + + +left +
[Libreoffice-commits] core.git: helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 3ee1691a82cce40263ba6e3fe5c455ea519d4c99 Author: Olivier Hallot AuthorDate: Sat Jun 24 08:10:40 2023 -0300 Commit: Gerrit Code Review CommitDate: Sat Jun 24 13:10:40 2023 +0200 Update git submodules * Update helpcontent2 from branch 'master' to 9615cb2ed0275615f853c027087fa5ef46f72eae - tdf#156029 operator precedence in Calc Change-Id: If6410c72b4b085f3012e926c9a0dc2175d4ce2af Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153542 Tested-by: Jenkins Reviewed-by: Olivier Hallot diff --git a/helpcontent2 b/helpcontent2 index 5d7fd5dd8910..9615cb2ed027 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit 5d7fd5dd8910f3d7bc98c8a3d452102d133f4ffa +Subproject commit 9615cb2ed0275615f853c027087fa5ef46f72eae
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit b5f0e12b0f3e37e08f49491d3a288bbae3bdc710 Author: Olivier Hallot AuthorDate: Sat Jun 24 08:12:24 2023 -0300 Commit: Gerrit Code Review CommitDate: Sat Jun 24 13:12:24 2023 +0200 Update git submodules * Update helpcontent2 from branch 'libreoffice-7-6' to 472dfac74c2d0cb8dabb9c9bd377c86c472de6f1 - tdf#156015 Mark unimplemented args of BASIC Shell + refactor Change-Id: Ide7bc5a4abd4685b2bbe2727740358ac4c811030 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153455 Tested-by: Jenkins Reviewed-by: Olivier Hallot (cherry picked from commit 0d3f7932c7af9b6b682668b96a36f2acc3910e2e) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153427 diff --git a/helpcontent2 b/helpcontent2 index b04a11dbc71c..472dfac74c2d 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit b04a11dbc71c44fea46d99614097be13555034b9 +Subproject commit 472dfac74c2d0cb8dabb9c9bd377c86c472de6f1
[Libreoffice-commits] help.git: Branch 'libreoffice-7-6' - source/text
source/text/sbasic/shared/03130500.xhp | 64 ++--- 1 file changed, 36 insertions(+), 28 deletions(-) New commits: commit 472dfac74c2d0cb8dabb9c9bd377c86c472de6f1 Author: Olivier Hallot AuthorDate: Thu Jun 22 06:43:13 2023 -0300 Commit: Olivier Hallot CommitDate: Sat Jun 24 13:12:24 2023 +0200 tdf#156015 Mark unimplemented args of BASIC Shell + refactor Change-Id: Ide7bc5a4abd4685b2bbe2727740358ac4c811030 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153455 Tested-by: Jenkins Reviewed-by: Olivier Hallot (cherry picked from commit 0d3f7932c7af9b6b682668b96a36f2acc3910e2e) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153427 diff --git a/source/text/sbasic/shared/03130500.xhp b/source/text/sbasic/shared/03130500.xhp index 2ae8648136..2282d64834 100644 --- a/source/text/sbasic/shared/03130500.xhp +++ b/source/text/sbasic/shared/03130500.xhp @@ -20,7 +20,7 @@ -Shell Function +Shell Function /text/sbasic/shared/03130500.xhp @@ -28,99 +28,107 @@ - + Shell function Shell Function -Starts another application and defines the respective window style, if necessary. +Starts another application and defines the respective window style, if necessary. -Shell (Pathname As String[, Windowstyle As Integer[, Param As String[, bSync]]]) +Shell (Pathname As String[, Windowstyle As Integer[, Param As String[, bSync]]]) Pathname -Name of the program that you want to start, optionally with complete path and/or arguments. +Name of the program that you want to start, optionally with complete path and/or arguments. Windowstyle -Optional integer expression that specifies the style of the window that the program is executed in. The following values are possible: +Optional integer expression that specifies the style of the window that the program is executed in. + +Parameter Windowstyle is only effective on Windows systems. On other systems the parameter is ignored. + +The following values are possible: -Windowstyle +Windowstyle -Meaning +Meaning - 0 + 0 - The focus is on the hidden program window. + The focus is on the hidden program window. + Not implemented in %PRODUCTNAME. - 1 + 1 - The focus is on the program window in standard size. + The focus is on the program window in standard size. + - 2 + 2 - The focus is on the minimized program window. + The focus is on the minimized program window. - 3 + 3 - focus is on the maximized program window. + focus is on the maximized program window. - 4 + 4 - Standard size program window, without focus. + Standard size program window, without focus. + - 6 + 6 - Minimized program window, focus remains on the active window. + Minimized program window, focus remains on the active window. + - 10 + 10 - Full-screen display. + Full-screen display. - +Windowstyle 3 and 10 are equivalent in Windows systems. Param -String that specifies additional arguments passed to the program. +String that specifies additional arguments passed to the program. bSync -If this value is set to true, the Shell command and all $[officename] tasks wait until the shell process completes. If the value is set to false, the shell returns directly. The default value is false. +If this value is set to true, the Shell command and all $[officename] tasks wait until the shell process completes. If the value is set to false, the shell returns directly. The default value is false. @@ -128,9 +136,9 @@ -Sub ExampleShellForWin -Shell("c:\windows\calc.exe",2) -End Sub +Sub ExampleShellForWin + Shell("c:\windows\calc.exe",2) +End Sub
[Libreoffice-commits] help.git: Branch 'libreoffice-7-6' - source/text
source/text/scalc/01/04060199.xhp | 140 +++--- 1 file changed, 70 insertions(+), 70 deletions(-) New commits: commit 691744afc91d923e2d7b165e1e675fb02c4fbd1f Author: Olivier Hallot AuthorDate: Fri Jun 23 19:31:32 2023 -0300 Commit: Olivier Hallot CommitDate: Sat Jun 24 13:12:59 2023 +0200 Refactor, no changes. Change-Id: I11d58e24520d749c30b73913555d478a24806cfc Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153541 Tested-by: Jenkins Reviewed-by: Olivier Hallot (cherry picked from commit 5d7fd5dd8910f3d7bc98c8a3d452102d133f4ffa) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153522 diff --git a/source/text/scalc/01/04060199.xhp b/source/text/scalc/01/04060199.xhp index 2f0be70c8a..d7c050fb11 100644 --- a/source/text/scalc/01/04060199.xhp +++ b/source/text/scalc/01/04060199.xhp @@ -19,12 +19,12 @@ -Operators in $[officename] Calc +Operators in $[officename] Calc /text/scalc/01/04060199.xhp -formulas; operators +formulas; operators operators; formula functions division sign, see also operators multiplication sign, see also operators @@ -35,16 +35,16 @@ arithmetical operators reference operators mw added 7 new index entriesOperators in $[officename] Calc -You can use the following operators in $[officename] Calc: +You can use the following operators in $[officename] Calc: Arithmetical Operators -These operators return numerical results. +These operators return numerical results. -Operator +Operator -Name +Name Example @@ -52,79 +52,79 @@ -+ (Plus) ++ (Plus) -Addition +Addition -1+1 +1+1 -- (Minus) +- (Minus) -Subtraction +Subtraction -2-1 +2-1 -- (Minus) +- (Minus) -Negation +Negation --5 +-5 -* (asterisk) +* (asterisk) -Multiplication +Multiplication -2*2 +2*2 -/ (Slash) +/ (Slash) -Division +Division -9/3 +9/3 -% (Percent) +% (Percent) -Percent +Percent -15% +15% -^ (Caret) +^ (Caret) -Exponentiation +Exponentiation -3^2 +3^2 @@ -132,14 +132,14 @@ Prefix "-" (negation) has a higher precedence than "^" (exponentiation). For example -3^2 equals 9, which is the square of a negative number. Comparative operators -These operators return either true or false. +These operators return either true or false. -Operator +Operator -Name +Name Example @@ -147,80 +147,80 @@ -= (equal sign) += (equal sign) -Equal +Equal -A1=B1 +A1=B1 -> (Greater than) +> (Greater than) -Greater than +Greater than -A1>B1 +A1>B1 -< (Less than) +< (Less than) -Less than +Less than -A1= (Greater than or equal to) +>= (Greater than or equal to) -Greater than or equal to +Greater than or equal to -A1>=B1 +A1>=B1 -<= (Less than or equal to) +<= (Less than or equal to) -Less than or equal to +Less than or equal to -A1<=B1 +A1<=B1 -<> (Inequality) +<> (Inequality) -Inequality +Inequality -A1<>B1 +A1<>B1 Text operators -The operator combines separate texts into one text. +The operator combines separate texts into one text. -Operator +Operator -Name +Name Example @@ -228,29 +228,29 @@ -& (And) +& (And) -text concatenation AND +text concatenation AND -text concatenation AND +text concatenation AND -"Sun" & "day" is "Sunday" +"Sun" & "day" is "Sunday" Reference operators -These operators return a cell range of zero, one or more cells. -Range has the highest precedence, then intersection, and then finally union. +These operators return a cell range of zero, one or more cells. +Range has the highest precedence, then intersection, and then finally union. -Operator +Operator -Name +Name Example @@ -258,38 +258,38 @@ -: (Colon) +: (Colon) -Range +Range -A1:C108, A:D or 3:13 +A1:C108, A:D or 3:13 -! (Exclamation point) +! (Exclamation point) -intersection operator +intersection operator -Intersection +Intersection -SUM(A1:B6!B5:C12) -Calculates the sum of all cells in the intersection; in this example, the result yields the sum of cells B5 and B6. +SUM(A1:B6!B5:C12) +Calculates the sum of all cells in the intersection; in this example, the result yields the sum of cells B5 and B6. -~ (Tilde) +~ (Tilde) -Concatenation or union +Concatenation or union -Takes two references and returns a reference list, which is a concatenation of the left reference followed by the right reference. Double entries are referenced twice. +Takes two references and returns a reference list, which is a concatenation of the left reference followed by the right reference. Double entries are referenced twice. =COUNT(A1:B2~B2:C3) counts values of A1:B2 and B2:C3. Note that the cell B2 is counted twice. =INDEX(A1:B2~C1:D2;2;1;2) selects ce
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 4945e5aca16b0ce358d85ab168e32b7c7c5c7367 Author: Olivier Hallot AuthorDate: Sat Jun 24 08:13:00 2023 -0300 Commit: Gerrit Code Review CommitDate: Sat Jun 24 13:13:00 2023 +0200 Update git submodules * Update helpcontent2 from branch 'libreoffice-7-6' to 691744afc91d923e2d7b165e1e675fb02c4fbd1f - Refactor, no changes. Change-Id: I11d58e24520d749c30b73913555d478a24806cfc Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153541 Tested-by: Jenkins Reviewed-by: Olivier Hallot (cherry picked from commit 5d7fd5dd8910f3d7bc98c8a3d452102d133f4ffa) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153522 diff --git a/helpcontent2 b/helpcontent2 index 472dfac74c2d..691744afc91d 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit 472dfac74c2d0cb8dabb9c9bd377c86c472de6f1 +Subproject commit 691744afc91d923e2d7b165e1e675fb02c4fbd1f
[Libreoffice-commits] help.git: Branch 'libreoffice-7-6' - source/text
source/text/swriter/01/pagenumbering.xhp | 30 ++ 1 file changed, 22 insertions(+), 8 deletions(-) New commits: commit 480fe02b9f1b4a31b9f474f79b321ec524954857 Author: Olivier Hallot AuthorDate: Thu Jun 22 16:26:45 2023 -0300 Commit: Olivier Hallot CommitDate: Sat Jun 24 13:14:22 2023 +0200 tdf#1552354 Update page number wizard help page + synch with latest 7.6 features. Change-Id: Ia84f044cbb0e9f46da30219ac0c950dc1dda6396 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153474 Tested-by: Jenkins Reviewed-by: Olivier Hallot (cherry picked from commit 6b96b109055418994353b2d36c8735b0fff14637) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153428 diff --git a/source/text/swriter/01/pagenumbering.xhp b/source/text/swriter/01/pagenumbering.xhp index 674d37b7fb..44053b9a93 100644 --- a/source/text/swriter/01/pagenumbering.xhp +++ b/source/text/swriter/01/pagenumbering.xhp @@ -10,30 +10,44 @@ --> -Page Number Wizard +Page Number Wizard /text/swriter/01/pagenumbering.xhp - - - + + + page number;insert quickly Page Number Wizard -Use this command to quickly insert a page number in the header or footer of the current page style. +Use this command to quickly insert a page number in the header or footer of the current page style. + Choose Insert - Page Number. + +In the Insert menu of the Insert tab, choose Page Numbers. - + Position -Select the position of the page number: options are header or footer. +Select the position of the page number, Options are Top of page (Header) or Bottom of page (Footer). The Page Number command enables the header or footer of the current page style. - + + Alignment Select the alignment of the page number in the header or footer. Options are Left, Center and Right. + +Mirror on even pages +Creates separate left/right pages with mirrored page number placement. + +Include page total +Also insert the total number of pages. + +Page Numbers +Select a numbering scheme for the page numbers. +
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 586cd9aa192e9e72e03c324f2aafe84979f274fd Author: Olivier Hallot AuthorDate: Sat Jun 24 08:14:22 2023 -0300 Commit: Gerrit Code Review CommitDate: Sat Jun 24 13:14:22 2023 +0200 Update git submodules * Update helpcontent2 from branch 'libreoffice-7-6' to 480fe02b9f1b4a31b9f474f79b321ec524954857 - tdf#1552354 Update page number wizard help page + synch with latest 7.6 features. Change-Id: Ia84f044cbb0e9f46da30219ac0c950dc1dda6396 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153474 Tested-by: Jenkins Reviewed-by: Olivier Hallot (cherry picked from commit 6b96b109055418994353b2d36c8735b0fff14637) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/153428 diff --git a/helpcontent2 b/helpcontent2 index 691744afc91d..480fe02b9f1b 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit 691744afc91d923e2d7b165e1e675fb02c4fbd1f +Subproject commit 480fe02b9f1b4a31b9f474f79b321ec524954857
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - basegfx/source basegfx/test include/basegfx svgio/inc svgio/qa svgio/source
basegfx/source/color/bcolormodifier.cxx | 19 basegfx/test/BColorModifierTest.cxx | 27 +++ include/basegfx/color/bcolormodifier.hxx | 20 + svgio/inc/svgfecolormatrixnode.hxx |2 + svgio/inc/svgfegaussianblurnode.hxx | 14 --- svgio/inc/svgfilternode.hxx |6 + svgio/qa/cppunit/SvgImportTest.cxx |3 +- svgio/qa/cppunit/data/filterFeGaussianBlur.svg |2 - svgio/source/svgreader/svgfecolormatrixnode.cxx | 21 + svgio/source/svgreader/svgfegaussianblurnode.cxx | 18 +-- 10 files changed, 115 insertions(+), 17 deletions(-) New commits: commit 31a66dab1e7d39e2d2062442f41090c583466cc1 Author: Xisco Fauli AuthorDate: Sat Jun 24 11:17:16 2023 +0200 Commit: Xisco Fauli CommitDate: Sat Jun 24 14:37:35 2023 +0200 tdf#132246, tdf#155735: Add support for SourceAlpha Change-Id: I8feae2447b17e15113ca45fe46c0d68cb6b6ab71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153550 Tested-by: Jenkins Reviewed-by: Xisco Fauli Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153554 diff --git a/basegfx/source/color/bcolormodifier.cxx b/basegfx/source/color/bcolormodifier.cxx index 829b0abda659..52f34a69f205 100644 --- a/basegfx/source/color/bcolormodifier.cxx +++ b/basegfx/source/color/bcolormodifier.cxx @@ -69,6 +69,25 @@ namespace basegfx return "invert"; } +BColorModifier_alpha::~BColorModifier_alpha() +{ +} + +bool BColorModifier_alpha::operator==(const BColorModifier& rCompare) const +{ +return dynamic_cast< const BColorModifier_alpha* >(&rCompare) != nullptr; +} + +::basegfx::BColor BColorModifier_alpha::getModifiedColor(const ::basegfx::BColor& /*aSourceColor*/) const +{ +return ::basegfx::BColor(0.0, 0.0, 0.0); +} + +OUString BColorModifier_alpha::getModifierName() const +{ +return "alpha"; +} + BColorModifier_luminance_to_alpha::~BColorModifier_luminance_to_alpha() { } diff --git a/basegfx/test/BColorModifierTest.cxx b/basegfx/test/BColorModifierTest.cxx index 17b6a0c22257..ca811f67bd8a 100755 --- a/basegfx/test/BColorModifierTest.cxx +++ b/basegfx/test/BColorModifierTest.cxx @@ -352,6 +352,32 @@ public: CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier2)); } +void testAlpha() +{ +const basegfx::BColorModifierSharedPtr aBColorModifier += std::make_shared(); + +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maWhite)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maGray)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maBlack)); + +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maRed)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maGreen)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maBlue)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maYellow)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maMagenta)); +CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maCyan)); + +CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier)); +const basegfx::BColorModifierSharedPtr aBColorModifierInvert += std::make_shared(); +CPPUNIT_ASSERT(*aBColorModifier != *aBColorModifierInvert); + +const basegfx::BColorModifierSharedPtr aBColorModifier2 += std::make_shared(); +CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier2)); +} + CPPUNIT_TEST_SUITE(bcolormodifier); CPPUNIT_TEST(testGray); CPPUNIT_TEST(testInvert); @@ -362,6 +388,7 @@ public: CPPUNIT_TEST(testHueRotate); CPPUNIT_TEST(testMatrix); CPPUNIT_TEST(testIdentityMatrix); +CPPUNIT_TEST(testAlpha); CPPUNIT_TEST_SUITE_END(); }; diff --git a/include/basegfx/color/bcolormodifier.hxx b/include/basegfx/color/bcolormodifier.hxx index ceffae841847..a553ad18311f 100644 --- a/include/basegfx/color/bcolormodifier.hxx +++ b/include/basegfx/color/bcolormodifier.hxx @@ -127,6 +127,26 @@ namespace basegfx SAL_DLLPRIVATE virtual OUString getModifierName() const override; }; +/** + * convert to alpha +*/ +class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColorModifier_alpha final : public BColorModifier +{ +public: +BColorModifier_alpha() +{ +} + +virtual ~BColorModifier_alpha() override; + +// compare operator +SAL_DLLPRIVATE virtual bool operator==(const BColorModifier& rCompare) const override; + +// compute modified color +SAL_DLLPRIVATE virtual ::basegfx::BColor getModifiedColor(cons
Re: ESC budget ranking vote
On 22/06/2023 20.47, Ilmari Lauhakangas wrote: Per the decision in the ESC budget review meeting today, below is the ranking of budget items to be submitted to TDF board of directors. Non-conflicted ESC members: please give your approval of the ranking by replying to this mail. + Cleanup & further improve ODF conformance (2021) + Convert Impress slideshow to drawinglayer primitives (2021) + Writer tables: support cell margins (next to cell padding) (2021) + Font subsetter for font embedding (2022) + XLSX Aggressive Competitors tracker: gridlines for 3d line charts (2022) + Look-ahead styleref field for Writer (2022) + Normalized spell checking (2022) + Remove/Replace usages of XOR-Paint (2022) + ODT export nondeterminism (2022) + Bitmaps in vcl: Merge RGB and A layer into one (2022) + Allow inline graphics, formulas in impress (and draw), open equation with inline formulas from PPT, PPS, PPTX, PPSX (ranked 1 in Feb 2023) + Make Firebird implementation production-ready (ranked 3 in Feb 2023) + SVG rendering improvements (ranked 4 in Feb 2023) + Rotated Writer TextFrames (ranked 9 in Feb 2023) + XLSX Aggressive Competitors tracker: support math equations in Calc shapes (ranked 12 in Feb 2023) + Slideshow: rendering content on top of videos (ranked 19 in Feb 2023) + Missing ODF Features: Attribute svg:d of some of the possible commands are missing (ranked 30 in Feb 2023) + Missing ODF Features: The attribute draw:text-rotate-angle is interpreted, but there exists no user interface to change it. (ranked 33 in Feb 2023) + Missing ODF Feature: missing completely (ranked 33 in Feb 2023) + Missing ODF Features: Draw:shadow-offset-x/y only partially implemented (ranked 38 in Feb 2023) + Replace remaining Carbon functions with non-Carbon functions (macOS) (ranked 38 in Feb 2023) + Tests for drawinglayer and basegfx (ranked 41 in Feb 2023) +1 Best regards, Michael OpenPGP_signature Description: OpenPGP digital signature
[Libreoffice-commits] core.git: 2 commits - oox/source svgio/source
oox/source/drawingml/color.cxx |3 ++- svgio/source/svgreader/svgfecolormatrixnode.cxx |4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) New commits: commit 79bce686b7d3691deefcac23d5f8a090ff2e20ce Author: Caolán McNamara AuthorDate: Sat Jun 24 11:07:51 2023 +0100 Commit: Caolán McNamara CommitDate: Sat Jun 24 16:02:12 2023 +0200 cid#1532478 silence Unchecked return value Change-Id: I62caefd23f542d5c00ea86d84d199ce8ac09833b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153553 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/svgio/source/svgreader/svgfecolormatrixnode.cxx b/svgio/source/svgreader/svgfecolormatrixnode.cxx index 7902144e8bc8..e5ba501469f9 100644 --- a/svgio/source/svgreader/svgfecolormatrixnode.cxx +++ b/svgio/source/svgreader/svgfecolormatrixnode.cxx @@ -97,7 +97,7 @@ void SvgFeColorMatrixNode::apply(drawinglayer::primitive2d::Primitive2DContainer else if (maType == ColorType::Saturate) { SvgNumber aNum(1.0); -readSingleNumber(maValuesContent, aNum); +(void)readSingleNumber(maValuesContent, aNum); const drawinglayer::primitive2d::Primitive2DReference xRef( new drawinglayer::primitive2d::ModifiedColorPrimitive2D( @@ -108,7 +108,7 @@ void SvgFeColorMatrixNode::apply(drawinglayer::primitive2d::Primitive2DContainer else if (maType == ColorType::HueRotate) { SvgNumber aNum(0.0); -readSingleNumber(maValuesContent, aNum); +(void)readSingleNumber(maValuesContent, aNum); const drawinglayer::primitive2d::Primitive2DReference xRef( new drawinglayer::primitive2d::ModifiedColorPrimitive2D( std::move(rTarget), std::make_shared( commit 93b87910854e7c2a4fbe8abf2f2e704819c3dffe Author: Caolán McNamara AuthorDate: Sat Jun 24 10:59:18 2023 +0100 Commit: Caolán McNamara CommitDate: Sat Jun 24 16:02:02 2023 +0200 cid#1532474 Uninitialized scalar field Change-Id: I23bb555a8104a60f6e81954637127acf181bb9c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153551 Tested-by: Caolán McNamara Reviewed-by: Caolán McNamara diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx index d13e29839227..4d2ee2afbbce 100644 --- a/oox/source/drawingml/color.cxx +++ b/oox/source/drawingml/color.cxx @@ -294,7 +294,8 @@ Color::Color() : mnC1( 0 ), mnC2( 0 ), mnC3( 0 ), -mnAlpha( MAX_PERCENT ) +mnAlpha( MAX_PERCENT ), +meThemeColorType( model::ThemeColorType::Unknown ) { }
[Libreoffice-commits] core.git: xmlsecurity/inc xmlsecurity/source xmlsecurity/uiconfig
xmlsecurity/inc/digitalsignaturesdialog.hxx|1 xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx | 75 ++--- xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui |8 - 3 files changed, 68 insertions(+), 16 deletions(-) New commits: commit 17ba20e132d581c2298969451b510fb69c19f5fe Author: TokieSan AuthorDate: Tue Jun 20 22:52:03 2023 +0300 Commit: Thorsten Behrens CommitDate: Sat Jun 24 18:19:18 2023 +0200 Certificate Manager button is hidden in case no manager exists. A new function is implemented to check for that in digitalsignaturesdialog.cxx Change-Id: I4cf1c710e6a145e8f0d10716cb81394bdcf7a74f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153367 Tested-by: Jenkins Reviewed-by: Thorsten Behrens diff --git a/xmlsecurity/inc/digitalsignaturesdialog.hxx b/xmlsecurity/inc/digitalsignaturesdialog.hxx index 218c3e99c8b3..21b048117670 100644 --- a/xmlsecurity/inc/digitalsignaturesdialog.hxx +++ b/xmlsecurity/inc/digitalsignaturesdialog.hxx @@ -89,6 +89,7 @@ private: voidImplGetSignatureInformations(bool bUseTempStream, bool bCacheLastSignature); voidImplFillSignaturesBox(); voidImplShowSignaturesDetails(); +boolIsThereCertificateMgr(); css::uno::Reference getCertificate(const SignatureInformation& rInfo); css::uno::Reference getSecurityEnvironmentForCertificate( diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx index 0a306a008db0..ed73366234df 100644 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx +++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx @@ -115,6 +115,16 @@ namespace m_nODF = nTmp; } +const std::vector aGUIServersWindows = { u"Gpg4win\\kleopatra.exe", + u"Gpg4win\\bin\\kleopatra.exe", + u"GNU\\GnuPG\\kleopatra.exe", + u"GNU\\GnuPG\\launch-gpa.exe", + u"GNU\\GnuPG\\gpa.exe", + u"GnuPG\\bin\\gpa.exe", + u"GNU\\GnuPG\\bin\\kleopatra.exe", + u"GNU\\GnuPG\\bin\\launch-gpa.exe", + u"GNU\\GnuPG\\bin\\gpa.exe"}; +const std::vector aGUIServersNix = { u"kleopatra", u"seahorse", u"gpa", u"kgpg" }; } DigitalSignaturesDialog::DigitalSignaturesDialog( @@ -201,6 +211,11 @@ DigitalSignaturesDialog::DigitalSignaturesDialog( m_xRemoveBtn->hide(); m_xStartCertMgrBtn->hide(); } + +if ( !IsThereCertificateMgr() ) +{ +m_xStartCertMgrBtn->hide(); +} } DigitalSignaturesDialog::~DigitalSignaturesDialog() @@ -473,22 +488,54 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, RemoveButtonHdl, weld::Button&, void) } } +bool DigitalSignaturesDialog::IsThereCertificateMgr() +{ +static std::vector aGUIServers; +#ifdef _WIN32 +static const OUString aPath = [] { +sal::systools::CoTaskMemAllocated sPath; +HRESULT hr += SHGetKnownFolderPath(FOLDERID_ProgramFilesX86, KF_FLAG_DEFAULT, nullptr, &sPath); +if (SUCCEEDED(hr)) +return OUString(o3tl::toU(sPath)); +return OUString(); +}(); +if (aPath.isEmpty()) +return false; +aGUIServers = aGUIServersWindows; +#else +const char* cPath = getenv("PATH"); +if (!cPath) +return false; +OUString aPath(cPath, strlen(cPath), osl_getThreadTextEncoding()); +aGUIServers = aGUIServersNix; +#endif + +if (aGUIServers.empty()) +return false; + +OUString sFoundGUIServer, sExecutable; + +for ( auto const &rServer : aGUIServers ) +{ +osl::FileBase::RC searchError = osl::File::searchFileURL(OUString(rServer), aPath, sFoundGUIServer ); +if (searchError == osl::FileBase::E_None) +{ +osl::File::getSystemPathFromFileURL( sFoundGUIServer, sExecutable ); +break; +} +} + +return ( !sExecutable.isEmpty() ); +} + IMPL_LINK_NOARG(DigitalSignaturesDialog, CertMgrButtonHdl, weld::Button&, void) { +static std::vector aGUIServers; #ifdef _WIN32 // FIXME: call GpgME::dirInfo("bindir") somewhere in // SecurityEnvironmentGpg or whatnot // FIXME: perhaps poke GpgME for uiserver, and hope it returns something useful? -static const std::u16string_view aGUIServers[] = { u"Gpg4win\\kleopatra.exe", - u"Gpg4win\\bin\\kleopatra.exe", - u"GNU\\GnuPG\\kleopatra.exe", - u"GNU\\GnuPG\\launch-gpa.ex
[Libreoffice-commits] core.git: Branch 'distro/vector/vector-7.5' - sw/qa sw/source
sw/qa/extras/htmlexport/data/twoListsWithSameStyle.fodt | 19 +++ sw/qa/extras/htmlexport/htmlexport.cxx | 14 + sw/source/filter/html/htmlnumwriter.cxx | 40 3 files changed, 53 insertions(+), 20 deletions(-) New commits: commit 429527f86595018ec3121c5cebe22c50ebad0cbf Author: Mike Kaganski AuthorDate: Sat Jun 24 12:00:08 2023 +0300 Commit: Mike Kaganski CommitDate: Sat Jun 24 12:58:21 2023 +0300 ReqIF: 'ol' elements must have no 'start' attribute Change-Id: If02f4d2f0a34f2f39b90fb7b8c6d29e46d0da0ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153549 Tested-by: Jenkins Reviewed-by: Mike Kaganski diff --git a/sw/qa/extras/htmlexport/data/twoListsWithSameStyle.fodt b/sw/qa/extras/htmlexport/data/twoListsWithSameStyle.fodt new file mode 100644 index ..a5dc0f014d2a --- /dev/null +++ b/sw/qa/extras/htmlexport/data/twoListsWithSameStyle.fodt @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx index 3cdf01bf5174..b3543870d552 100644 --- a/sw/qa/extras/htmlexport/htmlexport.cxx +++ b/sw/qa/extras/htmlexport/htmlexport.cxx @@ -2562,6 +2562,20 @@ CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testTdf155871) CPPUNIT_ASSERT(pDoc); } +CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testReqIF_ListsNoStartAttribute) +{ +createSwDoc("twoListsWithSameStyle.fodt"); +ExportToReqif(); + +SvMemoryStream aStream; +WrapReqifFromTempFile(aStream); +xmlDocUniquePtr pDoc = parseXmlStream(&aStream); +CPPUNIT_ASSERT(pDoc); + +// No 'start' attribute must be present in 'ol' +assertXPath(pDoc, "//reqif-xhtml:ol[@start]", 0); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/html/htmlnumwriter.cxx b/sw/source/filter/html/htmlnumwriter.cxx index 1a4528506964..381b146c36e7 100644 --- a/sw/source/filter/html/htmlnumwriter.cxx +++ b/sw/source/filter/html/htmlnumwriter.cxx @@ -222,10 +222,10 @@ Writer& OutHTML_NumberBulletListStart( SwHTMLWriter& rWrt, // Ordered list: sOut += OOO_STRING_SVTOOLS_HTML_orderlist; -// determine the type by the format -char cType = 0; -if (!rWrt.mbReqIF) // No 'type' attribute in ReqIF +if (!rWrt.mbReqIF) // No 'type' nor 'start' attribute in ReqIF { +// determine the type by the format +char cType = 0; switch (eType) { case SVX_NUM_CHARS_UPPER_LETTER: @@ -243,29 +243,29 @@ Writer& OutHTML_NumberBulletListStart( SwHTMLWriter& rWrt, cType = 'i'; break; } -} -if( cType ) -{ -sOut += " " OOO_STRING_SVTOOLS_HTML_O_type "=\"" + OStringChar(cType) + "\""; -} +if( cType ) +{ +sOut += " " OOO_STRING_SVTOOLS_HTML_O_type "=\"" + OStringChar(cType) + "\""; +} -sal_uInt16 nStartVal = rNumFormat.GetStart(); -if( bStartValue && 1 == nStartVal && i == rInfo.GetDepth()-1 ) -{ -if ( rWrt.m_pCurrentPam->GetPointNode().GetTextNode()->GetNum() ) +sal_uInt16 nStartVal = rNumFormat.GetStart(); +if( bStartValue && 1 == nStartVal && i == rInfo.GetDepth()-1 ) { -nStartVal = static_cast< sal_uInt16 >( rWrt.m_pCurrentPam->GetPointNode() -.GetTextNode()->GetNumberVector()[i] ); +if ( rWrt.m_pCurrentPam->GetPointNode().GetTextNode()->GetNum() ) +{ +nStartVal = static_cast< sal_uInt16 >( rWrt.m_pCurrentPam->GetPointNode() +.GetTextNode()->GetNumberVector()[i] ); +} +else +{ +OSL_FAIL( "(nStartVal)) + "\""; } } -if( nStartVal != 1 ) -{ -sOut += " " OOO_STRING_SVTOOLS_HTML_O_start "=\"" + OString::number(static_cast(nStartVal)) + "\""; -} } if (!sOut.isEmpty() && SVX_NUM_BITMAP != eType) // second condition to avoid adding extra ul, already done before.
[Libreoffice-commits] core.git: sw/CppunitTest_sw_htmlexport.mk
sw/CppunitTest_sw_htmlexport.mk |8 1 file changed, 8 insertions(+) New commits: commit 5b02c7225837615d15f90e36a163fd3c39108465 Author: Mike Kaganski AuthorDate: Sat Jun 24 19:33:57 2023 +0300 Commit: Mike Kaganski CommitDate: Sat Jun 24 19:36:19 2023 +0200 Add missing dependency Similar to commit 012875da5bb23e2c90e9cb6132c4b36a7f56648a ("Add missing dependency", 2022-11-08). Change-Id: Iba8024782440b31b24932f5b0b17c392884d2816 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153559 Tested-by: Jenkins Reviewed-by: Mike Kaganski diff --git a/sw/CppunitTest_sw_htmlexport.mk b/sw/CppunitTest_sw_htmlexport.mk index 55450c3571db..3fc4a52c9d26 100644 --- a/sw/CppunitTest_sw_htmlexport.mk +++ b/sw/CppunitTest_sw_htmlexport.mk @@ -65,4 +65,12 @@ $(eval $(call gb_CppunitTest_use_rdb,sw_htmlexport,services)) $(eval $(call gb_CppunitTest_use_configuration,sw_htmlexport)) +ifeq ($(OS),WNT) +# Initializing DocumentSignatureManager will require gpgme-w32spawn.exe in workdir/LinkTarget/Executable +# In fact, it is not even required to complete test successfully, but the dialog would stop execution +$(eval $(call gb_CppunitTest_use_packages,sw_core_draw,\ +$(call gb_Helper_optional,GPGMEPP,gpgmepp)\ +)) +endif + # vim: set noet sw=4 ts=4:
GSoC'23 - Week 3 Report
2023-06-15-week3.md Description: application/md
[Libreoffice-commits] core.git: cui/source sd/source svx/source
cui/source/tabpages/tpgradnt.cxx | 13 ++--- cui/source/tabpages/tptrans.cxx |8 sd/source/ui/sidebar/SlideBackground.cxx | 13 ++--- svx/source/sidebar/area/AreaPropertyPanelBase.cxx | 13 ++--- svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx |9 - 5 files changed, 26 insertions(+), 30 deletions(-) New commits: commit 81daca18b69d31995bcd56f804659318398c02e2 Author: Regina Henschel AuthorDate: Sat Jun 24 16:08:26 2023 +0200 Commit: Caolán McNamara CommitDate: Sat Jun 24 22:29:34 2023 +0200 CID several. Use ctor 'from other' instead 'first..last' This covers CID#1532461, CID#1532462, CID#1532464, CID#1532467, CID#1532479. Now solutions without iterator are used. In all cases constructions like maColorStops = basegfx::BColorStops(rGradient.GetColorStops().begin(), rGradient.GetColorStops().end()); are replaced with solutions like maColorStops = rGradient.GetColorStops(); And instead of constructions like aColorStops.emplace_back(maColorStops.front().getStopOffset(), aStartBColor); aColorStops.insert(aColorStops.begin(), maColorStops.begin() + 1, maColorStops.end() - 1); aColorStops.emplace_back(maColorStops.back().getStopOffset(), aEndBColor); now it is like aColorStops = maColorStops; aColorStops.front() = basegfx::BColorStop(maColorStops.front().getStopOffset(), aStartBColor); aColorStops.back() = basegfx::BColorStop(maColorStops.back().getStopOffset(), aEndBColor); Change-Id: I2d2286e7707b205c58977bc3f850b2a49dda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153555 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx index d3d066236ae1..37c56da9aefc 100644 --- a/cui/source/tabpages/tpgradnt.cxx +++ b/cui/source/tabpages/tpgradnt.cxx @@ -551,8 +551,7 @@ void SvxGradientTabPage::ChangeGradientHdl_Impl() // MCGR: preserve ColorStops if given. // tdf#155901 We need offset of first and last stop, so include them. if (pGradient->GetColorStops().size() >= 2) -m_aColorStops = basegfx::BColorStops(pGradient->GetColorStops().begin(), - pGradient->GetColorStops().end()); +m_aColorStops = pGradient->GetColorStops(); else m_aColorStops.clear(); @@ -645,11 +644,11 @@ basegfx::BColorStops SvxGradientTabPage::createColorStops() if(m_aColorStops.size() >= 2) { -aColorStops.emplace_back(m_aColorStops.front().getStopOffset(), - m_xLbColorFrom->GetSelectEntryColor().getBColor()); -aColorStops.insert(aColorStops.begin(), m_aColorStops.begin() + 1, m_aColorStops.end() - 1); -aColorStops.emplace_back(m_aColorStops.back().getStopOffset(), - m_xLbColorTo->GetSelectEntryColor().getBColor()); +aColorStops = m_aColorStops; +aColorStops.front() = basegfx::BColorStop(m_aColorStops.front().getStopOffset(), + m_xLbColorFrom->GetSelectEntryColor().getBColor()); +aColorStops.back() = basegfx::BColorStop(m_aColorStops.back().getStopOffset(), + m_xLbColorTo->GetSelectEntryColor().getBColor()); } else { diff --git a/cui/source/tabpages/tptrans.cxx b/cui/source/tabpages/tptrans.cxx index 3d157850a526..04cbdfb6b24a 100644 --- a/cui/source/tabpages/tptrans.cxx +++ b/cui/source/tabpages/tptrans.cxx @@ -370,7 +370,7 @@ void SvxTransparenceTabPage::Reset(const SfxItemSet* rAttrs) // MCGR: preserve ColorStops if given // tdf#155901 We need offset of first and last stop, so include them. if (rGradient.GetColorStops().size() >= 2) -maColorStops = basegfx::BColorStops(rGradient.GetColorStops().begin(), rGradient.GetColorStops().end()); +maColorStops = rGradient.GetColorStops(); else maColorStops.clear(); @@ -519,9 +519,9 @@ basegfx::BColorStops SvxTransparenceTabPage::createColorStops() if(maColorStops.size() >= 2) { -aColorStops.emplace_back(maColorStops.front().getStopOffset(), aStartBColor); -aColorStops.insert(aColorStops.begin(), maColorStops.begin() + 1, maColorStops.end() - 1); -aColorStops.emplace_back(maColorStops.back().getStopOffset(), aEndBColor); +aColorStops = maColorStops; +aColorStops.front() = basegfx::BColorStop(maColorStops.front().getStopOffset(), aStartBColor); +aColorStops.back() = basegfx::BColorStop(maColorStops.back().getStopOffset(), aEndBColor); } else { diff --git a/sd/source/ui/sidebar/Sl
Re: GSoC'23 - Week 1 Report
On 10.6.2023 18.54, Baole Fang wrote: Missed to copy the contents: Join #tdf-infra Joined. Familiar with Mozilla’s work Mozilla has made their code[1] public. testselect[2] aligns with our project best. rust-code-analysis[3] can be used to calculate metrics from code/patches. Now, data mining[4] is finished. It is able to generate raw features from commits 1: https://github.com/mozilla/bugbug 2: https://github.com/mozilla/bugbug/blob/master/bugbug/models/testselect.py 3: https://github.com/mozilla/rust-code-analysis 4: https://github.com/baolef/libreoffice-ci/blob/data/data/mining.py