If the glyph run is generated based on characters which split a
ligature glyph, it needs to include the ligature glyph in the run,
and when painting, we need to clip the painter to the reported
bounding rect of the run in order to avoid painting too much of
the ligature. To make it possible to reduce clipping to a
minimum, we need a flag to inform of whether the glyph run contains
a split ligature or not.
Change-Id: Id787e0bec6d6e8e06cc818700ae0fca22cf81e98
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
It's not a good idea to look at the host's /bin/ls when cross-compiling
Change-Id: I1fe67b17abd92f01c1d89146227c5419eaa3242f
Reviewed-by: Arvid Picciani <arvid.picciani@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
When the platform plugin does not reimplement QPlatformWindow::winId()
to return a non-zero value, the default implementation provides a WId
of 0. This breaks various scenarios with QWidgets which, for example
in nativeParentWidget(), rely on internalWinId() being non-zero for
TLWs.
As a result, apps like collidingmice will crash with the 'minimal'
platform plugin when they try to do markDirtyOnScreen for the graphics
view's viewport widget because viewport()->nativeParentWidget()
unexpectedly returns null, even though it should return the
QGraphicsView.
The patch makes the default value WId(1) in order to to avoid this.
Change-Id: Iafef2e510e32b5610b8cef742313e9119ed64963
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Without a call to QWindowSystemInterface::handleWindowActivated() or
QPlatformWindow::requestWindowActivated() QGuiApplication's
activeWindow() and focusWindow() will return 0 all the time, and this
breaks key event delivery when key events are received not from a
windowing system but directly from e.g. evdev. In such cases the only
choice is to send the event to the active window but if there isn't
one the event will be lost.
These platforms will have one fullscreen window at a time so marking
it the active one should be a safe assumption.
Change-Id: Ia6f0e9f021fbd61bbd368ddc46f8a13fccda1c2f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
This test verifies that all gui types with built-in QMetaType
support can be created, either using the default constructor
or the copy constructor.
Change-Id: Ibb1c5aab8571b598638c74112471d6869516a202
Reviewed-on: http://codereview.qt-project.org/6344
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
It only tested creating a copy of QSize.
This change adds testing of all core types, both
copy and non-copy creation.
Change-Id: If2b8fb45718c4a976dd8b883b332878f7fb0da6f
Reviewed-on: http://codereview.qt-project.org/6343
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
This is the first towards bringing shortcut support
back into QtGui.
Change-Id: Ic2cf376d08c326402fb90a0cf170a987b07ac304
Reviewed-on: http://codereview.qt-project.org/6577
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Enrich playWithVaraint template by a macro that returns correct line
number in case of failure.
Change-Id: I7684169852481a6905b71e4420135e7e3f298b12
Reviewed-on: http://codereview.qt-project.org/6570
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Instead of creating new instances of the class whenever
accessibility() is called, create one on startup.
Change-Id: Idd5b06ee935d7acf4934b98882d254a1ef0ca04e
Reviewed-on: http://codereview.qt-project.org/6435
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
swapBuffers would wait until DRI2_InvalidateBuffers was received from the
X server, but would never receive it since we are not running the xlib event loop.
This patch calls the XESetWireToEvent xlib callback of an unhandled event from the
xcb event loop directly, if one is available for its response type.
Change-Id: I3b4ef3f6e3efbae25f49f161e229e9b15e951778
Reviewed-on: http://codereview.qt-project.org/6557
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Instead of ignoring the touch major/minor and returning a rectangle
with width and height of 1, the size of the area is now calculated
based on the major. This is incomplete and far from perfect but at
least it makes visualizers, like the fingerpaint example app, work out
of the box.
Change-Id: I3bb70b4d7247f289e5cae4e7de2460ecf2c9d009
Reviewed-on: http://codereview.qt-project.org/6566
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
When configure detects the presence of font-config/freetype via pkg-config
_and_ we are cross-compiling for Harmattan, make sure that we pick up the
include path for freetype. The .pri file is included in various places in
qtbase when the usage of freetype is required.
Change-Id: I4a5390dfc063504def80a891bc9153d6a376ccd7
Reviewed-on: http://codereview.qt-project.org/6509
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
This plugin was still using QApplication and QDesktopWidget. The code
is now migrated to QGuiApplication, QWindow, and QScreen.
Change-Id: I22a7e15982efea16cbf560d09c8831cd82ed29d0
Reviewed-on: http://codereview.qt-project.org/6528
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
startHostInfoLookup will try to detect if IPv4 or IPv6 will be used
when connecting to the host. If a proxy is set we should lookup
the proxy hostname instead, in case host name can't be resolved
via DNS and should be resolved by the proxy.
Task-number: QTBUG-21889
Change-Id: I2012798784fc40f153469a1298e261c52981297e
Reviewed-on: http://codereview.qt-project.org/6447
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
The reference file has suffered whitespace changes during the cherry
pick from 4.8. Refetched from the test server.
Change-Id: I03a0b7a66cf6743de3391905422b2f4cdcd86dcf
Reviewed-on: http://codereview.qt-project.org/6454
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
Using the first pkg-config in PATH is prone to errors when
cross compiling. This is a known issue, and `configure' already
avoids using pkg-config for cross compiling (unless -force-pkg-config is
used). However, there was previously no way for a .pro file to test
whether or not the user had passed -force-pkg-config.
Let !contains(QT_CONFIG, no-pkg-config) be used to test whether or not it
is safe to run pkg-config.
(cherry picked from commit 53794d94994cb3149581b1a91762dfa2d6defac0)
Change-Id: I53794d94994cb3149581b1a91762dfa2d6defac0
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-on: http://codereview.qt-project.org/6488
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
It is better to avoid building a test when we know that it is not
applicable, rather than building an empty test that appears to pass.
Note that some of the tests were already excluded by
tests/auto/other.pro, but still had the preprocessor directives to make
an empty test.
Change-Id: I71b75c37a05f6e20dbef43d82f72b29b35ef496a
Reviewed-on: http://codereview.qt-project.org/6410
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
If Qt is built without QtConcurrent, the relevant autotests should be
excluded from the build, rather than building empty tests that appear
to pass and thus produce confusing test results.
Change-Id: I43bafcb0ffa42e8981bec4e27bf6a23a28d86df9
Reviewed-on: http://codereview.qt-project.org/6395
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The platformsocketengine autotest uses the native socket engine directly
rather than through QAbstractSocket. The bind tests were failing because
the autotest was creating a socket with IPv4 (AF_INET) and then binding
with QHostAddress::Any (AF_INET6).
A linux kernel update caused this to start failing on the test machines.
Change-Id: Iea62f3d56dbfb35fcb952dcf00313578eb2bd764
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Previously we were generating include lines based on the relative path of
the source file, which resulted in the .d files being placed in the source
dir as well. We now expect the .d files to live in the output dir, but keep
the dependency from the .d file to the original source file.
Before:
.deps/%.d: %.cpp
-include .deps/../../src/foo.d
After:
.deps/%.d: ../../src/%.cpp
-include .deps/foo.d
Change-Id: I749adeb671cf8424f0849521c5bb1489eb3e76d5
Reviewed-on: http://codereview.qt-project.org/6455
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
When two threads construct a QNetworkAccessManager at exactly the
same time on an SMP system, there are construction races for some
Q_GLOBAL_STATIC data. This is normal and expected - the losing
thread deletes its instance as part of the Q_GLOBAL_STATIC macro.
For QNetworkAccessBackendFactoryData, a guard mechanism intended
to prevent the data being reconstructed by destructors of other
global static classes was being set by the loser.
To fix this, the bool is changed to a QAtomicInt. In the normal
case, it will have value 0->1 on startup and 1->0 on shutdown.
In the race case, it will have values 0->1->2->1 on startup and
1->0 on shutdown.
Task-Number: QTBUG-20343
Change-Id: Ie3fe38944d10809d1ccdbe772df82d67faffe19c
Reviewed-on: http://codereview.qt-project.org/6181
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Now QInputPanel::visible() can be set true even when platform doesn't provide
a virtual keyboard. Like keyboard geometry, visibility should be dictated by
the platform plugin and not QInputPanel, whose role is more like that of a mediator.
QInputPanel::show() and ::hide() calls should be treated as requests that may fail.
Changed the QInputPanel's visible property to read-only as a setter that may
fail is not really a setter, show() and hide() should be used instead.
Enabling the new functionality cannot be activated immediatelly without breaking
existing keyboards, added a temporary function handlesInputPanelVisibility that
handovers the responsiblity of updating input panel visibility to QInputContextPlatform
only once QInputContextPlatform says that it is able to handle it.
Change-Id: Ideecaf7225cc3971f33a0ac976bd92cf7767475b
Reviewed-on: http://codereview.qt-project.org/6429
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
QTextEdit did not emit selectionChange signal if selection
availability did not change, but the start or end of the selection did.
This was causing unit test to fail.
Change-Id: Iea0cb0bae767bc8d2dd36141362f9a084af97266
Reviewed-on: http://codereview.qt-project.org/6426
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Removed from QWidgetPrivate and QWidgetTextControl. Now using only
application specific input context.
Change-Id: Id25882e72026f58dab51a18e5d04a11225429963
Reviewed-on: http://codereview.qt-project.org/6427
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
create() is symmetric with destroy().
Also rename the internal methods and fields to be
consistent (qDeleteHelper already had the "right"
name, though!).
This change will allow us to use construct() and
destruct() for something else: Placement new-style
allocation (QTBUG-12574).
The old construct() is still kept for now, until
the other repositories have been updated to use
create().
Change-Id: Iceb184af6cffcb0a634359cfc3516c718ba0c2f5
Reviewed-on: http://codereview.qt-project.org/6342
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
We will fallback to box engine when no usable font is available,
and QRawFont (which scenegraph depends on) won't allocate glyph
index array on certain occasions. In those cases, QFontEngineBox
needs to support GlyphIndicesOnly flag.
Change-Id: I408ddd1b2f1a5f7ac2b6681cb7bf531bbbfc68e6
Reviewed-on: http://codereview.qt-project.org/6360
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
The symbol is exported in qguivariant.cpp.
Change-Id: I3ba3446251aa3ba9e901bd3e9c2157d8b22d9866
Reviewed-on: http://codereview.qt-project.org/6364
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Use the QMetaObjectBuilder code from declarative and add it to libQtCore.
Consolidating various QMetaObjectBuilder implimentations to avoid
code duplications in those modules.
This is currently still a private API only.
Change-Id: Ie363b4fd769c41efbb3caa7fb1d6f77af13c3c9c
Reviewed-on: http://codereview.qt-project.org/6287
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Alex <alex.blasche@nokia.com>
There was logic in .pro files for the dbus tests to omit the body of
each test if dbus was not available in the Qt build. This was all
redundant however, because tests/auto/auto.pro already excluded all dbus
tests if dbus was not available in the Qt build.
Change-Id: Iaea06e38622e5227daec4d2e08106c2da3fb4013
Reviewed-on: http://codereview.qt-project.org/6372
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
These harmattan and symbian build scripts are very outdated for Qt5, and
will not work. Get rid of them.
Change-Id: Id050491b3975d138599b548367abf23356516457
Reviewed-on: http://codereview.qt-project.org/6383
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
QT+=<foo>-private is supposed to be a superset of QT+=<foo>.
declarative_debug.prf was subtly breaking this for the
declarative-private case.
Change-Id: Ica082b03d19e702434b90e0f8b2c1fa6b592babb
Reviewed-on: http://codereview.qt-project.org/6373
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Change Ie3271abd1728af599f9ab17c6f4868e475f17bb6 didn't build on Mac in
debug mode. This commit fixes the build.
Change-Id: I925af83ea577228b60679af804aa7875a779ec3f
Reviewed-on: http://codereview.qt-project.org/6331
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
The QGLColormap API was used by QGLWidget, not very relevant in the Qt 5
core API.
Change-Id: I3c75ac09cbc292e707aea62759c09277f834de8d
Reviewed-on: http://codereview.qt-project.org/6333
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>