Commit Graph

945 Commits

Author SHA1 Message Date
fedd856894 Resolves: tdf#101067 put SolarMutexGuard back in again
commit 4f27ff917237be96eec897d4af90a3379be904c6
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Jul 29 18:24:23 2013 +0300

    Avoid SolarMutex assertion in a dbgutil build when exiting Impress

put in a SolarMutex in that ImpTimedRefDev dtor for what sounds like
just this problem

commit 9f0766917a4fb1bc8fe1786c3b46132dd63c1c66
Author: Armin Le Grand <Armin.Le.Grand@cib.de>
Date:   Fri Jul 1 14:40:00 2016 +0200

    tdf#50613 add support to load charts asynchronously

took it out again, to presumably move it into TextLayouterDevice
but we destroy this thing asyncronously outside of TextLayouterDevice
so lets put it back in again

Change-Id: If801a701701a3d87fce2f76bc22bb3184b46743a
2016-07-22 11:55:36 +01:00
76ad32bec8 add tagging to ThreadTasks so we don't need more one pool
If more than one place in the code submits tasks to the shared
pool, then waitTillDone() becomes unreliable.
Add a tagging mechanism, so different callsites can wait
on different sets of tasks.

Also try to protect our worker threads against exceptions from
the thread tasks code.

Change-Id: Idde664ab50008d31a2dd73910bb22f50e62ae22f
Reviewed-on: https://gerrit.libreoffice.org/27042
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-18 06:49:09 +00:00
6e72f0251b new loplugin unnecessary override
Change-Id: I88d3e33823d68745b98625050a8a274f9ef04bcb
Reviewed-on: https://gerrit.libreoffice.org/27135
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2016-07-15 14:05:41 +00:00
5046ebd813 tdf#82214 optimize PatternFillPrimitive and SVG
Use buffering in the drawinglayer, and don't do slow stuff in the
windows gdi renderer.

Conflicts:
	svgio/source/svgreader/svgstyleattributes.cxx

Change-Id: Id955ee6a3b03e568c2678f02d77af35d2e5ba1d4
2016-07-07 22:32:39 +02:00
4609380bb0 tdf#82214 optimize performance for primitives
See svg bug doc, which is processed quite slowly. Beyond needing faster
renderers, there is also demand to improve the handling of primitives
created by SVG import.

Conflicts:
	drawinglayer/source/primitive2d/patternfillprimitive2d.cxx
	vcl/win/gdi/gdiimpl.cxx

Change-Id: I10992a5746b8b2d6b50e3ee3fe415a035685c9ba
2016-07-07 22:32:39 +02:00
9f0766917a tdf#50613 add support to load charts asynchronously
Generating primitives for chart visualisation can be moved to a
paralell executed task that loads the chart, thus speeding up
initial visualization. This is not possible for e.g. PDF or print
targets, only for edit visualization. On fallback, the replacement
images of the charts are used which are metafiles and have less
quality as primitives, but load quicker.

Change-Id: I68caa9e1bec50832bce535b5f54633d53cdef037
2016-07-07 22:32:38 +02:00
cd71034b26 comphelper::OBaseMutex -> cppu::BaseMutex
convert usage of deprecated class, and remove the old class

Change-Id: I19fb9271090d19e5531622b58492e1a848d306e2
Reviewed-on: https://gerrit.libreoffice.org/26843
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-04 06:49:07 +00:00
428e23f4f7 Fix some spelling errors in comments and strings
Change-Id: Iecd6b5e13d6be14651f77d8e37f01117ba15a11e
Reviewed-on: https://gerrit.libreoffice.org/26883
Reviewed-by: jan iversen <jani@documentfoundation.org>
Tested-by: jan iversen <jani@documentfoundation.org>
2016-07-04 06:11:36 +00:00
db39c653e5 loplugin:singlevalfields in drawinglayer
Change-Id: I19f50b0afa624391bd0d8ada7afca822298e10cc
Reviewed-on: https://gerrit.libreoffice.org/26655
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-27 05:20:38 +00:00
e8dfe9bca7 Give unique, comprehensible names to timers tdf#97087
Change-Id: I9f2be193b995d43d4e3440e55a025629fe5bcaed
Reviewed-on: https://gerrit.libreoffice.org/26222
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-13 15:33:27 +00:00
285744fef8 tdf#99519 Added more intelligent handling of animated GIFs
Isolated to a single Primitive2D class based on the AnimatedSwitch-
Primitive2D which does the specializing in one place. Buffers small
GIFs completely, handles 1st frame always buffered, huge GIFs get
animated by just playing he next frame.
To reach more with the current approach we would have to re-implement
AnimatedGIF import, replay it internally on a sys-specific Surface
and blit the current content (with alpha) to our display

