[Libreoffice-bugs] [Bug 151946] Opening spreadsheet very slow
https://bugs.documentfoundation.org/show_bug.cgi?id=151946 --- Comment #11 from Commit Notification --- Noel Grandin committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/e0ef3fed69864530da49cecb09fcc2fcc9acfeaa tdf#151946 cache LocaleDataWrapper It will be available in 24.2.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback. -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 151946] Opening spreadsheet very slow
https://bugs.documentfoundation.org/show_bug.cgi?id=151946 Commit Notification changed: What|Removed |Added Whiteboard||target:24.2.0 -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: sc/source
sc/source/core/tool/numformat.cxx | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) New commits: commit e0ef3fed69864530da49cecb09fcc2fcc9acfeaa Author: Noel Grandin AuthorDate: Tue Jun 13 22:04:09 2023 +0200 Commit: Noel Grandin CommitDate: Wed Jun 14 11:07:49 2023 +0200 tdf#151946 cache LocaleDataWrapper because it is a little more expensive these days to create it, since I made it an immutable type (which is also why we can safely cache it) Reduces load time from 7s to 1.5s for me Change-Id: I583381f0ee5494b8edf746b2329ac5751a9e5d86 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153006 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/sc/source/core/tool/numformat.cxx b/sc/source/core/tool/numformat.cxx index 8240c1ac6e4f..8b8512339d43 100644 --- a/sc/source/core/tool/numformat.cxx +++ b/sc/source/core/tool/numformat.cxx @@ -25,6 +25,7 @@ #include #include #include +#include namespace sc { @@ -51,9 +52,13 @@ bool NumFmtUtil::isLatinScript( sal_uLong nFormat, ScDocument& rDoc ) aDecSep = ScGlobal::getLocaleData().getNumDecimalSep(); else { -LocaleDataWrapper aLocaleData( -comphelper::getProcessComponentContext(), LanguageTag(nFormatLang)); -aDecSep = aLocaleData.getNumDecimalSep(); +// LocaleDataWrapper can be expensive to construct, so cache the result for +// repeated calls +static std::optional localeCache; +if (!localeCache || localeCache->getLanguageTag().getLanguageType() != nFormatLang) +localeCache.emplace( +comphelper::getProcessComponentContext(), LanguageTag(nFormatLang)); +aDecSep = localeCache->getNumDecimalSep(); } SvtScriptType nScript = rDoc.GetStringScriptType(aDecSep);
[Libreoffice-bugs] [Bug 155812] Open file with many page numbers spend too much time
https://bugs.documentfoundation.org/show_bug.cgi?id=155812 --- Comment #4 from Xiaoc <3118049...@qq.com> --- (In reply to featheredreflection from comment #3) > Like the original number, I add gaps, but this time there are more of them. > https://minicrossword.io I can't understand! -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 155828] New: Missing Table cell attributes to rotate text
https://bugs.documentfoundation.org/show_bug.cgi?id=155828 Bug ID: 155828 Summary: Missing Table cell attributes to rotate text Product: LibreOffice Version: 7.5.4.2 release Hardware: All OS: macOS (All) Status: UNCONFIRMED Severity: normal Priority: medium Component: Writer Assignee: libreoffice-bugs@lists.freedesktop.org Reporter: paul.mitterber...@gmx.net Description: I'm using Version 7.5.2.2, but i don't know when someone decided to delete the possibility to change cell atributes within a table in Writer. Thus i cant't find any pssobility to rotate the text now, write it vertical, ... !! And don't tell me to use a textbox instead to rotate a text within a cell. This is not a solution for an deleted usefull feature! It's just an "emergency solution" Actual Results: No menue entry to change table cell attributes within writer, only table attributes! Expected Results: Ther should be such entry Reproducible: Always User Profile Reset: No Additional Info: Please change this misbehavior -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - svtools/source
svtools/source/misc/unitconv.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit f7e52df2dde0b80f33123790681e94785154d566 Author: Mike Kaganski AuthorDate: Mon Jun 12 12:23:17 2023 +0300 Commit: Michael Stahl CommitDate: Wed Jun 14 10:58:08 2023 +0200 tdf#154349: round before converting to an integer Commit cfff893b9c82843a90aac4ecdb3a3936721b74a0 (Move unit conversion code to o3tl, and unify on that in more places, 2021-02-14) changed a custom conversion code in CalcToUnit doing inexact conversion from points to mm/20 (with "* 10 / 567"), with correct conversion function. A side effect was, however, that the imprecise arithmetics provided floating-point values that rounded down to correct integers (or maybe it was all the chain of calculations down to this function), while the correctly converted values could round down to a smaller value. Fix this problem using rounding. Change-Id: I42e0d56b068832ef309f6b696f661642e62ddacb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152894 Tested-by: Jenkins Reviewed-by: Mike Kaganski (cherry picked from commit cf0fe26f95b5435d65623165cf7ba381eaa0738a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152981 Reviewed-by: Michael Stahl diff --git a/svtools/source/misc/unitconv.cxx b/svtools/source/misc/unitconv.cxx index 395c1b4ac810..cb4fdf6901dd 100644 --- a/svtools/source/misc/unitconv.cxx +++ b/svtools/source/misc/unitconv.cxx @@ -128,7 +128,7 @@ tools::Long CalcToUnit( float nIn, MapUnit eUnit ) eUnit == MapUnit::MapCM, "this unit is not implemented" ); if (const auto eTo = MapToO3tlLength(eUnit); eTo != o3tl::Length::invalid) -return o3tl::convert(nIn, o3tl::Length::pt, eTo); +return std::round(o3tl::convert(nIn, o3tl::Length::pt, eTo)); return 0; }
[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed
https://bugs.documentfoundation.org/show_bug.cgi?id=155819 --- Comment #4 from Commit Notification --- Xisco Fauli committed a patch related to this issue. It has been pushed to "libreoffice-7-5": https://git.libreoffice.org/core/commit/0586becbcf4cf71b25c827011579da46c5dc106b tdf#155819: check marker property comes from a style sheet It will be available in 7.5.5. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback. -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed
https://bugs.documentfoundation.org/show_bug.cgi?id=155819 Commit Notification changed: What|Removed |Added Whiteboard|target:24.2.0 |target:24.2.0 |target:7.6.0.0.beta2|target:7.6.0.0.beta2 ||target:7.5.5 -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - svgio/qa svgio/source
svgio/qa/cppunit/SvgImportTest.cxx| 18 ++ svgio/qa/cppunit/data/tdf155819.svg | 15 +++ svgio/source/svgreader/svgstyleattributes.cxx |5 +++-- 3 files changed, 36 insertions(+), 2 deletions(-) New commits: commit 0586becbcf4cf71b25c827011579da46c5dc106b Author: Xisco Fauli AuthorDate: Wed Jun 14 01:10:50 2023 +0200 Commit: Michael Stahl CommitDate: Wed Jun 14 10:53:27 2023 +0200 tdf#155819: check marker property comes from a style sheet Since 242b7d0162d55be0945ca849c3de841fbf6cb475 "svgio: simplify code" where bIsInStyleSheet was replaced by getCssStyleParent() incorrectly Change-Id: I48632e9374f4615e32d18a141aeabec2936e6ec8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153016 Tested-by: Jenkins Reviewed-by: Xisco Fauli Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153036 Reviewed-by: Michael Stahl diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index 6e4ac0255677..c8305517ce00 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -135,6 +135,24 @@ CPPUNIT_TEST_FIXTURE(Test, testSymbol) assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "color", "#00d000"); } +CPPUNIT_TEST_FIXTURE(Test, testTdf155819) +{ +Primitive2DSequence aSequence = parseSvg(u"/svgio/qa/cppunit/data/tdf155819.svg"); +CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength())); + +drawinglayer::Primitive2dXmlDump dumper; +xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence); + +CPPUNIT_ASSERT (pDocument); + +assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", 1); +assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/polypolygon", 1); +// Without the fix in place, this test would have failed with +// - Expected: 4 +// - Actual : 0 +assertXPath(pDocument, "/primitive2D/transform/transform", 4); +} + CPPUNIT_TEST_FIXTURE(Test, testTdf87309) { Primitive2DSequence aSequenceTdf87309 = parseSvg(u"/svgio/qa/cppunit/data/tdf87309.svg"); diff --git a/svgio/qa/cppunit/data/tdf155819.svg b/svgio/qa/cppunit/data/tdf155819.svg new file mode 100644 index ..30c2da4d1a5a --- /dev/null +++ b/svgio/qa/cppunit/data/tdf155819.svg @@ -0,0 +1,15 @@ + +http://www.w3.org/2000/svg; viewBox="0 0 100 100"> + +path { + fill: none; + stroke-width: 4px; + marker: url(#diamond); +} + + + + + + diff --git a/svgio/source/svgreader/svgstyleattributes.cxx b/svgio/source/svgreader/svgstyleattributes.cxx index 8661b99d8895..6c42fbe744f9 100644 --- a/svgio/source/svgreader/svgstyleattributes.cxx +++ b/svgio/source/svgreader/svgstyleattributes.cxx @@ -1150,7 +1150,7 @@ namespace svgio::svgreader if(SVGToken::Path == mrOwner.getType() || // path SVGToken::Polygon == mrOwner.getType() || // polygon, polyline SVGToken::Line == mrOwner.getType() ||// line -getCssStyleParent()) +SVGToken::Style == mrOwner.getType())// tdf#150323 { // try to add markers add_markers(rPath, rTarget, pHelpPointIndices); @@ -1877,7 +1877,8 @@ namespace svgio::svgreader } case SVGToken::Marker: { -if(getCssStyleParent()) +// tdf#155819: Using the marker property from a style sheet is equivalent to using all three (start, mid, end). +if(mrOwner.getType() == SVGToken::Style) { readLocalUrl(aContent, maMarkerEndXLink); maMarkerStartXLink = maMarkerMidXLink = maMarkerEndXLink;
[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - svgio/source
svgio/source/svgreader/svgstyleattributes.cxx | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) New commits: commit c821fd07d45e2bf6b55922305001147af49613bf Author: Xisco Fauli AuthorDate: Thu Jun 8 13:49:11 2023 +0200 Commit: Michael Stahl CommitDate: Wed Jun 14 10:50:43 2023 +0200 tdf#155733: no need to store these values Remove the unittest in libreoffice-7-5 since the sample file uses which is not supported in this branch Change-Id: I1c22f8f344731eb5fbc5f77fc80267ebcdc81ed6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152740 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit 9662b23182174888045726fd57bf7d93c16cf4fb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152757 Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153037 Reviewed-by: Michael Stahl diff --git a/svgio/source/svgreader/svgstyleattributes.cxx b/svgio/source/svgreader/svgstyleattributes.cxx index ffdebc2f36a4..8661b99d8895 100644 --- a/svgio/source/svgreader/svgstyleattributes.cxx +++ b/svgio/source/svgreader/svgstyleattributes.cxx @@ -2866,7 +2866,7 @@ namespace svgio::svgreader if(!aClipPath.isEmpty()) { -const_cast< SvgStyleAttributes* >(this)->mpClipPathXLink = dynamic_cast< const SvgClipPathNode* >(mrOwner.getDocument().findSvgNodeById(aClipPath)); +return dynamic_cast< const SvgClipPathNode* >(mrOwner.getDocument().findSvgNodeById(aClipPath)); } } @@ -2901,7 +2901,7 @@ namespace svgio::svgreader if(!aMask.isEmpty()) { -const_cast< SvgStyleAttributes* >(this)->mpMaskXLink = dynamic_cast< const SvgMaskNode* >(mrOwner.getDocument().findSvgNodeById(aMask)); +return dynamic_cast< const SvgMaskNode* >(mrOwner.getDocument().findSvgNodeById(aMask)); } } @@ -2936,7 +2936,7 @@ namespace svgio::svgreader if(!aMarker.isEmpty()) { -const_cast< SvgStyleAttributes* >(this)->mpMarkerStartXLink = dynamic_cast< const SvgMarkerNode* >(mrOwner.getDocument().findSvgNodeById(getMarkerStartXLink())); +return dynamic_cast< const SvgMarkerNode* >(mrOwner.getDocument().findSvgNodeById(getMarkerStartXLink())); } } @@ -2971,7 +2971,7 @@ namespace svgio::svgreader if(!aMarker.isEmpty()) { -const_cast< SvgStyleAttributes* >(this)->mpMarkerMidXLink = dynamic_cast< const SvgMarkerNode* >(mrOwner.getDocument().findSvgNodeById(getMarkerMidXLink())); +return dynamic_cast< const SvgMarkerNode* >(mrOwner.getDocument().findSvgNodeById(getMarkerMidXLink())); } } @@ -3006,7 +3006,7 @@ namespace svgio::svgreader if(!aMarker.isEmpty()) { -const_cast< SvgStyleAttributes* >(this)->mpMarkerEndXLink = dynamic_cast< const SvgMarkerNode* >(mrOwner.getDocument().findSvgNodeById(getMarkerEndXLink())); +return dynamic_cast< const SvgMarkerNode* >(mrOwner.getDocument().findSvgNodeById(getMarkerEndXLink())); } }
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/qa sw/source
sw/qa/extras/uiwriter/uiwriter2.cxx | 19 +++ sw/source/core/crsr/crsrsh.cxx | 10 ++ 2 files changed, 29 insertions(+) New commits: commit e2e2a9d5b1153965c93caab4b748eae5994b8a50 Author: Michael Stahl AuthorDate: Fri Jun 9 13:59:58 2023 +0200 Commit: Michael Stahl CommitDate: Wed Jun 14 10:48:00 2023 +0200 cool#6580 sw: fix infinite loop when changing document language If there's a footnote in the document, changing the document langauge goes into an infinite loop in FindParentText(), because the selection created by ExtendedSelectAll(true) is actually invalid, apparently the intention is that only very limited functions may be called while it is active. Don't handle this invalid "very" extended selection like one created by ExtendedSelectAll(false). (regression from commit d81379db730a163c5ff75d4f3a3cddbd7b5eddda) Change-Id: Icf1032715cf2e0a05bf485039c483440c08bb6bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152797 Tested-by: Jenkins Reviewed-by: Michael Stahl (cherry picked from commit ca9341cf60f3f9350662d30b61f6eadefca24667) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152818 diff --git a/sw/qa/extras/uiwriter/uiwriter2.cxx b/sw/qa/extras/uiwriter/uiwriter2.cxx index a09d7b6fb780..6c9714367bf7 100644 --- a/sw/qa/extras/uiwriter/uiwriter2.cxx +++ b/sw/qa/extras/uiwriter/uiwriter2.cxx @@ -18,6 +18,10 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -168,6 +172,21 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf101534) CPPUNIT_ASSERT_EQUAL(::tools::Long(0), aSet.GetItem(RES_MARGIN_TEXTLEFT)->GetTextLeft()); } +CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testExtendedSelectAllHang) +{ +createSwDoc(); +SwDoc* const pDoc = getSwDoc(); +SwWrtShell* const pWrtShell = pDoc->GetDocShell()->GetWrtShell(); + +pWrtShell->InsertFootnote(""); +pWrtShell->StartOfSection(); +SwView* pView = pDoc->GetDocShell()->GetView(); +SfxStringItem aLangString(SID_LANGUAGE_STATUS, "Default_Spanish (Bolivia)"); +// this looped +pView->GetViewFrame().GetDispatcher()->ExecuteList(SID_LANGUAGE_STATUS, SfxCallMode::SYNCHRON, + { }); +} + CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testRedlineMoveInsertInDelete) { createSwDoc(); diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 325ff54d52cd..9fb43ff2d596 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -895,6 +895,16 @@ SwCursorShell::ExtendedSelectedAll() const typename SwCursorShell::StartsWith SwCursorShell::StartsWith_() { SwShellCursor const*const pShellCursor = getShellCursor(false); +// first, check if this is invalid; ExtendedSelectAll(true) may result in +// a) an ordinary selection that is valid +// b) a selection that is extended +// c) a selection that is invalid and will cause FindParentText to loop +SwNode const& rEndOfExtras(GetDoc()->GetNodes().GetEndOfExtras()); +if (pShellCursor->Start()->nNode.GetIndex() <= rEndOfExtras.GetIndex() +&& rEndOfExtras.GetIndex() < pShellCursor->End()->nNode.GetIndex()) +{ +return StartsWith::None; // *very* extended, no ExtendedSelectedAll handling! +} SwStartNode const*const pStartNode(FindParentText(*pShellCursor)); if (auto const ret = ::StartsWith(*pStartNode); ret != StartsWith::None) {
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - 2 commits - vcl/win winaccessibility/inc winaccessibility/source
vcl/win/window/salframe.cxx | 52 +++- winaccessibility/inc/AccEventListener.hxx |2 winaccessibility/inc/AccObject.hxx |4 winaccessibility/inc/AccObjectWinManager.hxx|9 winaccessibility/source/service/AccEventListener.cxx|9 winaccessibility/source/service/AccObject.cxx |9 winaccessibility/source/service/AccObjectWinManager.cxx | 167 +--- winaccessibility/source/service/msaaservice_impl.cxx|2 8 files changed, 153 insertions(+), 101 deletions(-) New commits: commit 6c6ff04a82d50691aaa5d084660b606b5c137be1 Author: Michael Stahl AuthorDate: Tue Jun 13 12:30:44 2023 +0200 Commit: Michael Stahl CommitDate: Wed Jun 14 10:47:18 2023 +0200 tdf#155794 vcl: handle WM_GETOBJECT without SolarMutex SalFrameWndProc() handles WM_GETOBJECT by acquiring SolarMutex and calling ImplHandleGetObject(), which again acquires the SolarMutex inside Application::SetSettings(). This was introduced with commit db214684057e3ff2fa32d57c00507309dd6c24d6 due to thread-safety crashes but it turns out that it can be problematic. When loading a document on a non-main thread, WinSalFrame::SetTitle() calls SetWindowTextW which is equivalent to SendMessage(WM_SETTEXT), while holding SolarMutex, and if the main thread doesn't finish processing it then that's a deadlock. Typically Desktop::Main() has already created the mxAccessBridge, so ImplHandleGetObject() most likely doesn't need to do it, so just skip the Settings code there in case the SolarMutex is locked by another thread. In case the SolarMutex is locked by another thread, do an unsafe read of ImplGetSVData()->mxAccessBridge - this should work until ImplSVData is deleted, by which time no Windows should exist anymore that could be receiving messages. This fixes part of the problem, winaccessibility also needs to stop using SolarMutex. Change-Id: I62b027ad06d2c3eb06a5f64b052a4acd0908f79c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152958 Tested-by: Jenkins Reviewed-by: Michael Stahl (cherry picked from commit 889c12e98e04edb4bc25b86bf16b8cf1d9b68420) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152986 diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx index e0a99d8e8779..2e60f38c1f11 100644 --- a/vcl/win/window/salframe.cxx +++ b/vcl/win/window/salframe.cxx @@ -5395,30 +5395,43 @@ static void ImplHandleIMENotify( HWND hWnd, WPARAM wParam ) static bool ImplHandleGetObject(HWND hWnd, LPARAM lParam, WPARAM wParam, LRESULT & nRet) { -if (!Application::GetSettings().GetMiscSettings().GetEnableATToolSupport()) +uno::Reference xMSAA; +if (ImplSalYieldMutexTryToAcquire()) { -// IA2 should be enabled automatically -AllSettings aSettings = Application::GetSettings(); -MiscSettings aMisc = aSettings.GetMiscSettings(); -aMisc.SetEnableATToolSupport(true); -// The above is enough, since aMisc changes the same shared ImplMiscData as used in global -// settings, so no need to call aSettings.SetMiscSettings and Application::SetSettings - if (!Application::GetSettings().GetMiscSettings().GetEnableATToolSupport()) -return false; // locked down somehow ? -} +{ +// IA2 should be enabled automatically +AllSettings aSettings = Application::GetSettings(); +MiscSettings aMisc = aSettings.GetMiscSettings(); +aMisc.SetEnableATToolSupport(true); +// The above is enough, since aMisc changes the same shared ImplMiscData as used in global +// settings, so no need to call aSettings.SetMiscSettings and Application::SetSettings + +if (!Application::GetSettings().GetMiscSettings().GetEnableATToolSupport()) +return false; // locked down somehow ? +} -ImplSVData* pSVData = ImplGetSVData(); +ImplSVData* pSVData = ImplGetSVData(); -// Make sure to launch Accessibility only the following criteria are satisfied -// to avoid RFT interrupts regular accessibility processing -if ( !pSVData->mxAccessBridge.is() ) -{ -if( !InitAccessBridge() ) -return false; +// Make sure to launch Accessibility only the following criteria are satisfied +// to avoid RFT interrupts regular accessibility processing +if ( !pSVData->mxAccessBridge.is() ) +{ +if( !InitAccessBridge() ) +return false; +} +xMSAA.set(pSVData->mxAccessBridge, uno::UNO_QUERY); +ImplSalYieldMutexRelease(); +} +else +{ // tdf#155794: access without locking: hopefully this should be fine +// as the bridge is typically inited in Desktop::Main() already and the +//
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - oox/source sc/source
oox/source/token/tokens.txt |1 + sc/source/filter/inc/condformatbuffer.hxx |3 +++ sc/source/filter/oox/condformatbuffer.cxx | 15 +++ sc/source/filter/oox/extlstcontext.cxx|6 ++ 4 files changed, 25 insertions(+) New commits: commit eb2de384f33875dabb98bf91d682111597d81784 Author: Henry Castro AuthorDate: Fri Mar 17 10:34:15 2023 -0400 Commit: Xisco Fauli CommitDate: Wed Jun 14 10:45:35 2023 +0200 sc: filter: oox: add missing tag "fillcolor" To fill the positive color of the conditional format data bar: Signed-off-by: Henry Castro Change-Id: I17e83a01a292ff941d92f6ae59954aa246ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149064 Tested-by: Jenkins CollaboraOffice Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152965 Tested-by: Jenkins (cherry picked from commit aebf004ae72e914540526269499bae27f39e04bf) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153013 Reviewed-by: Xisco Fauli diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt index dee9010df789..eb5239d8a8ac 100644 --- a/oox/source/token/tokens.txt +++ b/oox/source/token/tokens.txt @@ -2228,6 +2228,7 @@ fileType fileVersion filetime fill +fillColor fillClrLst fillFormulas fillId diff --git a/sc/source/filter/inc/condformatbuffer.hxx b/sc/source/filter/inc/condformatbuffer.hxx index 08e9053684e2..cdc8d4727baf 100644 --- a/sc/source/filter/inc/condformatbuffer.hxx +++ b/sc/source/filter/inc/condformatbuffer.hxx @@ -237,6 +237,7 @@ struct ExCfRuleModel ExCfRuleModel() : mnAxisColor( ColorTransparency, UNSIGNED_RGB_TRANSPARENT ), mnNegativeColor( ColorTransparency, UNSIGNED_RGB_TRANSPARENT ), mbGradient( false ), mbIsLower( true ) {} // AxisColor ::Color mnAxisColor; +::Color mnPositiveColor; // NegativeFillColor ::Color mnNegativeColor; OUString maAxisPosition; // DataBar @@ -251,6 +252,7 @@ class ExtCfDataBarRule : public WorksheetHelper enum RuleType { DATABAR, +POSITIVEFILLCOLOR, NEGATIVEFILLCOLOR, AXISCOLOR, CFVO, @@ -264,6 +266,7 @@ public: ExtCfDataBarRule(ScDataBarFormatData* pTarget, const WorksheetHelper& rParent); void finalizeImport(); void importDataBar( const AttributeList& rAttribs ); +void importPositiveFillColor( const AttributeList& rAttribs ); void importNegativeFillColor( const AttributeList& rAttribs ); void importAxisColor( const AttributeList& rAttribs ); void importCfvo( const AttributeList& rAttribs ); diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx index 1b397c2db316..649046e8b3b7 100644 --- a/sc/source/filter/oox/condformatbuffer.cxx +++ b/sc/source/filter/oox/condformatbuffer.cxx @@ -1398,6 +1398,12 @@ void ExtCfDataBarRule::finalizeImport() pDataBar->maAxisColor = maModel.mnAxisColor; break; } +case POSITIVEFILLCOLOR: +{ +ScDataBarFormatData* pDataBar = mpTarget; +pDataBar->maPositiveColor = maModel.mnPositiveColor; +break; +} case NEGATIVEFILLCOLOR: { ScDataBarFormatData* pDataBar = mpTarget; @@ -1456,6 +1462,15 @@ void ExtCfDataBarRule::importDataBar( const AttributeList& rAttribs ) maModel.maAxisPosition = rAttribs.getString( XML_axisPosition, "automatic" ); } +void ExtCfDataBarRule::importPositiveFillColor( const AttributeList& rAttribs ) +{ +mnRuleType = POSITIVEFILLCOLOR; +ThemeBuffer& rThemeBuffer = getTheme(); +GraphicHelper& rGraphicHelper = getBaseFilter().getGraphicHelper(); +::Color aColor = importOOXColor(rAttribs, rThemeBuffer, rGraphicHelper); +maModel.mnPositiveColor = aColor; +} + void ExtCfDataBarRule::importNegativeFillColor( const AttributeList& rAttribs ) { mnRuleType = NEGATIVEFILLCOLOR; diff --git a/sc/source/filter/oox/extlstcontext.cxx b/sc/source/filter/oox/extlstcontext.cxx index 1ea6b70d8707..2646f0969958 100644 --- a/sc/source/filter/oox/extlstcontext.cxx +++ b/sc/source/filter/oox/extlstcontext.cxx @@ -56,6 +56,12 @@ void ExtCfRuleContext::onStartElement( const AttributeList& rAttribs ) xRule->importDataBar( rAttribs ); break; } +case XLS14_TOKEN( fillColor ): +{ +ExtCfDataBarRuleRef xRule = getCondFormats().createExtCfDataBarRule(mpTarget); +xRule->importPositiveFillColor( rAttribs ); +break; +} case XLS14_TOKEN( negativeFillColor ): { ExtCfDataBarRuleRef xRule = getCondFormats().createExtCfDataBarRule(mpTarget);
[Libreoffice-bugs] [Bug 155825] Crash MCGR export special file odp -> pptx
https://bugs.documentfoundation.org/show_bug.cgi?id=155825 --- Comment #3 from Regina Henschel --- I have written bug 155827 for the axial-linear problem. It is independent from the crash here. -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 155827] New: MCGR FILESAVE PPTX axial and linear mixed color and transparency gradient is wrong in export
https://bugs.documentfoundation.org/show_bug.cgi?id=155827 Bug ID: 155827 Summary: MCGR FILESAVE PPTX axial and linear mixed color and transparency gradient is wrong in export Product: LibreOffice Version: 7.6.0.0 beta1+ Hardware: x86-64 (AMD64) OS: Windows (All) Status: UNCONFIRMED Severity: normal Priority: medium Component: Impress Assignee: libreoffice-bugs@lists.freedesktop.org Reporter: rb.hensc...@t-online.de Created attachment 187903 --> https://bugs.documentfoundation.org/attachment.cgi?id=187903=edit Screenshot left pptx right fodp Open attachment 187901 from bug 155825. It contains a shape and a screenshot of the shape. Save the file to pptx. Open the saved file. You see that the linear transparency gradient is exported as if it was axial. (In the following the Number is the offset and the characters are the values.) Imagine an axial color gradient with 0 A, 1 B together with a linear transparency gradient 0 X, 1 Y. Then the visual appearance is 0 BX, 0.5 A middle_of_X_and_Y, 1 BY But in because you apply axial after synchronizing you get 0 BY, 0.5 AX, 1 BY. The error is in WriteGradientFill in oox/source/export/drawingml.cxx around lines 780 to 820. The conversion from axial to linear has to be done before synchronizeColorStops. -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-ux-advise] [Bug 155546] Wizard not available when entering conditional formatting formula
https://bugs.documentfoundation.org/show_bug.cgi?id=155546 Heiko Tietze changed: What|Removed |Added Ever confirmed|0 |1 CC||libreoffice-ux-advise@lists ||.freedesktop.org Status|UNCONFIRMED |NEEDINFO --- Comment #1 from Heiko Tietze --- What exactly do you mean with wizard? "No Fx icon" sounds like the functions wizard but I see no relation to the conditional formatting which is all about constant values. -- You are receiving this mail because: You are on the CC list for the bug.
[Libreoffice-bugs] [Bug 155546] Wizard not available when entering conditional formatting formula
https://bugs.documentfoundation.org/show_bug.cgi?id=155546 Heiko Tietze changed: What|Removed |Added Ever confirmed|0 |1 CC||libreoffice-ux-advise@lists ||.freedesktop.org Status|UNCONFIRMED |NEEDINFO --- Comment #1 from Heiko Tietze --- What exactly do you mean with wizard? "No Fx icon" sounds like the functions wizard but I see no relation to the conditional formatting which is all about constant values. -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-ux-advise] [Bug 147980] Warning dialog shows only once for "Record changes"
https://bugs.documentfoundation.org/show_bug.cgi?id=147980 --- Comment #5 from Heiko Tietze --- (In reply to Po-Yen Huang from comment #0) > Warning dialog shows only when "Record changes" turn off first time. True only if you keep the dialog open. If you close the properties dialog, open again, start and end recording again, you will get the warning. But another question is if we need this a warning at all. You deliberately uncheck the recording which of course should have the effect of stopping it. And it's also not a destructive or crucial option, neither the dialog tells me anything new. "This action will exit the change recording mode. No information about changes will be recorded from now on. Exit change recording mode?" -- You are receiving this mail because: You are on the CC list for the bug.
[Libreoffice-bugs] [Bug 147980] Warning dialog shows only once for "Record changes"
https://bugs.documentfoundation.org/show_bug.cgi?id=147980 --- Comment #5 from Heiko Tietze --- (In reply to Po-Yen Huang from comment #0) > Warning dialog shows only when "Record changes" turn off first time. True only if you keep the dialog open. If you close the properties dialog, open again, start and end recording again, you will get the warning. But another question is if we need this a warning at all. You deliberately uncheck the recording which of course should have the effect of stopping it. And it's also not a destructive or crucial option, neither the dialog tells me anything new. "This action will exit the change recording mode. No information about changes will be recorded from now on. Exit change recording mode?" -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 106179] [META] Writer comment bugs and enhancements
https://bugs.documentfoundation.org/show_bug.cgi?id=106179 --- Comment #57 from fexave6784 --- In this article, we will explore the common causes of crypto login issues and provide you with helpful tips to resolve and prevent them. https://sites.google.com/abcrypt.com/cryptocomlogin/home https://sites.google.com/abcrypt.com/cryptocom-signin/home -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 151946] Opening spreadsheet very slow
https://bugs.documentfoundation.org/show_bug.cgi?id=151946 --- Comment #10 from Roman Kuznetsov <79045_79...@mail.ru> --- https://gerrit.libreoffice.org/c/core/+/153006 -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - sw/qa sw/source writerfilter/source
sw/qa/extras/ooxmlexport/data/para-style-char-position.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport18.cxx | 18 ++ sw/source/filter/ww8/docxattributeoutput.cxx|8 writerfilter/source/dmapper/DomainMapper.cxx| 21 ++-- writerfilter/source/dmapper/DomainMapper.hxx|6 ++- writerfilter/source/dmapper/DomainMapper_Impl.cxx |4 +- writerfilter/source/dmapper/DomainMapper_Impl.hxx |2 - writerfilter/source/dmapper/StyleSheetTable.cxx |1 8 files changed, 53 insertions(+), 7 deletions(-) New commits: commit cf2afb85305153aff5d7faca10216c4d0610dad0 Author: Miklos Vajna AuthorDate: Tue Jun 13 15:02:20 2023 +0200 Commit: Mike Kaganski CommitDate: Wed Jun 14 10:18:19 2023 +0200 DOCX filter: improve handling of negative in paragraph styles The bugdoc has a in its Normal paragraph style, which is almost not visible in Word, but we mapped this to default subscript text in Writer, leading to very visible bad font height in practice. The root of the problem is that works with an absolute offset in half-points, while Writer works in percentages, so the import/export code can only do a correct mapping in case the font size is known. This initial mapping was added in commit e70df84352d3670508a4666c97df44f82c1ce934 (try somewhat harder to read w:position (bnc#773061), 2012-08-07), and later commit d71cf6390a89ea6a4fab724e3a7996f28ca33661 (tdf#99602 writerfilter: import subscript into character style, 2019-10-04) gave up on this for character styles. Fix the problem by working with paragraph styles similar to what the binary DOC filter already does, just assuming that the font height from the style won't be overwritten, or will be overwritten together with a matching . Do this only for negative for now, as that's good enough for our needs. Do the opposite of this at export time. It would be still possible in the future to add native handling for absolute escapements, and then this mapping would not be needed at all. (cherry picked from commit 85f0a5d7bc54dfba75e8d6dd9c905bc1ac31d927) Change-Id: I771c7bed27fa2596153aa77c472c91b819fa4cb1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153035 Tested-by: Jenkins CollaboraOffice Reviewed-by: Mike Kaganski diff --git a/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx b/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx new file mode 100644 index ..946ca0bf9cc2 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx index ba2bdfed3c3f..00fbebcb3f4e 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx @@ -406,6 +406,24 @@ CPPUNIT_TEST_FIXTURE(Test, testNumberPortionFormatFromODT) assertXPath(pXmlDoc, "//w:pPr/w:rPr/w:sz", "val", "48"); } +CPPUNIT_TEST_FIXTURE(Test, testParaStyleCharPosition) +{ +// Given a loaded document where the Normal paragraph style has : +createSwDoc("para-style-char-position.docx"); + +// When saving it back to DOCX: +save("Office Open XML Text"); + +// Then make sure that is not turned into a normal subscript text: +xmlDocUniquePtr pXmlDoc = parseExport("word/styles.xml"); +// Without the accompanying fix in place, this test would have failed with: +// - Expected: 1 +// - Actual : 0 +// - XPath '/w:styles/w:style[@w:styleId='Normal']/w:rPr/w:position' number of nodes is incorrect +// i.e. we wrote instead of . +assertXPath(pXmlDoc, "/w:styles/w:style[@w:styleId='Normal']/w:rPr/w:position", "val", "-1"); +} + CPPUNIT_TEST_FIXTURE(Test, testTdf150966_regularInset) { // Given a docx document with a rectangular shape with height cy="90" (EMU), tIns="18" diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index b954d74d1b4e..795d25ef8f82 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -7693,8 +7693,14 @@ void DocxAttributeOutput::CharEscapement( const SvxEscapementItem& rEscapement ) OString sIss; short nEsc = rEscapement.GetEsc(), nProp = rEscapement.GetProportionalHeight(); +bool bParaStyle = false; +if (m_rExport.m_bStyDef && m_rExport.m_pCurrentStyle) +{ +bParaStyle = m_rExport.m_pCurrentStyle->Which() == RES_TXTFMTCOLL; +} + // Simplify styles to avoid impossible complexity. Import and export as defaults only -if ( m_rExport.m_bStyDef && nEsc ) +if ( m_rExport.m_bStyDef && nEsc && !(bParaStyle && nEsc < 0)) { nProp = DFLT_ESC_PROP; nEsc = (nEsc > 0) ?
[Libreoffice-bugs] [Bug 147514] How many copies you want of something should not be hidden in the print dialog
https://bugs.documentfoundation.org/show_bug.cgi?id=147514 Heiko Tietze changed: What|Removed |Added See Also||https://bugs.documentfounda ||tion.org/show_bug.cgi?id=12 ||7782 --- Comment #2 from Heiko Tietze --- Scrolled window and collapsed content was added for bug 127782. While moving the number of pages out of the expanded section is easy to do, it detaches this property from the associated collate and order options. If we show all reaching the paper size and orientation requires scrolling. Please keep in mind that we aim to run on devices with small screens and the dialog must not grow in size. -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-ux-advise] [Bug 147514] How many copies you want of something should not be hidden in the print dialog
https://bugs.documentfoundation.org/show_bug.cgi?id=147514 Heiko Tietze changed: What|Removed |Added See Also||https://bugs.documentfounda ||tion.org/show_bug.cgi?id=12 ||7782 --- Comment #2 from Heiko Tietze --- Scrolled window and collapsed content was added for bug 127782. While moving the number of pages out of the expanded section is easy to do, it detaches this property from the associated collate and order options. If we show all reaching the paper size and orientation requires scrolling. Please keep in mind that we aim to run on devices with small screens and the dialog must not grow in size. -- You are receiving this mail because: You are on the CC list for the bug.
[Libreoffice-commits] core.git: oox/CppunitTest_oox_mcgr.mk oox/Module_oox.mk oox/qa oox/source
oox/CppunitTest_oox_mcgr.mk | 53 + oox/Module_oox.mk|1 oox/qa/unit/data/MCGR_FontworkColorGradient.fodp | 662 +++ oox/qa/unit/data/MCGR_FontworkColorGradient.fodt | 331 +++ oox/qa/unit/export.cxx | 80 +- oox/qa/unit/mcgr.cxx | 73 ++ oox/source/drawingml/fontworkhelpers.cxx | 314 ++ 7 files changed, 1236 insertions(+), 278 deletions(-) New commits: commit 0028c2311ca14669ca530cd4db422cd3cf9438ca Author: Regina Henschel AuthorDate: Sat Jun 10 19:09:34 2023 +0200 Commit: Regina Henschel CommitDate: Wed Jun 14 10:09:51 2023 +0200 MCGR: Use BGradient in export of Fontwork to docx too Transparency values are not exactly like in UI because converting through rgb-color adds rounding inaccuracy. The unit tests are adjusted accordingly. With only start and end values it was possible to use the UI values directly. It would be possible to make special cases for front and back value, but I think it is not worth the effort. The previous solution had the error, that the stops were not mirrored in case of non linear gradient. That is corrected now. The unit tests are adjusted. The previous solution had assumed that our 'intensity' at start or end colors is the same as the 'lumMod' attribute in OOXML. However, this is not the case. So now the 'intensity' is incorporated into the color. Again, the unit tests are adjusted. Change-Id: Id02e455dc09d12c5b453637fcb2bdc4f8f1529d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152839 Tested-by: Jenkins Reviewed-by: Regina Henschel diff --git a/oox/CppunitTest_oox_mcgr.mk b/oox/CppunitTest_oox_mcgr.mk new file mode 100644 index ..ea7692e161fc --- /dev/null +++ b/oox/CppunitTest_oox_mcgr.mk @@ -0,0 +1,53 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +#* +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +#* + +$(eval $(call gb_CppunitTest_CppunitTest,oox_mcgr)) + +$(eval $(call gb_CppunitTest_use_externals,oox_mcgr,\ + boost_headers \ + libxml2 \ +)) + +$(eval $(call gb_CppunitTest_add_exception_objects,oox_mcgr, \ +oox/qa/unit/mcgr \ +)) + +$(eval $(call gb_CppunitTest_use_libraries,oox_mcgr, \ +comphelper \ +cppu \ +cppuhelper \ +oox \ +sal \ +subsequenttest \ +test \ +unotest \ +utl \ +tl \ +)) + +$(eval $(call gb_CppunitTest_use_sdk_api,oox_mcgr)) + +$(eval $(call gb_CppunitTest_use_ure,oox_mcgr)) +$(eval $(call gb_CppunitTest_use_vcl,oox_mcgr)) + +$(eval $(call gb_CppunitTest_use_rdb,oox_mcgr,services)) + +$(eval $(call gb_CppunitTest_use_custom_headers,oox_mcgr,\ + officecfg/registry \ +)) + +$(eval $(call gb_CppunitTest_use_configuration,oox_mcgr)) + +$(eval $(call gb_CppunitTest_add_arguments,oox_mcgr, \ + -env:arg-env=$(gb_Helper_LIBRARY_PATH_VAR)"{$(gb_Helper_LIBRARY_PATH_VAR)+=$(gb_Helper_LIBRARY_PATH_VAR)}" \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/oox/Module_oox.mk b/oox/Module_oox.mk index f868a126a61c..dc07ab913c56 100644 --- a/oox/Module_oox.mk +++ b/oox/Module_oox.mk @@ -34,6 +34,7 @@ $(eval $(call gb_Module_add_check_targets,oox,\ CppunitTest_oox_vml \ CppunitTest_oox_shape \ CppunitTest_oox_export \ +CppunitTest_oox_mcgr \ )) endif diff --git a/oox/qa/unit/data/MCGR_FontworkColorGradient.fodp b/oox/qa/unit/data/MCGR_FontworkColorGradient.fodp new file mode 100644 index ..e82401442c05 --- /dev/null +++ b/oox/qa/unit/data/MCGR_FontworkColorGradient.fodp @@ -0,0 +1,662 @@ + + +http://openoffice.org/2004/office; xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink; xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/; xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:rpt="http://openoffice.org/2005/report; xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:ooow="http://openoffice.org/200
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - sw/qa sw/source
sw/qa/core/unocore/data/floattable-outer-nonsplit-inner.docx |binary sw/qa/core/unocore/unocore.cxx | 24 sw/source/core/unocore/unotext.cxx | 32 +-- 3 files changed, 53 insertions(+), 3 deletions(-) New commits: commit 39a16c392b68bfa359f36a6d71cb43b373d019a6 Author: Miklos Vajna AuthorDate: Tue Jun 13 08:15:34 2023 +0200 Commit: Caolán McNamara CommitDate: Wed Jun 14 10:07:38 2023 +0200 sw floattable: fix anchor position of inner floating table The bugdoc has an outer, split floating table and an inner, non-split floating table. The anchor of the inner table was wrong: both were anchored in the only paragraph in the body text, while the inner floating table should be anchored inside the outer floating table. The reason for this is commit 9592f56323de27f9e1d890ee6259a5f4f328cbd3 (n#695479 fix anchor handling in SwXText::convertToTextFrame(), 2012-02-20), which was necessary to make sure that old-style frames after each other are all anchored to the body text, not inside each other. Fix the problem by leaving the behavior unchanged for empty paragraphs, but at least when the inner anchor is to-para, the last paragraph of a fly content is non-empty and the outer fly range contains the entire last paragraph, then consider such a fly as "inside" the outer fly content, rather than something that has to be moved so the anchor is still in the body text. CppunitTest_sw_rtfimport's testN695479, CppunitTest_sw_ooxmlexport10's testFloatingTablesAnchor and CppunitTest_sw_ooxmlexport13's testFlyInFly are all related tests and they continue to work after this change. (cherry picked from commit c374628126ad222be48d5d06857b7dc6b879f783) Change-Id: I30ed1d884ec465e724b4f133640b9608845a44fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152967 Tested-by: Jenkins CollaboraOffice Reviewed-by: Caolán McNamara diff --git a/sw/qa/core/unocore/data/floattable-outer-nonsplit-inner.docx b/sw/qa/core/unocore/data/floattable-outer-nonsplit-inner.docx new file mode 100644 index ..dc213b1b0d26 Binary files /dev/null and b/sw/qa/core/unocore/data/floattable-outer-nonsplit-inner.docx differ diff --git a/sw/qa/core/unocore/unocore.cxx b/sw/qa/core/unocore/unocore.cxx index d17b1e19940a..603d56d449a1 100644 --- a/sw/qa/core/unocore/unocore.cxx +++ b/sw/qa/core/unocore/unocore.cxx @@ -29,6 +29,8 @@ #include #include #include +#include +#include using namespace ::com::sun::star; @@ -930,6 +932,28 @@ CPPUNIT_TEST_FIXTURE(SwCoreUnocoreTest, testFlySplit) CPPUNIT_ASSERT(bIsSplitAllowed); } +CPPUNIT_TEST_FIXTURE(SwCoreUnocoreTest, testConvertToTextFrame) +{ +// Given a document with 2 non-interesting frames, an inner frame and an outer frame: +createSwDoc("floattable-outer-nonsplit-inner.docx"); + +// When checking the anchor of the inner frame: +SwDoc* pDoc = getSwDoc(); +const SwFrameFormats& rFrames = *pDoc->GetSpzFrameFormats(); +SwFrameFormat* pFrame3 = rFrames.FindFormatByName("Frame3"); +SwNodeIndex aFrame3Anchor = pFrame3->GetAnchor().GetContentAnchor()->nNode; + +// Then make sure it's anchored in the outer frame's last content node: +SwFrameFormat* pFrame4 = rFrames.FindFormatByName("Frame4"); +SwPaM aPaM(*pFrame4->GetContent().GetContentIdx()->GetNode().EndOfSectionNode()); +aPaM.Move(fnMoveBackward, GoInContent); +// Without the accompanying fix in place, this test would have failed with: +// - Expected: SwNodeIndex (node 27) +// - Actual : SwNodeIndex (node 49) +// i.e. Frame3 was anchored much later, in the body text, not in Frame4. +CPPUNIT_ASSERT_EQUAL(aPaM.GetPoint()->nNode, aFrame3Anchor); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index c2655901f66d..98b9cecbf57c 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -1537,6 +1537,34 @@ static bool isGraphicNode(const SwFrameFormat* pFrameFormat) return index.GetNode().IsGrfNode(); } +/// Determines if the at-para rAnchor is anchored at the start or end of rAnchorCheckPam. +static bool IsAtParaMatch(const SwPaM& rAnchorCheckPam, const SwFormatAnchor& rAnchor) +{ +if (rAnchor.GetAnchorId() != RndStdIds::FLY_AT_PARA) +{ +return false; +} + +if (rAnchorCheckPam.Start()->GetNode() == *rAnchor.GetAnchorNode()) +{ +return true; +} + +if (rAnchorCheckPam.End()->GetNode() == *rAnchor.GetAnchorNode()) +{ +SwTextNode* pEndTextNode = rAnchorCheckPam.End()->GetNode().GetTextNode(); +if (pEndTextNode && rAnchorCheckPam.End()->GetContentIndex() == pEndTextNode->Len()) +{ +// rAnchorCheckPam covers the
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - writerfilter/source
writerfilter/source/dmapper/DomainMapper_Impl.cxx |4 writerfilter/source/dmapper/NumberingManager.cxx | 10 writerfilter/source/dmapper/PropertyIds.cxx | 689 ++ writerfilter/source/dmapper/PropertyIds.hxx |2 writerfilter/source/dmapper/PropertyMap.cxx | 20 5 files changed, 360 insertions(+), 365 deletions(-) New commits: commit c631abe193bebf41d36a5ad69baa79940d1b4631 Author: Noel Grandin AuthorDate: Fri May 12 11:00:47 2023 +0200 Commit: Miklos Vajna CommitDate: Wed Jun 14 10:06:28 2023 +0200 avoid some OUString construction in writerfilter/ no need to repeatedly construct these Change-Id: Ie271c8adaf1cb558d3174c9f325de524c46e399b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151698 Tested-by: Jenkins Reviewed-by: Noel Grandin (cherry picked from commit 58208b97b972d6ddca5122893b3084c67b0c5ecd) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152991 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 745a4ca355e5..ac3cf2aa6032 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -1606,7 +1606,7 @@ static void lcl_MoveBorderPropertiesToFrame(std::vector& r for( size_t nProperty = 0; nProperty < SAL_N_ELEMENTS( aBorderProperties ); ++nProperty) { -OUString sPropertyName = getPropertyName(aBorderProperties[nProperty]); +const OUString & sPropertyName = getPropertyName(aBorderProperties[nProperty]); beans::PropertyValue aValue; aValue.Name = sPropertyName; aValue.Value = xTextRangeProperties->getPropertyValue(sPropertyName); @@ -4059,7 +4059,7 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape if ( bOnlyApplyCharHeight && eId != PROP_CHAR_HEIGHT ) continue; -const OUString sPropName = getPropertyName(eId); +const OUString & sPropName = getPropertyName(eId); if ( beans::PropertyState_DEFAULT_VALUE == xShapePropertyState->getPropertyState(sPropName) ) { const uno::Any aProp = GetPropertyFromStyleSheet(eId, pEntry, /*bDocDefaults=*/true, /*bPara=*/true); diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx index ea4fb36ec4a2..047e775d726f 100644 --- a/writerfilter/source/dmapper/NumberingManager.cxx +++ b/writerfilter/source/dmapper/NumberingManager.cxx @@ -276,9 +276,9 @@ void ListLevel::AddParaProperties( uno::Sequence< beans::PropertyValue >* props { uno::Sequence< beans::PropertyValue >& aProps = *props; -OUString sFirstLineIndent = getPropertyName( +const OUString & sFirstLineIndent = getPropertyName( PROP_FIRST_LINE_INDENT ); -OUString sIndentAt = getPropertyName( +const OUString & sIndentAt = getPropertyName( PROP_INDENT_AT ); bool hasFirstLineIndent = lcl_findProperty( aProps, sFirstLineIndent ); @@ -292,9 +292,9 @@ void ListLevel::AddParaProperties( uno::Sequence< beans::PropertyValue >* props // ParaFirstLineIndent -> FirstLineIndent // ParaLeftMargin -> IndentAt -OUString sParaIndent = getPropertyName( +const OUString & sParaIndent = getPropertyName( PROP_PARA_FIRST_LINE_INDENT ); -OUString sParaLeftMargin = getPropertyName( +const OUString & sParaLeftMargin = getPropertyName( PROP_PARA_LEFT_MARGIN ); for ( const auto& rParaProp : aParaProps ) @@ -615,7 +615,7 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper, } // Create the numbering style for these rules -OUString sNumRulesName = getPropertyName( PROP_NUMBERING_RULES ); +const OUString & sNumRulesName = getPropertyName( PROP_NUMBERING_RULES ); xStyle->setPropertyValue( sNumRulesName, uno::Any( m_xNumRules ) ); } catch( const lang::IllegalArgumentException& ) diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx index 31151ac6c229..935e9dfd2075 100644 --- a/writerfilter/source/dmapper/PropertyIds.cxx +++ b/writerfilter/source/dmapper/PropertyIds.cxx @@ -18,357 +18,352 @@ */ #include #include "PropertyIds.hxx" +#include namespace writerfilter::dmapper{ -OUString getPropertyName( PropertyIds eId ) +const OUString & getPropertyName( PropertyIds eId ) { -OUString sName; -switch(eId) { -case PROP_CHAR_WEIGHT: sName = "CharWeight"; break; -case PROP_CHAR_POSTURE:sName = "CharPosture"; break; -case PROP_CHAR_STRIKEOUT:
[Libreoffice-bugs] [Bug 155825] Crash MCGR export special file odp -> pptx
https://bugs.documentfoundation.org/show_bug.cgi?id=155825 Caolán McNamara changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 155804] Row-wise and/or column-wise merge in 2D area
https://bugs.documentfoundation.org/show_bug.cgi?id=155804 --- Comment #4 from Eyal Rozenberg --- (In reply to ady from comment #3) > Then use copy + paste special > format only, or "Clone Formatting". That doesn't do what I want either, if I want the merging to show all the contents rather than have the first column hide the others. But - if I want hiding, then that does help. -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sc/source
sc/source/filter/inc/condformatbuffer.hxx |1 + sc/source/filter/inc/extlstcontext.hxx|4 +++- sc/source/filter/oox/condformatbuffer.cxx | 13 + sc/source/filter/oox/extlstcontext.cxx| 28 4 files changed, 45 insertions(+), 1 deletion(-) New commits: commit 2fa664476f7ef233e41f6b445aa9a980ad345961 Author: Henry Castro AuthorDate: Fri Mar 17 10:47:31 2023 -0400 Commit: Xisco Fauli CommitDate: Wed Jun 14 09:32:16 2023 +0200 sc: filter: oox: Add a missing tag child of the parent tag "cfvo" 0 1 Signed-off-by: Henry Castro Change-Id: Ie98507e11a5cdeb0d1adc77a44fd79edb2f26d6a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149066 Tested-by: Jenkins CollaboraOffice Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152998 Tested-by: Jenkins (cherry picked from commit 3d4c4a95c32ad2a96831c3db552b0c389c596aea) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153015 Reviewed-by: Xisco Fauli diff --git a/sc/source/filter/inc/condformatbuffer.hxx b/sc/source/filter/inc/condformatbuffer.hxx index 992f14e041a8..08e9053684e2 100644 --- a/sc/source/filter/inc/condformatbuffer.hxx +++ b/sc/source/filter/inc/condformatbuffer.hxx @@ -241,6 +241,7 @@ struct ExCfRuleModel ::Color mnNegativeColor; OUString maAxisPosition; // DataBar OUString maColorScaleType; // Cfvo +OUString msScaleTypeValue; // Cfvo bool mbGradient; // DataBar bool mbIsLower; // Cfvo }; diff --git a/sc/source/filter/inc/extlstcontext.hxx b/sc/source/filter/inc/extlstcontext.hxx index 8635c6029523..077ebdbebf8e 100644 --- a/sc/source/filter/inc/extlstcontext.hxx +++ b/sc/source/filter/inc/extlstcontext.hxx @@ -32,11 +32,13 @@ public: virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) override; virtual voidonStartElement( const AttributeList& rAttribs ) override; +virtual voidonCharacters( const OUString& rChars ) override; +virtual voidonEndElement() override; private: ScDataBarFormatData* mpTarget; - bool mbFirstEntry; +ExtCfDataBarRuleRef mpRule; }; struct ExtCondFormatRuleModel diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx index 668467f7ccdf..1b397c2db316 100644 --- a/sc/source/filter/oox/condformatbuffer.cxx +++ b/sc/source/filter/oox/condformatbuffer.cxx @@ -1428,6 +1428,19 @@ void ExtCfDataBarRule::finalizeImport() pEntry->SetType(COLORSCALE_PERCENT); else if (maModel.maColorScaleType == "formula") pEntry->SetType(COLORSCALE_FORMULA); +else if (maModel.maColorScaleType == "num") +pEntry->SetType(COLORSCALE_VALUE); + +if (!maModel.msScaleTypeValue.isEmpty()) +{ +sal_Int32 nSize = 0; +rtl_math_ConversionStatus eStatus = rtl_math_ConversionStatus_Ok; +double fValue = rtl::math::stringToDouble(maModel.msScaleTypeValue, '.', '\0', , ); +if (eStatus == rtl_math_ConversionStatus_Ok && nSize == maModel.msScaleTypeValue.getLength()) +{ +pEntry->SetValue(fValue); +} +} break; } case UNKNOWN: // nothing to do diff --git a/sc/source/filter/oox/extlstcontext.cxx b/sc/source/filter/oox/extlstcontext.cxx index 45e60e7c6f5e..1ea6b70d8707 100644 --- a/sc/source/filter/oox/extlstcontext.cxx +++ b/sc/source/filter/oox/extlstcontext.cxx @@ -74,6 +74,7 @@ void ExtCfRuleContext::onStartElement( const AttributeList& rAttribs ) xRule->importCfvo( rAttribs ); xRule->getModel().mbIsLower = mbFirstEntry; mbFirstEntry = false; +mpRule = xRule; break; } default: @@ -81,6 +82,33 @@ void ExtCfRuleContext::onStartElement( const AttributeList& rAttribs ) } } +void ExtCfRuleContext::onCharacters( const OUString& rChars ) +{ +switch( getCurrentElement() ) +{ +case XM_TOKEN( f ): +{ +if (mpRule) +{ +mpRule->getModel().msScaleTypeValue = rChars; +} +} +break; +} +} + +void ExtCfRuleContext::onEndElement() +{ +switch( getCurrentElement() ) +{ +case XLS14_TOKEN( cfvo ): +{ +mpRule.reset(); +break; +} +} +} + namespace { bool IsSpecificTextCondMode(ScConditionMode eMode) {
[Libreoffice-commits] core.git: filter/source vcl/source
filter/source/svg/svgwriter.cxx |2 +- vcl/source/filter/svm/SvmReader.cxx |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) New commits: commit 667c7ea976fab4691660844560eb2dcc7ecbbd19 Author: Andrea Gelmini AuthorDate: Tue Jun 13 20:46:32 2023 +0200 Commit: Julien Nabet CommitDate: Wed Jun 14 09:09:36 2023 +0200 Fix typo Change-Id: I042c738e5d6e037a8c658a02cbfaef8f1d23799e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152999 Tested-by: Julien Nabet Reviewed-by: Julien Nabet diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx index be95c89de895..1826507bead8 100644 --- a/filter/source/svg/svgwriter.cxx +++ b/filter/source/svg/svgwriter.cxx @@ -3400,7 +3400,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, const size_t nMaxPossibleEntries = aMemStm.remainingSize() / 4 * sizeof(double); if (nTmp > nMaxPossibleEntries) { -SAL_WARN("filter.svg", "gradiant record claims to have: " << nTmp << " entries, but only " << nMaxPossibleEntries << " possible, clamping"); +SAL_WARN("filter.svg", "gradient record claims to have: " << nTmp << " entries, but only " << nMaxPossibleEntries << " possible, clamping"); nTmp = nMaxPossibleEntries; } diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx index 20462b620da5..56f2d933bbe9 100644 --- a/vcl/source/filter/svm/SvmReader.cxx +++ b/vcl/source/filter/svm/SvmReader.cxx @@ -1347,7 +1347,7 @@ rtl::Reference SvmReader::FloatTransparentHandler(ImplMetaReadData* const size_t nMaxPossibleEntries = mrStream.remainingSize() / 4 * sizeof(double); if (nTmp > nMaxPossibleEntries) { -SAL_WARN("vcl.gdi", "gradiant record claims to have: " << nTmp << " entries, but only " +SAL_WARN("vcl.gdi", "gradient record claims to have: " << nTmp << " entries, but only " << nMaxPossibleEntries << " possible, clamping"); nTmp = nMaxPossibleEntries;
[Libreoffice-bugs] [Bug 155812] Open file with many page numbers spend too much time
https://bugs.documentfoundation.org/show_bug.cgi?id=155812 --- Comment #3 from featheredreflection --- Like the original number, I add gaps, but this time there are more of them. https://minicrossword.io -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - svgio/qa svgio/source
svgio/qa/cppunit/SvgImportTest.cxx| 18 ++ svgio/qa/cppunit/data/tdf155819.svg | 15 +++ svgio/source/svgreader/svgstyleattributes.cxx |5 +++-- 3 files changed, 36 insertions(+), 2 deletions(-) New commits: commit edc8dfa49c1c5371177a49c9e661cbda4efd9dd6 Author: Xisco Fauli AuthorDate: Wed Jun 14 01:10:50 2023 +0200 Commit: Xisco Fauli CommitDate: Wed Jun 14 08:57:56 2023 +0200 tdf#155819: check marker property comes from a style sheet Since 242b7d0162d55be0945ca849c3de841fbf6cb475 "svgio: simplify code" where bIsInStyleSheet was replaced by getCssStyleParent() incorrectly Change-Id: I48632e9374f4615e32d18a141aeabec2936e6ec8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153016 Tested-by: Jenkins Reviewed-by: Xisco Fauli diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index ad5852127551..559af49af695 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -135,6 +135,24 @@ CPPUNIT_TEST_FIXTURE(Test, testSymbol) assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "color", "#00d000"); } +CPPUNIT_TEST_FIXTURE(Test, testTdf155819) +{ +Primitive2DSequence aSequence = parseSvg(u"/svgio/qa/cppunit/data/tdf155819.svg"); +CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength())); + +drawinglayer::Primitive2dXmlDump dumper; +xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence); + +CPPUNIT_ASSERT (pDocument); + +assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", 1); +assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/polypolygon", 1); +// Without the fix in place, this test would have failed with +// - Expected: 4 +// - Actual : 0 +assertXPath(pDocument, "/primitive2D/transform/transform", 4); +} + CPPUNIT_TEST_FIXTURE(Test, testFilterLuminanceToAlpha) { Primitive2DSequence aSequenceTdf132246 = parseSvg(u"/svgio/qa/cppunit/data/filterLuminanceToAlpha.svg"); diff --git a/svgio/qa/cppunit/data/tdf155819.svg b/svgio/qa/cppunit/data/tdf155819.svg new file mode 100644 index ..30c2da4d1a5a --- /dev/null +++ b/svgio/qa/cppunit/data/tdf155819.svg @@ -0,0 +1,15 @@ + +http://www.w3.org/2000/svg; viewBox="0 0 100 100"> + +path { + fill: none; + stroke-width: 4px; + marker: url(#diamond); +} + + + + + + diff --git a/svgio/source/svgreader/svgstyleattributes.cxx b/svgio/source/svgreader/svgstyleattributes.cxx index 58a982a8a927..9e9bd5e47e6d 100644 --- a/svgio/source/svgreader/svgstyleattributes.cxx +++ b/svgio/source/svgreader/svgstyleattributes.cxx @@ -1151,7 +1151,7 @@ namespace svgio::svgreader if(SVGToken::Path == mrOwner.getType() || // path SVGToken::Polygon == mrOwner.getType() || // polygon, polyline SVGToken::Line == mrOwner.getType() ||// line -getCssStyleParent()) +SVGToken::Style == mrOwner.getType())// tdf#150323 { // try to add markers add_markers(rPath, rTarget, pHelpPointIndices); @@ -1895,7 +1895,8 @@ namespace svgio::svgreader } case SVGToken::Marker: { -if(getCssStyleParent()) +// tdf#155819: Using the marker property from a style sheet is equivalent to using all three (start, mid, end). +if(mrOwner.getType() == SVGToken::Style) { readLocalUrl(aContent, maMarkerEndXLink); maMarkerStartXLink = maMarkerMidXLink = maMarkerEndXLink;
[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed
https://bugs.documentfoundation.org/show_bug.cgi?id=155819 --- Comment #3 from Commit Notification --- Xisco Fauli committed a patch related to this issue. It has been pushed to "libreoffice-7-6": https://git.libreoffice.org/core/commit/edc8dfa49c1c5371177a49c9e661cbda4efd9dd6 tdf#155819: check marker property comes from a style sheet It will be available in 7.6.0.0.beta2. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback. -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed
https://bugs.documentfoundation.org/show_bug.cgi?id=155819 Commit Notification changed: What|Removed |Added Whiteboard|target:24.2.0 |target:24.2.0 ||target:7.6.0.0.beta2 -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 155804] Row-wise and/or column-wise merge in 2D area
https://bugs.documentfoundation.org/show_bug.cgi?id=155804 --- Comment #3 from ady --- (In reply to Eyal Rozenberg from comment #2) > (In reply to ady from comment #1) > > But I don't want to copy-paste one row into the rest, each row has its own > contents. Then use copy + paste special > format only, or "Clone Formatting". -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - 2 commits - oox/source sc/source
oox/source/export/drawingml.cxx | 12 +++- sc/source/filter/oox/condformatbuffer.cxx | 76 ++ 2 files changed, 85 insertions(+), 3 deletions(-) New commits: commit f1fcea55e8653e75a24d1c1a574c6a4576b924d1 Author: Caolán McNamara AuthorDate: Tue Jun 13 14:37:56 2023 +0100 Commit: Xisco Fauli CommitDate: Wed Jun 14 08:55:21 2023 +0200 cid#1532377 Dereference before null check Change-Id: Ie85e81cea63578413db2c69020dae6a105466cb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152963 Tested-by: Jenkins Reviewed-by: Caolán McNamara (cherry picked from commit f412c1e448b0268294ccbccee4f3a6a9e76a7b98) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153010 Reviewed-by: Xisco Fauli diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 5b0772550471..dca260895af8 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -761,6 +761,14 @@ void DrawingML::WriteGradientFill( basegfx::utils::prepareColorStops(*pTransparenceGradient, aAlphaStops, aSingleAlpha); } +if (nullptr == pGradient) +{ +// an error - see comment in header - is to give neither pColorGradient +// nor pTransparenceGradient +assert(false && "pColorGradient or pTransparenceGradient should be set"); +return; +} + // apply steps if used. Need to do that before synchronizeColorStops // since that may add e.g. for AlphaStops all-the-same no-data entries, // so the number of entries might change @@ -775,12 +783,10 @@ void DrawingML::WriteGradientFill( // method (at import time) will be exported again basegfx::utils::synchronizeColorStops(aColorStops, aAlphaStops, aSingleColor, aSingleAlpha); -if (aColorStops.size() != aAlphaStops.size() || nullptr == pGradient) +if (aColorStops.size() != aAlphaStops.size()) { // this is an error - synchronizeColorStops above *has* to create that // state, see description there (!) -// also an error - see comment in header - is to give neither pColorGradient -// nor pTransparenceGradient assert(false && "oox::WriteGradientFill: non-synchronized gradients (!)"); return; } commit 1b282eac598d832e7d0af161541b8a3fcf4767c8 Author: Henry Castro AuthorDate: Fri Mar 17 10:40:23 2023 -0400 Commit: Xisco Fauli CommitDate: Wed Jun 14 08:55:09 2023 +0200 sc: filter: oox: add missing attribute "indexed" Signed-off-by: Henry Castro Change-Id: If7f6c8c902e4cd0d775f1014acad3dcd19f13f28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149065 Tested-by: Jenkins CollaboraOffice Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152968 Tested-by: Jenkins (cherry picked from commit 77a14410c3faffb2e2b78c039a989987b0a8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153014 Reviewed-by: Xisco Fauli diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx index ac5c2738aa47..668467f7ccdf 100644 --- a/sc/source/filter/oox/condformatbuffer.cxx +++ b/sc/source/filter/oox/condformatbuffer.cxx @@ -168,6 +168,76 @@ void ColorScaleRule::importCfvo( const AttributeList& rAttribs ) ++mnCfvo; } +// https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.indexedcolors?view=openxml-2.8.1 +static ::Color IndexedColors[] = { +0x, +0x00FF, +0x00FF, +0xFF00, +0x00FF, +0x0000, +0x00FF00FF, +0x, +0x, +0x00FF, +0x00FF, +0xFF00, +0x00FF, +0x0000, +0x00FF00FF, +0x, +0x0080, +0x8000, +0x0080, +0x00808000, +0x00800080, +0x8080, +0x00C0C0C0, +0x00808080, +0x00FF, +0x00993366, +0x00CC, +0x00CC, +0x00660066, +0x00FF8080, +0x66CC, +0x00FF, +0x0080, +0x00FF00FF, +0x0000, +0x, +0x00800080, +0x0080, +0x8080, +0x00FF, +0xCCFF, +0x00CC, +0x00CCFFCC, +0x0099, +0x0099CCFF, +0x00FF99CC, +0x00CC99FF, +0x00FFCC99, +0x003366FF, +0x0033, +0x0099CC00, +0x00FFCC00, +0x00FF9900, +0x00FF6600, +0x0099, +0x00969696, +0x3366, +0x00339966, +0x3300, +0x0000, +0x00993300, +0x00993366, +0x0099, +0x0033, +0x, // System Foreground ? +0x, // System Background ? +}; + namespace { ::Color importOOXColor(const AttributeList& rAttribs, const ThemeBuffer& rThemeBuffer, const GraphicHelper& rGraphicHelper) @@ -191,6 +261,12 @@ namespace { nColor = rThemeBuffer.getColorByIndex( nThemeIndex ); } +else if
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - vcl/inc vcl/unx
vcl/inc/unx/fontmanager.hxx |3 +++ vcl/unx/generic/fontmanager/fontconfig.cxx | 20 ++-- vcl/unx/generic/fontmanager/fontmanager.cxx |2 ++ 3 files changed, 23 insertions(+), 2 deletions(-) New commits: commit 40c0847d6fd12e81fda1528f7646f5288de2e24d Author: Khaled Hosny AuthorDate: Tue Jun 13 12:36:24 2023 +0300 Commit: Xisco Fauli CommitDate: Wed Jun 14 08:53:35 2023 +0200 When adding application fonts, add them also to FontConfig This way FontConfig can use them for missing chars font fallback. Change-Id: I63be8a62db9bdacc83be2327555c558d4cd476bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152954 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara (cherry picked from commit b416006052649ed69ef1dcd711187c860353a0db) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153012 Tested-by: Jenkins Reviewed-by: Xisco Fauli diff --git a/vcl/inc/unx/fontmanager.hxx b/vcl/inc/unx/fontmanager.hxx index a76474f856fc..a7817652d9ae 100644 --- a/vcl/inc/unx/fontmanager.hxx +++ b/vcl/inc/unx/fontmanager.hxx @@ -175,6 +175,9 @@ class VCL_PLUGIN_PUBLIC PrintFontManager */ static void addFontconfigDir(const OString& rDirectory); +/* register an application specific font file for libfontconfig */ +static void addFontconfigFile(const OString& rFile); + std::set m_aPreviousLangSupportRequests; std::vector m_aCurrentRequests; Timer m_aFontInstallerTimer; diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx b/vcl/unx/generic/fontmanager/fontconfig.cxx index eb66017d98fa..a34d0e08b050 100644 --- a/vcl/unx/generic/fontmanager/fontconfig.cxx +++ b/vcl/unx/generic/fontmanager/fontconfig.cxx @@ -153,8 +153,6 @@ class FontCfgWrapper { FcFontSet* m_pFontSet; -void addFontSet( FcSetName ); - FontCfgWrapper(); ~FontCfgWrapper(); @@ -162,6 +160,8 @@ public: static FontCfgWrapper& get(); static void release(); +void addFontSet( FcSetName ); + FcFontSet* getFontSet(); void clear(); @@ -766,6 +766,22 @@ void PrintFontManager::addFontconfigDir( const OString& rDirName ) } } +void PrintFontManager::addFontconfigFile( const OString& rFileName ) +{ +const char* pFileName = rFileName.getStr(); +bool bFileOk = (FcConfigAppFontAddFile(FcConfigGetCurrent(), reinterpret_cast(pFileName) ) == FcTrue); + +SAL_INFO("vcl.fonts", "FcConfigAppFontAddFile(\"" << pFileName << "\") => " << std::boolalpha << bFileOk); + +if( !bFileOk ) +return; + +// FIXME: we want to add only the newly added font not re-add the whole +// application font set. +FontCfgWrapper& rWrapper = FontCfgWrapper::get(); +rWrapper.addFontSet( FcSetApplication ); +} + static void addtopattern(FcPattern *pPattern, FontItalic eItalic, FontWeight eWeight, FontWidth eWidth, FontPitch ePitch) { diff --git a/vcl/unx/generic/fontmanager/fontmanager.cxx b/vcl/unx/generic/fontmanager/fontmanager.cxx index b8f99d122e1f..d7b6a211df13 100644 --- a/vcl/unx/generic/fontmanager/fontmanager.cxx +++ b/vcl/unx/generic/fontmanager/fontmanager.cxx @@ -159,6 +159,8 @@ std::vector PrintFontManager::addFontFile( std::u16string_view rFileUrl std::vector aFontIds = findFontFileIDs( nDirID, aName ); if( aFontIds.empty() ) { +addFontconfigFile(OUStringToOString(aPath.GetFull(), osl_getThreadTextEncoding())); + std::vector aNewFonts = analyzeFontFile(nDirID, aName); for (auto & font : aNewFonts) {
[Libreoffice-commits] core.git: i18npool/inc i18npool/source
i18npool/inc/localedata.hxx |2 i18npool/source/localedata/LocaleNode.cxx | 109 ++ i18npool/source/localedata/LocaleNode.hxx |4 + i18npool/source/localedata/filewriter.cxx | 26 +++ i18npool/source/localedata/localedata.cxx | 21 +++-- 5 files changed, 94 insertions(+), 68 deletions(-) New commits: commit ee76ed70e97448082f4c00c5c4207a44e1a91617 Author: Noel Grandin AuthorDate: Tue Jun 13 21:39:31 2023 +0200 Commit: Noel Grandin CommitDate: Wed Jun 14 08:47:00 2023 +0200 speed up startup time by avoid conversion of static locale data from sal_Unicode to OUString data - we can declare the data as OUStringConstExpr arrays and then no conversion is necessary. Change-Id: Iecc822169a2fcd2f4678e4d6c303083c54a54456 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153005 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/i18npool/inc/localedata.hxx b/i18npool/inc/localedata.hxx index f86954791f99..063637ca67f9 100644 --- a/i18npool/inc/localedata.hxx +++ b/i18npool/inc/localedata.hxx @@ -162,7 +162,7 @@ private: /// /// @throws css::uno::RuntimeException css::uno::Sequence< css::i18n::CalendarItem2 > getCalendarItems( -sal_Unicode const * const * const allCalendars, +OUString const * allCalendars, sal_Int16 & rnOffset, const sal_Int16 nWhichItem, const sal_Int16 nCalendar, diff --git a/i18npool/source/localedata/LocaleNode.cxx b/i18npool/source/localedata/LocaleNode.cxx index 0d24bc22e89a..08bf772321ad 100644 --- a/i18npool/source/localedata/LocaleNode.cxx +++ b/i18npool/source/localedata/LocaleNode.cxx @@ -1485,9 +1485,9 @@ static void lcl_writeAbbrFullNarrNames( const OFileWriter & of, const LocaleNode sal_uInt32 nChar = aFullName.iterateCodePoints( ::temporary(sal_Int32(0))); aNarrName = OUString( , 1); } -of.writeParameter( elementTag, "DefaultAbbrvName", aAbbrName, i, j); -of.writeParameter( elementTag, "DefaultFullName", aFullName, i, j); -of.writeParameter( elementTag, "DefaultNarrowName", aNarrName, i, j); +of.writeOUStringLiteralParameter( elementTag, "DefaultAbbrvName", aAbbrName, i, j); +of.writeOUStringLiteralParameter( elementTag, "DefaultFullName", aFullName, i, j); +of.writeOUStringLiteralParameter( elementTag, "DefaultNarrowName", aNarrName, i, j); } static void lcl_writeTabTagString( const OFileWriter & of, const char* pTag, const char* pStr ) @@ -1550,7 +1550,7 @@ void LCCalendarNode::generateCode (const OFileWriter ) const OUString useLocale = getAttr().getValueByName("ref"); if (!useLocale.isEmpty()) { useLocale = useLocale.replace( '-', '_'); -of.writeRefFunction("getAllCalendars_", useLocale); +of.writeOUStringRefFunction("getAllCalendars_", useLocale); return; } sal_Int16 nbOfCalendars = sal::static_int_cast( getNumberOfChildren() ); @@ -1585,7 +1585,7 @@ void LCCalendarNode::generateCode (const OFileWriter ) const for ( i = 0; i < nbOfCalendars; i++) { LocaleNode * calNode = getChildAt (i); OUString calendarID = calNode -> getAttr().getValueByName("unoid"); -of.writeParameter( "calendarID", calendarID, i); +of.writeOUStringLiteralParameter( "calendarID", calendarID, i); bool bGregorian = calendarID == "gregorian"; if (!bHasGregorian) bHasGregorian = bGregorian; @@ -1597,7 +1597,7 @@ void LCCalendarNode::generateCode (const OFileWriter ) const else calIt->second = true; str = calNode -> getAttr().getValueByName("default"); -of.writeDefaultParameter("Calendar", str, i); +of.writeOUStringLiteralDefaultParameter("Calendar", str, i); sal_Int16 nChild = 0; @@ -1614,8 +1614,8 @@ void LCCalendarNode::generateCode (const OFileWriter ) const } } if (!ref_name.isEmpty() && daysNode == nullptr) { -of.writeParameter("dayRef", u"ref", i); -of.writeParameter("dayRefName", ref_name, i); +of.writeOUStringLiteralParameter("dayRef", u"ref", i); +of.writeOUStringLiteralParameter("dayRefName", ref_name, i); nbOfDays[i] = 0; } else { if (daysNode == nullptr) @@ -1627,7 +1627,7 @@ void LCCalendarNode::generateCode (const OFileWriter ) const for (j = 0; j < nbOfDays[i]; j++) { LocaleNode *currNode = daysNode -> getChildAt(j); OUString dayID( currNode->getChildAt(0)->getValue()); -of.writeParameter("dayID", dayID, i, j); +of.writeOUStringLiteralParameter("dayID", dayID, i, j); if ( j == 0 && bGregorian && dayID != "sun" ) incError( "First day of a week of a Gregorian calendar must be sun");
[Libreoffice-commits] core.git: i18npool/source
i18npool/source/localedata/LocaleNode.cxx | 24 ++--- i18npool/source/localedata/LocaleNode.hxx |7 +++ i18npool/source/localedata/filewriter.cxx | 54 ++ i18npool/source/localedata/localedata.cxx | 19 +- i18npool/source/localedata/saxparser.cxx |1 5 files changed, 83 insertions(+), 22 deletions(-) New commits: commit 3af9bd139458b534ae72e3e010c8725b826fd12c Author: Noel Grandin AuthorDate: Tue Jun 13 21:10:01 2023 +0200 Commit: Noel Grandin CommitDate: Wed Jun 14 08:46:51 2023 +0200 speed up startup time by avoid conversion of static locale data from sal_Unicode to OUString data - we can declare the data as OUStringConstExpr arrays and then no conversion is necessary. Change-Id: I405806aef050e374b18a57cbf47e13a295821ccf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153004 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/i18npool/source/localedata/LocaleNode.cxx b/i18npool/source/localedata/LocaleNode.cxx index 14232338b9f1..0d24bc22e89a 100644 --- a/i18npool/source/localedata/LocaleNode.cxx +++ b/i18npool/source/localedata/LocaleNode.cxx @@ -562,11 +562,11 @@ void LCFormatNode::generateCode (const OFileWriter ) const switch (mnSection) { case 0: -of.writeRefFunction("getAllFormats0_", useLocale, "replaceTo0"); +of.writeOUStringRefFunction("getAllFormats0_", useLocale, "replaceTo0"); of.writeRefFunction("getDateAcceptancePatterns_", useLocale); break; case 1: -of.writeRefFunction("getAllFormats1_", useLocale, "replaceTo1"); +of.writeOUStringRefFunction("getAllFormats1_", useLocale, "replaceTo1"); break; } ++mnSection; @@ -610,17 +610,17 @@ void LCFormatNode::generateCode (const OFileWriter ) const str = currNodeAttr.getValueByName("msgid"); if (!aMsgIdSet.insert( str).second) incErrorStr( "Error: Duplicated msgid=\"%s\" in FormatElement.\n", str); -of.writeParameter("FormatKey", str, formatCount); +of.writeOUStringLiteralParameter("FormatKey", str, formatCount); str = currNodeAttr.getValueByName("default"); bool bDefault = str == "true"; -of.writeDefaultParameter("FormatElement", str, formatCount); +of.writeOUStringLiteralDefaultParameter("FormatElement", str, formatCount); aType = currNodeAttr.getValueByName("type"); -of.writeParameter("FormatType", aType, formatCount); +of.writeOUStringLiteralParameter("FormatType", aType, formatCount); aUsage = currNodeAttr.getValueByName("usage"); -of.writeParameter("FormatUsage", aUsage, formatCount); +of.writeOUStringLiteralParameter("FormatUsage", aUsage, formatCount); aFormatIndex = currNodeAttr.getValueByName("formatindex"); sal_Int16 formatindex = static_cast(aFormatIndex.toInt32()); @@ -636,7 +636,7 @@ void LCFormatNode::generateCode (const OFileWriter ) const incErrorInt( "Error: Duplicated formatindex=\"%d\" in FormatElement.\n", formatindex); bShowNextFreeFormatIndex = true; } -of.writeIntParameter("Formatindex", formatCount, formatindex); +of.writeOUStringLiteralIntParameter("Formatindex", formatCount, formatindex); // Ensure only one default per usage and type. if (bDefault) @@ -652,7 +652,7 @@ void LCFormatNode::generateCode (const OFileWriter ) const const LocaleNode * n = currNode -> findNode("FormatCode"); if (n) { -of.writeParameter("FormatCode", n->getValue(), formatCount); +of.writeOUStringLiteralParameter("FormatCode", n->getValue(), formatCount); // Check separator usage for some FormatCode elements. const LocaleNode* pCtype = nullptr; switch (formatindex) @@ -821,9 +821,9 @@ void LCFormatNode::generateCode (const OFileWriter ) const incError( "No FormatCode in FormatElement."); n = currNode -> findNode("DefaultName"); if (n) -of.writeParameter("FormatDefaultName", n->getValue(), formatCount); +of.writeOUStringLiteralParameter("FormatDefaultName", n->getValue(), formatCount); else -of.writeParameter("FormatDefaultName", std::u16string_view(), formatCount); +of.writeOUStringLiteralParameter("FormatDefaultName", std::u16string_view(), formatCount); } @@ -918,7 +918,7 @@ void LCFormatNode::generateCode (const OFileWriter ) const of.writeAsciiString(" = "); of.writeInt( formatCount - mnFormats); of.writeAsciiString(";\n"); -of.writeAsciiString("static const sal_Unicode* "); +of.writeAsciiString("static constexpr rtl::OUStringConstExpr "); of.writeAsciiString("FormatElementsArray");
[Libreoffice-commits] core.git: Branch 'feature/cib_contract891c' - 2 commits - configure.ac external/nss
Rebased ref, commits from common ancestor: commit 019743acfc717518cfca49f4fc326adea9661789 Author: Thorsten Behrens AuthorDate: Wed Jun 14 08:44:09 2023 +0200 Commit: Thorsten Behrens CommitDate: Wed Jun 14 08:45:14 2023 +0200 Release 5.4.18 Change-Id: I151cefaadc35a14c308d095bda6b044db369556a diff --git a/configure.ac b/configure.ac index ced1de25fcf1..425e1cb7c1a3 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,7 @@ dnl in order to create a configure script. # several non-alphanumeric characters, those are split off and used only for the # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea. -AC_INIT([LibreOffice],[5.4.17.0],[],[],[http://documentfoundation.org/]) +AC_INIT([LibreOffice],[5.4.18.0],[],[],[http://documentfoundation.org/]) AC_PREREQ([2.59]) commit 29cdc81fd9d0d4dd2a26d780cfbb8a2e1a3ec810 Author: Thorsten Behrens AuthorDate: Wed Jun 14 01:00:36 2023 +0200 Commit: Thorsten Behrens CommitDate: Wed Jun 14 08:45:06 2023 +0200 Fix nss build for devtoolset-7 string erase Error was: nss_bogo_shim.cc:43:66: error: no matching function for call to ‘std::basic_string..' Change-Id: I357d61fcb6299ac87edac2229a1a134199e7d37a diff --git a/external/nss/UnpackedTarball_nss.mk b/external/nss/UnpackedTarball_nss.mk index e77f92341d91..04d098cadc19 100644 --- a/external/nss/UnpackedTarball_nss.mk +++ b/external/nss/UnpackedTarball_nss.mk @@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,nss,\ external/nss/nss-win32-make.patch.1 \ external/nss/ubsan.patch.0 \ external/nss/clang-cl.patch.0 \ +external/nss/nss-std-string.patch.1 \ external/nss/nss.vs2015.patch \ external/nss/nss.vs2015.pdb.patch \ $(if $(filter iOS,$(OS)), \ diff --git a/external/nss/nss-std-string.patch.1 b/external/nss/nss-std-string.patch.1 new file mode 100644 index ..2669cfb51a4a --- /dev/null +++ b/external/nss/nss-std-string.patch.1 @@ -0,0 +1,15 @@ +diff -ur nss.org/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc nss/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc +--- nss.org/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc 2023-06-13 22:06:35.757518272 +0200 nss/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc 2023-06-13 22:06:50.521508892 +0200 +@@ -40,8 +40,8 @@ + } + + static void StringRemoveNewlines(std::string& str) { +- str.erase(std::remove(str.begin(), str.end(), '\n'), str.cend()); +- str.erase(std::remove(str.begin(), str.end(), '\r'), str.cend()); ++ str.erase(std::remove(str.begin(), str.end(), '\n'), str.end()); ++ str.erase(std::remove(str.begin(), str.end(), '\r'), str.end()); + } + + class TestAgent { +Only in nss/nss/gtests/nss_bogo_shim: nss_bogo_shim.cc~
[Libreoffice-commits] core.git: Branch 'libreoffice-7-6' - sw/qa sw/source writerfilter/source
sw/qa/extras/ooxmlexport/data/para-style-char-position.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport18.cxx | 18 ++ sw/source/filter/ww8/docxattributeoutput.cxx|8 writerfilter/source/dmapper/DomainMapper.cxx| 21 ++-- writerfilter/source/dmapper/DomainMapper.hxx|6 ++- writerfilter/source/dmapper/DomainMapper_Impl.cxx |4 +- writerfilter/source/dmapper/DomainMapper_Impl.hxx |2 - writerfilter/source/dmapper/StyleSheetTable.cxx |1 8 files changed, 53 insertions(+), 7 deletions(-) New commits: commit ddf8903e9b7528671e752d24717056f2db039464 Author: Miklos Vajna AuthorDate: Tue Jun 13 15:02:20 2023 +0200 Commit: Miklos Vajna CommitDate: Wed Jun 14 08:43:45 2023 +0200 DOCX filter: improve handling of negative in paragraph styles The bugdoc has a in its Normal paragraph style, which is almost not visible in Word, but we mapped this to default subscript text in Writer, leading to very visible bad font height in practice. The root of the problem is that works with an absolute offset in half-points, while Writer works in percentages, so the import/export code can only do a correct mapping in case the font size is known. This initial mapping was added in commit e70df84352d3670508a4666c97df44f82c1ce934 (try somewhat harder to read w:position (bnc#773061), 2012-08-07), and later commit d71cf6390a89ea6a4fab724e3a7996f28ca33661 (tdf#99602 writerfilter: import subscript into character style, 2019-10-04) gave up on this for character styles. Fix the problem by working with paragraph styles similar to what the binary DOC filter already does, just assuming that the font height from the style won't be overwritten, or will be overwritten together with a matching . Do this only for negative for now, as that's good enough for our needs. Do the opposite of this at export time. It would be still possible in the future to add native handling for absolute escapements, and then this mapping would not be needed at all. Change-Id: I771c7bed27fa2596153aa77c472c91b819fa4cb1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152962 Reviewed-by: Miklos Vajna Tested-by: Jenkins (cherry picked from commit 85f0a5d7bc54dfba75e8d6dd9c905bc1ac31d927) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153011 diff --git a/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx b/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx new file mode 100644 index ..946ca0bf9cc2 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/para-style-char-position.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx index 50a058d19c9d..fbb87915369e 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx @@ -615,6 +615,24 @@ CPPUNIT_TEST_FIXTURE(Test, testNumberPortionFormatFromODT) assertXPath(pXmlDoc, "//w:pPr/w:rPr/w:sz", "val", "48"); } +CPPUNIT_TEST_FIXTURE(Test, testParaStyleCharPosition) +{ +// Given a loaded document where the Normal paragraph style has : +createSwDoc("para-style-char-position.docx"); + +// When saving it back to DOCX: +save("Office Open XML Text"); + +// Then make sure that is not turned into a normal subscript text: +xmlDocUniquePtr pXmlDoc = parseExport("word/styles.xml"); +// Without the accompanying fix in place, this test would have failed with: +// - Expected: 1 +// - Actual : 0 +// - XPath '/w:styles/w:style[@w:styleId='Normal']/w:rPr/w:position' number of nodes is incorrect +// i.e. we wrote instead of . +assertXPath(pXmlDoc, "/w:styles/w:style[@w:styleId='Normal']/w:rPr/w:position", "val", "-1"); +} + CPPUNIT_TEST_FIXTURE(Test, testTdf150966_regularInset) { // Given a docx document with a rectangular shape with height cy="90" (EMU), tIns="18" diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index a75682761d84..ba5d14bd8c90 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -7791,8 +7791,14 @@ void DocxAttributeOutput::CharEscapement( const SvxEscapementItem& rEscapement ) OString sIss; short nEsc = rEscapement.GetEsc(), nProp = rEscapement.GetProportionalHeight(); +bool bParaStyle = false; +if (m_rExport.m_bStyDef && m_rExport.m_pCurrentStyle) +{ +bParaStyle = m_rExport.m_pCurrentStyle->Which() == RES_TXTFMTCOLL; +} + // Simplify styles to avoid impossible complexity. Import and export as defaults only -if ( m_rExport.m_bStyDef && nEsc ) +if ( m_rExport.m_bStyDef && nEsc && !(bParaStyle && nEsc < 0)) { nProp = DFLT_ESC_PROP;
[Libreoffice-bugs] [Bug 155826] Flowchart, [Connect Standard] connects [Process] and [Start End], Press the [Ctrl] key, scrolls the mouse wheel, and the page zooms. The position and shape of [Connect
https://bugs.documentfoundation.org/show_bug.cgi?id=155826 Charles <13720880...@163.com> changed: What|Removed |Added Hardware|x86-64 (AMD64) |All -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 155826] New: Flowchart, [Connect Standard] connects [Process] and [Start End], Press the [Ctrl] key, scrolls the mouse wheel, and the page zooms. The position and shape of [Con
https://bugs.documentfoundation.org/show_bug.cgi?id=155826 Bug ID: 155826 Summary: Flowchart, [Connect Standard] connects [Process] and [Start End], Press the [Ctrl] key, scrolls the mouse wheel, and the page zooms. The position and shape of [Connect Standard] changes Product: LibreOffice Version: 7.5.2.2 release Hardware: x86-64 (AMD64) OS: Windows (All) Status: UNCONFIRMED Severity: normal Priority: medium Component: Draw Assignee: libreoffice-bugs@lists.freedesktop.org Reporter: 13720880...@163.com Description: Flowchart, [Connect Standard] connects [Process] and [Start End], Press the [Ctrl] key, scrolls the mouse wheel, and the page zooms. The position and shape of [Connect Standard] changes. But it is OK after reboot LibreOffice. Steps to Reproduce: 1.Creat a Draw 2.Drag and drop [Process] or [Start-End] 3.Drag and drop [Connect-Standard] 4.Connect from [Start-End] to [Process] by [Connect-Standard] 5.Press the [Ctrl] button and scroll the mouse wheel back and forth to zoom the page Actual Results: The position and shape of [Connect Standard] have changed and detached from [Start End]/[Process]. Expected Results: The [Connect-Standard] position and shape do not change. Reproducible: Sometimes User Profile Reset: No Additional Info: [Information automatically included from LibreOffice] Locale: zh-CN Module: TextDocument [Information guessed from browser] OS: Windows (All) OS is 64bit: no -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-bugs] [Bug 155736] Fileopen DOCX:Page numbers (from field of course, but inside a nested block SDT) are missing in the footer for a particular file
https://bugs.documentfoundation.org/show_bug.cgi?id=155736 SATYA SRINIVAS K changed: What|Removed |Added Assignee|libreoffice-b...@lists.free |skompe...@opentext.com |desktop.org | -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - 2 commits - include/oox oox/source writerfilter/source
include/oox/drawingml/color.hxx |3 ++ oox/source/drawingml/color.cxx | 24 +++ oox/source/drawingml/fillproperties.cxx | 16 +-- oox/source/drawingml/textcharacterproperties.cxx | 15 -- writerfilter/source/ooxml/model.xml | 12 +-- 5 files changed, 36 insertions(+), 34 deletions(-) New commits: commit 92a7222b04f18644f6a58d1503ab0d29ca8b057c Author: Tomaž Vajngerl AuthorDate: Sat Jun 10 22:22:17 2023 +0900 Commit: Miklos Vajna CommitDate: Wed Jun 14 08:34:17 2023 +0200 oox: fix theme data in model.xml to use a correct types Change-Id: Ifaa725d8a3e6c4cfefc92a6c5fcdb581610d3ce6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152832 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl (cherry picked from commit 3a6d360b5e585b8e92cc0d58d5fbc497448e11fb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152990 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml index 8082c433e89b..89a1d9f91425 100644 --- a/writerfilter/source/ooxml/model.xml +++ b/writerfilter/source/ooxml/model.xml @@ -10997,13 +10997,13 @@ - + - + - + @@ -12591,13 +12591,13 @@ - + - + - + commit b9aa62a714370b63ff93f55f1e599e4cad4c7eef Author: Tomaž Vajngerl AuthorDate: Fri Jun 9 23:34:24 2023 +0900 Commit: Miklos Vajna CommitDate: Wed Jun 14 08:34:08 2023 +0200 oox: remove code duplication and add getComplexColor to oox::Color Change-Id: I9cfbc851d4f303a5a8c92183f01cb5b6545b7984 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152800 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl (cherry picked from commit c1470e15bd0643be8d91aaf6a0d25c78867d0b3e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152969 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/include/oox/drawingml/color.hxx b/include/oox/drawingml/color.hxx index 75812c200c28..245e655d7c78 100644 --- a/include/oox/drawingml/color.hxx +++ b/include/oox/drawingml/color.hxx @@ -30,6 +30,7 @@ #include #include #include +#include namespace oox { class GraphicHelper; } @@ -117,6 +118,8 @@ public: /// Compares this color with rOther. bool equals(const Color& rOther, const GraphicHelper& rGraphicHelper, ::Color nPhClr) const; +model::ComplexColor getComplexColor() const; + private: /** Internal helper for getColor(). */ voidsetResolvedRgb( ::Color nRgb ) const; diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx index 592d0734efc2..e9c645b99b7c 100644 --- a/oox/source/drawingml/color.cxx +++ b/oox/source/drawingml/color.cxx @@ -567,6 +567,30 @@ sal_Int16 Color::getLumOff() const return 0; } +model::ComplexColor Color::getComplexColor() const +{ +model::ComplexColor aComplexColor; + aComplexColor.setSchemeColor(model::convertToThemeColorType(getSchemeColorIndex())); + +if (getTintOrShade() > 0) +{ +aComplexColor.addTransformation({model::TransformationType::Tint, getTintOrShade()}); +} +else if (getTintOrShade() < 0) +{ +sal_Int16 nShade = o3tl::narrowing(-getTintOrShade()); +aComplexColor.addTransformation({model::TransformationType::Shade, nShade}); +} + +if (getLumMod() != 1) +aComplexColor.addTransformation({model::TransformationType::LumMod, getLumMod()}); + +if (getLumOff() != 0) +aComplexColor.addTransformation({model::TransformationType::LumOff, getLumOff()}); + +return aComplexColor; +} + ::Color Color::getColor( const GraphicHelper& rGraphicHelper, ::Color nPhClr ) const { const sal_Int32 nTempC1 = mnC1; diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index fe00d12cf078..0a2e53928076 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -430,24 +430,12 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, if (aFillColor == nPhClr) { aComplexColor.setSchemeColor(model::convertToThemeColorType(nPhClrTheme)); -rPropMap.setProperty(PROP_FillComplexColor, model::color::createXComplexColor(aComplexColor)); } else { - aComplexColor.setSchemeColor(model::convertToThemeColorType(maFillColor.getSchemeColorIndex())); -if (maFillColor.getLumMod() != 1) -
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - docmodel/source editeng/source svx/source
docmodel/source/color/ComplexColorJSON.cxx| 52 +- editeng/source/items/textitem.cxx |9 ++-- svx/source/theme/ThemeColorPaletteManager.cxx |2 - 3 files changed, 33 insertions(+), 30 deletions(-) New commits: commit 81ae86d5f9e6d06300a2d6cf160de004c881ade5 Author: Tomaž Vajngerl AuthorDate: Fri Jun 9 16:06:37 2023 +0900 Commit: Miklos Vajna CommitDate: Wed Jun 14 08:33:12 2023 +0200 fix wrong transform type, error handling when JSON parsing Change-Id: Id5435d59cd51352efc4a4a8e333ec1ff45847a6f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152781 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/docmodel/source/color/ComplexColorJSON.cxx b/docmodel/source/color/ComplexColorJSON.cxx index 409ecd27277b..f4d6fdf0af1b 100644 --- a/docmodel/source/color/ComplexColorJSON.cxx +++ b/docmodel/source/color/ComplexColorJSON.cxx @@ -18,40 +18,42 @@ namespace model::color bool convertFromJSON(OString const& rJsonString, model::ComplexColor& rComplexColor) { model::ComplexColor aComplexColor; -std::stringstream aStream((std::string(rJsonString))); -boost::property_tree::ptree aRootTree; + try { +std::stringstream aStream((std::string(rJsonString))); +boost::property_tree::ptree aRootTree; boost::property_tree::read_json(aStream, aRootTree); + +sal_Int32 nThemeType = aRootTree.get("ThemeIndex", -1); + aComplexColor.setSchemeColor(model::convertToThemeColorType(nThemeType)); +boost::property_tree::ptree aTransformTree = aRootTree.get_child("Transformations"); +for (const auto& rEachTransformationNode : + boost::make_iterator_range(aTransformTree.equal_range(""))) +{ +auto const& rTransformationTree = rEachTransformationNode.second; +std::string sType = rTransformationTree.get("Type", ""); +sal_Int16 nValue = rTransformationTree.get("Value", 0); + +auto eType = model::TransformationType::Undefined; +if (sType == "LumOff") +eType = model::TransformationType::LumOff; +else if (sType == "LumMod") +eType = model::TransformationType::LumMod; +else if (sType == "Tint") +eType = model::TransformationType::Tint; +else if (sType == "Shade") +eType = model::TransformationType::Shade; + +if (eType != model::TransformationType::Undefined) +aComplexColor.addTransformation({ eType, nValue }); +} } catch (const boost::property_tree::json_parser_error& /*exception*/) { return false; } -sal_Int32 nThemeType = aRootTree.get("ThemeIndex", -1); -aComplexColor.setSchemeColor(model::convertToThemeColorType(nThemeType)); -boost::property_tree::ptree aTransformTree = aRootTree.get_child("Transformations"); -for (const auto& rEachTransformationNode : - boost::make_iterator_range(aTransformTree.equal_range(""))) -{ -auto const& rTransformationTree = rEachTransformationNode.second; -std::string sType = rTransformationTree.get("Type", ""); -sal_Int16 nValue = rTransformationTree.get("Value", 0); - -auto eType = model::TransformationType::Undefined; -if (sType == "LumOff") -eType = model::TransformationType::LumOff; -else if (sType == "LumMod") -eType = model::TransformationType::LumMod; -else if (sType == "Tint") -eType = model::TransformationType::Tint; -else if (sType == "Shade") -eType = model::TransformationType::Shade; - -if (eType != model::TransformationType::Undefined) -aComplexColor.addTransformation({ eType, nValue }); -} rComplexColor = aComplexColor; return true; } diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx index 3e7cc6c6a736..f4194da865a6 100644 --- a/editeng/source/items/textitem.cxx +++ b/editeng/source/items/textitem.cxx @@ -1555,11 +1555,11 @@ bool SvxColorItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) return false; if (sComplexColorJson.isEmpty()) -{ return false; -} + OString aJSON = OUStringToOString(sComplexColorJson, RTL_TEXTENCODING_ASCII_US); -model::color::convertFromJSON(aJSON, maComplexColor); +if (!model::color::convertFromJSON(aJSON, maComplexColor)) +return false; } break; case MID_COMPLEX_COLOR: @@ -1575,7 +1575,8 @@ bool SvxColorItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) case MID_COLOR_RGB: default: { -return rVal >>= mColor; +if (!(rVal >>= mColor)) +return false; } break; } diff --git
[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed
https://bugs.documentfoundation.org/show_bug.cgi?id=155819 Xisco Faulí changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - download.lst external/openssl
download.lst |4 external/openssl/0001-x509-excessive-resource-use-verifying-policy-constra.patch.1 | 221 -- external/openssl/README |2 external/openssl/UnpackedTarball_openssl.mk |2 external/openssl/openssl-no-_umul128-on-aarch64.patch.1 | 58 -- 5 files changed, 3 insertions(+), 284 deletions(-) New commits: commit 390844869c973efafdaf8a0a766b3113488a4fd6 Author: Taichi Haradaguchi <20001...@ymail.ne.jp> AuthorDate: Sun Jun 11 17:36:54 2023 +0900 Commit: Taichi Haradaguchi <20001...@ymail.ne.jp> CommitDate: Wed Jun 14 08:19:36 2023 +0200 openssl: upgrade to release 3.0.9 Fixes CVE-2023-1255, CVE-2023-2650 and 3 more CVEs that probably don't affect LibreOffice. Change-Id: Ic615b008298471267121a0f4deb227ddb3a0409e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152851 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp> (cherry picked from commit 2137d04d1ddb80691c29de0df99fc2ba58820ce0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152970 Reviewed-by: Xisco Fauli (cherry picked from commit 66ccf3207806776d13203b7bdbea760128e37d10) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152977 Reviewed-by: Michael Stahl diff --git a/download.lst b/download.lst index 4b38bd9d0d87..1a8e7d036da9 100644 --- a/download.lst +++ b/download.lst @@ -419,8 +419,8 @@ OPENLDAP_TARBALL := openldap-2.4.59.tgz # three static lines # so that git cherry-pick # will not run into conflicts -OPENSSL_SHA256SUM := 6c13d2bf38fdf31eac3ce2a347073673f5d63263398f1f69d0df4a41253e4b3e -OPENSSL_TARBALL := openssl-3.0.8.tar.gz +OPENSSL_SHA256SUM := eb1ab04781474360f77c318ab89d8c5a03abc38e63d65a603cabbf1b00a1dc90 +OPENSSL_TARBALL := openssl-3.0.9.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/openssl/0001-x509-excessive-resource-use-verifying-policy-constra.patch.1 b/external/openssl/0001-x509-excessive-resource-use-verifying-policy-constra.patch.1 deleted file mode 100644 index d96d1d76883e.. --- a/external/openssl/0001-x509-excessive-resource-use-verifying-policy-constra.patch.1 +++ /dev/null @@ -1,221 +0,0 @@ -From 959c59c7a0164117e7f8366466a32bb1f8d77ff1 Mon Sep 17 00:00:00 2001 -From: Pauli -Date: Wed, 8 Mar 2023 15:28:20 +1100 -Subject: [PATCH] x509: excessive resource use verifying policy constraints - -A security vulnerability has been identified in all supported versions -of OpenSSL related to the verification of X.509 certificate chains -that include policy constraints. Attackers may be able to exploit this -vulnerability by creating a malicious certificate chain that triggers -exponential use of computational resources, leading to a denial-of-service -(DoS) attack on affected systems. - -Fixes CVE-2023-0464 - -Reviewed-by: Tomas Mraz -Reviewed-by: Shane Lontis -(Merged from https://github.com/openssl/openssl/pull/20568) - crypto/x509/pcy_local.h | 8 +++- - crypto/x509/pcy_node.c | 12 +--- - crypto/x509/pcy_tree.c | 36 ++-- - 3 files changed, 42 insertions(+), 14 deletions(-) - -diff --git a/crypto/x509/pcy_local.h b/crypto/x509/pcy_local.h -index 18b53cc09e..cba107ca03 100644 a/crypto/x509/pcy_local.h -+++ b/crypto/x509/pcy_local.h -@@ -111,6 +111,11 @@ struct X509_POLICY_LEVEL_st { - }; - - struct X509_POLICY_TREE_st { -+/* The number of nodes in the tree */ -+size_t node_count; -+/* The maximum number of nodes in the tree */ -+size_t node_maximum; -+ - /* This is the tree 'level' data */ - X509_POLICY_LEVEL *levels; - int nlevel; -@@ -157,7 +162,8 @@ X509_POLICY_NODE *ossl_policy_tree_find_sk(STACK_OF(X509_POLICY_NODE) *sk, - X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level, - X509_POLICY_DATA *data, - X509_POLICY_NODE *parent, -- X509_POLICY_TREE *tree); -+ X509_POLICY_TREE *tree, -+ int extra_data); - void ossl_policy_node_free(X509_POLICY_NODE *node); - int ossl_policy_node_match(const X509_POLICY_LEVEL *lvl, -const X509_POLICY_NODE *node, const ASN1_OBJECT *oid); -diff --git a/crypto/x509/pcy_node.c b/crypto/x509/pcy_node.c -index 9d9a7ea179..450f95a655 100644 a/crypto/x509/pcy_node.c -+++ b/crypto/x509/pcy_node.c -@@ -59,10 +59,15 @@ X509_POLICY_NODE *ossl_policy_level_find_node(const X509_POLICY_LEVEL *level, - X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level, - X509_POLICY_DATA
[Libreoffice-commits] core.git: sw/qa
sw/qa/extras/htmlexport/htmlexport.cxx |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) New commits: commit 4e06ba6e57d8f1166b6e54924a7228b5c85962ba Author: Miklos Vajna AuthorDate: Tue Jun 13 20:10:43 2023 +0200 Commit: Miklos Vajna CommitDate: Wed Jun 14 08:17:36 2023 +0200 CppunitTest_sw_htmlexport: avoid reqif magic in testOleNodataReqIf Set the filter options explicitly, rather than inferring it from the test name. Change-Id: I08acf610c2880f20fb7e06151566bc7725fb5357 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152997 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx index 0f8d4497d793..c4479353e7f5 100644 --- a/sw/qa/extras/htmlexport/htmlexport.cxx +++ b/sw/qa/extras/htmlexport/htmlexport.cxx @@ -1056,8 +1056,12 @@ CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testTransparentImageReqIf) CPPUNIT_ASSERT_MESSAGE(aMessage.toUtf8().getStr(), aSource.endsWith(".png")); } -DECLARE_HTMLEXPORT_TEST(testOleNodataReqIf, "reqif-ole-nodata.odt") +CPPUNIT_TEST_FIXTURE(HtmlExportTest, testOleNodataReqIf) { +createSwDoc("reqif-ole-nodata.odt"); +setFilterOptions("xhtmlns=reqif-xhtml"); +save(mpFilter); + // This failed, io::IOException was thrown during the filter() call. SvMemoryStream aStream; WrapReqifFromTempFile(aStream);
[Libreoffice-bugs] [Bug 155819] SVG: marker not displayed
https://bugs.documentfoundation.org/show_bug.cgi?id=155819 Commit Notification changed: What|Removed |Added Whiteboard||target:24.2.0 -- You are receiving this mail because: You are the assignee for the bug.
[Libreoffice-commits] core.git: svgio/qa svgio/source
svgio/qa/cppunit/SvgImportTest.cxx| 18 ++ svgio/qa/cppunit/data/tdf155819.svg | 15 +++ svgio/source/svgreader/svgstyleattributes.cxx |5 +++-- 3 files changed, 36 insertions(+), 2 deletions(-) New commits: commit d3f0a59f3c47095d4b1d8c01b1316a7dc7f5467d Author: Xisco Fauli AuthorDate: Wed Jun 14 01:10:50 2023 +0200 Commit: Xisco Fauli CommitDate: Wed Jun 14 08:08:28 2023 +0200 tdf#155819: check marker property comes from a style sheet Since 242b7d0162d55be0945ca849c3de841fbf6cb475 "svgio: simplify code" where bIsInStyleSheet was replaced by getCssStyleParent() incorrectly Change-Id: I48632e9374f4615e32d18a141aeabec2936e6ec8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153031 Tested-by: Jenkins Reviewed-by: Xisco Fauli diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index ad5852127551..559af49af695 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -135,6 +135,24 @@ CPPUNIT_TEST_FIXTURE(Test, testSymbol) assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "color", "#00d000"); } +CPPUNIT_TEST_FIXTURE(Test, testTdf155819) +{ +Primitive2DSequence aSequence = parseSvg(u"/svgio/qa/cppunit/data/tdf155819.svg"); +CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength())); + +drawinglayer::Primitive2dXmlDump dumper; +xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence); + +CPPUNIT_ASSERT (pDocument); + +assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", 1); +assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/polypolygon", 1); +// Without the fix in place, this test would have failed with +// - Expected: 4 +// - Actual : 0 +assertXPath(pDocument, "/primitive2D/transform/transform", 4); +} + CPPUNIT_TEST_FIXTURE(Test, testFilterLuminanceToAlpha) { Primitive2DSequence aSequenceTdf132246 = parseSvg(u"/svgio/qa/cppunit/data/filterLuminanceToAlpha.svg"); diff --git a/svgio/qa/cppunit/data/tdf155819.svg b/svgio/qa/cppunit/data/tdf155819.svg new file mode 100644 index ..30c2da4d1a5a --- /dev/null +++ b/svgio/qa/cppunit/data/tdf155819.svg @@ -0,0 +1,15 @@ + +http://www.w3.org/2000/svg; viewBox="0 0 100 100"> + +path { + fill: none; + stroke-width: 4px; + marker: url(#diamond); +} + + + + + + diff --git a/svgio/source/svgreader/svgstyleattributes.cxx b/svgio/source/svgreader/svgstyleattributes.cxx index 99267c762dc5..5f3a3f4aea8a 100644 --- a/svgio/source/svgreader/svgstyleattributes.cxx +++ b/svgio/source/svgreader/svgstyleattributes.cxx @@ -1151,7 +1151,7 @@ namespace svgio::svgreader if(SVGToken::Path == mrOwner.getType() || // path SVGToken::Polygon == mrOwner.getType() || // polygon, polyline SVGToken::Line == mrOwner.getType() ||// line -getCssStyleParent()) +SVGToken::Style == mrOwner.getType())// tdf#150323 { // try to add markers add_markers(rPath, rTarget, pHelpPointIndices); @@ -1894,7 +1894,8 @@ namespace svgio::svgreader } case SVGToken::Marker: { -if(getCssStyleParent()) +// tdf#155819: Using the marker property from a style sheet is equivalent to using all three (start, mid, end). +if(mrOwner.getType() == SVGToken::Style) { readLocalUrl(aContent, maMarkerEndXLink); maMarkerStartXLink = maMarkerMidXLink = maMarkerEndXLink;
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-23.05' - chart2/qa chart2/source sc/qa sw/qa
chart2/qa/extras/chart2import.cxx | 92 ++ chart2/qa/extras/chart2import2.cxx | 14 - chart2/qa/extras/charttest.hxx | 38 chart2/qa/extras/data/pptx/PieChartWithAutomaticLayout_SizeAndPosition.pptx |binary chart2/source/view/main/ChartView.cxx | 18 + sc/qa/uitest/chart/chartDataLabels.py | 8 sw/qa/extras/layout/layout2.cxx | 4 7 files changed, 158 insertions(+), 16 deletions(-) New commits: commit c93d88a7d321483e9d040fad17394a738f8cde7c Author: Gülşah Köse AuthorDate: Wed Nov 23 17:05:28 2022 +0300 Commit: Aron Budea CommitDate: Wed Jun 14 08:06:15 2023 +0200 tdf#91265 Use same plot area distance as used in MSO Changes the postion calculation for pie charts, where the margin min distance is now constant for pie charts, but unchanged for other chart types. This changes the positions of various pie charts used in tests, which have been changed to the new value after the cases have been checked. Added a new test with all 3 use cases (chart area width equals height, width is greater than height, width is less than height). Change-Id: I51f98f336a7c64a3e6762144fc7dc8d9df80f696 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143179 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl (cherry picked from commit 959fbfc000d2e3167b2b57b6d11bea231993b4f0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153017 Tested-by: Jenkins CollaboraOffice Reviewed-by: Aron Budea diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 243597a060ab..d9f443466d9f 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -139,6 +139,7 @@ public: void testFixedSizeBarChartVeryLongLabel(); void testAutomaticSizeBarChartVeryLongLabel(); void testTotalsRowIgnored(); +void testPieChartPlotAreaMarginWithAutomaticLayout(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); @@ -226,6 +227,7 @@ public: CPPUNIT_TEST(testFixedSizeBarChartVeryLongLabel); CPPUNIT_TEST(testAutomaticSizeBarChartVeryLongLabel); CPPUNIT_TEST(testTotalsRowIgnored); +CPPUNIT_TEST(testPieChartPlotAreaMarginWithAutomaticLayout); CPPUNIT_TEST_SUITE_END(); }; @@ -2319,6 +2321,96 @@ void Chart2ImportTest::testTotalsRowIgnored() } } +void Chart2ImportTest::testPieChartPlotAreaMarginWithAutomaticLayout() +{ +// tdf#91265 +// Checks the margin and calculation of the plot area for the pie chart inside the chart area. + +loadFromURL(u"pptx/PieChartWithAutomaticLayout_SizeAndPosition.pptx"); + +OUString aCheckShapeName = "CID/D=0:CS=0:CT=0:Series=0"; +// Chart Wuse case Width == Height +{ +// Load chart Chart_2_2 - 2cm x 2cm - +auto xDocument = getChartDocFromDrawImpressNamed(0, u"Chart_2_2"); +CPPUNIT_ASSERT(xDocument.is()); + +uno::ReferencexChartDocument(xDocument, uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDocument.is()); + +// Get the shape of the diagram / chart +uno::Reference xDrawPageSupplier(xChartDocument, uno::UNO_QUERY); +CPPUNIT_ASSERT(xDrawPageSupplier.is()); +uno::Reference xDrawPage = xDrawPageSupplier->getDrawPage(); +uno::Reference xShapes(xDrawPage->getByIndex(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xShapes.is()); + +uno::Reference xChartDiagramShape = getShapeByName(xShapes, aCheckShapeName); +CPPUNIT_ASSERT(xChartDiagramShape.is()); + +// Size +CPPUNIT_ASSERT_DOUBLES_EQUAL(1300, xChartDiagramShape->getSize().Width, 5); // calculated chart area size - 2 * margin +CPPUNIT_ASSERT_DOUBLES_EQUAL(1300, xChartDiagramShape->getSize().Height, 5); // calculated chart area size - 2 * margin +// Position +CPPUNIT_ASSERT_DOUBLES_EQUAL(350, xChartDiagramShape->getPosition().X, 5); // margin +CPPUNIT_ASSERT_DOUBLES_EQUAL(350, xChartDiagramShape->getPosition().Y, 5); // margin +} + +// Chart use case - Width < Height +{ +// Load chart Chart_3_4 - 3cm x 4cm +auto xDocument = getChartDocFromDrawImpressNamed(0, u"Chart_3_4"); +CPPUNIT_ASSERT(xDocument.is()); + +uno::ReferencexChartDocument(xDocument, uno::UNO_QUERY); +CPPUNIT_ASSERT(xChartDocument.is()); + +// Get the shape of the diagram / chart +uno::Reference xDrawPageSupplier(xChartDocument, uno::UNO_QUERY); +CPPUNIT_ASSERT(xDrawPageSupplier.is()); +uno::Reference xDrawPage = xDrawPageSupplier->getDrawPage(); +uno::Reference xShapes(xDrawPage->getByIndex(0), uno::UNO_QUERY); +CPPUNIT_ASSERT(xShapes.is()); + +
[Libreoffice-commits] core.git: vcl/source
vcl/source/filter/png/PngImageReader.cxx |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) New commits: commit a2eb4bcf2363c13af81e4c53710c2703158130bf Author: Julien Nabet AuthorDate: Tue Jun 13 21:43:07 2023 +0200 Commit: Julien Nabet CommitDate: Wed Jun 14 08:03:01 2023 +0200 Fix heap-buffer-overflow in vcl/PngImageReader From Jenkins_Linux_Ubsan: 25488 ==1050==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6030001a44a4 at pc 0x004b6b04 bp 0x7ffed00d4630 sp 0x7ffed00d3de0 25489 WRITE of size 24 at 0x6030001a44a4 thread T0 25490 #0 0x4b6b03 in __asan_memcpy /home/tdf/lode/packages/llvm-llvmorg-12.0.1.src/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22 25491 #1 0x7f3dab812b94 in SvStream::ReadBytes(void*, unsigned long) /tools/source/stream/stream.cxx:1134:17 25492 #2 0x7f3da1fc7a8a in (anonymous namespace)::getImportantChunks(SvStream&, SvStream&, unsigned int, unsigned int) /vcl/source/filter/png/PngImageReader.cxx:270:27 25493 #3 0x7f3da1fb7364 in (anonymous namespace)::reader(SvStream&, Graphic&, GraphicFilterImportFlags, vcl::ScopedBitmapAccess*, vcl::ScopedBitmapAccess*) /vcl/source/filter/png/PngImageReader.cxx:714:13 25494 #4 0x7f3da1fb9663 in vcl::PngImageReader::read(Graphic&) /vcl/source/filter/png/PngImageReader.cxx:830:55 25495 #5 0x7f3d8299c092 in PngFilterTest::testApng() /vcl/qa/cppunit/png/PngFilterTest.cxx:380:32 ... since bf944e33569e4a1d6236a54671b7320cdc6ffaf6 tdf#104877 Add basic APNG format support Change-Id: Ib46637a8422e1fbb1ab84ee69bf6f95299dd84a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153003 Tested-by: Julien Nabet Reviewed-by: Julien Nabet diff --git a/vcl/source/filter/png/PngImageReader.cxx b/vcl/source/filter/png/PngImageReader.cxx index d560736e686a..ec4e2d421e3c 100644 --- a/vcl/source/filter/png/PngImageReader.cxx +++ b/vcl/source/filter/png/PngImageReader.cxx @@ -266,7 +266,8 @@ void getImportantChunks(SvStream& rInStream, SvStream& rOutStream, sal_uInt32 nW // Seek back to start of chunk rInStream.SeekRel(-PNG_TYPE_SIZE - PNG_SIZE_SIZE); // Copy chunk to rOutStream -std::vector aData(nChunkSize + PNG_TYPE_SIZE + PNG_SIZE_SIZE); +std::vector aData(nChunkSize + PNG_TYPE_SIZE + PNG_SIZE_SIZE + + PNG_CRC_SIZE); rInStream.ReadBytes(aData.data(), PNG_TYPE_SIZE + PNG_SIZE_SIZE + nChunkSize + PNG_CRC_SIZE); rOutStream.WriteBytes(aData.data(),