summaryrefslogtreecommitdiff
path: root/vcl/qt5/Qt5Frame.cxx
AgeCommit message (Collapse)Author
2018-11-16tdf#120777 KDE5: Update initialization of QImagesAleksei Nikiforov
Make sure that created empty QImages are filled with transparent pixels. Copying data from previous QImage on widget resize removes blanking on window resize when qt5 vcl plugin is used. Change-Id: If072a4b8b334bc87dbe4aaea9aa8774bb5e202ee Reviewed-on: https://gerrit.libreoffice.org/63029 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-11-08tdf#120777 KDE5: Remove initial painting of widgetsAleksei Nikiforov
Widget will be painted later, after correct widget size is set. If window is not resizeable and painted before setting correct size, it saves clipping size in function vcl::Window::ImplIntersectWindowClipRegion and never updates it when window is resized to correct size. This initial painting call causes painting issues in "File" -> "Wizard" -> "Letter" dialog: "Cancel" button is painted only partially, as well as line above that button. Other unresizeable windows with width over 640 pixels or height over 480 pixels may be affected too. Change-Id: Ieccb58368670ebbbe6d17826fafc717101309ac4 Reviewed-on: https://gerrit.libreoffice.org/63017 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-11-08tdf#120777 KDE5: Prohibit resizing windows unless they're marked resizeableAleksei Nikiforov
Change-Id: I412c3d263881d24dea1bb61520c2291d8f0b9b20 Reviewed-on: https://gerrit.libreoffice.org/63016 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-11-04reweld SwWordCountFloatDlgCaolán McNamara
fixing up the bit that failed the last time Change-Id: I235f8f92cbc0c3e31837e01a9b094580c6f5aecf Reviewed-on: https://gerrit.libreoffice.org/62786 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-11-02Revert "weld SwWordCountFloatDlg"Stephan Bergmann
This reverts commit 26c375671aa362b2f59d84645784938677ae1719. Conflicts: vcl/qt5/Qt5Frame.cxx It caused null pointer dereference during UITest_writer_tests, as seen at <https://ci.libreoffice.org//job/lo_ubsan/1090/>: > /sfx2/source/appl/childwin.cxx:654:18: runtime error: member call on null pointer of type 'vcl::Window' > #0 0x2b97d4160fa3 in SfxChildWindow::SetWorkWindow_Impl(SfxWorkWindow*) /sfx2/source/appl/childwin.cxx:654:18 > #1 0x2b97d462ab86 in SfxWorkWindow::CreateChildWin_Impl(SfxChildWin_Impl*, bool) /sfx2/source/appl/workwin.cxx:1350:9 > #2 0x2b97d463e6bb in SfxWorkWindow::ToggleChildWindow_Impl(unsigned short, bool) /sfx2/source/appl/workwin.cxx:1837:21 > #3 0x2b97d6eae94d in SfxViewFrame::ToggleChildWindow(unsigned short) /sfx2/source/view/viewfrm.cxx:3080:9 > #4 0x2b987664316d in SwView::UpdateWordCount(SfxShell*, unsigned short) /sw/source/uibase/uiview/view1.cxx:212:9 > #5 0x2b9876126a5d in SwTextShell::Execute(SfxRequest&) /sw/source/uibase/shells/textsh1.cxx:1369:9 > #6 0x2b98760a2391 in SfxStubSwTextShellExecute(SfxShell*, SfxRequest&) /workdir/SdiTarget/sw/sdi/swslots.hxx:2974:1 > #7 0x2b97d49050f6 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) /include/sfx2/shell.hxx:207:35 > #8 0x2b97d48c27d0 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) /sfx2/source/control/dispatch.cxx:353:13 > #9 0x2b97d48de12d in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) /sfx2/source/control/dispatch.cxx:854:9 > #10 0x2b97d482ea34 in SfxBindings::Execute_Impl(SfxRequest&, SfxSlot const*, SfxShell*) /sfx2/source/control/bindings.cxx:1063:9 > #11 0x2b97d4e5cead in SfxDispatchController_Impl::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:754:29 > #12 0x2b97d4e60b5e in SfxOfficeDispatch::dispatchWithNotification(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:239:9 > #13 0x2b97c6c10b19 in comphelper::dispatchCommand(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /comphelper/source/misc/dispatchcommand.cxx:60:9 > #14 0x2b980472020c in UITest::executeCommand(rtl::OUString const&) /vcl/source/uitest/uitest.cxx:22:12 [...] Change-Id: I276684a5617bfec3803b195af59c51735bfa470a
2018-11-02Qt5 constify some functions to fix buildJan-Marek Glogowski
Change-Id: Ic0e85b2077c89a63301cf1d5b1cede7f6a0d7dce Reviewed-on: https://gerrit.libreoffice.org/62767 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-11-01weld SwWordCountFloatDlgCaolán McNamara
enable modeless dialogs to emit a response so runAsync can be used with them and get something called when the dialog is dismissed Change-Id: Ie9603bcc063cefabbae635949671baf06620785d Reviewed-on: https://gerrit.libreoffice.org/61383 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-11-01loplugin:useuniqueptr in SalFrame::PostEventNoel Grandin
Change-Id: Ib066b1d6df90f330f2f93ec639bd7bc59a08c024 Reviewed-on: https://gerrit.libreoffice.org/62507 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-26tdf#119719: Move the window to the requested screenKatarina Behrens
According to Qt doc, setScreen by itself is ineffective and this additional step is needed. It still wouldn't work w/ dual screen on older KDE Plasma (<= 5.12) but tests positively in GNOME and Plasma 5.13.5 Change-Id: I080b6f93aa3c21411f606ade6df42e9bc3f6f299 Reviewed-on: https://gerrit.libreoffice.org/62351 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-25Remembering window position regressed a littleKatarina Behrens
since commit 8d791a9d9657f6573ce27947c0289b36c6eba77c (Set Qt5Widget to be a central widget of QMainWindow) Change-Id: Ifd23043312a92b260871630862f1b949851a6d89 Reviewed-on: https://gerrit.libreoffice.org/62348 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-23tdf#120449: Show keyboard shortcuts in native menusKatarina Behrens
Who would have thought that this information has to be stored in SalFrame Change-Id: I8fbdf1794184e8dfd0b0025d29a19938dbb2af03 Reviewed-on: https://gerrit.libreoffice.org/62236 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-23tdf#120451: Use primary screen if requested screen doesn't existKatarina Behrens
Change-Id: I3e570bdeddc82f1d8cd46a362964e53527e6c152 Reviewed-on: https://gerrit.libreoffice.org/62193 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-19tdf#120452: Just enough of SystemEnvData in Qt5ObjectKatarina Behrens
the video in the presentation still doesn't play but at least the crash is gone Change-Id: I78ab4ff9412998f235a4b44a23b0e9d3ef4143e0 Reviewed-on: https://gerrit.libreoffice.org/61944 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-19Make repeated drag'n'drop possibleKatarina Behrens
Change-Id: If87ceeb8ddc4b2aada8ea0c963385a291622fef6 Reviewed-on: https://gerrit.libreoffice.org/61932 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-19Now that initiating drag works, let's also accept dropsKatarina Behrens
Change-Id: Iab328edd799dd4ce04312db4e640f86a8f7fda77 Reviewed-on: https://gerrit.libreoffice.org/61897 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-19Kick-start beginning of drag eventKatarina Behrens
Change-Id: Iaad25a7acdc7d64013bc3dd0d9410e7d2d5c6762 Reviewed-on: https://gerrit.libreoffice.org/61791 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-18Just enough of SystemEnvData for drag'n'dropKatarina Behrens
Change-Id: I18ef6cb58632898ddfcb28098b99447565bcfb99 Reviewed-on: https://gerrit.libreoffice.org/61720 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-18Basic structures for qt5 drag'n'drop supportKatarina Behrens
put (so far) no-op UNO ifaces in place Change-Id: I95394cfe05b8e3db21ddce6dfed1c1bb1d0e6381 Reviewed-on: https://gerrit.libreoffice.org/61385 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-09-19Qt5 minimal initial fix for Java UNOJan-Marek Glogowski
This is just a minimal fix for Qt errors from JunitTest_svx_unoapi, which was manipulating Qt5Timer and other timers, resulting in a spew of timer error messages like: QObject::killTimer: Timers cannot be stopped from another thread QObject::startTimer: Timers cannot be started from another thread QBasicTimer::start: QBasicTimer can only be used with threads started with QThread Eventually all the QWidget manipulation in the Qt5Frame must be redirected to the main thread, just like Qt5FilePicker already does. Change-Id: I66054e6c90f99d27bd5818dcaa5876c515867f77 Reviewed-on: https://gerrit.libreoffice.org/60672 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-05Deactivate Qt5Frame's reimplementation of Flush()Katarina Behrens
it causes too many issues: giant tooltips, dialogs can't be smaller than 640x480 etc. Need to figure out a better solution Change-Id: I4cc404687a60f2e0a39fd748fcc8cfea7cb7c0ac Reviewed-on: https://gerrit.libreoffice.org/60038 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-09-05loplugin:staticaccessStephan Bergmann
Change-Id: I4336b9cf8600acb42812ed8bbf14bb72828338e1
2018-09-05-Werror,-Wunused-resultStephan Bergmann
(And <https://doc.qt.io/archives/qt-4.8/qregion.html#united> indeed says: "Returns a region which is the union of this region and r.") Change-Id: Icc18376e89167029823f64a01236a4fccaf7ea3a
2018-09-05kde5: get focus on dialogs on openThorsten Behrens
Change-Id: Ia78a0a2d26159e46bc58557477723a366b8e677a Reviewed-on: https://gerrit.libreoffice.org/60010 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-09-05kde5: add screensaver disable and fixupsThorsten Behrens
- call X11 screensaver disable for preso - add SAL_NO_MOUSEGRABS check for mouse capture - call min/max size methods on correct widget Change-Id: I0dc838d9254d3a7f8848ec8283b0c10d00f36b42 Reviewed-on: https://gerrit.libreoffice.org/60009 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-09-05kde5: add more missing pieces to Qt5FrameThorsten Behrens
- some cleanup - ShowFullScreen - ToTop/SetAlwaysOnTop - CaptureMouse/SetPointerPos - Beep/Flush - ClipRegion functions Change-Id: Ieafdbdae3f808879b9ad0ebed0fa99a2e4f7ee2e Reviewed-on: https://gerrit.libreoffice.org/60008 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-09-04kde5: fix initial [re]size of LibO main windowKatarina Behrens
Consider also blank user profile (empty-ish WindowState) and show maximized window in that case Change-Id: Idddcef357cec5f6e6923884ee0c5b454451e8caa Reviewed-on: https://gerrit.libreoffice.org/59764 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-08-12Revert templatization of Qt5Widget classKatarina Behrens
it was not a step in the right direction in 1st place. We distinguish between main window frame (QMainWindow) and everything else (QWidget) differently now Change-Id: I331c9760f7616b2f199e63e5e521df74b08acc62 Reviewed-on: https://gerrit.libreoffice.org/58853 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-08-12Set Qt5Widget to be a central widget of QMainWindowKatarina Behrens
this is meant to solve the problem of native menu bar overlapping w/ non-native, as well as the inability to place an object or select text dragging the mouse cursor w/ LMB pressed Change-Id: I29f590ebf79d1ecc7e17b402125384cf13774bf3 Reviewed-on: https://gerrit.libreoffice.org/58171 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-08-10Qt5 disable native draw via SAL_VCL_QT5_NO_NATIVEJan-Marek Glogowski
Primary as a debugging measure to compare output for Qt5Graphics. Checks mpToolkitName, so we just disable it for qt5 not kde5. Change-Id: Ib7a67c4bec16d81dd87b6351ba106f655d37948b Reviewed-on: https://gerrit.libreoffice.org/58790 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-10Qt5 also move color setting handling from kde5Jan-Marek Glogowski
This is all QStyle based. Font handling still to do. Change-Id: I784e64aa88d013146e2c9a07051a0a76a1369ff0 Reviewed-on: https://gerrit.libreoffice.org/58788 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-07-18No parent-child relationship between Qt5WidgetsKatarina Behrens
QWidget destructor always deletes all its children, which is fatal in case not-yet-deleted frame (e.g. because it's in lazy delete queue) points to one of those children There's parent-child relationships between the frames though, so perhaps no need to have it double. For native modality this seems enough Change-Id: I556ace8d7949bcdfb208170cc08181ac1f2622e8 Reviewed-on: https://gerrit.libreoffice.org/57560 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-07-03Implement native modality for modal dialogsKatarina Behrens
instead of hack with hiding the window and showing it again (otherwise modality change has no effect and worse yet, weird things happen) it would be much easier to use QDialog Change-Id: Ie7029ca66380495c4aad246d02f4b96cb55eb01e
2018-06-01Various trivial loplugin fixes in --enable-qt5Stephan Bergmann
Change-Id: I9539eb77f663e1174919ae801495801f81571710
2018-06-01Make clang-format happy, remove vcl/unx/kde5 from blacklistKatarina Behrens
just between us girls, I hate you clang-format Change-Id: I4cd041eff7a9fa01eb9192cf357e3f07a26fa6ad
2018-06-01Expose menu bar of the main windowKatarina Behrens
and some addional work on activating menus Change-Id: I0c4d87dc158f3253aa97d151385fce14551c11b9
2018-06-01Templatize Qt5Widget classKatarina Behrens
to distinguish between QMainWindow (top-level SalFrame) and QWidget (everything else). The former are going to receive a native menu Change-Id: I9023d1e464345f96f13967f5e2c8b0716890fbc9
2018-06-01Reorganize code to enable derived classes inject SvpSalGraphicsKatarina Behrens
or derivative thereof Change-Id: Iea0d5e838de0ea397dcbffd11c33f021d53face2
2018-04-07Revert "long->sal_Int32 in tools/gen.hxx"Stephan Bergmann
This reverts commit 8bc951daf79decbd8a599a409c6d33c5456710e0. As discussed at <https://lists.freedesktop.org/archives/libreoffice/2018-April/079955.html> "long->sal_Int32 in tools/gen.hxx", that commit caused lots of problems with signed integer overflow, and the original plan was to redo it to consistently use sal_Int64 instead of sal_Int32. <https://gerrit.libreoffice.org/#/c/52471/> "sal_Int32->sal_Int64 in tools/gen.hxx" tried that. However, it failed miserably on Windows, causing odd failures like not writing out Pictures/*.svm streams out into .odp during CppunitTest_sd_export_ooxml2. So the next best approach is to just revert the original commit, at least for now. Includes revert of follow-up 8c50aff2175e85c54957d98ce32af40a3a87e168 "Fix Library_vclplug_qt5". Change-Id: Ia8bf34272d1ed38aac00e5d07a9d13fb03f439ae Reviewed-on: https://gerrit.libreoffice.org/52532 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-04-03Fix Library_vclplug_qt5Stephan Bergmann
...after 8bc951daf79decbd8a599a409c6d33c5456710e0 "long->sal_Int32 in tools/gen.hxx". (According to <https://doc.qt.io/qt-5/qwidget.html>, QtWidget::height and QtWidget::width both return int, so the change should be OK, assuming int isn't larger than sal_Int32.) Change-Id: I847212db59cceb49743801d6cc204eb7b2e9ea9a
2018-01-08loplugin:unnecessaryparen in qt5 pluginNoel Grandin
Change-Id: I07c5cee0b7fa7d05370c8dc61cae0e6a2aead348
2018-01-08loplugin:staticaccess in qt5 pluginNoel Grandin
Change-Id: Ic6a895f9dd9d1474681217d6ddfd31898f916c2c
2018-01-08-Wunused-parameter in qt5 pluginNoel Grandin
Change-Id: I2d17ccdc9addb911fef8925d87b794075946c3ca
2018-01-03Qt5 set and update the frame geometryJan-Marek Glogowski
The geometry is used for mouse hit tests for mapping LO mouse events to popup positions. This way (popup) menus become at at least usable. Change-Id: Ic2b409d7a8937320c70b9f377374fe7d51e4ebf3 Reviewed-on: https://gerrit.libreoffice.org/47276 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-11-14No need for bestmaxFrameSizeForScreenSize to be declared publiclyTor Lillqvist
It is used only inside vcl, and it should stay that way. Change-Id: Ia1a14ab13cb7d3580771c880f959abb2b695b032 Reviewed-on: https://gerrit.libreoffice.org/44698 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2017-11-13clang-format: standardize on 5.0.0Miklos Vajna
Restrict the git hook further to only enforce style in case the found clang-format binary's version matches to avoid output differences with different clang-format version. While at it, move the blacklist reading after the version check to speed up committing a bit when no local enforcement happens. Also add a simple script to list formatted files, since the blacklist is large enough that doing it naively from the shell is too slow. Change-Id: I0bc05961d262cc6bc91c6efdd1b91994ecfc6940 Reviewed-on: https://gerrit.libreoffice.org/44662 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-11-08Retrofit "KeepEmptyLinesAtTheStartOfBlocks: false" into .clang-formatStephan Bergmann
...even if that can cause reformatting of already formatted code. The problem I came across is that without this something like > namespace { > > void f1(); > > void f2(); > > } (which is quite a common style in the current code base) would be changed to > namespace > { > > void f1(); > > void f2(); > } instead of > namespace > { > void f1(); > > void f2(); > } and I found no other clang-format style option that would result in the presence or absence of an empty line be identical at the start and end of the namespace block. vmiklos asked to reformat the existing new (i.e., non-blacklisted) files at the same time, so this commit includes that. Some of those new files had not been formatted at all, so this commit includes their full reformatting changes. Change-Id: I54daf0c11098d07d02c802104cf7f56372e61f7c Reviewed-on: https://gerrit.libreoffice.org/44450 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-11-06Removed duplicated includeAndrea Gelmini
Change-Id: I1d6d4a6ce285e46b3910f5e48b6beb1685460f74 Reviewed-on: https://gerrit.libreoffice.org/44376 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-11-06QT5 implement some mouse handlingJan-Marek Glogowski
Scrollwheel handling seems to work with mouse, but not correct when using a touchpad - at least for me. Change-Id: I4f1b32205516912e31f9c52605ba2bf4ec6059a8
2017-11-06QT5 port more of the gtk3 positioning codeJan-Marek Glogowski
Change-Id: I36631c332ddffbca73768cdc4a596213e0b026ef
2017-11-06QT5 implement cursor supportJan-Marek Glogowski
Change-Id: Ie47b8def36d67255b61eab04bc7e3818bb1d8ea8