aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* simplify host_build logic againOswald Buddenhagen2013-10-251-7/+1
| | | | | | | | | | qt_tool handles bootstrapping fully automatically. This reverts commit 0fc040ef70513ccaeb9e96f7ca05a3df4d6c7879, and adds some more. Change-Id: Icffcf7f487dbf660678c7ee622f94b1063fef7e3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Item documentation: visibleChildren is a list of items, not a realShawn Rutledge2013-10-251-1/+1
| | | | | | | | | Followup to I5ec541226fabd72c05ce8ccb8bb7e56f6ec7717a Task-number: QTBUG-22724 Change-Id: I3f74fda29faba4054c5bb97aad4735f7c5f0f278 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Clear text node references after sub-tree has been cleaned up.Alan Alpert2013-10-241-0/+3
| | | | | | Task-number: QTBUG-34181 Change-Id: I861e192cee2c683efee79e7404a5c9d70b60691f Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Doc: Fixed broken linksVenu2013-10-243-46/+47
| | | | | | | | | | | | | | | | | There were many links (including the broken) on the Qt Quick index page and QML type reference page using the html file name to link to a page or a section within a page. Using html file reference in a link is not a good approach as qdoc does not give complete control to the author to define the html file name. This change updates all such links to use the page \title and \target names, which are considered to be better ways to link. Task-number:QTBUG-33360 Change-Id: Ibd1b1e3223a7e205bbdcf21b1b7f6e515749c5c9 Reviewed-by: Nico Vertriest <nico.vertriest@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* V4 debugger: retrieve formals and locals.Erik Verbruggen2013-10-249-101/+238
| | | | | Change-Id: I47507a4d7d1b429b9c43ed3a7822079efe577327 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Allow &quot; in QQuickStyledTextJohn Brooks2013-10-241-0/+2
| | | | | | | | QString::toHtmlEscaped generates &quot;. QQuickStyledText should be symmetrical with that function. Change-Id: I67ea0abe446b5fa1edb53258dca58b84af910e28 Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
* Doc: Added a QML module page for Qt Quick TestVenu2013-10-233-1/+17
| | | | | | | | | | | | This should avoid the TestCase and SignalSpy types being listed in the All Classes page, which is meant for the C++ classes. Task-number: QTBUG-33316 Change-Id: I0f2f9e557df89f46f656a8820602fe5712c64073 Reviewed-by: Caroline Chao <caroline.chao@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Win32: Remove dependency to DbgHelp DLLSimon Hausmann2013-10-231-4/+0
| | | | | | | | This was used for natice stack trace determination, which is done differently now. Change-Id: Id983f2bf6805aaf3f7081a16196268be88c98951 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Make LocalStorage more verboseGatis Paeglis2013-10-221-1/+3
| | | | | Change-Id: I4f3dd475156941f1a1d2815a4db57ad9abf8f27d Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Avoid crash when a QML signal is connected to a non-void slotJ-P Nurmi2013-10-221-5/+3
| | | | | | | | | | Don't pass a QVariant pointer for the return value when we're not interested in it and the return type might not even be a QVariant (that would be only true for QML methods). Task-number: QTBUG-32801 Change-Id: I8f14e40d8f94caef7e3d086b776735f0484dbf0e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove ancient and unused leftoversGunnar Sletta2013-10-224-70/+9
| | | | | Change-Id: Ia3a2aa2244748c2f3f2df8853f5bddfbbc4bc19f Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Add support CompositeSingleton to the new V4 compiler.v5.2.0-beta1Antti Piira2013-10-217-6/+95
| | | | | | | | | | | | | | | | | Implements QQmlCodeGenerator::visit(AST::UiPragma *) to process any pragma statements in a QML file for the new V4 compiler approach. Only pragma Singleton is supported, others will generate errors. Also adds necessary hooks to treat types as Singletons. Basic functionality is working, but three of the QML Singleton unit tests fail. Some of them are dependent on other language capabilities that seem to have problems. In addition removes unnecessary toString() call in the equivalent visit(AST::UiPragma *) function of the old parser. Change-Id: Iec9fa887f953b80b7f9a11878d846637a8f519ef Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Don't use reserved keyword "texture" as uniform variable nameSean Harmer2013-10-216-73/+73
| | | | | | | | | | The "texture" keyword is a function name in OpenGL core profile. This commit is in preparation for making the Qt Quick 2 renderer and materials work with a core profile context. Change-Id: Iad243e64ab8db739fc46b85bb626bdb8b9ceb208 Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix MSVC2013 compilationYuchen Deng2013-10-212-0/+4
| | | | | | Change-Id: I79b50e786f46c9a15963f09158c18871c95fe093 Reviewed-by: Peter Kümmel <syntheticpp@gmx.net> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Revert commit d818575966e2e2000fe2b7ee390c620f595d9825Simon Hausmann2013-10-213-17/+0
| | | | | | | | | | | | This reverts the commit that deprecated the with statement and added a note to the docs that binding expressions will be compiled in strict mode in Qt 5.2. It turns out that we had to keep the with statement and enabling strict mode breaks just too much unfortunately. Change-Id: Id38c27f684fbfcb6b6b848be8f691658089d1adb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Prevent badly formed texture nodes in the scene graph.Gunnar Sletta2013-10-214-10/+10
| | | | | | | | | | | | | | | | | A texture based node without a valid texture is not allowed, as the material and the renderer will only tolerate well-formed nodes. If a node is missing any part of its material state it should not be in the scene graph in the first place. Because of an "optimization" in QSGDefaultImageNode::setTexture and QSGSimpleTextureNode::setTexture, we must temporarily set the texture to 0 to ensure that it gets updated properly. This temporarily puts the node into an invalid state which can lead to crashes when QSGNode::markDirty() reaches the renderer. Task-number: QTBUG-34062 Change-Id: Ic1735c9b974b90b3684262de9589133c961bac6e Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Reset on model layout changedAlbert Astals Cid2013-10-211-2/+1
| | | | | | | Otherwise the next dataChanged from the model may not be received Change-Id: I16b859d92fdb1823c4a56c297d4451abe438fbb1 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Qml JavaScript code generation cleanupsSimon Hausmann2013-10-208-91/+75
| | | | | | | | | | | | | | | * Run the binding expressions, functions and signal handlers through the V4 codegen _per_ component, and run the isel at the end for the entire file. We need to do per-component codegen because we want to set up the correct id and object scopes, which are different for the root component and anonymous components. * Changed V4IR::Module to allow for the concept of "qml modules" where there is no root function defined. This is a logical consequence of running v4 codegen multiple times with different input but the same V4IR::Module. Change-Id: Ib3a719f83507cbab7c2e4e145ccad5b663c795cf Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Cleanup: Avoid unnecessary irModule->functions.indexOf callsSimon Hausmann2013-10-207-50/+58
| | | | | | | | | With a growing number of functions per module, these calls become expensive and are unnecessary. defineFunction in the code generator can simply return the correct index right away. Change-Id: I8ab56a3083bf215674a1b46c502b415be694e465 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove internal method from public APILars Knoll2013-10-1911-39/+36
| | | | | | | | QQmlError is public API and shouldn't expose an internal method. Change-Id: I7caf06af9340fefec5c96103395fe74acbf19497 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Some minor optimizationsLars Knoll2013-10-194-42/+38
| | | | | Change-Id: Ib2e08e7c89ca59a48f8fd52b30981e5d7e60803b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* QtQuick.Dialogs: deploy qml files only for debug buildsShawn Rutledge2013-10-171-2/+5
| | | | | | | | | | QML_FILES are installed with the qml plugin they belong to. This is helpful for debugging, but redundant because the same QML is also packaged as resources (after 8780af05b1bc63aa71c3a318972465ffdb830070). Task-number: QTBUG-31565 Change-Id: I0b277b62b48e0a742f3ef2ff6ee2a81cc071295e Reviewed-by: Caroline Chao <caroline.chao@digia.com>
* Fix ARM thumb2 mode detectionSimon Hausmann2013-10-171-1/+5
| | | | | | | | | __TARGET_ARCH_THUMB may not always be defined, but __thumb2__ for example is also a good indicator that we can generated and run thumb2 code and thus enable the JIT. Change-Id: I987d0af5883d9bb844c4c99a0691a12aedc94ff5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix crash in FolderListModelFabian Bumberger2013-10-171-3/+5
| | | | | | Change-Id: I8d012e9a356676dd3dad246579c7339eaddc1e91 Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Make sure v8 service sends a finished signalKai Koehne2013-10-171-0/+2
| | | | | | | Otherwise Qt Creator will block forever ... Change-Id: I2ffe5e826c10338aeb4ded7079154fe83710c108 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Disable WTF assertions in release buildsSimon Hausmann2013-10-171-0/+2
| | | | | | | Define NDEBUG to disable them. Change-Id: Ie1f08863b9b483216be2c0768b505f2e9e7ccef8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix build on ARM in ARM mode (instead of thumb2)Simon Hausmann2013-10-177-34/+54
| | | | | | | | | | We don't support the traditional ARM assembler (yet), only JIT on thumb2. In order for us to reliably check that, we have to wait until the pre-processor runs, which this patch achieves by moving all JIT enable/disable decisions into qv4global_p.h Change-Id: I7eff5b4fbf1cd26297a08dee16984ad867358113 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Implement WTFReportAssertionFailureSimon Hausmann2013-10-171-1/+2
| | | | | | | At least do a printf with the failure details, to make debugging easier. Change-Id: I092d31e3408cd0a651c6dd96b5fd94adf4abe3a7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix ASSERT_VALID_CODE_POINTER for our ARM buildsSimon Hausmann2013-10-171-4/+2
| | | | | | | | | | | We want to allow intermixing thumb and ARM for all builds, not only Android. Modified the macro to do a thumb-compatible null pointer check. This also works around a miscompilation on QNX where the compiler appeared to make incorrect assumptions about the address of functions we are taking. Change-Id: Ib8fc400178e0c2621bde2ca94b3f94041591e19a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4 ARM: extend disassembler.Erik Verbruggen2013-10-172-0/+77
| | | | | | | Added VADD/VSUB/VLDR/VSTR. Change-Id: I25fbb338652c3457e15cc9ef17209d35c63fefe5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix performance regression when doing property lookups for non-existant ↵Simon Hausmann2013-10-163-6/+14
| | | | | | | | | | | | | | | | | properties Commit 84627464eb11ca1149d46946b12e3c82eb54a8bf introduced a performance regression of falling back to reading the QMetaObject, when the lookup for a property in QML failed, after we've tried in the property cache. This is very very expensive to do and was only due to QQmlPropertyMap not correctly invalidating the property cache. Instead remove the property cache from the property map's QObject and on the lookup side rely on the property cache being correct in the result (positive or negative). Change-Id: I8a013483203f2007d48b71feafa10b3ea02c53fd Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Speed up exception propagationSimon Hausmann2013-10-1610-163/+136
| | | | | | | | | | Avoid catch (...) with re-throw as it turns that this is very slow because it throws a new exception and the unwinder starts from scratch. Instead use stack allocated objects and cleaning destructors to restore state before continuing with the propagation of exceptions. Change-Id: I6d95026bcd60b58cb6258a9dae28623a46739532 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Speed up stack trace generation for the JITSimon Hausmann2013-10-168-272/+38
| | | | | | | | | | | | | | It turns out that in QML it is not unusual that during early binding evaluations due to the undefined order, the evaluation tries to look up properties in objects that aren't initialized yet and thus exceptions are thrown. Eeach thrown exception saves a stack trace, which is expensive to generate when using the JIT, as it does full stack unwinding. This patch implements a more light-weight approach by storing the instruction pointer in the context before leaving JIT generated code. Change-Id: I95e1cfd01179247dfc2c1df949828f474a23161b Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Avoid infinite loop with distance fields disabledLaszlo Agocs2013-10-161-1/+5
| | | | | | | | createGlyphNode() and createNativeGlyphNode() kept calling each other on GLES whenever QML_DISABLE_DISTANCEFIELD was set. Change-Id: Ic1c2cfe0c4c7301f82cbbcce1cb512bd515b52ef Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Dialogs: use resources for QML and imagesShawn Rutledge2013-10-162-15/+64
| | | | | | | | | | | | | | | | All the qml and image files are embedded in the QtQuick.Dialogs plugin. If DefaultFileDialog.qml is missing from the installation directory, loading from resources will be enabled. Otherwise, the files will be loaded from the local path. This is analogous to change b2e5d1acb1aca93157a6d4d0a026153134f9ad01 in Qt Quick Controls: it reduces the number of files that need to be installed, but also preserves ease of debugging whenever the QML files are separately installed. Task-number: QTBUG-31565 Change-Id: Idbe6be5d818eb6a25367f2053ea52bc7ac1485bc Reviewed-by: Caroline Chao <caroline.chao@digia.com>
* Fix infinite loop in QQmlIncubator::forceCompletionAlbert Astals Cid2013-10-162-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this change I'm getting this backtrace 3 0x4025b9f2 in QQmlIncubatorPrivate::incubate (this=0x18daa78, i=...) at qml/qqmlincubator.cpp:273 4 0x4025c1c2 in QQmlIncubator::forceCompletion (this=0x1527360) at qml/qqmlincubator.cpp:592 5 0x404e1626 in QQuickVisualDataModelPrivate::object (this=this@entry=0x13909f8, group=QQuickListCompositor::Default, index=index@entry=1, asynchronous=asynchronous@entry=false) at items/qquickvisualdatamodel.cpp:900 6 0x404e1f7e in QQuickVisualDataModel::item (this=<optimized out>, index=1, asynchronous=<optimized out>) at items/qquickvisualdatamodel.cpp:968 Note: This is with patched 5.0.x, change QQuickVisualDataModel to QQmlDelegateModel for >= 5.1 and line numbers may be a bit off What is happening: QQmlIncubator::forceCompletion is doing while (Loading == status()) { while (Loading == status() && !d->waitingFor.isEmpty()) static_cast<QQmlIncubatorPrivate *>(d->waitingFor.first())->incubate(i); if (Loading == status()) d->incubate(i); } Calling QQmlIncubatorPrivate::incubate on the first item of d->waitingFor Then, that item is getting to QQmlIncubatorPrivate::incubate and happens that progress is QQmlIncubatorPrivate::Completed and waitingFor is not empty, so the only thing that QQmlIncubatorPrivate::incubate ends up doing is calling a few calls over vmeGuard and returning, that way the inner waitingFor items never finishe incubating and you end up in an inifite loop inside while (Loading == status() && !d->waitingFor.isEmpty()) static_cast<QQmlIncubatorPrivate *>(d->waitingFor.first())->incubate(i); This patch basically replaces this loop with a loop that does while (QQmlIncubator::Loading == status && !waitingFor.isEmpty()) static_cast<QQmlIncubatorPrivate *>(waitingFor.first())->forceCompletion(i); This way we make sure we incubate the waitingFor items of our waitingFor items Change-Id: I4298efc7ba9d8af624bb138e64b92a40ed4c4dc9 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix deadlocks in debugger infrastructure on MacKai Koehne2013-10-161-0/+1
| | | | | | | | | Set QReadWriteLocker to recursive. This is needed e.g. to allow _q_changeServiceState to get a read lock when called from inside receiveMessage. Change-Id: I287a7c7f44e94005c0458825f8f6d1877ee914dd Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
* Turn on exact garbage collection by defaultLars Knoll2013-10-161-22/+23
| | | | | | | | | Keep conservative GC as a fallback for testing Enable all tests again that were skipped due to GC issues. Change-Id: I8e0fa728207bdd39a96d0acf95e27841157d8402 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix cleanup handlers on Android when exceptions are thrownSimon Hausmann2013-10-161-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | When an exception is thrown and we traverse a frame that requires only cleanup (i.e. call QV4::Scope::~Scope), control is first transferred to the generated cleanup code. Afterwards the unwinding is resumed (on ARM) by calling __cxa_end_cleanup, which resides in libsupc++ (libgnustl_shared). __cxa_end_cleanup first calls __gnu_end_cleanup and then resumes the process of stack unwinding by calling _Unwind_Resume (per specification). Given the linking situation on Android, this will end up calling _Unwind_Resume inside libgnustl_shared, which sidesteps our statically linked copy of the unwind code in QtQml (libgcc.a). Therefore any further unwinding through JIT generated frames will fail. This patch introduces the same EABI symbol exported in libQt5Qml, which will direct control to the correct JIT aware unwinder. This relies on https://codereview.qt-project.org/#change,68206 in order to ensure that libsupc++.a is gone from all link lines (not needed) and that gnustl_shared is after libQt5Qml. Task-Number: QTBUG-33892 Change-Id: I6ed691db3ceb287475a70b7af8cf3cd7b4ddfdd6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* qqmlimport: avoid deadlock by scoping the usage of QWriteLockerRichard Moe Gustavsen2013-10-161-31/+34
| | | | | | | | | | | | | | | | | Change a9cf828559b00bc70f59250b7f3cf38458774715 refactored QQmlImportDatabase::importPlugin() to be used for both dynamic and static plugin loading. In the process, the scope of a QWriteLocker protecting a call to registerTypes ended up to wide. That caused a deadlock to occur for some static qml applications since the lock remained active during a subsequent call to initializeEngine. So narrow the the scope down to be exactly as it wore before the change. This will remove the deadlock. Change-Id: Ibb15c953c0f693fe75dab24f0093c3bddb3f0cbb Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Initialize VariableLars Knoll2013-10-151-0/+1
| | | | | Change-Id: I60262620eab4b653108f431a4c64a745e4312177 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix GC issues with usage of raw RegExp pointersLars Knoll2013-10-154-7/+10
| | | | | | | Properly protect them through Scoped values. Change-Id: I5a0a1d5580d55ecff493419baa8959751a65f1d3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove debug outputLars Knoll2013-10-151-4/+0
| | | | | | | The output messes up some auto tests Change-Id: I9b9b2b4fdf023bc9953939b814872e860c84f484 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove duplicated forward declarationLars Knoll2013-10-151-1/+0
| | | | | Change-Id: Ie3c4e7d500dc9d327aa081c8f701d88ca6d4ca40 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Don't use constructor function to initialize providersTor Arne Vestbø2013-10-153-4/+9
| | | | | | | It complicated static linking for no good reason. Change-Id: I8eb1548b799128bfab9451963cb80c72239b961c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Doc: Renamed links to "QML Applications".Jerome Pasion2013-10-152-6/+6
| | | | | | | | | | | "QML Application Developer Resources" is too long and the visible text is usually shortened to "QML Applications". The article in qt5/qtdoc changed title to "QML Applications". Change-Id: I301f3b4659bd87631269b912bcc36f6f00fdeb2c Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Make QQmlIncubatorPrivate refcountedLars Knoll2013-10-154-47/+49
| | | | | | | | | This fixes possible bugs and crashes where the incubator could get deleted through GC while constructing the component. Change-Id: Ibe0c5d4e172f0b5505ace0c3ea0369169b8b48a5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Make sure the incubated object survives the statusChanged callLars Knoll2013-10-151-6/+10
| | | | | | | | | | | | QQmlComponent::statusChanged() marked the incubated object as destructable when it was done loading. This implied that any gc call afterwards could clean it up. To fix, push the object on the GC stack so it lives until the method returns. Also renamed the WrapperIncubator to QQmlComponentIncubator. Change-Id: I5a8f478a1fd65ea73ddff310392219709a935a70 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix MSVC2010 warnings.Mitch Curtis2013-10-151-4/+4
| | | | | Change-Id: Id7a2465db4f9b1cd4d3b7ecd61538ee7110893df Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtQuick.Dialogs: on single-window platforms, don't resize the windowShawn Rutledge2013-10-151-1/+4
| | | | | | | | | | | | m_dialogWindow only needs to be set if the dialog has its own window, because otherwise setters such as QQuickAbstractDialog::setHeight (introduced in 37492efee021ccc6e550ecb67a3240b76eb2219e) will result in reshaping the main application window instead of the dialog. Also the window decoration's translucent "veil" should expand to fit the whole application. Change-Id: I16fdb48c54dbc5e758dfec1f18063579ac2bbb05 Reviewed-by: Liang Qi <liang.qi@digia.com>