Change-Id: I46c3325fa7936df73bea9a9284a0421f1475a34b
Reviewed-on: https://gerrit.libreoffice.org/26103
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-06-10 13:39:10 +00:00
52225a3b7f Convert ComplexTextLayoutMode to scoped enum
Change-Id: I257f8e15fec92f0701235a6fe4b6a2272498c4f1
Reviewed-on: https://gerrit.libreoffice.org/25667
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-03 11:34:23 +00:00
f3c1d240bd loplugin:constantparams
Change-Id: Ib162ba9297b9d900ea42c7e5216e152d3e58a361
Reviewed-on: https://gerrit.libreoffice.org/25769
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-03 09:08:42 +00:00
14469e86d3 tdf#95581: Assume tiny shears are rounding artefacts etc and can be ignored
See bug report for more discussion.

Change-Id: I50ee82abac4ddfbdca0fb03d17c0518860466a52
2016-06-01 13:35:38 +03:00
0b23eec200 teach refcounting clang plugin about uno::Reference
uno::Reference is only allowed to used with classes that have a
::static_type member.
So convert all those places to rtl::Reference.

Maybe we need some LIBO_INTERNAL_ONLY constructors on rtl::Reference and
uno::Reference to make this a little smoother?

Change-Id: Icdcb35d71ca40a87b1dc474096776412adbfc7e3
Reviewed-on: https://gerrit.libreoffice.org/25516
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-31 06:25:45 +00:00
990082f37c Convert FontRelief to scoped enum
Change-Id: I545c83d742db27f1a004b66e5eb1ef768f62e011
Reviewed-on: https://gerrit.libreoffice.org/25626
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-30 06:41:53 +00:00
446d0887ff Convert TextEffectStyle2D to scoped enum
Change-Id: I1ef784473408a220788f0ce7550bf16809fa2cd2
Reviewed-on: https://gerrit.libreoffice.org/25625
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-30 06:41:41 +00:00
6a5a2350c1 convert TransparentType to scoped enum
Change-Id: I25ec59fd41b5aa8741a9e864b5204481a84c3ba6
Reviewed-on: https://gerrit.libreoffice.org/25601
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-30 06:37:52 +00:00
850a8d27ca Convert GRAPHIC to scoped enum
Change-Id: I1fd09a729cbda00f99841532e0dd3fa66bce7bea
Reviewed-on: https://gerrit.libreoffice.org/25534
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-27 12:59:23 +00:00
edc8727803 Convert Disposal to scoped enum
and drop unused FULL value

Change-Id: I3b9c26cb164785ef86f1a8d57cce962b015c85d6
Reviewed-on: https://gerrit.libreoffice.org/25432
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-25 09:59:43 +00:00
2af018e4dd Fix typos
Change-Id: I860cc4aa04b4e5cd1437b2f24176ee2ccdec3266
Reviewed-on: https://gerrit.libreoffice.org/25420
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-25 09:50:55 +00:00
5c5209c2d9 Convert GradientStyle to scoped enum
Change-Id: I1da151dd25648e363ba88bf88caa3e820f0ee424
Reviewed-on: https://gerrit.libreoffice.org/25270
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-23 09:20:31 +00:00
4a98af674c Convert HatchStyle to scoped enum
Change-Id: I27878a67457d32e6922dfb6da73f896ff6ab1d01
Reviewed-on: https://gerrit.libreoffice.org/25271
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-23 07:31:31 +00:00
bc9459f095 Convert BreakupUnit to scoped enum
Change-Id: Icda4584c79a8af2c2e5fc5a29c498f7869641aa5
Reviewed-on: https://gerrit.libreoffice.org/25299
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-22 17:54:21 +00:00
7e55fbab63 Convert SpreadMethod to scoped enum
Change-Id: I2a04247bd58ed6f2af8da7e109b31ff83d6d5e49
Reviewed-on: https://gerrit.libreoffice.org/25298
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-22 17:54:17 +00:00
e66c1a6f32 Convert HelplineStyle2D to scoped enum
Change-Id: I32b3c61ed40fe041a395544c1ab32d8e1b5f89fa
Reviewed-on: https://gerrit.libreoffice.org/25297
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-22 17:54:06 +00:00
2c8fe2e737 update unusedmethods plugin to deal with constructors
and fix the operator< implementations in some of the other
plugins too.

