summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-06-17vcl: maintain shared PdfData across swap-in and -outprivate/Ashod/cd-5.3-3.2_import_unloaded_share_GfxLinkAshod Nakashian
Change-Id: I6e434e5b5db0ddcd2fb4d1e522ffdb1c963c1f34
2018-06-17vcl: sd: import PDF as unloaded imagesAshod Nakashian
Change-Id: Ibf9afeab2cb580a245af666b906310de1c9b351f
2018-06-17vcl: load the correct page when swapping-in a PDF GraphicAshod Nakashian
Change-Id: I00ffb9f76e763e1c4cd65c5dcea061d6d94d1d6a
2018-06-17vcl: share GfxLinkAshod Nakashian
When importing PDF as images, we store the PDF stream in the GfxLink. For large PDFs storing a copy of the full PDF with each page is overkill. For example a 10MB PDF with 200 pages will consume 2GB of memory! Change-Id: I99913514cf5c562683080bc817668095bee69427
2018-06-17Function to load graphic swapped out (loaded on demand)Tomaž Vajngerl
When a document is loaded it takes a lot of time and memory to load the graphic that are in the documet, so avoid that and just store the compressed graphic into a temporary file (handeled by GfxLink) and load when we really need to show the graphic. GraphicObject cached some attributes from Graphic, but this attributes now aren't available immediately so this attributes are removed form GraphicObject and now delegate to the Graphic itself. GetSizeBytes attribute however was removed as it is only used in some tests. GfxLink initial values were moved to the constructor and are not set in the header file anymore (as it is the recommended way to do it). The SdImportTest::testDocumentLayout failed as it looks like the dump sometimes didn't include the width and height of the null bitmap (which is set to 32x32) of the FillBitmap in some situations, but then in other situations it did include this attributes. With this change the width and height are always included for the FillBitmap which looks like it is more correct. Reviewed-on: https://gerrit.libreoffice.org/53016 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 7b355669c6ddeab2e6cec692d6afdff41c61d0fb) Change-Id: Ia1218f93b1735402b7828404f65660e2d4acf32f
2018-06-17vcl: split jpeg import into two partsMiklos Vajna
Split the import into two: 1) Just create the bitmap, this part is not thread-safe (e.g. OpenGLContext::makeCurrent() is called when OpenGL is enabled). 2) Import the image into an existing bitmap. The point is that the second part takes much more time than the first, and in the future that part may be executed on a thread, while without such a split the whole ImportJPEG() can't do that. For now GraphicFilter::ImportGraphic() simply invokes the two parts after each other, so no real functional changes yet. Reviewed-on: https://gerrit.libreoffice.org/37397 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit e8a05109d91bb9e82fcec5204514766f4bdbbee8) Change-Id: Iee742a2cd3c581aeaf1a1ed9f55cd543955a85e0
2018-06-17convert GfxLink::IsEqual to operator==Noel Grandin
exactly one use site Change-Id: Id0a75d46c459be213e81b47aa6c1194c87aec848 Reviewed-on: https://gerrit.libreoffice.org/42891 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit ce301dadcbbf8d0f0a71c7eaebca9bfad2e08801)
2018-06-17vcl: Add a internal (memory) manager for Graphic objectsTomaž Vajngerl
This adds vcl::graphic::Manager which is a manager singleton that tracks all the creation fo graphic objects and swaps them out on a time and allocation basis. Time based - every number of seconds it looks for Graphics that weren't used for a time. Allocation based - when creating a new Graphic and the total of Graphic uses more than the total amount of memory for Graphics defined in configuration, it tries to release the Graphics that weren't used for a time. Reviewed-on: https://gerrit.libreoffice.org/52396 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit a2b53fece14f745853bcfe1a300c3dceb580e148) Change-Id: I5dbf74db4a6455d32c4abcbad7be21c7f0534642
2018-06-17Move (and rename) graphic stuff from svtools to vclTomaž Vajngerl
This is preparing to change how GraphicManager works where it won't base itself around GraphicObject anymore but Graphic. No functional or cosmetic change was made to the classes, only changes that were needed because of the move and rename. The only thing that wasn't moved is the GraphicRenderer as it is not needed in vcl for now (but makes sense to move it in the future to keep graphic stuff together). grfmgr was renamed to GraphicObject as the GraphicManager will be changed a lot and most likely moved out, so the name grfmgr won't make any sense anymore. All the UNO implementations were renamed with a prefix Uno and used the same name as the class name. This is made to be more specific which are the Uno objects (for example graphic.cxx contained the implementation of XGraphic, which is similar to graph.cxx contains Graphic). Reviewed-on: https://gerrit.libreoffice.org/51068 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 7fbb96c2fbf99c47eca6f493f54fc3974f55cf86) Change-Id: I54a2fa6c7e997469aaa7770db05244adb9f64137
2018-06-17Remove obsolete sc_condformats unit testJens Carl
Remove the special snowflake sc_condformats because it's now covert by xsheetconditionalentries (see commit 44e9640748791f602edb22cbc499200283466e1e). Reviewed-on: https://gerrit.libreoffice.org/44523 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jens Carl <j.carl43@gmx.de> (cherry picked from commit d31fdb27583f5f594e8424bf061a74fde5cf2704) Change-Id: Ibdae392533605b56cf9b9c28f8c419ea0d32c0d8
2018-06-16svtools: add GraphicProvider::queryGraphics()Miklos Vajna
This allows moving the for() loop from oox to svtools when importing multiple images. That means in case later we parallelize that loop, then the performance benefit won't be restricted to oox, but also will be available for all clients of the graphic provider. Reviewed-on: https://gerrit.libreoffice.org/37945 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit 252e524094893063e4bcc822571a14c4558e1d00) Change-Id: Icd7bd447e7ae623b0a8548e020d8f6ab38da47bb
2018-06-16oox: add GraphicHelper::importGraphics()Miklos Vajna
Similar to GraphicHelper::importGraphic(), but can import multiple streams with one function call. Reviewed-on: https://gerrit.libreoffice.org/37942 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit b1319842a49cdf6512bbd9e81081e2a9edbd6089) Change-Id: I5fd398bb6649259e86967f8db5cc1e212f50bc8e
2018-06-16transformer: clean-up and pass originURL to transfored graphicTomaž Vajngerl
Change-Id: Iab01a5123ce6774120e2a0242616511a9fbe4403 Reviewed-on: https://gerrit.libreoffice.org/50867 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 19b6b8f8946a6fb720806a3f51a06760047d2ffc)
2018-06-16move setAlphaFrom from GraphicTransformer to BitmapExNoel Grandin
Reviewed-on: https://gerrit.libreoffice.org/49360 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 5531e6338bc9d7d5676a5c52059d5ccb2fcccb0c) Change-Id: I69329c61e81791db3806fabe3256571fa937deb6
2018-06-16vcl: remove BitmapColor Color() operatorChris Sherlock
BitmapColor has a Color() operator. However, this is confusing and tends to hide that the two classes aren't the same. I have converted this to GetColor(). Disable some tests that are failing to build due to missing << operator. Reviewed-on: https://gerrit.libreoffice.org/48245 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 01e470f0ab49e458c57b0f28636a517b2bfb1b4a) Change-Id: I0be2dcb3fc420e7be9c8d04330e7a3fe69a5412a
2018-06-09graphic: rename Set{Get,Is}Link to Set{Get,Is}GfxLinkTomaž Vajngerl
The main reason is to differentiate when we have the GfxLink from other (url, file) links which use the same terminology. Reviewed-on: https://gerrit.libreoffice.org/52245 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 11163faafe718e65b25f0dfea8700d1a18d4dee6) Change-Id: I805c61e7fb231062340562c51c25a189b2cfc7f7
2018-06-09vcl: refresh font cache only on real changeAshod Nakashian
GTK3 emits way too many style-updated, which triggers font cache updates. The avoidance of unecessary font cache updates was first implemented in 29c55564. Unfortuantely, it seems that the current font-options was never set as last-seen font-options, so still to many fonts-changed were emitted Change-Id: I01a47d4d7fb033e335b1a49ffa6e1bb98f7fd28d Reviewed-on: https://gerrit.libreoffice.org/55287 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 08814a34e3a3841c316dfb27a07583049abc5195)
2018-05-28Bump version 5.3-47cd-5.3-47Jan Holesovsky
Change-Id: I3ab41b34d09e9318cdd23e172082ca96d6ba020d
2018-05-28vcl: fix pdf rendering regressionAshod Nakashian
Change-Id: I6c2c48c033facb317b4ca7ed2af07348d6386b98 Reviewed-on: https://gerrit.libreoffice.org/54921 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2018-05-25pdf: preserve the original page dimensions on importAshod Nakashian
Also allow for rendering PDFs to images at custom resolution, instead of hard-coded (old hard-coded value of 96 dpi is now default arguments). Change-Id: Ia5b52f72d6ce7130a2debc7c6f86504aa041bdc8 Reviewed-on: https://gerrit.libreoffice.org/54786 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2018-05-24sd: make the imported PDF page exactly as originalAshod Nakashian
i.e. no borders or larger page than rendered PDF Change-Id: I1f356cceeec1d5d9f1728f0e29160fdd9241a221 Reviewed-on: https://gerrit.libreoffice.org/54764 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2018-05-24sd: render the correct PDF page on swapping inAshod Nakashian
Change-Id: I81225e228d9cf2b9849110715dbfdeb59f2805dd Reviewed-on: https://gerrit.libreoffice.org/54746 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2018-05-23ofz#7648 Bad-castCaolán McNamara
Change-Id: I21aaf36f3d6b6c3054649208de809b99aa384c01 Reviewed-on: https://gerrit.libreoffice.org/52836 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit 1db17a71b028c392a00393cdf313e1720b93fd2e) (cherry picked from commit 20bf87c6a3a076fe78f938b7a3086146336976e7)
2018-05-23ofz#7109 infinite regressCaolán McNamara
Change-Id: Iac0bd81c9b0e3ac6b005bb0065895ca1b4ca4233 Reviewed-on: https://gerrit.libreoffice.org/51828 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit e4308d4b3638d52ca70778565ba2541e9f3f0ff2) (cherry picked from commit 79bb8c64b633f9397601df4e73f09d7fef066c2b)
2018-05-22Introduce a LO_IMPORT_USE_PDFIUM envvar to force PDFium for PDF import.cd-5.3-46Jan Holesovsky
Change-Id: Ibb7734430b955dad4aefec22260ba8694ccb9183
2018-05-22sd: disable pdf import testsAshod Nakashian
Change-Id: Iaee679d2ff322c67d081185588103d5685fa970a
2018-05-22gtktiledviewer downgrade min gtk+ to 3.16Ashod Nakashian
Change-Id: Ieb964ec1bbdeb632bd771db9b773f64b78107fc5 Reviewed-on: https://gerrit.libreoffice.org/44724 Reviewed-by: pranavk <pranavk@collabora.co.uk> Tested-by: pranavk <pranavk@collabora.co.uk> (cherry picked from commit a3f432a68733b6e76ecb68cf5704a59d1be1e5cb)
2018-05-22svx: set the font name of imported PDF textAshod Nakashian
Change-Id: I79dde3c8983a70311de2d2a46093fac2722fb372
2018-05-22svx: update PDFium patch and codeAshod Nakashian
Change-Id: I07c6a7c65d5631b70da64927a35d7a3b371eff25
2018-05-22pdfium: update to 3426Miklos Vajna
Allows dropping the ugly freetype.patch.1. Reviewed-on: https://gerrit.libreoffice.org/54294 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 56195a4d0bbb21edeed1cea7a45283141c733f18) Change-Id: Ifa8a6dac02a49a2c13572e59773261a847efad3f
2018-05-22svx: cleanup pdfium importerAshod Nakashian
Change-Id: Id925ba7734a2c73270e40f19d3fc50552441c34e
2018-05-22svx: transform PDF text rectangles while importingAshod Nakashian
Change-Id: I7675a183bfb691a8783950f33dc34826f91cb768
2018-05-22svx: set the Model explicitly before using SDR objectsAshod Nakashian
Change-Id: I176d1c1c7f759904ab36796a47e879e45ce4a5af
2018-05-22svx: support no fill and no stroke paths in PDF importAshod Nakashian
Change-Id: Ida5daa71d469805fd52e08e804fb9fa182d7d008
2018-05-22svx: support sub-paths in PDF importAshod Nakashian
Change-Id: Ibcfd30383db6846e791aea7609ab196c4f3f2da4
2018-05-22svx: import processed PDF textAshod Nakashian
Some PDFs don't include spaces in the text. Instead, they rely on the explicit positioning of each character to render visually separated words. Latex seems to be prone to this approach, though not exclusively. Luckily, PDFium does process text and inserts "generated" spaces where necessary, which is what we retrieve and use as the text string while importing. Change-Id: Ic21fe6c8416ecaba66f06b6260f1d6b040ff12af
2018-05-22svx: correctly possition form objects from PDFAshod Nakashian
Change-Id: I7d216ca61b8a10219628877db7dd593a4987ef60
2018-05-22svx: support importing forms from PDFsAshod Nakashian
Still missing the context matrix transformations. Change-Id: Id9457c6475463127d3bc444f36fa373a6ec8fcb6
2018-05-22sd: support breaking any PDF pageAshod Nakashian
Change-Id: Ifa5f58163bef209a988fc0f88e2b609b1973e0d4
2018-05-22svx: path line width is given as full thickness in PDFAshod Nakashian
Change-Id: I728d962ea65ad1671e3b4c76034d396bee84228e
2018-05-22svx: support color text for imported PDFsAshod Nakashian
Change-Id: I01cba9456b37bd7a63c823bbe332d686f7ede389
2018-05-22svx: more accurate PDF imported text sizeAshod Nakashian
Change-Id: I22880afdd9d36d9096003d86bba15098b465e0b3
2018-05-22svx: correct the positioning of PDF Paths and the stroke widthAshod Nakashian
Change-Id: I5b150721cc1b61b028f282062c1466ef6a67fcae
2018-05-22svx: improved text importing from PDFAshod Nakashian
Change-Id: I9a2fc2c8511655c1aa362c1a03a5e82ae3ba697e
2018-05-22svx: improve path importing from PDFAshod Nakashian
Change-Id: I8e63b2a35d841e065ef32fea95c0a5f22ca6f049
2018-05-22svx: support Paths in PDFs while importingAshod Nakashian
Change-Id: Idba294cf5a3a8dd00988f94786715b110039e000
2018-05-22svx: support PDF text colorAshod Nakashian
Change-Id: I7fa675c6560504e4fc7917e19cac3cceb2700d8e
2018-05-22svx: more informative loggingAshod Nakashian
Change-Id: Ia9f2fa1fbb24ad3466bd082b778244f451c90745
2018-05-22svx: import PDF images as BGRAAshod Nakashian
This makes it trivial to support all sort of odd bit-format and 8-bit paletted images. Change-Id: I4555794eccd0ee2906f9a39bd93957ad3775432c
2018-05-22svx: refactor PDF text importingAshod Nakashian
Change-Id: Ibe8d794c1d457936c9272bb664a5478d78654dd4