Age | Commit message (Collapse) | Author |
|
Followup to commit 3a99d7f621036, which did a good job of removing use
of GetOutDevType() in OutputDevice initialization. Commit changes
ClipRegionIntersectionRectangle() to ClipToDeviceBounds().
ClipRegionIntersectionRectangle() takes a region and clips it, however
it breaks the contract in Printer and PDFWriterImpl where it does a noop
- any caller on these classes will expect the region to be clipped to an
intersecting rectangle.
Instead, I have renamed it to ClipToDeviceBounds(), which is what the
bClipBounds check shows it is doing in the original code. I have made it
return the new clipped region as this seems more logical.
I have also moved the comment to a doxygen comment on the function
signature in OutputDevice.
Change-Id: I64276920bb452839df04c16f0efc3d5581162673
Reviewed-on: https://gerrit.libreoffice.org/74967
Tested-by: Jenkins
Reviewed-by: Adrien Ollier <adr.ollier@hotmail.fr>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
See tdf#42949 for motivation.
Change-Id: I89c082d62409b40c8472b865cc60b0d10923c9c1
Reviewed-on: https://gerrit.libreoffice.org/75015
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Related tdf#93853 make sure we use the opensymbol nice
checkmark (0x2713) to compel viewers to use that.
Change-Id: Id5028b0d062e0491b1cc9c36e2d9d4e4a7ab14a1
Reviewed-on: https://gerrit.libreoffice.org/74995
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
|
|
Change-Id: Ie84b19a3dfaec32184bb825b7593ec33a5c4145c
Reviewed-on: https://gerrit.libreoffice.org/74994
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
|
|
Change-Id: Ie90e0f75018edee178f1f02056e59b35956c4142
Signed-off-by: Adrien Ollier <adr.ollier@hotmail.fr>
Reviewed-on: https://gerrit.libreoffice.org/74464
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I386e913f9002eed164c26137a0e184993d010b86
Reviewed-on: https://gerrit.libreoffice.org/74090
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
This adds drawing the wave line (typically used to underline the
wrongly spelled words) with bezier curves. Previously the wave
lines were drawn with drawing pixels, which didn't look that good,
especially on HiDPI display, so the looks of wave lines now is
therefor much better.
The creation of the wave line as a polygon has been added to the
basegfx module, so it can be reused if needed.
In addition, everytime we draw the waveline, we have to enable
antialiasing, to have a much better quality of the curves. By
default the antialiasing is disabled for some reason.
This also adds ScopedStates.hxx file which currently includes
ScopedAntialiasing, which sets the antialiasing to a certain state
for the time the object is in scope, and then sets it back to the
original state.
Change-Id: I4b866fc5d69725eb7f6f78a1acf4176b1205aa73
Reviewed-on: https://gerrit.libreoffice.org/74810
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I2d6e35c68d1ab99a19b5b2256b1f8fae4d614720
Signed-off-by: Adrien Ollier <adr.ollier@hotmail.fr>
Reviewed-on: https://gerrit.libreoffice.org/72327
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
makes OutputDevice::ImplClearFontData clean
Change-Id: Iee0683bd4567f85e20d5017b8eaa8a46490678db
Signed-off-by: Adrien Ollier <adr.ollier@hotmail.fr>
Reviewed-on: https://gerrit.libreoffice.org/72084
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
This reverts commit 624530549f30572cb7fb137cbadecfab9a75fc8c.
Change-Id: I4bc0216cc12af637ad291f3ba6af090d1d34f107
Reviewed-on: https://gerrit.libreoffice.org/74916
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
|
|
Finished parts from old logger:
1) UNOCommands
2) StarterCommands
3) UIObjectCommand
4) DialogCommand
5) SpecialCommand
Change-Id: Ia521efef0abe1a351b9a4fcabaab6dbf20e8fc89
|
|
Regression from
commit 319c57d2af5d26d3910db4b02dca145d8881af
tdf#120837 File saving at least 5 times slower
which made BitmapEx::operator== rely more heavily on
Bitmap::operator==, which in turn relies on the platform-specific
SalBitmap subclass to calculate a checksum, which was not happening
with WinSalBitmap.
Consequently, make Bitmap::operator== more robust by returning false
if either of the underlying bitmaps cannot generate a checksum
Change-Id: Iad8a4ce19544839a6303f0e8d006b138c2d75a31
Reviewed-on: https://gerrit.libreoffice.org/74834
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I079fb2bb786b66b843e8e3960643cf2db6387c79
Reviewed-on: https://gerrit.libreoffice.org/74821
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ie7f40abaa5893bee46d64b85404ee733c0c11f85
Reviewed-on: https://gerrit.libreoffice.org/74797
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I52a0e3aaed903f48c39c900a085cee3cb5131fca
Reviewed-on: https://gerrit.libreoffice.org/74768
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
a) use EditEngine instead of TextEngine as the former can be hosted in a
foreign widget
b) use a SfxGrabBagItem to hold the custom pseudo-field info inside the
EditEngine
c) use a proxy XDropTargetListener/XDropTarget to massage the treelist entry
drag source into the textengine drop target destination
Change-Id: I6bf1613ed91341c24b77564405f38b5dab0aacd7
Reviewed-on: https://gerrit.libreoffice.org/74699
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ic2e36b8921d329d6f9cd2eb68524ed111f6fda75
Reviewed-on: https://gerrit.libreoffice.org/74754
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
This patch does not solve the main LO 6.2 problem in bug 125609,
but fixes the related problem from comments 10/11.
This patch fixes two different scenarios:
1.) Sometimes buttons could fall through the other safety nets and
have multiple radio buttons selected in a single group at display time.
Since ImplInitStyle can be called multiple times for the same
button, ensure that once everything is imported (IsRadioCheckEnabled)
that any calls to this double-check that only one button is enabled.
First come, first served if by programmer error multiple are marked as
IsChecked in the same group. This problem existed pre-LO 6.2,
so it had nothing to do with tabstops specifically.
2.) This patch specifically fixes the 6.2 regression with the
Grammalecte extension Graphic Options dialog box. In this case
Dialog::GrabFocusToFirstControl ended up being treated as a "click"
on a tabstopped, unchecked radio, because setting the state
never called the SetState/Checked function, but only the Init,
and so the uncheckAllOther function never removed any tabstops.
Change-Id: I98272d6c81cf582a15c2e6bf04e6ed60da1d9c71
Reviewed-on: https://gerrit.libreoffice.org/74108
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
|
|
this document appears to have just enough fallback fonts on each page to
make the cache useless, so just bump up the size of the cache
considerably, since the cache key/values are really small
Change-Id: I4983de92f66410fee3f04e1e126b2ddb4ec2cbf9
Reviewed-on: https://gerrit.libreoffice.org/74735
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
if we configure something to be dropped on, then make it track drags
Change-Id: I7beacae7012b8929f9bcfa4c72d713ed04ba576c
Reviewed-on: https://gerrit.libreoffice.org/74733
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
And the vcl_fontmetric test must depend on more_fonts. This way
there should never be a missing font, so just assert on it.
Change-Id: If3b71d7c3e52f1beeda73197c56f5efc6a83dbb4
Reviewed-on: https://gerrit.libreoffice.org/74717
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Ib79da121941863421bc12afa27e27cdd7e2e81e3
Reviewed-on: https://gerrit.libreoffice.org/74695
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
SalMenu's event handling is not really compatible with QAction.
LO expects to get something like an activate event, which happens
without any menu state update. The item handler will then update
the item state, as expected by LO.
I'm not sure how this could be implemented in a good way in Qt, so
this patch is just a hack. If the item is checkable, we invert its
state before handling it. This just works correctly for single items,
not radio groups, but it does the trick for this bug. And since
setChecked() just emits toggled(), triggered() won't run twice.
Maybe someone can come up with a better way using event filters, if
ever needed.
Change-Id: Ic32d07525ce8f394b83d04f53689d1669ddc9d83
Reviewed-on: https://gerrit.libreoffice.org/74590
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: I57b667384813b0f6d8412da17c83877a9deed5b1
|
|
The time here is all in the nice rescaling we do these days. Speed it up
by using int ops instead of float ops.
This takes the time from 5m to 1m30 for me.
Change-Id: Ic1dcd9e49eef1894f4a4fdb416015b69c6ef96da
Reviewed-on: https://gerrit.libreoffice.org/74689
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: If863d28c6db470faa0d22273020888d4219e069e
Reviewed-on: https://gerrit.libreoffice.org/74559
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ic861b0a593505828a900fe2163125d6f5584a956
Reviewed-on: https://gerrit.libreoffice.org/74634
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I5ed8af625cb46998649c4f11255d7676a11bdc94
Reviewed-on: https://gerrit.libreoffice.org/74605
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I1e173ecd241526b50a8426d75f3aaa13f6ab5c0d
Reviewed-on: https://gerrit.libreoffice.org/74622
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
At least maths element docking window has a floating height of zero.
So the original gtk comment about broken values is still true.
And the initial SalFrameGeometry is ok, so no need to initialize it.
And set default size and position on show, if not explicitly set.
Change-Id: Ibe4969a164b50b666745ce010f5100af4b3ff2f6
Reviewed-on: https://gerrit.libreoffice.org/74614
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
According to
<https://docs.microsoft.com/en-us/previous-versions/dd183376(v=vs.85)>
"BITMAPINFOHEADER structure", all of the biWidth, biHeight, biXPelsPerMeter, and
biYPelsPerMeter members are of signed type LONG, but only for biHeight negative
values are documented as meaningful. As this code already rejecte negative
values for biHeight, do so also for biXPelsPerMeter and biYPelsPerMeter.
Otherwise, `--convert-to pdf caolan/id:000164,src:000000,op:havoc,rep:8.bmp`
(from the crashtestdata files) would fail with
> vcl/source/filter/jpeg/jpegc.cxx:404:23: runtime error: -12.549 is outside the range of representable values of type 'unsigned short'
> #0 in WriteJPEG(JPEGWriter*, void*, long, long, basegfx::B2DVector const&, bool, long, long, com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator> const&) at vcl/source/filter/jpeg/jpegc.cxx:404:23
> #1 in JPEGWriter::Write(Graphic const&) at vcl/source/filter/jpeg/JpegWriter.cxx:240:16
> #2 in ExportJPEG(SvStream&, Graphic const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const*, bool*) at vcl/source/filter/jpeg/jpeg.cxx:69:32
> #3 in GraphicFilter::ExportGraphic(Graphic const&, rtl::OUString const&, SvStream&, unsigned short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const*) at vcl/source/filter/graphicfilter.cxx:2042:22
[...]
because the (maliciously crafted?) bmp file has a negative nYPelsPerMeter that
translates into a negative rPPI.getY().
Change-Id: Id6dddd86d7111ae1a644337288e9f1023cb47670
Reviewed-on: https://gerrit.libreoffice.org/74582
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
spacebar will toggle radios and checkbuttons without automatically
closing the menu. To handle this properly I imagine we need to set groups for the
radiobuttons so the others visually untoggle when the active one is togged and
we would further need to teach vcl that the state can change more than once.
so simpler to just dropdown the menus no matter what type was activated,
which won't happen in the unity case, but that's presumably mostly gone
by now(?)
Change-Id: I2ba841dd192c1461ef26d8395ba572843f4c5c4f
Reviewed-on: https://gerrit.libreoffice.org/74580
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I357c004e724ebe580a121bf7ecdc63da9c02343f
Reviewed-on: https://gerrit.libreoffice.org/74593
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
I'm not sure why this redirection was implemented, which also ommited
the provided help area. I tried hard to use vc::Window code in the
beginning, but that also mirrors the cursor position for the window.
Using Qt here is simply straight forward, so just do that,
Change-Id: Ia8c4efc1e43b915c4b071ee26d4da37d7580817c
Reviewed-on: https://gerrit.libreoffice.org/74548
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Iddc689b8d332e8e0127806c37b5ccce66eadfcf6
Reviewed-on: https://gerrit.libreoffice.org/74540
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
I don't know why Y values should be affected by mirroring at all. This
produced a lot of negative Y values for me.
Change-Id: I2b147ede948510a7bc1a5838cf89a8fd02e2ed46
Reviewed-on: https://gerrit.libreoffice.org/74547
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
The tooltip in the bug is actually not one, but the VCL implementation
of Gtk's popover widget triggered by SalFrame::ShowPopover. This has
no Qt equivalent, so we currently rely on the crude VCL version.
But for this maGeometry must contain the correct information, AKA the
absolute, unmirrored, paintable system geometry of the frame. Then the
window can be positioned correctly.
The patch gets rid of most of the code initially copied from gtk, when
this VCL backend was in a very early state.
Change-Id: Id44e4dc2aac41f1f01d51c4d8107892e644ef243
Reviewed-on: https://gerrit.libreoffice.org/74546
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
For RTL decisions we always use Qt's own setting after setting it on
startup using QGuiApplication::setLayoutDirection. The only difference
between LO and Qt events is the mirrored cursor position, which needs
explicit mirroring before reporting mouse based events (mouse and
wheel). Tooltips and frame positioning will be handled in separate
patches.
Additionally the horizontal scroll bar direction hack based on the
scroll bar button positions, needs to handle RTL explicitly.
Change-Id: I5ce5e69113a6cb6a9cf37a449265c49d92a7c159
Reviewed-on: https://gerrit.libreoffice.org/74545
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Brown paperbag fix. Caolan and me were so concerned about performance
that we actually forgot about the intention of the original fix to
ensure a valid graphics before checking the output clip rect, so in
the end we re-introduced the bug.
This basically reverts commit aeead1782ff1 ("Related: tdf#125670
avoid possible performance issues for the general case"). The output
clip rect is not needed for the metafile, as it is ignored.
Change-Id: I68f4367cc3afbd659f691999b675a81a21258106
Reviewed-on: https://gerrit.libreoffice.org/74550
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Ieb629c21d725104a79515fe12e448b2b3eaddd94
Reviewed-on: https://gerrit.libreoffice.org/74121
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
a) use EditEngine instead of TextEngine as the former can be hosted in a
foreign widget
b) use a SfxGrabBagItem to hold the custom spellchecking info inside the
EditEngine
c) in longer paragraphs the current word is now auto-scrolled into view
d) rename Invalidate to InvalidateDialog
Change-Id: Ic6db019c32cdfd5f354c58ee7394fdaa040b86e1
Reviewed-on: https://gerrit.libreoffice.org/74119
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
I actually wanted to simply make it const, but emplace needs to
copy / move these classes, which gets ugly with const members. So
this simply hides the value and adds an ro-accessor.
Change-Id: If8ec6bc25bc6a7d012b7197b1fcb8c200693744d
Reviewed-on: https://gerrit.libreoffice.org/74481
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
but retain recording of gradient to metafile
Change-Id: I5efde15f1c192b15fe647362803442ac947b63de
Reviewed-on: https://gerrit.libreoffice.org/74505
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Drawing a QTabWidget is a really complex procedure. The main
problems I had were the adjustment of the frame, which I totally
missed in the Qt code for a long time.
Then there is the frame gap, which Qt draws by simply overlapping
the items a bit with the frame. And all the calculations need the
tabs together with the pane. None of it really fits very good into
the way VCL handles drawing the TabControl and since I needed a
way back from the plugin into VCL for the nOverlap value, there is
this hack using a static. I hope nOverlap never changes.
Change-Id: I8fe6eb12d39a2ac7f6fb89424586cac76e12545b
Reviewed-on: https://gerrit.libreoffice.org/74480
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
NotebookbarTabControlBase (NBBTCB) tried to be clever and save
a bool per TabControl page, by not adding a mbVisible to the
ImplTabItem and misuse mbEnabled.
The result is not only a bug with tab highlighting in notebook
bars, but also a lot of duplicate code and additional virtual
functions. Normal TabControls highlight correct.
I'm not 100% sure about the dropped Resize()s, but the code in
ImplPaint() and calculateRequisition() differs by three lines;
which can be merged by adding the TabControl feature to hide
tabs and not just disable them. I first tried to additionally
merge ImplPlaceTabs() too, but the NBBTCB version differs much
more and I didn't want to touch larger parts of TabControl.
Change-Id: Ie6e18fb03b76b46e3627923eb1ac0f674c3eb7e8
Reviewed-on: https://gerrit.libreoffice.org/74126
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Regression from commit 710f3c63af2d ("tdf#125670 just check gradient
clipping on drawing")
Change-Id: I6acf23675414983bd07639703f43aa934c0a48ed
Reviewed-on: https://gerrit.libreoffice.org/74502
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
The old path was not rendering file from user directory in production
build
Change-Id: Id1529b94d5f8c35988ae4b8d9aba6e7bdcce7fb2
Reviewed-on: https://gerrit.libreoffice.org/74364
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
|
|
The Qt5ObjectWindow is "adopted" by Qt5Frame's QWidget, which
is needed for the correct display. But since the Qt5Object is
itself a child of the Qt5Frame, it'll be deleted before the
Qt5Frame, which keeps the Qt5ObjectWindows alive.
But the Qt5ObjectWindows child relies on the Qt5Object parent,
so reap it, when the real parent is destructed.
And just in case the Qt5Frame will delete the QWidget with the
child while the Qt5Object is still alive, update the pointer to
the child on its destruction.
Change-Id: I563ddc2294b7b1651f56abdde75319c7455dd9b7
Reviewed-on: https://gerrit.libreoffice.org/74482
Tested-by: Jenkins
Reviewed-by: Aleksei Nikiforov <darktemplar@basealt.ru>
|
|
and use iterators into the tree
Change-Id: I38eb24d71cc089bf61baa221324a983c1eb782c9
Reviewed-on: https://gerrit.libreoffice.org/74470
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
They are just synonyms for GetLastName and GetFileExtension resp.
Change-Id: Ic498c7025cc421b830394ed94d64529fd74fe7dd
Reviewed-on: https://gerrit.libreoffice.org/74448
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|