summaryrefslogtreecommitdiff
path: root/starmath/source
AgeCommit message (Collapse)Author
2021-09-28gives names to all the Idles and TasksNoel Grandin
enforce it by making the constructor parameter non-default. Change-Id: I321543e4dcf15ea0a43ad8cce91d2f8dc22df6ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122766 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-28vcl: rename OutDevState to StackChris Sherlock
I have moved the header file to include/vcl/rendercontext as this will eventually be part of the RenderContext split from OutputDevice. State and associated enums have also been moved to the vcl namespace. I have also moved ComplexTextLayoutFlags into the vcl::text namespace. Change-Id: I0abbf560e75b45a272854b267e948c240cd69091 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121524 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-09-20clean up ambiguous confusing rectangle APIs like IsInside()Luboš Luňák
Reading 'rectA.IsInside( rectB )' kind of suggests that the code checks whether 'rectA is inside rectB', but it's actually the other way around. Rename IsInside() -> Contains(), IsOver() -> Overlaps(), which should make it clear which way the logic goes. Change-Id: I9347450fe7dc34c96df6d636a4e3e660de1801ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122271 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins
2021-09-20Add sal/config.h in preparation for patchChris Sherlock
The convention is that we need to add sal/config.h to the start of files. I have a patch queued to be able to create a FontMetric from a PhysicalFontFace. Submitting this patch so I can hopefully one day land this patch. Change-Id: I5817acd6e194da576f2c8a13539d38954a4f4e15 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122172 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-19Some more string_view use, add o3tl::starts/ends_withStephan Bergmann
...until those C++20 string_view member functions are generally available (the fallback implementations are taken directly from the C++20 spec). (In ParseMathMLAttributeLengthValue in starmath/source/mathml/mathmlattr.cxx, returning nIdx + 2 instead of nIdx + 1 for the single-character u'%' case was presumably a typo, but which was harmless as the return value was only checked for <= 0, and has now been turned into a bool.) Change-Id: Ib441e474c515f016a4d81bb39f7821dfe0356499 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122322 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-18vcl: create FontMetric from PhysicalFontFaceChris Sherlock
A FontMetric can be created from a PhysicalFontFace, so setup a constructor that takes a PhysicalFontFace object to instantiate the FontMetric. The OutputDevice functions GetDevFont() and GetDevFontCount() don't necessarily make much sense, so have changed GetDevFont() to GetFontMetricFromCollection() and GetDevFontCount() to GetFontFaceCollectionCount(). Change-Id: I1577679b949a49a7cf1248838786d0f5e84a5245 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121796 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-17remove GetCharClassPtr from SvtSysLocaleNoel Grandin
we already have GetCharClass and we never return a nullptr Change-Id: I3cb79bc60be614c0474ecfdaad17991f2ecb6368 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122208 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-16Increase accuracy of ParseMathMLUnsignedNumber Fraction resultStephan Bergmann
The new test from d5e55d204b71710eb5eb5d2c683dd6698626df3c "tdf#144319: sw_odfexport: Add unittest" started to cause UBSan failure during CppunitTest_sw_odfexport (<https://ci.libreoffice.org/job/lo_ubsan/2136/>), > /workdir/UnpackedTarball/boost/boost/rational.hpp:605:22: runtime error: signed integer overflow: 1073741824 * 2 cannot be represented in type 'int' > #0 0x2b450983594f in boost::rational<int>::operator/=(boost::rational<int> const&) /workdir/UnpackedTarball/boost/boost/rational.hpp:605:22 > #1 0x2b450982e216 in Fraction::operator/=(Fraction const&) /tools/source/generic/fract.cxx:224:7 > #2 0x2b45098312d3 in operator/(Fraction const&, Fraction const&) /tools/source/generic/fract.cxx:320:10 > #3 0x2b46066963d5 in (anonymous namespace)::lcl_CountBlanks(MathMLAttributeLengthValue const&, int*, int*) /starmath/source/mathml/mathmlimport.cxx:1497:30 > #4 0x2b46066943eb in (anonymous namespace)::SmXMLSpaceContext_Impl::startFastElement(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) /starmath/source/mathml/mathmlimport.cxx:1526:25 [...] Formula-14/content.xml in sw/qa/extras/odfexport/data/tdf144319.odt contains width="0.444em", which resulted in the inaccurate Fraction 476741369/1073741824 since 67d83e40e2c4f3862c50e6abeabfc24a75119fc8 "speedup rational_FromDouble" (which computes dVal=4.76741e+08 and nDen=1073741824; where before that speedup it computed dVal=4.44e+08 and nDen=1000000000, which would have resulted in the accurate Fraction 111/250). The excessively large denominator (1073741824 = std::numeric_limits<sal_Int32>::max()/2 + 1) then caused overflow later on, as shown above. Change-Id: I221549528e4fa155e10697d218ec76bf678e8b2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122186 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 4Mike Kaganski
- Change implementations of getSomething to use getSomethingImpl Or where that's impossible, use getSomething_cast to unify this and reduce number of places where we reinterpret_cast. All static methods getting tunnel ids were renamed to getUnoTunnelId, to comply with the convention used in <comphelper/servicehelper.hxx>. TODO (in separate commits): - Revise uses of getSomething to use getFromUnoTunnel Change-Id: Ifde9e214b52e5df678de71fcc32d2199c82e85cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122100 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 1Mike Kaganski
The header got some changes: 1. Move UnoTunnelIdInit and isUnoTunnelId into 'comphelper' namespace 2. Rename UnoTunnelIdInit to UnoIdInit, as a precondition to replace of uses of OImplementationId with it, including in XTypeProvider 3. Introduce convenience functions 'getSomething_cast' to cast between sal_Int64 and object pointers uniformly. 4. Rename getUnoTunnelImplementation to getFromUnoTunnel, both to make it a bit shorter, and to reflect its function better. Templatize it to take also css::uno::Any for convenience. 5. Introduce getSomethingImpl, inspired by sw::UnoTunnelImpl; allow it handle cases both with and without fallback to parent. 6. Adjust UNO3_GETIMPLEMENTATION_* macros TODO (in separate commits): - Drop sw::UnoTunnelImpl and sw::UnoTunnelGetImplementation - Replace all uses of OImplementationId in core with UnoIdInit - Deprecate OImplementationId in <cppuhelper/typeprovider.hxx> - Change implementations of getSomething to use getSomethingImpl - Revise uses of getSomething to use getFromUnoTunnel Change-Id: If4a3cb024130f1f552f988f0479589da1cd066e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122022 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-07Avoid repeating the return type from the declarationMiklos Vajna
Change-Id: I0dce02d10b8c74e80f5672e2dd580b6837ba3291 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121732 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-09-04use std::vector for fetching DX array dataNoel Grandin
because I'm trying to track down a related heap corruption, and that is much easier if the access to the array is checked by the std::vector debug runtime Change-Id: Ia665f5cebb7f14d88942e88b4b400ad3c28ef5d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121527 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-02rename UpdateMode -> UpdateLayout in editeng classNoel Grandin
... because "update" is such a generic term I keep forgetting what we are turning on and off Also return the previous value from SetUpdateLayout to make the save/restore code more compact. Change-Id: Iae1764c837a92e58c9b17521f130e8fc80311d22 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121479 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-02clang-tidy:readability-redundant-member-initNoel Grandin
Change-Id: I39b9ac81d65f4a269293824642c1b2ec593c0584 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121490 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-31ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I9867737be62871aaa80a9ce0b51318afa62e8a67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121334 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-30ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I3ced8d55a7c725e8efb80a49b4fa7e4c84d1be5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121214 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-29ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I35210b36a927b96f29d0a07a3cf63e226e4c4453 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121191 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-25ofz: MemorySanitizer: use-of-uninitialized-valueCaolán McNamara
Change-Id: I15d68391e20fba3a8ba46621aac0c831cd0900b0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120964 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-20New loplugin:unusedcapturedefaultStephan Bergmann
In sc/qa/unit/ucalc_formula.cxx, dropping the capture-default from the lExpectedinF lambda revealed that MSVC in C++17 mode (i.e., when building without --with-latest-c++) requires ROW_RANGE (a local const int variable from the enclosing TestFormula::testTdf97369) to be captured, even though all uses of that variable within the lambda body are constant expressions. That is still true at least for the latest Visual Studio 2019 version 16.11.1. (This is not an issue for the lExpectedinH and lExpectedinI lambdas a few lines further down, as they, in addition to using that ROW_RANGE, also use the local const double variables SHIFT1 and SHIFT2, whose uses are not constant expressions, so they are implicitly captured and loplugin:unusedcapturedefault does not suggest dropping those lambdas' capture-defaults in the first place.) Change-Id: Iee7efb485187cbe8eba6a2d470afca4993eb1816 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120693 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-08-20Fine tune new sm import / exportdante
Change-Id: I7e7ec875b3d0f8f1d62f22270a306bc2f57421ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120768 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-20Improve code reability with different function namesdante
Change-Id: I0799cb26642197813b054c1bde39cf1ced7519a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120767 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-20Fix typo in new SmMlElement exporterdante
Change-Id: Ia1e7963dbb2f69a8b8f43903882521da94eaffe5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120766 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-20Add a SmMlElement tree to the sm documentdante
Change-Id: Ide764b512004198277baed60ac4e1a5ef0d1c2dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120765 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-20Add security handlers to the iteratorsdante
Change-Id: I0cc8dd92c7ae870e58f0f9118df76569d6deecd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120764 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-19cid#1490357 Dereference after null checkCaolán McNamara
Change-Id: I107dc27a4bec1794293192dea986670220989ec6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120685 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-19cid#1490354/1490355: Logically dead codeJulien Nabet
Change-Id: I2f20f60d01e5b5969a51041726b13cb2e1a2d0af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120682 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2021-08-18Fix typoAndrea Gelmini
Change-Id: I2e1bc1530bd0a8cf6fef93dcaf8092458da79231 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120598 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-08-18Don't use std::ostream operator <<(char16_t const *) deleted in C++20Stephan Bergmann
similar to 4af56d8189012f96d0471d7f50a3e44636666516 "Don't use std::ostream operator <<(char16_t const *) deleted in C++20" Change-Id: Ica7b02c14b66fea64f630bed4943c04ae999485e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120662 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-08-18undo changes to TextAlignCaolán McNamara
revert commit 8689bd5490b473a7ffb149bbe5f7f0683f679c72 Author: Caolán McNamara <caolanm@redhat.com> Date: Thu Jul 29 20:49:29 2021 +0100 convert TextAlign to scoped enum lets leave this as it always was Change-Id: Id4d2a5644974cdd2b0ed6d361d5c52629674d057 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120626 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-17Removed duplicated includeAndrea Gelmini
Change-Id: I4103d44e0535b39555f2f62e36ce6109e39cabfb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120595 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2021-08-17Improvement to ml element exporterdante
Change-Id: I12303add11406c0ab65ca02084945989f41380d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120549 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-17Fix typoAndrea Gelmini
Change-Id: I28ef5ac72fb06406d049e1076f48dcd2d06a42af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120600 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-08-17Rename SaturatingSet[XY] to SaturatingSetPos[XY]Mike Kaganski
... to align with commit 4639ca2f878b04ffc50d9c20d92e90464d2d67a7 Change-Id: Ibec7a451a61ca7f2d141a9624369a6f9656ed468 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120562 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-17Add import for new starmath mathml elementsdante
Change-Id: Ie867cda8780747e715d642a9b007faafb33b4d99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120474 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-16Fix typosAndrea Gelmini
Change-Id: I2a0a3d8eff5e6f1d456128f71519d132b8839e28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120481 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-08-15Add the possibility to check if a mathml attribute is manually setdante
Change-Id: I9c5eaee8e2cce47d9286306031e807ca2c0eed57 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120473 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-15Add the Form attribute to modante
Change-Id: I4f64460e15c707fa8ecdcfdfbea460b2f1410947 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120469 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-13Include the starmath version inside the configurationdante
Change-Id: I4492fad6eb498e0c8c9a53b2096f538f2916d843 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120271 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-13Export Math ML from new mathml nodesdante
Review tip: thanks for your help Code heavily based on: mathmlexport.cxx mathmlexport.hxx https://opengrok.libreoffice.org/xref/core/starmath/source/mathml/mathmlexport.cxx?r=e271fce8 https://opengrok.libreoffice.org/xref/core/starmath/inc/mathml/mathmlexport.hxx?r=10d29c39 Change-Id: I798d0e207b844240f4b25720ee37c394eb4c2e65 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120188 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-09Add an iterator for the new starmath matml elementsdante
Change-Id: I7b57951795e8acd704f418d10e5fd0aded3f2b34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120187 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-09Corrections to starmath mathml definitionsdante
Change-Id: I6f545ced857190ed4b0f4090c0d47611ff475b57 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120183 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-05Pass context and resource string down to boost::locale separatelyNoel Grandin
because this is often on a hot path, and we can avoid the splitting and joining of strings like this. Change-Id: Ia36047209368ca53431178c2e8723a18cfe8260a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119220 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-02convert #defines to OUStringLiteralNoel Grandin
mostly by doing $ git grep -l '#define.*\"' -- *.cxx | xargs perl -pi -e 's/^#define\s+(\w+)\s+(\".*\")/constexpr OUStringLiteral \1 = u\2;/g' Change-Id: Idface893449b0ef2a3c5254865a300585d752fbb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119669 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-30convert TextAlign to scoped enumCaolán McNamara
Change-Id: Id2c466eacb44f0ea6adba75a0ac0be8be8e7ed4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119682 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-24use officecfg to retrieve PrettyPrintingNoel Grandin
Change-Id: Ia815acdb8050316293e23801d3ed5bfbeb3ab386 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119417 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-21can pass SfxItemSet around by value in SfxShellNoel Grandin
Change-Id: I80ee25c56da437d778e11f2dab3d07845ebd9597 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119274 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-20Use some forward declarations in <editeng/editobj.hxx>Mike Kaganski
Change-Id: Ic6c36d4e0da53324ada9ff8a91e715d52ac24394 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119292 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-07-19Move svl::Items to include/svl/whichranges.hxx, and unify its usageMike Kaganski
... in WhichRangesContainer and SfxItemSet ctors. Now it's not needed to explicitly use 'value' in WhichRangesContainer's ctor, or create an instance for use in SfxItemSet ctor (svl::Items is already defined as a template value of corresponding type). Instead of WhichRangesContainer Foo(svl::Items<1, 2>::value); SfxItemSet Bar(rItemPool, svl::Items<1, 2>{}); now use: WhichRangesContainer Foo(svl::Items<1, 2>); SfxItemSet Bar(rItemPool, svl::Items<1, 2>); Change-Id: I4681d952b6442732025e5a26768098878907a238 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119157 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-18tdf#130428 remove unnecessary usage of SfxItemState::UNKNOWNArmin Le Grand (Allotropia)
Rename ::StateChanged methods using SfxItemState to allow better analysis of SfxItemState/SfxPoolItem usage(s), discussion see tdf#130428 comment 30 Change-Id: I736be0160ad7a9b7882c1c8a4cc05d9396ee3305 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117366 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2021-06-17use string_view in the Translate APINoel Grandin
Change-Id: I0bb0ea9d39ed623928060ffd3f2e2bc36ba33209 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117272 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>