summaryrefslogtreecommitdiffstats
path: root/examples/wayland/pure-qml/qml
Commit message (Collapse)AuthorAgeFilesLines
* pure-qml example: fix position of XdgShellV6 popupsShawn Rutledge2017-11-201-2/+1
| | | | | | | Menus open up at the right place this way. Change-Id: Iae18fdcefe33356e9e9ee105b9f5c597bb6c896b Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Compositor: Add support for xdg-shell-unstable-v6Johan Klokkhammer Helsing2017-07-211-2/+16
| | | | | | | | | | This adds QML and C++ support for xdg-shell-unstable v6 on the compositor side. A couple of things are still missing for complete support, but can be added implemented later without breaking the API. Task-number: QTBUG-56174 Change-Id: I08d7c05aa4f40f00377d92f2519d89ab416daaf4 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Fix licensingv5.9.0-beta4Jani Heikkinen2017-05-044-8/+48
| | | | | | | | | | Currently tests are licensed under GPL-EXCEPT, examples under BSD and src under LGPL so replase old license headers with new & proper ones. Also remove old & unused license files Task-number: QTBUG-57147 Change-Id: Ia6a738798736c275dc309ccfa5b627dc2178d241 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix crash with nested xdg popupsPaul Olav Tvete2016-11-171-1/+2
| | | | | | | | | | | Popups that are children of popups would get a null parent in pure-qml. This would cause a crash in XdgPopupV5Integration. This change fixes pure-qml to set the parent correctly, and also adds null pointer checks to XdgPopupV5Integration. Change-Id: Ica5bd6c1a0853fbec1b30bc6ffff806b2cfd15f8 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Fade-out animation for menusPaul Olav Tvete2016-11-151-0/+3
| | | | | | | | Since child items don't get transformation animations, enable an opacity transformation for them. Change-Id: I4ab77bc10d61602a0df72f5927cde4ebbcad27ce Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Add mode support to QWaylandOutputPier Luigi Fiorini2016-10-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Outputs usually have more than one mode, add an API to support them. When sizeFollowsWindow is true, modes are replaced by one with the window size and refresh rate. In that circumstance the mode changes when the window is resized. The sizeFollowsWindow property default value is no longer true. The setGeometry() method is gone as it doesn't make sense now, the setWidth() and setHeight() methods are now private slots to resize the resolution as the window resizes (and sizeFollowsWindow is true). Refresh rate is expressed in mHz rather than Hz just like the Wayland protocol. A compositor implementation may choose to add modes if it has access to hardware information, it will call addMode() for each mode and then invoke the setCurrentMode() method that sends the modes list to the client. The preferred mode is indicated with a boolean parameter to the addMode() method. Change-Id: Iffed4784ccef695c276ebd800172957f4cff3324 Task-number: QTBUG-49814 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Rename the QWaylandXdg* classes to QWaylandXdg*V5Giulio Camuffo2016-09-051-1/+1
| | | | | | | | This frees the QWaylandXdg name for the hopefully coming stable version of xdg-shell. Change-Id: I9beb9b035c6497fb45bee5c9104485b564ca0619 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Remove QWaylandView from the QML APIPaul Olav Tvete2016-08-221-1/+1
| | | | | | | | | | QWaylandQuickItem already encapsulates the view. Also rename the confusing 'discardFrontBuffers' property to 'allowDiscardFrontBuffer' Change-Id: Ibd74ad54bfe3d5187c2ed91ff0378b45e144e109 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Compositor API: rename QWaylandInputDevice to QWaylandSeatJohan Klokkhammer Helsing2016-08-111-1/+1
| | | | | | | | | | | | The name QWaylandInputDevice could be confusing and misleading: - A QWaylandInputDevice was not one input device, but a collection of many. - Classes that sounded like they should inherit from it did not, i.e: QWaylandKeyboard, QWaylandPointer and QWaylandTouch. - The Wayland protocol already has another term for this, which is seat. Change-Id: I9d9690d5b378075d9dddaeb8cf18395c7f47603e Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Rename createSurface and similar signalsJohan Klokkhammer Helsing2016-08-031-2/+2
| | | | | | | | | | | * createSurface -> surfaceRequested * createXdgSurface -> xdgSurfaceRequested * createXdgPopup -> xdgPopupRequested * createShellSurface -> wlShellSurfaceRequested * shellSurfaceCreated -> wlShellSurfaceCreated Change-Id: I715a927242130d7504955002a6a64a2bac516d46 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Compositor: make the extensions property list optionalPaul Olav Tvete2016-07-121-24/+24
| | | | | | | | | | Extensions will now automatically add themselves to their parent if they are not inside an extensions [ ... ] array. Change-Id: I26c7f7c2ee023595eb4cd2496dd56e212f05329c Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Adjust for hotspot position inside WaylandCursorItemJohan Klokkhammer Helsing2016-07-111-2/+2
| | | | | Change-Id: Ide6605b7bd05f739976ed603c19e030ec74d2a2a Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Rename enableWSCursor to windowSystemCursorEnabledJohan Klokkhammer Helsing2016-07-111-1/+1
| | | | | | | What WS stood for may not have been obvious. Change-Id: Ib2a3f566e4e49d8be0c14c4937e7356b51718e44 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Rename bufferLock to bufferLockedJohan Klokkhammer Helsing2016-07-041-1/+1
| | | | | Change-Id: Ia3e0fa53579ee0d28b1d6b7384b9c6def2761a2b Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
* Add QML popup support for xdg_shellJohan Klokkhammer Helsing2016-06-151-1/+7
| | | | | Change-Id: I5b35ff3b1c6c2dc884b52e6f077c0f2bb2db68a2 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Rename QWaylandWindowManagerExtension to QWaylandQtWindowManagerPier Luigi Fiorini2016-05-311-1/+1
| | | | | | | | | | | | | | | | | | * QWaylandWindowManagerExtension become QWaylandQtWindowManager * WindowManager become QtWindowManager Follow naming convention already established for other extensions like QWaylandWlShell and avoid confusion that might arise with a name as generic as WindowManager. Use QWaylandClient rather than wl_client. Also the Wayland protocol definition has been renamed to qt-windowmanager.xml Change-Id: I941621ce229327c21eff9e80c7e92205cc60e8eb Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Create a general ShellSurfaceItem to avoid duplicationJohan Klokkhammer Helsing2016-05-203-106/+27
| | | | | | | | | | | | | | | | | | XdgSurfaceItem and WlShellSurfaceItem have been removed in favor of the more general ShellSurfaceItem. An XdgSurface or a WlShellSurface can be assigned to the shellSurface property of a ShellSurfaceItem and leaves open the possibility for additional shells. A shared base class for QWaylandXdgSurface and QWaylandWlShellSurface has been added which has a factory method for creating a QWaylandQuickShellIntegration for that shell implementation. The property "shellSurface" on the ShellSurfaceItem allows QML code to attach to signals regardless of whether it's a WlShell or XdgShell client. The pure-qml example has been updated to take advantage of this. Change-Id: I9d3427586e100d6c44a24f319dd8e1486ff062ee Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Automatically initialize the quick extension objectsGiulio Camuffo2016-04-291-15/+0
| | | | | | | | | Instead of writing "Component.onCompleted: initialize()" for every extension the compositor has, let them call that automatically. Change-Id: I0b499a38c2b475dc9a7ef27cbacebef19b196dbf Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Update the virtual keyboard importJan Arne Petersen2016-04-261-1/+1
| | | | | | | Qtvirtual Keyboard dropped the enterprise from its import names. Change-Id: Ie7bfda14d77d0e72fa25ef85d9762a8ca62a87ab Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* QML API for xdg-shellJohan Klokkhammer Helsing2016-04-262-0/+107
| | | | | | | | | | | | | | | Exposes QWaylandXdgShell and QWaylandXdgSurface as QML types, along with a new QWaylandXdgSurfaceItem. All of this mirrors the implementation of wl_shell closely. The biggest difference is how resize is handled. There is now some duplication in the window chrome implementation of the pure-qml compositor. This may be improved by refactoring the existing API for shell extensions. Change-Id: I4f2ceff7e0462034cd295a27c3eefea457cc9b96 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Add window manager extension to the pure-qml examplePier Luigi Fiorini2016-04-252-0/+14
| | | | | Change-Id: I50a5ab6156fabac93bcc706bb49fb7dc92cf342d Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Fix text-input support for new APIJan Arne Petersen2016-04-183-0/+60
| | | | | | | | | | | | | | | | Update text input support to upstream text-input protocol v2 from wayland-protocols. Remove support for input-method protocol for now. Map text-input protocol on compositor side to the Qt input method API, this allows to use any qt platform input method on compositor side (especially qtvirtualkeyboard). Add support for qtvirtualkeyboard to pure-qml example. Implement all missing functions of the text-input protocol. Change-Id: I597451ff65454a63dff86026b6a8d1ffbe07ce02 Done-with: Zeno Endemann <zeno.endemann@kdab.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Simplify ShellSurfaceItem creationv5.7.0-beta1Johan Klokkhammer Helsing2016-04-111-4/+2
| | | | | | | | | | | Use onShellSurfaceCreated instead of onCreateShellSurface. A QWaylandWlShellSurface is no longer created in QWaylandWlShellSurfaceItem::componentComplete Change-Id: I7a0dbbacddc17ab32ed0e4d16e717fcefb221947 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Erik Larsson <erik@ortogonal.com>
* Rename compositor Shell to WlShellJohan Klokkhammer Helsing2016-04-052-3/+3
| | | | | | | | | | | | | | | | | | | | | * QWaylandShell -> QWaylandWlShell * QWaylandShellSurface -> QWaylandWlShellSurface * QWaylandQuickShellSurfaceItem -> QWaylandQuickWlShellSurfaceItem * Shell -> WlShell (QML) * ShellSurface -> WlShellSurface (QML) * ShellSurfaceItem -> WlShellSurfaceItem (QML) This is done to avoid confusion with XdgShell and will hopefully help clarify that some of the examples only support wl_shell and not xdg_shell. Additionally, this makes "Shell" an available name in the compositor API, which may in turn enable the creation of a more general abstraction hiding the details of the shell backends (i.e. xdg_shell, wl_shell, and eventually ivi_shell). Change-Id: Iebac1f36505084bfaaea68838005d54db6c55e21 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Add surface roles backGiulio Camuffo2016-02-111-1/+1
| | | | | | Task-number: QTBUG-49809 Change-Id: Id62ddea68c89b6999b66d3df8eeeffd858ae844f Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Pure QML example: add shortcut to quitShawn Rutledge2015-12-111-1/+5
| | | | | | | | | | On the eglfs platform, there is no obvious way to exit back to a console, so it's too easy to get stuck in this example and need to reboot via ssh or some such. Ctrl-Alt-Backspace is the historical way of exiting from an X11 or Weston session, so we use it here. Change-Id: Ibe93acb0a81ef47384d5449760f25ad6e4cac8d8 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Fix copyright headersPaul Olav Tvete2015-11-093-9/+9
| | | | | | | | Old copyright headers were accidentally used for some new code. Change-Id: I0230d350e59701bc6b383c7c8151d52e34e8e75a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* Fix broken onSurfaceDestroyed animationJørgen Lind2015-09-181-1/+1
| | | | | Change-Id: I0f56c0ef2f35ada0613c331817d0fd56d186a158 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Simplify the construction of pure-qmlJørgen Lind2015-09-181-10/+5
| | | | | | | | | Make it possible that an WaylandOutput item is declared as a child of a WaylandCompositor item. This is mostly usefull for examples, since output handling will likely be event driven in a propper compositor Change-Id: I3238b079e41a49f69cbd9255818588674b364fb2 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Implement resize/move for pure-qmlJørgen Lind2015-09-162-37/+8
| | | | | Change-Id: I7919f7715486fa2d8cfe35c08095f6c33757a515 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Remove global coordinatesJørgen Lind2015-09-142-17/+31
| | | | | | | | | This involves removing: - pickView and mapView from QWaylandOutput - requestedPos[X,Y] from QWaylandView Change-Id: Ie53eef434ac6ae7d0d5474f649f78a59ae857167 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Make it possible to connect to a createSurface signalJørgen Lind2015-09-041-0/+13
| | | | | | | | | | | | Remove the QWaylandSurface factory function from QWaylandCompositor. Add a default constructor to QWaylandSurface and a initialize function. Add som housekeeping code in debug builds that ensures the user calls initialize. Add a fallback factory function on the compositor if the user is fine with getting the default implementation of QWaylandSurface or QWaylandQuickSurface Change-Id: Ib9289c323b6723f0d1119a484cf9e0c26c95b549
* Rename primary(Output|OutputSpace) to default(Output|OutputSpace)Jørgen Lind2015-09-041-7/+2
| | | | Change-Id: I0bbe6dd6bd8e9f6972cc88b832029ac98aa2af49
* Make it possible to construct QWaylandOutputJørgen Lind2015-09-042-30/+30
| | | | | | | | | | | | | | | This requires QWaylandOutput to be initialized. This will happend when the QWaylandCompositor of the QWaylandOutputSpace that is set on the QWaylandOutput is created. QWaylandCompositor will send or post a Polish event to the QWaylandOutput which again will call QWaylandOutput::initialize. This function will create the global that will be put on the wl_displays registry This makes it possible to Create WaylandOutputs in QML (see the pure-qml example) and also gives a better programming model in C++ Change-Id: Iaf907ae18a283678eda6d04390dc9790ae0bced8
* Rename automaticFrameCallbacks to automaticFrameCallbackJørgen Lind2015-09-041-1/+1
| | | | | | | | and: - add a signal for when it changes - change default to true Change-Id: Ifb7d29756f554dbd2a2594c935442ba9f4956c5c
* Move the curser surface signal to QWaylandInputDeviceJørgen Lind2015-09-041-1/+1
| | | | Change-Id: Ib2b1ee81a5216e348e6014927c1cc818f848384b
* Make Manufacturer & Model modifiable properties of QWaylandOutputJørgen Lind2015-09-021-1/+1
| | | | | | This to make construction look nicer and make them modifyable from QML Change-Id: I5f5ffffb34f664914cdb531736c42a6873bfe18c
* Make it possible to create the shell surface from qmlJørgen Lind2015-08-281-8/+15
| | | | Change-Id: I83dceff36d1027b24c1dafb3bc44e07f7502bc54
* Remove followRequestedPosition from QWaylandQuickItemJørgen Lind2015-08-281-1/+0
| | | | | | | | since it is not needed anymore, and it is trivial to modify QWaylandQuickItem in qml to have this behavior as pure-qml's Chrome.qml shows Change-Id: I795881fde4ecf3e2ec877222e7283b1052b7c27a
* Make the default wl_shell available from QMLJørgen Lind2015-08-282-11/+24
| | | | | | | | | | | | | | This finaly ties together how to use QWaylandQuickItems with different shells It was required to decouple QWaylandView from the QWaylandQuickItem since QML doesn't play to well with muliple inheritance. The QWaylandQuickItem can be retrieved from the QWaylandView which is now conveniently a QObject. Also the QWaylandQuickItem owns the QWaylandView. This architecture also leaves room for creating a QWaylandWidget :) Change-Id: Ib8a00e6f17f0f1bfc3ff244753f021c76db22cb1
* Remove output from QWaylandSurfaceJørgen Lind2015-08-281-1/+1
| | | | | | | | | | | | | | | It is the views that belong to outputs. This leads to a couple of interesting cases with enter and leave events, but the implementation says you will get enter events for the first view of a surface entering an output, and for the last view being removed from an output. Also to throttle a surface, there has to be 1 surface which takes care of this. This is because if multiple views throttle, then the client might render to quick. Change-Id: If4bba380fd4d7f506fd769606cbdea4ce58b908d
* Remove the default shell functionalityJørgen Lind2015-08-282-22/+9
| | | | | | | | This will be readded in a different way. Also, remove the WaylandSurfaceChrome since it is no longer needed, and just use WaylandView directly Change-Id: I8d4a7b2135d9fdaea7dd3fcd729e55cceebf48fb
* Rework how we manage extensionsJørgen Lind2015-08-281-1/+1
| | | | Change-Id: If2cbf096e7419bc1bda007d5167ce39d1a5d50ae
* Introducing QWaylandOutputSpaceJørgen Lind2015-08-281-1/+1
| | | | | | | | | | Its purpose is to make it possible to have multiscreen environments, and also multiple multioutput environments It is also an abstraction to make it clear that outputs are arranged in a 2d space Change-Id: I418509996a03b2ca1a12aec9c9e25e143a15a10f
* add a multi output exampleJørgen Lind2015-08-281-1/+1
| | | | Change-Id: I99397d1bf794c1fce483cb5d008d7701a32b2b44
* Move the output from QWaylandSurface to the QWaylandSurfaceViewJørgen Lind2015-08-281-0/+4
| | | | | | | | | and add a property called primaryOutput on the QWaylandSurface. Also add some bookkeeping in QtWayland::Output so it knows what surfaces and views it currently holds, sending the enter and leave events automatically. Change-Id: Ib6efbc6f8157657fb4451b751bba1cb5345b7906
* Add a pure-qml compositor exampleJørgen Lind2015-08-283-0/+240
It uses the new qml compositor api and implements all the user logic in qml Change-Id: Iac5eca61a9ca71c7d760d32d7aae4910ba5465b3