summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2015-09-03Shortcut: add sequenceString propertyShawn Rutledge3-0/+19
If you set sequence to a StandardKey, then read back the property, you will get an int, which is not suitable for display. Now you can use sequenceString for tooltips, preference dialogs for setting shortcuts, and such. [ChangeLog][QtQuick] Added Shortcut.sequenceString property to read back the key sequence as a displayable string Change-Id: I63ee46f8a2c2da1b1c803282baa894fb1667fe67 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-09-02Merge remote-tracking branch 'origin/5.5' into 5.6Simon Hausmann5-4/+27
Change-Id: Ibc7a47f7ce6d15dff79fdc59f8ded297d1b8d50d
2015-09-02Don't consider QLocale a value type.Mitch Curtis1-1/+2
This fixes a regression where all of the properties of Qt.inputMethod.locale were undefined. Change-Id: Id33890a78296709baad6aeda96d74ca8cb39c61d Task-number: QTBUG-47916 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-02Doc: broken links and missing doc for functionsNico Vertriest3-2/+24
Task-number. QTBUG-43810 Change-Id: I14e03317d7470f33a899ba05b62b3d68fdb03734 Reviewed-by: Topi Reiniƶ <topi.reinio@digia.com>
2015-08-31Doc: fix the "Grouped Properties" example snippetJ-P Nurmi1-2/+2
Change-Id: Id41084b5abd7a83aab519a73b7377deb30302511 Task-number: QTBUG-48009 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
2015-08-28Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6Simon Hausmann2-1/+8
2015-08-27XHR: Server side errors are not network errorsJulien Brianceau1-1/+5
XMLHttpRequest specs state that only 'network errors' should result in a request error, and a server side error like HTTP 500 Internal Server Error (which results in QNetworkReply::InternalServerError) is an indication of the HTTP server response rather than a network error. Change-Id: I94bf678a8487e3d31007dc5119d6fb4e87ea3102 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Valery Kotov <kotov.valery@gmail.com>
2015-08-25Fix compiler warnings on recent clangLars Knoll1-1/+1
Add some Q_DECL_OVERRIDE and a cast Change-Id: I834d16049805b5fc6e64a64d26cd6c92ac873163 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-25Create less BindingWrappersLars Knoll4-31/+16
Instead create QmlContext's directly as they are the only thing used from the binding wrapper. Change-Id: If3a987134dee9e85b6a76ed74aacd76b19279117 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-25Remove this piece of codeLars Knoll1-11/+2
This was required with the old v8 engine, but removing the lines doesn't seem to cause any regressions in our tests, so let's get rid of them, and have proper JS scoping rules in place. Change-Id: Ib22b4e820bceff9fe26291dae1bf7b55b12a5cde Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-24std::sort JS profiling data instead of insert-sorting itUlf Hermann2-12/+18
The original FunctionCall struct is much smaller than the resulting FunctionCallProperties, and thus not as expensive to copy. Repeatedly calling upper_bound on a QVector is not such a great idea, either. Since the usage of QVector instead of QList for the results is new in Qt 5.6, the insert-sorting got slower, making this change a fix for a performance regression. Change-Id: I7154d8cf129b7fbe6e02424fbe16442042a5c3c2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-24Fix profiling of QML/JS compilationUlf Hermann3-8/+13
The compilation of .js resources was missed and the compile times were underestimated because the dependency resolution and error checking wasn't factored in. In particular we only profiled the done() step for QQmlTypeData. However, JavaScript compilation also occurs in the dataReceived() step of QQmlScriptBlob and QQmlTypeData will already parse the program into an AST at that step. Compile steps can be nested now, but considering the fact that significant time may be spent before and after compiling dependencies for a parent module, this seems to be the best way to model them. Furthermore, in order to not needlessly convert QUrl to QString at runtime, the compilation profiler saves the files now as QUrl. Change-Id: I215a87787f9117c069ecd77b2d913cc0b0ff3c89 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-24Fix hue clamping in Context2DLaszlo Agocs1-1/+1
It goes from 0..359, not 0..255. Task-number: QTBUG-47894 Change-Id: I0612a9d5e4999afae7703b5c49741b94fb0da07f Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
2015-08-24Fix incorrect signal emission for QML declared propertiesSimon Hausmann1-7/+4
After commit 6cd0001054faa9c7c20dcd5e9c7512367b2c1f5f we also need to remove the special var handling for signal indicies assigned to QML declared properties, in order to emit the right signal when the property changes. Change-Id: Ibdaba0435d8878e1e16dabe20559c484b217d82a Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-08-24Make iteration over persistent values saferLars Knoll2-10/+61
This makes it safe to destruct persistents while we are iterating over them. Change-Id: I8797d0c553d3201859cdf03fb25df28836e55691 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-24Fix use of function expressions with signal handlersSimon Hausmann1-8/+21
Writing onClicked: function(mouseEvent) { ... } would get silently "accepted" by the engine, but it wouldn't do anything. We basically wrapped it in a new function, so that it became onClicked: function(mouse){ function(mouseEvent() {} } which is a noop. With older versions this used to produce a syntax error. However the better fix is to simply support this kind of assignment for more expressive signal handlers, because now the names of the signal parameters can be explicitly named (with names of your choice). Change-Id: I96369f8805fab97509784222f614ee17cf681aba Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Michael Brasser <michael.brasser@live.com>
2015-08-21Implement support for providing information to Linux's perf JIT interface.Robin Burchell1-1/+61
For more information on what this is, see: https://github.com/torvalds/linux/blob/master/tools/perf/Documentation/jit-interface.txt [ChangeLog][QtQml][Profiling] QtQml can now write additional information so that perf is able to give function names of JavaScript methods when profiling. To enable this, set the environment variable QV4_PROFILE_WRITE_PERF_MAP=1 when running the process in question. Change-Id: I187c9b0792f40d93c89a986c0edb3c4487095cb7 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-08-21Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2-1/+8
Conflicts: tools/qml/main.cpp Change-Id: I6d521b21be85d91ebb96c28e2c64186f02d94842
2015-08-21Add isTabFence private flagGabriel de Dietrich2-19/+78
When an item has this flag set, the user can't tab-navigate either out of it, or enter it. We use this flag to implement QQuickPanel as an item for platforms that only support one single top-level window. Change-Id: I1f4313912ae1c70217af0d4d21064932b50a9438 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
2015-08-21Remove unused member variable QQmlDebugServerThread::m_block.Friedemann Kleint1-1/+0
Fix CLANG build error: qqmldebugserver.cpp:115:10: error: private field 'm_block' is not used [-Werror,-Wunused-private-field] bool m_block; Change-Id: I3be87c1ec0347b46e90e40c8769aeb507cf22c26 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-08-20Remove unused pointer to the context wrapperLars Knoll2-12/+0
THe binding wrapper doesn't use that pointer anymore. Change-Id: Ie04fff448b9647927219936a62c67ac0b4853eec Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-20Cleanup qmlcontextwrapper usage in XHRLars Knoll3-113/+47
Get rid of the static getContext overload and simplify the signature of the dispatchCallback method in XHR. Get rid of the m_me object, and instead store a pointer to the thisObject and the context data directly. Turn all internal errors into assertions. Change-Id: I5427b2009c64f54b67cce1c130eace47201624bd Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-20Move the qmlSingletonWrapper method out of the contextwrapperLars Knoll5-25/+23
One more step towards removing the class alltogether. Change-Id: Ic9f6794eb3c5c6605ee43ad23a6d432ebbf321a1 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-20Move the registerQmlDependencies method into QQmlPropertyCaptureLars Knoll5-50/+51
This is where the method logically belongs, and removes one more thing from the context wrapper. Change-Id: Ibc076c9b31903a484ad4517402eca2a3b7f0d660 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-20Use the QmlContext as the scope for QQmlV4Function callsLars Knoll4-24/+14
This further reduces our dependency on the QQmlContextWrapper and reduces storage requirements in the QObjectMethod. Change-Id: I2c12d0a8818d81d45139f482caac8510ad8dfddc Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-20Fix rendering to QQuickWindow::renderTarget.Gunnar Sletta1-3/+6
When setting an FBO, the size of the window should be irrelevant, so we need to use the renderTargetSize to specify the viewport and device rect. Change-Id: Id76736cfaf6c511439bb8af80e3c641025d9d547 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-08-20Add possibility to mirror ShaderEffectSource generated texturesMiikka Heikkinen8-1/+121
Using textures generated by ShaderEffectSource items (or Item.layer) with custom OpenGL code was non-intuitive due to mismatching coordinate systems, so added a possibility to control the generated texture orientation. [ChangeLog][QtQuick][ShaderEffectSource] Added possibility to mirror generated OpenGL texture. Change-Id: I7c03d8b6fbfc43d69812c15d244200fb8e7c7bb9 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-08-19QQuickImageBase: Use QUrl::path() instead of QUrl::toString().Robin Burchell1-1/+1
This copies less data, which is faster. Increases creation/delegates_image from 560 ops/frame to 600 ops/frame for me. Change-Id: I9c230bb9fa82fd631020881fb741857285589bca Suggested-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-08-19Doc: fix verb redundancySamuel Gaist1-1/+1
Change-Id: Ifa76a814dba5271b852c2eaf8a59a2ebb5aee808 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
2015-08-19Cleanup code in the VMEMOLars Knoll3-45/+44
Change-Id: Idc1da41586161f1c824c608198e232ba52a0d9d7 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-19Hold a pointer to the QV4::ExecutionEngine in the property cacheLars Knoll6-17/+17
This makes more sense than a pointer to the QQmlEngine. Change-Id: Ic6037b0df63b6cf1585539bc3ac78822f0e69d02 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-19Switch to the non compat metacall overloadLars Knoll4-9/+14
This one passes in the qobject that the metacall is being applied to. The long term goal is to make the vme meta object independent of the QObject instance. Change-Id: Ide34b8637b9963bdb5e87e4aa6e9c2ee825293f7 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-19Clean up data format for V4 debug connectionUlf Hermann2-44/+65
This changes the type announced for functions to the actual JavaScript type "function". The type for null is also wrong: it should be "object". However, older QtCreators cannot distinguish between null and {} if null gets the correct type, unless you explicitly compare x === null in an expression evaluator. For this reason the fake "null" type is kept for now. Also, the value field of undefined is now set as QJsonValue::Undefined which causes it to be omitted when sent over the wire. This is the logical thing to do. In addition we add type and value fields for all data members mentioned in a response, not only the ones specifically asked for. The value field is the actual value for any primitives (including strings), or the number of properties for composite types: objects, arrays, functions. In turn, the "ref" members are omitted for primitive types, so that we don't have to hold references to them in the debug service anymore. Even old QtCreators can deal with verbatim data members without "ref". Task-number: QTBUG-47746 Task-number: QTBUG-47747 Change-Id: I773e6418c39cd9814aadb5fb5ef7e109f9a4e618 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-19V4 debugger: Fix expression evaluationUlf Hermann6-25/+48
We need to collect the refs in the debugService's list in order for them to show up on addRefs() and we need to generate proper error responses if either the debugger is not stopped or the evaluation throws an exception. Task-number: QTBUG-47797 Task-number: QTBUG-47816 Change-Id: I98f17c1f3976859ee50b9bfac41091276ff60982 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-19V4 Debugger: Avoid special refs when looking up normal onesUlf Hermann1-1/+1
The "values" of "special" refs are always JavaScript "undefined"s. Thus, when trying to deduplicate an actual "undefined" we'd accidentally hit the special refs. Avoid this by checking if a found ref is special. In an ideal world we'd get rid of the special refs altogether and save QV4::FunctionObject in the values array, but that is not quite trivial as long as the QV4::ExecutionEngine::stackTrace() doesn't give us FunctionObjects. Task-number: QTBUG-47788 Change-Id: Idf358c285f40930220fad2207c6ab5c9101573b2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-19Improve QQuickImageResponse::textureFactory documentationAlbert Astals Cid1-2/+5
Change-Id: Id754f1f1454af566cb3cf20f5ca947f972ef2caf Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2015-08-19Fix memory leak when QQuickPixmapReply::Event is delete before being usedAlbert Astals Cid1-0/+7
It can happen that QQuickPixmapReply::postReply is called, and before QQuickPixmapReply::event is called the object gets deleted. That means that the texture factory will never be deleted. To fix that we delete it in the destructor of QQuickPixmapReply::Event and set it to 0 in QQuickPixmapReply::event after assigning to the next data structure that will take care of it Change-Id: Ibea62f5a10a53cca586de7c5f03f00aabfb88b2e Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2015-08-19Fix memory leak when using async image providersAlbert Astals Cid1-0/+1
Change-Id: I08392ab0a3edb1ac162110ebc349ad457800c788 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2015-08-19Fix performance of ListModel::get()Simon Hausmann7-63/+213
When called, the function would return a full-fledged QObject that maps the list element addressed. It would contain a _copy_ of all values in the list item and it would create a new meta-object for each list element. This function exists for the JavaScript API, and therefore we now return a much more lightweight object. For compatbility reasons it still has to be a QObject, but the meta-object of it is created on-demand, i.e. only when accessing properties from the C++ side or when connecting to the changed signal of a property. Otherwise the JavaScript wrapper will return the live values from the model without copying them. Change-Id: Iabf3ca22192d2aee06ae9d4b4cfb2fcde2a021b1 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Spencer Schumann <spencer.schumann@echostar.com>
2015-08-18Get rid of special handling of var propertiesLars Knoll4-90/+37
These can be handled in a simple way now by using a special propertyType value indicating that we have a var property. Also remove the additional write calls in the different readProperty implementations. If the stored data doesn't match, we can simply return the default value directly. Change-Id: I3823a971df24bd78f0acdc4c0042776277b3c55f Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Properly initialize the memberdata to undefinedLars Knoll1-1/+4
This avoids running into assertions in other places. Change-Id: Ia7f9dbdccdd6d3a338845754801e881d44efebb7 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Use the proper static ValueTypeProvider as intendedFrank Meerkoetter1-1/+1
This was triggering an assertion while running the unit tests. Change-Id: I53a0216a6861a7ab7e3ec89a2b8bda0605b38aaa Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Remove special case for var propertiesFrank Meerkoetter2-9/+7
In the new world order all the properties are QV4::Values. Therefore this special handling can be removed. Change-Id: Ia4d703256db7330936cd16a835d16d140adfe20e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Allocate a JS wrapper if there are any propertiesFrank Meerkoetter1-2/+2
Properties are now stored as QV4::Values. Change-Id: I586ccacbeb3c131ff4af2e5913c484dc4f4b7462 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Use QV4::MemberData for property storageFrank Meerkoetter2-194/+129
Unlike the Array type the QV4::MemberData can be sized exactly so no memory is wasted. Change-Id: Ia7b9b846a7b8017787324e5243ccf6233568d41c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Update copyright notice.Frank Meerkoetter3-0/+3
Update the copyright notice on files containing larger changes from me. Change-Id: I46cb83161331ef2f49a6ec92c078d6dc8019081e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Remove QQmlVMEVariant specific workaroundFrank Meerkoetter1-9/+1
A Q4x4Matrix wouldn't fit inside a QQmlVMEVariant. Therefore it was wrapped in a QVariant. Change-Id: I68864e456a4fd76143277d5a10d1a3f307e833f2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Remove unused codeFrank Meerkoetter1-25/+2
The QQmlObjectCreator is the only user left. It is using it only with QVariant::Color. Change-Id: I5091fd160841118bee5d6cf6e30798f66c277b69 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Mark methods as overridesFrank Meerkoetter1-11/+11
Let the compiler help to catch interface changes Change-Id: Ic4add183ca95ef287df41f35bd25c3e9eb15032f Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-08-18Also remove the QQmlValueTypeProvider::destroyValueType interfaceFrank Meerkoetter3-57/+0
After the removeal of the QQmlVMEVariant there is no user left. Change-Id: I97224127aac57aba9a80827f9292018d03609b85 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>