path: root/slideshow/source
AgeCommit message (Collapse)AuthorFilesLines
2020-08-22add bounciness velocity and density options to physics animationsSarper Akdemir6-12/+115
Adding new xml options to specify the starting velocity, bounciness, and density of the rigid body that physics animation control. Change-Id: Ifaba785e82c8ee17be00711a3e7a75257e7704ae Reviewed-on: Tested-by: Jenkins Reviewed-by: Thorsten Behrens <>
2020-08-21make physics animations handle sequential animations correctlySarper Akdemir3-43/+175
fixes a bug where if there is a sequence of animations between two physics animations that change the position, rotation or visibility of a shape - changes are not picked up by the latter physics animation. Change-Id: Ie8bb8b32588f4c7bf16317b5229adc5b0334d192 Reviewed-on: Reviewed-by: Thorsten Behrens <> Tested-by: Jenkins
2020-08-21make physics animation effects always processed lastSarper Akdemir6-4/+48
Makes it possible to add activities that will be processed last in the queue. Makes physics animation effects queued this way. And fixes the bug that makes physics animation effects appear out of sync for a frame with the shapes that other in parallel animation effects control. Change-Id: I92d436aced6ef3ee2c8b0bf0167c1f7e642ba3b5 Reviewed-on: Reviewed-by: Thorsten Behrens <> Tested-by: Jenkins
2020-08-21box2dtools renaming some for claritySarper Akdemir3-25/+26
Change-Id: Idd872213ee3140e82fbd6e8e8bd1ebff78dfdc18 Reviewed-on: Tested-by: Jenkins Reviewed-by: Thorsten Behrens <>
2020-08-21Fix typo in codeAndrea Gelmini1-2/+2
Change-Id: I65d54b3822177916850d296dcff1eb9baaebc964 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2020-08-20add support for complex shapes in physics animation effectsSarper Akdemir2-18/+198
Makes it possible to represent complex shapes of LibreOffice in physics animation effects by closely approximating their geometry. Therefore enables more convincing animation effects. Change-Id: I807bbde92c143b8c96792b3d8bf9603a31216486 Reviewed-on: Tested-by: Jenkins Reviewed-by: Thorsten Behrens <>
2020-08-17fix box2dtools build error for non debug buildsSarper Akdemir3-23/+21
Removed the asserts and moved the functions out of the box2DWorld class. Change-Id: Ifa58bceb2c64c1012e5d0e65bc12646312ab1c16 Reviewed-on: Tested-by: Jenkins Reviewed-by: Thorsten Behrens <>
2020-08-09make physics based animation effects part of the animation engineSarper Akdemir17-83/+538
Wiring up and creating required classes for physics based animation effects to be part of the animation engine. Creating a new animation node AnimationPhysicsNode for physics based animation effects and PhysicsAnimation class that inherits the NumberAnimation in the animation factory. Change-Id: I1f125df5324673e9937b8164c0fc267c9683afa0 Reviewed-on: Tested-by: Jenkins Reviewed-by: Thorsten Behrens <>
2020-08-08Typo bSlideBackgoundPaintedJulien Nabet3-5/+5
Change-Id: Ice11d37e9832b5841f36e8873f4d11e9c0d6b3c3 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2020-08-05box2d tools: initial work for physics based animation effectsSarper Akdemir2-0/+782
Two new classes for managing box2d bodies(b2Body) and box2d worlds(b2World) ::box2d::utils::Box2DBody : Manages box2d bodies (b2Body) ::box2d::utils::Box2DWorld : Manages box2d world (b2World) Change-Id: Id02fefe937347029daddde043da2b8e8dba3acaf Reviewed-on: Tested-by: Jenkins Reviewed-by: Thorsten Behrens <>
2020-07-21Deprecated std::result_of has been removed from C++20Stephan Bergmann2-3/+3
...and is no longer provided at least by VS 2019 16.6.4 when using --with-latest-c++ Change-Id: Iac68bd4eb74a1f805d30cca49da59f35d8af4240 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-07-19compact namespace: slideshowNoel Grandin136-535/+230
Change-Id: I8ff0ddc85aa75c25b7881e4696043031ad8d9ce3 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-07-16slideshow: create instances with uno constructorsNoel Grandin3-33/+52
See tdf#74608 for motivation. Change-Id: I0b0a74ec8133de55664e471fcf13d7c66f882b12 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-07-02Upcoming improved loplugin:staticanonymous -> redundantstatic: slideshowStephan Bergmann1-1/+1
Change-Id: If1edbfd2da7082cb5c03dda8c3c1a7af6de6da53 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-07-01Fix typosAndrea Gelmini1-1/+1
Change-Id: I4f1c0d90fcb7726ceadd72c9cb9f96a57cade67a Reviewed-on: Tested-by: Julien Nabet <> Reviewed-by: Julien Nabet <>
2020-06-30Add Shape mbIsForeground flag and getters and setters for itSarper Akdemir4-1/+32
mbIsForeground is a flag that is set false if a shape is known to not belong to the foreground. It is set to false while shapes are being imported and the shape belongs to the master slide or is a group shape, right now. Change-Id: Id9738fc943f32a1e1a6e1888d179e69fd60bd022 Reviewed-on: Tested-by: Jenkins Reviewed-by: Thorsten Behrens <>
2020-06-30adding XShapeToShapeMapSharedPtr getter to ShapeManagerSarper Akdemir6-16/+50
Refactoring XShapeHash in layermanager as XShapeToShapeMap and XShapeHash in targetpropertiescreator as XShapeToNamedValuesMap. This refactoring describes what the types are more clearly and stops violating one define rule in the desired implementation. And adding getter getXShapeToShapeMap to ShapeManager to enable Animation::start() to access Shapes and XShapes of the current slide. Change-Id: I78d510ae43888fd6cf0f037e224b24f91b263b00 Reviewed-on: Tested-by: Jenkins Reviewed-by: Thorsten Behrens <>
2020-06-24use more std::container::insert instead of std::copyNoel Grandin1-2/+1
which is both more compact code, and more efficient, since the insert method can do smarter resizing Change-Id: I17f226660f87cdf002edccc29b4af8fd59a25f91 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-06-03loplugin:simplifypointertobool improveNoel Grandin2-5/+3
to look for the x.get() != null pattern, which can be simplified to x I'll do the x.get() == nullptr pattern in a separate patch, to reduce the chances of a mistake Change-Id: I45e0d178e75359857cdf50d712039cb526016555 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-28Make loplugin:simplifypointertobool handle parenthesized expressionsStephan Bergmann2-3/+3 discussed as an open TODO in the commit message of fe6cce01c88d045a1fcf09acf049c34c22299b02 "Fix loplugin:simplifypointertobool for libstdc++ std::shared_ptr". The necessary changes across the code base have been done fully automatically with the rewriting plugin on Linux. (All those changes apparently involve uses of macro arguments wrapped in parentheses in the macro body, but always in conditionally-converted-to-bool contexts. In other contexts, such automatic rewriting would add the "bool" to the macro body, which would be wrong in general, but we apparently get away with that sloppy coding for now.) The parenExprs_ stack that fe6cce01c88d045a1fcf09acf049c34c22299b02 had introduced to treat such (then-undetected, it had turned out) parenthesized cases now turns out to not be needed after all. Change-Id: I2021f61c2e2805be7e18b38edf8744d186cac3cb Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-05-26Fix loplugin:simplifypointertobool for libstdc++ std::shared_ptrStephan Bergmann3-6/+6
...where the get member function is defined on a std::__shared_ptr base class, so loplugin:simplifypointertobool used to miss those until now. (While e.g. using libc++ on macOS found those cases.) 366d08f2f6d4de922f6099c62bb81b49d89e0a68 "new loplugin:simplifypointertobool" was mistaken in breaking isSmartPointerType(const clang::Type* t) out of isSmartPointerType(const Expr* e); c874294ad9fb178df47c66875bfbdec466e39763 "Fix detection of std::unique_ptr/shared_ptr in loplugin:redundantpointerops" had introduced that indivisible two-step algorithm on purpose. The amount of additional hits (on Linux) apparently asked for turning loplugin:simplifypointertobool into a rewriting plugin. Which in turn showed that the naive adivce to just "drop the get()" is not sufficient in places that are not contextually converted to bool, as those places need to be wrapped in a bool(...) functional cast now. If the expression was already wrapped in parentheses, those could be reused as part of the functional cast, but implementing that showed that such cases are not yet found at all by the existing loplugin:simplifypointertobool. Lets leave that TODO for another commit. Besides the changes to compilerplugins/ itself, this change has been generated fully automatically with the rewriting plugin on Linux. Change-Id: I83107d6f634fc9ac232986f49044d7017df83e2a Reviewed-on: Reviewed-by: Noel Grandin <> Reviewed-by: Stephan Bergmann <> Tested-by: Jenkins
2020-05-25fix an incorrectly removed lineLuboš Luňák1-0/+2
The change in cfaf93d2b3efdbbe was supposed to just remove the call, not the whole variable assignment. Change-Id: Id104035a430d3c3f7f462bd115a023f3c541aeac Reviewed-on: Tested-by: Jenkins Reviewed-by: Luboš Luňák <>
2020-05-22remove unnecessary polypolygon subdivideLuboš Luňák3-15/+0
As the comment already says, it's not necessary. And it is partially responsible for tdf#133016 by splitting an area into smaller parts, which then do not line up completely when AA-ed. Change-Id: If35e2118a0cd9c9b315b9666165c51659a9434e7 Reviewed-on: Tested-by: Jenkins Reviewed-by: Luboš Luňák <>
2020-05-10new loplugin:simplifypointertoboolNoel Grandin2-4/+4
Change-Id: Iff68e8f379614a6ab6a6e0d1bad18e70bc76d76a Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-10compact namespace in slideshowNoel Grandin21-89/+58
Change-Id: Ic61e68312314cdfb30f89cafe9255ee8f0b0a081 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-08improve loplugin:referencecastingNoel Grandin1-1/+1
to catch a few more cases Change-Id: I0323fba51bb2b4ba255e1db5aa0d890c5c6a2e1b Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-05-08implement PowerPoint 'flash' slide transition (API CHANGE)Luboš Luňák4-13/+25
It's like 'fade', but using white instead of black. It's a separate type in the pptx file (although I actually cannot find it in the spec OOXML, but PowerPoint 2013 generates it). The API change in XTransitionFactory should be fine, I doubt there's anything external using it. Change-Id: I3479840f265ed8227b3b8301ecff56a63d57f493 Reviewed-on: Tested-by: Luboš Luňák <> Reviewed-by: Luboš Luňák <>
2020-04-30Fix typosAndrea Gelmini1-1/+1
Change-Id: I380b85646a62c4eafa40fdb5257060fac040feb6 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2020-04-28loplugin:makeshared in slideshowNoel Grandin4-35/+27
Change-Id: Ia8991a50afe1889a29456bac8f61c47ca969d23b Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-04-27Make upcasting css::uno::Reference ctor require complete typesStephan Bergmann1-0/+1
The main reason for the "home-grown" UpCast introduced with 904b3d1fceee5827076758ed2a81f80cb73493ca "Up-cast conversion constructor for css::uno::Reference" in 2013 was probably that we could not yet rely on C++11 std::is_base_of back then. A (welcome) side effect was that the derived class could be incomplete. However, specializations of UpCast relying on whether or not T2 is incomplete are obviously an ODR violation if the type is incomplete in some TUs and complete (and derived from T1) in others. And even if UpCast had internal linkage, it would still be brittle that its behavior depends on the completeness of T2 at the point of the template's instantiation, and not necessarily at the point of use. That means we should better base that ctor on std::is_base_of (which we can do now since 39a1edd6fec902ef378acce8af42c4d7fba280d0 "Make css::uno::Reference upcast ctor LIBO_INTERNAL_ONLY"), which causes a compilation error at least on Clang and GCC if the completeness requirements are not met. This change fixes all the cases where types need to be complete now, plus any resulting loplugin:referencecasting warnings ("the source reference is already a subtype of the destination reference"). Change-Id: Ieb9e3552e90adbf2c5a5af933dcb872e20661a2f Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-04-25tdf#129898 Use layer DrawnInSlideshow in edit modeRegina Henschel1-10/+17
If 'Mouse pointer as pen' is set in slideshow settings, painting in slideshow becomes persistent. A layer DrawnInSlideshow is created for that purpose during slideshow. But that layer was not known to the view from where the slideshow was started. Generating a layer had been done regardless whether such layer already exists or not. That had produced several layers with identical name. That may not happen, because layers are identified by name. Change-Id: I2ba9bad5babe5a1bba3d1fc69d028d9037d2bd47 Reviewed-on: Tested-by: Jenkins Reviewed-by: Regina Henschel <>
2020-04-22tdf#42949 Simplify use of rtl::math::approxEqual in include/basegfx/Gabor Kelemen1-0/+1
Turns out we can save about 500Mb of preprocessor input if we use rtl_math_approxEqual from rtl/math.h instead of its C++ wrapper rtl::math::approxEqual from rtl/math.hxx and manage the fallout accordingly. Before: bin/includebloat.awk | head sum total bytes included (excluding system headers): 19017296671 After: $ bin/includebloat.awk | head sum total bytes included (excluding system headers): 18535432672 Change-Id: I1691171f3a309405a7099882ad9989d147f59118 Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>
2020-04-19loplugin:buriedassign in variousNoel Grandin1-8/+13
Change-Id: Ib79cbc89f2f89ff48ea8b59bd12373a10b9dcd62 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-03-30tdf#131254 Follow-up Prevent extra eventqueue empty call.Gülşah Köse1-1/+0
When two advance timing set slides in a row, there is another extra forceEmpty call that disables timing setting. Follow up commit 80f386f787ad59936ead2022e6d932a6d441c6e9 Change-Id: I8e70ebf57328b51eab2baca9728a0f8e0561120c Reviewed-on: Tested-by: Jenkins Reviewed-by: Andras Timar <>
2020-03-26tdf#131254 Prevent extra eventqueue empty call.Gülşah Köse1-1/+1
That call disables advance timing setting when we back to previous slide. Its comment line says "Process initial events and skip any animations that are started when the slide is shown" but it can still skip any animations. It seems that is an unnneeded call here. Change-Id: Iec23409da8285f5b7a8bff3d9c4f507a997ae885 Reviewed-on: Tested-by: Jenkins Reviewed-by: Gülşah Köse <>
2020-03-12Revert "loplugin:constfields in slideshow"Noel Grandin36-86/+86
This reverts commit 56940b766e5d52cb1c17b4250e4c7e2c375b7b65. Change-Id: I5b585ff44870193becc0770e6504ac645b254ef3 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-03-12tdf#130977 replace `rtl::math::isFinite` with `std::isfinite`.Yukio Siraichi1-11/+11
- make all calls look like `std::isfinite`. - change the comments referring `rtl::math::isFinite`. Change-Id: I0cde9ceb9f20150467b454cddde5e62003cfde1a Reviewed-on: Tested-by: Jenkins Reviewed-by: Mike Kaganski <>
2020-02-28upgrade to latest glmCaolán McNamara2-3/+3
This reverts commit 46e53c0360a38f620cf8c86fd0a3dc46c8238e0e. Reason for revert: intermittent failure was due to a missing fix in etonyek Change-Id: I1ddaafc821cd494092ab66309386464c6e2c33c4 Reviewed-on: Tested-by: Jenkins Tested-by: Caolán McNamara <> Reviewed-by: Mike Kaganski <> Reviewed-by: Caolán McNamara <>
2020-02-21Drop o3tl::optional wrapperStephan Bergmann14-48/+48 that macOS builds are guaranteed to have std::optional since 358146bbbd1b9775c12770fb5e497b6ec5adfc51 "Bump macOS build baseline to Xcode 11.3 and macOS 10.14.4". The change is done mostly mechanically with > for i in $(git grep -Fl optional); do > sed -i -e 's:<o3tl/optional\.hxx>\|\"o3tl/optional\.hxx\":<optional>:' \ > -e 's/\<o3tl::optional\>/std::optional/g' \ > -e 's/\<o3tl::make_optional\>/std::make_optional/g' "$i" > done > for i in $(git grep -Flw o3tl::nullopt); do > sed -i -e 's/\<o3tl::nullopt\>/std::nullopt/g' "$i" > done (though that causes some of the resulting #include <optional> to appear at different places relative to other includes than if they had been added manually), plus a few manual modifications: * adapt bin/find-unneeded-includes * adapt desktop/IwyuFilter_desktop.yaml * remove include/o3tl/optional.hxx * quote resulting "<"/">" as "&lt;"/"&gt;" in officecfg/registry/cppheader.xsl * and then solenv/clang-format/reformat-formatted-files Change-Id: I68833d9f7945e57aa2bc703349cbc5a56b342273 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-02-20Move Boost.Spirit usage away from legacy namespaceAdam Majer1-21/+21
Remove BOOST_SPIRIT_USE_OLD_NAMESPACE defines and move all usage of Boost.Spirit to boost::spirit::classic namespace. Change-Id: I7dc5bed4d1b51f4a0bd1a4ae40c2024222127ce3 Reviewed-on: Tested-by: Jenkins Reviewed-by: Tomáš Chvátal <>
2020-02-06Revert "upgrade to latest glm"Stephan Bergmann2-3/+3
This reverts commit 494092dc0c2f6fd04dbd973d6f76f1df720dbcf7. For reasons that are still unclear, it appears to be the cause for CppunitTest_vcl_pdfexport often (but not always) failing in Windows debug buidls, both --disable-64-bit and --enable-64-bit. At least the 32 bit builds seem to all fail with > Assertion failed: false && "out of range", file ...\include\tools/bigint.hxx, line 146 Change-Id: I472a83fa709e79f7a6bf00b118c041cbc7500e6a Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-02-04upgrade to latest glmCaolán McNamara2-3/+3
Change-Id: I75f145b71c0f82e87a94ef90709fb8fdf56041d9 Reviewed-on: Tested-by: Jenkins Reviewed-by: Caolán McNamara <>
2020-02-01make update_pch also consider files in <module>/src/**/incLuboš Luňák1-1/+1
With --enable-pch=full there's not much difference between a "public" header in <module>/inc and a private one in <module>/src/somewhere/inc . And since the script searches recursively, this apparently helps to find even more headers for lower pch levels. Change-Id: I8483d0aa5b4fea5a59107c20a8aa5f1ef694af0a Reviewed-on: Tested-by: Jenkins Reviewed-by: Luboš Luňák <>
2020-01-31loplugin:unusedfields improve checking for fields guarded by existence checkNoel Grandin4-13/+0
which resulted in only a couple of real finds, mostly false+ Change-Id: I26058a29c27bff50e9526bedd54fb04589c2934d Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-01-31clang-tidy modernize-concat-nested-namespaceNoel Grandin95-347/+116
Change-Id: Iab35a8b85b3ba1df791c774f40b037f9420a071a Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-01-31new loplugin:namespaceindentationNoel Grandin2-2/+2
check indentation of braces in namespace decls, and the comments that often appear with them. This is my penance for messing up the indentation with clang-tidy-modernize-namespaces. As such I have limited it to new-style namespaces for now, and the check is off by default. Change-Id: I4db7f10a81c79bc0eece8f8e3ee564da8bc7f168 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-01-28New loplugin:unsignedcompareStephan Bergmann2-4/+7
"Find explicit casts from signed to unsigned integer in comparison against unsigned integer, where the cast is presumably used to avoid warnings about signed vs. unsigned comparisons, and could thus be replaced with o3tl::make_unsigned for clairty." (compilerplugins/clang/unsignedcompare.cxx) o3tl::make_unsigned requires its argument to be non-negative, and there is a chance that some original code like static_cast<sal_uInt32>(n) >= c used the explicit cast to actually force a (potentially negative) value of sal_Int32 to be interpreted as an unsigned sal_uInt32, rather than using the cast to avoid a false "signed vs. unsigned comparison" warning in a case where n is known to be non-negative. It appears that restricting this plugin to non- equality comparisons (<, >, <=, >=) and excluding equality comparisons (==, !=) is a useful heuristic to avoid such false positives. The only remainging false positive I found was 0288c8ffecff4956a52b9147d441979941e8b87f "Rephrase cast from sal_Int32 to sal_uInt32". But which of course does not mean that there were no further false positivies that I missed. So this commit may accidentally introduce some false hits of the assert in o3tl::make_unsigned. At least, it passed a full (Linux ASan+UBSan --enable-dbgutil) `make check && make screenshot`. It is by design that o3tl::make_unsigned only accepts signed integer parameter types (and is not defined as a nop for unsigned ones), to avoid unnecessary uses which would in general be suspicious. But the STATIC_ARRAY_SELECT macro in include/oox/helper/helper.hxx is used with both signed and unsigned types, so needs a little oox::detail::make_unsigned helper function for now. (The ultimate fix being to get rid of the macro in the first place.) Change-Id: Ia4adc9f44c70ad1dfd608784cac39ee922c32175 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
2020-01-26remove some unused local varsNoel Grandin2-2/+1
found by a more aggressive variant of loplugin:unusedvariables. This is my first pass, committing the simplest and most obviously unnecessary vars Change-Id: I9676a6e39a101937097788548764506c93811c57 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-01-25loplugin:makeshared in slideshowNoel Grandin28-230/+181
Change-Id: I87dead1ed09aa50c939c03ae8ed3faf9300a8b4a Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2020-01-23tdf#126459: Consider translated origin of the view also on resizeKatarina Behrens1-2/+7
use-case is the presenter console on 2nd screen, media shape must be placed relative to the window w/ slide preview, not relative to the main window Change-Id: I120f86e399563d2aafc31d88d0a7f9d357f4840c Reviewed-on: Tested-by: Jenkins Reviewed-by: Katarina Behrens <>