Change-Id: Ie5631e0cdc8d2a994ad2af2533cdb558a6cfc035
Reviewed-on: https://gerrit.libreoffice.org/25057
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-18 10:03:44 +00:00
3eaf7ae663 Massage code to avoid warnings
Change-Id: I847e1a109bd20e64161a7735ee30b2fe1ca507b0
2016-05-12 11:33:18 +02:00
a4f9fce47b Use SAL_FALLTHROUGH where intended
As discussed on IRC:
<alg> sberg: intended - double includes the lines from single, aka triple
<alg> sberg: Okay, please add comments there. I was referring to
 FillHatchPrimitive2D::create2DDecomposition where the same switch is used

Change-Id: Ie007bdb54a56ead1b9139451d20f2ea6aa7e6f20
2016-05-11 11:33:31 +02:00
42ea4312c0 Include cppumaker-generated .hpp, not .hdl
Change-Id: Ib0451f26edbfbcdfdca78caa97bd09bc65ec2782
2016-05-11 11:31:06 +02:00
14cd5182c5 Replace fallthrough comments with new SAL_FALLTHROUGH macro
...which (in LIBO_INTERNAL_ONLY) for Clang expands to [[clang::fallthrough]] in
preparation of enabling -Wimplicit-fallthrough.  (This is only relevant for
C++11, as neither C nor old C++ has a way to annotate intended fallthroughs.)

Could use BOOST_FALLTHROUGH instead of introducing our own SAL_FALLTHROUGH, but
that would require adding back in dependencies on boost_headers to many
libraries where we carefully removed any remaining Boost dependencies only
recently.  (At least make SAL_FALLTHROUGH strictly LIBO_INTERNAL_ONLY, so its
future evolution will not have any impact on the stable URE interface.)  C++17
will have a proper [[fallthroug]], eventually removing the need for a macro
altogether.

Change-Id: I342a7610a107db7d7a344ea9cbddfd9714d7e9ca
2016-05-10 16:42:16 +02:00
50ac0f503b convert FONT_EMPHASIS_MARK to scoped enum
Change-Id: I137c78b337e57d3442db08334128e79d186b278f
Reviewed-on: https://gerrit.libreoffice.org/24753
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-09 09:41:34 +00:00
657413b5de Refactor 3D renderer to use multithreading
This try uses full 3D renderers working on the same ZBuffer
target, but are capable to render one stripe per thread.
This is rougher in granularity and uses multiple cores better
than the first try (see gerrit 24393) which was too fine-granular
being based on scanline render parallelization.
SecUred some more classes based on SdrPrimitive3D for multi-
theaded usage (places where local buffered stuff is done)

Change-Id: I4ddd5885ad41dd6432d0695e528818a86e427bfd
Reviewed-on: https://gerrit.libreoffice.org/24538
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2016-05-06 10:11:03 +00:00
9793d761cb Fix typos
Change-Id: I38b5e720af67d0bfb1be72ff82a7f5c595a94c14
Reviewed-on: https://gerrit.libreoffice.org/24535
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@documentfoundation.org>
2016-05-02 07:11:30 +00:00
75d9f7a433 Complete drawinglayer attributes
All DrawingLayer Atrributes used for ptimitives need a default
constructor. Since the o3tl::cow_wrapper is used in combination
with a static default incarnation of the impl class it is better
to define that. Also needed is a working isDefault() implementation
that compares the impl class to the static default. Added missing
stuff for this.

Change-Id: I98e9fee7343112cd979b972229423ac0ef3994a6
Reviewed-on: https://gerrit.libreoffice.org/24496
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2016-05-01 13:46:04 +00:00
7671d64307 loplugin:defaultparams
Not necessary to pass this argument, it defaults to the same value.

Change-Id: I090566ebc968c69351cd019e1a5b2b6a0749f03f
2016-04-26 20:10:16 +03:00
32cec4ca8b tdf#48066 render stroke-miterlimit correctly in SVG import
The property stroke-miterlimit is transported to the renderers
via a new member mfMiterMinimumAngle in class LineAttribute
Several drawPolyLine methods are adapted. This patch does not
include changes in MetaAction. Presentation mode, printing, and
PDF-export is still wrong.

Corrected LineJoinMiter to LineJoinBevel in canvas, that s closer
to NONE. Removed DrawPolyLine method without MiterMinimumAngle
and adapted calls accordingly.

Change-Id: I6bcd24add5d85c4d9a39e3788e0682091c5fc9c4
Reviewed-on: https://gerrit.libreoffice.org/23946
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
2016-04-26 16:42:27 +00:00
e8fd5a07ec update loplugin stylepolice to check local pointers vars
are actually pointer vars.

Also convert from regex to normal code, so we can enable this
plugin all the time.

