aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.13' into 5.14Liang Qi2019-09-121-2/+5
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4engine.cpp src/quick/handlers/qquicktaphandler.cpp src/quick/items/qquicktableview.cpp Done-With: Richard Moe Gustavsen <richard.gustavsen@qt.io> Done-With: Ulf Hermann <ulf.hermann@qt.io> Done-With: Shawn Rutledge <shawn.rutledge@qt.io> Change-Id: If9558a33f01693ce96420c094e0b57dfff0626cd
| * Doc: Fix documentation warnings for qtdeclarativeTopi Reinio2019-08-291-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After recent changes to QDoc, it now correctly warns about missing documentation for QML method parameters - fix all of these and also do some minor language editing. Remove duplicated entries for - \qmlmodule Qt.labs.qmlmodels - \group qtjavascript as they were causing issues. Change-Id: I55cd670cc8a0cc6427cdb7945dbd7c28ea94f796 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | PathMultiline: handle directly-bound QVector<QPolygonF>Shawn Rutledge2019-09-031-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The autotest in 811b15bd161d12e5c85e093f9f492a0c4fa278d6 only tested what happens if the vector of polygons is passed via a QVariant to the PathMultiline paths property. But the intention (as documented) was to literally support an object with Q_PROPERTY(QVector<QPolygonF> paths ...) and binding that paths property to PathMultiline.paths. In that case it appears in QQuickPathMultiline::setPaths() as a QVariant<QJSValue>, canConvert<QVector<QPolygonF>>() returns false, then canConvert<QVariantList>() returns true. Nevertheless each variant in the QVariantList is a QPolygonF, as expected. So we need another check to detect this case. Also added a test specifically for that. Fixes: QTBUG-77929 Change-Id: I84d0a45326d5f007b8ba3cc9bb1fbccf0345d812 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | PathMultiline: allow lists/vectors of polygons or point lists/vectorsShawn Rutledge2019-09-022-35/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | If a C++ model object can make a vector of vectors of points available directly, and it is bound to a PathMultiline's paths property to provide the view layer, it's a waste of time to convert it to a QVariantList of QVariantLists and back again. Changing the type of the property to QVariant instead of QVariantList enables an extensible set of supported types: all those that make sense. Fixes: QTBUG-77929 Change-Id: If749c2171173e7b9933fc9ecdf6d2741dc1c7500 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | Enable PathPolyline to take a QPolygonF or QVector<QPointF> pathShawn Rutledge2019-09-022-18/+28
| | | | | | | | | | | | | | | | | | | | | | | | If a C++ model object can make a vector of points available directly, and it is bound to a PathPolyline's path to provide the view layer, it's a waste of time to convert it to a QVariantList and back again. Changing the type of the property to QVariant instead of QVariantList enables an extensible set of supported types. Task-number: QTBUG-77929 Change-Id: I2453b59e047ec3310070e943f6934c9ddcd1ffaa Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | Harmonize meta object revisions and minor versionsUlf Hermann2019-08-263-5/+5
| | | | | | | | | | | | | | | | | | | | In order to avoid complexity we want those to match. We can easily "rename" the meta object revisions as those are not public interfaces. Change-Id: I48e063d49758c7bacd9b7816bf5541cf67e07b0d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | Move currentFrame and frameCount properties up to QQuickImageBaseShawn Rutledge2019-08-242-31/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AnimatedImage already had these properties, but some typically non-animated image formats such as PDF, TIFF and ICO can also support multiple pages. In either case, the currentFrame property can be used to select a specific frame or page. However an AnimatedImage uses a QMovie to do that, whereas a plain Image uses QQuickPixmap. So the accessors need to be virtual in order to have these different implementations. [ChangeLog][QtQuick][Image] Image and BorderImage now have currentFrame and frameCount properties which can be used to step through the frames of multi-page image formats such as TIFF, WEBP and ICO. Task-number: QTBUG-77506 Change-Id: Id4d95a99a26a862957e44b1bd8ffe06d7eababef Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | qqml.h: add qmlRegisterAnonymousTypeFabian Kosmale2019-08-211-2/+2
| | | | | | | | | | | | | | | | | | This version behaves for the most part like qmlRegisterType(), but it adds a uri and major version, which qmlplugindump can use to put the tpyes into the correct plugins.qmltyes file. Change-Id: I50f620216439a3edc66ac740cb051c2fbb936e51 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-08-201-8/+12
|\| | | | | | | Change-Id: I9ce3eee3d6f88783b9e20110a2814bee805291a4
| * Doc: Correct error in doc Transition QML TypeNico Vertriest2019-08-191-8/+12
| | | | | | | | | | | | | | | | | | - corrected reference to non-existing state - added example with multiple states Fixes: QTBUG-73982 Change-Id: I7c815cb706f1ad1b8035f136448b75dce8eb9bfe Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Add QQuickPathMultiLinePaolo Angelelli2019-07-182-3/+179
| | | | | | | | | | | | | | | | | | | | | | And show our users even more love. This path element allows to specify a list of polylines as a single list of lists of points. [ChangeLog][QtQuick][Path] Added QQuickPathMultiLine. Change-Id: Idf1d1dcd928bb19b9ad995322f86822448811537 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Split qqmltypeloader{_p.h|.cpp} into a several filesUlf Hermann2019-07-111-0/+1
| | | | | | | | | | | | | | No one can read this mess. Change-Id: Icec4f2afc466435c1ae5e4e80fa2c1b5baf7d087 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Eradicate Java-style iterators and mark the module free of themMarc Mutz2019-07-042-59/+29
| | | | | | | | | | | | | | | | Java-style iterators are scheduled to be deprecated, or at the very least banned from use in Qt's own implementation. Change-Id: I6a1aeceb22dfa13c4ed7443296455b60abed7d67 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QQuickState: fix quadratic loopMarc Mutz2019-07-041-6/+8
| | | | | | | | | | | | | | | | | | QMutableListIterator::remove() is a linear operation, so calling it in a loop makes the overall loop quadratic. Fix by using std::remove_if + lambda, which is linear. Change-Id: Ia37b0ff947bd214d3b411dc4c274bf673c7f5577 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Add the graphics api independent scenegraph portLaszlo Agocs2019-07-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Opt in via environment variables: QSG_RHI=1 -> enable using QRhi instead of GL QSG_RHI_BACKEND -> set to vulkan, metal, d3d11, gl to override the default (the default is d3d11 on Windows, metal on Mac, gl elsewhere) Or force a given rhi backend via the existing QQuickWindow::setSceneGraphBackend(). Otherwise the default behavior is the same as before, the rhi code path is never active by default. -no-opengl builds are supported in the sense that they work and default to the software backend. However, the rhi code path cannot currently be used in such builds, even though QRhi from qtbase is fully functional with Vulkan, D3D, or Metal even when qtbase was configured with -no-opengl. This cannot be utilized by Quick atm due to OpenGL usage being all over the place in the sources corresponding to the default backend, and those host the rhi code path as well. This will be cleaned up hopefully in Qt 6, with the removal all direct OpenGL usage. Other env.vars.: QSG_RHI_DEBUG_LAYER=1 -> enable D3D debug or Vulkan validation layer (assuming the system is set up for this) QSG_RHI_SHADEREFFECT_DEBUG=1 -> print stuff from ShaderEffect QSG_SAMPLES=1,2,4,... -> MSAA sample count (but QSurfaceFormat works too) QT_D3D_ADAPTER_INDEX=0,1,... -> D3D adapter index QT_VK_PHYSICAL_DEVICE_INDEX=0,1,... -> Vulkan physical device index QSG_RHI_UINT32_INDEX=1 -> always use uint index data (both merged/unmerged, convert when needed - with some rhi backends this is implicit) QSG_RENDER_LOOP -> to override the render loop as usual. The default with RHI is threaded for Metal, threaded for Vulkan on Windows, basic for Vulkan on Linux and Android (to be checked later), while the existing rules apply for OpenGL. Not supported when running with QRhi: - particles - compressed atlases (though this is transparent to the apps) - QSGRenderNode - QQuickRenderControl - QQuickFramebufferObject - certain QQuickWindow functionality that depends directly on OpenGL - anisotropic filtering for textures - native text may lack some gamma correction - QSGEngine applicability unclear - some QML profiler logs may be incorrect or irrelevant Change-Id: I7822e99ad79e342e4166275da6e9e66498d76521 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QQuickState: replace some Java-style iterators with C++11 ranged-for loopsMarc Mutz2019-07-032-26/+8
| | | | | | | | | | | | | | | | More succinct, less code generated, and Java-style iterators will be deprecated at some point in the future. Change-Id: I17b9369669e7c494083f09c26ec3e7f06917f13d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | use boolean for when propertyFabian Kosmale2019-07-024-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | QQuickState used to store "when" as a QQmlBinding to reduce state oscillation. It is unclear whether this is still an issue, but it breaks if a user sets "when" to a primitive value like "true" or "1". Fixes: QTBUG-76838 Change-Id: If400e5b1283687838ed252be2dfa52067f44564e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Port from implicit to explicit atomic operationsMarc Mutz2019-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The old code used the implicit conversions from QAtomicPointer<T> to T*, and QAtomicInteger<T> to T, and vice versa. The semantics of these differ from the ones std::atomic uses, so we're going to deprecate these, like we did for load() and store(), too. This patch fixes some users of these APIs before we deprecate them. Change-Id: I892d705c22280f1c6fdc62c1777248b44e9c4329 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Check that animation still existsFabian Kosmale2019-06-271-1/+1
| | | | | | | | | | | | | | Fixes: QTBUG-76749 Change-Id: Ie5eed240e8190a7297f71f5e40870a007e737d1d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Expose QQuickPath::pointAtPercent as Q_INVOKABLEPaolo Angelelli2019-06-252-3/+22
| | | | | | | | | | | | | | | | | | | | | | So it can be used in QML. Useful in combination with ShapePath, in order to add graphics along a Shape. [ChangeLog][QtQuick][Shapes] Exposed QQuickPath::pointAtPercent as invokable in QML. Change-Id: Ia8aeb2b74003410ce16d9d2a0c62d79a021530af Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | QQmlEngine: keep ImageProvider alive while in useFabian Kosmale2019-06-252-12/+24
| | | | | | | | | | | | Fixes: QTBUG-76527 Change-Id: I4044ae833eff61a3f06c2366597c1623b26794b0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add QQuickPathPolylinePaolo Angelelli2019-05-282-4/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | And show our users some love. [ChangeLog][QtQuick][Path] Added QQuickPathPolyline. Change-Id: I0fb78ae3e4e7c65e81e100595dc1eb16f88a68ed Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-06-202-3/+6
|\| | | | | | | Change-Id: I71b1212085da85f03f4ff0e3ee5cb56a401998ae
| * Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-06-192-3/+6
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/imports/sharedimage/qsharedimageloader.cpp src/quick/items/qquickitemviewfxitem_p_p.h Change-Id: I12ce7c32788f4a394188a934e689b4ebac78138b
| | * Fix crash caused by objects self-destructions during displacement animationsYulong Bai2019-06-172-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The root cause was that the QAbstractAnimationJob::finished() might delegate its destruction to change.listener->animationFinished(this), and the original author was aware of that and provided a RETURN_IF_DELETE macro to return early if itself got deleted. In the bug's case, change.listener->animationFinished(this) dispatched to QQuickItemViewPrivate::animationFinished() which called QQuickItemViewPrivate::release() and deleted the QAbstractAnimationJob object itself in the end. However, any objects derived from QAbstractAnimationJob, or holding a pointer to a QAbstractAnimationJob, may potentially fall into the code path calling QAbstractAnimationJob::finished(). Any QAnimationJobChangeListener that directly or indirectly deletes QAbstractAnimationJob should be very suspicious to this kind of "heap-use-after-free" bug. Should ensure that the QAbstractAnimationJob won't be referenced after deletion. In the bug's case, within the code path triggered by ListView displacement animation, the other affected classes by QAbstractAnimationJob are: QQuickItemViewFxItem, QQuickItemViewTransitionableItem, QQuickTransitionManager. To fix this, a new SelfDeletable class is factored out to simplify the self-deletion test logic. Any affected classes are made to have a public member m_selfDeletable. Any code paths that finally reach QAbstractAnimationJob::finished() are wrapped with related util macro. Change-Id: Idd33fc3f2d529fd7d8bb088c329101b1e70dd6c0 Task-number: QTBUG-44308 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | Register QRegularExpressionValidator in QtQuickUlf Hermann2019-06-123-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | This should replace QRegExpValidator. RegExpValidator is deprecated now. Task-nunber: QTBUG-72588 Change-Id: I072deb382914fd322ce192509782b241824ccd7b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Add scale property to QQuickPathPaolo Angelelli2019-06-043-2/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this property, Paths and ShapePaths become scalable. [ChangeLog][QQuick][Path] Added scale property to scale a path before sending it in to PathView/Shape. Change-Id: Id9ce7d1247d55e2cdb0d27a19c86fe0970e66268 Fixes: QTBUG-74456 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Fix deprecation warnings in 5.14Friedemann Kleint2019-05-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Libraries: scenegraph/util/qsgdepthstencilbuffer.cpp:186:57: warning: 'T* QWeakPointer<T>::data() const [with T = QSGDepthStencilBuffer]' is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Wdeprecated-declarations] scenegraph/qsgdefaultcontext.cpp:163:89: warning: 'QList<T> QSet<T>::toList() const [with T = QByteArray]' is deprecated: Use values() instead. [-Wdeprecated-declarations] util/qquickpath.cpp:573:40: warning: 'QList<T> QSet<T>::toList() const [with T = QString]' is deprecated: Use values() instead. [-Wdeprecated-declarations] util/qquickpath.cpp:606:29: warning: 'QList<T> QSet<T>::toList() const [with T = QString]' is deprecated: Use values() instead. [-Wdeprecated-declarations] quicktest.cpp:562:73: warning: 'QSet<T> QList<T>::toSet() const [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] quicktest.cpp:604:77: warning: 'QSet<T> QList<T>::toSet() const [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] qquickitemparticle.cpp:233:49: warning: 'static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = QQuickItem*]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] qquickitemparticle.cpp:239:37: warning: 'QList<T> QSet<T>::toList() const [with T = QQuickItem*]' is deprecated: Use values() instead. [-Wdeprecated-declarations] Tests: tst_propertyrequirements.cpp:123:58: warning: 'QList<T> QSet<T>::toList() const [with T = QString]' is deprecated: Use values() instead. [-Wdeprecated-declarations] tst_propertyrequirements.cpp:161:40: warning: 'static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_propertyrequirements.cpp:161:77: warning: 'static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] /data1/frkleint/qt-dev/qtbase/include/QtCore/../../src/corelib/tools/qset.h:400:23: warning: 'QSet<T> QList<T>::toSet() const [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] ../shared/viewtestutil.cpp:331:26: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] ... tst_qmldiskcache.cpp:651:81: warning: 'QSet<T> QList<T>::toSet() const [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qmldiskcache.cpp:663:81: warning: 'QSet<T> QList<T>::toSet() const [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qmldiskcache.cpp:693:85: warning: 'QSet<T> QList<T>::toSet() const [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qmldiskcache.cpp:918:81: warning: 'QSet<T> QList<T>::toSet() const [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qmldiskcache.cpp:940:69: warning: 'QSet<T> QList<T>::toSet() const [with T = QString]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquickgridview.cpp:6437:70: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquickgridview.cpp:6438:46: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquickgridview.cpp:6440:66: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquicktableview.cpp:53:20: warning: 'kTableViewPropName' defined but not used [-Wunused-variable] tst_qquicklistview.cpp:7269:70: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquicklistview.cpp:7270:46: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquicklistview.cpp:7272:66: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquickpositioners.cpp:4033:70: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquickpositioners.cpp:4034:46: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] tst_qquickpositioners.cpp:4036:66: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] Change-Id: I9a177f83f07ae5162f7cc231a8c164ba32ffa5bc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Move valueAsNumber into ExecutableCompilationUnitUlf Hermann2019-05-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reduces our dependence on QV4::Value in the devtools. Change-Id: I4b3f937bc08c16f7e2543fdc5cc34c0cfb121f8f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Split CompiledData::CompilationUnit in twoUlf Hermann2019-05-162-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | We need a CompilationUnit that only holds the data needed for compilation and another one that is executable by the runtime. Change-Id: I704d859ba028576a18460f5e3a59f210f64535d3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-05-161-0/+2
|\| | | | | | | | | | | Change-Id: I192cb06f3b92869699cb3e072f2c6c1e8dbb1ef4
| * | Fix illegal downcast in QQuickStateGroup destructionAllan Sandfeld Jensen2019-05-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | One state hadn't the group unset and ended up with a non-null group pointer that was no longer a group. Change-Id: I916fdab577c90e859a49b97426396c78e7ff426f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Add BoundaryRuleShawn Rutledge2019-04-273-0/+721
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Qt Labs Animation] Added the BoundaryRule QML type, a PropertyValueInterceptor that restricts the range of values a numeric property can have, applies "resistance" when the value is overshooting, and provides the ability to animate it back within range. Change-Id: I677b407a351c12b0c5b23c34a45933154310c2cd Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-04-231-1/+1
|\| | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlmetatype.cpp Change-Id: Ieff61c076e46eb50a059c8b0210f7f4d7ce0cbcf
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-04-191-1/+1
| |\| | | | | | | | | | Change-Id: I9ef4be23bfe35aa48d4c65d4159e72c527943845
| | * Doc: Fix typo in code snippetPaul Wicking2019-03-271-1/+1
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-74444 Change-Id: If504fe2a6b4a0d88d69e777d433a6773db5f4df3 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | | Remove QQmlV4HandleUlf Hermann2019-04-101-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | This is just an alias for QV4::ReturnedValue. We can as well use the latter. Change-Id: Ibd2c038a3ca726b39a8f0f05e02922adb9fccbdb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Remove unused includes of qv8engine_p.hUlf Hermann2019-04-091-1/+0
|/ / | | | | | | | | Change-Id: Ic135a863581d29a3afb9c6c7f070d2630b3913b4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QtDeclarative: replace deprecated functionsChristian Ehrlicher2019-02-133-3/+3
| | | | | | | | | | | | | | | | | | | | Replace the deprecated functions with it successors: - QFontMetrics::width() -> horizontalAdvance() - QLayout::setMargin() -> setContentsMargins() Change-Id: I2a2557cdb2eaec40e2c9955a0082372c582ec6b8 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devLiang Qi2019-01-291-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/masm/yarr/YarrJIT.cpp src/qml/compiler/qv4instr_moth.cpp src/quick/handlers/qquicksinglepointhandler_p.h src/quick/handlers/qquicktaphandler.cpp src/quick/items/context2d/qquickcontext2d.cpp Done-With: Ulf Hermann <ulf.hermann@qt.io> Change-Id: I109453131f9f0a05316ae37c7d6ed1edc8c0f9d4
| * Merge "Merge remote-tracking branch 'origin/5.12.1' into 5.12" into ↵Liang Qi2019-01-221-1/+1
| |\ | | | | | | | | | refs/staging/5.12
| | * Merge 5.12 into 5.12.1Kari Oikarinen2019-01-082-4/+28
| | |\ | | | | | | | | | | | | Change-Id: Ic746fbce93430867e2eda4bc7155d34e20a4aa2b
| | * | Fix typo in notify signal emissionRobert Griebl2018-12-101-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: Ic2c298d14eb85ee8702eb751dd269eb0e3e11cc6 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | | | Merge remote-tracking branch 'origin/5.12' into devLiang Qi2019-01-221-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf tests/auto/quick/qquickpathview/tst_qquickpathview.cpp Change-Id: Ic1f5e219a255d0613f7654368a5ce3eccb8f0ee9
| * | | Documentation: Start using the \nullptr macroFriedemann Kleint2019-01-211-1/+1
| | |/ | |/| | | | | | | | | | | | | Task-number: PYSIDE-903 Change-Id: I0c4640eb20157673eabb131e8834e79cbbf95d5c Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | QML: Special case null as binding typeUlf Hermann2019-01-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This gives us the opportunity to map the JavaScript null to QVariant's concept of isNull(). [ChangeLog][QML] Assigning JavaScript null to incompatibly typed properties generates a compile error now, rather than a runtime error. Fixes: QTBUG-72098 Change-Id: I72fd1c30d84128c774230eaaea10455b2a0e064c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-12-231-1/+9
|\| | | | | | | | | | | Change-Id: I9c3d282c11a556e616c5e1ba1b51e88b741327f6
| * | qquickpixmapcache: Fix invalidation of m_cache while iterating itRobin Burchell2018-12-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Releasing items from the cache modifies m_cache, which we cannot do with a range-for. Fixes: QTBUG-65077 Change-Id: I2efcf6a03b03982a54bb1aacff43c55c45782eaa Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | nothread: do not delete reader thread object before it gets usedLorn Potter2018-12-131-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | exec is an empty function on nothread and returns right away, so the pixmap reader thread object gets deleted before it can download the url Task-number: QTBUG-72105 Change-Id: If205dbe12d0b5299b43a68e7d0d955a2b89b4af1 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | Avoid create an additional copy of an imageMikhail Svetkin2018-12-211-0/+12
| | | | | | | | | | | | | | | | | | | | | Try to convert an image in place instead of make a copy of the image. Change-Id: I6956c7002b1fac2c4f315b2c5396e5d7ca52d810 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>