While some functionality is not available for winphone
(QFileSystemEngine::tempPath), some functionality can
be fully supported. Other cases like checking for stale
processes which is needed by QLockFile cannot be covered
that easily as obtaining information about other processes
is limited due to sandboxing.
Change-Id: I9ea80ae2b421eea1ddfd4c5bc2f4b6f8adaee85f
Done-with: Kamil Trzcinski
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
This makes it so that two QVariants created from the same
QIcon (or from QIcons that were assigned one from eachother)
compare to true.
Unfortunately creating two QIcons with the same path and
comparing them still gives false as they have different cacheKeys
Change-Id: Iafe2bc4082a830f9c6469f083c26a7abbe4b35c5
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
https://codereview.qt-project.org/#change,66028 fixes Quick2 apps so
there will be no need to ignore mouse events synthesized from touches
by the OS. The mousefromtouch plugin parameter is changed to
nomousefromtouch since mousefromtouch becomes the default.
This will restore the OS-provided functionality, like translating
tap-and-hold to right clicks, for Quick1 and widget apps.
Change-Id: I5554a91a54365b9c72c3ad304010b9fc4e53ab24
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Improves the code generation by not making virtual calls where not
necessary.
Change-Id: I908905f4430359eea3ea8548a35e83e028805911
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Provides locale-related codepaths for WinRT where existing Win32 API is
unsupported.
Change-Id: I35b83d6b208165b7660cac3c9b383cb6ba7e5cf9
Done-with: Maurice Kalinowski
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Make platform plugins, like the windows one, able to indicate
if a mouse event is synthesized from a touch event by the OS.
This will be valuable information for the Quick2 event handlers.
No new member variables are added to QMouseEvent. Instead, the enum
value is encoded in the caps member, there are plenty of bits
available in it.
This introduces Qt::MouseEventSource and QMouseEvent::source() as
public APIs.
Change-Id: If087a0bafb33a6cd7891bd07b84871358f6aba69
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
WinRT applications are not invoked directly, so a debugger may attach too
late to be useful. While the application can be launched with a debugging
server, attaching directly to the running process is simpler and less
resource-intensive. For this reason, it is useful for applications to
wait for the direct debugger to attach. If the existing -qdebug parameter
is passed to the application, wait idly until the debugger attaches.
Change-Id: I7b4957beb9728ab6311b459e4d809dc5f4767780
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
When doing slow, precise movements, some devices will report
differences of less than 1 pixel. This would mark the points
as stationary, meaning that Qt would discard them without reporting.
On the three devices I have tested, stationary points are reported with
a 0.0 difference. If any devices are reporting noisy values, it is
still safer to test for equality, since it is much better to report
too many move events than to not report any.
Task-number: QTBUG-33729
Change-Id: If20f2758f5a5ec0917184345b558f55a3d383807
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
IOKit used to be part of the 5.x and 6.x iOS SDKs, but not officially,
so when Apple in the iOS 7 SDK removed IOKit headers and the library
symlink, our builds started failing.
Change-Id: I631cab7c106559968c06977fa25157a57402594c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
qsql_ibase.cpp:1155:23: error: enumeration value ‘LowPrecisionDouble’ not handled in switch [-Werror=switch]
qsql_ibase.cpp:1419:12: error: enumeration value ‘CancelQuery’ not handled in switch [-Werror=switch]
Change-Id: I3c6102051cde80c81948f5a64f9addcf7a371136
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
This allows V4 and other garbage collectors to pass through our
custom stack during the mark-phase without triggering access
violations.
Change-Id: Icafcf4df3537c628c641fe694bb9fe2016519a83
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Q_OS_WIN64 is not defined for WinRT, so make sure the pointer size is
correct.
Change-Id: I5a55bfd7edbfd23e0eab50fa31a76faa9e383a8d
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
This enables EGL for WinRT's native types, and adjusts some codepaths
to accommodate differences in between desktop Windows and WinRT.
- WinRT native handles added to eglplatform.h
- References to native handles in libEGL/libGLESv2 follow eglplatform.h
- D3D 11.1 structures and methods used when necessary
- TLS replaced with thread attribute
- LocalAlloc/Free replaced with Heap API
Change-Id: Ia90377e700d335a1c569c2145008dd4b0dfd84d3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Update the Qt 4 documentation of QSessionManager to reflect the changes
in Qt 5
Task-number: QTBUG-33528
Change-Id: I74286134155efc2781f9f6fc505fb6cf736d814e
Reviewed-by: Martin Smith <martin.smith@digia.com>
Remove a piece a debug code from qmlvisitor.cpp
Change-Id: I3a1a72d11597c36d277310c92bf9590633844d03
Reviewed-by: Martin Smith <martin.smith@digia.com>
This change allows an empty string to be used as a common prefix
for class/type compact lists, and uses it for QML types as they
do not have a common prefix like public C++ Qt classes do.
This fixes the issue with sorting order for QML type lists.
Task-number: QTBUG-33715
Change-Id: I28ab689d28017ae28eccbf590d1dbbe107665e33
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
The InputMethodHint enum values were changed between Qt 4.8 and 5.1, and
the hardcoded copies were not updated. Thanks to Lasconic for finding
the solution to this problem.
Task-number: QTBUG-32072
Task-number: QTBUG-32710
Change-Id: I3eb1192911a9c48d7720e85b91bee1af693a669d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
tst_qfilesystemmodel was hanging regularly. In
QFileInfoGatherer::~QFileInfoGatherer() it would be stuck on wait() and
in QFileInfoGatherer::run() it would be at condition.wait(&mutex);
It looks like while abort was set to true, the while in run() had just
entered so that it would wait for condition indefinitely.
Task-number: QTBUG-29403
Change-Id: If6cebbc98ec7f54fbdf347804780bbfc5e177b3b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This doc was probably older than the feature of timer types.
Task-number: QTBUG-33760
Change-Id: Iff4c9f9bb7287498f1ee80578b500bbde777bc78
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Updated qdoc to handle QML references without using the
QML module version.
Task-number: QTBUG-32173
Change-Id: Ibfba9bc92458ae04017706e904625e7d32fc0be4
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
QSpiAccessibleBridge uses a D-BUS connection, which in turn uses socket
notifiers and timers internally. Neither of these can be used before
a event-dispatcher is in place, so we need to defer creation of the
accessibility interface until later. We assume that clients will
only call QXcbIntegration::accessibility() when an event-dispatcher
is set up, but to be extra safe we do an assert, so that failures of
this pre-condition will trigger at the place they are caused -- not
as failures to register socket notifiers and timers in the D-BUS code.
Change-Id: I4f9d8362a3f285c3da9045d1ff6b8e7b04570488
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
The size is queried from the window before create() is
called. Therefore Quick apps were not covering the entire screen as
they should. This is now fixed by properly returning the fullscreen
geometry from QEglFSWindow::geometry() even when create() has not yet
been called.
Pre-5.2 this was working because the QEglFSWindow constructor changed
the window state. This is not feasible anymore with the recent
compositing changes since the second, third, etc. windows are not
fullscreen.
Task-number: QTBUG-33620
Change-Id: If66d35f6f4768485d4e68c5ad825fe7a9d948a64
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
qDeleteInEventHandler is a mere wrapper for delete these days.
Change-Id: I0828edf3ca17642b5abf97aab66672490c35f177
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
There's an off-by-one error that has been carried over since at least
Qt 4.0.0. Because of that, the class is actually 4 bytes bigger than
calculated.
Change-Id: Iaefdf657fdc780aae16390fde3c01074160e4cd9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The QPlatformIntegration::guiThreadEventDispatcher() function acted as an
accessor to event dispatchers created in the constructor of each platform
plugin, but the logic and semantics of event-dispatcher handling in Qt
itself (QCoreApplication/QGuiApplication) still assumed both ownership
and control over the event dispatcher, such as when to create one, which
one to create, and when to delete it. This conflicted with the explicit
calls in the platform plugins to QGuiApplication::setEventDispatcher(),
as well as left a possibility that the event-dispatcher created by
the platform plugin would never be deleted, as none of the platform
plugins actually took full ownership of the dispatcher and deleted it
in its destructor.
The integration function has now been renamed back to its old name,
createEventDispatcher(), and acts as a factory function, leaving
the logic and lifetime of event dispatcher to QtCoreApplication.
The only platform left with creating the event-dispatcher in the
constructor is QNX, where other parts of the platform relies on
having an event-dispatcher before their initialization. We then
need to manually take care of the ownership transfer, so that the
event-dispatcher is still destroyed at some point.
Change-Id: I113db97d2545ebda39ebdefa865e488d2ce9368b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
WARNING: qopenglpixeltransferoptions.h includes QSharedDataPointer
when it should include QtCore/QSharedDataPointer
Change-Id: I0a84a37d2f4e310535979ef97b81937d2b2b2313
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Our manual test reveals that a setting a detailed text
after it is shown does not work.
This patch fixes that minor issue.
Change-Id: I4930880def2d8361d247e943e1a848dd49ca3882
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
QCoreApplication sets up the event dispatcher in the constructor, through
createEventDispatcher(), which is overridden in QGuiApplication to take
the platform-integration into account. The problem is that the platform
integration is created before the event dispatcher, so when we create the
QXcbConnection we are not guaranteed to have an event dispatcher yet.
This is not an issue when using xcb_poll_for_queued_event() in a thread,
but for the fallback case we connect to the event-dispatcher's awake()
and aboutToBlock() signals. To ensure that we do this only when we have
an event dispatcher we post a queued method invocation, that will be
processed as one of the first events once there is an event-dispatcher.
Change-Id: I623011af447b585884b84c7559737f134aab83e8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Do it only when requested by having QT_QPA_EVDEV_DEBUG set.
Change-Id: I0e28808ae972bf681db3c0878ee53732611d11af
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
696060134d introduced the use of
QBasicMutex and QMutexLocker (qmutex.h) but that wasn't #included. I
don't know in what way my build is different, though.
Change-Id: Ie3df3c746fdf1c4735f298c3578cd93a9a14327e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
As of 373e44d, QFileSystemModel can be built without QFileSystemWatcher
support, making this define incorrect.
Change-Id: I1c18dc4f323f94b43f4e49646911fd06b0f01f73
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Sometimes the signal QNetworkReply::error(QNetworkReply::NetworkError)
is not emitted for certain requests.
This happens under the following conditions:
* The hostname provided in the request is incorrect, i.e it will
result in a DNS lookup failure.
* There is a previous request, for the _same_ host, already pending.
The first request that comes for the (incorrect hostname) url, gets
enqueued via QHttpNetworkConnectionPrivate::queueRequest(). Here,
after starting a DNS lookup, we mark the network state of this
connection as - "InProgress".
Now, if a second reuest comes for the same host, we use the existing
HTTP connection object as it's present in the cache. However, when
enqueing the request (in queueRequest()), we see that the network is
NOT in "Unknown" state and return immediately without adding this new
request to the list of pending lookups (via QHostInfo::lookupHost()).
To fix this issue, we should queue incoming lookup requests, even if
the current (HTTP) connection is in the "InProgress" state, so that we
can inform the requestor of a failed lookup. Since
QHostInfo::lookupHost() handles lookups for duplicate hostnames
properly, things should be fine even if multiple requests for the same
host have been enqueued.
Task-number: QTBUG-32911
Change-Id: I6a9c8430121e9a5a2d45983b6bda70c324437992
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
QPair is documented to initialize members
Change-Id: I1dccfd265521ca3ca1a648b161c0a163c72e2f2e
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Richard J. Moore <rich@kde.org>