This rewrites URI of a document opened from a WebDAV mapped UNC path
on Windows (like "file://server/DavWWWRoot/Dir/Doc.odt") into HTTP URI
(like "http://server/Dir/Doc.odt"). This allows using WebDAV protocol
for these files, and e.g. get information about other user who locked
the document to show when asking if open read-only or a copy.
Change-Id: I643fa8df30d4b163783b279b1b973304fcafff37
Reviewed-on: https://gerrit.libreoffice.org/71746
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
a frame that contained valid but unmodified document opened from
template or explicitly opened by the user (File > New) was treated
the same as blank document i.e. it was reused and the content was
overwritten by newly opened document (even if it already had
non-empty content provided by the template).
So let's not do that and let's open a new document in a new frame
instead
Change-Id: I10252d114e8cc5fcad3c98194ef07fd59873d6da
Reviewed-on: https://gerrit.libreoffice.org/71919
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
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>
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I937ed12f2a96943664087ddcdd035f1347e84a57
Reviewed-on: https://gerrit.libreoffice.org/67102
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
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 filter to jvmfwk
Change-Id: I2a73d63f2aaef5f26d7d08957daaa8a30b412ac5
Reviewed-on: https://gerrit.libreoffice.org/58204
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
The "quiet" interaction handler was used unconditionally
when loading a document via the loadComponentFromURL API method.
So no dialog was shown asking the user whether he wants to enable macros.
With this patch, the "quiet" interaction handler is only used,
when the document was loaded with the "Hidden" property set.
Change-Id: Idd522d0bf605499b071390fb58312181b755dfca
Reviewed-on: https://gerrit.libreoffice.org/56086
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
normally we want this to be the window that is the parent for any
warning or password dialog. But for these (weird, see also impl_findSlotParam)
frames dispatched with slotid arguments, they are opened before the dialog
which will fill them is launched.
Presumably in sane land the dialog would be dispatched from the menu entry,
then on its create the frame opened with the desired contents.
Change-Id: I1234b648ca1bd7fd2109cb4d3c70d5bfed9ab563
Reviewed-on: https://gerrit.libreoffice.org/51150
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
The point of hidden frames is that they are not visible on the UI, only their
doc model / layout is accessible via the API or file format conversion. That
means that laying out the UI elements like menus and toolbars is pointless.
So change Frame::initialize() and Frame::setLayoutManager() to not enable the
layout manager for hidden frames. To do this, we need a new window style flag,
as both hidden and visible frames have an underlying hidden window at the time
the framework layout manager would be enabled.
Times for 200 hello world inputs: 5780 -> 5054 ms is spent in XHTML-load + ODT
export + close (87% of original).
Change-Id: I841507bbb62f8fc2979d20e2d579d0bb47b98f37
Reviewed-on: https://gerrit.libreoffice.org/48068
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files
Change-Id: I8981ef6de675bf10c103e1af0afccd620762268d
and exit typedetection early and completely if application quits
while detecting
During typedetection, before loading proper, we have the hidden window as
parent so warnings are not modal to existing windows and they are cancelled on
exit.
Once we do have a window, then reinit interaction handler to have that window
as the parent for any further dialogs.
Change-Id: I5c6711557266bf7d1eb9291f1c454cbfaf766886
Reviewed-on: https://gerrit.libreoffice.org/45148
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
to get warning dialogs that don't block the existing windows but whose
lifecycle can be controlled to avoid crashes during exit
Change-Id: I57965301c3d8a031acb33e83bf7715fe132385d0
Reviewed-on: https://gerrit.libreoffice.org/45044
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
to the new window frame being constructed that (may) contain
the progress bar, that way such modal dialogs affect the loading
document window and not whatever window happens to be active
Change-Id: I1c7d3185e47fa316eef003b80d18b31d341b79d6
Reviewed-on: https://gerrit.libreoffice.org/44269
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
When opening a file that triggers Dialogs (e.g. cannot
read/repair/FileType) the Frame from which it was
initialized gets blocked. This irritates quite some
people. Changed this to a non-modal Dialog so that
the user can continue to work with all opened docs,
open new ones, close and print/PDF/export these.
Change-Id: I048d3de3369527cec20d26396b87439254764b8a
Reviewed-on: https://gerrit.libreoffice.org/41534
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
would have preferred to re-use o3tl::strong_int, of which this
is a modified copy, but there are lots of convenience accessors
which are nice to define on the class.
Change-Id: I301b807aaf02fbced3bf75de1e1692cde6c0340a
Reviewed-on: https://gerrit.libreoffice.org/38497
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
...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
Convert EProtocol to scoped enum and drop E_UNKNOWN_PROTOCOL.
Convert ToggleButtonToolbarController::Style to scoped enum and drop
STYLE_TOGGLEBUTTON.
Convert TargetHelper::ESpecialTarget to scoped enum and drop
E_NOT_SPECIAL.
Change-Id: I412adacac15192cf6563ce4d5e5b74bfffff4737
Reviewed-on: https://gerrit.libreoffice.org/33949
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
...(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>
This reverts the following commits:
commit 722f4e1d86
tdf#104573 - Assertion failed: SolarMutex not locked
commit f04ec99f5e
tdf#104573 - Assertion failed: SolarMutex not locked
commit 71b1e3ff63
tdf#104573 - Assertion failed: SolarMutex not locked when trying
commit e794ce1eef
verify that we hold the SolarMutex when ref-counting VclPtr
IRC discussion:
<noelgrandin> sberg, maybe I should revert this whole "VclPtr assert" series, I don't have mental bandwidth to sort this out properly now
<sberg> noelgrandin, what I fear is that you'll end up adding lots of SolarMutex locks to small places, where the proper fix would be to add it further out; and once such a dreaded recursive SolarMutex lock is in place (but needlessly so, once the proper fix is done), it's hard to clean that up again
<noelgrandin> sberg, yeah, in that case I'll just remove all of this, leave it for another day
Change-Id: Ie4f84b72b79a1b7e80164b5c7693af398c2c569a
Reviewed-on: https://gerrit.libreoffice.org/31946
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
We use it as a json parser, for calc cell styles and tests. Making it
optional is just making the code more complex and introduces more
sources for errors.
Change-Id: I8769628a4ab9519cafc3d43db7c0007e0aa265dc
Reviewed-on: https://gerrit.libreoffice.org/31307
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Look for places where we are accidentally assigning a returned-by-value
VclPtr<T> to a T*, which generally ends up in a use-after-free.
Change-Id: I4f361eaca88820cdb7aa3b8340212db61580fdd9
Reviewed-on: https://gerrit.libreoffice.org/30749
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
There was not really a good enough reason for the change, and it
causes unfortunate regressions in 3rd-party code that previously
worked fine. (It also caused two regressions in LO's own code, but
those were already fixed.)
This reverts commit 5334ff287c.
... if loading the document failed. Make sure that's the case
also when the frame containing BackingComp was about to be
recycled. Can be tested by trying to open password-protected
odt, but canceling the password prompt.
Change-Id: I733357b3a961fd88db010dd8eb89e01f0cad10fa
... instead of continuing the detection loop and being
"detected" as plain text. The detection API will from now
return a type based on the file extension only, which is
far more useful than "plain text" anyway. Plus the media
descriptor has a flag to indicate that the detection wasn't
completed, which can be also used by the loading code to
abort the loading process.
Change-Id: Ida37e2687bd5cd86b5780620724e9bce82e11946
Reviewed-on: https://gerrit.libreoffice.org/24428
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>