aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Create QOpenGLContext with the correct screenv5.5.0-beta1Jan Arne Petersen2015-05-021-0/+1
| | | | | Change-Id: I91169e719ac97b8e32805e08d6a1f43caa897f73 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Fix uninitialized variables/dataSimon Hausmann2015-04-293-2/+3
| | | | | | | | | | * Initialize the indexOfRootObject member * When creating the QV4::CompiledData::String objects, don't include the one ushort _beyond_ the QString, which is random data. Change-Id: I8fe8a465e2713a385504f217b367a62b70ee5fdf Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Doc: Fix linking issues in Item QML type documentationTopi Reinio2015-04-291-5/+5
| | | | | | | | | Use explicit link commands as QDoc cannot create links to single-word QML type names automatically. Task-number: QTBUG-45827 Change-Id: I048300728356d3ae9901c5c57febc683137ce090 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Fix rendercontrol example for screens with different dprLaszlo Agocs2015-04-281-0/+5
| | | | | | | | | | | | | | | | renderWindow() was not reimplemented in the example. This is pretty bad since renderWindowFor() fails to find a window and thus falls back to using the default device pixel ratio (which is the highest dpr present in the system). The result is broken content from Quick because it operates with a dpr of 2 any time a retina screen is connected, even when the example's own QWindow is placed on a normal screen. Add also a note to the QQuickRenderControl docs because it is easy to overlook. Task-number: QTBUG-45613 Change-Id: I31bf92ec285f3d9867a5604a4b4e3bea73791932 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5Simon Hausmann2015-04-273-3/+11
|\
| * Merge remote-tracking branch 'origin/5.4' into 5.5Simon Hausmann2015-04-273-3/+11
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf tests/auto/qml/qqmlxmlhttprequest/tst_qqmlxmlhttprequest.cpp Change-Id: I715b8a78b74cbe0dcaf599367fd6e08af4858e11
| | * Doc: corrected error on return value qmlRegisterTypeNico Vertriest2015-04-241-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-45584 Change-Id: I97508aabe47c49d8e27329a7856dd921ee0505dd Reviewed-by: Martin Smith <martin.smith@digia.com>
| | * QML: do not check stack size if stack grows upRolf Eike Beer2015-04-211-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On architectures where the stack grows upwards (i.e. HP PA-RISC) the stack limit calculation fails because the variables used to check the offset are usually close to the bottom of the stack, which is in this case the origin of the stack grows. Since these machines are a rare obscurity simply assume that everything is fine on these machines. The few people that are indeed running QML on such machines will probably be able configure their stack size properly by default. Task-number: QTBUG-44268 Change-Id: Ia83a39179a0f6e0602ba7a5032d386e12d8d1ba3 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| | * fix model leak in QQmlInstantiatorAlexandr Rekunkov2015-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | | Change-Id: Ieb6ef229bc999f1a35adc2a157bd42a38908f7d7 Task-number: QTBUG-45271 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | | Only heap allocate binding bits storage if needed.Aaron Kennedy2015-04-272-15/+43
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For samegame, this has the following change on the total bytes allocated: Startup (main page): Before: 1636 After: 1072 Difference: 564 bytes (-34%) Actual game (single player): Before: 14120 After: 10432 Difference: 3688 bytes (-26%) Done-with: Robin Burchell <robin.burchell@viroteck.net> Change-Id: I10fd1e9f1440dcff93aed06e2c77c2912bc7dd39 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> (cherry picked from commit 54a19db8d00b67044861c8ffd1d5b1e646658609) Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Instantiator: Make asynchronous mode workGabriel de Dietrich2015-04-252-7/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch proceeds in two steps. First, and the most trivial, we make sure not to offend the Instantiator's objects container since asynchronous creation also means the objects can be created in any order. We do so by ensuring the objects container has always the necessary size. The second step is to make sure the objects don't get destroyed by the delegate model when their incubation tasks are asynchronous. We force to keep an extra reference calling the object() function on the instance model, but only if the creation was asynchronous. However, it's not enough to check for the Instantiatior async value since the incubation tasks in QQmlDelegateModel are async-if-nested. Therefore, we need to keep track of the object index requested to the model and see if it matches when the createdItem() signal gets emitted. Task-number: QTBUG-36410 Change-Id: I180b03b6a7468d6521827a9631755577e9e6d357 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | Fix a memory leak in the material shader cache.Robert Griebl2015-04-235-5/+39
| | | | | | | | | | | | | | | | | | | | | | There were multiple problems in the implementation of the shader cache: 1) it was not thread-safe 2) nothing was ever removed from the hash 3) since the keys into the hash are the actual shader source code, problem #2 would lead to serious memory consumption over time Change-Id: I20d1fb2074932e23f89edddba12e68ab8adcbff0 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Fix regression with nested objects served by custom parsersSimon Hausmann2015-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following piece of code used to work and broke with Qt 5.3: ListModel { property var conn: Connection { ... } } When validating the properties of the ListModel we would not validate the Connection sub-object here, which meant the custom parser for the connection object was never called. We need to extend the logic for sub-object validation to recursive into sub-objects when this is either an attached property (Component.onComplete on a list model for example) or the object is assigned to an _existing_ property, i.e. a property not deal with by the custom parser. In this case that's a custom declared property. Change-Id: Ic99f746f08771460cc6424a9e8a839c78a7eafd9 Task-number: QTBUG-45735 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | [labs.settings] Minor optimizationKonstantin Ritt2015-04-231-9/+8
| | | | | | | | | | | | | | Prefer clear() over subsequent erase() and remove duplicated check. Change-Id: Ibc70c665972e2f972763e7a0088263815792a997 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* | V4: include alloca private header as alloca is used unconditionally.Pasi Petäjäjärvi2015-04-221-0/+1
| | | | | | | | | | Change-Id: I9d0f63c41609c4aaef272fabafd5b1272853a099 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | QtQml.Models: bump up the import version number to 2.2J-P Nurmi2015-04-222-3/+3
| | | | | | | | | | | | | | The latest version is 2.2 since 4ca9be5. Change-Id: I19014c26301a67f2ce2ef93d7bab124a65337b59 Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
* | Add plugins.qmltypes for QtQml.ModelsJ-P Nurmi2015-04-211-0/+540
| | | | | | | | | | | | | | | | Task-number: QTBUG-43229 Task-number: QTCREATORBUG-13780 Change-Id: Ice39a26809eb433a01205bae5cea9cfdc0699c27 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
* | XCB: respect QPlatformDrag::ownsDragObject().Mitch Curtis2015-04-211-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | In a Qt Quick application on X11, QDrag events were deleted before their data could be passed to an external application. There was a function introduced recently to account for this problem, so we should use that instead. Change-Id: If74dd32bb8c7aa7c2e3160448af546d2e8640528 Task-number: QTBUG-45604 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
* | Eliminate remaining property cache string lookups upon object instantiationSimon Hausmann2015-04-212-4/+10
| | | | | | | | | | | | | | | | Even for the id property binding we can use the property data cache and therefore avoid string hashing. Change-Id: Id9a4ca3159cdfe5ba93060f1bc8626e70140daa1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Speed up instantiation of objects that are assigned to list propertiesSimon Hausmann2015-04-211-3/+10
| | | | | | | | | | | | | | | | | | | | For example massive amount of Item{} objects that are "children" of another item and thus get assigned to the default data list property. Instead of repeatedly retrieving that list property via a meta-call, we can do that only once and re-load if necessary. Change-Id: Ia7d10b84b3c7dca58d9f0b4b2138bd6f916c128d Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Speed up property binding initialization on object creationSimon Hausmann2015-04-216-72/+93
| | | | | | | | | | | | | | | | | | | | Avoid repeated string hashing and lookups in the property cache in order to retrieve the property details when initializing literal and script bindings. Instead we now cache the property data at type validation time, similar to how the property data was encoded in the VME instructions in the old engine. Change-Id: I3957c7c4c3e26dfa97c4880b23940a3755ee90e4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Always return a proper Value from JIT generated codeLars Knoll2015-04-201-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | When throwing an exception, we ended up having junk data in the return value register. That could end up being written onto the JS stack when returning from the function, and then causing crashes in the garbage collector afterwards. Fix it by returning undefined in case we throw an exception. Change-Id: Ice380f2de673b179c1e2c98fbeb87e47347ef520 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Address uninitialized pointer variablesHolger Hans Peter Freyther2015-04-204-0/+12
| | | | | | | | | | | | | | | | Coverity CID 10721, 84861, 86705, 85424, 85422, 85259, 84863, 84857 Change-Id: Ia86970b5ac4e0be9de01b79b618d33011da6a328 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Doc: Expand on QJSEngine exception handlingSze Howe Koh2015-04-183-10/+25
| | | | | | | | | | | | | | | | | | | | | | - List the properties provided by the Error object. They consist of the standard properties and a subset of the Mozilla extensions. - Add QJSValue::property() usage to the example code. - Add cross-referencing. - Some rephrasing for clarity and conciseness. Change-Id: I1eb6943899fee2bd81851ccb03660a7a474a975d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Doc: corrected some language issuesNico Vertriest2015-04-171-1/+1
| | | | | | | | | | | | Task-number: QTWEBSITE-628 Change-Id: I608c4fe5e18f6494cc03377080a536a01be232ca Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Fix forward declaration of QQmlSourceLocation.Friedemann Kleint2015-04-171-1/+1
| | | | | | | | | | | | | | | | Fix warning: qtdeclarative/src/qml/qml/qqmljavascriptexpression_p.h(55) : warning C4099: 'QQmlSourceLocation' : type name first seen using 'struct' now seen using 'class' Change-Id: Id441502913180631fe09c2f256498063c8f144b1 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5Liang Qi2015-04-167-23/+33
|\ \
| * | Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-167-23/+33
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/qml/debugger/qv4profilerservice/qv4profilerservice.pro tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler.pro Change-Id: I76d87e3df97ebdba902ca3d7488c1582eca2a83c
| | * Protect the RegExp against early garbage collectionAlbert Astals Cid2015-04-141-1/+1
| | | | | | | | | | | | | | | | | | | | | Backported from Qt 5.5 Change-Id: Ice9fd8061fac0c35d787e1603873c69f8ef7e10b Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| | * Use qt_subtract_from_timeout instead of duplicating qt_timeout_valueDaniel Teske2015-04-143-16/+4
| | | | | | | | | | | | | | | | | | | | | | | | The same function was duplicated 5 times in qtbase, so create one copy to rule them all and use it also in QtDeclarative. Change-Id: I4e39a7ee0541ce4fe9710cea344e537ee011bbe9 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
| | * V4 JIT: fix typo in Binop::int32BinopJulien Brianceau2015-04-141-2/+2
| | | | | | | | | | | | | | | Change-Id: I68f073ab512b482c9b3b1ad7860f4c759245298e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| | * [mips] Fix or32 implementation in macro assembler.Julien Brianceau2015-04-071-1/+3
| | | | | | | | | | | | | | | | | | | | | Cherry-picked from qtwebkit (0546c8656a3728bf4375da39027e096beba4f111) Change-Id: I924661dc51bee334c6f26557e765a3a1e8ec0bce Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
| | * [mips] Fix branchTruncateDoubleToUint32 implementation in macro assembler.Julien Brianceau2015-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | Cherry-picked from qtwebkit (2d9ed318a21f6102dddc0b91de2698908a9b8efc) Change-Id: I88d961e89d046b20329bc1fcfc10bfceb21d737b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
| | * Add note clarifying return value of Qt.openUrlExternally()Aaron McCarthy2015-04-021-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On some platforms (notably wayland and xcb) the Qt.openUrlExternally() call returns as soon as the request is passed to the underlying system. The call may still fail, but this status is not reported to the application. Change-Id: I66936440f162154f08ab5abcf5b449844930a81b Reviewed-by: Valerio Valerio <valerio.valerio@jollamobile.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| | * Avoid parallel reading/writing of RegExpJitTables.hKai Koehne2015-04-011-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RegExpJitTables.h is created in the build directory at compilation time. This creates problems if debug and release targets are built in parallel: They might overwrite each other's results, letting the compiler see intermediate content. Avoid this by using separate directories for the debug and release build. Change-Id: I54fee7cb727a1c1777af8e0d5d19a71fdc3aac68 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Speed up composite type instantiation with lots of IDsSimon Hausmann2015-04-163-28/+13
| | | | | | | | | | | | | | | | | | | | | | | | We don't need to convert from a QHash to a QVector in order to populate the property name cache in QQmlContextData. Change-Id: Ifa8e4f64a1e174907e92684b2d38abaf0a4a705c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up object creationSimon Hausmann2015-04-1613-30/+45
| | | | | | | | | | | | | | | | | | | | | | | | Avoid copying url and file name twice into the context every time we instantiate an object. Change-Id: I1c76b80b9c44f95512af5899d760151f6dcd7bb5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up object creation with lots of id name objectsSimon Hausmann2015-04-163-32/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the common case when objects are referenced by id, we don't need the QQmlContextData's property name cache for the lookup. Instead of bindings we resolve the id to an integer at type compilation time. Therefore we can delay the population of the QQmlContextData's propertyNames until we need it and therefore safe time on startup. Change-Id: I2e8eeb51b1ac92f230059be3467f9a1e00fdbbef Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up script binding initializationSimon Hausmann2015-04-164-6/+21
| | | | | | | | | | | | | | | | | | | | | | | | Don't spend any time repeatedly building the same internal class for the simple binding functions. We can do that once at engine construction time. Change-Id: I3777b5bd15ad4a8aaf78ae13bee27e8d8cadc2ee Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Avoid strict mode for the surrounding QML call contextsSimon Hausmann2015-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The strict mode is not necessary from a correctness point of view but comes with the extra cost that for each script binding additional caller and arguments accessor members are a installed on the internal class. Change-Id: I13b688bc8344ee2f027679821586ca7670d17cc5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Support sRGB for text with QQuickWidgetLaszlo Agocs2015-04-161-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise we get visually different results with QQuickWindow and QQuickWidget on OS X. Task-number: QTBUG-42861 Change-Id: Icbf6f6e980129f5de73a88e7be7bef4f592e875e Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | | Speed up creation of objects without script bindingsSimon Hausmann2015-04-162-28/+31
| | | | | | | | | | | | | | | | | | | | | | | | Avoid the creation of the QML binding wrappers if we don't need it, by moving the creation into a function that creates it on demand. Change-Id: I1af6a8507a114c1a0b83374704981b7ed4c4a3fc Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up copying of value types in bindingsSimon Hausmann2015-04-163-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | When a binding results in a value type reference and the destination property is of the same time, then we can avoid a heap allocation and just allocate the value type memory on the stack, construct, copy and destruct. Change-Id: If71ef82b0ced85c1b962c5e44147d6c07edd1440 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up value type binding creationSimon Hausmann2015-04-166-44/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Avoid calling QMetaType::construct/destruct(typeId, ...) as that requires repeated lookups in the type registry. Instead cache the constructor/destructor/etc. function addresses in the QQmlValueType singletons as QMetaType * Allocate memory for the gadget pointer lazily, to accommodate the common case of a value type binding by property reference. Change-Id: I98a3ac73453b8f80027c06401b4f29a9707949d2 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Changed QML type lockingSimon Hausmann2015-04-163-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the use of QReadWriteLock with a plain QMutex. At this point QReadWriteLock adds a lot of overhead due to its internal QHash and otherwise offers little over a recursive mutex, especially given that there is most of the time only one reading thread and one writing thread. Change-Id: I0a91e4a64cff5d25e4a133ed46b08912e81bb055 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up creation of objects that don't import scriptsSimon Hausmann2015-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In the common case of no 'import "Foo.js" as Bar' we can avoid the creation of the JS array that holds the script references. Change-Id: I6704bd9efaf8681f939a148b2cb0a1de2cb22d80 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | Speed up binding evaluationSimon Hausmann2015-04-166-32/+30
|/ / | | | | | | | | | | | | | | | | Don't spend any cycles of determining the location of the binding (file, line, column) unless we really need that information. That's the case when the profiler is active or an error happens. Change-Id: Iae97808d500b88fed6a813e8b224aa6ebe04d3b6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Fix regressed atlas texture log output. Broken since: a49b0ad786Gunnar Sletta2015-04-161-2/+2
| | | | | | | | | | Change-Id: I5df32609b45047666ea8bde500cf771736c396e5 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Make sure we have enough precision to run animations for years.Gunnar Sletta2015-04-161-3/+3
| | | | | | | | | | | | Task-number: QTBUG-45358 Change-Id: I4af0da937253f3ae578333c659dcbb132312a9cc Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Unregister types in the QMetaType system on unload.Robert Griebl2015-04-151-1/+10
| | | | | | | | | | | | | | | | | | This patch will enable the unregistering of previously registered QMetaTypes, when the corresponding Qml type is dead. The API for this was added to QtBase with b00201b. Change-Id: I96d4a3004d8da59ee8edf7cfd6d2fef3a5410807 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>