Age | Commit message (Collapse) | Author | Files | Lines |
|
jmux' suggestion at
<https://bugs.documentfoundation.org/show_bug.cgi?id=125971#c7> turns out to be
the correct fix after all; explained in a lengthy comment why that seemingly
wrong call of translateToInternal happens to do the right thing.
(Much of this patch is about passing the XComponentContext down to where it is
now needed in Qt5FilePicker::getSelectedFiles.)
Change-Id: I235554f8494cd3094a011d5a903059326db499fc
Reviewed-on: https://gerrit.libreoffice.org/74359
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
I don't understand why WidgetDrawInterface, which is basically a
copy of the SalGraphics native controls interface, duplicated it,
instead of cleaning things up.
The whole commit message of commit 8fcfa3853a81, which added this
code, is just: "custom widgets: Custom Widget Themes". That's it.
So this patch does, what the original one skipped: replacing the
SalGraphics interface with the WidgetDrawInterface. One result is
the addition of handleDamage to SalGraphics to correctly handle
the damage done by a custom widget theme to the underlying
SalGraphics implementation.
Change-Id: I5fda1a64b28e6560fb3c62e02b6dcda827f698e2
Reviewed-on: https://gerrit.libreoffice.org/74118
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Icb7c22cf4ac95eab54d04e79312fb471ca27bceb
Reviewed-on: https://gerrit.libreoffice.org/74246
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Replace with comphelper::getUnoTunnelImplementation.
Change-Id: Ic0e2e78fea575af6da4870fbd372f2148a328e26
Reviewed-on: https://gerrit.libreoffice.org/74203
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Some fonts have negative tmAveCharWidth which makes no sense (fonts can't have
negative glyph width, so the average can't be negative) and it would cause our
code to apply negative scale to the glyphs of these fonts making them drawn on
the flipped horizontally.
Fix this by using the absolute value so it is always positive.
Change-Id: I731e7aad80dae734847679a1b08c6ac78111e16c
Reviewed-on: https://gerrit.libreoffice.org/74109
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
|
|
This is a preliminary fix, so LO on Wayland has an application
icon at all. As the result, the start center icon will appear as
the application icon on Wayland for all windows.
For the proper, per QWindow fix, we need some QtCore and QtWayland
changes, to allow setting the appId per QWindow and eventually a
Waylnad XDG shell spec update, to officially allow a top level
window to change its appId.
Change-Id: Icefcfc992836e0c657237984d7d88561b26b06a2
Reviewed-on: https://gerrit.libreoffice.org/74097
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
There will presumably be more X11 specific code later to implement some
"fix" for tdf#119202. Moving the screensafer inhibitor is rather
uncontroversial in comparion, so start with it and use it to carry the
matching configure.ac changes.
A little "nightmare" are all the clashing X11 / Qt type undefs, but I
couldn't find a better solution while the inhibitor continues to
include the X11 headers in it's header.
Change-Id: I55c89c76726d30a890178488484e954207267e89
Reviewed-on: https://gerrit.libreoffice.org/74015
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
GCC with '-Wextra-semi' warned about
vcl/inc/salusereventlist.hxx:75: warning: extra ';' after member function definition
Change-Id: Ifbf4632f9cf813aba1cb5a84ec9ac505208f2771
Reviewed-on: https://gerrit.libreoffice.org/74031
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
Traditionally when a modal dialog is active, the quit menu entry of all
LibreOffice toplevel frames, not just those which are themselves modal, is get
disabled.
This has come unstuck because its implemented by dialogs emitting
MouseNotifyEvent::[END]EXECUTEDIALOG on its parent, and SfxFrameWindow_Impl
listening for that event. But if the dialog parent is the toplevel parent of
SfxFrameWindow_Impl then it doesn't get seen by the SfxFrameWindow_Impl child.
Change-Id: I0c4a5472d16d9169e68f6b0c230d039f1119489a
Reviewed-on: https://gerrit.libreoffice.org/73975
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
While the VCL plugins are dynamically loaded and therefore just
load their depending toolkit libraries, the GStreamer avmedia
backend now links against Qt and GTK+. The GStreamer API itself
is toolkit agnostic and the toolkit setup just uses a single
GStreamer symbol to create the specific video sink.
So the toolkit binding can simply be moved into the VCL plugin.
At the point of the GStreamer toolkit setup call the GStreamer
library is loaded by avmediagst, so the dlsym lookup should
never fail.
I also dropped the special GtkWidget handling. Using g_object_get
will increase the refcount of the widget. A g_object_unref after
adding it to the container seems to destroy it correctly.
Change-Id: I693947e441bceb4b09bc38920e308e39142d0a35
Reviewed-on: https://gerrit.libreoffice.org/73849
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
This changes the Qt5Clipboard to a lazy loading one, which will
just deliver data on read requests. This fixes not only the
PRIMARY selection problems with Writer, but will generally speed
up C'n'P, inside LO, because the data has not to be copied or
transferred via QMimeData.
This is mainly done by implementing the "mirror" interface of the
Qt5Transferable, the Qt5MimeData using the retrieveData override.
To prevent clipboard loss on shutdown, this sets a deep copied
QMimeData of the current XTransferable, to make it persistent.
This code explicitly doesn't use any of the QMimeData convenience
functions and relies completely on LO's string handling, so we
won't mix in eventual Qt bugs; all bugs are ours...
Change-Id: I43d92a95df8fcac88dc41b00021cea0b5f040413
Reviewed-on: https://gerrit.libreoffice.org/73288
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
|
|
Platform-specific subdirs are left alone:
android, ios, osx, quartz, win
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: Icbb906b7fbc960240c73c56d3dae2a78b06a0f53
Reviewed-on: https://gerrit.libreoffice.org/73754
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Let's just face reality and store it as a VclPtr.
And this is needed, because Qt, like VCL, uses deferred deletion,
and has no way to filter events to QObjects out of its event queue
easily. This way the qt5 plugin can report focus changes for
SalObjects without a crash, which happens when you close a
presentation with a video by click.
And in addition it reverts the workaround introduced in commit
e770bacc85a0 ("Qt5 workaround modal change after show bug"), as it
seems this bug is a use-after-free error, introduced by LO.
Thanks Michael Weghorn for catching that!
Maybe someone should also rename SalObject...
Change-Id: I0bc64ea64f95dfc7a838799c4a04de183adfefcf
Reviewed-on: https://gerrit.libreoffice.org/73567
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Since we can't use an input and visual transparent widget, like a
GtkGrid, we have to implement input forwarding in the QWindow.
Using a Qt5Widget directly results in other problems on Qt 5.12+,
like these warnings (depending on the tested Qt::WA_* flags):
* Attempted flush to non-raster surface QWidgetWindow(0xa386c10,
name="QWidgetClassWindow") of type QSurface::OpenGLSurface
(consider using Qt::WA_PaintOnScreen to exclude from
backingstore sync)
* QWidget::paintEngine: Should no longer be called
So the current QWidget::createWindowContainer has to stay and key
and mouse handling must be implemented as in Qt5Widget. And the
QWindow is strangely not accessible through the windowHandle() of
the container QWwidget.
As a result this patch is mostly boilerplate code, publishing the
Qt5Widget mouse and key handling as static functions.
Change-Id: I5be5f5fa1379c6bdefab0f96604251801c252b38
Reviewed-on: https://gerrit.libreoffice.org/73566
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: I976edb0b49c8439d1723be4544b10a5375b8e1d3
Reviewed-on: https://gerrit.libreoffice.org/73755
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ib4c47189d5c9c89433f0c7de194ebb9777dc7bac
Reviewed-on: https://gerrit.libreoffice.org/73829
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Regression from commit 69b62cfcbd364d7f62142149c2f690104b217ca1
(tdf#125281 DOC import: fix size of lazy-loaded metafiles, 2019-05-27),
the problem is that setting the preferred size of a Graphic swaps it in.
Avoid this by extending ImportUnloadedGraphic(): if a size hint is
provided, then that will be used instead of info from the graphic
descriptor (which is usually only meaningful for bitmaps).
This way we maintain the correct size and we're back to lazy-loading
metafiles from binary MSO files as well.
Change-Id: Ide12d12166110e98ea47b5347dd24fb203b22da3
Reviewed-on: https://gerrit.libreoffice.org/73798
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: Ib19e907a9b6fcce3a3938c5dee29ff658b12e9c4
Reviewed-on: https://gerrit.libreoffice.org/73735
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Nothing KDE specific left in there, so just merge it.
Change-Id: I11712961f2abc5e11256a158300ec6b388f9ee44
Reviewed-on: https://gerrit.libreoffice.org/73680
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
We just need AcquireGraphics() to return a KDE5Graphics.
Otherwise the BufferDevice's SVP will use a SvpSalGraphics
instead of the KDE5Graphics, which knows about Qt's theming.
Change-Id: I0ea646df260f2067d61c753f03dee01a003f382a
Reviewed-on: https://gerrit.libreoffice.org/73673
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Quikee agreed that they aren't really useful. Doing even the simplest
things causes such a huge amount of logging that it is questionable
whether anybody could have any use of it.
Parts of it might be useful to restore later, if need arises. Like the
mnContextStackDepth logging in vcl/inc/quartz/CGHelpers.hxx.
Change-Id: If635e6492a50e5955c56c54fa310e7c0ab2986ae
Reviewed-on: https://gerrit.libreoffice.org/73639
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@collabora.com>
|
|
Comming back to my initial, known broken implementation from
2017-11 (see commit 1426437be053 ("QT5 implement some mouse
handling")), which just works with mouse scroll wheels.
This just fixes angleDelta() based scrolling. An additional
patch might be needed, if some driver just uses pixelDelta()
values, but Qt explicitly states: "On X11 the pixelDelta()
value is driver specific and unreliable, use angleDelta()
instead.", so we'll do just that for now.
Change-Id: I1be5f9392ed475aea7ab4d965a07e1e3c2574fe7
Reviewed-on: https://gerrit.libreoffice.org/73614
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Originally I tried to implement the gtk3 way by shoving all key
input in some way through the QInputMethod. But that turned out
to be impossible, because all the nice input event filtering is
privately hidden in the platform abstraction. And it took me
much longer to realize that gtk3 is doing this.
Still the delivered code point in the KeyEvent is correct, so
this simply uses ExtTextInput events for non-code key events,
if LO has enabled input method support for a frame.
Change-Id: Ia9bb6baf013cf790deecb9675f8309e32294e982
Reviewed-on: https://gerrit.libreoffice.org/73322
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
...it was added as float with eb5606511fac2a8ee1af7cc03c12d6c5b16f7c96
"tdf#101854 Move to CommonSalLayout removed faux bold in macos", but that causes
loplugin:implicitboolconversion warnings, and was probably just a typo.
Change-Id: Ib35c5b001f0a77befa17e7bbb6447129e36a42ba
Reviewed-on: https://gerrit.libreoffice.org/73590
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
|
|
And use RunInMain for both SalInstances and for both picker types,
as there is no reason to assume just the file and not the folder
picker can be called from the non-GUI thread.
Little drawback is the inclusion of Qt5FilePicker header in the
Qt5Instance header, as Qt's enums aren't forward-declarable.
Change-Id: Ie170d247a76134df9aff835393c71c9d6e907d32
Reviewed-on: https://gerrit.libreoffice.org/73416
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Just a little refactoring.
Gets rid of the common used idom in the code:
m_pTopLevel ? m_pTopLevel : m_pQWidget
Change-Id: I3e96687d9d02c0b1a5537c6b6cea53e1ca3a2067
Reviewed-on: https://gerrit.libreoffice.org/73414
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
There is already duplicate code getTransferDataFlavorsAsVector.
Maybe getTransferData can be also merged later.
Change-Id: Iaa1c16990c1f19757f04944bcd21f395f6b8f69b
Reviewed-on: https://gerrit.libreoffice.org/73301
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
This is mainly about the using namespace in the Qt5Clipboard
header. While at it get rid of the Vcl prefix.
Change-Id: I62a804a83afe2feb4bf130eb5475790bc52365c4
Reviewed-on: https://gerrit.libreoffice.org/73287
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: I55b4ab8ec5059110525c5194e1133c65bbd07fec
Reviewed-on: https://gerrit.libreoffice.org/73183
Tested-by: Jenkins
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
|
|
... which need to be assignable in auto-generated operator= in VS2019
toolset v142. Without that, a compile-time error is generated:
[CXX] vcl/source/gdi/WidgetDefinitionReader.cxx
[CXX] vcl/source/gdi/WidgetDefinition.cxx
[CXX] vcl/source/gdi/gdimetafiletools.cxx
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): error C2220: warning treated as error - no 'object' file generated
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): warning C4239: nonstandard extension used: 'argument': conversion from 'const std::pair<const _Kty,_Ty>' to 'volatile const std::pair<_Kty,_Ty> &'
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): note: A non-const reference may only be bound to an lvalue; assignment operator takes a reference to non-const
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(486): note: see reference to function template instantiation 'void std::list<std::pair<const _Kty,_Ty>,std::allocator<std::pair<const _Kty,_Ty>>>::_Assign_cast<std::pair<_Kty,_Ty>&,std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const _Kty,_Ty>>>,std::_Iterator_base0>>(_UIter,const _UIter)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_UIter=std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>>,std::_Iterator_base0>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(485): note: see reference to function template instantiation 'void std::list<std::pair<const _Kty,_Ty>,std::allocator<std::pair<const _Kty,_Ty>>>::_Assign_cast<std::pair<_Kty,_Ty>&,std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const _Kty,_Ty>>>,std::_Iterator_base0>>(_UIter,const _UIter)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_UIter=std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>>,std::_Iterator_base0>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(481): note: while compiling class template member function 'void std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>::_Copy_assign(const std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>> &,std::false_type)'
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(516): note: see reference to function template instantiation 'void std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>::_Copy_assign(const std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>> &,std::false_type)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\unordered_map(77): note: see reference to class template instantiation 'std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\cygwin\home\user\lode\dev\core\vcl\inc\widgetdraw/WidgetDefinition.hxx(260): note: see reference to class template instantiation 'std::unordered_map<vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>,std::hash<vcl::ControlTypeAndPart>,std::equal_to<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): error C2280: 'std::pair<_Kty,_Ty> &std::pair<_Kty,_Ty>::operator =(volatile const std::pair<_Kty,_Ty> &)': attempting to reference a deleted function
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\utility(177): note: see declaration of 'std::pair<_Kty,_Ty>::operator ='
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\utility(177): note: 'std::pair<_Kty,_Ty> &std::pair<_Kty,_Ty>::operator =(volatile const std::pair<_Kty,_Ty> &)': function was explicitly deleted
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): error C2220: warning treated as error - no 'object' file generated
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): warning C4239: nonstandard extension used: 'argument': conversion from 'const std::pair<const _Kty,_Ty>' to 'volatile const std::pair<_Kty,_Ty> &'
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): note: A non-const reference may only be bound to an lvalue; assignment operator takes a reference to non-const
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(486): note: see reference to function template instantiation 'void std::list<std::pair<const _Kty,_Ty>,std::allocator<std::pair<const _Kty,_Ty>>>::_Assign_cast<std::pair<_Kty,_Ty>&,std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const _Kty,_Ty>>>,std::_Iterator_base0>>(_UIter,const _UIter)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_UIter=std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>>,std::_Iterator_base0>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(485): note: see reference to function template instantiation 'void std::list<std::pair<const _Kty,_Ty>,std::allocator<std::pair<const _Kty,_Ty>>>::_Assign_cast<std::pair<_Kty,_Ty>&,std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const _Kty,_Ty>>>,std::_Iterator_base0>>(_UIter,const _UIter)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_UIter=std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>>,std::_Iterator_base0>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(481): note: while compiling class template member function 'void std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>::_Copy_assign(const std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>> &,std::false_type)'
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(516): note: see reference to function template instantiation 'void std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>::_Copy_assign(const std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>> &,std::false_type)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\unordered_map(77): note: see reference to class template instantiation 'std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\cygwin\home\user\lode\dev\core\vcl\inc\widgetdraw/WidgetDefinition.hxx(260): note: see reference to class template instantiation 'std::unordered_map<vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>,std::hash<vcl::ControlTypeAndPart>,std::equal_to<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): error C2280: 'std::pair<_Kty,_Ty> &std::pair<_Kty,_Ty>::operator =(volatile const std::pair<_Kty,_Ty> &)': attempting to reference a deleted function
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\utility(177): note: see declaration of 'std::pair<_Kty,_Ty>::operator ='
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\utility(177): note: 'std::pair<_Kty,_Ty> &std::pair<_Kty,_Ty>::operator =(volatile const std::pair<_Kty,_Ty> &)': function was explicitly deleted
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): error C2220: warning treated as error - no 'object' file generated
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): warning C4239: nonstandard extension used: 'argument': conversion from 'const std::pair<const _Kty,_Ty>' to 'volatile const std::pair<_Kty,_Ty> &'
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): note: A non-const reference may only be bound to an lvalue; assignment operator takes a reference to non-const
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(486): note: see reference to function template instantiation 'void std::list<std::pair<const _Kty,_Ty>,std::allocator<std::pair<const _Kty,_Ty>>>::_Assign_cast<std::pair<_Kty,_Ty>&,std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const _Kty,_Ty>>>,std::_Iterator_base0>>(_UIter,const _UIter)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_UIter=std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>>,std::_Iterator_base0>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(485): note: see reference to function template instantiation 'void std::list<std::pair<const _Kty,_Ty>,std::allocator<std::pair<const _Kty,_Ty>>>::_Assign_cast<std::pair<_Kty,_Ty>&,std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const _Kty,_Ty>>>,std::_Iterator_base0>>(_UIter,const _UIter)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_UIter=std::_List_unchecked_const_iterator<std::_List_val<std::_List_simple_types<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>>,std::_Iterator_base0>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(481): note: while compiling class template member function 'void std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>::_Copy_assign(const std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>> &,std::false_type)'
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\xhash(516): note: see reference to function template instantiation 'void std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>::_Copy_assign(const std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>> &,std::false_type)' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\unordered_map(77): note: see reference to class template instantiation 'std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>,
_Hasher=std::hash<vcl::ControlTypeAndPart>,
_Keyeq=std::equal_to<vcl::ControlTypeAndPart>,
_Alloc=std::allocator<std::pair<const vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>>>
]
C:\cygwin\home\user\lode\dev\core\vcl\inc\widgetdraw/WidgetDefinition.hxx(260): note: see reference to class template instantiation 'std::unordered_map<vcl::ControlTypeAndPart,std::shared_ptr<vcl::WidgetDefinitionPart>,std::hash<vcl::ControlTypeAndPart>,std::equal_to<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>' being compiled
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\list(1076): error C2280: 'std::pair<_Kty,_Ty> &std::pair<_Kty,_Ty>::operator =(volatile const std::pair<_Kty,_Ty> &)': attempting to reference a deleted function
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\utility(177): note: see declaration of 'std::pair<_Kty,_Ty>::operator ='
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\14.21.27702\Include\utility(177): note: 'std::pair<_Kty,_Ty> &std::pair<_Kty,_Ty>::operator =(volatile const std::pair<_Kty,_Ty> &)': function was explicitly deleted
with
[
_Kty=vcl::ControlTypeAndPart,
_Ty=std::shared_ptr<vcl::WidgetDefinitionPart>
]
make[1]: *** [C:/cygwin/home/user/lode/dev/core/solenv/gbuild/LinkTarget.mk:293: C:/cygwin/home/user/lode/dev/core/workdir/CxxObject/vcl/source/gdi/FileDefinitionWidgetDraw.o] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [C:/cygwin/home/user/lode/dev/core/solenv/gbuild/LinkTarget.mk:293: C:/cygwin/home/user/lode/dev/core/workdir/CxxObject/vcl/source/gdi/WidgetDefinition.o] Error 2
make[1]: *** [C:/cygwin/home/user/lode/dev/core/solenv/gbuild/LinkTarget.mk:293: C:/cygwin/home/user/lode/dev/core/workdir/CxxObject/vcl/source/gdi/WidgetDefinitionReader.o] Error 2
make: *** [Makefile:282: build] Error 2
Change-Id: I9273bf7bfd78848918c783b8237e76b59e2043cf
Reviewed-on: https://gerrit.libreoffice.org/73196
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Current qt5+cairo uses the plain VCL canvas. This patch is just a
copy of Gtk3Surface (minus comments) with a different update call.
This way the Cairo path now uses the Cairo canvas instead.
It fixes at least tdf#122668 for me, but other Impress bugs might
be fixed this way too.
Change-Id: Iba511c851001753328293c28e53eaa4acc4315d0
Reviewed-on: https://gerrit.libreoffice.org/72921
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Reviewed-by: Aleksei Nikiforov <darktemplar@basealt.ru>
|
|
Based on the corresponding macOS code. Work in progress. The image
support ifdeffed out still (because it uses some macOS specific APIs
for which I couldn't right away find the equivalent iOS ones).
I made it much simpler than the macOS code. I dropped the keeping of a
local in-process clipboard completely. Firstly, as far as I see, the
iOS clipboard API (UIPasteboard etc) does not even offer the
possibility to separately offer some formats and actually provide the
data on request. Secondly, we must be prepared anyway that the system
can kill an iOS app at any stage while the user is using some other
app, so we need to make sure everything that is copied goes onto the
system clipboard right away anyway.
I had to disable the copying of HTML to the clipboard as that lead to
a mysterious assertion failure. See comment in
DataFlavorMapper::openOfficeToSystemFlavor(). But RTF seems to work
well, too. I assume RTF is what gets used for cross-application
copy/paste (and cross-device, even, through Apple's Universal
Clipboard thing, where you can copy/paste between your Macs and iOS
devices on the same network).
I am not sure how relevant the various application/x-openoffice-foo
formats are.
Change-Id: I174495e33d86fc3990996c229243c05d6cbfcda7
|
|
e.g. copy-DnD with Ctrl held down. This is qt5 remix of tdf#109227
Change-Id: Ib0794c7468cc04d3d50686952305717e10c90c9a
Reviewed-on: https://gerrit.libreoffice.org/72878
Tested-by: Jenkins
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
|
|
The problem here is that we never actually hit the maExportGraphics
cache in SvXMLGraphicHelper, even though we are passing the same image
down repeatedly.
There are two bugs here:
(1) BitmapEx::operator== does not return true if we instantiate 2
Graphic objects from the same XGraphic, so change it to use the more
expensive operator==. To mitigate the cost, move the expensive checks to
the bottom of the method.
(2) in order to use an object in std::unordered_map, the object must
implement an equality function and a hash function. If two objects are
equal THEY MUST have the same hash value. Using the Impl* as the hash
value does not satisfy that condition, so rather use the checksum, which
does.
After these fixes, the save time drops to less than a second.
Also make the checksum method look more like the operator== method,
and add a checksum calculation method for SVG data that more accurately
reflects the underlying SVG data.
Change-Id: I4ca0c7bee60b2efa6fe42301e582c7b278022b46
Reviewed-on: https://gerrit.libreoffice.org/72615
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
The problem with latest macOS versions is that creating a graphic
context with window (NSGraphicsContext graphicsContextWithWindow:)
only works when actually drawing and otherwise it returns null.
This caused problems before in AquaVrtualDevice, but we also use
this when creating a device backing storage. This interestingly
caused slowdowns and eventual crash, but the backtrace looked
very misterious as it didn't crash because of a nullptr, but
it halted all drawing commands and it crashed because of that.
This changes the graphic context with a bitmap context, as it
was already done in VirtualDevice and use that instead. The
problem with a bitmap context is that we need to handle HiDPI
scaling by ourselves now.
LayerHolder was extended to store the scaling information of the
layer (and its underlaying bitmap context) and provides methods
that get the size of the layer in pixels or in scaling independent
points (which is just size in pixels multiplied by the scaling
factor).
An known issue is that VirtualDevice also needs to take scaling
into account, which it currently doesn't, so the text is still
blurry on a HiDPI screen, but that was already true previously
and is something that will be done in a different change.
Change-Id: I8e10c518ecba285125746bd20525c4cb5ca67279
Reviewed-on: https://gerrit.libreoffice.org/72663
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ied40189dc17d05c77af7bcf069f8d68a199fc03f
Reviewed-on: https://gerrit.libreoffice.org/72584
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I87f5a1bc2c41c58cff747bbad82867d53ea92ce7
Reviewed-on: https://gerrit.libreoffice.org/72442
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: If5e27ea4049a76e560dd9823f335b86e2599d4cc
Reviewed-on: https://gerrit.libreoffice.org/72440
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I52539f6582d099ef80048d9a25266c88e1f6d783
Reviewed-on: https://gerrit.libreoffice.org/72439
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Id0a7317e9aed4b0222affb7292f6a3a44af74040
Reviewed-on: https://gerrit.libreoffice.org/72438
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Id511af2ee22e421aa7088a72f43a74d45dfe6ec1
Reviewed-on: https://gerrit.libreoffice.org/72437
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I44ee257a8a196e8f2372dd01776c0c7c5193ad0a
Reviewed-on: https://gerrit.libreoffice.org/72436
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I3088e0b2f6c54f272fd29d7a6069e8231b207666
Reviewed-on: https://gerrit.libreoffice.org/72435
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
The below commit message is relevant for the behaviour fixed by this
change in the Collabora branch cp-6.0 (or core) and collabora-online-4
(of online). The behaviour here in master is broken in different ways,
though, and I am not entirely sure whether this change fixes anything
here. But let's apply it here, too, for consistency.
Until recently we had managed without them on iOS, but that changed
with the recent "Unipoll" work, I think. (Without this change, the iOS
app now runs into assertion failures early on. But note that this
change is not enough to make it work fully again.)
Change-Id: I09d25326ba73ce897da5c91f30530f5b3d5fd272
|
|
Change-Id: Ibfa4d493ed752a03554020c6ab06bfc38745d97d
Reviewed-on: https://gerrit.libreoffice.org/71871
Tested-by: Jenkins
Reviewed-by: Aleksei Nikiforov <darktemplar@basealt.ru>
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Now that it will be used by four VCL plugins, move its code into
the common VCL library. The none-XAccessibility, none-UNO version
used on Windows needs much more work to function with various
widgets (including some API refactoring IMHO).
(see ImplHandleSalSurroundingTextRequest and friends).
Change-Id: I0fdf72336a66fc578b18b1edc8f8627d5dfdc57f
Reviewed-on: https://gerrit.libreoffice.org/72364
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Ied3831c83ed385f5f28b82eb1ee67a2a4448cd05
Reviewed-on: https://gerrit.libreoffice.org/72268
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
BitmapColor itself is kept to distingish the Color usage as part
of a color palette, which continues to store the offset in the
blue value. The original special mbIndex handling is long gone
since commit 1fefdd6f3b41 ("Alpha channel in BitmapColor - change
bIndex to alpha"), so there is no data difference.
This also results in the following changes:
* now has a basic_ostream<charT, traits>& operator<<
(that was my actual starting point... for an other bug fix)
* there is a minimal difference for GetLiminance
BGR(29,151,76) => BGR(28,151,77)
* no more return values for Merge and Invert
(previously returning *this)
* replaces all GetBlueOrIndex with GetIndex
This leaves one "problematic" part: the GetColorError handling.
At first glance it should probably be virtual. The Color variant
is less strict then the BitmapColor one - for whatever reason.
BitmapColor is always used to search for the best match in a
Palette. Currently I'm simply leaving both variants. Would be
nice to have an explict for functions here.
Change-Id: I251ba3024a1d60f2a9d9fde9cd0a60f08e8322a7
Reviewed-on: https://gerrit.libreoffice.org/72181
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Qt generates three change events when changing the KDE theme:
FontChange, StyleChange and PaletteChange. LO has two:
SettingChanged and FontChanged. And like Qt LO will inform all
widgets / windows independently. To prevent several redraws,
this patch just collects all Qt's change events and notifies LO
once a bit later via a Timer.
Change-Id: I9b45f543f13a84e39247a642a0e33c9ec008a46a
Reviewed-on: https://gerrit.libreoffice.org/72196
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: I4894023e42cbfa32916ee3ddfb2cfb5426cfc69f
Reviewed-on: https://gerrit.libreoffice.org/72195
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|