Lars Knoll [Sat, 5 Apr 2014 18:23:20 +0000 (20:23 +0200)]
Move Managed data into it's own subclass
This prepares for moving over to a d pointer scheme,
where Managed subclasses don't hold any data directly. This
is required to be able to move over to a modern GC.
Change-Id: I3f59633ac07a7da461bd2d4f0f9f3a8e3b0baf02
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Lars Knoll [Fri, 4 Apr 2014 10:22:00 +0000 (12:22 +0200)]
Get rid of different macros for vtable specializations
Detect existence of a a vtable entry at compile time.
Change-Id: Ieed5d34b063184bc4435b22c6685ac0e3fabf493
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Lars Knoll [Thu, 3 Apr 2014 11:08:25 +0000 (13:08 +0200)]
Use Members for storing the bound arguments in BoundFunction
Cleans up the code, and allows us to remove the destructor
for bound function objects.
Change-Id: Id32ac69171f7975ec7679d07d25c0eb6b4ca6fb5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Lars Knoll [Thu, 3 Apr 2014 11:00:49 +0000 (13:00 +0200)]
Avoid calling destroy() on most objects
The method is now optional, and we can simply avoid
calling it if all members an object has are themselves
garbage collected.
Change-Id: If560fce051908bcc10409ead1a7d8a5bd5fa71d2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Simon Hausmann [Fri, 13 Jun 2014 13:11:14 +0000 (15:11 +0200)]
Fix Scoped<T> constructors/assignment operators that take a T*
When assigning a null T*, we would not always set m correctly to zero but to
undefinedValue() instead.
Change-Id: Ia2a439f4a9946664d9835230869161a8499b1659
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Eskil Abrahamsen Blomfeldt [Mon, 21 Jul 2014 14:06:57 +0000 (16:06 +0200)]
Remove XFAILs from tst_QQuickText
The bug for these has been fixed.
Task-number: QTBUG-39961
Change-Id: I306dff766f048faf527a18f21b69996641fd8b79
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Andrew den Exter [Fri, 7 Mar 2014 07:54:20 +0000 (17:54 +1000)]
Don't allow a filtering item to block other filtering items.
With delayed press it's possible for a filtering item to not accept a press
on the first go around but to later steal mouse grab and accept future events.
This means outer items which also filter will have received the mouse press,
but don't receive release events leading to phantom long presses or inadvertent
drags.
Task-number: QTBUG-37316
Change-Id: I2ff18df2a019f8d3a5e81a0adc2c5b5994799862
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Holger Hans Peter Freyther [Sun, 20 Jul 2014 14:42:59 +0000 (16:42 +0200)]
qml: Make ownership of CompiledUnit more clear
The coverity scan utility didn't understand the code flow and assumed
the compiledData would be leaked. Use a QScopedPointer and have the
::backendCompileStep() forward the ownership. From what I see the code
has not leaked memory.
Fixes: CID 10605, CID 10607
Change-Id: I7759f681871bbe12e2aa320a5f39c47c70f4e4e0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Holger Hans Peter Freyther [Sun, 20 Jul 2014 14:46:28 +0000 (16:46 +0200)]
qml: Fix potential memory leak in the file selector
The myInstance doesn't seem to be part of a QObject parent/child
relationship and Coverity complained about it. Use a QScopedPointer
to make sure the data will be deleted.
Fixes: CID 10606
Change-Id: I30848ab4d1e621d82281aaa7d6f84e0c2cce4084
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Holger Hans Peter Freyther [Sun, 15 Jun 2014 06:12:17 +0000 (08:12 +0200)]
v4: Delay creating the ScopedValue/ScopedProperty in objectLiteral
Creating a ScopedValue/ScopedProperty is not free. It will use the
ExecutionEngine directly to reserve memory from the JS Stack. In
tests/manual/v4/v8-bench.js and bench-allocate-nonretained.js a lot
of objects are created and the arrayValueCount and the
arrayGetterSetterCount are 0. We can delay the creation for a small
gain.
When generating the code we already know the various sizes and
could already call specialized versions of the creation code. The
gain is not so clear though.
Change-Id: Ic99b241f5506457e57611ad4eba143c56be1f657
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Holger Hans Peter Freyther [Sun, 15 Jun 2014 06:05:03 +0000 (08:05 +0200)]
v4: Remove dead code ScriptFunction constructor
Creating a Scope/ScopedValue will immediately access ExecutionEngine
of the ExecutionContext so the null check is not needed here. Move
the v4 variable into the scope that is using it.
Change-Id: I9189ee9d1a63997119e49c12182dffefadc916f1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Holger Hans Peter Freyther [Fri, 13 Jun 2014 18:51:00 +0000 (20:51 +0200)]
v4: Manually inline the access to the execution engine
Executing an allocation heavy testcase of JavaScriptCore on my
i7 Sandy Bridge notebook 6.85% is spent inside the ::engine()
call as gcc 4.8.2 of Debian didn't inline the call. Inline the
call sites by hand. I removed the protected ::engine() as it is
now unused.
$ time qmljs JavaScriptCore/tests/perf/bench-allocate-nonretained.js
before (best run of three)
real 0m2.234s
user 0m2.228s
sys 0m0.008s
after (worse run of three)
real 0m2.097s
user 0m2.088s
sys 0m0.008s
Change-Id: I20b73b3b3dac630eb1d5e7d66bcb50c839630567
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Andrew den Exter [Thu, 17 Jul 2014 07:10:24 +0000 (17:10 +1000)]
Remove QWidget include from QQmlProperty test.
Change-Id: I1a23816b65273c920b319836f015f6746aa3ad06
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Mitch Curtis [Thu, 10 Jul 2014 15:16:09 +0000 (17:16 +0200)]
Add QQuickFontMetrics.
This will be a private C++ type that is exposed to QtQuick 2.4 as
FontMetrics.
[ChangeLog][QtQuick] Added QQuickFontMetrics, which provides a subset
of QFontMetricsF's API.
Change-Id: Iac31e5a555bd8f1dc0904b8de0408e5f1a402b25
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Martin Jones [Fri, 11 Jul 2014 04:10:49 +0000 (14:10 +1000)]
Add containsPress property to MouseArea
It is very common to use pressed and containsMouse properties
together to highlight a pressed item, e.g.
property bool highlighted: pressed && containsMouse
The containsPress property allows simplification and optimization of
user code.
[ChangeLog][QtQuick] Add containsPress property to MouseArea
Task-number: QTBUG-40130
Change-Id: Ie286d431154eb37a99e57e4cf881d68d7cbbe31d
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Frederik Gladhorn [Thu, 10 Jul 2014 08:12:12 +0000 (10:12 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev
Change-Id: Iba61035910c46627e5e1c3824757da7b3d573657
J-P Nurmi [Wed, 9 Jul 2014 11:22:30 +0000 (13:22 +0200)]
Docs: fix "classname" indentation in the qmldir specs
Change-Id: Idaaaaa77654c2cd3abb56d0bfd3ed7bac7281632
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Frederik Gladhorn [Wed, 9 Jul 2014 08:53:06 +0000 (10:53 +0200)]
Fix role for generic Accessible items
Currently QQuickItem specifies Pane as default role which at least on
linux leads to big confusion. Instead use QAccessible::Client which is
in line with QWidget.
Change-Id: I06b287843a0bf1546f16e67c53ea5d2321ba214b
Task-number: QTBUG-40136
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Laszlo Agocs [Tue, 8 Jul 2014 15:53:11 +0000 (17:53 +0200)]
Change default to QQuickWidget in the comparison example
This way the example will run on embedded devices (eglfs)out of the
box and will only abort when switching to QQuickView.
Change-Id: I07855ac1a9d112f868adf6fcab8db888ba0888ec
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Friedemann Kleint [Mon, 7 Jul 2014 14:57:20 +0000 (16:57 +0200)]
Call glBindTexture() via QOpenGLFunctions in qsg_safeguard_texture().
Fix linking for dynamic OpenGL builds.
Change-Id: I82e6597d2cb9a74707e3f1e9fce245cce1a5d72b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Niels Weber [Mon, 7 Jul 2014 10:19:25 +0000 (12:19 +0200)]
Calqlatr demo: Remove unused files
There were a few images etc that were never used. Remove them.
Change-Id: I606241903cf098cb495aa06ac4c595fb175cd9fc
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Dmitry Shachnev [Thu, 12 Jun 2014 15:43:56 +0000 (19:43 +0400)]
Make sure JIT architectures lists are in sync
We have two lists: in qv4global_p.h and qv4targetplatform_p.h. This commit blacklists
OSes on x86 and x86_64 where JIT is not supported, improves support for FreeBSD and
adds cross-references between these two files.
Change-Id: Id3715a2ab717186e510a54e5a548dfa22120cd87
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Topi Reinio [Fri, 27 Jun 2014 08:00:24 +0000 (10:00 +0200)]
Remove usage of external dependencies from the RSS News demo
Examples in qtdeclarative shouldn't depend on Qt Quick Controls,
Layouts, or add on modules like Qt Graphical Effects.
Change-Id: Ic069ed3223a4cfebde5263e846ae394aebed0b33
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Niels Weber <niels.weber@digia.com>
Laszlo Agocs [Tue, 1 Jul 2014 09:36:33 +0000 (11:36 +0200)]
Fix segfault on certain resize patterns in QQuickWidget
Resizing to an empty size followed by another resize leads to
sync() without having the context and the render control intialized.
This is wrong.
Task-number: QTBUG-39858
Change-Id: I5908723272165a656d192644cceb16ed253e6d3b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Mitch Curtis [Wed, 2 Jul 2014 07:53:00 +0000 (09:53 +0200)]
Add findChild to TestCase.
This is useful for auto tests where it's necessary to have access to
dynamically created child items. For example:
property Component threeItemDelegate: Text {
objectName: "delegate" + styleData.index
text: styleData.value
}
...
function test_stuff() {
...
var delegate0 = findChild(item, "delegate0");
// check delegate0 for some condition...
}
[ChangeLog][QtTest][TestCase] Added findChild function to TestCase.
Change-Id: I04a8b07c9904768c07ec12f4b03f1afb1989e054
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Gunnar Sletta [Thu, 3 Jul 2014 10:15:46 +0000 (12:15 +0200)]
Verbose fatal instead of crash when the scene graph state is invalid.
Change-Id: I9a55bcbf9e94084c0cadac561e4707d47f5f8744
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Erik Verbruggen [Fri, 21 Mar 2014 10:22:41 +0000 (11:22 +0100)]
V4 IR: (natural) loop detection.
We perform loop detection to be able to assign to each block its loop,
an chain them up from inner loop to outer loop. The new algorithm works
on each basic block just once, and looks at a basic block just the
number of connections it has. As it relies on the dominator tree it is
more robust on actually finding al looping constructs and only those
rather than relying on the statements used. It assumes that a basic
block is analyzed before the one that dominate it (to guarantee finding
outer loop headers before inner loop headers), so blocks are ordered to
work on them in a way that guarantees that, using dominator tree depth,
that is trivially available.
Loop detection allows us to then schedule the loop body before the part
after the loop (the header dominates both so just domination cannot
choose between both), and can be used to optimize loops (either
unrolling the first iteration or hoisting constant parts out of it).
It also helps with generated JavaScript code: in order to simulate gotos
or other unconditional branches, nested labeled do-while(false) loops
are often used in combination with break/continue to "jump" between
"loops".
Change-Id: Idfcc74589e057b191f74880ffd309d0a9c301811
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Gunnar Sletta [Tue, 1 Jul 2014 12:48:07 +0000 (14:48 +0200)]
Avoid race condition in QQmlEngine on shutdown.
The QQmlTypeLoader was deleted (and its thread shut down) when
the QQmlEnginePrivate was destroyed. However, the QQmlTypeLoader
runs a thread which would happiliy make calls on the engine and
its managed data. Fix this by stopping the QQmlTypeLoader's
thread right away in QQmlEngine.
Task-number: QTBUG-39905
Change-Id: Ida8e95d083f79237c74b036fd3521133a9fa4ac7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Frederik Gladhorn [Wed, 22 Jan 2014 15:18:47 +0000 (16:18 +0100)]
Remove old state logic for ComboBox
The editable state is now part of the Accessible attached property, so
this hack is no longer needed.
Change-Id: Id17ec508015a8b9663804123e544f6c71ff38177
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Andrew den Exter [Fri, 27 Jun 2014 02:49:07 +0000 (12:49 +1000)]
Fix crash on QQmlEngine destruction.
QQmlTypeLoader references QQmlImportDatabase in a thread, so change the
declaration order so QQmlTypeLoader is destroyed and its thread stopped
before QQmlImportDatabase is destroyed.
Change-Id: Idfa511cf9625f893c4398f419a74d869169b478d
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Sérgio Martins [Thu, 3 Jul 2014 12:44:41 +0000 (13:44 +0100)]
Don't dereference null QQuickWindowPrivate.
windowDestroyed() triggers a sendPostedEvent(DeferredDelete) to
cleanup GL resources. If the window was deleted through deleteLater()
it will also be deleted at this point.
Change-Id: I3b0cc0f36c4a543c5fbaa4af107dc4aa0c8b6725
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Gunnar Sletta [Thu, 3 Jul 2014 08:24:12 +0000 (10:24 +0200)]
Enable QSG_RUNTIME_DESCRIPTION by default for debug builds.
This can be quite helpful when doing scene graph debugging
with QSG_RENDERER_DEBUG=dump or using qDebug() on nodes
in general.
Change-Id: I6328d3f2a0fad87161c386bed14408598c986dcb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Friedemann Kleint [Thu, 3 Jul 2014 09:22:57 +0000 (11:22 +0200)]
Profiler: Fix MSVC warning about signed integers.
src\qml\jsruntime\qv4profiling_p.h(144) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
Introduced by
ac56e7cda724aa7463ef6ffe5f0e93bd3208cb51 .
Change-Id: Ib77234d663bfafd9d55ae2dd551b0aabd6561d6d
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Morten Johan Sørvig [Mon, 19 May 2014 12:42:14 +0000 (14:42 +0200)]
Add opt-out environment variable for @2x images
There are cases where @2x images are in use but
where you don't want the associated behavior:
- You are implementing an image editor
- You are inheriting a resource set which has @2x
images, but don't want that behavior with Qt.
Add support for disabling @2x behavior with QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING.
Change-Id: Ia570dfe556e0571a19e5ebdc626c4a7e626721b9
Task-id: QTBUG-38485
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Nico Vertriest [Tue, 8 Apr 2014 11:24:42 +0000 (13:24 +0200)]
Doc: correct link/compilation errors in Qt Declarative
Task-number: QTBUG-34749
Change-Id: I507d54b0568d77c6099a0bd99f5c369b8667032a
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Frederik Gladhorn [Wed, 2 Jul 2014 12:52:52 +0000 (14:52 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev
Allan Sandfeld Jensen [Tue, 17 Jun 2014 12:23:15 +0000 (14:23 +0200)]
Use qNextPowerOfTwo instead of reimplementing it
This patch uses the new shared qNextPowerOfTwo implementation introduced in qtbase.
Change-Id: I831d056f584897a99df2ceb8c1d840764464e344
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Martin Jones [Wed, 2 Jul 2014 02:12:05 +0000 (02:12 +0000)]
Fix crash in Flickable with pressDelay.
Looks like this was exposed by the touch event compression change.
Task-number: QTBUG-40000
Change-Id: I037c848e0c5d766857dff3162c244213aba847da
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Ulf Hermann [Tue, 1 Jul 2014 14:23:04 +0000 (16:23 +0200)]
Fix output of swap times for basic render loop
The swap time was treated as absolute by the qCDebug output, but was
actually relative.
Change-Id: Ia1539b8f8305ca37430022803419eb12a05934cb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Ulf Hermann [Mon, 30 Jun 2014 12:01:38 +0000 (14:01 +0200)]
Properly collect polish timings from all render loops
Previously the polish timings were collected incorrectly from the
windows render loop and not at all from the basic render loop. By
collecting the polish times at the right places we can get rid of
the 2-argument profile macro as well.
Task-number: QTBUG-39876
Change-Id: I0b4aaf87162c652b8dcea6cd4f54db053f8312fe
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Ulf Hermann [Mon, 30 Jun 2014 12:28:31 +0000 (14:28 +0200)]
Use the same length for all scene graph numeric data
Having one int between all the qint64 is really not worth it. Also, the
clients were not picking that up correctly.
Change-Id: I9a9bc1c26c7518e1b666b788fa41f83c714a6db5
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Frederik Gladhorn [Wed, 2 Jul 2014 07:58:13 +0000 (09:58 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
.qmake.conf
examples/quick/scenegraph/openglunderqml/squircle.h
src/quick/doc/src/qmltypereference.qdoc
src/quick/scenegraph/qsgthreadedrenderloop.cpp
Change-Id: Ife4f4b897044a7ffcd0710493c6aed1d87cf1ef9
Shawn Rutledge [Fri, 27 Jun 2014 10:59:14 +0000 (12:59 +0200)]
Tools and examples: consistently use organization name QtProject
This affects the location of the QSettings files or registry entries.
Other parts of Qt are using this organization name so it's good to
have all the settings in the same place.
[ChangeLog][QtQuick] tools and examples consistently use the
QtProject organization name
Change-Id: I1fae4eaed0248411fe95dda9572d38006648b162
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
J-P Nurmi [Fri, 20 Jun 2014 11:38:46 +0000 (13:38 +0200)]
QQuickSystemPalette: use QGuiApplication::paletteChanged()
Use the newly introduced signal instead of filtering events
of the whole application.
Change-Id: I876268145485ba07316e916d26a93d53c464ef3a
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Allan Sandfeld Jensen [Tue, 1 Jul 2014 09:57:36 +0000 (11:57 +0200)]
Remove redundant sse2 math flags
Qtbase already enables sse2 math by default now. This version is no
longer needed and may actually hurt performance by triggering scheduling
for pentium4.
Change-Id: Ib3b6781fb0b92c1351344cc2d2f13101fa2b632b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Laszlo Agocs [Fri, 27 Jun 2014 13:14:33 +0000 (15:14 +0200)]
Skip rssnews demo if xmlpatterns is not present
Otherwise builds without the QtXmlPatterns module will fail.
Change-Id: I11d0b84653f8d59787b09cd9c12977d18be92729
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Laszlo Agocs [Wed, 19 Mar 2014 08:21:11 +0000 (09:21 +0100)]
Add grabFramebuffer() to QQuickWidget and use it in the autotest
This introduces the need for a grab function in QQuickWidget.
The render control has one already so there is no reason for not exposing
this in QQuickWidget too.
This also means that a relatively meaningful autotest can be now be added.
[ChangeLog][QtQuick] Added QQuickWidget::grabFramebuffer() for capturing the content into a QImage.
Task-number: QTBUG-37589
Change-Id: I5ca8192c0ef8dab4f076a4db27b64aebe3359bb8
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Laszlo Agocs [Thu, 26 Jun 2014 13:08:47 +0000 (15:08 +0200)]
Avoid direct GL calls in Qt Quick examples and tests
Change-Id: I204a5513708aeff5cae00d06d4f0c27c20a13ace
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Laszlo Agocs [Fri, 27 Jun 2014 11:28:34 +0000 (13:28 +0200)]
Docs: clarify the relation between default alpha and format.
Reformat the new API docs the get rid of the unnecessary stars.
And fix some typos.
Change-Id: I09dcb3bea55cfd7b9209a4e0ad43e28a47fd1fa4
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Gunnar Sletta [Thu, 26 Jun 2014 18:48:47 +0000 (20:48 +0200)]
Use categorized logging for all things scenegraph.
Change-Id: I865ee838b0fd6c257b7189f24130012b98206fd1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Gunnar Sletta [Fri, 27 Jun 2014 05:35:18 +0000 (07:35 +0200)]
Avoid deadlock during window hiding.
Because we do event processing in polishAndSync, hide() or
handleObscurity() might have been called by the time we
continue execution. We already handled that windowDestroyed()
was called.
Change-Id: If45bcf3fa18cef1a60ca31bc26d3830045f581d9
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Gunnar Sletta [Tue, 1 Jul 2014 10:21:01 +0000 (12:21 +0200)]
Mark failing testcases with QEXPECT_FAIL for windows
Task-number: QTBUG-39961
Change-Id: I981159921b38ac2af37e8a6d715f0d67d6f01da8
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Frederik Gladhorn [Mon, 30 Jun 2014 12:32:51 +0000 (14:32 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3.1' into 5.3" into refs/staging/5.3
Shawn Rutledge [Tue, 17 Sep 2013 13:05:04 +0000 (15:05 +0200)]
Avoid double deletion of QQuickWindow
It's uncertain why
4fc0df58b8458052a818e3e970a97457882808e6 added
the call to sendPostedEvents(0, QEvent::DeferredDelete) but now we can
see that it easily results in the destructor calling itself, and
therefore double-deleting its own d_ptr. removePostedEvents seems
safer to ensure that the window cannot be doubly deleted, in spite
of the qdoc warning that "You should never need to call this function."
Task-number: QTBUG-33436
Change-Id: I4873ebe179dde551407eba1f6baac5f03ca7f177
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Robin KAY [Tue, 24 Jun 2014 22:35:22 +0000 (23:35 +0100)]
Fix intermittent crash with older MinGW releases
An alternate code-path was previously added to work around a bad
signature for the SHParseDisplayName() function in older and non-w64
versions of the MinGW headers. This code-path incorrectly passed a
single rather double indirect pointer to the third argument of that
function causing it to produce corrupt data and subsequently crash.
This change modifies the code to instead cast a pointer of the correct
type to the incorrect type expected by the headers.
Task-number: QTBUG-39793
Change-Id: I4d65dea4fc38d7e885468cd23434d8570c311fc2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Leena Miettinen [Fri, 30 May 2014 16:01:56 +0000 (18:01 +0200)]
Doc: Add documentation for the Maroon in Trouble example
Change-Id: I8b272894ef6374aeb6ec09275d7ce96d16a6be0f
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
J-P Nurmi [Fri, 20 Jun 2014 09:26:54 +0000 (11:26 +0200)]
QQuickApplication: do not filter LayoutDirectionChange events
The newly introduced QGuiApplication::layoutDirectionChanged() is much
cheaper to use than filtering events of the application object.
Change-Id: I356c94cc6bea806bf3644c31c2610501d90f6c35
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Oleg Shparber [Wed, 25 Jun 2014 00:03:08 +0000 (17:03 -0700)]
Allow integer values to be assigned QList<qreal> properties
Before this patch it was not possible to assign an integer value to
QList<qreal> property, while it worked for non-list properties.
Change-Id: Iab00288f7d78f4f76056ab4291700d7f51626de4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Frederik Gladhorn [Wed, 25 Jun 2014 08:25:44 +0000 (10:25 +0200)]
Merge remote-tracking branch 'origin/5.3.1' into 5.3
Change-Id: Ic4418ade05ff7d89cbb375a25d9fd80353a2317a
Frederik Gladhorn [Wed, 25 Jun 2014 08:22:38 +0000 (10:22 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: Iafccb173a9b5569bc9fd1022abb210955519fc61
Gunnar Sletta [Tue, 24 Jun 2014 10:21:46 +0000 (12:21 +0200)]
Warn at runtime about badly threaded calls to QQuickItem::update()
Change-Id: Ia3fc01f11ff28441d4ef095b520297a73e3399d6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Simon Hausmann [Tue, 24 Jun 2014 14:09:29 +0000 (16:09 +0200)]
Fix crash in QQmlDelegateModel during destruction phase
It has been reported multiple times (with different back traces) that
the QQmlDelegateModel tries to access a dangling QQmlContext pointer.
The scenarios for reaching this point differ slightly, one such scenario
is very late model activity during the scene destruction. The provided
test-case simulates that and the provided patch guards the QQmlContext
in a QPointer.
Task-number: QTBUG-39780
Change-Id: I594ee4918cd1b78c5db5c164314e85e9eea99fbd
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Simon Hausmann [Tue, 24 Jun 2014 10:05:35 +0000 (12:05 +0200)]
Exclude private methods and QObject::deleteLater from enumerable properties
This is a regression from Qt 5.1/5.0 introduced with 5.2. Private slots/methods
such as QObject::_q_reRegisterTimers() as well as QObject::deleteLater() are
not suitable for calls from JavaScript. deleteLater() in particular is covered
by the destroy() replacement slot.
Task-number: QTBUG-39744
Change-Id: I9b25f3c0d4095ba8e2e8e5ee47e37903b5def1f9
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Laszlo Agocs [Mon, 31 Mar 2014 13:59:18 +0000 (15:59 +0200)]
Make QQuickRenderControl public
QQuickRenderControl allows rendering Qt Quick 2 scenes into framebuffer
objects which can then be used in arbitrary ways in Qt-based or 3rd party
OpenGL renderers.
[ChangeLog][QtQuick] Introduced QQuickRenderControl as a public API.
Task-number: QTBUG-37944
Change-Id: I84262243b261b35cefdf67ec6bba8127a0f29275
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Erik Verbruggen [Fri, 23 May 2014 13:52:08 +0000 (15:52 +0200)]
V4 JIT: add IR printer that uses platform register names.
After running register allocation, the IR is printed one last time (when
the environment variable QV4_SHOW_IR is set). This will now use the
platform defined register names, e.g. "ebx" or "d2".
Change-Id: I2f2f4536d1de940a69690056e5165d38fa7910bb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Fri, 20 Jun 2014 15:26:57 +0000 (17:26 +0200)]
Fix crash when deleting component in Component.onComplete through loader
This is a regression introduced with Qt 5.3.0. The recursion watcher code that
is supposed to handle the test case of QTBUG-39775 can detect the recursion
into the object creator. However the boolean that indicates the recursion is a
member of a structure that's deleted afterwards. To avoid access to deleted
memory, this patch simply reference counts data structure shared between the
creators and also wraps the recursion watcher into a convenience class that
also increases/decreases the reference count accordingly.
Change-Id: I8d2e3e200ab1295e89d951e09f187d382a056d5a
Task-number: QTBUG-39775
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
J-P Nurmi [Fri, 20 Jun 2014 09:22:26 +0000 (11:22 +0200)]
QQuickApplication: do not filter ApplicationActive/Inactive events
Listening to QGuiApplication::applicationStateChanged() is enough, no
need to do expensive event filtering for listening to application state
changes.
Change-Id: Iba71bc8cefec236f2f7e2e25c57c5c6b9c9fb1ea
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Simon Hausmann [Sat, 21 Jun 2014 08:56:00 +0000 (10:56 +0200)]
Fix memory leak in QQmlComponent::createObject
Regression introduced with 5.3.0. Prevent the leak of the object creator
on repeated createObject calls by using a scoped pointer.
Change-Id: Ib4fe7c9c6926c2390f7ae78f3287bb7da5f60527
Task-number: QTBUG-39742
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Samuel Gaist [Tue, 3 Jun 2014 20:44:25 +0000 (22:44 +0200)]
Update QtQuick import value to 2.3
The current documentation uses import QtQuick 2.2 which is wrong since
there are new APIs like mipmap for the QML Image element.
Task-number: QTBUG-39302
Change-Id: I3cc3a1522efd85090c3b4011429fa16b95e79435
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Gunnar Sletta [Mon, 9 Jun 2014 09:41:03 +0000 (11:41 +0200)]
Make sure program is bound before calling initialize().
Some implementations will use the initialization to set
constant uniforms like texture locations, so bind the
program before so this will work.
Task-number: QTBUG-39472
Change-Id: I677c5aeefe68535bd4805e83b93308d0bd090030
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Gunnar Sletta [Thu, 5 Jun 2014 05:11:54 +0000 (07:11 +0200)]
Set locked state while locking for grab.
Change-Id: If4b8fa77e6e3a288487a011e83791ad6a189675c
Reviewed-by: Manish Sharma <83.manish@gmail.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Albert Astals Cid [Tue, 17 Jun 2014 11:10:35 +0000 (13:10 +0200)]
QQmlObjectCreator: Clear sharedState componentAttached in destruction/clear
Fixes crash when delegate is being deleted while not totally instantiated
Valgrind trace:
==15748== Invalid write of size 8
==15748== at 0x57A02DB: QQmlComponentAttached::~QQmlComponentAttached() (qqmlcomponent.cpp:985)
==15748== by 0x57A0318: QQmlComponentAttached::~QQmlComponentAttached() (qqmlcomponent.cpp:989)
==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106)
==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748== by 0x5D34655: QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (qqmlprivate.h:106)
==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106)
==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748== by 0x5D348A5: QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (qqmlprivate.h:106)
==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748== by 0x5D34655: QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (qqmlprivate.h:106)
==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106)
==15748== by 0x6689607: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x5D1B012: QQuickItem::event(QEvent*) (qquickitem.cpp:7114)
==15748== by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x665B826: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66B1242: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748== by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748== by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748== by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x40711B: startShell(int, char const**, void*) (main.cpp:171)
==15748== by 0x407A74: main (main.cpp:227)
==15748== Address 0x1be83870 is 64 bytes inside a block of size 112 free'd
==15748== at 0x4C2C2BC: operator delete(void*) (vg_replace_malloc.c:503)
==15748== by 0x5815FB0: QQmlObjectCreator::~QQmlObjectCreator() (qqmlobjectcreator.cpp:156)
==15748== by 0x57A52AA: QQmlIncubatorPrivate::clear() (qscopedpointer.h:62)
==15748== by 0x57A53C6: QQmlIncubator::clear() (qqmlincubator.cpp:577)
==15748== by 0x5DCEA20: QQuickLoader::setActive(bool) (qquickloader.cpp:350)
==15748== by 0x5DCF6D2: QQuickLoader::qt_metacall(QMetaObject::Call, int, void**) (moc_qquickloader_p.cpp:277)
==15748== by 0x579DC66: QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1322)
==15748== by 0x579E76E: QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1246)
==15748== by 0x579F2F9: QQmlPropertyPrivate::writeBinding(QObject*, QQmlPropertyData const&, QQmlContextData*, QQmlJavaScriptExpression*, QV4::ValueRef, bool, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1578)
==15748== by 0x580CF69: QQmlBinding::update(QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlbinding.cpp:266)
==15748== by 0x580D5BD: QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) (qqmlbinding_p.h:105)
==15748== by 0x57E6156: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:81)
==15748== by 0x57E6130: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:76)
==15748== by 0x57E6130: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:76)
==15748== by 0x5788FA3: QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) (qqmlengine.cpp:721)
==15748== by 0x6688232: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x57882A7: QQmlData::destroyed(QObject*) (qqmlengine.cpp:1658)
==15748== by 0x668FD7D: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x55E8B64: QQmlDMAbstractItemModelData::~QQmlDMAbstractItemModelData() (qqmladaptormodel.cpp:95)
==15748== by 0x58643DC: QQmlDelegateModelPrivate::release(QObject*) (qqmldelegatemodel.cpp:520)
==15748== by 0x586440C: QQmlDelegateModel::release(QObject*) (qqmldelegatemodel.cpp:536)
==15748== by 0x5DFED4F: QQuickItemViewPrivate::releaseItem(FxViewItem*) (qquickitemview.cpp:2349)
==15748== by 0x5DBAB94: QQuickGridViewPrivate::addVisibleItems(double, double, double, double, bool) (qquickgridview.cpp:497)
==15748== by 0x5DFC94E: QQuickItemViewPrivate::refill(double, double) (qquickitemview.cpp:1751)
==15748== by 0x5DFF26A: QQuickItemViewPrivate::layout() (qquickitemview.cpp:1859)
==15748== by 0x5D275F7: QQuickWindowPrivate::polishItems() (qquickwindow.cpp:271)
==15748== by 0x5D02B7D: QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*) (qsgthreadedrenderloop.cpp:1150)
==15748== by 0x5D03167: QSGThreadedRenderLoop::event(QEvent*) (qsgthreadedrenderloop.cpp:1235)
==15748== by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66B00CC: QTimerInfoList::activateTimers() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66B03F0: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748== by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748== by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748== by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748== by 0x40711B: startShell(int, char const**, void*) (main.cpp:171)
==15748== by 0x407A74: main (main.cpp:227)
Change-Id: I2c7d38fa5a2566520173bff7ad4e5f9c966d083e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Albert Astals Cid [Mon, 16 Jun 2014 14:51:17 +0000 (16:51 +0200)]
Initialize velocity
Fixes valgrind warning
==21054== Conditional jump or move depends on uninitialised value(s)
==21054== at 0x5DAE6D4: QQuickListView::viewportMoved(QFlags<Qt::Orientation>) (qquicklistview.cpp:2789)
==21054== by 0x5D9ED76: QQuickFlickablePrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquickflickable.cpp:296)
==21054== by 0x5DFC438: QQuickItemViewPrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquickitemview.cpp:1158)
==21054== by 0x5DAC6A2: QQuickListViewPrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquicklistview.cpp:1369)
==21054== by 0x5D0D5F2: QQuickItem::geometryChanged(QRectF const&, QRectF const&) (qquickitem.cpp:3365)
==21054== by 0x5D11822: QQuickItem::setY(double) (qquickitem.cpp:5858)
==21054== by 0x5C84FED: QQuickTimeLinePrivate::advance(int) (qquicktimeline.cpp:826)
==21054== by 0x5C85155: QQuickTimeLine::updateCurrentTime(int) (qquicktimeline.cpp:702)
==21054== by 0x58576FA: QAbstractAnimationJob::setCurrentTime(int) (qabstractanimationjob.cpp:497)
==21054== by 0x5857BDD: QQmlAnimationTimer::updateAnimationsTime(long long) (qabstractanimationjob.cpp:119)
==21054== by 0x640C7EC: QUnifiedTimer::updateAnimationTimers(long long) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054== by 0x58570C8: QQmlAnimationTimer::startAnimations() (qabstractanimationjob.cpp:152)
==21054== by 0x66895B5: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054== by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054== by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054== by 0x665B826: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054== by 0x66B1242: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054== by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==21054== by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==21054== by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==21054== by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054== by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054== by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
Change-Id: I72e101140b8bee0b6867cf92902e70660c8d21ab
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Topi Reinio [Thu, 12 Jun 2014 13:05:05 +0000 (15:05 +0200)]
Improve RSS News Qt Quick Demo
- Add main.cpp for launching, use Qt resource system
- Update feed URLs
- New layout and images
- Make the example scalable, react to orientation changes
- Use graphical effects and animations
- Display time and link for each news item
- Fix license headers to use the correct license
Task-number: QTBUG-37203
Change-Id: I6f8941cbdaed78a3dee30305496b3ea7777ba3e3
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Mitch Curtis [Tue, 17 Jun 2014 11:35:21 +0000 (13:35 +0200)]
Fix QQmlComponent detailed description.
setParent() => setParentItem()
Task-number: QTBUG-39687
Change-Id: I67dc871a6d3b10af321d1f7b08921dcad0a6f19d
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Laszlo Agocs [Fri, 6 Jun 2014 14:53:33 +0000 (16:53 +0200)]
Add a QQuickWidget - QQuickView comparison example
Besides serving as a side-by-side test tool for QQuickView and
QQuickWidget (including multisampling), it also demonstrates some
useful practices for rendering 3D content via QQuickFramebufferObject.
Done-with: Paul Olav Tvete <paul.tvete@digia.com>
Change-Id: Ie73e998ee91e32ef1535dd6f0f65c8a69addcc5e
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Oleg Shparber [Tue, 17 Jun 2014 22:47:43 +0000 (15:47 -0700)]
Fix crash in QObjectWrapper
This can happen during QObject destruction, when
QObjectPrivate::deleteChildren() itself sets entries
in the children list to zero when deleting. These
zeros cause crash in markChildQObjectsRecursively().
Task-number: QTBUG-38635
Change-Id: I29ad9e793b78ca4e8d73fbb125f46db1b8292f20
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Ulf Hermann [Mon, 16 Jun 2014 09:21:01 +0000 (11:21 +0200)]
Use QSignalSpy instead of waitFor in tst_qpacketprotocol
QTcpServer::waitForNewConnection() blocks the event loop and prevents
the client, that runs in the same event loop, from sending anything.
Also, if the connection is established before waitForNewConnection() is
called we're going to wait for another connection, which will never
happen.
It's not clear if this is actually the cause of the test failures but
blocking the event loop is generally a bad idea and the last change to
the test that actually made a difference to the functionality added
exactly that line, see
b36bbe3626bc68ac267d7653fa6408a8f258251d.
Task-number: QTBUG-39655
Change-Id: Ic03a4e7cac78155532588476b99449664c343ee2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Erik Verbruggen [Thu, 22 May 2014 14:04:20 +0000 (16:04 +0200)]
V4 JIT: add some documentation and literature references.
Change-Id: I67667b74672b94b951361bf2a446476edf44b826
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Erik Verbruggen [Thu, 22 May 2014 14:09:43 +0000 (16:09 +0200)]
V4 JIT: add hint for phi-node operands.
Not only is it preferable for the target of a phi-node to be stored in
the same location as one of the sources, but the same yields for the
sources. For example, in a loop, it is preferable to store the result
of a value used in a phi-node in the loop header to be stored in the
same location as that phi-node's target. Doing that will eliminate extra
moves that are generated to resolve differences between edges.
Change-Id: I0cb5fbe8915d602ac9b9a2a7e8b95cf47b1efb68
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Ulf Hermann [Tue, 3 Jun 2014 13:12:28 +0000 (15:12 +0200)]
Test the javascript heap profiler
Change-Id: I6ac08e520e263ae1cda9eeccd08dea997f6bdd2f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Lars Knoll [Tue, 6 May 2014 11:30:31 +0000 (13:30 +0200)]
Fix compiler warning
Change-Id: I26df4f1b8417c6b075d81eaf118669a4103503e2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Gunnar Sletta [Wed, 18 Jun 2014 12:02:00 +0000 (14:02 +0200)]
Use the correct 'no-widgets' check
Change-Id: I754f785625a534886c6c40f1e850b90cf2418297
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Simon Hausmann [Wed, 18 Jun 2014 08:27:05 +0000 (10:27 +0200)]
Add changelog for 5.3.1
Change-Id: I5d9c67a2f89c0c191de9e6de24d068fca17dba0e
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
Oswald Buddenhagen [Tue, 17 Jun 2014 22:28:50 +0000 (00:28 +0200)]
Bump version
Change-Id: I48d18a93971f4595b295aa6a1f70dfbe2b2266a1
Erik Verbruggen [Thu, 22 May 2014 12:45:59 +0000 (14:45 +0200)]
V4 JIT: teach regalloc about callee-saved registers.
Callee-saved registers won't get clobbered by a call, so any value
stored in it will survive the call.
Change-Id: I2b61b84617b01bf7ce7e81cd0119a6da689ee9d5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Sergio Ahumada [Tue, 17 Jun 2014 06:51:08 +0000 (08:51 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev
Frederik Gladhorn [Fri, 23 May 2014 11:53:11 +0000 (13:53 +0200)]
Introduce Accessible.ignored
Task-number: QTBUG-39163
Change-Id: Ic09573408c460c64503cf1c4d6fff3754e92a223
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Gunnar Sletta [Fri, 13 Jun 2014 11:59:57 +0000 (13:59 +0200)]
Separate renderer out in "OpenGL under QML" example.
The example was promoting very bad practice.
Change-Id: Ibb83780ec33e59ee5aabf65a775705dd0da681e6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Niels Weber [Fri, 13 Jun 2014 11:27:45 +0000 (13:27 +0200)]
Use newest QtQuick in rssnews demo
Task-number: QTBUG-37203
Change-Id: I720e510b875f63eb5c184cd7d8b9eb127674d505
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
Sergio Ahumada [Sat, 14 Jun 2014 16:19:53 +0000 (18:19 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: Id783915b0139a90ecfb99f8298b1ff5cf506a1dd
Richard J. Moore [Fri, 18 Apr 2014 10:53:05 +0000 (11:53 +0100)]
Fix copy-paste errors.
Fix two copy-paste errors identified by static analysis at
http://www.viva64.com/en/b/0251/
Change-Id: I359a4635a4a837995f9ed9bf0182a1ca543725df
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Simon Hausmann [Fri, 13 Jun 2014 21:10:03 +0000 (23:10 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
src/quickwidgets/qquickwidget.cpp
Change-Id: Id4b080aea713df68608847bb82570231e37ce536
Simon Hausmann [Fri, 13 Jun 2014 14:45:46 +0000 (16:45 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: I9cff3f4d42d58157fd8d17ec172b6a74dc386508
Erik Verbruggen [Thu, 22 May 2014 12:31:03 +0000 (14:31 +0200)]
V4 JIT: use RegisterInfo in the register allocator.
Change-Id: Ia9faeb20b360f41d00f908132fd306e2d25c7574
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Liang Jian [Wed, 28 May 2014 07:46:51 +0000 (15:46 +0800)]
Fix Stmt:Data object leak
call Stmt::destroyData() whenever a Stmt object is to be removed in
BasicBlock to delete the Stmt::Data object hold in the Stmt object.
Change-Id: I59c939d79b935153e6f8613e54f149120f5198f5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Laszlo Agocs [Thu, 12 Jun 2014 13:10:51 +0000 (15:10 +0200)]
Set StrongFocus on QQuickWidget
Make text input functional out of the box.
Both QGraphicsView and QDeclarativeView (QQuick1) do this so there
is no reason to do this differently for QQuickWidget. For QQuickWindow
and QQuickView the issue does not exist in the first place, they will
accept the focus by default.
Task-number: QTBUG-39605
Change-Id: I74f01b85342df51aa3c0e80baf58ba1619c63438
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Erik Verbruggen [Wed, 14 May 2014 15:17:59 +0000 (17:17 +0200)]
V4 RegAlloc: simplify algorithm after introducing half open ranges.
Now that all ranges are half open, and temporaries are defined at the
end of the (defining) statement, the linear scan algorithm get simpler.
Specifically, when allocating a register for a temporary, the check if
the temporary is defined or used is not needed anymore.
Another simplification is the handling of phi-nodes. Previously they
shared the same statement number as the first "real" statement in a
basic-block, and special checks were needed to handle them. Those are
now gone too.
Change-Id: Ia4266ea5ede8c2aff0e70c6579fba9575c6719fb
Sanity-Review: Qt Sanity Bot <qt_sanitybot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Erik Verbruggen [Wed, 14 May 2014 12:44:27 +0000 (14:44 +0200)]
V4 RegAlloc: change life-time intervals from closed to half-open.
There are two changes in this patch, that go hand-in-hand. First, when
re-numbering the statements in order of occurrence in the scheduled
basic-blocks, the (new) position is not stored in the statement itself,
but in the LifeTimeIntervals class. This makes it possible to re-use
information gathered during SSA formation or optimization.
The re-numbering itself has also changed, resulting in some minor
changes to the life-time interval calculation. The new numbering
is described in LifeTimeIntervals::renumber(). The reason is to make it
easy for the register allocator and stack-slot allocator to distinguish
between definition of a temporary and its uses. Example:
20: %3 = %2 + %1
22: print(%3)
If the life-time of %2 or %1 ends at 20, then at the point that %3 gets
assigned, it can re-use the storage occupied by %1 or %2. Also, when
both %1 and %2 need to get a register assigned (because they were
spilled to the stack, for example), %3 should be allocated "after" both
%1 and %2. So, instead of having a closed interval of [20-22] for %3, we
want to use an open interval of (20-22]. To simulate the "open" part, the
life-time of %3 is set to [21-22]. So, all statements live on even
positions, and temporaries defined by a statement start at
statmentPosition + 1.
Change-Id: I0eda2c653b0edf1a529bd0762d338b0ea9a66aa0
Sanity-Review: Qt Sanity Bot <qt_sanitybot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Fri, 6 Jun 2014 10:42:23 +0000 (12:42 +0200)]
Add support for translations in pure QJSEngine based environments
Re-add the QScriptEngine::addTranslatorFunctions API that brings back
qsTr() and friends to pure QJSEngine based environments.
The auto-test were also ported where applicable.
Change-Id: Ib03e3495ef09eeea9e4c8341061499768caed307
Sanity-Review: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>