aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.9' into HEADSimon Hausmann2017-03-2372-661/+991
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp src/qml/jit/qv4assembler.cpp src/qml/jit/qv4assembler_p.h src/qml/jit/qv4isel_masm.cpp src/qml/jsruntime/qv4context.cpp src/qml/jsruntime/qv4context_p.h src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4vme_moth.cpp src/qml/memory/qv4mmdefs_p.h Change-Id: I9966750b7cd9106b78e4c4779f12b95a481cca40
| * Build for for -no-feature-quick-spritePaul Olav Tvete2017-03-226-3/+19
| | | | | | | | | | Change-Id: Iaf26d9cec7f9fa7a5d6d24c729b2dc92737cca1f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| * Build fix for configure -no-openglPaul Olav Tvete2017-03-222-0/+4
| | | | | | | | | | | | | | Change-Id: I21f111a04d9e2ce367d7677dbb48abbd591a4e71 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Joni Poikelin <joni.poikelin@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Codegen: do not assume QStringRef(const QString *) is implicitMarc Mutz2017-03-221-2/+2
| | | | | | | | | | | | | | It won't be for very much longer. Change-Id: I90fae21b621f104053b776296fc9f6525e8baf52 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Speed up source code readingSimon Hausmann2017-03-221-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | Since we always convert the source code of .qml/.js/qmldir files from utf-8 to utf-16, we always end up copying bytes around. That means instead of allocating memory on the C++ heap and copying bytes from kernel space to user space and then a few times through QIODevice buffers until we reach QString::fromUtf8, we might as well mmap() the file directly - if possible. Change-Id: I54c88d4d9f03f9967130d65a7b53cfec93734018 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Avoid an extra stat() on the source .qml file when loading cacheSimon Hausmann2017-03-2210-28/+24
| | | | | | | | | | | | | | | | | | For timestamp comparison it is not necessary to create another QFileInfo() object and call exists() and lastModified(), when we can pass that information through from the type loader. Change-Id: I225cd36e672f1f390bddb4e6ebfafa3fc1269795 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Fix handling of huge memory segmentsLars Knoll2017-03-221-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | Allocating a MemorySegment larger than 4M was not working correctly. We would in this case reserve the right amount of memory, but where not able to use it, leading to an assertion in the HugeItemAllocator. Fix this by ensuring we can properly allocate the memory that was reserved in the Segment. Change-Id: I1e3d2b3beebdde0a509fd123ad2aa8b1bc35a26b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Avoid reading (not parsing) .qml files when using the cacheSimon Hausmann2017-03-212-36/+54
| | | | | | | | | | | | | | | | | | | | By making SourceCodeData copyable we can delay the reading of the source file until we really need to. This also allows persisting the QFileInfo object and therefore having only one stat() call to check if the file exists, what its size is and what the last modification time is. Change-Id: Ic7e4d5f566d870f3b1fa8302227417fa813cb139 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Simplify internal source access APISimon Hausmann2017-03-212-37/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All call sites of QQmlDataBlob::Data immediately convert the data to UTf-8 - for .qml, .js and qmldir files. We can simplify the code by reflecting that in the API and that also opens up the possibility for future optimizations. This means that the bi-pointer has to go, but at the moment the Data object is stack-allocated anyway. Since the "Data" class always represents source code, it is now called SourceCodeData. Change-Id: Icd262ed1e35f9edd64945ba6c16d80f9917eae72 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * V4 Debugger: Encode NaN and +/-Infinity as stringsUlf Hermann2017-03-211-2/+11
| | | | | | | | | | | | | | | | | | | | JSON doesn't have numerical values for those. However, as we give the type of each item in a separate field, we can just use strings here and the result will still not clash with actual strings. Task-number: QTBUG-47880 Change-Id: I85ffa008890a8a9e6894dd3151f7dc6b527ed5e1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Complete transition to standard layout classes for JIT accessSimon Hausmann2017-03-218-20/+21
| | | | | | | | | | | | | | | | | | | | | | | | Move the Runtime function pointer array into EngineBase so that we can eliminate the last use of qOffsetOf. For improved cache locality the memory manager point is now also located in the EngineBase. Change-Id: I0b3cf44c726aa4fb8db1206cc414a56c2f522a84 Task-number: QTBUG-58666 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * QQuickEvents: Fix documentation of types for MouseEvent and WheelEvent x/yRobin Burchell2017-03-201-4/+4
| | | | | | | | | | | | | | | | These types are qreal, not int. Change-Id: I26569c40825ce098ea095b3d9dc9b84eb3870c02 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Protect CallContext member usage against word size differencesSimon Hausmann2017-03-173-5/+21
| | | | | | | | | | | | | | | | | | | | | | Ensure the offsets we're taking from ExecutionContext members in the JIT code generator can be translated from host architecture sizes to target architecture, using assertions and a memory layout that we already have in the dev branch with commit 4de7e48ab160dacc7a09360e80264eac4945a8f4. Change-Id: I1b26ef265234b05a6e5c8688a8aad2f33cd28783 Task-number: QTBUG-58666 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Remove unused macroSimon Hausmann2017-03-171-4/+0
| | | | | | | | | | | | | | This duplicate of qOffsetOf is not used in this file. Change-Id: I8a5ddfe18202501605a06f65c952b58e557dbfac Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Protect ExecutionContext member usage against word size differencesSimon Hausmann2017-03-175-19/+50
| | | | | | | | | | | | | | | | | | | | | | Ensure the offsets we're taking from ExecutionContext members in the JIT code generator can be translated from host architecture sizes to target architecture, using assertions and a memory layout that we already have in the dev branch with commit 4de7e48ab160dacc7a09360e80264eac4945a8f4. Task-number: QTBUG-58666 Change-Id: I26cdbd1ddb995b116624fab16f7caba5d21c13b5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Clean up qOffsetOf usageSimon Hausmann2017-03-171-1/+1
| | | | | | | | | | | | | | | | For offsets from CompiledData::Unit we can use C++11's offsetof macro as the class has standard layout. Change-Id: I7377294679a9cd79c35486fa34355933271f9251 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Protect CompilationUnit member usage against word size differencesSimon Hausmann2017-03-179-20/+21
| | | | | | | | | | | | | | | | | | Currently we only use the runtimeStrings offset in JIT generated code, so move that into a standard layout base class and use that instead. Task-number: QTBUG-58666 Change-Id: Id933ba5df3a6990e89886c2b328e9e814ec5e413 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Protect Lookup usage against cross-compilation word size differencesSimon Hausmann2017-03-172-5/+12
| | | | | | | | | | | | | | | | | | The offsets we're taking from Lookup in the code generator are always zero, but with static assertions we can ensure that they stay that way. Task-number: QTBUG-58666 Change-Id: I91e047d2101ba33e36aaada4a5adc75e20fea7d8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Protect CallData usage against cross-compilation word size differencesSimon Hausmann2017-03-175-19/+25
| | | | | | | | | | | | | | | | | | | | Ensure via static asserts that the members always have the same offsets. Since the class has standard layout, we can also use the C++11 offsetof macro instead of qOffsetOf. Task-number: QTBUG-58666 Change-Id: I7dcecf517c771c7081334cd9d0b7ae133b23b23a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Prepare run-time method calling mechanism for cross-compilationSimon Hausmann2017-03-1712-358/+282
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current way of encoding the offsetof() of the method_ members in QV4::Runtime is not portable when cross-compiling from a 64-bit host (where the offsetof would be calculated on) to a 32-bit target (where the offset would be different), or vice versa. In preparation for making this work, this patch first replaces the direct use of the run-time members with use through a void * and an enum for indexing. This gives us some type-safety in some places and will also allow for a translation of the pointer offset from host pointer indexing to target pointer indexes. As a bonus we can avoid going through the engine->runtime indirection in the interpreter altogether and call the static methods right away. Task-number: QTBUG-58666 Change-Id: I3cd6459523923a9719408317fa729bca19c2bf3c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Fix running of 32-bit JIT code generated on 64-bit hostsSimon Hausmann2017-03-176-19/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The offsets of members encoded in JIT generated code differ between 32-bit and 64-bit architectures. This patch moves some of the ExecutionEngine members into a separate standard-layout EngineBase class (in line with the same class in commit 2a554434a571dcefd26cf10ef8c5ae8b3b7d66db and subject to merging). By ensuring that the members are stored at pointer intervals, we can translate from host pointer size to target when generating the code. Task-number: QTBUG-58666 Change-Id: I1c38a7da059826848b80fd9972ed073214501386 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Flickable: fix doc statement about content anchoringNikita Krupenko2017-03-161-2/+4
| | | | | | | | | | | | Task-number: QTBUG-54101 Change-Id: I3b0a0225efb77003c1c80c1d5b94ab572f3cc785 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Fix QQmlMetaType::prettyTypeName to deal with malformed type namesUlf Hermann2017-03-151-4/+8
| | | | | | | | | | | | | | | | We can have QML type names that are empty or end in '/'. In those cases use the QMetaObject to retrieve a more meaningful type name. Change-Id: I4dd0841de13d4e7524a104f0bbc08cb854484cfe Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * V4 Debugger: Fix typoUlf Hermann2017-03-141-1/+1
| | | | | | | | | | | | | | We want to set redundantRefs if the client states "redundantRefs". Change-Id: I277120e3feedec14492679ad827845732dc36495 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Merge "Merge remote-tracking branch 'origin/5.8' into 5.9" into refs/staging/5.9Liang Qi2017-03-148-5/+33
| |\
| | * Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-03-138-5/+33
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlimport.cpp Change-Id: I26f8d18fe8af664ee8573116f182fe12b71e089a
| | | * QThreadData::threadId is now QAtomicPointer, so relax loads from AcquireThiago Macieira2017-03-062-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | operator T() does loadAcquire, to match std::atomic behavior. We don't need that, so let's use a relaxed load. Side note: why does QtQml need to access the thread ID this way? Couldn't it do object->thread()? This code comes from a pre-5.0 commit 5570040771ec610583473e2d9e8e069474364cf1 ("Permit signals to be emitted in a different thread"). Change-Id: I4139d5f93dcb4b429ae9fffd14a34a84d3255a6f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | | * Fix build with -no-feature-libraryUlf Hermann2017-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The versionUriList() function is unused in this case, and we cannot build the extension plugins test. Change-Id: I6c2ea1c2d078e508b0752efb45f4ccdfdbcbf22e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * Fix build for -no-feature-quick-pathStephan Binner2017-02-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Id57c9bc4421fc252ab02e2a0cfe00d08aef0176d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| | | * Fix build for -no-feature-quick-shadereffectStephan Binner2017-02-275-2/+18
| | | | | | | | | | | | | | | | | | | | Change-Id: I334603209818a8030ddb5b5b316cab596c328bf1 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | | * Add feature.qml-profiler with extended build dependenciesStephan Binner2017-02-241-0/+13
| | | | | | | | | | | | | | | | | | | | Change-Id: If165cea6f176e7a7066f50b73261baf97634a0bb Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * | | QV4DebugService: Reduce unnecessary recursion and redundancyUlf Hermann2017-03-146-53/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Large parts of the protocol are unnecessary. There is no reason to send a separate chunk of "handles" with almost every reply. The refs are given as part of the regular data and if the client wants to find out more, it can do further lookups. Also, it makes no sense to encode the function and script names as objects, as they are in fact not JavaScript objects. Unfortunately these cleanups require some cooperation from the client. Older clients will misbehave if we just drop the redundancy. Therefore, we introduce parameters which the client can explicitly set with the "connect" message. redundantRefs tells the service if redundant references are required, namesAsObjects tells it if script and function names have to be sent as objects/ Once we can require clients that support these options, we can drop the code that generates redundant data. Also, fix tst_qv4debugger::evaluateExpression() to actually check all the expressions evaluated, not only the first and second one. Task-number: QTBUG-42435 Change-Id: If93d2a2b9d0b8035f85dbef871bc1b03f199171d Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | Add features.quick-particlesPaul Olav Tvete2017-03-133-2/+10
| | | | | | | | | | | | | | | | | | | | Change-Id: I78b30d254ed64acadcb2acc278ad1dfde55216ac Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * | | Build fix for -no-feature-quick-pathPaul Olav Tvete2017-03-132-3/+9
| | | | | | | | | | | | | | | | | | | | Change-Id: Ib52d45a12b367fa08982535a69c14881beec597e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * | | Update plugins.qmltypes for 5.9Marco Benelli2017-03-135-53/+197
| |/ / | | | | | | | | | | | | Change-Id: I5e6dbd2012718890f5fcc92beebcd1829dc53a57 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* | | QSGOpenVGLayer: Fix compilationRobin Burchell2017-03-221-0/+1
| | | | | | | | | | | | | | | | | | | | | Amends 48c31733383d14447d1c383cefca9ca40daa6a87. Change-Id: I9b30af689eaa9ca686b8ec2d034866eb4671ec95 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Remove QSGDistanceFieldGlyphCacheManagerRobin Burchell2017-03-2114-180/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | After the previous cleanups, it became clear that this didn't serve much of a purpose, so let's remove it and simplify the implementation as a result. Change-Id: Iae2ff9c46762f0c7bdf4225a2c4df93bc8253902 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | QSGDistanceFieldUtil: Remove a layer of indirectionRobin Burchell2017-03-213-49/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These mysterious setters appear to be unused (and always were, as far as I can see). How useful they are is not entirely clear (as opposed to a patch to the source for instance, and as it's private API anyway, you'd be touching internals to use this. Additionally, removing the indirection makes the code a bit cleaner and more self-contained in my opinion. This removal leaves the value of QSGDistanceFieldGlyphCacheManager in some question to me, given that it's basically a glorified wrapper around QHash. Change-Id: I6d18eb40d8cd00ebe389b4ed53448f3401962ae6 Reviewed-by: Gunnar Sletta <gunnar@crimson.no> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | Expose QQuickItem::size() and document QQuickItem::setSize()Gunnar Sletta2017-03-202-2/+22
| | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtQuick][QQuickItem] Add QQuickItem::size() and document QQuickItem::setSize(). Change-Id: I6f4d531e046758eb062111d656cc2e0be1624da3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | QQuickImageProvider: Improve documentation about cancel() and finished()Robin Burchell2017-03-201-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes it a little more obvious how best to use this. We could do with including some snippets showing how to ideally implement cancel() I think, but this is a good start. Change-Id: I88d63a451239f91aa3619ccb74e306a2052a6e70 Task-number: QTBUG-59485 Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
* | | Document and demo that fboId can be 0Laszlo Agocs2017-03-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...in QQuickWindow::setRenderTarget(). The rendercontrol example is extended with a --onscreen command line argument that can be used to request rendering to the default framebuffer of the window. Change-Id: I7a500d1585dee8334b902fb1dddcb1cb21a2e038 Task-number: QTBUG-59340 Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* | | Use qRadiansToDegrees() more widelyEdward Welbourne2017-03-163-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | It documents the meaning of the computation more clearly. Task-number: QTBUG-58083 Change-Id: Ie2d486d1e1919569de5a1565e783703b9b3bc813 Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* | | qml: Override the new Object::instanceOf hook to allow QML type checkingRobin Burchell2017-03-153-1/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtQml] The instanceof keyword in JavaScript has been extended to work on QML types and instances. This means that you are now able to use it to verify that a var is indeed the type you expect (e.g. someVar instanceof Rectangle). Note that one of the added tests revealed a slight shortcoming in the QML type system (QTBUG-58477). For now, we should keep consistency and work to address the problem universally in the future. Change-Id: I7d9bf9b64cfd037908de1ae51b01065eacb95abe Task-number: QTBUG-24799 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | QSGDistanceFieldGlyphNode: Remove per-node QLinkedList of nodes to deleteRobin Burchell2017-03-154-13/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We avoided deleting these nodes directly due to preprocess, but this is a bit of a hack. QSGRenderer::preprocess already contains some work to allow for modification of nodes at preprocess time, but it didn't allow for detecting dead nodes. By marking a pointer as not to be touched if it is removed during preprocess, we can remove the per-node QLinkedList and delete directly, while at the same time, still not touching deleted nodes later on in preprocess. Change-Id: I99a1ea65d3fe0b73db73e4a1d10d999d56edcdc4 Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* | | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-03-1426-98/+267
|\| | | | | | | | | | | Change-Id: I0ec164ce6e8099e6e4d6b40a3c7340737473ef4b
| * | Build fix for -no-feature-quick-shadereffectPaul Olav Tvete2017-03-106-3/+8
| | | | | | | | | | | | | | | Change-Id: Ie1f601c6ae4c6c5d8d23b14a6670979d9c24e209 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | QtQuick scene graph: fix text native renderingOleg Yadrov2017-03-092-0/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only 65536 vertices (65536 / 4 = 16384 characters) can be drawn in one draw call. This is why QSGDistanceFieldGlyphNode (renderType: Text.QtRendering) creates subnodes if number of characters exceeds that limit. QSGDefaultGlyphNode (renderType: Text.NativeRendering) missed that logic for some reason. Task-number: QTBUG-58852 Change-Id: I88b3fcdb8e56bc92622d3347cd638634d43df138 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * | Fix relocation related errors when loading AOT cachesSimon Hausmann2017-03-093-7/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original directory of the source file the cache was created from - when generating ahead of time - is unlikely going to be identical to the final location for example on a deployed device. Therefore when generating caches ahead of time, don't store the source path, don't attempt to verify it when loading and don't try to save the cache file at run-time again. We still need set the sourceFileIndex at load-time though, in order to make relative path url resolution work (for example source: "my.png" in an Image element). Change-Id: I3d6952f5d0a165cfa2cb400191a9f6ffe6be69f4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * | Fix time stamp related errors when loading AOT cachesSimon Hausmann2017-03-092-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cache files created ahead of time do not require a timestamp match towards the source file. This is because we cannot guarantee that all transport mechanism from source to deployment preserve the timestamp at the required resolution (if at all) and the source may also not be present at all (obfuscated deployment chosen). For cache files created at run-time however we'll continue to require time stamp verification. Change-Id: Ia7cdf3d063edd5bb1e6985089f1a666c970a0bd0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * | Fix copied QDragMoveEvent drop action to propagate to original eventAlexandru Croitor2017-03-071-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Trying to set the drop action and the accepted state in a overridden dragMoveEvent handler, does not get propagated to the original QDragMoveEvent, because the event passed to the handler is a copy. This does not allow canceling the drop action in the move handler, or change the proposed action to a different one. Changing these values in the move handler is important to allow modifying the cursor when moving / hovering above a possible drop item, depending on user conditions. Fix consists in copying the drop action and accepted values to the original event, as well as removing the hard-coded setAccepted (true) call. Task-number: QTBUG-58260 Change-Id: I7a4bd4e68ee1023a36a63d3e835c282077e4187c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>