QWaylandQuickItem Class

The QWaylandQuickItem class provides a Qt Quick item representing a QWaylandView. More...

Header: #include <QWaylandQuickItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
In QML: WaylandQuickItem
Inherits: QQuickItem
Inherited By:

QWaylandQuickShellSurfaceItem

Properties

Public Functions

QWaylandQuickItem(QQuickItem *parent = nullptr)
virtual ~QWaylandQuickItem() override
bool allowDiscardFrontBuffer() const
QWaylandCompositor *compositor() const
bool focusOnClick() const
bool inputEventsEnabled() const
bool inputRegionContains(const QPointF &localPosition) const
bool isBufferLocked() const
bool isPaintEnabled() const
QPointF mapFromSurface(const QPointF &point) const
QPointF mapToSurface(const QPointF &point) const
QWaylandSurface::Origin origin() const
QWaylandOutput *output() const
void setAllowDiscardFrontBuffer(bool discard)
void setBufferLocked(bool locked)
void setFocusOnClick(bool focus)
void setInputEventsEnabled(bool enabled)
void setOutput(QWaylandOutput *output)
void setPrimary()
void setSubsurfaceHandler(QObject *)
void setSurface(QWaylandSurface *surface)
void setTouchEventsEnabled(bool enabled)
QObject *subsurfaceHandler() const
QWaylandSurface *surface() const
bool touchEventsEnabled() const
QWaylandView *view() const

Reimplemented Public Functions

virtual QSGTextureProvider *textureProvider() const override

Public Slots

void setPaintEnabled(bool paintEnabled)
virtual void takeFocus(QWaylandSeat *device = nullptr)

Signals

Detailed Description

When writing a QWaylandCompositor in Qt Quick, this class can be used to display a client's contents on an output device and will pass user input to the client.

Property Documentation

allowDiscardFrontBuffer : bool

By default, the item locks the current buffer until a new buffer is available and updatePaintNode() is called. Set this property to true to allow Qt to release the buffer immediately when the throttling view is no longer using it. This is useful for items that have slow update intervals.

Access functions:

bool allowDiscardFrontBuffer() const
void setAllowDiscardFrontBuffer(bool discard)

Notifier signal:

void allowDiscardFrontBufferChanged()

bufferLocked : bool

This property holds whether the item's buffer is currently locked. As long as the buffer is locked, it will not be released and returned to the client.

The default is false.

Access functions:

bool isBufferLocked() const
void setBufferLocked(bool locked)

Notifier signal:

void bufferLockedChanged()

[read-only] compositor : QWaylandCompositor* const

This property holds the compositor for the surface rendered by this QWaylandQuickItem.

Access functions:

QWaylandCompositor *compositor() const

Notifier signal:

void compositorChanged()

focusOnClick : bool

This property specifies whether the QWaylandQuickItem should take focus when it is clicked or touched.

The default is true.

Access functions:

bool focusOnClick() const
void setFocusOnClick(bool focus)

Notifier signal:

void focusOnClickChanged()

[read-only] origin : const QWaylandSurface::Origin

This property holds the origin of the QWaylandQuickItem.

Access functions:

QWaylandSurface::Origin origin() const

Notifier signal:

void originChanged()

output : QWaylandOutput*

This property holds the output on which this item is displayed.

Access functions:

QWaylandOutput *output() const
void setOutput(QWaylandOutput *output)

Notifier signal:

void outputChanged()

paintEnabled : bool

Holds true if the item is hidden, though the texture is still updated. As opposed to hiding the item by setting visible to false, setting this property to false will not prevent mouse or keyboard input from reaching item.

Access functions:

bool isPaintEnabled() const
void setPaintEnabled(bool paintEnabled)

Notifier signal:

void paintEnabledChanged()

surface : QWaylandSurface*

This property holds the surface rendered by this QWaylandQuickItem.

Access functions:

QWaylandSurface *surface() const
void setSurface(QWaylandSurface *surface)

Notifier signal:

void surfaceChanged()

touchEventsEnabled : bool

This property holds true if touch events are forwarded to the client surface, false otherwise.

Access functions:

bool touchEventsEnabled() const
void setTouchEventsEnabled(bool enabled)

Notifier signal:

void touchEventsEnabledChanged()

Member Function Documentation

QWaylandQuickItem::QWaylandQuickItem(QQuickItem *parent = nullptr)

Constructs a QWaylandQuickItem with the given parent.

[override virtual noexcept] QWaylandQuickItem::~QWaylandQuickItem()

Destroy the QWaylandQuickItem.

bool QWaylandQuickItem::inputRegionContains(const QPointF &localPosition) const

Returns true if the input region of this item's surface contains the position given by localPosition.

[invokable] QPointF QWaylandQuickItem::mapFromSurface(const QPointF &point) const

Maps the given point in the Wayland surfaces's coordinate system to the equivalent point within this item's coordinate system, and returns the mapped coordinate.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

[invokable] QPointF QWaylandQuickItem::mapToSurface(const QPointF &point) const

Maps the given point in this item's coordinate system to the equivalent point within the Wayland surface's coordinate system, and returns the mapped coordinate.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

[invokable] void QWaylandQuickItem::setPrimary()

Makes this QWaylandQuickItem's view the primary view for the surface.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QWaylandSurface::primaryView.

[signal] void QWaylandQuickItem::surfaceDestroyed()

This signal is emitted when the client has destroyed the wl_surface associated with the QWaylandQuickItem. The handler for this signal is expected to either destroy the QWaylandQuickItem immediately or start a close animation and then destroy the Item.

If an animation is started, bufferLocked should be set to ensure the item keeps its content until the animation finishes

See also QWaylandQuickItem::bufferLocked.

[virtual slot] void QWaylandQuickItem::takeFocus(QWaylandSeat *device = nullptr)

Calling this function causes the item to take the focus of the input device.

[override virtual] QSGTextureProvider *QWaylandQuickItem::textureProvider() const

Reimplements: QQuickItem::textureProvider() const.

Returns the texture provider of this QWaylandQuickItem.

QWaylandView *QWaylandQuickItem::view() const

Returns the view rendered by this QWaylandQuickItem.