Commit Graph
188 Commits
Author SHA1 Message Date
Miklos Vajna 15a524a1ed embeddedobj: implement XServiceInfo in the various embedded obj implementations
This gives UNO clients a reliable way to detect e.g.
OSpecialEmbeddedObject, where it's expected that double-clicking on the
object doesn't do anything.

Change-Id: I595453490b157b64214cd7359da1e3a3c959191d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120274
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2021-08-10 22:02:00 +02:00
Noel Grandin 86abf3a682 create comphelper::OMultiTypeInterfaceContainerHelper2 and use it
based on OInterfaceContainerHelper2 which is considerably
faster than the original OInterfaceContainerHelper

Change-Id: I9c8b6d0e5382018824bf7188a26343703abf2d51
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120161
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-07 21:34:33 +02:00
Stephan Bergmann 10d29c390d throw() -> noexcept, part 2/3: Automatic loplugin:noexcept rewrite
Change-Id: I076f16d0536b534abf0ced4d76051eadb4c0e033
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114949
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-05-02 17:02:28 +02:00
Armin Le Grand (Allotropia) f4c66a2272 tdf#141529 sync linked OLE save(s) with hosting file save(s)
Before deactivating a linked OLE saved it and overwrote the
original, even when not saving the hosting document at all.
This is not intuitive from user perspective and may lead
to unexpected data loss (of the OLE content).
Reported case was especially about closing the hosted document
without saving in the understandable believe that that way the
changed OLE will not be changed on external medium.
Added mechanism for linked OLE to hold data in a hidden local
temp file, synching/writing back on hosting file save. Most
complicated was adapting the 'break link' case and ensuring
other cases to work, but looks good now from my POV

Change-Id: I7f63d667820b2d9725abc598a9dd7360be1f8d5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113793
Tested-by: Armin Le Grand <Armin.Le.Grand@me.com>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2021-04-08 13:22:09 +02:00
Noel Grandin 3e12b2fb64 use unique_ptr in OCommonEmbeddedObject
Change-Id: I2258838cbbe242dbe31500ecd6f29c315a335b71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112743
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-20 09:30:32 +01:00
Stephan Bergmann 097fcd045e loplugin:refcounting (clang-cl)
Change-Id: Ifa54eed0a772b658d266e9e42be5f5232e7a6b79
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111812
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-03-03 08:49:48 +01:00
Gabor Kelemen a5389cb5dd tdf#42949 Fix new IWYU warnings in directories [e-f]*
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I963aa5fb892a0be36212fd0587b69f217f017947
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105469
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-11-12 10:53:07 +01:00
George Bateman 3d7e089a3d tdf#124176 Use #pragma once in embeddedobj
This commit was carried out by a Python script, source of which
is at https://bugs.documentfoundation.org/show_bug.cgi?id=124176#c97.

Change-Id: Ia481a860be174b817106ac13eccb5e53ee070aec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102577
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-09-13 17:52:50 +02:00
Noel Grandin 7405145605 embeddedobj/msole: create instances with uno constructors
See tdf#74608 for motivation.

Change-Id: I11ad7cf96d65332e418f1854803d62a30bacc7e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99163
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-22 17:48:12 +02:00
Noel Grandin 00c7afecc3 embeddedobj/util: create instances with uno constructors
See tdf#74608 for motivation.

Change-Id: I52734cc1420ae7915da3191cf94ac61287a0983a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99162
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-22 08:29:47 +02:00
Noel Grandin aa3e3efbfe compact namespace in editeng..extensions
Change-Id: Ie93ac69592c3625b8e2e5db3619ce24597a07a7e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93722
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-08 21:15:41 +02:00
Noel Grandin 8544e0a20b m_aVerbTable can be a std::map
instead of using the heavyweight Sequence datastructures

Change-Id: Ica6b30490f2a1b4367acbf0341ecc86701c21926
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93641
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-07 19:28:23 +02:00
Gabor Kelemen 9fc8b685f9 tdf#42949 Fix IWYU warnings in embeddedobj/
Except for test/ which seems to be unused anyway

Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I9d0b75dbb260f05390b513be75a4bdd24647c91b
Reviewed-on: https://gerrit.libreoffice.org/80077
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-10-11 11:32:08 +02:00
Noel Grandin 7b171dbfb5 loplugin:constmethod in embeddedobj..extensions
Change-Id: Iec6a9ff8b62ac1986cca205435273b64b71f33cd
Reviewed-on: https://gerrit.libreoffice.org/79539
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-09-26 09:18:39 +02:00
Andrea Gelmini f545ee2800 Fix typo
Change-Id: I627d0d9899226eb39a19bde1ecf79f04ca26e633
Reviewed-on: https://gerrit.libreoffice.org/72717
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-22 07:08:25 +02:00
Andrea Gelmini 50b858b96b Fix typo
Change-Id: I9ccd24ad6baf3e3ebe6c988ad14df0f5f7c96ca0
Reviewed-on: https://gerrit.libreoffice.org/63392
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2018-11-15 01:21:50 +01:00
Miklos Vajna 72e6269b88 sw: fix modification of ole obj native data during HTML import
It is expected that if you load an OLE2 storage (from reqif-xhtml) and
you save it as ODT, the OLE2 data is not modified. This was almost the
case, but we insisted on removing the OLE2 preview from the storage.

