Increase the chunk size of the server and remove hard-coded
interval when waiting for the server to listen.
Unmodified, the test takes 170s on Windows.
Change-Id: I65bdc93ff78e1b4fb429fcafd0fdc5e80bb281f9
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Do as QGLWidget::updateGL does and avoid calling paintGL in updateGL
when we we don't have a valid QSurface to draw on.
We currently end up calling makeCurrent on the context with a null
QSurface in that case, which is the equivalend of doneCurrent, and
causes QOpenGLContext::currentContext to return null later when paintGL
is called on the subclass.
Change-Id: I712ee59274855457b0e4de3757754f56b3528955
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
The Android input method protocol specifies that finishComposingText()
should not move the cursor. Since Qt likes to move the cursor to the
end of the newly committed text, we have to explicitly move the cursor
to where the preedit cursor used to be. Fortunately we already keep
track of that.
Also implement support for the newCursorPosition argument to commitText()
since the function needed to be rewritten anyway. (It was calling
finishComposingText().)
Task-number: QTBUG-38794
Change-Id: Iff2c43bdbd3dda812ccdc71da63f3fa730474eef
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
When applying the five-finger pinch gesture, we get a touchesCancelled
callback with all five touch points, but the pinch gesture ends when
the second to last finger is released from the screen. The last finger
will not emit any more touch events, _but_, will contribute to starting
another pinch gesture. That second pinch gesture will _not_ trigger a
touchesCancelled event when starting, but as each finger is released,
and we may get touchesMoved events for the remaining fingers.
The event property 'allTouches' contains one less touch point than it
should, so this behavior is likely a bug in the iOS system gesture
recognizer, but have to take it into account when maintaining the Qt
touch state.
We do this by assuming that there are no cases where a sub-set of the
active touch events are intentionally cancelled, and always clear the
list of active touches.
Task-number: QTBUG-37304
Change-Id: Icee79978508ecbc6854c0fb55d2da48b99d92f96
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Use the correct palette and enforce Fusion style to prevent
the Vista style from clobbering the tooltip palette in polish().
Task-number: QTBUG-38183
Change-Id: Id19d548f818d801c4914a343e08207195c343888
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
The intent is to provide compile time validation of signals and to help
detect signal overloading in the future.
Change-Id: I9d5d46ed4b70c5d0cd407deb5928b1e76d37e007
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Since we require a relatively recent system, check the version of the
direct2d dll on disk and report an error to the user if it is too old.
Previously only a cryptic runtime error resulted from a direct2d version
that was too old.
Change-Id: I6c3955e1a98326fca6bcdc871b0a25291391ba88
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
After analysing text drawing performance two things seem to take up most
of the time. The first is font lookup, the second is QVector
initialization.
To address the first point a per paint engine instance font cache is
introduced. At the moment no mechanism exists to clear this cache and
it is unbounded.
To address the second point, we simply switch to using QVarLengthArray
instead of QVector.
In an artificial benchmark that draws text in a tight loop, the first
change raised fps from ~70 to ~100. The second change further raised this
number to ~115 fps.
Change-Id: Iafa25c3e35bc42bd7c1582b0636e721c5193b494
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
When the start point is not on the curve, the end point will be
used as starting point for the QPainterPath, if it is on the curve -
if it is not on the curve, the mid point between start and end point
will be used. The origianl start point will still be used as a control
point for the first bezier curve.
Task-number: QTBUG-38601
Change-Id: I90e07f1141288873263f1f12fa51e6a248d0804f
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
1) toString does not track the string it returns, thus it has to be
deleted by the caller
2) on some platforms vsnprintf crashes if a null string is in the
va_list
Change-Id: Iecf94e93d3a2ddf4186ee20de1f495f2f92dcc60
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Matches the compiler capabilities better and will catch all GCC-like
compilers (including Clang, LLVM and Intel CC on Unix).
Task-number: QTBUG-38544
Change-Id: I102966d307a4e167b6dcf3da08359e656f3af45e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
GetGlyphOutline fails for ttf fonts with embedded bitmaps. This results in
distancefield rendering not rendering glyphs (for the failed paths). We
need to fall back to texture rendering if this is the case.
Change-Id: Ibdf7dc5c1d34f513c436f88fabbdcc4089bb6fef
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Determine the visual index by looking up the column of the QModelIndex
in the logicalIndices array instead of looping.
Task-number: QTBUG-37813
Change-Id: I5c3c73c67537877b03cdc2c36a52041d99f7f49d
Reviewed-by: David Faure <david.faure@kdab.com>
Some calls pass len=32, so garbage was shown when maxlen (readBytes) is smaller.
Change-Id: I97e61dcdf5a0db032317c57afb4bfb406437d8d5
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
The collected data doesn't reveal any obvious correlation between sleep
times and test failures but the many warnings are a hassle for anyone
reading the test results.
Change-Id: I71bd0c90c20c730573693f23f4435e538b635d44
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The image format returned by QOpenGLFramebufferObject::toImage() on
OpenGL ES/2 builds changed in 5.2.0 but was not documented.
Change-Id: I2379c62c7f715803192ffa9bb8ae1171ef4b2314
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Change-Id: I92fa083665509932b75ff1037904a6f78a950fd6
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Change-Id: Ife5b7206fd3d7af57cfca3c0f28f56bb53ede7a7
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
A pro file that adds files to QMAKE_BUNDLE_DATA using relative
paths will fail building if doing shadow builds. The reason is
that we look for the files inside the build dir.
This change will make sure we resolve files from the source dir
when not using full paths.
Task-number: QTBUG-37054
Change-Id: Ic1067861097b3b6a640ee862472d728d6188576a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Nothing else seems to report this state and on windows
for example it results in NVDA reading subMenu which makes
little sense.
Task-number: QTBUG-38500
Change-Id: I64820d9f2ea9174034f01da42cb2266a19c19465
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
When moving the mouse over a disabled menu it could appear to be usable
but it should not show any interaction at all.
Task-number: QTBUG-31688
Task-number: QTBUG-37488
Change-Id: I9e6594b40e8b209146d8c3705750dfd75f1258c5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
This test doesn't fail on Mac any more.
This reverts commit 36493a7a41.
Task-number: QTBUG-23685
Change-Id: Ib7c56494b07de9839b3287758fe228f799bc343c
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
When replaying the mouse events synchronously, nested calls
of QEventLoop::exec() may happen in conjunction with menus.
Task-number: QTBUG-38550
Change-Id: I2b1dafdac59d1a080775af5f165d1e594ea58804
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Useful for any application that can take URLs on the command-line, so that
full paths and relative paths can also be accepted.
Change-Id: I8a2c50f36d60bdc49c065b3065972fd5d45fa12a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Small improvement to the code by using an enum instead of a boolean.
Change-Id: Ib792cf97224b5204fd36ca215387fc7be34f2c32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We can do the (atomic) test of studyData before locking the mutex
protecting the entire function body.
Change-Id: I3006e3a0028608f21668ddaebe8a799aed56362f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
If a user doesn't like that QRegularExpression might do an
uncontrolled CPU/memory spike when it decides to optimize a pattern,
offer a way to disable the automatic optimization.
Change-Id: I38a98a3bfb239cfad9f977b0eeb75903268e747f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The fact that we kick in a pattern study and possibly a JIT compilation
after an undocumented number of usages is suboptimal, for a number
or reasons: users may want to JIT compile a pattern immediately,
and at the same time they may not want a random delay in the program
(due to the pattern getting optimized at a random usage).
So: add an optimize() call to force an immediate pattern optimization,
and a pattern option to force an optimization on the first usage.
Change-Id: I95efdecfd31f11ca7cceb9c05037df613601a11c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
sched_yield is standardized and on linux pthread_yield is implemented as sched_yield.
Building Qt for Android on OS X doesn't compile with the pthread version.
Change-Id: I1913afa83769805291e987f55b8f452299a43dce
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
QGLWidget has a paint device type of Widget, yet drawing on it
from outside the gui thread is fine as long as ThreadedOpenGL is
supported. It has probably been overlooked that the device type
OpenGL applies to QGLFramebufferObject and such but not QGLWidget.
This will fix the problem of flooding the output with warnings in
the tst_qglthreads autotest and potentially elsewhere too.
Task-number: QTBUG-38771
Change-Id: Ie014a2610a0db41b31c30c404e286d4997aecdc3
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
This caused for example the variable QMdiAreaPrivate::isSubWindowsTiled
being cleared from another instance, which resulted in odd
resizing behavior.
Task-number: QTBUG-31448
Change-Id: I880f7e415d6654e52499df1bfaf99f2c55d86320
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
For exaple Qt Creator would crash when started and a screen reader (eg
NVDA) is running. This is due to updateAccessibility being called during
the ctor of the TextEdit and on Windows the AT can access properties in
the same call resulting in accessing the text control before it's fully
constructed.
Also make sure to not send accessibility updates for non-widget type edits
since we don't support any accessibility in Qt Quick 1.
Task-number: QTBUG-38659
Change-Id: I1635fa3b2c4d3509f44daf760e4d7b4171d67e1d
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
On some Intel configurations the current DXGI discovery breaks. Fix this
by adhering to Microsoft's guidelines for discovery of the DXGI factory:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh780339(v=vs.85).aspx
Not querying the adapter directly as in the code snippet on the site above
seems to have been a typo originally.
Change-Id: Ibd7546462cdab7e5ad03db9abc16fe1615b631f4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
This aligns with the other mobile platforms.
Task-number: QTBUG-38691
Change-Id: I7b9b70a1182c0e53f997cae111ec46b5161b0b48
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Remove the intermediate pixmap in the backing store and draw directly to
the window swap chain. This is faster and reduces memory pressure on the
graphics card.
In case of native child widgets we need to read back the back buffer,
which incurs an extra copy in this case.
In an artificial benchmark drawing animated full screen
gradients as fast as possible this patch increases performance by 42% on
my current machine from 480fps to around 680fps, i.e. the time for
actually getting the pixels to the screen is now lower.
Change-Id: Ifbeda0e199afec03cecfe76337679a9e9d082bdd
Reviewed-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
This patch reuses the code and pattern used to vectorize scaling, to
also vectorize rotating transforms in fetchTransformedBilinearARGB32PM.
This provides significant improvements in QtWebKit on benchmarks using
rotating transforms.
Change-Id: If250e0f5dae1ff0f954301f96cc8970a99ae3e9d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>