A new option AddReplacementImages was added to prevent
addition of fallback images that could increase the file
size of the package in several times.
Added unit test.
Change-Id: I50eebba51072d3c93bfe6bed59e9f007568810c0
Reviewed-on: https://gerrit.libreoffice.org/51939
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
During calculation of the quality index of the image, we should
take into account also SVM vector image type.
Its mime type is image/x-vclgraphic.
Change-Id: I7c723e99995f73258bb59d976a6c7670c51f7a25
Reviewed-on: https://gerrit.libreoffice.org/51599
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
... such that during insertion of objects when sd calculates the center
of the view to place the object, it is the center of the whole slide,
not the center of the default rectangle of 800x600.
It's also important to hide rulers, scrollbars so that correct center is
calculated; we don't need them anyways in LOK.
Change-Id: I2d1577bc963d324959b272ed3174571ab197d014
Reviewed-on: https://gerrit.libreoffice.org/51416
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: pranavk <pranavk@collabora.co.uk>
... in SvXMLLegacyToFastDocHandler::startElement(), so that it does not
create invalid "-1" tokens that end up stored as empty-string
attribute names in SvXMLAttrCollection and ultimately exported
as invalid XML.
The maName in struct UnknownAttribute actually stores a QName,
i.e. namespace-prefixed, since commit
bb59a80ee6.
The attributes are read and converted again in
SvXMLImportContext::startUnknownElement().
Change-Id: Ia69a4da293f1a84ce30766abc09ca19e2620edbd
Reviewed-on: https://gerrit.libreoffice.org/50580
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
custom posting of mouse,key events on main thread
This still bypasses vcl while keeping the processing of events on the
main thread which is what we want.
Change-Id: Ia7a6f5ef1ac546245715abe418d261b49df12d4c
Reviewed-on: https://gerrit.libreoffice.org/50274
Reviewed-by: Aron Budea <aron.budea@collabora.com>
Tested-by: Aron Budea <aron.budea@collabora.com>
using
git grep -lwP "Color\s*\(\s*(COL_\w+)\s*\)"
| xargs perl -pi -e "s/Color\s*\(\s*(COL_\w+)\s*\)//g"
and then some manual fixup where the resulting expression no longer
compiled
Change-Id: I0e268d78611c3be40bba9f60ecfdc087a36c0df4
Reviewed-on: https://gerrit.libreoffice.org/50372
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Currently "ImageURL" property is used to transport the Graphic
(as an string URL), which is being replaced by transporting
XGraphic directly. There is already a property that all
controls use - "Graphic", so use that instead.
Change-Id: I2514b475735f3e430c2baa9b1685a231fc694b28
Reviewed-on: https://gerrit.libreoffice.org/50139
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
When changing to use "GraphicBitmap" property instead of
"ImageURL", the import wasn't adapted and there was no test which
would warn of such an situation. This also changes the difference
between writer and impress where impress used "Graphic" and not
"GraphicBitmap" property.
Also adds missing tests for both writer and impress
Change-Id: Ieed629d2d37f7806d63e729b6ef23cd848593071
Reviewed-on: https://gerrit.libreoffice.org/50140
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Call drawing also after the new selection is set, similar to
other cases where DrawSelectionXOR() is called before and after
selection change.
In desktop LO drawing is always called again and again by timeout,
so there the selection is updated anyway, while in LO online painting
does not emit a notification.
Change-Id: I6e9337fc0cfb61656387ba44d901521c3dfa60dd
Reviewed-on: https://gerrit.libreoffice.org/50268
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
SdPageObjsTLB::Fill() populates the navigator tree list box,
SdPageObjsTLB::IsEqualToDoc() determintes if it has to be refreshed or
not.
Commit f3c68cdf8f (tdf#115873 sd
navigator: allow selecting but not focusing on objects, 2018-02-21)
already brought IsEqualToDoc() closer to Fill() with using the same
iteration mode for the SdrObjects, but that's not enough.
Fill() uses flat iteration, then checks for group shapes explicitly and
visits them recursively. Change IsEqualToDoc() to do the same, this way
selecting "Rectangle 3" in the testcase won't result in a jump back to
"Slide 1" (as an effect of IsEqualToDoc() returning false for an up to
date tree list box).
Change-Id: If2543cbc282af06ba43d4804e7ed455c8b9828cd
Reviewed-on: https://gerrit.libreoffice.org/50234
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
To transport the replacement graphic we use "ReplacementGraphicURL"
property, but as it uses an GraphicObject URL it needs to be
replaced. The new "ReplacementGraphic" does this with an XGraphic
object as instead of the String URL.
Change-Id: Iddf01c9aecb2a31a467e7b9d399495e0428d1859
Reviewed-on: https://gerrit.libreoffice.org/49993
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
There were also two cases here:
- changing the selection with the keyboard or single-click only updated
the selection in the navigator
- pressing enter or double-click also selected the shape in the main
window and gave the focus away
Introduce a 3rd case for single-click: update the shape selection but
doesn't give the focus away. This way double-click is not needed to sync
navigator -> main doc selection but keyboard navigation should still
work.
An additional trick is to make sure that the current shell is the draw
shell (and not the slide sorter) after navigation, so follow-up
operations work with the selected object and not with the whole slide.
Finally, a third related problem was that the selection jumped back to
the item of the slide after clicking on a shape in the navigator. The
reason for this was the navigator list was constantly cleared and
re-filled in SdNavigatorWin::InitTreeLB(), as
SdPageObjsTLB::IsEqualToDoc() returned false (even if the list was up to
date) in case of shapes which had children but no name. Fix this by
using the same SdrIterMode::Flat iteration mode that
SdPageObjsTLB::AddShapeList() does, so the fill and the equality check
of the navigator iterates the same way.
Change-Id: I0bfc3e8b49f7ef01d5797a68284616dcd2a81c5d
Reviewed-on: https://gerrit.libreoffice.org/50118
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Use the same solution as for images in this commit:
9fee132c18
Place the inserted text shape to the center of the slide
for LOK, because we don't get correct window size here.
Change-Id: Ie0c3717d22da6b6a988ab8d566bd9759e03f86c8
Reviewed-on: https://gerrit.libreoffice.org/50074
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
it has exactly the same effect as just letting the constant be converted
to Color via the Color(ColorData) constructor.
This commit is part of the process of removing ColorData.
Change-Id: Ie12ad451ba3f43a627ebdbb132a5369f5760ba52
Reviewed-on: https://gerrit.libreoffice.org/50038
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Add HoriAlignIgnoreTrailingWhitespace compatibility option.
** For MSO file formats it is set to true
** For ODP format it's set to false by default
** The flag is saved to ODP format as user data if the document
comes from an MSO format.
Change-Id: Ie22233d33a25e605de46120bfc2195038dffd63c
Reviewed-on: https://gerrit.libreoffice.org/49889
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
The SvxFontHeightItem (12pt) is originally a character-level property on
the table cell (covering the whole cell text) but when the user sets the
font height of the cell,
sdr::properties::CellProperties::ItemSetChanged() will turn that into a
paragraph-level property. This is fine, except that this way the
property has unclear semantics when the user pastes single-paragraph
content into an existing paragraph. (Keep the old paragraph properties?
Use the new ones?)
The current behavior is that sd::View::OnEndPasteOrDrop() calls into
ContentAttribs::SetStyleSheet() at the end of the paste, which removes
paragraph-level formatting (giving visibility to the from-style 18pt
font height this way for the existing content), so both the old and the
new paragraph formatting is lost.
Improve the situation by copying these paragraph-level character
properties back to character-level before paste at the paste position
(so doc model is back to the state after load), that way font height and
similar properties are not removed by the on-end-paste handler.
Change-Id: I43d321dedcda6c0df9b009b9d99c3544f783473c
Reviewed-on: https://gerrit.libreoffice.org/49868
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
MSO requires to save fontScale attribute to have
all the text shown properly (with FitToSize property)
Values are approximated, after any modification in MSO
scale is recalculated.
Change-Id: I73657fdd663b540b436747cfeeef3c76e8fe388c
Reviewed-on: https://gerrit.libreoffice.org/49742
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
With GraphicURL property on shapes (XShape) we transported the
external or internal URL to the model, which also included the
GraphicObject uniqueID style URLs. This changes that - now we
always use "Graphic" property and transfer XGraphic to and from
graphic filters. "Graphic" property is already present for XShape
so it wasn't needed to add it.
Filters changed are: OOXML (oox), ODF (xmloff), RTF and
binary MS (esherex).
Also start using originURL on Graphic which now transports the
URL of the external (linked) graphic/image if it was created that
way.
Change-Id: Ic338c60b7cfaaae354cf1e1ca3ae7a6373220230
Reviewed-on: https://gerrit.libreoffice.org/49648
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Move the line spacing member to the TextParagraphProperties class
which is used to do the inheritance from master / layout slides.
Change-Id: I0bf92420963163eae78e06ebc7fdfa1f2c72fdf8
Reviewed-on: https://gerrit.libreoffice.org/49692
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
extracts code from the innermost part of fairly hot loops
And add a GetIndexFromData method to make the call sites a little easier
to read.
Change-Id: I4ce5c5a687ecdb6982562a0aafce8513d86f9107
Reviewed-on: https://gerrit.libreoffice.org/49337
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
BitmapColor has a Color() operator. However, this is confusing and
tends to hide that the two classes aren't the same. I have converted this
to GetColor().
Change-Id: I0be2dcb3fc420e7be9c8d04330e7a3fe69a5412a
Reviewed-on: https://gerrit.libreoffice.org/48245
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
As we want to get rid of GraphicObject URLs for the more robust
image life-cycle handling, it was necessary to change the way
bitmap table stores and handles images, so that they always
store a Graphic object (wrapped in UNO object that provides the
XGraphic and XBitmap interface).
In addition this changes loading and saving from ODF (xmloff) and
OOXML (oox) filters so they don't depend on GraphicObject URL
anymore, but load or save directly to / from XGraphic or XBitmap.
Change-Id: I2b88e10056e7d6c920249d59188f86b1a5a32d21
Reviewed-on: https://gerrit.libreoffice.org/49074
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>