basic/qa/basic_coverage/test_Property.GetSet.bas | 1 basic/qa/basic_coverage/test_With.bas | 19 basic/source/comp/loops.cxx | 15 basic/source/comp/parser.cxx | 6 dictionaries | 2 extras/source/autocorr/lang/en-AU/DocumentList.xml | 1 extras/source/autocorr/lang/en-GB/DocumentList.xml | 1 extras/source/autocorr/lang/en-US/DocumentList.xml | 1 extras/source/autocorr/lang/en-ZA/DocumentList.xml | 1 extras/source/autocorr/lang/ja/DocumentList.xml | 1 extras/source/autocorr/lang/ko/DocumentList.xml | 1 extras/source/autocorr/lang/zh-TW/DocumentList.xml | 1 icon-themes/colibre_dark_svg/res/locked.svg | 1 icon-themes/colibre_dark_svg/res/unlocked.svg | 44 icon-themes/colibre_svg/res/locked.svg | 1 icon-themes/colibre_svg/res/unlocked.svg | 5 sc/inc/colorscale.hxx | 6 sc/inc/fillinfo.hxx | 1 sc/qa/unit/subsequent_filters_test4.cxx | 14 sc/qa/unit/ucalc_condformat.cxx | 9 sc/source/core/data/colorscale.cxx | 66 sc/source/ui/condformat/condformatdlgentry.cxx | 30 sc/source/ui/view/dbfunc.cxx | 8 sc/source/ui/view/tabvwsha.cxx | 3 sc/uiconfig/scalc/ui/conditionaliconset.ui | 11 sd/qa/unit/data/tdf162455.svg | 2115 +++++++++++++++ sd/qa/unit/uiimpress.cxx | 37 sfx2/qa/cppunit/test_misc.cxx | 32 sfx2/source/doc/docfile.cxx | 5 svx/source/svdraw/svdfmtf.cxx | 88 svx/source/svdraw/svdfmtf.hxx | 9 sw/inc/PostItMgr.hxx | 2 sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx | 40 sw/qa/core/accessibilitycheck/data/DeleteHeader.odt |binary sw/qa/extras/uiwriter/uiwriter6.cxx | 126 sw/source/core/access/AccessibilityCheck.cxx | 71 sw/source/core/doc/docfmt.cxx | 33 sw/source/core/unocore/unosett.cxx | 2 sw/source/ui/config/optpage.cxx | 2 sw/source/uibase/app/docst.cxx | 16 sw/source/uibase/uno/unotxdoc.cxx | 8 vcl/source/components/dtranscomp.cxx | 1 vcl/unx/gtk4/a11y.cxx | 12 43 files changed, 2589 insertions(+), 259 deletions(-)
New commits: commit 3ed2932d1e6db06103cca2e13ca70c5465febee6 Author: Ilmari Lauhakangas <[email protected]> AuthorDate: Tue Sep 17 08:51:01 2024 +0300 Commit: Ilmari Lauhakangas <[email protected]> CommitDate: Tue Sep 17 16:46:58 2024 +0200 tdf#162990 Colibre (and Dark) SVG: fix unlocked icon and add locked icon Change-Id: Ic2121cdddc5bafb38b5082f4ba6e6774670a1543 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173509 Reviewed-by: Heiko Tietze <[email protected]> Reviewed-by: Rafael Lima <[email protected]> Tested-by: Jenkins (cherry picked from commit b72068ba689af7f292eca707df5765fda8109fb5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173494 Reviewed-by: Ilmari Lauhakangas <[email protected]> diff --git a/icon-themes/colibre_dark_svg/res/locked.svg b/icon-themes/colibre_dark_svg/res/locked.svg new file mode 100644 index 000000000000..9bdb7c7e20cf --- /dev/null +++ b/icon-themes/colibre_dark_svg/res/locked.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m12.011518 4.8005225c0-2.2187334-1.784636-4.0355225-4.0194531-4.0355225-2.2348159 0-4.0194525 1.8167891-4.0194525 4.0355225v1.3666105c-.9968244.1446999-1.736404.9807439-1.736404 2.0258003v4.9841107c-.016078 1.141522.9003577 2.057956 2.0579603 2.057956h7.4118713c1.141525 0 2.05796-.916434 2.05796-2.074034v-4.9841108c0-1.0450555-.755657-1.8650223-1.736403-2.0257998v-1.3505329zm-3.6014292 8.1031995c0 .225089-.1768571.418023-.4180239.418023-.2090109 0-.4019452-.192934-.4019452-.418023v-2.106189c-.4823341-.192933-.8360458-.627033-.8360458-1.173678 0-.6913441.5627226-1.2379883 1.237991-1.2379883s1.237992.5627223 1.237992 1.2379883c0 .562722-.3537121.996822-.8199681 1.173678zm-2.9743956-6.7687438v-1.3344557c0-1.4309223 1.1254465-2.5563669 2.5402945-2.5563669 1.4309248 0 2.5563713 1.1254446 2.5563713 2.5563669v1.3344557z" fill="#fff" stroke-width=".160778"/></svg> \ No newline at end of file diff --git a/icon-themes/colibre_dark_svg/res/unlocked.svg b/icon-themes/colibre_dark_svg/res/unlocked.svg index af033231c4fa..bd5bce15201d 100644 --- a/icon-themes/colibre_dark_svg/res/unlocked.svg +++ b/icon-themes/colibre_dark_svg/res/unlocked.svg @@ -1,43 +1 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="1200pt" - height="1200pt" - version="1.1" - viewBox="0 0 1200 1200" - id="svg1" - sodipodi:docname="noun-unlock-89647.svg" - inkscape:export-filename="unlocked.png" - inkscape:export-xdpi="15.36" - inkscape:export-ydpi="15.36" - inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg"> - <defs - id="defs1" /> - <sodipodi:namedview - id="namedview1" - pagecolor="#505050" - bordercolor="#ffffff" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="1" - inkscape:deskcolor="#505050" - inkscape:document-units="pt" - showgrid="false" - inkscape:zoom="0.695625" - inkscape:cx="799.28122" - inkscape:cy="800" - inkscape:window-width="3440" - inkscape:window-height="1326" - inkscape:window-x="0" - inkscape:window-y="40" - inkscape:window-maximized="1" - inkscape:current-layer="svg1" /> - <path - d="m404.4 499.2-32.398-102c-15.602-45.602-13.199-92.398 9.6016-136.8 22.801-40.801 60-73.199 106.8-87.602 44.398-15.602 93.602-10.801 135.6 13.199 43.199 21.602 73.199 58.801 88.801 104.4 9.6016 26.398 34.801 40.801 63.602 32.398 27.602-8.3984 44.398-37.199 36-64.801-24-70.801-73.199-129.6-141.6-165.6-66-33.602-142.8-40.801-214.8-18-73.199 22.801-132 73.199-168 140.4-33.602 64.801-39.602 142.8-18 214.8l24 75.602c-58.801 20.398-102 74.398-102 139.2v349.2c0 81.602 64.801 145.2 145.2 145.2h519.6c78 0 145.2-63.602 145.2-145.2l-0.003906-350.39c0-79.199-67.199-145.2-145.2-145.2h-452.4zm223.2 477.6c0 15.602-12 28.801-26.398 28.801-15.602 0-30-12-30-28.801l-0.003906-150c-34.801-12-58.801-43.199-58.801-82.801 0-45.602 39.602-85.199 88.801-85.199 45.602 0 84 39.602 84 85.199 0 39.602-24 70.801-57.602 82.801z" - id="path1" - style="fill:#ffffff;fill-opacity:1" /> -</svg> +<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m5.258804 6.6465415-.4610917-1.3696505c-.2220492-.612341-.1878495-1.240715.136651-1.8369425.3245062-.5478736.8539257-.9829121 1.5199882-1.1763147.6318765-.2095028 1.332153-.1450352 1.9298725.1772354.6148125.2900704 1.0417755.7895765 1.2638245 1.4018773.136651.3544708.4952915.5478735.9051895.4350385.392835-.1127733.631877-.4995061.512356-.8701442-.34157-.9507118-1.041775-1.7402614-2.015265-2.2236674-.9393185-.4512057-2.032344-.54787345-3.057055-.2417029-1.0417753.3061705-1.878637.982912-2.3909925 1.8852832-.478227.8701441-.5636196 1.9175103-.2561778 2.8843223l.3415704 1.0151795c-.8368616.273903-1.4516741.999012-1.4516741 1.8691695v4.689038c0 1.095746.9222543 1.949737 2.0665007 1.949737h7.3949993c1.110103 0 2.0665-.854044 2.0665-1.949737l-.000057-4.7050175c0-1.0634795-.956382-1.949737-2.0665-1.949737h-6.438602zm3.1766045 6.4131855c0 .209503-.1707855.386738-.375699.386738-.2220495 0-.426963-.161135-.426963-.386738l-.0 00057-2.014192c-.4952915-.161135-.8368615-.580073-.8368615-1.1118465 0-.612341.5636195-1.1440475 1.2638245-1.1440475.649012 0 1.195496.5317735 1.195496 1.1440475 0 .5317735-.34157.9507115-.819797 1.1118465z" fill="#fff" stroke-width=".013824"/></svg> \ No newline at end of file diff --git a/icon-themes/colibre_svg/res/locked.svg b/icon-themes/colibre_svg/res/locked.svg new file mode 100644 index 000000000000..f809b339c918 --- /dev/null +++ b/icon-themes/colibre_svg/res/locked.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m12.011518 4.8005222c0-2.2187333-1.784637-4.0355222-4.0194525-4.0355222-2.234816 0-4.0194534 1.8167889-4.0194534 4.0355222v1.3666113c-.9968244.1447-1.7364038.9807445-1.7364038 2.0258v4.9841115c-.016078 1.141522.9003576 2.057955 2.0579601 2.057955h7.4118716c1.141524 0 2.05796-.916433 2.05796-2.074033v-4.9841115c0-1.0450555-.755657-1.865022-1.736404-2.0258v-1.3505333zm-3.6014295 8.1031998c0 .225089-.176856.418023-.418023.418023-.209012 0-.4019455-.192934-.4019455-.418023v-2.106188c-.4823345-.192934-.8360465-.627034-.8360465-1.1736785 0-.6913445.5627235-1.237989 1.237992-1.237989.675268 0 1.2379915.5627225 1.2379915 1.237989 0 .5627225-.353712.9968225-.8199685 1.1736785zm-2.9743955-6.768744v-1.3344558c0-1.4309222 1.125447-2.5563666 2.5402945-2.5563666 1.4309255 0 2.5563715 1.1254444 2.5563715 2.5563666v1.3344558z" stroke-width=".160778"/></svg> \ No newline at end of file diff --git a/icon-themes/colibre_svg/res/unlocked.svg b/icon-themes/colibre_svg/res/unlocked.svg index fb22c1bf8e5c..8914e0138044 100644 --- a/icon-themes/colibre_svg/res/unlocked.svg +++ b/icon-themes/colibre_svg/res/unlocked.svg @@ -1,4 +1 @@ -<?xml version="1.0" encoding="UTF-8"?> -<svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg"> - <path d="m404.4 499.2-32.398-102c-15.602-45.602-13.199-92.398 9.6016-136.8 22.801-40.801 60-73.199 106.8-87.602 44.398-15.602 93.602-10.801 135.6 13.199 43.199 21.602 73.199 58.801 88.801 104.4 9.6016 26.398 34.801 40.801 63.602 32.398 27.602-8.3984 44.398-37.199 36-64.801-24-70.801-73.199-129.6-141.6-165.6-66-33.602-142.8-40.801-214.8-18-73.199 22.801-132 73.199-168 140.4-33.602 64.801-39.602 142.8-18 214.8l24 75.602c-58.801 20.398-102 74.398-102 139.2v349.2c0 81.602 64.801 145.2 145.2 145.2h519.6c78 0 145.2-63.602 145.2-145.2l-0.003906-350.39c0-79.199-67.199-145.2-145.2-145.2h-452.4zm223.2 477.6c0 15.602-12 28.801-26.398 28.801-15.602 0-30-12-30-28.801l-0.003906-150c-34.801-12-58.801-43.199-58.801-82.801 0-45.602 39.602-85.199 88.801-85.199 45.602 0 84 39.602 84 85.199 0 39.602-24 70.801-57.602 82.801z"/> -</svg> +<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m5.258804 6.6465415-.4610917-1.3696505c-.2220492-.612341-.1878495-1.240715.1366509-1.8369425.3245063-.5478736.8539258-.9829121 1.5199883-1.1763147.6318765-.2095028 1.3321535-.1450352 1.9298725.1772354.614813.2900704 1.041776.7895765 1.263825 1.4018773.136651.3544708.495291.5478735.90519.4350385.392834-.1127733.631876-.4995061.512355-.8701442-.34157-.9507118-1.041775-1.7402614-2.015265-2.2236674-.939318-.45120569-2.032344-.54787349-3.057055-.24170289-1.0417753.30617049-1.878637.98291199-2.3909925 1.88528319-.478227.8701441-.5636196 1.9175103-.2561778 2.8843223l.3415703 1.0151795c-.8368616.273903-1.451674.999012-1.451674 1.8691695v4.689038c0 1.095746.9222542 1.949737 2.0665008 1.949737h7.3949992c1.110103 0 2.0665-.854044 2.0665-1.949737l-.000057-4.7050175c0-1.0634795-.956382-1.949737-2.0665-1.949737h-6.438602zm3.176605 6.4131855c0 .209503-.170786.386738-.375699.386738-.22205 0-.4269635-.161135-.4269635-.386738l-.0000 57-2.014192c-.4952915-.161135-.8368615-.580073-.8368615-1.111847 0-.612341.5636195-1.144047 1.263825-1.144047.649012 0 1.195496.531773 1.195496 1.144047 0 .531774-.34157.950712-.819797 1.111847z" stroke-width=".013824"/></svg> \ No newline at end of file commit af065575843273f242209d30f3cfda33d40974f0 Author: Mike Kaganski <[email protected]> AuthorDate: Sun Sep 15 22:52:01 2024 +0500 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 16:16:33 2024 +0200 tdf#162962: always create a local "Nothing" for the "WITH" variable Other "WITH" blocks create the symbol that can be found by pPool->Find, but can be not accessible at the call site. Change-Id: I85ecc763a1bb3fd692c2c98e674047fdbde3f8f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173417 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit 40d0e6f4c4ca31f6525b4c84924f2330a166182c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173393 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/basic/qa/basic_coverage/test_With.bas b/basic/qa/basic_coverage/test_With.bas index 39d480e96618..c09fc037bb06 100644 --- a/basic/qa/basic_coverage/test_With.bas +++ b/basic/qa/basic_coverage/test_With.bas @@ -28,8 +28,23 @@ Function get_foo As foo get_foo = New foo End Function +Sub with_in_another_procedure + On Local Error GoTo errorHandler + ' tdf#162962 "End With" clears the internal variable; it used to fail, + ' when several module's procedures used With blocks, using Option Explicit + Dim foo_var As New foo + With foo_var + .n = 6 + TestUtil.AssertEqual(.n, 6, ".n") + End With ' Here (or in similar places in other tests) a "Variable Not Defined" error was generated + + Exit Sub +errorHandler: + TestUtil.ReportErrorHandler("with_in_another_procedure", Err, Error$, Erl) +End Sub + Sub test_with - On Error GoTo errorHandler + On Local Error GoTo errorHandler Dim fields As String With get_foo() @@ -69,6 +84,8 @@ Sub test_with TestUtil.AssertEqual(uno_struct.EndColumn, 4, "uno_struct.EndColumn") TestUtil.AssertEqual(uno_struct.EndRow, 5, "uno_struct.EndRow") + with_in_another_procedure() ' test tdf#162962 + Exit Sub errorHandler: TestUtil.ReportErrorHandler("test_with", Err, Error$, Erl) diff --git a/basic/source/comp/loops.cxx b/basic/source/comp/loops.cxx index 2797eb731cc0..eb75df882d13 100644 --- a/basic/source/comp/loops.cxx +++ b/basic/source/comp/loops.cxx @@ -326,15 +326,16 @@ void SbiParser::With() // {_with_library.module_offset} = Nothing // I don't know how to refer to the global Nothing constant here; just create an own - constexpr OUString aNothingName = u"{_with_Nothing}"_ustr; - SbiSymDef* pNothingDef = pPool->Find(aNothingName); - if (!pNothingDef) + OUString aLocalNothingName = u"{_with_Nothing}"_ustr; + while (pPool->Find(aLocalNothingName) != nullptr) { - pNothingDef = new SbiSymDef(aNothingName); - pNothingDef->SetType(SbxOBJECT); - pPool->Add(pNothingDef); - aGen.Gen(SbiOpcode::LOCAL_, pNothingDef->GetId(), pNothingDef->GetType()); + static sal_Int64 unique_suffix_2; + aLocalNothingName = "{_with_Nothing" + OUString::number(unique_suffix_2++) + "}"; } + SbiSymDef* pNothingDef = new SbiSymDef(aLocalNothingName); + pNothingDef->SetType(SbxOBJECT); + pPool->Add(pNothingDef); + aGen.Gen(SbiOpcode::LOCAL_, pNothingDef->GetId(), pNothingDef->GetType()); aWithParent.Gen(); SbiExpression(this, *pNothingDef).Gen(); aGen.Gen(SbiOpcode::PUTC_); commit f3031e072cea303295f701855f1475222614f603 Author: Caolán McNamara <[email protected]> AuthorDate: Sat Sep 14 13:44:24 2024 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 16:16:17 2024 +0200 null deref in SwXTextDocument::initializeForTiledRendering #0 SwDocShell::GetWrtShell (this=0x0) at sw/inc/docsh.hxx:226 #1 SwXTextDocument::initializeForTiledRendering(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) () at sw/source/uibase/uno/unotxdoc.cxx:3634 #2 0x00007f6bb1d40734 in doc_initializeForRendering () at include/com/sun/star/uno/Type.h:163 #3 0x00000000005d7988 in lok::Document::initializeForRendering ( pArguments=0x342d0e48 "{\".uno:Author\":{\"type\":\"string\",\"value\":\"1(访客)\"},\".uno:ChangeTheme\":{\"type\":\"string\",\"value\":\"Light\"},\".uno:InvertBackground\":{\"type\":\"string\",\"value\":\"Light\"}}", this=<optimized out>) at /home/collabora/jenkins/workspace/package_cool_24.04_rpm/rpmbuild/BUILD/coolwsd-24.04.7.2snapshot/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx:245 #4 Document::load(std::shared_ptr<ChildSession> const&, std::string const&) () at kit/Kit.cpp:1949 #5 0x00000000005da3b2 in Document::onLoad(std::string const&, std::string const&, std::string const&) () at kit/Kit.cpp:1226 #6 0x000000000057f7c1 in ChildSession::loadDocument(StringVector const&) () at kit/ChildSession.cpp:906 #7 0x0000000000586464 in ChildSession::_handleInput(char const*, int) () at kit/ChildSession.cpp:298 #8 0x0000000000613e48 in Session::handleMessage(std::vector<char, std::allocator<char> > const&) () at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_vector.h:987 #9 0x00000000005c67ac in Document::forwardToChild(std::string const&, std::vector<char, std::allocator<char> > const&) () at kit/Kit.cpp:2052 #10 0x00000000005c7b29 in Document::drainQueue() () at kit/Kit.cpp:2279 #11 0x00000000005c80d8 in KitSocketPoll::drainQueue (this=0x34316d30) at kit/Kit.cpp:2676 Change-Id: I6f18f1a542ca96fe3fda0248e15ee1254eb9ca95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173386 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 089640feca921f7838debed120b2f7c2c9458158) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173389 Reviewed-by: Michael Stahl <[email protected]> diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 4b63f83541bc..52c82a17fb20 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -3696,12 +3696,18 @@ void SwXTextDocument::initializeForTiledRendering(const css::uno::Sequence<css:: { SolarMutexGuard aGuard; - SwViewShell* pViewShell = m_pDocShell->GetWrtShell(); + if (!m_pDocShell) + { + SAL_WARN("sw.uno", "no DocShell when attempting to initialize for tiled rendering"); + return; + } SwView* pView = m_pDocShell->GetView(); if (!pView) return; + SwViewShell* pViewShell = m_pDocShell->GetWrtShell(); + pView->SetViewLayout(1/*nColumns*/, false/*bBookMode*/, true); // Tiled rendering defaults. commit 64171fa351e7ec2b5d4beeeb3aa4ac649c623f19 Author: Rafael Lima <[email protected]> AuthorDate: Sun Sep 15 21:25:50 2024 +0200 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 16:16:01 2024 +0200 tdf#162937 Set default comment position to the right Change-Id: Ibd665ca861efcf60d382d018b71a6b470792e01b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173387 Reviewed-by: Jim Raykowski <[email protected]> Tested-by: Jenkins (cherry picked from commit 636f853bda69a889146968116b276d88f105b47f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173491 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sw/inc/PostItMgr.hxx b/sw/inc/PostItMgr.hxx index e2922a045a1c..c1b7193d22e9 100644 --- a/sw/inc/PostItMgr.hxx +++ b/sw/inc/PostItMgr.hxx @@ -67,7 +67,7 @@ struct SwPostItPageItem tools::Long lOffset; SwRect mPageRect; std::vector<SwSidebarItem*> mvSidebarItems; - SwPostItPageItem(): bScrollbar(false), eSidebarPosition( sw::sidebarwindows::SidebarPosition::LEFT ), lOffset(0) + SwPostItPageItem(): bScrollbar(false), eSidebarPosition( sw::sidebarwindows::SidebarPosition::RIGHT ), lOffset(0) { } }; commit 7f8fb2776dff2803f6b644f2d03614787ba9c114 Author: Xisco Fauli <[email protected]> AuthorDate: Tue Sep 17 16:13:41 2024 +0200 Commit: Gerrit Code Review <[email protected]> CommitDate: Tue Sep 17 16:13:41 2024 +0200 Update git submodules * Update dictionaries from branch 'libreoffice-24-8' to 3d76edbcb038e3ca271835bbe39cbef2ae409e5b - Updated Slovak dictionaries to v2.4.8 Downloaded from https://github.com/sk-spell/hunspell-sk/archive/refs/tags/v2.4.8.zip Change-Id: I369a4703c7accc635572a0f711c5c0304429e4e9 Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/172738 Reviewed-by: Andras Timar <[email protected]> Tested-by: Xisco Fauli <[email protected]> (cherry picked from commit 75f5dff8c972fff4a32e4ea8434722c277f02a3f) Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/173288 Reviewed-by: Christian Lohmaier <[email protected]> Tested-by: Christian Lohmaier <[email protected]> diff --git a/dictionaries b/dictionaries index 2b4074dd0f51..3d76edbcb038 160000 --- a/dictionaries +++ b/dictionaries @@ -1 +1 @@ -Subproject commit 2b4074dd0f51054ba31aac8dde394286e232ee94 +Subproject commit 3d76edbcb038e3ca271835bbe39cbef2ae409e5b commit de805c6afabe9b7531efd61985a60d2cb9b0759e Author: Mike Kaganski <[email protected]> AuthorDate: Mon Sep 16 10:46:29 2024 +0500 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 14:43:42 2024 +0200 Related: i#109051 There's no "Exit Let/Get/Set" Before, these incorrect combinations were allowed, together with the correct "Exit Property", which had been implemented in commit 5ed103d2dd5f8ee2f13183263c0930f84437bdc7 (mib16: contributed bugfixes and various new symbols in VBA compatibility implementation, 2010-06-15). Change-Id: Ic132c0860bb04007766977975a6ce9c8887138dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173427 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173519 diff --git a/basic/source/comp/parser.cxx b/basic/source/comp/parser.cxx index 3d5a7ed67e4a..d62fc921aa90 100644 --- a/basic/source/comp/parser.cxx +++ b/basic/source/comp/parser.cxx @@ -196,7 +196,7 @@ bool SbiParser::HasGlobalCode() void SbiParser::OpenBlock( SbiToken eTok, SbiExprNode* pVar ) { SbiParseStack* p = new SbiParseStack; - p->eExitTok = eTok; + p->eExitTok = (eTok == GET || eTok == LET || eTok == SET) ? PROPERTY : eTok; // #i109051 p->nChain = 0; p->pWithVar = pWithVar; p->pNext = pStack; @@ -232,9 +232,7 @@ void SbiParser::Exit() SbiToken eTok = Next(); for( SbiParseStack* p = pStack; p; p = p->pNext ) { - SbiToken eExitTok = p->eExitTok; - if( eTok == eExitTok || - (eTok == PROPERTY && (eExitTok == GET || eExitTok == LET || eExitTok == SET) ) ) // #i109051 + if (eTok == p->eExitTok) { p->nChain = aGen.Gen( SbiOpcode::JUMP_, p->nChain ); return; commit 5117c50b31ed1d17d1e151c833ef6959295b67dc Author: Balazs Varga <[email protected]> AuthorDate: Wed Sep 11 15:56:36 2024 +0200 Commit: Thorsten Behrens <[email protected]> CommitDate: Tue Sep 17 12:09:12 2024 +0200 tdf#162889 - A11Y sidebar: fix warning does not disappear when page header is deleted. Check if nodes have contentframe. Change-Id: Ie7f79cedb577b856d518d23326e9d7ceba2b825c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173215 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Gabor Kelemen <[email protected]> Reviewed-by: Balazs Varga <[email protected]> (cherry picked from commit 2a7bfe40d0d503c3d51be44e52ca28d50466ca9c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173401 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <[email protected]> diff --git a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx index 43a872832ee0..90c1992b39a3 100644 --- a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx +++ b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx @@ -247,6 +247,46 @@ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testCheckTOCHyperlink) CPPUNIT_ASSERT_EQUAL(size_t(0), aIssues.size()); } +CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testDeleteHeader) +{ + // Delete Header from doc and check if we have less Direct format warning + createSwDoc("DeleteHeader.odt"); + SwDoc* pDoc = getSwDoc(); + CPPUNIT_ASSERT(pDoc); + + sw::AccessibilityCheck aCheck(pDoc); + auto& aIssues = aCheck.getIssueCollection().getIssues(); + aCheck.check(); + CPPUNIT_ASSERT_EQUAL(size_t(8), aIssues.size()); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::DOCUMENT_TITLE, aIssues[0]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aIssues[1]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aIssues[2]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aIssues[3]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aIssues[4]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aIssues[5]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aIssues[6]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aIssues[7]->m_eIssueID); + + SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell(); + CPPUNIT_ASSERT(pWrtShell); + + // modify header + pWrtShell->ChangeHeaderOrFooter(u"Default Page Style", true, false, false); + pWrtShell->GetWin()->GrabFocusToDocument(); + + // re-check A11Y issues + sw::AccessibilityCheck aReCheck(pDoc); + auto& aResultIssues = aReCheck.getIssueCollection().getIssues(); + aReCheck.check(); + + // Check the result + aResultIssues = aReCheck.getIssueCollection().getIssues(); + CPPUNIT_ASSERT_EQUAL(size_t(3), aResultIssues.size()); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::DOCUMENT_TITLE, aResultIssues[0]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aResultIssues[1]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aResultIssues[2]->m_eIssueID); +} + namespace { std::vector<std::shared_ptr<sfx::AccessibilityIssue>> diff --git a/sw/qa/core/accessibilitycheck/data/DeleteHeader.odt b/sw/qa/core/accessibilitycheck/data/DeleteHeader.odt new file mode 100644 index 000000000000..6503699c132b Binary files /dev/null and b/sw/qa/core/accessibilitycheck/data/DeleteHeader.odt differ diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx index ed920c521b56..04dae2c9dadf 100644 --- a/sw/source/core/access/AccessibilityCheck.cxx +++ b/sw/source/core/access/AccessibilityCheck.cxx @@ -15,6 +15,7 @@ #include <ndnotxt.hxx> #include <ndtxt.hxx> #include <docsh.hxx> +#include <wrtsh.hxx> #include <IDocumentDrawModelAccess.hxx> #include <drawdoc.hxx> #include <svx/svdpage.hxx> @@ -866,52 +867,60 @@ public: return; SwTextNode* pTextNode = pCurrent->GetTextNode(); + SwDoc& rDocument = pTextNode->GetDoc(); auto nParagraphLength = pTextNode->GetText().getLength(); if (nParagraphLength == 0) { SwTextNode* pPrevTextNode = getPrevTextNode(pCurrent); if (!pPrevTextNode) return; - if (pPrevTextNode->GetText().getLength() == 0) + + SwWrtShell* pWrtShell = rDocument.GetDocShell()->GetWrtShell(); + if (pWrtShell && pPrevTextNode->getLayoutFrame(pWrtShell->GetLayout())) { - auto pIssue = lclAddIssue(m_rIssueCollection, SwResId(STR_AVOID_NEWLINES_SPACE), - sfx::AccessibilityIssueID::TEXT_FORMATTING); - pIssue->setIssueObject(IssueObject::TEXT); - pIssue->setNode(pTextNode); - SwDoc& rDocument = pTextNode->GetDoc(); - pIssue->setDoc(rDocument); + if (pPrevTextNode->GetText().getLength() == 0) + { + auto pIssue = lclAddIssue(m_rIssueCollection, SwResId(STR_AVOID_NEWLINES_SPACE), + sfx::AccessibilityIssueID::TEXT_FORMATTING); + pIssue->setIssueObject(IssueObject::TEXT); + pIssue->setNode(pTextNode); + pIssue->setDoc(rDocument); + } } } else { - // Check for excess lines inside this paragraph - const OUString& sParagraphText = pTextNode->GetText(); - int nLineCount = 0; - for (sal_Int32 i = 0; i < nParagraphLength; i++) + SwWrtShell* pWrtShell = rDocument.GetDocShell()->GetWrtShell(); + if (pWrtShell && pTextNode->getLayoutFrame(pWrtShell->GetLayout())) { - auto aChar = sParagraphText[i]; - if (aChar == ' ') + // Check for excess lines inside this paragraph + const OUString& sParagraphText = pTextNode->GetText(); + int nLineCount = 0; + for (sal_Int32 i = 0; i < nParagraphLength; i++) { - nLineCount++; - // Looking for 2 newline characters and above as one can be part of the line - // break after a sentence - if (nLineCount > 2) + auto aChar = sParagraphText[i]; + if (aChar == ' ') { - auto pIssue - = lclAddIssue(m_rIssueCollection, SwResId(STR_AVOID_NEWLINES_SPACE), - sfx::AccessibilityIssueID::TEXT_FORMATTING); - pIssue->setIssueObject(IssueObject::TEXT); - pIssue->setNode(pTextNode); - SwDoc& rDocument = pTextNode->GetDoc(); - pIssue->setDoc(rDocument); - pIssue->setStart(i); - pIssue->setEnd(i); + nLineCount++; + // Looking for 2 newline characters and above as one can be part of the line + // break after a sentence + if (nLineCount > 2) + { + auto pIssue + = lclAddIssue(m_rIssueCollection, SwResId(STR_AVOID_NEWLINES_SPACE), + sfx::AccessibilityIssueID::TEXT_FORMATTING); + pIssue->setIssueObject(IssueObject::TEXT); + pIssue->setNode(pTextNode); + pIssue->setDoc(rDocument); + pIssue->setStart(i); + pIssue->setEnd(i); + } + } + // Don't count carriage return as normal character + else if (aChar != ' ') + { + nLineCount = 0; } - } - // Don't count carriage return as normal character - else if (aChar != ' ') - { - nLineCount = 0; } } } commit 01ddcbbff6ac3a54c9bafdbd260820b6a4f75d18 Author: Mike Kaganski <[email protected]> AuthorDate: Mon Sep 16 16:13:15 2024 +0500 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 11:30:29 2024 +0200 tdf#162987: check return value of GetViewBindings Change-Id: Iaeec22ed07e18aa59f2ab87b2ea7d8a0c7ae1467 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173435 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit 7cebd7df0cfcbf906848bfbbdee614fdbd90af8a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173487 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sc/source/ui/view/dbfunc.cxx b/sc/source/ui/view/dbfunc.cxx index 8f1b9e8fc589..a2f6dd09dad4 100644 --- a/sc/source/ui/view/dbfunc.cxx +++ b/sc/source/ui/view/dbfunc.cxx @@ -404,9 +404,11 @@ void ScDBFunc::ModifiedAutoFilter(ScDocShell* pDocSh) ScDocShellModificator aModificator(*pDocSh); aModificator.SetDocumentModified(); - SfxBindings* pBindings = pDocSh->GetViewBindings(); - pBindings->Invalidate(SID_AUTO_FILTER); - pBindings->Invalidate(SID_AUTOFILTER_HIDE); + if (SfxBindings* pBindings = pDocSh->GetViewBindings()) + { + pBindings->Invalidate(SID_AUTO_FILTER); + pBindings->Invalidate(SID_AUTOFILTER_HIDE); + } } // just hide, no data change commit c09470fa0ca5a1e074a18729b47c8d8b591c9c34 Author: Mike Kaganski <[email protected]> AuthorDate: Mon Sep 16 16:14:33 2024 +0500 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 11:08:27 2024 +0200 Check return value of GetViewBindings ... as done in all other places where it's called Change-Id: Ic941cf433e96bb8bfa6ea81c52c044cc424100eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173436 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit 5eab23392c5c80ae9cf712c4e7fba21cfff02dae) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173489 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx index 9a707ff4790f..982f3c9a43d4 100644 --- a/sc/source/ui/view/tabvwsha.cxx +++ b/sc/source/ui/view/tabvwsha.cxx @@ -841,7 +841,8 @@ void ScTabViewShell::ExecuteSave( SfxRequest& rReq ) // This will work only if .uno:ModifiedStatus message will be removed from // the mechanism that keeps in the message queue only last message of // a particular status even if the values are different. - GetViewData().GetDocShell()->GetViewBindings()->Update(SID_DOC_MODIFIED); + if (SfxBindings* pBindings = GetViewData().GetDocShell()->GetViewBindings()) + pBindings->Update(SID_DOC_MODIFIED); } } commit 68bcf324e30b9f92648ad5dd21ff8deff47b63a9 Author: Mike Kaganski <[email protected]> AuthorDate: Mon Sep 16 10:24:49 2024 +0500 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 10:53:19 2024 +0200 i#109051: also handle Exit Property for Property Set An omission from commit 5ed103d2dd5f8ee2f13183263c0930f84437bdc7 (mib16: contributed bugfixes and various new symbols in VBA compatibility implementation, 2010-06-15) Change-Id: I1e08406eb1dcb64eeef5d925d22475f1b9f74de0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173426 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173518 diff --git a/basic/qa/basic_coverage/test_Property.GetSet.bas b/basic/qa/basic_coverage/test_Property.GetSet.bas index 701bcc7f49e0..c0f9c444ee07 100644 --- a/basic/qa/basic_coverage/test_Property.GetSet.bas +++ b/basic/qa/basic_coverage/test_Property.GetSet.bas @@ -35,4 +35,5 @@ Property Set objSetter(value As Object) .add "branches" .add "leaves" End With + Exit Property ' i#109051 End Property diff --git a/basic/source/comp/parser.cxx b/basic/source/comp/parser.cxx index bab048d9f5d7..3d5a7ed67e4a 100644 --- a/basic/source/comp/parser.cxx +++ b/basic/source/comp/parser.cxx @@ -234,7 +234,7 @@ void SbiParser::Exit() { SbiToken eExitTok = p->eExitTok; if( eTok == eExitTok || - (eTok == PROPERTY && (eExitTok == GET || eExitTok == LET) ) ) // #i109051 + (eTok == PROPERTY && (eExitTok == GET || eExitTok == LET || eExitTok == SET) ) ) // #i109051 { p->nChain = aGen.Gen( SbiOpcode::JUMP_, p->nChain ); return; commit e3c06470b44c6e7536083841b8881748e8f5e047 Author: Jim Raykowski <[email protected]> AuthorDate: Thu Sep 12 22:54:43 2024 -0800 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 09:49:25 2024 +0200 Resolves tdf#133041 New list style is not added back after undoing and then redoing it by following the approach used by commit c4d82fc21c5e155472f6a30244b3fce806ada85c Change-Id: I09c877aecdcf49d4be5451e247bf1010856c2d39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173312 Tested-by: Jenkins Reviewed-by: Jim Raykowski <[email protected]> (cherry picked from commit fb39ae1bc7e4b1cbfc3108efca52ec310faf7363) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173391 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx index 433d91df57ce..315a0a8dbeb1 100644 --- a/sw/source/uibase/app/docst.cxx +++ b/sw/source/uibase/app/docst.cxx @@ -824,10 +824,10 @@ void SwDocShell::Edit( else nMask = SfxStyleSearchBits::UserDefined; - if ( nFamily == SfxStyleFamily::Para || nFamily == SfxStyleFamily::Char || nFamily == SfxStyleFamily::Frame ) + if (nFamily == SfxStyleFamily::Para || nFamily == SfxStyleFamily::Char + || nFamily == SfxStyleFamily::Frame || nFamily == SfxStyleFamily::Pseudo) { - // Prevent undo append from being done during paragraph, character, and frame style Make - // Do it after ok return from style dialog when derived from style is known + // Do Make undo append after an OK return from the style dialog below ::sw::UndoGuard const undoGuard(GetDoc()->GetIDocumentUndoRedo()); pStyle = &m_xBasePool->Make( rName, nFamily, nMask ); } @@ -1059,6 +1059,16 @@ void SwDocShell::Edit( } } break; + case SfxStyleFamily::Pseudo: + { + if (GetDoc()->GetIDocumentUndoRedo().DoesUndo()) + { + GetDoc()->GetIDocumentUndoRedo().AppendUndo( + std::make_unique<SwUndoNumruleCreate>(xTmp->GetNumRule(), + *GetDoc())); + } + } + break; default: break; } commit 1508a686875868b20c9ebac09ad817e40defe62e Author: Michael Weghorn <[email protected]> AuthorDate: Wed Sep 11 16:17:47 2024 +0200 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 09:48:19 2024 +0200 tdf#161256 gtk4 a11y: Don't crash on missing context or invalid child index If an `XAccessible` doesn't have a context or `XAccessibleContext::getAccessibleIndexInParent()` returns an invalid index of -1, don't crash/assert, but let `lo_accessible_get_next_accessible_sibling` return `nullptr`. This works around potential bugs in underlying `XAccessible`/`XAccessibleContext` implementations for now. This is meant to fix the assert/crash seen in the backtraces attachment 196363 and attachment 196383 from tdf#161256 which I cannot reproduce locally on Debian testing. Change-Id: Ic1779d875161469bf296c558039e19f1d426a259 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173216 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> (cherry picked from commit e94a35275670e0e3775c1bba305115d9941751f1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173178 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/vcl/unx/gtk4/a11y.cxx b/vcl/unx/gtk4/a11y.cxx index 4860c7cff33d..482e98d7375f 100644 --- a/vcl/unx/gtk4/a11y.cxx +++ b/vcl/unx/gtk4/a11y.cxx @@ -767,8 +767,18 @@ static GtkAccessible* lo_accessible_get_next_accessible_sibling(GtkAccessible* s css::uno::Reference<css::accessibility::XAccessibleContext> xContext( pAccessible->uno_accessible->getAccessibleContext()); + if (!xContext.is()) + { + SAL_WARN("vcl.gtk", "Accessible has no accessible context"); + return nullptr; + } + sal_Int64 nThisChildIndex = xContext->getAccessibleIndexInParent(); - assert(nThisChildIndex != -1); + if (nThisChildIndex < 0) + { + SAL_WARN("vcl.gtk", "Invalid accessible index in parent"); + return nullptr; + } sal_Int64 nNextChildIndex = nThisChildIndex + 1; css::uno::Reference<css::accessibility::XAccessible> xParent = xContext->getAccessibleParent(); commit 14abfac4efed74876ea9f2ed3d6fa4105a508c52 Author: Miklos Vajna <[email protected]> AuthorDate: Mon Sep 16 08:01:28 2024 +0200 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 09:47:42 2024 +0200 tdf#161876 sfx2 store: refuse to overwrite read-only files Create a read-only file, try to save-as the current document and select the existing read-only file, accept to overwrite it, works fine. This is a regression from commit 2157a3536f97ff5ae7c82611a801fef7e3708983 (sfx2 store: try rename before copying, 2018-01-09), previously such read-only targets were rejected. Fix the problem by explicitly checking if the target is writable: if not, then avoid the rename optimization, because the fallback path will reject the request as expected. Fix this inside an '#ifdef UNX' block, the problem is reportedly not there on Windows. Change-Id: Ifd8798e07a1be504c6747514a53cfc4ff2338a0c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173344 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Jenkins (cherry picked from commit 63cb8d9ddd6db64e41f66df937f42875637bede5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173395 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sfx2/qa/cppunit/test_misc.cxx b/sfx2/qa/cppunit/test_misc.cxx index 47c663a0246b..a1df712e988c 100644 --- a/sfx2/qa/cppunit/test_misc.cxx +++ b/sfx2/qa/cppunit/test_misc.cxx @@ -29,6 +29,7 @@ #include <test/unoapixml_test.hxx> #include <unotools/ucbstreamhelper.hxx> +#include <comphelper/propertyvalue.hxx> #include <comphelper/propertysequence.hxx> #include <comphelper/processfactory.hxx> #include <sfx2/app.hxx> @@ -166,6 +167,37 @@ CPPUNIT_TEST_FIXTURE(MiscTest, testHardLinks) #endif } +CPPUNIT_TEST_FIXTURE(MiscTest, testtestOverwriteReadOnly) +{ +#ifdef UNX + // Given a read-only, already created file: + OUString aTargetDir = m_directories.getURLFromWorkdir(u"/CppunitTest/sfx2_misc.test.user/"); + OUString aURL(aTargetDir + "read-only.odt"); + osl::File aFile(aURL); + aFile.open(osl_File_OpenFlag_Create); + aFile.close(); + osl::File::setAttributes(aURL, osl_File_Attribute_OwnRead); + mxComponent = loadFromDesktop(aURL, u"com.sun.star.text.TextDocument"_ustr); + uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); + bool bFail = false; + + // When trying to overwrite that: + try + { + xStorable->storeToURL(aURL, { comphelper::makePropertyValue("Overwrite", true) }); + } + catch (const io::IOException&) + { + bFail = true; + } + + // Then make sure we fail: + // Without the accompanying fix in place, this test would have failed, the overwrite would + // silently ignore the read-only attribute of the file. + CPPUNIT_ASSERT(bFail); +#endif +} + CPPUNIT_TEST_FIXTURE(MiscTest, testOverwrite) { // tdf#60237 - try to overwrite an existing file using the different settings of the Overwrite option diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx index 3b50588de93d..35452d7bbc5d 100644 --- a/sfx2/source/doc/docfile.cxx +++ b/sfx2/source/doc/docfile.cxx @@ -257,6 +257,11 @@ bool IsFileMovable(const INetURLObject& rURL) // Hardlink or symlink: osl::File::move() doesn't play with these nicely. if (buf.st_nlink > 1 || S_ISLNK(buf.st_mode)) return false; + + // Read-only target path: this would be silently replaced. + if (access(sPath.toUtf8().getStr(), W_OK) == -1) + return false; + #elif defined _WIN32 if (tools::IsMappedWebDAVPath(rURL.GetMainURL(INetURLObject::DecodeMechanism::NONE))) return false; commit b4ec0fd3f858dc96a9ddf8b114e710cb531f4bcd Author: Caolán McNamara <[email protected]> AuthorDate: Sun Sep 15 20:43:23 2024 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 09:46:37 2024 +0200 cid#1607350 Data race condition Change-Id: Ibd30f03513661762613cc0b386acc48eb994bc2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173422 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 30be1d807d4e1fbec73d92d7740490b69e0bb751) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173402 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/vcl/source/components/dtranscomp.cxx b/vcl/source/components/dtranscomp.cxx index 49cb61eb37fa..5307ed136690 100644 --- a/vcl/source/components/dtranscomp.cxx +++ b/vcl/source/components/dtranscomp.cxx @@ -132,6 +132,7 @@ sal_Bool GenericClipboard::supportsService( const OUString& ServiceName ) Reference< css::datatransfer::XTransferable > GenericClipboard::getContents() { + std::unique_lock aGuard(m_aMutex); return m_aContents; } commit c4ac2aa428e6a39bbf85e6ddac3dab05068c48cb Author: Caolán McNamara <[email protected]> AuthorDate: Tue Sep 10 09:31:43 2024 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Sep 17 09:46:06 2024 +0200 Resolves: tdf#162455 svg->curve causes text in objects to disappear Rather than assuming there is a uniform unchanging MapMode scaling, follow the same pattern as SVGWriter and map positions/sizes back relative to the original MapMode. Examples of #i119125#, tdf#162455 and tdf#160625 work Change-Id: I8229cebee6173fa4905828afb3b973c80ede3315 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173126 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 51f25098302e738a7d256620bd8e13bace8d060e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173301 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sd/qa/unit/data/tdf162455.svg b/sd/qa/unit/data/tdf162455.svg new file mode 100644 index 000000000000..ba50863864d0 --- /dev/null +++ b/sd/qa/unit/data/tdf162455.svg @@ -0,0 +1,2115 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- +Génération automatique de graphiques SVG interactifs +(c) Insee 2012, 2016 = BH : [email protected] +fonds de carte, concepts = CY : [email protected] + cartographie = ADS : [email protected] +[4G 23/11/2016] + onload="evt => {console.log('onload', evt) init('{$graph_id}',evt)}" + --> + +<svg + id="G_G0000101001" + aria-label="" + role="img" + viewBox="0 0 630 550" + width="100%" + onload="console.log('dfjdsvldvlnvds')" + xml:space="default" + preserveAspectRatio="xMinYMin meet" + version="1.1" + sodipodi:docname="teste03.svg" + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview319" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + showgrid="false" + inkscape:zoom="2.4273047" + inkscape:cx="363.77798" + inkscape:cy="309.80865" + inkscape:window-width="1920" + inkscape:window-height="2123" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="G_G0000101001_graphique" /> + <script + type="text/javascript" + id="script2"> +{ + + +var G_G0000101001_graph_l = 630 ; +var G_G0000101001_help_nblig=3; +var G_G0000101001_help_fontsize=12; +var G_G0000101001_help_last=0; +var G_G0000101001_keep_title=1; +var G_G0000101001_prefixegeo="france_regions"; +var G_G0000101001_lib_colonne_brut=["","Emploi salarié total - Pays de la Loire","Emploi salarié total - France hors Mayotte","Emploi salarié privé - Pays de la Loire","Emploi salarié privé - France hors Mayotte"] +var G_G0000101001_graph_data=[ ["","Emploi salarié total - Pays de la Loire","Emploi salarié total - France hors Mayotte","Emploi salarié privé - Pays de la Loire","Emploi salarié privé - France hors Mayotte"],["4ᵉ trim. 2017","100,0","100,0","100,0","100,0"],["1ᵉ trim. 2018","100,3","100,2","100,3","100,3"],["2ᵉ trim. 2018","100,4","100,2","100,6","100,4"],["3ᵉ trim. 2018","100,6","100,3","100,9","100,6"],["4ᵉ trim. 2018","101,0","100,6","101,3","100,9"], +["1ᵉ trim. 2019","101,7","101,3","102,1","101,7"],["2ᵉ trim. 2019","101,9","101,4","102,2","101,9"],["3ᵉ trim. 2019","102,1","101,6","102,5","102,2"],["4ᵉ trim. 2019","102,7","102,0","103,2","102,6"],["1ᵉ trim. 2020","100,7","100,3","100,6","100,3"], +["2ᵉ trim. 2020","100,6","99,7","100,7","99,9"],["3ᵉ trim. 2020","102,6","101,7","102,9","102,1"],["4ᵉ trim. 2020","102,9","101,8","103,3","102,1"],["1ᵉ trim. 2021","103,8","102,6","104,5","103,2"],["2ᵉ trim. 2021","104,9","103,6","105,7","104,5"], +["3ᵉ trim. 2021","105,7","104,5","106,7","105,4"],["4ᵉ trim. 2021","106,5","105,0","107,6","106,2"],["1ᵉ trim. 2022","106,9","105,3","108,1","106,6"],["2ᵉ trim. 2022","107,3","105,8","108,5","107,2"],["3ᵉ trim. 2022","107,7","106,2","109,1","107,7"], +["4ᵉ trim. 2022","108,2","106,5","109,6","108,2"],["1ᵉ trim. 2023","108,6","106,7","109,9","108,3"],["2ᵉ trim. 2023","108,9","106,9","110,2","108,5"],["3ᵉ trim. 2023","109,0","107,1","110,4","108,7"],["4ᵉ trim. 2023","109,2","107,1","110,4","108,6"], +["1ᵉ trim. 2024","109,5","107,4","110,7","109,0"] +]; +} + </script> + <defs + id="defs7"> + <clipPath + id="G_G0000101001_clipRectGraph"> + <rect + x="10" + y="95" + width="610" + height="445" + id="rect4" /> + </clipPath> + </defs> + <style + type="text/css" + id="style9"> + /* Styles statiques par défaut extraits d'un fichier XML */ + +svg {max-width: 656px;} +text {stroke:none} +.G_G0000101001_sens-line {stroke:gray;stroke-width:5;opacity:0} +.G_G0000101001_gridline { stroke:gray; stroke-width :0.5; } +.G_G0000101001_gridlinelog { stroke:silver; stroke-width :0.5; } +#G_G0000101001_axes { stroke:navy; stroke-width:1 } +#G_G0000101001_axes-titres {fill:black} +#G_G0000101001_axex-titre2 {text-anchor:start} +#G_G0000101001_axex-titre {text-anchor:end} +#G_G0000101001_axey-titre-pyramide {text-anchor:middle} +#G_G0000101001_sources {font-style:italic} +#G_G0000101001_extra_elements {pointer-events:none} +#G_G0000101001_help-lib1b {text-anchor:end} +#G_G0000101001_help-lib2b {text-anchor:end} +@media print {use[class*="marque"],path[class*="surface"],rect[class*="surface"] {opacity:1 !important}} +@media print {path[class*="pie-slice"] {stroke:white;stroke-width:1.5}} + + /* Styles multiples pour les lignes, surfaces, marques à partir des paramètres (couleurs, traits, largeurs, tailles, marques ...) + générés par la transformation */ + +.G_G0000101001_courbe1 { stroke-opacity:1; fill:none; stroke:#0AA4B0; stroke-width:2; stroke-dasharray: ; } +.G_G0000101001_courbe2 { stroke-opacity:1; fill:none; stroke:#0F417A; stroke-width:2; stroke-dasharray: ; } +.G_G0000101001_courbe3 { stroke-opacity:1; fill:none; stroke:#0AA4B0; stroke-width:2; stroke-dasharray:4 2; } +.G_G0000101001_courbe4 { stroke-opacity:1; fill:none; stroke:#0F417A; stroke-width:2; stroke-dasharray:4 2; } + +#G_G0000101001_axes-titres { fill:black; font-size:13px; } +#G_G0000101001_axey-titre1 { fill:black; text-anchor:start; } +#G_G0000101001_ticks { font-size:10px; } +#G_G0000101001_ticks-axe1 { fill:black; text-anchor:end; } +.G_G0000101001_tick-label { text-anchor:end; font-size:10px; } +.G_G0000101001_tick-bar { text-anchor:end; font-size:10px; } + +#G_G0000101001_graphique { font-family:"Open Sans",Verdana, "Bitstream Vera Sans", sans-serif; stroke-linejoin:round; stroke-linecap:butt; } +#G_G0000101001_cadre { stroke-width:0.7; fill:none; stroke:white; } +#G_G0000101001_titre { font-weight:bolder; font-size:12px; fill:black; text-anchor:start; } +#G_G0000101001_soustitre { font-size:12px; text-anchor:start; } +#G_G0000101001_legende { stroke-width:1; text-anchor:start; font-size:12px; } +#G_G0000101001_unite { font-size:13px; text-anchor:start; } +#G_G0000101001_notes-sources { text-anchor:start; fill:black; font-size:11px; } +#G_G0000101001_help-bubble { fill:#FFE070; stroke:gray; stroke-width:0.5; stroke-opacity:0.8; fill-opacity:0.8; } +#G_G0000101001_help { pointer-events:none; font-size:12px; } + +#G_G0000101001_legende>g>g:hover {cursor:pointer; font-weight:bold}</style> + <g + id="G_G0000101001_graphique" + aria-hidden="true"> + <text + id="G_G0000101001_debug" + x="100" + y="590" /> + <rect + id="G_G0000101001_cadre" + x="1" + y="1" + width="628" + height="548" /> + <g + id="G_G0000101001_notes-sources" + transform="translate(15,549)"> + <!--Notes--> + <g + id="G_G0000101001_notes" /> + <!--Sources--> + <g + id="G_G0000101001_sources" + transform="translate(0,0)" /> + </g> + <!--Ticks--> + <g + id="G_G0000101001_ticks"> + <!--Axe principal--> + <g + id="G_G0000101001_ticks-axe1"> + <!--ticks à partir de l'axe et au-dessus--> + <g + id="G_G0000101001_tick-axe1-1" + transform="translate(41,394)"> + <line + id="G_G0000101001_tick-axe1-1-line" + x2="559" + class="G_G0000101001_gridline" /> + <text + id="G_G0000101001_tick-axe1-1-text" + x="-5" + y="3">100</text> + </g> + <g + id="G_G0000101001_tick-axe1-2" + transform="translate(41,349)"> + <line + id="G_G0000101001_tick-axe1-2-line" + x2="559" + class="G_G0000101001_gridline" /> + <text + id="G_G0000101001_tick-axe1-2-text" + x="-5" + y="3">102</text> + </g> + <g + id="G_G0000101001_tick-axe1-3" + transform="translate(41,304)"> + <line + id="G_G0000101001_tick-axe1-3-line" + x2="559" + class="G_G0000101001_gridline" /> + <text + id="G_G0000101001_tick-axe1-3-text" + x="-5" + y="3">104</text> + </g> + <g + id="G_G0000101001_tick-axe1-4" + transform="translate(41,260)"> + <line + id="G_G0000101001_tick-axe1-4-line" + x2="559" + class="G_G0000101001_gridline" /> + <text + id="G_G0000101001_tick-axe1-4-text" + x="-5" + y="3">106</text> + </g> + <g + id="G_G0000101001_tick-axe1-5" + transform="translate(41,215)"> + <line + id="G_G0000101001_tick-axe1-5-line" + x2="559" + class="G_G0000101001_gridline" /> + <text + id="G_G0000101001_tick-axe1-5-text" + x="-5" + y="3">108</text> + </g> + <g + id="G_G0000101001_tick-axe1-6" + transform="translate(41,170)"> + <line + id="G_G0000101001_tick-axe1-6-line" + x2="559" + class="G_G0000101001_gridline" /> + <text + id="G_G0000101001_tick-axe1-6-text" + x="-5" + y="3">110</text> + </g> + <g + id="G_G0000101001_tick-axe1-7" + transform="translate(41,125)"> + <line + id="G_G0000101001_tick-axe1-7-line" + x2="559" + class="G_G0000101001_gridline" /> + <text + id="G_G0000101001_tick-axe1-7-text" + x="-5" + y="3">112</text> + </g> + <!--ticks en-dessous de l'axe--> + <g + id="G_G0000101001_tick-axe1-8" + transform="translate(41,439)"> + <line + id="G_G0000101001_tick-axe1-8-line" + x2="559" + class="G_G0000101001_gridline" /> + <text + id="G_G0000101001_tick-axe1-8-text" + x="-5" + y="3">98</text> + </g> + </g> + </g> + <g + id="G_G0000101001_axes-titres"> + <!--Titres axe vertical--> + <text + id="G_G0000101001_axey-titre1" + x="12" + y="111">Even more tests</text> + </g> + <!--Axes--> + <g + id="G_G0000101001_axes" + style=";stroke:navy; stroke-width :1; "> + <line + id="G_G0000101001_axe-x" + x1="46" + y1="394" + x2="605" + y2="394" /> + <line + id="G_G0000101001_axe-y1" + x1="46" + y1="439" + x2="46" + y2="115" /> + </g> + <!--Séries--> + <g + id="G_G0000101001_graph"> + <!--Repères axe X periodex=4--> + <g + id="G_G0000101001_courbes-ticks" + class="G_G0000101001_tick-label"> + <line + id="G_G0000101001_courbes-tick-1" + x1="46" + x2="46" + y1="444" + y2="120" + class="G_G0000101001_gridline" /> + <g + id="G_G0000101001_courbes-tick-1-text" + transform="translate(46,454) rotate(-45)"> + <text + id="G_G0000101001_courbes-tick-1-text-1">4ᵉ trim.0000</text> + </g> + <line + id="G_G0000101001_courbes-tick-5" + x1="135" + x2="135" + y1="444" + y2="120" + class="G_G0000101001_gridline" /> + <g + id="G_G0000101001_courbes-tick-5-text" + transform="translate(135,454) rotate(-45)"> + <text + id="G_G0000101001_courbes-tick-5-text-1">4ᵉ trim.0000</text> + </g> + <line + id="G_G0000101001_courbes-tick-9" + x1="223" + x2="223" + y1="444" + y2="120" + class="G_G0000101001_gridline" /> + <g + id="G_G0000101001_courbes-tick-9-text" + transform="translate(223,454) rotate(-45)"> + <text + id="G_G0000101001_courbes-tick-9-text-1">4ᵉ trim.0000</text> + </g> + <line + id="G_G0000101001_courbes-tick-13" + x1="312" + x2="312" + y1="444" + y2="120" + class="G_G0000101001_gridline" /> + <g + id="G_G0000101001_courbes-tick-13-text" + transform="translate(312,454) rotate(-45)"> + <text + id="G_G0000101001_courbes-tick-13-text-1">4ᵉ trim.0000</text> + </g> + <line + id="G_G0000101001_courbes-tick-17" + x1="401" + x2="401" + y1="444" + y2="120" + class="G_G0000101001_gridline" /> + <g + id="G_G0000101001_courbes-tick-17-text" + transform="translate(401,454) rotate(-45)"> + <text + id="G_G0000101001_courbes-tick-17-text-1">4ᵉ trim.0000</text> + </g> + <line + id="G_G0000101001_courbes-tick-21" + x1="489" + x2="489" + y1="444" + y2="120" + class="G_G0000101001_gridline" /> + <g + id="G_G0000101001_courbes-tick-21-text" + transform="translate(489,454) rotate(-45)"> + <text + id="G_G0000101001_courbes-tick-21-text-1">4ᵉ trim.0000</text> + </g> + <line + id="G_G0000101001_courbes-tick-26" + x1="600" + x2="600" + y1="444" + y2="120" + class="G_G0000101001_gridline" /> + <g + id="G_G0000101001_courbes-tick-26-text" + transform="translate(600,454) rotate(-45)"> + <text + id="G_G0000101001_courbes-tick-26-text-1">1ᵉ trim.0000</text> + </g> + </g> + <g + id="G_G0000101001_courbes"> + <!--Courbe colonne numéro 1--> + <path + id="G_G0000101001_courbe-C1" + d="M 46,394 L 68,387 L 90,385 L 112,381 L 135,372 L 157,356 L 179,352 L 201,347 L 223,334 L 245,378 L 268,381 L 290,336 L 312,329 L 334,309 L 356,284 L 378,266 L 401,248 L 423,239 L 445,230 L 467,221 L 489,210 L 511,201 L 534,195 L 556,192 L 578,188 L 600,181 " + class="G_G0000101001_courbe1" /> + <!--Courbe colonne numéro 2--> + <path + id="G_G0000101001_courbe-C2" + d="M 46,394 L 68,390 L 90,390 L 112,387 L 135,381 L 157,365 L 179,363 L 201,358 L 223,349 L 245,387 L 268,401 L 290,356 L 312,354 L 334,336 L 356,313 L 378,293 L 401,282 L 423,275 L 445,264 L 467,255 L 489,248 L 511,244 L 534,239 L 556,235 L 578,235 L 600,228 " + class="G_G0000101001_courbe2" /> + <!--Courbe colonne numéro 3--> + <path + id="G_G0000101001_courbe-C3" + d="M 46,394 L 68,387 L 90,381 L 112,374 L 135,365 L 157,347 L 179,345 L 201,338 L 223,322 L 245,381 L 268,378 L 290,329 L 312,320 L 334,293 L 356,266 L 378,244 L 401,224 L 423,212 L 445,204 L 467,190 L 489,179 L 511,172 L 534,165 L 556,161 L 578,161 L 600,154 " + class="G_G0000101001_courbe3" /> + <!--Courbe colonne numéro 4--> + <path + id="G_G0000101001_courbe-C4" + d="M 46,394 L 68,387 L 90,385 L 112,381 L 135,374 L 157,356 L 179,352 L 201,345 L 223,336 L 245,387 L 268,396 L 290,347 L 312,347 L 334,322 L 356,293 L 378,273 L 401,255 L 423,246 L 445,233 L 467,221 L 489,210 L 511,208 L 534,204 L 556,199 L 578,201 L 600,192 " + class="G_G0000101001_courbe4" /> + </g> + <g + id="G_G0000101001_courbes-lignes" + class="G_G0000101001_sens-line"> + <!--Segments colonne numéro 1--> + <line + id="G_G0000101001_courbes-ligne-C1-L2" + x1="46" + y1="394" + x2="68" + y2="387" + onmouseout="hide_help_line('G_G0000101001',2,1)" + onmousemove="show_help_line('G_G0000101001',2,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L3" + x1="68" + y1="387" + x2="90" + y2="385" + onmouseout="hide_help_line('G_G0000101001',3,1)" + onmousemove="show_help_line('G_G0000101001',3,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L4" + x1="90" + y1="385" + x2="112" + y2="381" + onmouseout="hide_help_line('G_G0000101001',4,1)" + onmousemove="show_help_line('G_G0000101001',4,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L5" + x1="112" + y1="381" + x2="135" + y2="372" + onmouseout="hide_help_line('G_G0000101001',5,1)" + onmousemove="show_help_line('G_G0000101001',5,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L6" + x1="135" + y1="372" + x2="157" + y2="356" + onmouseout="hide_help_line('G_G0000101001',6,1)" + onmousemove="show_help_line('G_G0000101001',6,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L7" + x1="157" + y1="356" + x2="179" + y2="352" + onmouseout="hide_help_line('G_G0000101001',7,1)" + onmousemove="show_help_line('G_G0000101001',7,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L8" + x1="179" + y1="352" + x2="201" + y2="347" + onmouseout="hide_help_line('G_G0000101001',8,1)" + onmousemove="show_help_line('G_G0000101001',8,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L9" + x1="201" + y1="347" + x2="223" + y2="334" + onmouseout="hide_help_line('G_G0000101001',9,1)" + onmousemove="show_help_line('G_G0000101001',9,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L10" + x1="223" + y1="334" + x2="245" + y2="378" + onmouseout="hide_help_line('G_G0000101001',10,1)" + onmousemove="show_help_line('G_G0000101001',10,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L11" + x1="245" + y1="378" + x2="268" + y2="381" + onmouseout="hide_help_line('G_G0000101001',11,1)" + onmousemove="show_help_line('G_G0000101001',11,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L12" + x1="268" + y1="381" + x2="290" + y2="336" + onmouseout="hide_help_line('G_G0000101001',12,1)" + onmousemove="show_help_line('G_G0000101001',12,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L13" + x1="290" + y1="336" + x2="312" + y2="329" + onmouseout="hide_help_line('G_G0000101001',13,1)" + onmousemove="show_help_line('G_G0000101001',13,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L14" + x1="312" + y1="329" + x2="334" + y2="309" + onmouseout="hide_help_line('G_G0000101001',14,1)" + onmousemove="show_help_line('G_G0000101001',14,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L15" + x1="334" + y1="309" + x2="356" + y2="284" + onmouseout="hide_help_line('G_G0000101001',15,1)" + onmousemove="show_help_line('G_G0000101001',15,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L16" + x1="356" + y1="284" + x2="378" + y2="266" + onmouseout="hide_help_line('G_G0000101001',16,1)" + onmousemove="show_help_line('G_G0000101001',16,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L17" + x1="378" + y1="266" + x2="401" + y2="248" + onmouseout="hide_help_line('G_G0000101001',17,1)" + onmousemove="show_help_line('G_G0000101001',17,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L18" + x1="401" + y1="248" + x2="423" + y2="239" + onmouseout="hide_help_line('G_G0000101001',18,1)" + onmousemove="show_help_line('G_G0000101001',18,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L19" + x1="423" + y1="239" + x2="445" + y2="230" + onmouseout="hide_help_line('G_G0000101001',19,1)" + onmousemove="show_help_line('G_G0000101001',19,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L20" + x1="445" + y1="230" + x2="467" + y2="221" + onmouseout="hide_help_line('G_G0000101001',20,1)" + onmousemove="show_help_line('G_G0000101001',20,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L21" + x1="467" + y1="221" + x2="489" + y2="210" + onmouseout="hide_help_line('G_G0000101001',21,1)" + onmousemove="show_help_line('G_G0000101001',21,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L22" + x1="489" + y1="210" + x2="511" + y2="201" + onmouseout="hide_help_line('G_G0000101001',22,1)" + onmousemove="show_help_line('G_G0000101001',22,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L23" + x1="511" + y1="201" + x2="534" + y2="195" + onmouseout="hide_help_line('G_G0000101001',23,1)" + onmousemove="show_help_line('G_G0000101001',23,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L24" + x1="534" + y1="195" + x2="556" + y2="192" + onmouseout="hide_help_line('G_G0000101001',24,1)" + onmousemove="show_help_line('G_G0000101001',24,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L25" + x1="556" + y1="192" + x2="578" + y2="188" + onmouseout="hide_help_line('G_G0000101001',25,1)" + onmousemove="show_help_line('G_G0000101001',25,1)" /> + <line + id="G_G0000101001_courbes-ligne-C1-L26" + x1="578" + y1="188" + x2="600" + y2="181" + onmouseout="hide_help_line('G_G0000101001',26,1)" + onmousemove="show_help_line('G_G0000101001',26,1)" /> + <!--Segments colonne numéro 2--> + <line + id="G_G0000101001_courbes-ligne-C2-L2" + x1="46" + y1="394" + x2="68" + y2="390" + onmouseout="hide_help_line('G_G0000101001',2,2)" + onmousemove="show_help_line('G_G0000101001',2,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L3" + x1="68" + y1="390" + x2="90" + y2="390" + onmouseout="hide_help_line('G_G0000101001',3,2)" + onmousemove="show_help_line('G_G0000101001',3,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L4" + x1="90" + y1="390" + x2="112" + y2="387" + onmouseout="hide_help_line('G_G0000101001',4,2)" + onmousemove="show_help_line('G_G0000101001',4,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L5" + x1="112" + y1="387" + x2="135" + y2="381" + onmouseout="hide_help_line('G_G0000101001',5,2)" + onmousemove="show_help_line('G_G0000101001',5,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L6" + x1="135" + y1="381" + x2="157" + y2="365" + onmouseout="hide_help_line('G_G0000101001',6,2)" + onmousemove="show_help_line('G_G0000101001',6,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L7" + x1="157" + y1="365" + x2="179" + y2="363" + onmouseout="hide_help_line('G_G0000101001',7,2)" + onmousemove="show_help_line('G_G0000101001',7,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L8" + x1="179" + y1="363" + x2="201" + y2="358" + onmouseout="hide_help_line('G_G0000101001',8,2)" + onmousemove="show_help_line('G_G0000101001',8,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L9" + x1="201" + y1="358" + x2="223" + y2="349" + onmouseout="hide_help_line('G_G0000101001',9,2)" + onmousemove="show_help_line('G_G0000101001',9,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L10" + x1="223" + y1="349" + x2="245" + y2="387" + onmouseout="hide_help_line('G_G0000101001',10,2)" + onmousemove="show_help_line('G_G0000101001',10,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L11" + x1="245" + y1="387" + x2="268" + y2="401" + onmouseout="hide_help_line('G_G0000101001',11,2)" + onmousemove="show_help_line('G_G0000101001',11,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L12" + x1="268" + y1="401" + x2="290" + y2="356" + onmouseout="hide_help_line('G_G0000101001',12,2)" + onmousemove="show_help_line('G_G0000101001',12,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L13" + x1="290" + y1="356" + x2="312" + y2="354" + onmouseout="hide_help_line('G_G0000101001',13,2)" + onmousemove="show_help_line('G_G0000101001',13,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L14" + x1="312" + y1="354" + x2="334" + y2="336" + onmouseout="hide_help_line('G_G0000101001',14,2)" + onmousemove="show_help_line('G_G0000101001',14,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L15" + x1="334" + y1="336" + x2="356" + y2="313" + onmouseout="hide_help_line('G_G0000101001',15,2)" + onmousemove="show_help_line('G_G0000101001',15,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L16" + x1="356" + y1="313" + x2="378" + y2="293" + onmouseout="hide_help_line('G_G0000101001',16,2)" + onmousemove="show_help_line('G_G0000101001',16,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L17" + x1="378" + y1="293" + x2="401" + y2="282" + onmouseout="hide_help_line('G_G0000101001',17,2)" + onmousemove="show_help_line('G_G0000101001',17,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L18" + x1="401" + y1="282" + x2="423" + y2="275" + onmouseout="hide_help_line('G_G0000101001',18,2)" + onmousemove="show_help_line('G_G0000101001',18,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L19" + x1="423" + y1="275" + x2="445" + y2="264" + onmouseout="hide_help_line('G_G0000101001',19,2)" + onmousemove="show_help_line('G_G0000101001',19,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L20" + x1="445" + y1="264" + x2="467" + y2="255" + onmouseout="hide_help_line('G_G0000101001',20,2)" + onmousemove="show_help_line('G_G0000101001',20,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L21" + x1="467" + y1="255" + x2="489" + y2="248" + onmouseout="hide_help_line('G_G0000101001',21,2)" + onmousemove="show_help_line('G_G0000101001',21,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L22" + x1="489" + y1="248" + x2="511" + y2="244" + onmouseout="hide_help_line('G_G0000101001',22,2)" + onmousemove="show_help_line('G_G0000101001',22,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L23" + x1="511" + y1="244" + x2="534" + y2="239" + onmouseout="hide_help_line('G_G0000101001',23,2)" + onmousemove="show_help_line('G_G0000101001',23,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L24" + x1="534" + y1="239" + x2="556" + y2="235" + onmouseout="hide_help_line('G_G0000101001',24,2)" + onmousemove="show_help_line('G_G0000101001',24,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L25" + x1="556" + y1="235" + x2="578" + y2="235" + onmouseout="hide_help_line('G_G0000101001',25,2)" + onmousemove="show_help_line('G_G0000101001',25,2)" /> + <line + id="G_G0000101001_courbes-ligne-C2-L26" + x1="578" + y1="235" + x2="600" + y2="228" + onmouseout="hide_help_line('G_G0000101001',26,2)" + onmousemove="show_help_line('G_G0000101001',26,2)" /> + <!--Segments colonne numéro 3--> + <line + id="G_G0000101001_courbes-ligne-C3-L2" + x1="46" + y1="394" + x2="68" + y2="387" + onmouseout="hide_help_line('G_G0000101001',2,3)" + onmousemove="show_help_line('G_G0000101001',2,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L3" + x1="68" + y1="387" + x2="90" + y2="381" + onmouseout="hide_help_line('G_G0000101001',3,3)" + onmousemove="show_help_line('G_G0000101001',3,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L4" + x1="90" + y1="381" + x2="112" + y2="374" + onmouseout="hide_help_line('G_G0000101001',4,3)" + onmousemove="show_help_line('G_G0000101001',4,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L5" + x1="112" + y1="374" + x2="135" + y2="365" + onmouseout="hide_help_line('G_G0000101001',5,3)" + onmousemove="show_help_line('G_G0000101001',5,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L6" + x1="135" + y1="365" + x2="157" + y2="347" + onmouseout="hide_help_line('G_G0000101001',6,3)" + onmousemove="show_help_line('G_G0000101001',6,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L7" + x1="157" + y1="347" + x2="179" + y2="345" + onmouseout="hide_help_line('G_G0000101001',7,3)" + onmousemove="show_help_line('G_G0000101001',7,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L8" + x1="179" + y1="345" + x2="201" + y2="338" + onmouseout="hide_help_line('G_G0000101001',8,3)" + onmousemove="show_help_line('G_G0000101001',8,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L9" + x1="201" + y1="338" + x2="223" + y2="322" + onmouseout="hide_help_line('G_G0000101001',9,3)" + onmousemove="show_help_line('G_G0000101001',9,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L10" + x1="223" + y1="322" + x2="245" + y2="381" + onmouseout="hide_help_line('G_G0000101001',10,3)" + onmousemove="show_help_line('G_G0000101001',10,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L11" + x1="245" + y1="381" + x2="268" + y2="378" + onmouseout="hide_help_line('G_G0000101001',11,3)" + onmousemove="show_help_line('G_G0000101001',11,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L12" + x1="268" + y1="378" + x2="290" + y2="329" + onmouseout="hide_help_line('G_G0000101001',12,3)" + onmousemove="show_help_line('G_G0000101001',12,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L13" + x1="290" + y1="329" + x2="312" + y2="320" + onmouseout="hide_help_line('G_G0000101001',13,3)" + onmousemove="show_help_line('G_G0000101001',13,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L14" + x1="312" + y1="320" + x2="334" + y2="293" + onmouseout="hide_help_line('G_G0000101001',14,3)" + onmousemove="show_help_line('G_G0000101001',14,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L15" + x1="334" + y1="293" + x2="356" + y2="266" + onmouseout="hide_help_line('G_G0000101001',15,3)" + onmousemove="show_help_line('G_G0000101001',15,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L16" + x1="356" + y1="266" + x2="378" + y2="244" + onmouseout="hide_help_line('G_G0000101001',16,3)" + onmousemove="show_help_line('G_G0000101001',16,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L17" + x1="378" + y1="244" + x2="401" + y2="224" + onmouseout="hide_help_line('G_G0000101001',17,3)" + onmousemove="show_help_line('G_G0000101001',17,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L18" + x1="401" + y1="224" + x2="423" + y2="212" + onmouseout="hide_help_line('G_G0000101001',18,3)" + onmousemove="show_help_line('G_G0000101001',18,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L19" + x1="423" + y1="212" + x2="445" + y2="204" + onmouseout="hide_help_line('G_G0000101001',19,3)" + onmousemove="show_help_line('G_G0000101001',19,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L20" + x1="445" + y1="204" + x2="467" + y2="190" + onmouseout="hide_help_line('G_G0000101001',20,3)" + onmousemove="show_help_line('G_G0000101001',20,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L21" + x1="467" + y1="190" + x2="489" + y2="179" + onmouseout="hide_help_line('G_G0000101001',21,3)" + onmousemove="show_help_line('G_G0000101001',21,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L22" + x1="489" + y1="179" + x2="511" + y2="172" + onmouseout="hide_help_line('G_G0000101001',22,3)" + onmousemove="show_help_line('G_G0000101001',22,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L23" + x1="511" + y1="172" + x2="534" + y2="165" + onmouseout="hide_help_line('G_G0000101001',23,3)" + onmousemove="show_help_line('G_G0000101001',23,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L24" + x1="534" + y1="165" + x2="556" + y2="161" + onmouseout="hide_help_line('G_G0000101001',24,3)" + onmousemove="show_help_line('G_G0000101001',24,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L25" + x1="556" + y1="161" + x2="578" + y2="161" + onmouseout="hide_help_line('G_G0000101001',25,3)" + onmousemove="show_help_line('G_G0000101001',25,3)" /> + <line + id="G_G0000101001_courbes-ligne-C3-L26" + x1="578" + y1="161" + x2="600" + y2="154" + onmouseout="hide_help_line('G_G0000101001',26,3)" + onmousemove="show_help_line('G_G0000101001',26,3)" /> + <!--Segments colonne numéro 4--> + <line + id="G_G0000101001_courbes-ligne-C4-L2" + x1="46" + y1="394" + x2="68" + y2="387" + onmouseout="hide_help_line('G_G0000101001',2,4)" + onmousemove="show_help_line('G_G0000101001',2,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L3" + x1="68" + y1="387" + x2="90" + y2="385" + onmouseout="hide_help_line('G_G0000101001',3,4)" + onmousemove="show_help_line('G_G0000101001',3,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L4" + x1="90" + y1="385" + x2="112" + y2="381" + onmouseout="hide_help_line('G_G0000101001',4,4)" + onmousemove="show_help_line('G_G0000101001',4,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L5" + x1="112" + y1="381" + x2="135" + y2="374" + onmouseout="hide_help_line('G_G0000101001',5,4)" + onmousemove="show_help_line('G_G0000101001',5,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L6" + x1="135" + y1="374" + x2="157" + y2="356" + onmouseout="hide_help_line('G_G0000101001',6,4)" + onmousemove="show_help_line('G_G0000101001',6,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L7" + x1="157" + y1="356" + x2="179" + y2="352" + onmouseout="hide_help_line('G_G0000101001',7,4)" + onmousemove="show_help_line('G_G0000101001',7,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L8" + x1="179" + y1="352" + x2="201" + y2="345" + onmouseout="hide_help_line('G_G0000101001',8,4)" + onmousemove="show_help_line('G_G0000101001',8,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L9" + x1="201" + y1="345" + x2="223" + y2="336" + onmouseout="hide_help_line('G_G0000101001',9,4)" + onmousemove="show_help_line('G_G0000101001',9,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L10" + x1="223" + y1="336" + x2="245" + y2="387" + onmouseout="hide_help_line('G_G0000101001',10,4)" + onmousemove="show_help_line('G_G0000101001',10,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L11" + x1="245" + y1="387" + x2="268" + y2="396" + onmouseout="hide_help_line('G_G0000101001',11,4)" + onmousemove="show_help_line('G_G0000101001',11,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L12" + x1="268" + y1="396" + x2="290" + y2="347" + onmouseout="hide_help_line('G_G0000101001',12,4)" + onmousemove="show_help_line('G_G0000101001',12,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L13" + x1="290" + y1="347" + x2="312" + y2="347" + onmouseout="hide_help_line('G_G0000101001',13,4)" + onmousemove="show_help_line('G_G0000101001',13,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L14" + x1="312" + y1="347" + x2="334" + y2="322" + onmouseout="hide_help_line('G_G0000101001',14,4)" + onmousemove="show_help_line('G_G0000101001',14,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L15" + x1="334" + y1="322" + x2="356" + y2="293" + onmouseout="hide_help_line('G_G0000101001',15,4)" + onmousemove="show_help_line('G_G0000101001',15,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L16" + x1="356" + y1="293" + x2="378" + y2="273" + onmouseout="hide_help_line('G_G0000101001',16,4)" + onmousemove="show_help_line('G_G0000101001',16,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L17" + x1="378" + y1="273" + x2="401" + y2="255" + onmouseout="hide_help_line('G_G0000101001',17,4)" + onmousemove="show_help_line('G_G0000101001',17,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L18" + x1="401" + y1="255" + x2="423" + y2="246" + onmouseout="hide_help_line('G_G0000101001',18,4)" + onmousemove="show_help_line('G_G0000101001',18,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L19" + x1="423" + y1="246" + x2="445" + y2="233" + onmouseout="hide_help_line('G_G0000101001',19,4)" + onmousemove="show_help_line('G_G0000101001',19,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L20" + x1="445" + y1="233" + x2="467" + y2="221" + onmouseout="hide_help_line('G_G0000101001',20,4)" + onmousemove="show_help_line('G_G0000101001',20,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L21" + x1="467" + y1="221" + x2="489" + y2="210" + onmouseout="hide_help_line('G_G0000101001',21,4)" + onmousemove="show_help_line('G_G0000101001',21,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L22" + x1="489" + y1="210" + x2="511" + y2="208" + onmouseout="hide_help_line('G_G0000101001',22,4)" + onmousemove="show_help_line('G_G0000101001',22,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L23" + x1="511" + y1="208" + x2="534" + y2="204" + onmouseout="hide_help_line('G_G0000101001',23,4)" + onmousemove="show_help_line('G_G0000101001',23,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L24" + x1="534" + y1="204" + x2="556" + y2="199" + onmouseout="hide_help_line('G_G0000101001',24,4)" + onmousemove="show_help_line('G_G0000101001',24,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L25" + x1="556" + y1="199" + x2="578" + y2="201" + onmouseout="hide_help_line('G_G0000101001',25,4)" + onmousemove="show_help_line('G_G0000101001',25,4)" /> + <line + id="G_G0000101001_courbes-ligne-C4-L26" + x1="578" + y1="201" + x2="600" + y2="192" + onmouseout="hide_help_line('G_G0000101001',26,4)" + onmousemove="show_help_line('G_G0000101001',26,4)" /> + </g> + <g + id="G_G0000101001_courbes-points" + style="stroke:none; fill:orange; fill-opacity:0; "> + <g + id="G_G0000101001_courbe-C1-points"> + <!--Points colonne numéro 1--> + <circle + id="G_G0000101001_point-C1-L1" + cx="46" + cy="394" + r="5" + onmouseout="hide_help_dot('G_G0000101001',1,1)" + onmousemove="show_help_dot('G_G0000101001',evt,1,1)" /> + <circle + id="G_G0000101001_point-C1-L2" + cx="68" + cy="387" + r="5" + onmouseout="hide_help_dot('G_G0000101001',2,1)" + onmousemove="show_help_dot('G_G0000101001',evt,2,1)" /> + <circle + id="G_G0000101001_point-C1-L3" + cx="90" + cy="385" + r="5" + onmouseout="hide_help_dot('G_G0000101001',3,1)" + onmousemove="show_help_dot('G_G0000101001',evt,3,1)" /> + <circle + id="G_G0000101001_point-C1-L4" + cx="112" + cy="381" + r="5" + onmouseout="hide_help_dot('G_G0000101001',4,1)" + onmousemove="show_help_dot('G_G0000101001',evt,4,1)" /> + <circle + id="G_G0000101001_point-C1-L5" + cx="135" + cy="372" + r="5" + onmouseout="hide_help_dot('G_G0000101001',5,1)" + onmousemove="show_help_dot('G_G0000101001',evt,5,1)" /> + <circle + id="G_G0000101001_point-C1-L6" + cx="157" + cy="356" + r="5" + onmouseout="hide_help_dot('G_G0000101001',6,1)" + onmousemove="show_help_dot('G_G0000101001',evt,6,1)" /> + <circle + id="G_G0000101001_point-C1-L7" + cx="179" + cy="352" + r="5" + onmouseout="hide_help_dot('G_G0000101001',7,1)" + onmousemove="show_help_dot('G_G0000101001',evt,7,1)" /> + <circle + id="G_G0000101001_point-C1-L8" + cx="201" + cy="347" + r="5" + onmouseout="hide_help_dot('G_G0000101001',8,1)" + onmousemove="show_help_dot('G_G0000101001',evt,8,1)" /> + <circle + id="G_G0000101001_point-C1-L9" + cx="223" + cy="334" + r="5" + onmouseout="hide_help_dot('G_G0000101001',9,1)" + onmousemove="show_help_dot('G_G0000101001',evt,9,1)" /> + <circle + id="G_G0000101001_point-C1-L10" + cx="245" + cy="378" + r="5" + onmouseout="hide_help_dot('G_G0000101001',10,1)" + onmousemove="show_help_dot('G_G0000101001',evt,10,1)" /> + <circle + id="G_G0000101001_point-C1-L11" + cx="268" + cy="381" + r="5" + onmouseout="hide_help_dot('G_G0000101001',11,1)" + onmousemove="show_help_dot('G_G0000101001',evt,11,1)" /> + <circle + id="G_G0000101001_point-C1-L12" + cx="290" + cy="336" + r="5" + onmouseout="hide_help_dot('G_G0000101001',12,1)" + onmousemove="show_help_dot('G_G0000101001',evt,12,1)" /> + <circle + id="G_G0000101001_point-C1-L13" + cx="312" + cy="329" + r="5" + onmouseout="hide_help_dot('G_G0000101001',13,1)" + onmousemove="show_help_dot('G_G0000101001',evt,13,1)" /> + <circle + id="G_G0000101001_point-C1-L14" + cx="334" + cy="309" + r="5" + onmouseout="hide_help_dot('G_G0000101001',14,1)" + onmousemove="show_help_dot('G_G0000101001',evt,14,1)" /> + <circle + id="G_G0000101001_point-C1-L15" + cx="356" + cy="284" + r="5" + onmouseout="hide_help_dot('G_G0000101001',15,1)" + onmousemove="show_help_dot('G_G0000101001',evt,15,1)" /> + <circle + id="G_G0000101001_point-C1-L16" + cx="378" + cy="266" + r="5" + onmouseout="hide_help_dot('G_G0000101001',16,1)" + onmousemove="show_help_dot('G_G0000101001',evt,16,1)" /> + <circle + id="G_G0000101001_point-C1-L17" + cx="401" + cy="248" + r="5" + onmouseout="hide_help_dot('G_G0000101001',17,1)" + onmousemove="show_help_dot('G_G0000101001',evt,17,1)" /> + <circle + id="G_G0000101001_point-C1-L18" + cx="423" + cy="239" + r="5" + onmouseout="hide_help_dot('G_G0000101001',18,1)" + onmousemove="show_help_dot('G_G0000101001',evt,18,1)" /> + <circle + id="G_G0000101001_point-C1-L19" + cx="445" + cy="230" + r="5" + onmouseout="hide_help_dot('G_G0000101001',19,1)" + onmousemove="show_help_dot('G_G0000101001',evt,19,1)" /> + <circle + id="G_G0000101001_point-C1-L20" + cx="467" + cy="221" + r="5" + onmouseout="hide_help_dot('G_G0000101001',20,1)" + onmousemove="show_help_dot('G_G0000101001',evt,20,1)" /> + <circle + id="G_G0000101001_point-C1-L21" + cx="489" + cy="210" + r="5" + onmouseout="hide_help_dot('G_G0000101001',21,1)" + onmousemove="show_help_dot('G_G0000101001',evt,21,1)" /> + <circle + id="G_G0000101001_point-C1-L22" + cx="511" + cy="201" + r="5" + onmouseout="hide_help_dot('G_G0000101001',22,1)" + onmousemove="show_help_dot('G_G0000101001',evt,22,1)" /> + <circle + id="G_G0000101001_point-C1-L23" + cx="534" + cy="195" + r="5" + onmouseout="hide_help_dot('G_G0000101001',23,1)" + onmousemove="show_help_dot('G_G0000101001',evt,23,1)" /> + <circle + id="G_G0000101001_point-C1-L24" + cx="556" + cy="192" + r="5" + onmouseout="hide_help_dot('G_G0000101001',24,1)" + onmousemove="show_help_dot('G_G0000101001',evt,24,1)" /> + <circle + id="G_G0000101001_point-C1-L25" + cx="578" + cy="188" + r="5" + onmouseout="hide_help_dot('G_G0000101001',25,1)" + onmousemove="show_help_dot('G_G0000101001',evt,25,1)" /> + <circle + id="G_G0000101001_point-C1-L26" + cx="600" + cy="181" + r="5" + onmouseout="hide_help_dot('G_G0000101001',26,1)" + onmousemove="show_help_dot('G_G0000101001',evt,26,1)" /> + </g> + <g + id="G_G0000101001_courbe-C2-points"> + <!--Points colonne numéro 2--> + <circle + id="G_G0000101001_point-C2-L1" + cx="46" + cy="394" + r="5" + onmouseout="hide_help_dot('G_G0000101001',1,2)" + onmousemove="show_help_dot('G_G0000101001',evt,1,2)" /> + <circle + id="G_G0000101001_point-C2-L2" + cx="68" + cy="390" + r="5" + onmouseout="hide_help_dot('G_G0000101001',2,2)" + onmousemove="show_help_dot('G_G0000101001',evt,2,2)" /> + <circle + id="G_G0000101001_point-C2-L3" + cx="90" + cy="390" + r="5" + onmouseout="hide_help_dot('G_G0000101001',3,2)" + onmousemove="show_help_dot('G_G0000101001',evt,3,2)" /> + <circle + id="G_G0000101001_point-C2-L4" + cx="112" + cy="387" + r="5" + onmouseout="hide_help_dot('G_G0000101001',4,2)" + onmousemove="show_help_dot('G_G0000101001',evt,4,2)" /> + <circle + id="G_G0000101001_point-C2-L5" + cx="135" + cy="381" + r="5" + onmouseout="hide_help_dot('G_G0000101001',5,2)" + onmousemove="show_help_dot('G_G0000101001',evt,5,2)" /> + <circle + id="G_G0000101001_point-C2-L6" + cx="157" + cy="365" + r="5" + onmouseout="hide_help_dot('G_G0000101001',6,2)" + onmousemove="show_help_dot('G_G0000101001',evt,6,2)" /> + <circle + id="G_G0000101001_point-C2-L7" + cx="179" + cy="363" + r="5" + onmouseout="hide_help_dot('G_G0000101001',7,2)" + onmousemove="show_help_dot('G_G0000101001',evt,7,2)" /> + <circle + id="G_G0000101001_point-C2-L8" + cx="201" + cy="358" + r="5" + onmouseout="hide_help_dot('G_G0000101001',8,2)" + onmousemove="show_help_dot('G_G0000101001',evt,8,2)" /> + <circle + id="G_G0000101001_point-C2-L9" + cx="223" + cy="349" + r="5" + onmouseout="hide_help_dot('G_G0000101001',9,2)" + onmousemove="show_help_dot('G_G0000101001',evt,9,2)" /> + <circle + id="G_G0000101001_point-C2-L10" + cx="245" + cy="387" + r="5" -e ... etc. - the rest is truncated
