QtWaylandDev: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:
* '''ping/pong public API (shell_surface::ping)'''
* '''ping/pong public API (shell_surface::ping)'''


The compositor should be able to check if a client stops responding. Considerations:<br />'''''' Control how often compositor sends ping<br />'''''' Make ping() invokable from the compositor API<br />'''''' Add a pong[ed]() signal when the client pongs<br />'''''' Add a lastPong property that holds the timestamp<br />'''''' Add a convenience signal when last pong goes over a certain threshold
The compositor should be able to check if a client stops responding. Considerations:
'''''' Control how often compositor sends ping
'''''' Make ping() invokable from the compositor API
'''''' Add a pong[ed]() signal when the client pongs
'''''' Add a lastPong property that holds the timestamp
'''''' Add a convenience signal when last pong goes over a certain threshold


* '''Better QML Property API'''
* '''Better QML Property API'''


The generic property API is annoying to use, especially from QML. plfiorini has already started a fix for this: https://codereview.qt.io/#change,52123<br />'''''' Would it make more sense for the generic properties just to use QWindow instead? Then you could access any QProperty of QWindow.<br />'''''' How would the QML attached/grouped property look? QQmlPropertyMap or even a private QML support class should be used to make this as pretty as possible<br /><code><br />WaylandSurfaceItem {<br /> windowProperties { // Or just &quot;properties&amp;quot;?<br /> customProperty: &quot;prop&amp;quot; // This?<br /> property string x: &quot;x&amp;quot; // Or this?<br /> }<br /> title: windowProperties.x // Make sure you can bind/update/etc.<br />}<br /></code>
The generic property API is annoying to use, especially from QML. plfiorini has already started a fix for this: https://codereview.qt.io/#change,52123
'''''' Would it make more sense for the generic properties just to use QWindow instead? Then you could access any QProperty of QWindow.
'''''' How would the QML attached/grouped property look? QQmlPropertyMap or even a private QML support class should be used to make this as pretty as possible
<code>
WaylandSurfaceItem {
windowProperties { // Or just "properties"?
customProperty: "prop" // This?
property string x: "x" // Or this?
}
title: windowProperties.x // Make sure you can bind/update/etc.
}
</code>


== APIs to remove ==
== APIs to remove ==


* '''QWaylandSurfaceItem::clientRenderingEnabled'''
* '''QWaylandSurfaceItem::clientRenderingEnabled'''

Revision as of 11:01, 25 February 2015

h1. QtWayland Development thoughts

Before making an official release of QtWayland, it needs an API review. Use this page to comment on things that could/should be done.

Things to do

  • PIMPLize all public compositor classes so we can make a step toward BC releases

APIs to add

  • ping/pong public API (shell_surface::ping)

The compositor should be able to check if a client stops responding. Considerations: ' Control how often compositor sends ping ' Make ping() invokable from the compositor API ' Add a pong[ed]() signal when the client pongs ' Add a lastPong property that holds the timestamp ' Add a convenience signal when last pong goes over a certain threshold

  • Better QML Property API

The generic property API is annoying to use, especially from QML. plfiorini has already started a fix for this: https://codereview.qt.io/#change,52123 ' Would it make more sense for the generic properties just to use QWindow instead? Then you could access any QProperty of QWindow. ' How would the QML attached/grouped property look? QQmlPropertyMap or even a private QML support class should be used to make this as pretty as possible

WaylandSurfaceItem {
 windowProperties { // Or just "properties"?
 customProperty: "prop" // This?
 property string x: "x" // Or this?
 }
 title: windowProperties.x // Make sure you can bind/update/etc.
}

APIs to remove

  • QWaylandSurfaceItem::clientRenderingEnabled