Commit Graph
112 Commits
Author SHA1 Message Date
Balazs Varga c00a23393a tdf#157943 embeddedobj: refuse OLE-link edit when source is in use
After reverting 2b4cd99d, editing an OLE link whose source is already
open in this LO instance produces a sharing-violation on save (the
intra-process scenario tdf#126742 was working around).

Detect the conflict at doVerb, gated to verbs targeting a visible
state so internal RUNNING transitions aren't intercepted. If the
source is loaded as another visible frame in this LO, switch to that
window (matches MSO behaviour). Otherwise probe for any .~lock or
MSO ~$ file - foreign user, hidden own frame, or stale own lock from
a crash - and show an async warning with the lock owner. In all
cases the OLE working copy is never created. Skipped in headless
mode.

Change-Id: Ic87bb6f073b0b04ec47597cc15f2c5a83cc2bffc
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2004
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204940
Reviewed-by: Balazs Varga <balazs.varga@collabora.com>
Tested-by: Jenkins
2026-05-10 09:28:22 +02:00
Noel Grandin ddf32ef202 loplugin:ostr in embeddedobj
Change-Id: I644042d0ca6041174a8e11f780c546bcf7d4571a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167282
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-05-08 08:15:07 +02:00
Sarper Akdemir cb685f603e tdf#158375: make it possible to hot disable embedded objects
Do not require a reload of the current document for the
embedded objects to be disabled.

Also make sure the existing active embedded objects are
disabled when DisableActiveContent is enabled via options
dialog.

Change-Id: I5a8f302af0cac64575c3e5ec6dbe71ec50a15442
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164367
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2024-03-07 12:30:15 +01:00
Mike Kaganski 0fa827dbb2 Drop std::as_const from css::uno::Sequence iterations
Obsoleted by commit 2484de6728 (Remove
non-const Sequence::begin()/end() in internal code, 2021-10-15) and
commit fb3c04bd19 (Drop non-const
Sequence::operator[] in internal code, 2021-11-05).

Change-Id: Idbafef5d34c0d4771cbbf75b9db9712e504164cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162640
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-27 12:43:48 +01:00
Caolán McNamara 183e34a3f8 extract a OCommonEmbeddedObject::SetInplaceActiveState for reuse
no behaviour change intended

Change-Id: Ia1d12aa5c9afdc1347f6d4364bc6a0b7f41ee168
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150341
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-13 16:44:49 +02:00
Noel Grandin c59ede12ff this data does not need to be per-object
Change-Id: I7cf9486d80be103c2e9affd805c7bdac46fafe9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134838
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-24 08:07:49 +02:00
Juergen Funk cf650ceaaf tdf#147590 update OLE object after document refresh
Regression from b099da78a6f0b3e120f706714003b05d84d11e70
we didn't update linked OLE document after document reload

Change-Id: I8e52f6430f454b276cb43449c6f7a3b0e07e909f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130692
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
Tested-by: Jenkins
2022-05-10 09:02:01 +02:00
Mike Kaganski e3d1fb97fc Prepare for removal of non-const operator[] from Sequence in embeddedobj
Change-Id: I19432a1e506526fdc1cd98625d9cfff12ea2f973
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124361
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-30 00:30:58 +02:00
Mike Kaganski 2484de6728 Remove non-const Sequence::begin()/end() in internal code
... to avoid hidden cost of multiple COW checks, because they
call getArray() internally.
This obsoletes [loplugin:sequenceloop].

Also rename toNonConstRange to asNonConstRange, to reflect that
the result is a view of the sequence, not an independent object.

TODO: also drop non-const operator[], but introduce operator[]
in SequenceRange.

Change-Id: Idd5fd7a3400fe65274d2a6343025e2ef8911635d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123518
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-15 10:36:36 +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
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
homeboy445 7bd5c31472 tdf#42982 Improved UNO API error reporting
Change-Id: I450ea0b1a19381c47370633d124c2ba906415987
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108356
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
2021-01-07 16:03:34 +01:00
Noel Grandin b33ff1a083 use for-range on Sequence in e*
Change-Id: I77dc12356ee45b1dee9acaf8a73dea81588822d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94554
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-20 21:31:13 +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
Noel Grandin 1c3929a0a1 loplugin:flatten in embeddedobj,emfio
Change-Id: Ibaf5e1a4db1088322cf8c5e127d328b140406197
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92196
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-14 20:39:00 +02:00
Serge Krot a91e19e308 tdf#131146 Linked Calc: changes are lost in last edited cell
Change-Id: I768ccc1d98a0785806986a6ffc70de057991e08a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90009
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-03-06 16:26:14 +01: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
Andrea Gelmini 17f9aa97f8 Fix typos
Change-Id: I4671d0f13e67b1272fd7c24bb6a2a7679c75f20b
Reviewed-on: https://gerrit.libreoffice.org/78797
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-09-10 11:58:13 +02:00
Muhammet Kara 9083a07e98 LOK: Proper use of isMobile() on embedded charts
We are moving the isMobile() check to a higher layer,
to avoid changing a published API method

This is the follow-up of the commit feae0c186e700f6a48c3fad124fb4795ad1a8f83

Change-Id: Ia84baa36d66d5832e00e6466f5206631df0de443
Reviewed-on: https://gerrit.libreoffice.org/78277
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2019-08-29 18:20:46 +02:00
Muhammet Kara f8b2a27365 LOK: per-view support for isMobile()
embeddedobj/source/commonembedding/embedobj.cxx will have
a follow-up patch, which also removes the -1 case.

It is left out because it has many call-sites,
and inheritance/override relations.

Change-Id: Iaf00530916f3772f7aec151cbd358f255b7aab24
Reviewed-on: https://gerrit.libreoffice.org/78272
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2019-08-29 16:38:36 +02:00
Tamás Zolnai e56d143c36 lok: Disable chart editing on mobile
Disabled editing of all embedded objects.

[ Miklos: motivation is that the UI is complex and the small mobile
screen is not suitable to expose this functionality as-is. Disable till
a more compact UI can be exposed. ]

Change-Id: Id1c598c84adc12b8b52d006992d85dcae5601ad9
Reviewed-on: https://gerrit.libreoffice.org/78270
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2019-08-29 15:49:19 +02:00
Noel Grandin 23f60bbf28 tdf#126877 crash on inserting floating frame
regression from
    commit 5043421fdc
    Date:   Fri Jul 19 14:05:10 2019 +0200
    loplugin:referencecasting in embeddedobj

OSpecialEmbeddedObject is playing games and effectively "unimplementing"
an interface it's superclass implements by doing custom stuff in
OSpecialEmbeddedObject::queryInterface.

So lets rather implement this in a more direct and obvious way.

Change-Id: I341b8e0b6acafac80cbd55f745811b73d2593585
Reviewed-on: https://gerrit.libreoffice.org/77580
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-16 19:35:43 +02:00
Noel Grandin 5043421fdc loplugin:referencecasting in embeddedobj
Change-Id: I11a80e540b2a7da8d8037ba45e176d5c4d85374c
Reviewed-on: https://gerrit.libreoffice.org/75951
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-19 21:49:20 +02:00
Andrea Gelmini 13e6b43886 Fix typo
Change-Id: Ibaafe29797523290f0fe17be7304c99a70752eda
Reviewed-on: https://gerrit.libreoffice.org/72712
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-22 07:08:53 +02:00
Mike Kaganski 5a824268df Don't use resettable/clearable guard where plain guard is enough
Also use scope where possible. This allows to limit guard scope at
language level; visualises the scope clearly; and helps avoiding
errors like fixed in commit 61e4437c85.

Change-Id: Ifeca96e2df8e8a0897770d9546b2536806275f41
Reviewed-on: https://gerrit.libreoffice.org/70376
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-07 17:53:04 +02:00
Noel Grandin 485e238bd1 loplugin:indentation in editeng..extensions
Change-Id: If7d7c400fb5d24e48b6cd02b364a8ac7fa23505d
Reviewed-on: https://gerrit.libreoffice.org/67538
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-08 14:37:05 +01:00
Gabor Kelemen 3fb5f7181d Add missing sal/log.hxx headers
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it.
This is a continuation of commit 6ff2d84ade to be able to remove those unneeded includes.

This commit adds missing headers to every file found by:
grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG')
to directories from dbaccess to extensions

Change-Id: I4d15aa35e11664ef78c836ffc2937c7e0bb6ea59
Reviewed-on: https://gerrit.libreoffice.org/58165
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-08-01 09:49:07 +02:00
Noel Grandin 3a51daeace Improve re-throwing of UNO exceptions
(*) if we are already throwing a Wrapped*Exception, get the
exception using cppu::getCaughtexception.

(*) when catching and then immediately throwing UNO exceptions,
use cppu::getCaughtException to prevent exception slicing

(*) if we are going to catch an exception and then
immediately throw a RuntimeException, rather throw a
WrappedTargetRuntimeException and preserve the original exception information.

Change-Id: Ia7a501a50ae0e6f4d05186333c8517fdcb17d558
Reviewed-on: https://gerrit.libreoffice.org/54692
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-05-25 21:46:49 +02:00
Jochen Nitschke 9401c7c28a remove unused processfactory.hxx includes
and fix fallout

Change-Id: Id06bf31f2075111e426ba40c84c885ae70697bee
Reviewed-on: https://gerrit.libreoffice.org/52206
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2018-04-01 12:11:26 +02:00
Marco Cecchetti a3646b25ac lok - chart - state switch issue triggers an OLE general error msg box
Change-Id: I6addd95d1ad3461b6e21328512cbd1301a36cd19
Reviewed-on: https://gerrit.libreoffice.org/50368
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/50482
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Marco Cecchetti <mrcekets@gmail.com>
2018-03-02 11:56:40 +01:00
Noel Grandin 7d8e94444d convert a<b?a:b to std::min(a,b)
with something like

    git grep -nP '(.*)\s*<\s*(.*)\s*\?\s*\g1\s*:\s*\g2' -- *.?xx

Change-Id: Id5078b35961847feb78a66204fdb7598ee63fd23
Note: we also convert a>b?b:a
Reviewed-on: https://gerrit.libreoffice.org/47736
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-15 07:26:17 +01:00
Noel Grandin f14b9d3029 convert (a>b?a:b) to std::max(a,b)
with something like:
   git grep -nP '(.*)\s*>\s*(.*)\s*\?\s*\g1\s*:\s*\g2'

Change-Id: I60b9a3a2a09162bc0de4c13fdde2c209696e5413
Reviewed-on: https://gerrit.libreoffice.org/47602
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-11 07:35:43 +01:00
Stephan Bergmann 5775992a57 loplugin:includeform: embeddedobj
Change-Id: If8cfe9da299d3d183407c5e7a00240f246f000a5
2017-10-23 22:46:09 +02:00
Noel Grandin d3971ec256 new loplugin:blockblock
Change-Id: I7b68b70fa4c7234e8882f7627026959a596968fd
Reviewed-on: https://gerrit.libreoffice.org/43025
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-03 08:41:11 +02:00
Noel Grandin 3a481dde03 loplugin:flatten in editeng..extensions
Change-Id: I2b68f5640471ea827c09af1b5a319fb526a53b4b
Reviewed-on: https://gerrit.libreoffice.org/42579
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-21 15:29:20 +02:00
Noel Grandin 539c75b910 strip some linefeeds from the end of debug output
Change-Id: I2821969d86b7f8cee53404e6a0acfbebbe53b3ac
Reviewed-on: https://gerrit.libreoffice.org/39824
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-12 08:43:14 +02:00
Jochen Nitschke febbad7263 cleanup unused css/frame/* includes
Change-Id: I173a29fd1ee889127369d2bc2fce8e010b89ca65
Reviewed-on: https://gerrit.libreoffice.org/38633
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-12 13:05:38 +02:00
Stephan Bergmann 5ce42c2165 Some simplifications, using UNO_QUERY_THROW
Change-Id: Ieee649609a7f01b4d51ed6ed78a8ae809ca61d9e
Reviewed-on: https://gerrit.libreoffice.org/34268
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-02-15 14:18:47 +00:00
Stephan Bergmann 6dce9c6757 Add missing #includes
...and remove some unncessary using directives/declarations, in preparation of
removing now-unnecessary #includes from cppumaker-generated files, post
e57ca02849 "Remove dynamic exception
specifications".

Change-Id: Iaf1f268871e2ee1d1c76cf90f03557527ebc9067
2017-02-06 17:21:16 +01: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 4f5b22b93a use rtl::Reference in OCommonEmbeddedObject
instead of manual acquire/release

Change-Id: Ie641f72687a05e1cd3cf697d551f9c6d21ac4487
2017-01-23 07:56:34 +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
Andrea Gelmini fc2590cfa1 Fix typos
Change-Id: Id81b16ff26283611f0b84929d831c827f847ab73
Reviewed-on: https://gerrit.libreoffice.org/24317
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2016-04-30 15:06:45 +00:00
Stephan Bergmann bc9047540a loplugin:salbool: Automatic rewrite of sal_False/True
Change-Id: I8542bfaf9e27792369617c44258ddcc393e490a2
2016-04-20 17:25:40 +02: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
Andrea Gelmini 64d624b651 Fix typos
Change-Id: I9a5940027423ff0791fa7da0b79b617412ce6b86
Reviewed-on: https://gerrit.libreoffice.org/21209
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-10 14:17:20 +00:00
Stephan Bergmann 09efeeb41a loplugin:nullptr (automatic rewrite)
Change-Id: I225d5fe2e3476121e2ca307d815d5615e32311d7
2015-11-10 10:31:24 +01:00
Stephan Bergmann 4770941171 loplugin:stringconstant: elide explicit ctor usage (automatic rewrite)
Change-Id: I5528b17c106aefde4c58dfef00e30fdcf62f7db7
2015-11-06 09:35:43 +01: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
Markus Mohrhard f2b218468f fix indentation
Change-Id: Ifda010d2a8f51c6981cac889bfaa1edaacd22df2
2015-07-16 08:15:16 +02:00