Change-Id: Ie36a25ecba61c18f99c77c77646d6459a443cbd1
Reviewed-on: https://gerrit.libreoffice.org/24391
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-26 10:55:58 +00:00
a5810faae3 clang-tidy modernize-loop-convert in d*
Change-Id: I0830a41b48e884ef63d32b5873c7007195659bb9
2016-04-25 11:57:07 +02:00
5abc669599 new plugin stylepolice
check for local variables which follow our member field naming
convention, which is highly confusing

Change-Id: Idacedf7145d09843e96a584237b385f7662eea10
2016-04-21 08:32:47 +02:00
cde88284e8 loplugin:salbool: Automatic rewrite of sal_False/True
Change-Id: I8130752ca7ccd47cda91458e39fbb56470ee38e5
2016-04-20 17:25:39 +02:00
cac7055901 drawinglayer: fix Android-specific typo
The intention is to call the real function, not the template itself.

Change-Id: Ib10ac4877b33554fe3a5c0918de43bea6e62cfc9
2016-04-19 15:22:21 +02:00
ce12a5021a drawinglayer: work around broken Android toolchain
Change-Id: I8679f44663aa81e04684751847cab4f06df3a71e
2016-04-19 14:53:14 +02:00
75ee4bb944 Missing include for std::round
Change-Id: Id9e67f800192eb9ddbf79960d4b17012531d0e08
2016-04-19 14:29:56 +02:00
d5e07bd49a drawinglayer, sw: indentation fixes
Change-Id: Ia84182629f33220a0d85bde00c16f9c26f45e3c5
2016-04-19 13:55:47 +02:00
422f10c5d7 tdf#99315 VclPixelProcessor2D: fix double border line width
Regression from commit 2c91cb08d65cd35fa8ef6eaca3677aa82fb58cbe (better
drawing support for borders of different width, fdo#33634, 2012-04-04),
the problem is that previously the width of inner/outer double border
lines got rounded to integer values quite early, but after the commit
they are kept at a double precision for much longer, which needs pixel
correction in VclPixelProcessor2D.

Example: if the border with is 1.47, and the line gets moved by 0.2
pixels, then the inner and outer edge of the line will be 0.2 and 1.67,
which gets rounded to 0 -> 2 in the pixel processor. Previously the
input was rounded to 1, so moving by 0.2 resulted in 0.2 -> 1.2, which
got rounded to 0 -> 1. The result is that sometimes the line width is 1
pixel wider than expected.

Fix the problem by allowing VclPixelProcessor2D to request pixel
correction from BorderLinePrimitive2D. It wouldn't be possible to do
pixel correction only in VclPixelProcessor2D, as it has no idea what to
correct: it only gets polygons, so it has no idea if e.g. the top of a
polygon is the outer edge of a top border line or an inner edge of a
bottom border line.

Change-Id: I1971f3a952fbcdc598ab46c659e12d976c13cbe6
Reviewed-on: https://gerrit.libreoffice.org/24221
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-04-18 19:06:39 +00:00
789055bc2a clang-tidy performance-unnecessary-copy-initialization
probably not much performance benefit, but it sure is good at
identifying leftover intermediate variables from previous
refactorings.

Change-Id: I3ce16fe496ac2733c1cb0a35f74c0fc9193cc657
Reviewed-on: https://gerrit.libreoffice.org/24026
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-18 07:37:31 +00:00
555c9add26 drawinglayer: fix WNT build
Change-Id: I0a545008e1bd7f99fe1f928b4cd42fbcfdc85517
2016-04-15 22:23:29 +02:00
304f50684d loplugin:refcounting
Change-Id: I4f696bdb7b37da5949182d522b0d3c6c41fdc756
2016-04-15 18:28:16 +02:00
1ee570a4e6 Related: tdf#99315 BorderLinePrimitive2D: fix solid line primitive width
Regression from commit 2c62596cf264ef10749d8bfdb2bb2ebef2d98fbc
(fdo#75260: Correctly draw double lines for both Writer and Calc.,
2014-03-03), the problem was that when decomposing a double border line
promitive to solid line primitives (which happens for the legacy
"border" type, while both the Calc UI and Excel importer creates
"border-thin" ones), the decomposed inner line's height was larger than
the requested width.

As a result there was no gap between the polygon of the inner and the
outer line of the double border, looking like a non-double border.

The width of the outer border is still incorrect on the screen, though.

Change-Id: Ia9713c315ce8f23e2579b257169798e7c82c0a64
Reviewed-on: https://gerrit.libreoffice.org/24115
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2016-04-15 14:46:00 +00:00