summaryrefslogtreecommitdiff
path: root/vcl/inc/qt5
AgeCommit message (Collapse)Author
2018-10-04Clipboard support for qt5, first cutKatarina Behrens
this adds just enough of basic UNO ifaces to have SID_PASTE enabled. It can't actually paste anything yet. Change-Id: I82e8ef37e11e9df21d27f08d4d199f3e5924ed84 Reviewed-on: https://gerrit.libreoffice.org/60494 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-10-02Qt5AccessibleWidget: Implement QAccessibleActionInterfaceSamuel Mehrbrodt
shows available action and allows to execute them Change-Id: I944e4eccaac7c458af77b471c1d6e10650b1e798 Reviewed-on: https://gerrit.libreoffice.org/61183 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-10-01qt5 a11y: Use UNO Api instead of vcl::Window methodsSamuel Mehrbrodt
This gets us into the document itself, not only the widgets. Change-Id: Id0cf1294817309c889729d01242cae69d2391130 Reviewed-on: https://gerrit.libreoffice.org/61094 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-09-27qt5: Add basic a11y supportSamuel Mehrbrodt
Widget tree is displayed and basic role mapping is available. Still needs quite some work (positions, actions, texts, etc.) Change-Id: I9d26a762f1d9684f33bbb80a384cf2a0b8a905c0 Reviewed-on: https://gerrit.libreoffice.org/60853 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-09-23qt5: fix buildThorsten Behrens
Add missing header after 60a23d5d5f0963cd9bea7711ff4336418e3d6392 Change-Id: Ic24a78db3b425966e49fec96160d10670f68dea4
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-18Move yield mutex handling into SalInstanceJan-Marek Glogowski
After the refectoring in commit 4c93de2c921b ("merge GenericSolarMutex and SolarMutex"), there is no more need to prevent instantiation of comphelper::SolarMutex objects. Since every VCL backend implements the yield mutex management in the same way, we can move the general implementation into the SalInstance. While at it use std::unique_ptr for the yield mutex on Mac and Windows platforms. Change-Id: Ibe0610bd92b4623152ee14e7a35b52465d403720 Reviewed-on: https://gerrit.libreoffice.org/60570 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-17Qt5 just implement a non-native file pickerJan-Marek Glogowski
Since there is no way to retrieve the embedded native file dialog from the Qt5 platfor abstraction, force the dialog in non-native mode. This drops the 2nd option dialog completely. While at it implement handling of the optional combo boxes in the dialog. Change-Id: I8d11e929a5f3b142dc0f5653fcc576231a1b0392 Reviewed-on: https://gerrit.libreoffice.org/60569 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-13Support buffering SystemDependent GraphicData (II)Armin Le Grand
In this step I have changed all calls that use a B2DPolyPolygon and do filled graphics, added support for providing needed transformation which will -if supported- be used. Added buffering of SystemDependentData at B2DPolyPolygon for that purpose, see comments describing the current possibilities in the Gdiplus implementation. Moved lifetime creation/cleanup of SystemDependentDataManager to ImplSVData due to cleanup problems in the clang build Tried to use a std::unique_ptr to hold the instance of a SystemDependentDataBuffer at ImplSVData and cleanup inside DeInitVCL() right before ::ImplDeInitScheduler. This works in principle, but scheduler shutdown triggers ProcessEventsToIdle which leads to repaints and re-creates the buffer. Will now do exactly as was done with GdiPlusBuffer before, a simple local static incarnation and a call to SetStatic() in constructor Splitted SystemDependentDataBuffer and Timer due to different LifeTimes. Timer needs to be destructed earlier than SystemDependentDataBuffer, before Scheduler::ImplDeInitScheduler() is called from DeInitVCL() Change-Id: I2134e4346a183a4cee1be3428c51541cc8867c11 Reviewed-on: https://gerrit.libreoffice.org/60102 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2018-09-05Use generic unx PspSalInfoPrinter instead of Qt5InfoPrinterKatarina Behrens
the latter provides (so far) no added value, quite the contrary: File > Print > $printer > Properties didn't display generic unx/CUPS dlg but just failed silently Change-Id: Ide2ad175ffe55b5c9ac5ca3efad4a43b692f9984 Reviewed-on: https://gerrit.libreoffice.org/60040 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-09-05kde5: make disabled and hidden menu items workThorsten Behrens
Change-Id: I145a496bbc5b375bc309815b18f2c31fa4d50d6c Reviewed-on: https://gerrit.libreoffice.org/60012 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-09-05kde5: cleanup cargo-culted empty dtorsThorsten Behrens
Change-Id: I8f987e30b2a78e173fd8f3ebb9f33e4720f6588b Reviewed-on: https://gerrit.libreoffice.org/60011 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-30Support buffering SystemDependent GraphicDataArmin Le Grand
This is a first step to allow buffering of system dependent data, especially (but not only) for the system-dependent implementations of graphic output. For example, for B2DPolygon and Win output, it allows buffering the Gdiplus::GraphicsPath instead of re- creating it all the time. To support that, the change includes forwarding the current transformation to the renderers in SalGraphics. The current state in VCL is to transform all and everything to device coordinates at every single paint. I have currently started to do this for ::drawPolyLine implementations. The fallbacks for all systems will at the start of that method just transform the data to device coordinates, so all works as before. This may also be done for FilledPolygon paint in a later step, but most urgent is FatLine painting. An arrangement of shared_ptr/weak_ptr is used so that either the instance buffering (in the example B2DPolygon) or the instance managing it can delete it. The instance managing it currently uses a 1s Timer and a cycle-lifetime management, but that can be extended in the future to e.g. include size hints, too. The mechanism it designed to support multiple Data per buffering element, e.g. for B2DPolygon at the same time system-dependent instances of Gdiplus and Cairo can be buffered, but also PDF-data. This is achieved semi-automatic by using typeid(class).hash_code() as key for organization. The mechanism will be used for now at B2DPolygon, but is not limited to. There is already a similar but less general buffer (see GdiPlusBuffer) that can and will be converted to use this new mechanism. Added vcl/headless Cairo renderer to support given ObjectToDevice transformation (not to transform given B2DPolygon) Added support for CairoPath buffered at B2DPolygon, seems to work well. Need to do more tests Moved usage to templates suggested by Noel Grandin (Noel Grandin <noelgrandin@gmail.com>), thanks for these suggestions. Adapted Win usage to that, too. Converted Win-specific GdiPlus BitmapBuffer to new mechanism, works well. Checked, the manager holds now a mix of bitmap and path data under Win Added a cleanup mechanism to flush all buffered data at DeInitVCL() using flushAll() at SystemDependentDataBuffer Adapted Linux-versions of ::drawPolyLine to support PixelSnapHairline, for now in a simplified version that still allows buffering. This will also be used (and use buffering) for the Cairo-fallback in X11SalGraphics Change-Id: I88d7e438a20b96ddab7707050893bdd590c098c7 Reviewed-on: https://gerrit.libreoffice.org/59555 Tested-by: Armin Le Grand <Armin.Le.Grand@cib.de> Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2018-08-23Qt5 initialize unx glyph cacheJan-Marek Glogowski
Until we implement a Qt based glyph cache, this prevents the crash for print preview. Change-Id: I37dd3f90cc0bcac28ef4ce9fe70fd566a781d903 Reviewed-on: https://gerrit.libreoffice.org/59489 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-22rename FontSelectPatternAttributes to FontSelectPatternCaolán McNamara
Change-Id: I2c018e2e61707c0d89178b0cb38a0918906e23cb Reviewed-on: https://gerrit.libreoffice.org/59390 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-22turn the cache around to work on LogicalFontInstanceCaolán McNamara
instead of a FontSelectPattern with an associated LogicalFontInstance use a LogicalFontInstance with owned FontSelectPatternAttributes Change-Id: I939f84731fcb8db5ff6484dcfbd2f9199bb50d23 Reviewed-on: https://gerrit.libreoffice.org/59388 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21use LogicalFontInstance with SalGraphicsCaolán McNamara
Change-Id: I66fb1ff4b2fdcc211e0a9d5831f6dcc5e564e789 Reviewed-on: https://gerrit.libreoffice.org/59372 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21loplugin:useuniqueptr in SvpSalInstanceNoel Grandin
Change-Id: I8cab3c63ba4dcd08488d0fb34d689692d5cf97f9 Reviewed-on: https://gerrit.libreoffice.org/59347 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
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-07loplugin:includeformStephan Bergmann
Change-Id: Ibd50fa73a5ee63e3375ef0518df0ba84bf6fce1c
2018-08-07Qt5 move native control handing from kde5Jan-Marek Glogowski
The native painting code in the kde5 backend is Qt based only. To prevent multiple inheritance, it's moved into an extra class and just leaves the backend specific QImage blitting in the specific SalGraphics implementation. Change-Id: I3d5f58f42a37966794541fe1214c1b9557376a98 Reviewed-on: https://gerrit.libreoffice.org/58652 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-07Qt5 fix main loop locking when processing eventsJan-Marek Glogowski
In commit bded890a44cc ("Qt5 just release the SolarMutex for Qt event") the Qt5 main loop was switched to running non-locked, as most other backends do, so now we must take the lock when processing Qt events. Eventually CallCallback should be virtual for security? Change-Id: I8cbfc9bb8b3de677a70ad3bd5cb3910fabec9b87 Reviewed-on: https://gerrit.libreoffice.org/58650 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-09Basic Qt5 system display dataKatarina Behrens
copied from dummy headless implementation Change-Id: I1b184745627acd065b4c0cc54f044c47ec980c93
2018-07-06various loplugin in qt5Noel Grandin
loplugin:includeform loplugin:staticaccess loplugin:loopvartoosmall loplugin:redundantcast Change-Id: Ibd4848f0c6076d5ae95fff2853e1f6e0ba1c083b
2018-07-06Qt5 implement scaled image drawsJan-Marek Glogowski
If the source and target rects don't match, LO expect the image to be scaled. Change-Id: I337acfa56600eba92c10aed7a70749ad08c03e90
2018-07-06Qt5 implement 4bit => 32bit bitmap conversionJan-Marek Glogowski
Some of the PNG icons are 4bit palette based PNG images. This implements the conversation function for the most common 4bit case, so we don't rely on some generic handling. All other non-4bit conversions can be handled by Qt. Change-Id: I4ddd744fb7166fc3a6992b6be6c250c2adb99ca5
2018-07-06Qt5 flesh out font handlingJan-Marek Glogowski
Fills some more FontAttributes based on the QFont. Also implements initial font rotation support. Something is still strage with the vertical font in Writers vertical ruler. Text looks correct in vertical text boxes FWIW. The toRectangle bug is embarrassing; I was wondering for quite some time, which glyphs had strange size rects :-) While at it, move the Qt5Font header to vcl/inc/qt5. Change-Id: I67fa400486981035be6f98c5ab56e82d69c42065
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-14Adapt --enable-qt5Stephan Bergmann
...to 8447d31e529985ef7fc71933f0e55685530f9fc9 "return SalBitmap using std::shared_ptr" Change-Id: I7ef70eda5c2f5931b421852d938ae54d6e133e6d
2018-06-11drop PhysicalFontFace::CloneNoel Grandin
since we are now holding these via reference counting, no need to clone them Change-Id: I7b0bd86f4a5bca428f7dcd989f838a9aa0c7e179 Reviewed-on: https://gerrit.libreoffice.org/55427 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-10qt5: hold LogicalFontInstance with rtl::ReferenceKacper Kasper
Build fix after c4c56de1b0e62ec866b519b2b24c5e805f0a86d3. Change-Id: I49303528ccbe49894a0fbae3c24d3f3d08c016eb Reviewed-on: https://gerrit.libreoffice.org/55547 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-09hold and return SalMenu by std::unique_ptrNoel Grandin
and drop DestroyMenu, all the implementations just delete the object Change-Id: I673997ea1a9c5216b100cafdc70a8f697732769b Reviewed-on: https://gerrit.libreoffice.org/55501 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-09return and hold SalMenuItem by std::unique_ptrNoel Grandin
and drop DestroyMenuItem, all the implementations were just deleting the pointer Change-Id: I058817b963988b1e399279f61f45716a2cdba023 Reviewed-on: https://gerrit.libreoffice.org/55500 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-09hold and return SalPrinter with std::unique_ptrNoel Grandin
and remove DestroyPrinter, doesn't not anything beyond delete'ing the object Change-Id: I25e14b962e65a0e131fae3ff5771c82920a4e375 Reviewed-on: https://gerrit.libreoffice.org/55498 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-09return SalSession with std::unique_ptrNoel Grandin
Change-Id: I85527407c0cd2d3b94565fd7e24b0616948c9b0f Reviewed-on: https://gerrit.libreoffice.org/55497 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-07manage PhysicalFontFace by rtl::ReferenceNoel Grandin
Change-Id: I8f66b5afb066fe83abb83c56ebde6f21197f894b Reviewed-on: https://gerrit.libreoffice.org/55333 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-04Qt's interpretation of transparency is different from vcl's oneKatarina Behrens
thanks Sergei Reznikov for pointing this out Change-Id: Ib07d144bb50b178ee7b36f2c7b2eaede27ed10bc (cherry picked from commit e56c81cc996747e3768cf171d0d6e94753b7d2af)
2018-06-01Remove unused Qt5MenuItem::mpVCLMenuStephan Bergmann
Change-Id: Ia7f28a54f253f0263cc781feb5997bb51bb640b2 Reviewed-on: https://gerrit.libreoffice.org/55193 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
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-01Dispatch commands from menus for realKatarina Behrens
Change-Id: I01997caa22e14c1350bd83100edb74397ebab5d7
2018-06-01Basic structure of a slot to dispatch commands from menuKatarina Behrens
Change-Id: If3a134f67f59d3238c27eb0fef99bf49a8970433
2018-06-01Native leaf menus and submenus are now visibleKatarina Behrens
Change-Id: Ieaac0966b167d82c8bdeb60f3ce4b9cc8589ec62
2018-06-01Replace ~ with & (Qt accelerator marker) in menu entriesKatarina Behrens
Change-Id: Ie7866357d4e74b778849262c1c2b60605a26faad
2018-06-01Unify Color -> QColor conversionKatarina Behrens
this also resolves build failures on 32bit platforms Change-Id: I53fa2faae52a8cb322644c5bd5e5e84d71110d8e