Add a new flag to OleEmbeddedObject, so import filters can opt in for
not modifying the OLE2 data.

[ The nice situation is that we already had a test file which had a
preview stream in the OLE2 storage, so we can easily assert there that
the size doesn't change. ]

Change-Id: I9b8b29f015dd4f2513e51a1066767218580cb5d8
Reviewed-on: https://gerrit.libreoffice.org/63381
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2018-11-14 19:20:43 +01:00
Jochen Nitschke 8ddca0648a tdf#42949 remove unused compheler includes ..
and fix the fallout

Change-Id: I15bc5d626f4d157cbc69a87392078b41e621d14e
Reviewed-on: https://gerrit.libreoffice.org/54882
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-06-05 10:56:36 +02:00
Miklos Vajna 0258bcdedd sw HTML filter: handle embedded ODF content in xhtml/reqif mode
Embedded native data (what we don't parse just carry on) and real OLE2
embedding already worked, this adds the case where the actual content is
ODF, just inside OLE2.

The DOC import/export had support for handleing ODF content inside OLE2,
so reuse that code: add new functions to SvxMSDffManager for import
purposes and reuse SvxMSExportOLEObjects for export purposes.

Change-Id: I0acf65d4bf29af896b8f1dd625e8672050aae350
Reviewed-on: https://gerrit.libreoffice.org/55088
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-05-30 22:22:20 +02:00
Miklos Vajna 5f4d499493 embeddedobj: document OCommon/DummyEmbeddedObject
Change-Id: Ia0024945fa88c14dce4da571ddfd3281e1e41da7
Reviewed-on: https://gerrit.libreoffice.org/55022
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-05-30 09:04:12 +02:00
Noel Grandin 8f0167d0e0 loplugin:useuniqueptr in OleEmbeddedObject
Change-Id: Ia455b86ec14320234935bce32c0bc33a88db036a
Reviewed-on: https://gerrit.libreoffice.org/53875
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-05-07 08:32:51 +02:00
Miklos Vajna 781c118171 sw XHTML import: support OLE2-in-RTF objects
If you like layering things on top of each other, then this commit
message is for you. So it's possible to have a PPTX file in the
following wrappers:

- wrap PPTX in a binary OLE2 container
- wrap that in an OLE1 container
- wrap that in an RTF fragment
- wrap that in an XHTML fragment (in a ReqIF file)

Turns out that only the RTF and OLE1 unwrapping was missing, the rest
worked already, so implement the missing piece in a new SwReqIfReader
namespace.

Finally extend OleEmbeddedObject to be able to read its native data
stream when the object is opened, reading it from the storage would
fail, as the object already opened the storage stream.

Change-Id: I2934c9fb7474e981ff6bb2f7eb253a3a86cfd98b
Reviewed-on: https://gerrit.libreoffice.org/51772
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-03-23 14:52:50 +01:00
Noel Grandin 4b030651a0 loplugin:passstuffbyref improved return in various
Change-Id: I0a8282d8e0d9575b055243073fc89a7d6b67b560
Reviewed-on: https://gerrit.libreoffice.org/47173
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-29 18:19:37 +01:00
Stephan Bergmann 6f4f5677ac No need to keep these whitelisted functions decorated with SAL_CALL
The only effect SAL_CALL effectively has on LO-internal code is to change non-
static member functions from __thiscall to __cdecl in MSVC (where all other
functions are __cdecl by default, anyway).  (For 3rd-party code, it could be
argued that SAL_CALL is useful on function declarations in the URE stable
interface other than non-static member functions, too, in case 3rd-party code
uses a compiler switch to change the default calling convention to something
other than __cdecl.  But loplugin:salcall exempts the URE stable interface,
anyway.)

One could argue that SAL_CALL, even if today it effectively only affects non-
static member functions in MSVC, could be extended in the future to affect more
functions on more platforms.  However, the current code would already not
support that.  For example, 3af500580b
"loplugin:salcall fix functions" changed FrameControl_createInstance in
UnoControls/source/base/registercontrols.cxx to no longer be SAL_CALL, even
though its address (in ctl_component_getFacrory, in the same file) is passed to
cppuhelper::createSingleFactory as an argument of type
cppu::ComponentInstantiation, which is a pointer to SAL_CALL function.

Change-Id: I3acbf7314a3d7868ed70e35bb5c47bc11a0b7ff6
Reviewed-on: https://gerrit.libreoffice.org/46436
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-12-14 13:03:06 +01:00
Szymon Kłos 00b506ff03 Embedded documents: show title in menu entries
Change-Id: I478d81798e6f1e2d96e570cb6788a438c6a0be62
Reviewed-on: https://gerrit.libreoffice.org/40079
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2017-07-18 11:27:46 +02:00
Szymon Kłos 68cf76917e Show document title for embedded documents
Embedded documents had "Untitled" name.
This patch shows "<root document> (Embedded document)"
string in the title bar.

Change-Id: I6283240415f9e0c07c4c69672732a7c14eea9f5d
Reviewed-on: https://gerrit.libreoffice.org/39835
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-07-13 13:37:52 +02:00
Szymon Kłos 427c763a1a tdf#108545 tdf#108544: DOCX, XLSX embedded in DOC
When on Windows the MSO wasn't installed DOCX and XLSX
embedded documents weren't accessible. General OLE error
was shown after doubleclick on the object.

Linux solution is reused, OLE storage is extracted to
get the document inside.

Change-Id: If4d00fddad8e127fcf1a222836896d2907549d0c
Reviewed-on: https://gerrit.libreoffice.org/39814
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-07-13 11:21:04 +02:00
Noel Grandin 8c8f2a5285 remove unnecessary explicit linefeeds from end of SAL and OSL log calls
Change-Id: I3fa363c8e76e6cfb297f4ec346e3f031c09d6fbf
Reviewed-on: https://gerrit.libreoffice.org/36727
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-21 09:15:11 +02:00
Stephan Bergmann e57ca02849 Remove dynamic exception specifications
...(for now, from LIBO_INTERNAL_CODE only).  See the mail thread starting at
<https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html>
"Dynamic Exception Specifications" for details.

Most changes have been done automatically by the rewriting loplugin:dynexcspec
(after enabling the rewriting mode, to be committed shortly).  The way it only
removes exception specs from declarations if it also sees a definition, it
identified some dead declarations-w/o-definitions (that have been removed
manually) and some cases where a definition appeared in multiple include files
(which have also been cleaned up manually).  There's also been cases of macro
paramters (that were used to abstract over exception specs) that have become
unused now (and been removed).

Furthermore, some code needed to be cleaned up manually
(avmedia/source/quicktime/ and connectivity/source/drivers/kab/), as I had no
configurations available that would actually build that code.  Missing @throws
documentation has not been applied in such manual clean-up.

Change-Id: I3408691256c9b0c12bc5332de976743626e13960
Reviewed-on: https://gerrit.libreoffice.org/33574
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-01-26 12:54:43 +00:00
Noel Grandin 2bbf21aade use rtl::Reference in DocumentHolder
instead of manual acquire/release

Change-Id: Id795dca5ff9e392fa2649f4721a73ce3ffd6de2c
2017-01-23 07:56:34 +02:00
Noel Grandin 4f5b22b93a use rtl::Reference in OCommonEmbeddedObject
instead of manual acquire/release

Change-Id: Ie641f72687a05e1cd3cf697d551f9c6d21ac4487
2017-01-23 07:56:34 +02:00
Stephan Bergmann 8ec11cea96 loplugin:dynexcspec (clang-cl), embeddedobj
Change-Id: Iccb2a91319f8cbc300f0e428b06b0580432089a6
2017-01-20 11:53:29 +01:00
Stephan Bergmann 9cc666630d New loplugin:dynexcspec: Add @throws documentation, embeddedobj
Change-Id: Icf9a507a2b1eec0ace22e727bdf7220bfe7096b8
2017-01-19 18:03:21 +01:00
Noel Grandin 37192ccc89 use rtl::Reference in OleEmbeddedObject
instead of raw pointer and manual acquire/release

Change-Id: If626f34f3e0d7689567e2d64f94a84e5c8aae28f
2017-01-19 13:06:47 +02:00
Noel Grandin 53f21cde33 new loplugin: useuniqueptr: embeddedobj
Change-Id: I4c1302061a3607540af7de7a45ba060d3c0b403b
Reviewed-on: https://gerrit.libreoffice.org/33153
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-16 13:27:25 +00:00
Stephan Bergmann 5eab3e5eec clang-cl loplugin: embeddedobj
Change-Id: Id8359ff2bc2ae177837f5c58f949d40b818a8684
Reviewed-on: https://gerrit.libreoffice.org/29869
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-10-16 14:19:19 +00:00
Noel Grandin a2b77b4368 loplugin:singlevalfields in basic..idl
Also fix obvious bug in the initialisation of the
connectivity::odbc::OConnection::m_bClosed field.
Probably closes some kind of connection leak there.

Change-Id: I04579cf91bcd6d6c51c697d83971da4142743a82
Reviewed-on: https://gerrit.libreoffice.org/28932
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-16 08:30:26 +00:00
Stephan Bergmann 91dd2db17b loplugin:override: No more need for the "MSVC dtor override" workaround
The issue of 362d4f0cd4 "Explicitly mark
overriding destructors as 'virtual'" appears to no longer be a problem with
MSVC 2013.

(The little change in the rewriting code of compilerplugins/clang/override.cxx
was necessary to prevent an endless loop when adding "override" to

  OOO_DLLPUBLIC_CHARTTOOLS    virtual ~CloseableLifeTimeManager();

in chart2/source/inc/LifeTime.hxx, getting stuck in the leading
OOO_DLLPUBLIC_CHARTTOOLS macro.  Can't remember what that
isAtEndOfImmediateMacroExpansion thing was originally necessary for, anyway.)

Change-Id: I534c634504d7216b9bb632c2775c04eaf27e927e
2016-09-13 13:19:22 +02:00
Noel Grandin 508c95f1b6 improve passstuffbyref return analysis
Change-Id: I4258bcc97273d8bb7a8c4879fac02a427f76e18c
Reviewed-on: https://gerrit.libreoffice.org/27317
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-27 06:48:25 +00:00
Guillaume Smaha 2986e54412 Fix tdf#99506: Insert OLE object with icon failed
Change-Id: I7fe5814b268e4c70977699edaa89926ca3fda92e
Reviewed-on: https://gerrit.libreoffice.org/25080
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2016-05-24 07:03:45 +00:00
Noel Grandin 62633dfe02 clang-tidy performance-unnecessary-value-param in various
Change-Id: I7168d44dab8e6a8e37bb7920d744ff32f5e52907
Reviewed-on: https://gerrit.libreoffice.org/24019
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-14 11:37:19 +00:00
Noel Grandin b8eb294651 loplugin:passstuffbyref in various
Change-Id: I80070c83204e531c2f599f8a56193d6ffe0e5022
2016-04-14 10:24:47 +02:00
Jochen Nitschke 4c7ec9f112 cleanup: remove unused com/sun/star/uno includes
Sequence.h(xx), Any.h(xx) and Type.h(xx)
and remove unused using-declarations from these files.

Add a few missing includes provided by them.

Change-Id: I6b91b6d1fdf9d0496dd546c0aab9bdcc6831a5d4
Reviewed-on: https://gerrit.libreoffice.org/23805
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-12 06:38:26 +00:00
Noel Grandin 2087484c65 use consistent #define checks for the Windows platform
stage 2 of replacing usage of various checks for the windows platform
with the compiler-defined '_WIN32' macro

In this stage we focus on replacing usage of the WIN macro

Change-Id: Ie8a4a63198a6de96bd158ecd707dadafb9c8ea84
Reviewed-on: https://gerrit.libreoffice.org/22393
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-02-17 11:33:57 +00:00
Noel Grandin 752cd07d08 InterfaceContainer2 with vector instead of Sequence
create an InterfaceContainer2 class to replace InterfaceContainer.
It uses a std::vector instead of a Sequence for the mutable listener
list, which provides far better performance.

Switch all our internal use-sites to the new class.

Change-Id: I6b56cfa511ded2395faa22e68fab3b2f16c3cb88
2016-01-25 08:52:03 +02:00
Stephan Bergmann 13ca560d13 Fix memory leak
Change-Id: I82ce013a42ac1cd9bb4f3842e9fba8fbc6056b3c
2016-01-13 08:04:49 +01:00
Noel Grandin 004803c0d8 loplugin:unusedfields in desktop
Change-Id: Ic816a7faf4d357d16c13f67533b3b409a531d14c
2015-12-23 08:13:54 +02:00
Stephan Bergmann 09efeeb41a loplugin:nullptr (automatic rewrite)
Change-Id: I225d5fe2e3476121e2ca307d815d5615e32311d7
2015-11-10 10:31:24 +01:00
Stephan Bergmann b36963c0a6 Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY code
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
2015-10-12 17:52:29 +02:00
Noel Grandin e6534a6099 com::sun::star->css in embeddedobj/
Change-Id: Ia04fc28ce8e1d70f86520edf2df8c98f7b455465
Reviewed-on: https://gerrit.libreoffice.org/19024
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-10-01 08:03:29 +00:00