summaryrefslogtreecommitdiff
path: root/vcl/unx
AgeCommit message (Collapse)Author
2020-02-11tdf#130478 Enhance Dashed line drawing on all systemsArmin Le Grand (Collabora)
For more info and explanation including state of process information and discussion(s) see task please. Adding corrections for gerrit build Cherry-picked 5f61c9fe99ac93087b898adddbb4d4733f1fcd07: Adaptions made and checked that Caio fat line draw works as expected. Surprisingly some new files were created which I removed here again. Also needs to be cherry-picked is: 9c9f76dd5b6fb115e521ac6568673c7a10879192 which will enable direct dash paint for Cairo. Not done here due to not sure if I can do two cherry-picks in one run and it's lust a view lines, so -compared to this one- should be not difficult. Change-Id: Ie10fb8093a86459dee80db5ab4355b47e46c1f8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88130 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88284 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2019-12-11vcl: sfx2: LOK: Support per-view popup windowsAshod Nakashian
While we do support multiple views, there is only one state for popup/floating windows, that also includes the dialogs open and related windows/data. This adds support to allow each view to have its own popups and state, thus allowing multiple users to interact with the dialogs independently of one another. (cherry picked from commit b50c341a53911f1d725947a4d8d3d2f782c94079) Change-Id: I3786a561ca6ca113ad12425bdb491e5a30bd1a28 Reviewed-on: https://gerrit.libreoffice.org/82440 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2019-12-09lok: Support per-view help dataTamás Zolnai
Used for showing tooltip windows in LO online. Change-Id: I8b6a7272c75025e717923c839fa8fd9f4cab2903 Reviewed-on: https://gerrit.libreoffice.org/84717 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
2019-11-30tdf#124391 Fix doubled menu in global menuSamuel Mehrbrodt
Regression from 3bedbfd9b3cee5a8d2da6ee0486859bd725979ba Change-Id: I56473a2b0620f90f23b1bcde3ae1290801021038 Reviewed-on: https://gerrit.libreoffice.org/80465 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2019-11-20hide help buttons when LibreOfficeKit::isActive and local help unavailableCaolán McNamara
Change-Id: Ia263f9f7c78dbf48143678fc2f577402fb1ce998 Reviewed-on: https://gerrit.libreoffice.org/83309 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2019-11-13custom widgets: support custom action button text colorsAshod Nakashian
Reviewed-on: https://gerrit.libreoffice.org/82276 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 8a425fbd9c6b75b09672e0ce18f43162d9eda360) Change-Id: I314183a1d6434c043183a600740c786e22a67503 Reviewed-on: https://gerrit.libreoffice.org/82383 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-09-17tdf#127189 FreeType <= 2.8 will fail to render stretched horizontal brace...Caolán McNamara
glyphs in starmath at a fairly low stretch ratio. The failure will set CAIRO_STATUS_FREETYPE_ERROR on the surface which cannot be cleared, so all further painting to the surface fails. This appears fixed in 2.9 with https://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=91015cb41d8f56777f93394f5a60914bc0c0f330 "Improve complex rendering at high ppem" Change-Id: I8cbf8347ccd29beda4057b14f2e68678f6030bf4 Reviewed-on: https://gerrit.libreoffice.org/78590 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Reviewed-on: https://gerrit.libreoffice.org/79032 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
2019-09-05tdf#126007 tdf#122355 online help won't look into a dialog notebookCaolán McNamara
when the focus is on the help button, offline will through the help fallback route, but online will just fire and forget and let the server side do a fallback, which can't know what the current notebook page was. so bodge it to look at the notebook page right from the start if there is one and its the help button itself which starts the request Change-Id: Ida1d3101d838d99639dda12c438414c16b1ccda5 Reviewed-on: https://gerrit.libreoffice.org/77550 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2019-08-29make it possible to use FileDefinitionWidgetDraw in more backendsTomaž Vajngerl
Change-Id: I8871eb49e11d8c72c469230967c3c979091a0f9b Reviewed-on: https://gerrit.libreoffice.org/68898 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit a2bf2ca1e3d398db0caa07fce4d135e6dc8b2f27)
2019-08-05KDE4 create KDESalGraphics based X11VirtualDeviceJan-Marek Glogowski
In the spirit of commit 5ee408eb4c9f ("tdf#125673 KDE5 implement a KDE5SalVirtualDevice"), this might help with KDE4 graphics problems, like the ones mentioned in tdf#126272. Change-Id: I50875b69e1c1494803f08746bfc3b99a57e36414 Reviewed-on: https://gerrit.libreoffice.org/75281 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit cd98258b659d98871787fa932698a290b20f56cf) Reviewed-on: https://gerrit.libreoffice.org/76916 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
2019-08-04kde4: Add missing include to fix buildMichael Weghorn
Fixes this build failure as reported e.g. by tinderbox [1]: In file included from /usr/include/c++/7/bits/locale_conv.h:41:0, from /usr/include/c++/7/locale:43, from /usr/include/c++/7/iomanip:43, from include/com/sun/star/uno/Any.hxx:27, from workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/uno/XInterface.hpp:9, from workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/uno/Exception.hpp:8, from workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/uno/RuntimeException.hpp:8, from workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/lang/XTypeProvider.hpp:8, from include/cppuhelper/compbase.hxx:25, from vcl/unx/kde4/KDE4FilePicker.hxx:22, from vcl/unx/kde4/KDESalInstance.cxx:20: /usr/include/c++/7/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = SalVirtualDevice]’: /usr/include/c++/7/bits/unique_ptr.h:268:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = SalVirtualDevice; _Dp = std::default_delete<SalVirtualDevice>]’ .../vcl/unx/kde4/KDESalInstance.cxx:70:107: required from here /usr/include/c++/7/bits/unique_ptr.h:76:22: error: invalid application of ‘sizeof’ to incomplete type ‘SalVirtualDevice’ static_assert(sizeof(_Tp)>0, [1] https://tinderbox.libreoffice.org/cgi-bin/gunzip.cgi?tree=libreoffice-6-2&brief-log=1562787602.2042 Change-Id: I1da444b80447ec8896ff9898684ee14fd3933b18 Reviewed-on: https://gerrit.libreoffice.org/75381 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Tested-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit e84b9d0d5ac55a2f7a4936ca83a5eea5562f98a8) Reviewed-on: https://gerrit.libreoffice.org/76918 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
2019-07-06Resolves: tdf#125168 label mnemonic appearing in database urlCaolán McNamara
Change-Id: I39531ae2a656c16c7355d73b76cb918d3535f7b0 Reviewed-on: https://gerrit.libreoffice.org/74604 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> (cherry picked from commit 1c6bac6e003e9f280a29cc83974bdfb3d06b24a9)
2019-06-19KDE5 move screensafer inhibiting code into Qt5Jan-Marek Glogowski
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. Reviewed-on: https://gerrit.libreoffice.org/74015 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit b5323c72ff7e5bcde34089e49fe98e589dcc5acb) Change-Id: I55c89c76726d30a890178488484e954207267e89 Reviewed-on: https://gerrit.libreoffice.org/74081 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 9c37c306158267d942a0a1debc3845db1c923ceb) Reviewed-on: https://gerrit.libreoffice.org/74192 (cherry picked from commit 3ff31faa48c12c33c9c3fafae8fc35201fa5d614)
2019-06-14tdf#125673 KDE5 implement a KDE5SalVirtualDeviceJan-Marek Glogowski
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. Reviewed-on: https://gerrit.libreoffice.org/73673 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 2cb6a591b643a0f65dc58f060f60cc707ad3589c) Reviewed-on: https://gerrit.libreoffice.org/73722 Change-Id: I0ea646df260f2067d61c753f03dee01a003f382a Reviewed-on: https://gerrit.libreoffice.org/73963 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2019-06-13Qt5 implement SalSurface support for cairoJan-Marek Glogowski
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. 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> (cherry picked from commit 86cab846c1a122dd4dd5f5c4ca5750a0fc397c6b) [This also squashes the backport of commit cc237438f6d1c7ee3a391b51402aaa71cd347b6b ("qt5: Make it compile with '-Werror=shadow'") in to the same commit.] Change-Id: Iba511c851001753328293c28e53eaa4acc4315d0 Reviewed-on: https://gerrit.libreoffice.org/73198 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2019-06-12Resolves: rhbz#1719378 wrong signature for GtkGestureLongPress::pressedCaolán McNamara
Change-Id: Ib4c47189d5c9c89433f0c7de194ebb9777dc7bac Reviewed-on: https://gerrit.libreoffice.org/73831 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2019-06-07tdf#124694 gtk3 GtkFixed takes the max size of all its children...Caolán McNamara
as its preferred size, causing it to not clip its child, but grow instead to match Change-Id: I57f740177aae619d11966f5382a6cc5f7a964be3 Reviewed-on: https://gerrit.libreoffice.org/73170 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-06-06Resolves: rhbz#1712823 prefer help strings to a11y strings when availableCaolán McNamara
Reviewed-on: https://gerrit.libreoffice.org/69934 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit b70053ba681a9b62afd6fa700ad94256d98d8dc7) Change-Id: I50b36f697b8dd9ff8108392d48a7050702edbfbe Reviewed-on: https://gerrit.libreoffice.org/72880 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2019-06-05tdf#124694 gtk2 GtkFixed takes the max size of all its children...Caolán McNamara
as its preferred size, causing it to not clip its child, but try and grow instead to match Change-Id: Ibea269d475a4b35a43b6cab2ab432a830d8ff1ff Reviewed-on: https://gerrit.libreoffice.org/73174 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-05-31Revert "tdf#123011 Detect kde5 desktop in Plasma Wayland session"Michael Weghorn
kde5 plugin on Wayland still shows too many issues, like e.g. tdf#123654 and was barely tested, so don't use it by default in libreoffice-6-2 branch, but prefer gtk3. This does not affect the X11 case. This reverts commit 3e4478103ee1ba912d650ab447ed246f5f1cc196. Change-Id: I7f74a6b5f377f65b81cf5ae189e8672bdce82c95 Reviewed-on: https://gerrit.libreoffice.org/73193 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2019-05-28tdf#125271 under wayland without gtksink, try waylandsinkCaolán McNamara
and if there is no videosink then give up Change-Id: I6b60e7be1e77dbf5c4c277ccf47a4d121f3cd6a5 Reviewed-on: https://gerrit.libreoffice.org/72871 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/73087 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Tested-by: Jenkins
2019-05-24qt5: Fix buildMichael Weghorn
The utility constructor using 'StockImage::Yes' was only introduced in master commit 0f104bf33530467380044b9eb4cd3f8bd9c283f1 and is therefore not available in libreoffice-6-2 branch. Build was therefore broken by commit f10c1c648e698b48dfaa679a4909b3d9de6ed868 ("tdf#123549 Qt5 implement Qt5Menu::ShowCloseButton"), which first went unnoticed since qt5/kde5 wasn't enabled for CI builds on branch libreoffice-6-2. (This will be changed by https://gerrit.libreoffice.org/#/c/72741/ .) Also, add a missing include that lead to kde5-enabled CI builds failing [1], which I couldn't reproduce locally ("shell/source/backends/kde5be/kde5backend.cxx:190:5: error: ‘unique_ptr’ is not a member of ‘std’"). And fix more issues showing up in [2] and follow-up builds of the change that enables kde5 on the 6.2 branch [3]. [1] https://ci.libreoffice.org/job/gerrit_62/1535/ [2] https://ci.libreoffice.org/job/gerrit_62/1540/ [3] https://gerrit.libreoffice.org/#/c/72741/ Change-Id: I6a39a99114d15808b790242c96d0204916a0cc40 Reviewed-on: https://gerrit.libreoffice.org/72779 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Tested-by: Jenkins
2019-05-22tdf#123750 kde5: Show removable devices in file dialogMichael Weghorn
As the Qt documentation for 'QFileDialog::supportedSchemes' says, setting supported schemes to a non-empty list restricts the available options: "Setting this property allows to restrict the type of URLs the user will be able to select. It is a way for the application to declare the protocols it will support to fetch the file content. An empty list means that no restriction is applied (the default)." The call to 'QFileDialog::setSupportedSchemes' was copied over from the gtk3_kde5 VCL plugin in commit 6196b7292fbb3168c558e64881601148c15653e4, where it had been added by commit f1b60bd62daff4aaf6465caadd4ad0c447521102 "Support opening of (some) remote URLs through the KDE file dialog". Since only either all schemes (if nothing explicitly set) or a whitelist of supported locations seems to be possible (s.a. the Phabricator changes referenced in the commit message of commit f1b60bd62daff4aaf6465caadd4ad0c447521102), add the "" scheme that makes removable devices shown -- while there doesn't seem to be an official documentation on the available schemes, at least not in KFileWidget's API documentation [1]. A quick test with all new available options after removing the call to 'QFileDialog::setSupportedSchemes' altogether indicated that opening and saving files there doesn't work reliably in all cases, so rather excplicitly add the "" scheme rather than claiming support for all schemes (including e.g. "timeline", "search", "remote", "trash"). [1] https://api.kde.org/frameworks/kio/html/classKFileWidget.html Change-Id: I89dc37d0f06d280e5dd599f90768c13e8edb915b Reviewed-on: https://gerrit.libreoffice.org/71320 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 2c69c93fdb871809825fe8b9aff40b7afb093be8) Reviewed-on: https://gerrit.libreoffice.org/72750 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-05-22tdf#119856 vcl: convert Qt5FilePicker and Qt5Menu to RunInMainThreadMichael Stahl
... and also convert KDE5FilePicker. And Qt5Frame. The UNO methods in Qt5FilePicker/KDE5FilePicker have to ensure that the thread actually owns SolarMutex, because if RunInMainThread() is called without that it will deadlock. Change-Id: Ie4d2f494ac81c799ec7c9a3acb3a9b0f77bb6361 Reviewed-on: https://gerrit.libreoffice.org/68357 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 7e251025b97ed2a300270b1a565727441005c77e) Reviewed-on: https://gerrit.libreoffice.org/72660 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-05-22tdf#119856 vcl: Qt5/KDE5 RunInMainThreadMichael Stahl
The problem with the current approach of transferring calls to the main thread with Q_EMIT signals is that if the code that should run in the main thread needs SolarMutex, then the non-main-thread must use SolarMutexReleaser - but then the main thread will run not only the call that is needed right now, but will potentially process all pending events, and the other thread hasn't prepared for that. We need the inter-thread feature of Qt::BlockingQueuedConnection and the non-queued feature of Qt::DirectConnection, but this combination doesn't appear to exist. So the SolarMutexReleaser needs to go - but then the main thread does need SolarMutex for some things, and hence we need to trick it into believing it has SolarMutex with the m_bNoYieldLock hack. Then it becomes apparent that the main thread may be blocked on either Qt events, which is fine, or on the SalYieldMutex's m_aMutex, which will never be released now. So the main thread must never block on m_aMutex; the alternative is to use the same approach as the osx code (and, in a somewhat different form, the svp code), and add some condition variables on which the main thread can block if it fails to acquire the m_aMutex immediately. It's even possible to do this in a somewhat generic way with lambdas. This does appear to work, but it makes the Q_EMIT approach entirely untenable, because now the main thread will be blocked on the condition variable and the non-main-thread will be blocked until the Qt event is processed. Reviewed-on: https://gerrit.libreoffice.org/68232 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 265caa4381c048c346c907b017561ab0fe0367ff) Change-Id: I6480a6b909d5ec8814b2ff10dbefb0f3686a83c7 Reviewed-on: https://gerrit.libreoffice.org/72657 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-05-22kde5 fpicker: Reuse 'initialize()' from base classMichael Weghorn
Take over missing case from 'KDE5FilePicker::initialize' to 'Qt5FilePicker::initialize' and make 'Qt5FilePicker::addCustomControl' virtual, so that the subclass's implementation is called in the 'initialize()' method (in particular to avoid adding another autoextension checkbox). Drop the 'KDE5FilePicker::initialize' so that the base class implementation is used, which now does the same thing. Add 'override' keyword in KDE5Filepicker.hxx. Change-Id: Id151a4d4862af4275f6c21c6537a79c52e3ed513 Reviewed-on: https://gerrit.libreoffice.org/68059 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 77d5795f9e79a996fa6ee8153f7bc565c4440b02) Reviewed-on: https://gerrit.libreoffice.org/72656
2019-05-22Make 'setDefaultName()' work again for kde5 fpickerMichael Weghorn
Add an option to Qt5FilePicker constructor to say whether the QFileDialog should be a native one or not, since 'QFileDialog::selectFile' does not preselect the correct name in the native dialog any more if the 'QFileDialog::DontUseNativeDialog' option has ever been set, i.e. QFileDialog fileDialog; fileDialog.setOption(QFileDialog::DontUseNativeDialog); fileDialog.setOption(QFileDialog::DontUseNativeDialog, false); fileDialog.selectFile("test.txt"); will not properly set the name in the native file dialog, which broke 'setDefaultName' for the KDE5FilePicker. This makes it work again, even though I think that the underlying issue is a Qt bug (s. https://bugreports.qt.io/browse/QTBUG-73682 ). Change-Id: I99a1e7c97d594925d600fa8eaf3303f9013551c2 Reviewed-on: https://gerrit.libreoffice.org/68058 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 1d01ebc84867af00825512a3a3cfd9d0fa15eea9) Reviewed-on: https://gerrit.libreoffice.org/72655
2019-05-22KDE5FilePicker: Reuse custom controls from parent classMichael Weghorn
Use the custom controls widgets from the parent class Qt5FileWidget and drop the own class members that were used for this. Also call the base class's implementations for the methods that interact with the custom controls. Since the native Plasma/kde5 file picker handles automatic file extensions by itself while the non-native qt5 one does not, the methods in KDE5FilePicker only forward those method calls that are not related to the corresponding control ('CHECKBOX_AUTOEXTENSION'). Change-Id: Ia2de3211ffba7814683914a5e629208b19b2ed82 Reviewed-on: https://gerrit.libreoffice.org/68057 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 0b93a6c3f1c706dd532e71deeefb480c6e0ea02e) Reviewed-on: https://gerrit.libreoffice.org/72654
2019-05-21kde5 fpicker: Reuse parent class member to store custom widgetsMichael Weghorn
Directly access member 'm_pExtraControls' from parent class Qt5FilePicker for managing custom widgets, rather than maintaining an own one. This is meant as an intermediate step, further refactoring will follow. Change-Id: I0568d3db68dc24042e198d36f4b5e49608f93a0e Reviewed-on: https://gerrit.libreoffice.org/68055 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 2bd0400a49ad2dfeb1c3848a84f8e512433b5411) Reviewed-on: https://gerrit.libreoffice.org/72652
2019-05-21kde5 fpicker: Reuse existing handle{G,S}etListValueMichael Weghorn
Turn existing functions in Qt5FilePicker into protected static class methods and reuse them in KDE5FilePicker. The qt5 implementation covers everything that kde5 had, and a little more (e.g. covers case 'ControlActions::DELETE_ITEM' in 'handleSetListValue' as well). Reviewed-on: https://gerrit.libreoffice.org/68054 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 0dda9db8b5610ee31020258d7e4c83342d0ceefc) Change-Id: I9673b20e3313c0628a76f0d94e018327f4af8523 Reviewed-on: https://gerrit.libreoffice.org/72651 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2019-05-21Drop KDE5FilePicker::cancelMichael Weghorn
Base class's 'Qt5FilePicker::cancel' already does nothing just the same way. Change-Id: Ie125d117f27849b29f082c72e320c1021e81163e Reviewed-on: https://gerrit.libreoffice.org/68053 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 424ffe2917cb3b0626af4f996aba149aa82a8e76) Reviewed-on: https://gerrit.libreoffice.org/72650
2019-05-21KDE5FilePicker: Reuse XFilter{,Group}Manager methods from qt5Michael Weghorn
The non-native QFileDialog automatically adds the file extension for the selected filter in the listbox, therefore it was stripped from the filter title in 'Qt5FilePicker::appendFilter'. Since the native Plasma/kde5 file dialog does not add it automatically, introduce a new member 'm_bShowFileExtensionInFilterTitle' to specify whether or not to strip the extension and set it accordingly in KDE5FilePicker (so that it continues to show e.g. "ODF Text Document (.odt)" instead of just "ODF Text Document"). This allows for KDE5FilePicker to reuse the base class implementation and thus to drop all related own members and methods. Change-Id: Icfb77d065160d3f655e3e89ad69de4195781373a Reviewed-on: https://gerrit.libreoffice.org/68052 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit fee0bf03f4ca19c454fb727156887e45ceeb364a) Reviewed-on: https://gerrit.libreoffice.org/72649
2019-05-21Drop KDE5FilePicker::setDescriptionMichael Weghorn
Base class's 'Qt5FilePicker::setDescription' does the same, namely nothing. Change-Id: Ie89a1e1edaf20c49a1b16f43000a4a054b21f3b2 Reviewed-on: https://gerrit.libreoffice.org/68051 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 3035db41839f12642a02040099468695bf5ab335) Reviewed-on: https://gerrit.libreoffice.org/72648
2019-05-21Drop KDE5FilePicker::getDirectoryMichael Weghorn
Use base class's 'Qt5FilePicker::getDirectory' instead to reduce duplication. Strictly speaking, the 'KDE5FilePicker::implGetDirectory' implementation used by 'KDE5FilePicker::getDirectory' suggests that the display directory is returned rather than the selected directory, and the same method 'implGetDirectory()' was actually previously used by the 'KDE5FilePicker::getDisplayDirectory()' method as well (removed in a previous commit). The code worked fine inside KDE5FilePicker (where the native Plasma/kde5 file dialog is used) but would lead to incorrect results when used inside Qt5FilePicker, e.g. for the following scenario * open folder picker displaying $HOME that contains a directory "bar" * do a single mouse click on the "bar" directory * click "OK" The call to 'toOUString(m_pFileDialog->directoryUrl().url())' inside 'getDirectory()' would return '$HOME/bar' for the native QFileDialog on KDE Plasma 5, but '$HOME' when used with the non-native QFileDialog Anyway, the implementation inside 'Qt5FilePicker::getDirectory' works fine for both cases, so just drop the KDE5FilePicker one. Reviewed-on: https://gerrit.libreoffice.org/68050 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit fa7387077bb708a2f3ec3e747463c9fd9f077f29) Change-Id: I86dcf98ed310636b899ad289d8a8a8fa263dd2e9 Reviewed-on: https://gerrit.libreoffice.org/72647 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2019-05-21Drop KDE5Filepicker::getDisplayDirectoryMichael Weghorn
Base class's 'Qt5FilePicker::getDisplayDirectory' does the same. Change-Id: I835603848736a328d0cf63b0bdc87895761e229c Reviewed-on: https://gerrit.libreoffice.org/68049 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit d5ac5eb59dda2c1dc537f5a4baf13515af7a57aa) Reviewed-on: https://gerrit.libreoffice.org/72646
2019-05-21Drop KDE5FilePicker::disposingMichael Weghorn
Base class's 'Qt5FilePicker::disposing' is the same. Change-Id: I91069385541a519f006d10b0580104f14beb551e Reviewed-on: https://gerrit.libreoffice.org/68048 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 1542aad2d238ea0b9119befe35fc67e6b2c0a3e7) Reviewed-on: https://gerrit.libreoffice.org/72645
2019-05-21KDE5FilePicker: Drop (now) unused member '_helperMutex'Michael Weghorn
Change-Id: I4680cc4a8507d0d2409301b62ab81165fcfcdba1 Reviewed-on: https://gerrit.libreoffice.org/68047 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 6d00c53fac49a29c89bcc4a5e8346195bd2a3b96) Reviewed-on: https://gerrit.libreoffice.org/72644
2019-05-21kde5 fpicker: Drop 'getFiles' and 'getSelectedFiles'Michael Weghorn
... and related signals/slots. Those from the Qt5FilePicker base class do the same thing, except for one 'SolarMutexReleaser' that was commented out in 'KDE5FilePicker::getFiles' for no apparent reason since that line was added in commit 8fb0881a3e5b2. Take over the slightly nicer syntax for the range-based for loop from 'KDE5FilePicker::getSelectedFiles' to 'Qt5FilePicker::getSelectedFiles'. Change-Id: I419f933d256f3b85eccaea85803b4890770efa24 Reviewed-on: https://gerrit.libreoffice.org/68046 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit e180574ff8b6055fc962974042acb9b1ef27690e) Reviewed-on: https://gerrit.libreoffice.org/72643 Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
2019-05-21kde5 fpicker: Drop 'setDefaultName' and 'setDisplayDirectory'Michael Weghorn
... and related signals/slots. They are the same as in the Qt5FilePicker base class. Change-Id: I115d0daa6beace44b9c791fc892d7cf553c562bb Reviewed-on: https://gerrit.libreoffice.org/68045 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 9c960a6b4f80268dc63960c53f8de50e9af6e099) Reviewed-on: https://gerrit.libreoffice.org/72642
2019-05-21Drop KDE5FilePicker::setTitle and related signals/slotsMichael Weghorn
Base class's 'Qt5FilePicker::setTitle' is the same. Change-Id: I071bf5f962c2d8b0821d78e97793c8637f5c0a1b Reviewed-on: https://gerrit.libreoffice.org/68044 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 4a5761b6c3d504b3c54d3cb3e1ecd6e26b0c7690) Reviewed-on: https://gerrit.libreoffice.org/72641
2019-05-21KDE5FilePicker: Drop 'm_xListener' and related methodsMichael Weghorn
Drop the 'm_xListener' member and methods using it. The inherited Qt5FilePicker methods do the same thing. This also avoids that two methods are called when a file or filter is selected, since the 'QFileDialog::filterSelected' and 'QFileDialog::fileSelected' signals had been connected to slots in both, the qt5 and kde5 fpicker constructors. Change-Id: I60e3eda29e6497f51165e87d0c4ab2e17f209a1c Reviewed-on: https://gerrit.libreoffice.org/68043 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 1e9148f96341424d5403f2e5175937e289010701) Reviewed-on: https://gerrit.libreoffice.org/72640
2019-05-21qt5/kde5: Reuse QFileDialog from Qt5Filepicker in kde5Michael Weghorn
Drop the '_dialog' member from KDE5FileDialog and use the one from Qt5FileDialog instead. Move up 'm_bIsFolderPicker' to Qt5FilePicker. Also, move some of the related functionality from the kde5 file picker to the qt5 one, in particular take over missing parts from 'KDE5FilePicker::setMultiSelectionMode' to 'Qt5FilePicker::setMultiSelectionMode' and drop the former (now inherited from the base class). This e.g. also makes sure that only folders are available for selection when using a FolderPicker in qt5 (e.g. in the dialog to add a JRE in "Tools" -> "Options" -> "Advanced"). The functionality had only been implemented for kde5 beforehand. Since the QFileDialog is set to non-native mode in Qt5FilePicker constructor, native mode needs to be excplicitly enabled again for kde5. Since Qt's signal/slot mechanism is used to connect signals on the object in both constructors (Qt5FilePicker/KDE5FilePicker), some events will trigger multiple actions. This will be taken care of in subsequent commits, along with further refactoring. Change-Id: I245d46c12945acb91c9b52dcff5c83248ac087dd Reviewed-on: https://gerrit.libreoffice.org/68042 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 0e4963186a6f1bfbde5279c25c62694d073e92a1) Reviewed-on: https://gerrit.libreoffice.org/72639
2019-05-21Make KDE5FilePicker a subclass of Qt5FilePickerMichael Weghorn
While this does not make much sense by itself as of now, it will allow to reduce code duplication in follow-up commits. Change-Id: Ie1a9bf3e516044ad5e56c526d1cf49cf1cb76f8a Reviewed-on: https://gerrit.libreoffice.org/68041 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 77c0c38ec3b4e6056d74649c9b071add1f49f96c) Reviewed-on: https://gerrit.libreoffice.org/72638
2019-05-07band-aid: deprecated-declarations related to cupsJulien Nabet
Change-Id: I07438840fc1c3cc8e70559d44954be0c49531525 Reviewed-on: https://gerrit.libreoffice.org/64191 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit e9e49fceac43476d1233ee8106cba5f4831771b9) Reviewed-on: https://gerrit.libreoffice.org/71896
2019-04-29gtk_tree_model_iter_parent modifies the 1st arg, not 2ndCaolán McNamara
Change-Id: I015022c4dd68f152ef5e56947031ccf4bfaf2b1c Reviewed-on: https://gerrit.libreoffice.org/71517 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-04-29Resolves: tdf#124980 drop dangling timerCaolán McNamara
Change-Id: I05ec394ee83f0422ecccf3ae3377818af6feb1d1 Reviewed-on: https://gerrit.libreoffice.org/71398 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 9207516888e73398599a9890af78cd677ddd0992) Reviewed-on: https://gerrit.libreoffice.org/71411 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-04-29tdf#124598 gtk3_kde5: Link gtk3 side against kf5 libsMichael Weghorn
The separate filepicker executable 'lo_kde5filepicker' used by the gtk3_kde5 VCL plugin needs the KF5 libraries (in particular the 'KFileWidget' class) in order to provide custom controls in the Plasma-native QFileDialog. The gtk3 side ('lo_kde5filepicker') itself doesn't use any functionality from KF5 libraries itself and therefore didn't link against those. When determining which VCL plugin to use on LibreOffice start, a 'dlopen()' is used on the libraries of the potential VCL plugins, which fails if linked libraries are not available, so unsuitable VCL plugin are skipped. This mechanism didn't work for the gtk3_kde5 VCL plugin if KF5 libraries were not installed, since the 'dlopen()' on 'libvclplug_gtk3_kde5lo.so' would succeed, but starting the 'lo_kde5filepicker' process would later fail at runtime due to the missing libraries. To avoid this, make 'libvclplug_gtk3_kde5lo.so' link against KF5 libraries as well to prevent gtk3_kde5 from being used unless all required libraries are actually present. Add a dummy KFileWidget use in Gtk3KDE5FilePicker to prevent smart linkers from not linking unused libraries despite linker flags. While this is a hack, it seems to be acceptable, in particular since gtk3_kde5 is more meant as a temporary solution supposed to be dropped at a later point in time in favor of the pure kde5 VCL plugin. Reviewed-on: https://gerrit.libreoffice.org/71237 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> Tested-by: Jenkins (cherry picked from commit 1674c6964b585d944bcb34be1d937e7558a97453) Change-Id: I3a37daaeb1307b4f24f6fd75d7b6ec5ffaade0fd Reviewed-on: https://gerrit.libreoffice.org/71374 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-04-28tdf#123750 gtk3_kde5: Show removable devices in file dialogMichael Weghorn
Do the same for the gtk3_kde5 VCL plugin as commit 2c69c93fdb871809825fe8b9aff40b7afb093be8 does for the kde5 one. Change-Id: I6fc91d1dbe133bd905c033c9fce7d48c0b6464a0 Reviewed-on: https://gerrit.libreoffice.org/71384 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit c08f23b1470c0f49336c83c711d473584ce5c96f) Reviewed-on: https://gerrit.libreoffice.org/71410 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2019-04-26gtk3_kde5: Make folder selection more intuitiveMichael Weghorn
When 'QFileDialog::Directory' is set, the native Plasma QFileDialog does not consider the clicked directory to be selected, but rather the base directory shown in the dialog, s. https://bugs.kde.org/show_bug.cgi?id=406464 . Therefore don't set the option when in a KDE Plasma desktop environment (which the kde5 VCL plugin also doesn't do). This works around the above issue in the Plasma desktop integration. Change-Id: Ib3d0978ab56b6e50ee45f7ad997ec051b35faf54 Reviewed-on: https://gerrit.libreoffice.org/71223 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 9fc0dbcd797f074ddb8ba379c876dd233cb5836e) Reviewed-on: https://gerrit.libreoffice.org/71274 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2019-04-16tdf#97822 vcl opengl gtk2: fix missing list node widgetMiklos Vajna
OpenGL just sets GtkSalGraphics::bNeedPixmapPaint to true, and the problem is specific to that flag (can be also enabled via SAL_GTK_USE_PIXMAPPAINT=1). Most other widgets are painted correctly in the GL case as they pass around a drawable explicitly; do the same for ControlType::ListNode as well in the GL case. The non-GL case still needs to go via the pixmap render macros to have correct position, leave that unchanged. (cherry picked from commit fb9c7e31f888a301fecb5257635e12ce7b907d14) Change-Id: Ia82a6772e357b434d706e58664be3a8427e91669 Reviewed-on: https://gerrit.libreoffice.org/70762 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>