Age | Commit message (Collapse) | Author |
|
Change-Id: Id10d68f2eb016671be6842dfaa82909207b0708d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133754
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ib5a86de01abd6eab2f60d76bda50fa9407286dbc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133770
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I042b8dcadbf7581de325c161763fe35aecde5ca2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133694
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I4462f7cf4740fa4d1b129d76a0775f4250f41bbd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133555
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I4229460fb27ae3dc133c0f6a53c7792a87bf4db3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133389
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I336fd329b577b6fa141265d8bc7ce67784bd7306
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133210
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
for which we have o3tl:: equivalents
Change-Id: I4670fd8b703ac47214be213f41e88d1c6ede7032
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132913
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
where we can convert that to
o3tl::toInt32(o3tl::getToken(
and avoid the heap allocation of a temporary string
Change-Id: Ib11c19c6e6cdc0de3e551affd3578d181e292de4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132810
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Anything else is just a joke today.
Change-Id: Ie6a0cec1edcd257cbadef702018e6a919e6a0b44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132628
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
which converts to compare
Change-Id: If03c790ea113a7caedbe89f926b29055c9ec1e76
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132455
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This ports most existing uses of the now deprecated
`AccessibleTableModelChangeType::INSERT` and
`AccessibleTableModelChangeType::DELETE` to emit
events of the the four new table model change types
added in
Change-Id I30821a5acafa4f3d1dafdfc219f3b4568d9a6e89,
"a11y: Add new table model change types for row/col insertion/del"
instead, which among others fixes the a11y events that are sent
on the platform level for gtk3 and macOS,
s. commit message of the mentioned change for more details.
From all I can see, `AccessibleGridControlTable::commitEvent`
is just meant to handle removal of rows, not columns,
so add a corresponding assert there.
(See how only row-related a11y events are emitted
in `svtools/source/table/tablecontrol_impl.cxx`,
and the "columns aren't selectable" comment for
`AccessibleGridControlTable::isAccessibleColumnSelected`.
Given that the full range of rows would previously
have been sent in the `AccessibleTableModelChangeType::DELETE`
event for column removal, this should still have worked in
practice, since this would have cleared the whole vector,
and elements would have been inserted on demand as needed
again later. However, if that should ever be needed in
the future, it should be handled more explicitly.)
The handling of sending events when rows or columns
are inserted or deleted in a Calc spreadsheet is more
fundamentally broken and will be handled in a separate
commit.
Change-Id: Icfd5e326143e8e90cc513e430bfabbba39e7bdc6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132218
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
WYSIWYG preview should use the actual document color instead
the dialog/window background
Change-Id: Ifff07b2f754ed88cb7e60e0494092e266d3c7cf1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132023
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
It's used only for the ConfigurationWrapper singleton, so it's used
only the first time and then ignored. It also causes calls to
comphelper::getProcessComponentContext() for every single invocation
despite the value not being needed, and the calls may not be cheap
(it's ~5% CPU during ODS save because relatively frequent calls
to officecfg::Office::Common::Save::ODF::DefaultVersion::get()).
Change-Id: I02c17a1a9cb498aeef220ddd5a0bde5523cb0ffb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131056
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
See tdf#42949 for motivation
Change-Id: I25779cbfb1aa93c31d6e12ac95e136b3bdbbc058
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130403
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: Idd0dfd7c68dfc19458a710c79234dd76e6f91ab2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130893
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
...seen during CppunitTest_sw_filters_test, regression introduced by
b871d057c45fdd231aa5e1d2b94e7d0a039f4292 "use OUStringBuffer for a string that's
modified often (tdf#145862)" turning SvParser::aToken from OUString to
OUStringBuffer:
> ==768636==ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges [0x6250003ed112,0x6250003ed12e) and [0x6250003ed108, 0x6250003ed124) overlap
> #0 in __asan_memcpy at ~/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22:3
> #1 in rtl::addDataHelper(char16_t*, char16_t const*, unsigned long) at include/rtl/stringconcat.hxx:89:9
> #2 in rtl::ToStringHelper<rtl::OUStringBuffer>::addData(char16_t*, rtl::OUStringBuffer const&) at include/rtl/ustrbuf.hxx:1750:14
> #3 in rtl::OUStringConcat<rtl::OUString, rtl::OUStringBuffer>::addData(char16_t*) const at include/rtl/stringconcat.hxx:252:88
> #4 in rtl::OUStringBuffer& rtl::OUStringBuffer::operator=<rtl::OUString, rtl::OUStringBuffer>(rtl::OUStringConcat<rtl::OUString, rtl::OUStringBuffer>&&) at include/rtl/ustrbuf.hxx:369:17
> #5 in HTMLParser::FilterXMP(HtmlTokenId) at svtools/source/svhtml/parhtml.cxx:1795:24
[...]
Change-Id: Ifc0a36de6503a06799ee4cd50ce57a6110c7d5c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130889
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Jenkins
|
|
It doesn't seem to make a visible performance difference though.
Change-Id: Iec56f4f484dbebcc216308d17422151424d0697c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130790
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
SvParser::aToken was OUString despite being a buffer where the parsed
result is collected.
Change-Id: Id24c842738ea0f6f1836f77d855069963ac5ae55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130763
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
This is similar to commit 8780fa41dcd164af244742461f4e57a4bcf4c7a4
(svtools: fix lost replacement grpahic when updating it via OLE fails,
2018-10-30), but that case was when we already had an old
mpImpl->pGraphic, the updated failed and then we already lost the old
one but didn't have a new one.
Here what happened is that in case tools -> update -> update-all was
used for an OLE object which had bad native data but a good preview,
then the result was bad preview, depending on if you first scrolled to
the OLE object to trigger rendering (good) or not (bad).
The reason for this is that scrolling to the object calls GetGraphic(),
which sets mpImpl->pGraphic using GetReplacement(bUpdate=false), which
works, but svt::EmbeddedObjectRef::UpdateReplacement() calls
GetReplacement(bUpdate=true). That explains why the update breaks the
preview, but not when scrolling to it first.
Fix the problem by improving svt::EmbeddedObjectRef::GetReplacement():
if getting an updated graphic fails, try to get a non-updated graphic.
The result is that GetGraphic() after an UpdateReplacement() not only
always return a non-nullptr Graphic, but also it's no longer of type
None.
Change-Id: I8e5ff4aaaefdc58e032b325bb4001f2a604ccc8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130086
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Because sw/ doesn't have access to the internals, but dumping should
show the state as-is, without calling getters that change the state.
Especially GetGraphic() is not a trivial wrapper around
mpImpl->pGraphic.
Change-Id: I2cf43130d4eeab63611e37b4a978bb7aa546c7f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130056
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I2be3160dbab780254b6f02db8dec69389ec500d4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129530
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
so old ones are not clobbered but are called from the new ones
Change-Id: I4cdd25fc1f3b13b10711d5c2f30c46645ae6c968
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129503
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
for these cases where draw wants to massively scale the units
the underlying "metric conversion" are already using sal_Int64 anyway
Change-Id: I94e120d72644319548f75b2f68cfe60d4829a2e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129356
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Instead of waiting for the application to restart,
hack out an immediate invalidation of the ruler.
Perhaps there is a better place to do this
because the ruler background apparently IS
changing, but it seems to require a hack
to invalidate everything.
Change-Id: I4a27cbaf484e96c19c71c04017c649e95bf80d96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128733
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
This commit implements a WebP reader and writer for both lossless
and lossy WebP, export dialog options for selecting lossless/lossy
and quality for lossy, and various internal support for the format.
Since writing WebP to e.g. ODT documents would make those images
unreadable by previous versions with no WebP support, support
for that is explicitly disabled in GraphicFilter, to be enabled
somewhen later.
Change-Id: I9b10f6da6faa78a0bb74415a92e9f163c14685f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128920
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
GCC 12 trunk started to warn
> svtools/source/control/asynclink.cxx: In member function ‘void svtools::AsynchronLink::HandleCall_PostUserEvent(void*)’:
> svtools/source/control/asynclink.cxx:76:15: error: storing the address of local variable ‘bDeleted’ in ‘*this.svtools::AsynchronLink::_pDeleted’ [-Werror=dangling-pointer=]
> 76 | _pDeleted = &bDeleted;
> | ~~~~~~~~~~^~~~~~~~~~~
> svtools/source/control/asynclink.cxx:75:10: note: ‘bDeleted’ declared here
> 75 | bool bDeleted = false;
> | ^~~~~~~~
> svtools/source/control/asynclink.cxx:75:10: note: ‘<unknown>’ declared here
And while that is arguably a false warning, it points at some dubious code
anyway: The only reason for the AsynchronLink _bInCall and _pDeleted members is
to potentially SAL_INFO some "valuable historical artefact", if
AsynchronLink::Call were ever called recursively. But
0de7513cd73f1f35265e42f9a2b9befe81302c2c "osl::Mutex->std::mutex in
AsynchronLink" apparently already argued that such recursive calls can never
happen, as locking _aMutex in a recursive call of Call would now deadlock.
Change-Id: I9ee47ac65652e40e23a37be3d0694fa1185b877a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129104
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Color and on/off configurable via Tools > Options > Application Colors
Change-Id: Ia4b1e1c86f36d1b0f508a5b3e866a79418f16c5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128553
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
Change-Id: Icc4ed353c1bad53c2e2bf85fc098a50d66ee5b33
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128988
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
Change-Id: Ia1f2c6cb66175cd1dc0f5f42fb88f7a901d40cb8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128975
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I28d9b7333b52db46c85e6ae51265b3a4bd993c98
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128968
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I83ff18c8b5e95fa172de950eb351cbfd855c9d5d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128919
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I6cbbefe1cb16599ae81fc6dcb5a51ef1ca2db6f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128407
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
Flush() turns into a sync() on the device, which is pretty slow.
Most of the time all we actually want to do is to flush the internal
buffers from the SvStream.
So expose the FlushBuffer method and use that where possible.
And also means we don't need the mbDontFlushOnClose flag on SvStream
any more.
Change-Id: Ibe089b88b325f0fdc565200a97ce72cd26b7fcfb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128214
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
... and avoid OUStringBuffer::toString when the temporary is used
for checking current buffer content
Change-Id: I114178f3e74ca3e4a3e517763f9eaab4797b7deb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127478
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I329849310f289e0fe7a886bbf3855f8d569767c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127830
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and remove unnecessary use of SolarMutex, the fields
are already protected by mutex and the locked region
doesn't call into vcl.
Change-Id: Ia010674b14fafe2bfac27956af71fb557a4df212
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127408
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Id8dd9ff12fe62f5225112eebc681bf840e69f7a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127280
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: Ib95f4bf1d5f09e8647ce8f35e8165c6858247fd9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127116
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iddd7438161ead93b27cf8e8058ca5b1eae3d8001
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127075
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Interslavic Latin {art-x-interslv} 0x06AD
Interslavic Cyrillic {art-Cyrl-x-interslv} 0x06AE
Change-Id: I487d6593db89af038555a192674298e2dabf5582
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127018
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
regression from
commit da9bba7cc3c243e936daea689fea64ecaf110f35
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Mon Jul 26 10:10:17 2021 +0200
use officecfg for SvxHtmlOptions
spotted by himajin100000
Change-Id: Id237f7c4d6d816539141de97a19add0a993d92ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126902
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9a6d134b9af46e84560a9f6160c4f9fa1d2631ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126696
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: Ib3af1f9e461f133d2f5b09b9db4fb87c1ede0b9f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126658
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I3c1742cdf88dfa08cf35d9f95875d4d3d6af09db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126596
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
...instead of by listing the content somewhat redundantly in the Rdb_*.mk
files, to avoid duplication of logic for components that are only built
conditionally (and thus should only be included conditionally in the
corresponding Rdb). To achieve that, add an "rdb" parameter to
gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros
that internally call gb_ComponentTarget_ComponentTarget), which is used to make
the appropriate gb_Rdb_add_component call internally from within
gb_ComponentTarget_ComponentTarget. (As a special case,
gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that
has already been done by the corresponding gb_Library_set_componentfile call, so
allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to
support that special case.)
Most Rdb_*.mk files are thus mostly empty now. One exception is
i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as
needed during the build in CustomTarget_i18npool/localedata.
1c9a40299d328c78c035ca63ccdf22c5c669a03b "gbuild: create services.rdb from built
components" had already tried to do something similar (in addition to other
things) under a new --enable-services-rdb-from-build option. However, that
approach had four drawbacks that this approach here addresses (and which thus
partly reverts 1c9a40299d328c78c035ca63ccdf22c5c669a03b):
1 Rdb_services shall not contain the component files of all libraries that are
built. While that commit filtered out the component files that go into
Rdb_ure/services (ure/Rdb_ure.mk), it failed to filter out the component files
that go into others like Rdb_postgresql-sdbc
(connectivity/Rdb_postgresql-sdbc.mk).
2 The code added by that commit to Makefile.gbuild codified the knowledge that
there is an Rdb_services, which is brittle.
3 The code added by that commit to solenv/gbuild/Rdb.mk codified the knowledge
(for gb_Rdb__URECOMPONENTS) that there is an Rdb_ure/services, which is brittle.
4 Introducing an --enable-services-rdb-from-build option needlessly provided
two different ways how the content of Rdb_services is assembled.
The changes done here would leave --enable-services-rdb-from-build as a
misnomer, as it no longer controls how Rdb_services is assembled. I thus
renamed it to --enable-customtarget-components, as that is apparently what it
still does now.
Change-Id: Ia5e8df4b640146c77421fcec6daa11a9cd260265
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126577
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Follow-up to commit 5fb9f4ffa9284c7248e2e82210506babaad4044d
Change-Id: I46d5ea404f77ac5ff67b6ee6a42afee13274a481
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126174
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: Ifd583582fa7bf7366a1f8d482eefd64b30228ca8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125867
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
The problem was that we don't allow even opening embedded objects in
protected sections, which means the content of multi-page embedded
objects can't even be viewed in protected sections, which probably goes
too far.
Fix this relaxing the condition in SwEditWin::MouseButtonDown() to allow
launching the OLE object on double-click, and then make sure that the
native data is not updated in SfxInPlaceClient_Impl::saveObject() and
the replacement image is not updated in
svt::EmbedEventListener_Impl::stateChanged().
This is complicated by only the Writer layout knowing if a given OLE
object is anchored in a protected frame, so pass down a callback to
sfx2/ and svtools/ to check if the OLE object is protected.
Not copying the protected bit has the benefit of behaving correctly if
the section turns into non-protected: copying would not work properly,
as SfxInPlaceClient is created on demand, so not re-created when the
protectedness of the section is changed.
Change-Id: Ib3a8f2092d27dc1ebd3ef355c95a4a473988b163
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125815
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: Ia2a735255b94fd3a097081950e2145e07b4b3b63
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125783
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
which results in lots of nice string_view improvements picked up by the
plugins
Change-Id: Ib0ec3887816b3d4436d003b739d9814f83e244b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125657
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|