summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2016-04-11tdf#65642 RTF filter: import \pgnrestart and \pgnucltrMiklos Vajna
This implicitly adds support for DOCX import of <w:pgNumType w:fmt="upperLetter"> as well. (cherry picked from commits abaf6bde4ee91c628bd55a7ec2e876a5d0ecff6e and d29b75c402ea635b3865501e43c9f349885913af) Conflicts: sw/qa/extras/rtfimport/rtfimport.cxx writerfilter/source/rtftok/rtfdocumentimpl.cxx Change-Id: Ib19ecb8f7ca0c867ae3be2b41e49ac4cacfd5bb6 Reviewed-on: https://gerrit.libreoffice.org/23916 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-03-15Resolves: tdf#94392 huge negative Y causes length exceptionCaolán McNamara
because this rendering stuff is deleted in later versions of LibreOffice and replaced with cairo rendering, just bodge this case to give up and go home. Change-Id: I4e60184b0919dc719edfe223ebb2d8ef684608e8 Reviewed-on: https://gerrit.libreoffice.org/23154 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2016-03-15enable build with gcc 6Caolán McNamara
Change-Id: I391550d243ae7f773d988cb36f45c482d0c97145 Reviewed-on: https://gerrit.libreoffice.org/23153 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2016-03-02GCC 4.6 still doesn't do "override"Jan-Marek Glogowski
But you can use SAL_OVERRIDE instead - once again. Change-Id: Ifbf49f30b788e9eed96fd13cca885101a366bf16 Reviewed-on: https://gerrit.libreoffice.org/22825 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2016-03-01tdf#98188: Crash when closing File->Properties->CMIS Properties tabGiuseppe Castagno
Change-Id: I22e1d6cc1c50b9ae613dab7c253ba21451aac584 Reviewed-on: https://gerrit.libreoffice.org/22704 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com> (cherry picked from commit cadc130171a9bd4f1e6930fed09ad2897e9111b5) Reviewed-on: https://gerrit.libreoffice.org/22785 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-02-24tdf#85761 vcl: JPEG export does not save PPI values correctlyChris Sherlock
JPEG values are currently hardcoded to 96PPI when we export JPEGs. The Graphic class doesn't have an easy way to get the PPI, but this can actually be calculated from the pref size and pref map mode (no idea why it is called "Pref"). Interestingly, you need to get a multiplier to work this out, relative to units of 100th mm. The EPS filter code had a function that does exactly this, but it's entirely based on MapMode units so it was really implemented in the wrong class IMO. I have thus moved it out of PSWriter and into MapMode. This also fixes tdf#65695, which was partially fixed, but had the JPEG PPI hardcoded to 96dpi. Also fixes tdf#97481. Change-Id: Iedb674141dd4e22fcbfb7be357dc777f732aa3aa Reviewed-on: https://gerrit.libreoffice.org/22339 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/22380 Reviewed-on: https://gerrit.libreoffice.org/22454
2016-02-04tdf#61511 RTF export: handle page background solid color fillMiklos Vajna
(cherry picked from commit b0058366190b63fcbc112b43d387f7600a7fe55d) Conflicts: sw/qa/extras/rtfexport/rtfexport.cxx Change-Id: I562419b6d4fb791ef5b255effe9a4510d930bdbc Reviewed-on: https://gerrit.libreoffice.org/22085 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2016-02-02xmloff: tdf#96147: ODF export: fix duplicate fo:background-colorMichael Stahl
... attributes that happen if both CharHighlight and CharBackColor properties are used, because the CharBackTransparent property wasn't taken into account, and combining the CharBackColor and CharBackTransparent properties happens *after* XMLTextExportPropertySetMapper::ContextFilter() runs. Also, it looks like a transparent highlight wouldn't export properly but apparently DomainMapper::getColorFromId() won't create such. (regression from f880962f5bf26bfaef06bd3f9e67e2d901a2e74c) (cherry picked from commit 8dadefc35f8b33648fb6adbdaca75ea52b2705db) Change-Id: Ib628ef8bb377482f74fadb97c81afb95fbbf7184 Reviewed-on: https://gerrit.libreoffice.org/22046 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-01-19tdf#96480: ODF import: eliminate duplicate cross reference heading bookmarksMichael Stahl
7c3c3006deaaaf1bb3f2f4eeeaf11da3bcebe53c is apparently worse than it appeared at first glance since there are numerous assumptions about bookmarks, such as that if they were inserted successfully they may be copied successfully, which isn't the case for duplicate cross reference bookmarks. So fix this differently, by eliminating the duplicates and mapping all reference fields to refer to the surviving bookmark. It was not possible to do this in SwXBookmark by checking the makeMark() return as that would raise interesting problems such as it's currently guaranteed to have 1:1 SwXBoomarks to core Marks so we can't just connect 2 SwXBookmarks to the same core Mark, and we also can't leave the SwXBookmark unconnected after attach. Another alternative would be to temporarily allow inserting the duplicate bookmarks and then eliminate them after the import, but what is implemented now is to check from xmloff for duplicates, which is reasonably simple. (cherry picked from commit 774fb6d2e7cf36b677e66c54278225b1256bd40f) Change-Id: I7ee4854d1c9d8bf74201089cbb7287b1bd8ee3b9 Reviewed-on: https://gerrit.libreoffice.org/21369 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-01-07tdf#94715 - ensure we remove ourselves from the same event source.Michael Meeks
Seemingly event removal was not occuring; also clean up historic duplication of UNO and C++ references using rtl::Reference. Reviewed-on: https://gerrit.libreoffice.org/21088 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Conflicts: include/toolkit/awt/vclxaccessiblecomponent.hxx toolkit/source/awt/vclxaccessiblecomponent.cxx Change-Id: I56dfb76501929886f70495804670f8c4f70e796b Reviewed-on: https://gerrit.libreoffice.org/21110 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2015-12-17fix missing BaseURL when loading embedded objectsMichael Stahl
When the object is edited in the UI, the m_xClient is set to a SfxInPlaceClient and the DocumentBaseURL is retrieved from it. But if the object is not edited, it will be loaded during export via the API and without a m_xClient; in this case the DocumentBaseURL must have been set previously to be available during import. There appears to be no way to get the URL of the document via the API while it is being imported; SfxBaseModel's m_sURL is unfortunately only initialized from SfxObjectShell::FinishedLoading(). During ODF import, the SvXMLEmbeddedObjectHelper creates the embedded object, so let's make it pass in the parent's BaseURL. The "DefaultParentBaseURL" parameter already exists but was unused previously. (cherry picked from commit b0fc09daf1086423a9bd457d9a2c043e7ff41451) (cherry picked from commit 4118f8f4c20ae711b95ab3052656bde673aa8852) sw: loading embedded ODF objects requires unordf component (cherry picked from commit b3b7982f4690f4ac0f0e9680970ba544157c36dc) Change-Id: I3d1ed29b3a2c0e77ec606a1d09f7bc07e7860733 Reviewed-on: https://gerrit.libreoffice.org/20761 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
2015-12-16Resolves: tdf#95440 SharedString are interned per document, re-internEike Rathke
... if literal strings are copied with formula expression tokens. (cherry picked from commit dad412e07f805a53ad73ce2e80d187a70c77e8de) Conflicts: include/formula/token.hxx Change-Id: I13526907bb6c2c605c6ed9584fa6e3f2b18623b8 Reviewed-on: https://gerrit.libreoffice.org/20731 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2015-12-05Resolves: tdf#96072 export Chart format codes in Excel notationEike Rathke
This is a combination of 4 commits. Omitted are 2246f478e2505388ab253d08a1d86b897251223b and 7340872a3450e38a7f820945585a9ee60b2a9d41 that replace the Calc code with calling the new SvNumberFormatter functions. introduce SvNumberFormatter::FillKeywordTableForExcel() ... to conflate the places that do this on their own. (cherry picked from commit b55548043e969a6aa4c211217cfc3fb85d50d2da) use proper case "General" keyword ... Excel doesn't seem to care though. (cherry picked from commit ea1db935b085507f11d05f8606a680d521db4838) introduce SvNumberFormatter::GetFormatStringForExcel() Taking implementation from sc/source/filter/excel/xestyle.cxx GetNumberFormatCode(), slightly modified to ensure valid conversion and force en-US locale data. Also don't unnecessarily convert if format is for system locale and system locale is en-US. (cherry picked from commit 2011b5412c4daa47bc5624a2efc996960e19c2a9) Resolves: tdf#96072 export Chart format codes in Excel notation As for the change in chart2/qa/extras/chart2export.cxx Chart2ExportTest::testAxisNumberFormatXLSX() unit test: also Excel writes string parts of format codes quoted, including minus sign in negative subformat. (cherry picked from commit 509cfa40691cf544519872a63335cff4a4d94006) 3697a808d8fee2417f0b0e03dba2b94ceea133dd 9223eaa655132b4106a35c94cb0005559d7575b1 201bb012df818129cbc65de0eee8eca59e57d829 Change-Id: Idde2173780e0515ad982b4be46fc4df23a7577ad Reviewed-on: https://gerrit.libreoffice.org/20249 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2015-11-26Fix tdf#80224 Custom text color changed to black on .PPTX exportMark Hung
1) Write endParaRPr so that PowerPoint display them properly. 2) Original design forbid properites with default value to be exprted, now fixed. 3) Automatic colors are written as white or black based on whether background is dark. Note that tdf#77881,tdf#80520,tdf#89525 depend on this. Change-Id: I255c16f35149b738be2daf2800b1c90389f2c7cf Reviewed-on: https://gerrit.libreoffice.org/17472 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/19862 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
2015-11-23tdf#90372: Make VclScrolledWindow candidate for tabstoppingKatarina Behrens
this fixes a11y issue, where widgets inside VclScrolledWindow weren't accessible by keyboard as Tab, Alt-Tab events respectively, never reacheed those Change-Id: Ic73e24f8036b0f6129c3a4f5efb160f9089cb0b8 Reviewed-on: https://gerrit.libreoffice.org/19982 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2015-11-20Resolves: tdf#95670 propagate ForceArray per parameterEike Rathke
Regression of b5cd11b4b02a85a83db77ba9d8d1763f0cd88cb1 It was always wrong to propagate ForceArray already if a function had a ForceArray parameter *somewhere*, we need to do this per parameter instead. (cherry picked from commit 49257e1da7e371fdea0fac080116b0511789cac7) Conflicts: formula/source/core/api/FormulaCompiler.cxx prevent ForceArray propagation on the same token, tdf#95670 follow-up This may happen if the last RPN token is put and the function has a ForceArray parameter but now again would be wrong if not all parameters are ForceArray. (cherry picked from commit b31b17e52b2b2b94999d68c4b2ed5c74ee7eed0a) 890fb6b5b88337033cfcf2e8189371ee39461205 -Werror,-Winconsistent-missing-override (cherry picked from commit 6edc492efd6fe2de15c1ae306b400ca054772ad1) Backported to SAL_OVERRIDE 3bb2764b625d44f6e0cecbdde3363440faef63b5 Change-Id: If188d45366279d9a7bf641edc7e4dd7095d6d035 Reviewed-on: https://gerrit.libreoffice.org/19993 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2015-11-19xmloff: add meta:generator constants LO_43x and LO_44xMichael Stahl
Change-Id: I1d962ad637f19b02855616edebcedbad719689c5 (cherry picked from commit ee655627ad2ba66a8160b4cbdaeb1dd52d047a1d) Reviewed-on: https://gerrit.libreoffice.org/20053 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2015-11-10tdf#81144 Chinese full-width punctuation does not align properlyMark Hung
Ideographic fullstop and comma in most Chinese fonts are centered, while those in Japanese fonts align closer to the left. Original compression algorithm trimed right side of the punctuation, making fullwidth fullstop or comma in Chinese font visually unbalanced. In worst case, it crowds together with the followed compressed punctuation. This patch fix the situation in the folowing way 1) make compression less stronger. 2) Trim space according to glyph bearing to font height ratio. 3) fix a memory access violation issue Reviewed-on: https://gerrit.libreoffice.org/19517 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Conflicts: sw/source/core/txtnode/fntcache.cxx Change-Id: Icff215064e6c442fd36eac8e01b01fb6acb27594 Reviewed-on: https://gerrit.libreoffice.org/19764 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-10-28tdf#75637: Resolve help images via a vnd.libreoffice.image UCPStephan Bergmann
...which uses the logic already available in VCL's ImplImageTree to locate the image zip files and find fallbacks for incomplete themes and for localized images. (cherry picked from commit 6948c546fdc00dddec7d58e03150dcc87921d6b2, plus f5174c89cd037d35b975590083cf91b36633808d "...but do not erase localize attributes from image elements," which is needed to make localized image references work again) Conflicts: vcl/osx/vclnsapp.mm Change-Id: Ic1c15fcacb6596a27a2b051093232902202bf472 Reviewed-on: https://gerrit.libreoffice.org/19644 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2015-10-28tdf#94022 Print dialog: hide Installable OptionsMichael Weghorn
Options specified in PPD files can be grouped using the keywords "OpenGroup" and "CloseGroup". The keyword "InstallableOptions" is used as a group name for a group containing options that define optional hardware features of the printer that can be present or not (s. section 5.4 in version 4.3 of the PPD specification). As they are not print job specific, it is recommended not to show them in the print dialog. To be able to distinguish those options, the PPD group name was added as an attribute to the PPDKey class. Reviewed-on: https://gerrit.libreoffice.org/19623 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit f8d0dc09e15b36ae83a5e89280d1f7fbc01da48b) Conflicts: include/vcl/ppdparser.hxx Change-Id: I4a3abf23a711ad98556c0b608a07ef0a91e77e2b Reviewed-on: https://gerrit.libreoffice.org/19630 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jan-Marek Glogowski <glogow@fbihome.de>
2015-10-24Use SAL_OVERRIDE for overrideJan-Marek Glogowski
Otherwise build breaks on gcc 4.6. Change-Id: I9f0d94448e31e8b61b271fc088f0ce74128c375b Reviewed-on: https://gerrit.libreoffice.org/19564 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2015-10-23crashtesting+ubsan: kde170880-1.html bad cast to SdrTextAniCountItemCaolán McNamara
because a clone of SdrTextAniCountItem is a SfxUInt16Item not a SdrTextAniCountItem Change-Id: I7b8f99b52b1f42a6a28af4495ff25ddb6d497f61 (cherry picked from commit e5c8d01b1c174eafb3335604380480a513ac8db1) Reviewed-on: https://gerrit.libreoffice.org/19536 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2015-10-20tdf#93390 correctly handle back-and-forth between numeric and text valueLionel Elie Mamane
Change-Id: I06711afd5d668816608661f0fe433efd93fef99e Reviewed-on: https://gerrit.libreoffice.org/19372 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2015-10-20Writer image export: cmd. line, default to white backgroundTomaž Vajngerl
This commit fixes the writer image export (jpeg, png) that didn't work because the export pixel size was set to 0 by default. Now the default is set to document size (which depends on system DPI). When exporting to a PNG the background was transparent, which may not be desired. The background color is now by default white and can be changed for DocumentToGraphicRenderer, but the dialog or command line don't support such an option - for now. Change-Id: I16ffd3cd60c47b52768f43ae4c4c170fc821033b Reviewed-on: https://gerrit.libreoffice.org/19478 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2015-10-15Resolves: tdf#94848 crash on focus with un-cleared but dead mpSubEditDennis Francis
was... fixes memleak : clear self referring VclPtr in MetricBox Clears self referring VclPtr called mpField in MetricBox (inherited from FormatterBase class) via dispose() method of MetricBox. Reviewed-on: https://gerrit.libreoffice.org/18674 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 36c11cb71c6ec107cc08b16109e468765abc9867) Change-Id: I375e03e814de3c6e47c36b1fc6f625b04521a5e2 memleak:clear self referring VclPtr in *Field and *Box classes Clears self referring VclPtr called mpField via FormatterBase in : 1. MetricField, PatternField, NumericField, CurrencyField, DateField, TimeField 2. PatternBox, NumericBox, CurrencyBox, DateBox, TimeBox via respective dispose() methods. Change-Id: I7f92fefd49756cabe7db7d240781260a2d4cd298 Reviewed-on: https://gerrit.libreoffice.org/18701 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 a44e03b5d7822d026a3b2fbaf039522f085defed) Reviewed-on: https://gerrit.libreoffice.org/19397 Reviewed-by: Dennis Francis <dennisfrancis.in@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2015-10-12xmloff: fix ODF import of gradient draw:angle attribute a bitMichael Stahl
ODF 1.2 part 3, 18.3.1 angle, says "An angle, as defined in §4.1 of [SVG]" and "If no unit identifier is specified, the value is assumed to be in degrees." Unfortunately OOo could only read and write 10th of degree here. See also https://issues.oasis-open.org/browse/OFFICE-3774 As the first step towards fixing that, implement the import for draw:angle values with an angle unit identifier, but leave the import as-is if the angle identifier is missing. Change-Id: Ib88d417c03998ebcfc569b01492f0e1f851bbc85 (cherry picked from commit aadda5d17f6e422da143ea774f759bfc5f629c5b) Reviewed-on: https://gerrit.libreoffice.org/19283 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2015-10-01vcl: clean up before error returns in OpenGLContext::ImplInit()Michael Stahl
JunitTest_chart_unoapi fails here with "assert(!hasCurrent())" because the initialization apparently fails due to lack of a wglCreateContextAttribsARB in the VM, so ensure that the hTempRC is not active and also deleted in all cases. (cherry picked from commit 5efad73918152f380fa1bf1e2cd3bc06b6353683) vcl: even in the newfangled OpenGL world, initializing members is ... ... still a good idea. (cherry picked from commit 37d243651b7db5dc313686f474f4e7c92e2160ce) Change-Id: I7e03b95d1146af48a24e34692c3c2827298fccee Reviewed-on: https://gerrit.libreoffice.org/19040 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2015-09-21tdf#91293: Preserve hyperlink on URL field OOXML exportKatarina Behrens
The fix is twofold: 1.Get URL property from the underlying text field, not from the text run -- put text field properties into rXPropSet (that's what GETA macro later queries), not into rRun 6a043e9c0acff20e1618ca8ec15c21d5d0fd0d37 does s/rXPropSet/rRun/ afaics for no good reason 2. Retrieve string content from URL field early, so that the test for empty text content doesn't fire Reviewed-on: https://gerrit.libreoffice.org/18031 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Conflicts: sd/qa/unit/export-tests.cxx Change-Id: I4317e4a2f6f2e6f15c30932adc80f1227e010af0 Reviewed-on: https://gerrit.libreoffice.org/18706 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2015-09-16tdf#94281 - don't mix legacy and VCL OpenGLContext's.Michael Meeks
Each has rather different assumptions about how life should be. Change-Id: I85fffc77d14f3a5335a077fcb541a2b31c372043 Reviewed-on: https://gerrit.libreoffice.org/18644 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2015-09-16tdf#93814: Added support for caching shader program binaries.Marco Cecchetti
Reviewed-on: https://gerrit.libreoffice.org/18555 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Signed-off-by: Michael Meeks <michael.meeks@collabora.com> Conflicts: include/vcl/opengl/OpenGLContext.hxx include/vcl/opengl/OpenGLHelper.hxx vcl/inc/opengl/win/WinDeviceInfo.hxx vcl/source/opengl/OpenGLContext.cxx Change-Id: I21c844b47282f6b3eec443933a86421a074e24df
2015-09-16GL paint-flushing guard re-work.Michael Meeks
Unfortunately, since we can have 2x SalGraphics' on a OutputDevice, and one of these can be a printer - things got very confused around which context to glFlush. This de-tangles the various reference-counts. Conflicts: vcl/inc/generic/genpspgraphics.h vcl/win/source/gdi/salgdi.cxx Change-Id: I1062be0b02a91fc9009deaa3ec29c5dbb227df20 Reviewed-on: https://gerrit.libreoffice.org/18611 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2015-09-16Split formula group for OpenCL up into smaller bitsTor Lillqvist
Will make it less demanding on low-end hardware, where the device driver is unresponsive for too long when a OpenCL kernel handling lots of data is executing. This makes Windows restart it which is problematic. I tried several approaches of splitting, both at higher levels in sc and at the lowest level just before creating and executing the OpenCL kernel(s). This seems to be the most minimal and local approach. Doing it at the lower level would have required too much poking into our obscure OpenCL code, like passing an offset parameter to every kernel. Use a simple heuristic to find out whether to split. On the problematic low-end devices, CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT is 4, while for more performant devices it is 1 or 8. Change-Id: If16d152710057b34d09ef0203960e1fbb9ac067f Reviewed-on: https://gerrit.libreoffice.org/18613 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
2015-09-15tdf#92586 xmloff: fix import of stretched background imageMiklos Vajna
The bug document has: <style:page-layout-properties ... style:repeat="no-repeat"> <style:background-image ... style:repeat="stretch"/> </style:page-layout-properties> When a stretched background image is set on a page style using the Writer UI, then these two style:repeat attributes always match, but not in the bugdoc. The later used to have priority, till commit 7d9bb549d498d6beed2c4050c402d09643febdfa (Related: #i124638# Second step of DrawingLayer FillAttributes..., 2014-06-02). Fix the problem by extending XMLBackgroundImageContext::EndElement(): if we know that the <style:page-layout-properties> sets the FillBitmapMode property, then don't blindly set BackGraphicLocation, but try to overwrite the exiting FillBitmapMode one. Change-Id: I64ab4363b20cc95003d35acd63ea421472b1c071 (cherry picked from commit 6621da38b3cd217314c2d2295fd1e71be7e1875e) Reviewed-on: https://gerrit.libreoffice.org/18582 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-09-11tdf#83227 oox: reuse RelId in DML/VML export for the same graphicMiklos Vajna
So that large images are written only once to the ZIP container when they are exported using both markups. This affects drawinglayer images, the Writer ones are handled directly in sw and were already deduplicated. (cherry picked from commit b484e9814c66d8d51cea974390963a6944bc9d73) Conflicts: oox/source/export/drawingml.cxx Change-Id: Iff7c769329b42939833056b727b070f6a60da5e3 Reviewed-on: https://gerrit.libreoffice.org/18491 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-09-11windows opengl: make sure mpLastContext is indeed the current contextMiklos Vajna
There were two problems here: 1) The OpenGLContext ctor registered the instance on the list of contexts, but platform-specific call (e.g. wglMakeCurrent()) was only made later. Add a registerAsCurrent() member function that helps ensuring that the last item in the context list is indeed the current context. 2) OpenGLContext::prepareForYield() is called without the solar mutex being locked, but it still assumes that the last context in the context list is the thread's current context, which may not be true. The result is that during JunitTest_sd_unoapi, we end up in a situation like: debug:4640:5240: OpenGLContext::registerAsCurrent: wglGetCurrentContext() is 00010001, pSVData->maGDIData.mpLastContext is 00FA65F8 debug:4640:7944: OpenGLContext::registerAsCurrent: wglGetCurrentContext() is 000D0003, pSVData->maGDIData.mpLastContext is 00FA6C70 debug:4640:5240: OpenGLContext::prepareForYield: start, wglGetCurrentContext() is 00010001, pSVData->maGDIData.mpLastContext is 00FA6C70 I.e. one thread registers as current, an other registers as current, too (while the other thread has the solar mutex), then once the original thread wants to release the solar mutex, the real current context and the last item in the context list won't match, so the assert at the end of prepareForYield() will fail. Fix this by releasing the GL context in WinSalInstance::DestroyFrame(). With this, JunitTest_sd_unoapi passes on Windows with GL enabled. Change-Id: Icfb9c65c871586b5df69b5a2ab3aa91843dfc799 Reviewed-on: https://gerrit.libreoffice.org/18473 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com> Signed-off-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/18488
2015-09-08tdf#94006 - need an explicit dispose for GLContext's SystemChildWindow.Michael Meeks
Previously we would get an explicit ~OpenGLContext - and potentially leave FMR's around for other OGC users, now we treat the other users properly - we need an explicit dispose() to get Window::dispose ordering right. Reviewed-on: https://gerrit.libreoffice.org/18412 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Conflicts: vcl/source/window/openglwin.cxx Change-Id: I5edcbd73399b6db3dbcfb391570f364f9ab0c70d Reviewed-on: https://gerrit.libreoffice.org/18414 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2015-09-08tdf#94006 - re-factor and fix OpenGLContext mis-use.Michael Meeks
Squashes two related patches from master: Don't use rtl::Reference for the global / list state, so the ref-count reflects the number of real users. Hold a reference during ~OpenGLContext. Fix mis-use in: gltf rendering, OpenGL canvas, GL transitions & GL capable (charts) Avoid GLX operations on un-initialized contexts. Signed-off-by: Miklos Vajna <vmiklos@collabora.co.uk> Conflicts: vcl/source/opengl/OpenGLContext.cxx vcl/workben/vcldemo.cxx canvas/source/opengl/ogl_spritedevicehelper.hxx Change-Id: I7ea29b544d53bb80b25fa6663d39f345bf8f4e64
2015-09-08svx: fix font rendering in the style previewMichael Stahl
If the style does not actually have any font items, as is the case for frame, page and number styles in Writer, the maFont will be default-initialized and the maPixelSize incorrect. Avoid using these variables. (cherry picked from commit 07df816d73884d094f0f56be022aa0b4eff00b2d) Change-Id: I084cd8faa90a3d53310ceec55e8dae3af3dd586c Reviewed-on: https://gerrit.libreoffice.org/18383 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
2015-09-08tdf#91383: sw: prevent style preview from actually creating stylesMichael Stahl
The dialog/sidebar should not actually create styles that don't exist yet, because it messes up Undo and the (unused) styles are then unnecessarily exported to documents. Due to Writer's ... unusual SwDocStyleSheet class this is a bit tricky. Add a new function GetItemSetForPreview() and use it from the style preview code. The implementation does not use FillPhysical so will temporarily create and then delete any non-existing styles. Skip page and numbering styles for now since they don't have a useful preview. (regression from ca95307638207db5d662059aa61594151a13e927) (cherry picked from commit 93067f37cf22aa119db5878c4345fea500cbbb42) -Werror,-Wreturn-type (cherry picked from commit 0ed64030f17849ea943800343003c5ec3f4f1388) Change-Id: Id6ee30ea467fc24c991547a4c23a9ce14fdd86c7 Reviewed-on: https://gerrit.libreoffice.org/18381 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
2015-09-05tdf#93928 don't hide the zoom slider and its handle with a tooltipLászló Németh
Change-Id: I8e5a3a02e80b845ef65dfed35cc3c324197ed88c Reviewed-on: https://gerrit.libreoffice.org/18345 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2015-09-03tdf#93870 - GL accel. via VCL canvas for presentations when GL enabled.Michael Meeks
Change-Id: Ia31a88cb3d9e6baa987b22f77f407a3f592031f1 Reviewed-on: https://gerrit.libreoffice.org/18285 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/18295
2015-09-02tdf#93867 - clear current GL context before thread switch.Michael Meeks
Fixes regression from otherwise a nice cleanup in: d20092259c7ea63885a539f911788715f8147ee9 Also get polarity of debug logging only with a context right. Change-Id: Id322471f01e5656e758aefc57b0d4d5ad073ec54 Reviewed-on: https://gerrit.libreoffice.org/18282 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2015-09-02opengl: Don't cache the menubar background.Jan Holesovsky
It can change based on the _toolbar_ size. The toolbar itself is fine though; it may depend on the menubar size, but that should be constant. Change-Id: Id2c68c89f4ec0774bc74b8c4a5b9a5e59e22137f Reviewed-on: https://gerrit.libreoffice.org/18279 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2015-09-02Don't call GL debugging methods if there is no context.Michael Meeks
Change-Id: Ie6b824953b8ad19fd1b6a146cb6bf52bbb152ef7 Reviewed-on: https://gerrit.libreoffice.org/18277 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2015-09-02tdf#93859 opengl - don't cache radiobuttons, refactor code dupl.Tomaž Vajngerl
Radio buttons and check boxes can't be cached with current framework as they have an additional rendering state provided in additional data. Refactor code to control which controls can be cached in one place only. Change-Id: I095a01cbf5dde013247d70ada89020f64c8c6510 (cherry picked from commit 54962518fa2ca3860fcb4d2c772dea21b22a184e) Reviewed-on: https://gerrit.libreoffice.org/18271 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2015-09-02tdf#93532 - Switching to 64-bit checksumMarco Cecchetti
Added a C++ and a GLSL implementation of a 64-bit CRC algorithm. Changed hardcoded checksum value in ooxmlimport unit test (testN777345). Change-Id: I16bb985a14866775efda49e21fe033ff64645896 Reviewed-on: https://gerrit.libreoffice.org/18254 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2015-09-01tdf#93772 - handle framebuffer unbinding on GL context switch.Michael Meeks
Also start gl tests in vcldemo: $ SAL_FORCEGL=1 vcldemo --gltests Change-Id: I8f0022770d57cd60c830659e3f7fcc0721320a10 Reviewed-on: https://gerrit.libreoffice.org/18135 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2015-09-01tdf#93751 - ensure textures are unbound from framebuffers post destroy.Michael Meeks
Change-Id: I81aec0e6f8db57905826c54c3442528be6068700 Reviewed-on: https://gerrit.libreoffice.org/18184 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2015-09-01vcl opengl: fix setting up debug context on WindowsMiklos Vajna
At least with my AMD card, in case of SAL_FORCEGL=1 the startup crashes quite early. DrMemory says: ~~Dr.M~~ Error #1: UNADDRESSABLE ACCESS: writing 0x00001414-0x00001415 1 byte(s) ~~Dr.M~~ # 0 atioglxx.dll!DrvPresentBuffers +0xd6ea6 (0x09a248f6 <atioglxx.dll+0x1248f6>) ~~Dr.M~~ # 1 atioglxx.dll!DrvPresentBuffers +0x3c069c (0x09d0e0ed <atioglxx.dll+0x40e0ed>) ~~Dr.M~~ # 2 vcllo.dll!OpenGLContext::InitGLEW [c:\lo\master\vcl\source\opengl\openglcontext.cxx:949] ~~Dr.M~~ # 3 vcllo.dll!OpenGLContext::ImplInit [c:\lo\master\vcl\source\opengl\openglcontext.cxx:866] ~~Dr.M~~ # 4 vcllo.dll!OpenGLContext::init [c:\lo\master\vcl\source\opengl\openglcontext.cxx:786] ~~Dr.M~~ # 5 vcllo.dll!WinOpenGLSalGraphicsImpl::CreateWinContext [c:\lo\master\vcl\opengl\win\gdiimpl.cxx:36] Turns out that in order to enable the GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB extension, the GL context must be created with WGL_CONTEXT_DEBUG_BIT_ARB set. It seems that other drivers did not enforce this so far, but in this case the driver just crashes without this. Fix the problem by splitting out the debug setup part of InitGLEW() into a new InitGLEWDebugging(), and at least on Windows call it only after wglCreateContextAttribsARB() and wglMakeCurrent(). Additionally make sure that in the debug case the necessary flag is passed to wglCreateContextAttribsARB(). Conflicts: vcl/source/opengl/OpenGLContext.cxx Change-Id: I6b77e0c06fd85fdae0386a0801f1de1838524586 Reviewed-on: https://gerrit.libreoffice.org/17750 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk> Reviewed-on: https://gerrit.libreoffice.org/18219 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
2015-08-31Avoid bogus warnings with VCL_GL_INFO, by making the optimizer work.Michael Meeks
Change-Id: Ia4afcd58b4ce0b4d6d9708a4cede0857b7633b9e Reviewed-on: https://gerrit.libreoffice.org/18171 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>