aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-05-19 06:57:35 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2017-05-19 07:32:35 +0000
commitcb70989c4fa2b8707ac59e25b3abe200ac7a5165 (patch)
tree39ada41293f3e5bbc6b8a33f70456f00922c7a85
parent32a1d14a3a1dead69dd1306adf70eefd3415639e (diff)
parent880b0d741477a56440cb3c2b57294b6748dbfd4c (diff)
Merge "Merge remote-tracking branch 'origin/5.9.0' into 5.9" into refs/staging/5.9
-rw-r--r--dist/changes-5.9.0122
-rw-r--r--src/quick/items/qquickevents_p_p.h7
-rw-r--r--src/quick/items/qquickwindow.cpp5
-rw-r--r--src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp4
4 files changed, 137 insertions, 1 deletions
diff --git a/dist/changes-5.9.0 b/dist/changes-5.9.0
new file mode 100644
index 0000000000..f6c6aebea9
--- /dev/null
+++ b/dist/changes-5.9.0
@@ -0,0 +1,122 @@
+Qt 5.9 introduces many new features and improvements as well as bugfixes
+over the 5.8.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+
+ http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.9 series is binary compatible with the 5.8.x series.
+Applications compiled for 5.8 will continue to run with 5.9.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+ https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* Important Behavior Changes *
+****************************************************************************
+
+* qmlInfo now reports messages with a QtMsgType of QtInfoMsg instead of
+ QtWarningMsg. To continue to send warnings, callers should migrate to
+ the newly-introduced qmlWarning function.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+QtQml
+-----
+
+ - The garbage collector has been rewritten to provide better memory
+ consumption, and improved, more predictable performance for JavaScript code.
+ - Array.prototype.find and Array.prototype.findIndex from ES6 are now implemented.
+ - Introduced qmlRegisterModule() that can be used to make a certain module
+ version available, even if no types or revisions are registered for that
+ version.
+ - Introduced qmlDebug & qmlWarning functions to qqmlinfo.h, in addition to
+ the pre-existing qmlInfo function. As a side effect, QQmlError has also
+ gained messageType() and setMessageType().
+ - [QTBUG-52013] Added QQmlEngine::offlineStorageDatabaseFilePath(dbName)
+ to allow getting the actual storage path for a particular database.
+ - [QTBUG-53091] Introduced Qt.application.displayName, to map the
+ QGuiApplication::applicationDisplayName property to QML.
+
+QtQuick
+-------
+
+ - Global:
+ * Improved stability of Animator's internals.
+ * [QTBUG-55496] Added a disk cache for OpenGL shaders to QtQuick.
+ * [QTBUG-58845] QWheelEvent delivered to all QQuickItems will now have a
+ correct global position.
+ * [QTBUG-57910] Touch events are now correctly ungrabbed if the touch event
+ was stolen by a parent item, such as a Flickable.
+ * [QTBUG-57098] Added Keys::shortcutOverride signal to allow prevention of
+ e.g. Shortcut from stealing key events.
+ * [QTBUG-56279] Added a shared memory image provider to conserve memory
+ when several processes use the same local image files.
+
+ - Window:
+ * [QTBUG-60232] Added QQuickWindow::sceneGraphBackend() to allow querying
+ which scene graph rendering backend is in use.
+ * [QTBUG-56115] Added a screen property to Window, which can be used to
+ declaratively associate a window with a specific screen. This is useful on
+ multi-screen embedded systems. Added Qt.application.screens as an array of
+ screens from which one can be chosen to assign to a Window. Added virtualX
+ and virtualY properties to Screen to enable querying the screen's position
+ within the virtual desktop.
+
+ - Items:
+ * [QTBUG-38515] Added horizontalOvershoot and verticalOvershoot
+ properties to Flickable, for use in implementing custom boundary actions and effects.
+ * [QTBUG-44762] Added a forceLayout method to Positioner types (Column, Row,
+ Flow, Grid) to force positioning of children to happen earlier. Additionally,
+ a positioningComplete signal has been added.
+ * [QTBUG-57203] Added TextInput::textEdited signal to distinguish user edits from
+ programmatical text changes.
+ * [QTBUG-42074][QTBUG-57003] Added support for characters in Private Use Area,
+ as well as zero-width joiners and zero-width non-joiners for TextInput and
+ TextEdit.
+ * [QTBUG-47662] Added MouseArea::pressAndHoldInterval to allow control over the
+ elapsed time before the pressAndHold signal is emitted.
+ * Item::grabToImage on an Image element will now work regardless of the
+ Image's sourceSize or cache properties.
+ * [QTBUG-52553][QTBUG-56501] Made it possible to enable horizontal
+ flicking in a vertical ListView, and vice versa. The only thing apps
+ must do is to specify the desired flick direction and the content
+ width (vertical ListView) or content height (horizontal ListView),
+ which is not calculated by ListView.
+ * Added Shortcut::sequences, to provide support for multiple different shortcut
+ sequences in a single Shortcut.
+ * Added rotation, ellipseDiameters and uniqueId properties to
+ MultiPointTouchArea.TouchPoint, and deprecated the area property.
+ A TouchPoint is now modeled as an ellipse centered on a point,
+ possibly rotated, depending on what the hardware and drivers support.
+ Android and the TUIO plugin support rotation and ellipseDiameters, for example.
+ The uniqueId is so far applicable only to the use of fiducials (tokens,
+ knobs or game pieces with hardware-based identification) on a TUIO touch surface.
+
+ - Accessibility:
+ * [QTBUG-58340] Fixed focus handling so that keyboard and VoiceOver's
+ virtual focus are in sync (QTBUG-58340).
+
+ - Text:
+ * Deprecated doLayout() in favor of forceLayout(), to improve consistency now
+ that more types (Positioners, Layouts, etc) have a forceLayout() method.
+ * [QTBUG-51133] Added fontInfo property to Text type, providing a way to
+ query properties of the actual font used for presenting the text.
+ * [QTBUG-58852] Text items with a renderType of Text.NativeRendering will no
+ longer stop rendering with a large number of characters.
+
+
+QtTest
+------
+
+ - [QTBUG-23083] Added TestCase::touchEvent to support simulating touch events
+ in tests.
+ - [QTBUG-56361] Added createTemporaryObject() and createTemporaryQmlObject()
+ functions to ensure that dynamically created objects can be destroyed at the
+ end of each test function.
diff --git a/src/quick/items/qquickevents_p_p.h b/src/quick/items/qquickevents_p_p.h
index 3735d68a85..323ecfa4ff 100644
--- a/src/quick/items/qquickevents_p_p.h
+++ b/src/quick/items/qquickevents_p_p.h
@@ -501,6 +501,7 @@ public:
: m_deviceType(devType), m_pointerType(pType), m_capabilities(caps)
, m_maximumTouchPoints(maxPoints), m_buttonCount(buttonCount), m_name(name)
, m_uniqueId(QPointingDeviceUniqueId::fromNumericId(uniqueId))
+ , m_event(nullptr)
{
}
@@ -513,6 +514,8 @@ public:
QString name() const { return m_name; }
QPointingDeviceUniqueId uniqueId() const { return m_uniqueId; }
+ QQuickPointerEvent *pointerEvent() const { return m_event; } // deprecated
+
static QQuickPointerDevice *touchDevice(QTouchDevice *d);
static QList<QQuickPointerDevice *> touchDevices();
static QQuickPointerDevice *genericMouseDevice();
@@ -527,6 +530,10 @@ private:
QString m_name;
QPointingDeviceUniqueId m_uniqueId;
+ // the event instance used last time within the context of one window
+ QQuickPointerEvent *m_event; // deprecated
+ friend class QQuickWindowPrivate; // not needed after removing the above
+
Q_DISABLE_COPY(QQuickPointerDevice)
};
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index ff4a357641..67069c7d15 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -2117,8 +2117,10 @@ QQuickPointerEvent *QQuickWindowPrivate::pointerEventInstance(QQuickPointerDevic
{
// the list of devices should be very small so a linear search should be ok
for (QQuickPointerEvent *e: pointerEventInstances) {
- if (e->device() == device)
+ if (e->device() == device) {
+ device->m_event = e;
return e;
+ }
}
QQuickPointerEvent *ev = nullptr;
@@ -2136,6 +2138,7 @@ QQuickPointerEvent *QQuickWindowPrivate::pointerEventInstance(QQuickPointerDevic
break;
}
pointerEventInstances << ev;
+ device->m_event = ev;
return ev;
}
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
index b8ebeaca63..78f2c86f6c 100644
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
@@ -2966,7 +2966,11 @@ void Renderer::visualizeBatch(Batch *b)
for (int ds=0; ds<b->drawSets.size(); ++ds) {
const DrawSet &set = b->drawSets.at(ds);
glVertexAttribPointer(a.position, 2, a.type, false, g->sizeOfVertex(), (void *) (qintptr) (set.vertices));
+#ifdef QSG_SEPARATE_INDEX_BUFFER
+ glDrawElements(g->drawingMode(), set.indexCount, GL_UNSIGNED_SHORT, (void *) (qintptr) (b->ibo.data + set.indices));
+#else
glDrawElements(g->drawingMode(), set.indexCount, GL_UNSIGNED_SHORT, (void *) (qintptr) (b->vbo.data + set.indices));
+#endif
}
} else {
Element *e = b->first;