Qt-contributors-summit-2014-QtCS14QtQuick

From Qt Wiki
Revision as of 14:12, 25 February 2015 by Maintenance script (talk | contribs)
Jump to navigation Jump to search

Notes from QtQuick session

Adaptive UI continued from QtCS 2013

Apparently we have form factor detection now? https://codereview.qt.io/#change,84471
That should help finish enacting the previous adaptable UI plans, but now we need people to use them and provide feedback.

Views NG continued from QtCS 2013

A couple more people partially volunteered. Maybe we can add them together and get 1 full volunteer to start working on this?

QtGui equivalent

For types not non-visual QtQml, but not QtQuick specific

“QtQmlGui” layer is needed, for stuff like Qt.vector3D and colors, which is GUI related (not viable for QtQml) but should be shared between more than just QtQuick.

Prerequisite feature for the QML discussion – Module dependencies. Something like

  1. using QtQml 2.0


in your qmldir, and then

  1. import MyModule 1.0 as Namespace

would also have the effect of

  1. import QtQml 2.0 as Namespace

Then we can have QtQuick using QtQml 2.0 and QtQmlGui 2.0, and “move” items without breaking applications.

Some new elements

Both suggested, and likely will be contributed, by Sean Harmer.

Polar Coordinate Positioner

Positions items around a pole.

MouseRegion

Non-rectangular MouseArea. Probably a new element, as it will be much more complex and it will be overkill for the common case.

Expanded Touch Regions for fat fingers

Touch Special Handling? Threshold around touch events
Long term might want:

  1. Window {
  2.   threshold: isTablet ?  10 : 15 //Plus attached property to fine-tune
  3.   Rectangle {
  4.     MouseArea { anchors.fill: parent }
  5.   }
  6. }


Where threshold is implemented inside the touch delivery and includes intelligent heuristics (like if you touch an area between a tiny button and a giant button, you probably wanted the tiny button because if you wanted the giant button you’d be closer to the center).

But for now, MouseArea margins can do the basic, non-intelligent way. Especially when using singletons:

  1. QtObject {//Singleton, document for now
  2.   property int margins: -15
  3. }


So a per device/form singleton and having MouseArea margins bind to that allows all anchors.fill: parent MouseAreas to extend beyond their parent.

QFontMetrics Functionality

TextContainer element which exposes similar functionality to QFontMetrics. But it exposes it by sizing a non-visual item with set sizes. Like an invisible text item, more efficient and not propagating visibility to its children. Something like:

  1. TextContainer { //+ More font metrics functions, like baseline (but not baseline specifically)
  2.   text: "100%" //Not painted ever, used only for sizing
  3.   font: realTextt.font
  4.   Text {
  5.     id: realText
  6.     text: slider.value
  7.     anchors.centerIn: parent
  8.   }
  9. }


But TextContainer is a terrible name…