| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The C++11 std::atomic type is very close to our API, to the point one
has to wonder if the committe was inspired by it. It provides all of
the memory semantics that Qt requires and more, plus some
compare-and-swap operations that we don't use.
The idea of returning the actual value in the event of a failed
compare-and-swap is actually quite good, as often we'll retry with
it. We just couldn't come up with a good name (fetchAndTestAndSet?).
The C++11 atomics require that the compiler support constexpr as well,
since std::atomic itself isn't required by the standard to be
trivially-constructible (in fact, it has a constexpr constructor in
the standard). For that reason, we need constexpr so we can add a
constructor to QBasicAtomic too.
Change-Id: I12c51455ba73350a6f7501aacc2ca7681c4369dd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this implementation, we can have Qt run on any architecture that
GCC supports without having to write specialised code. However, on
some architectures, the code that GCC generates is not optimal: it
uses locking on ARMv5 and it's always fully-ordered. For that reason,
it appears after the Qt native assembly implementations (it's a
fallback, not an override).
Since they all have fully-ordered memory semantics, we define only the
xxxRelaxed functions. The exception is __sync_lock_and_test, which has
acquire semantics, so we need to define the Release and Ordered
versions too.
On some architectures, GCC can support atomics on types different than
32-bit and pointer-sized (like x86, x86-64, ARM and even
MIPS). However, there's no standardised way of telling: GCC seems to
define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8} if those operations
are present, but I couldn't find it on the ARM compiler (it was there
for i386, x86-64, IA-64 and MIPS).
Change-Id: I55ff7a7c0cfc6388b7ad8e2c0dedecffdf2a3e01
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
| |
Change-Id: I360c94d41691a618f1bec97da8317c9dcee658c0
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
These defines were there to aid in the commercial
licensing scheme we used long ago, and are no longer needed.
Keep a QT_MODULE(x) define so other modules continue compiling.
Change-Id: I8fd76cd5270df8f14aee746b6cf32ebf7c23fec7
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The IA-64 architecture supports the actual memory ordering semantics
in many instructions, but not all. We actually implement the functions
for all operations, so we get the best possible output.
It does support proper load-acquire and store-release semantics, but
we don't need instructions for it: the ABI requires that a volatile
load be acquire and a volatile store be release.
The Intel and HP compiler codepaths are rewritten, but untested.
Change-Id: I7aa62a4ec65f63a97d1bbd8418bb2492c2be465f
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The LL/SC instructions are only present on MIPS II and up, so don't
pretend to support MIPS I. The previous implementation emitted the
instructions by telling the assembler to change instruction sets. Now,
the user must pass an -march= option to GCC telling it which
architecture or processor is being targetted.
On MIPS64, the 64-bit implementation allows supporting for long long
too.
Change-Id: I6dae6f8f61e563aba6a663227d91c5ddf554aa6a
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation is divided in two files, as it used to be in the
previous implementation: one for ARMv5, one for ARMv6 and up.
For the ARMv5 implementation:
Drop the non-Linux EABI version of the atomics, as it's not
ABI-compatible with the ARMv6 and ARMv7 implementations. This
means this ARMv5 implementation only works on Linux. If other
systems implement kernel helpers like Linux, they can be added
too.
We use the __kernel_cmpxchg located at 0xffff0fc0 to implement the
operations, except for fetchAndStore, for which we use the SWP
instruction.
Also introduce the use of __kernel_dmb (at 0xffff0fa0) for the
memory barrier. Now this code is SMP-safe even when built with
ARMv5.
The kernel cmpxchg helper was introduced in Linux 2.6.12, whereas
the dmb helper was introduced in 2.6.15. That means 2.6.15 is the
minimum version now.
For ARMv6 and up:
Introduce byte, half-word and doubleword atomics that work on
ARMv6K and up.
For ARMv6 specifically, the memory barrier instruction (DMB) isn't
present, so we need to accomplish the same with the MCR
coprocessor instruction.
Change-Id: Ife7f9b920bcc7d1eef7611761f6c59ea940ec7df
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both implementations now are very similar to one another, to the point
we could share the code if we wanted to. They are based on assembly
code for the Relaxed functions only, as the i386 and x86-64
architectures only allow for full memory ordering or something that
closely resembles it (see 8.2 "Memory ordering" in the Intel 64 and
IA-32 Architectures Software Developer's Manual Volume 3A). We could
add "lfence/mfence/sfence" in future versions if we wanted to (SSE2+).
Change-Id: I76966d9f8694edfece2c5ebd3387348fac721447
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code is now much simpler and much more complete. Now the bootstrap
atomics (which aren't atomic at all) contain the full set of
operations.
The only integer supported is int, but all others would work too.
Change-Id: Id99f07818f9da059c4ff02520f9cbf2d1a71a514
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
| |
Replace Nokia contact email address with Qt Project website.
Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
|
| |
Contact point is the Qt Project, and needs to be included for
all new files added to the repository.
Change-Id: Id0e7219e1d11a169f1a91439728cbda55ab29eeb
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QBasicAtomicPointer is forward declared as a class, keep the actual
declaration of QBasicAtomicInteger and QBasicAtomicPointer as class with
all public members (qoldbasicatomic.h does the same).
src/corelib/thread/qbasicatomic.h:158:1: warning:
'QBasicAtomicPointer' defined as a struct template here but
previously declared as a class template [-Wmismatched-tags]
struct QBasicAtomicPointer
^
src/corelib/global/qglobal.h:1861:23: note: did you mean struct here?
template <typename T> class QBasicAtomicPointer;
^~~~~
struct
Change-Id: I38c59c29d7f796dde772e7f403bbf98b04571a08
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Public headers should compile with QT_NO_KEYWORDS defined.
Change-Id: I5620b4b2600f5e39bb402b97d14fdb257dfe9942
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new implementation is API- and ABI-compatible with the old
implementation, provided that QBasicAtomicInt isn't used as an
argument in a function call or the return value: now, QBasicAtomicInt
is a typedef to QBasicAtomicInteger<int>.
The new design is based on CRTP: the QGenericAtomicOps template class
takes as a template parameter the derived class itself. This way, we
implement a "poor man's virtual" without a virtual table and
everything is inline.
QGenericAtomicOps implements most of the atomics code that is repeated
in many classes all over:
* Acquire semantics are obtained by placing an acquire barrier after
the Relaxed operation
* Release semantics are obtained by placing a release barrier before
the Relaxed operation
* Ordered semantics are obtained by placing an ordered barrier before
the Relaxed operation (either way would be fine)
* fetchAndStoreRelaxed and fetchAndAddRelaxed are implemented on top
of testAndSetRelaxed
* ref and deref are implemented on top of fetchAndAddRelaxed
It also adds load, loadAcquire, store and storeRelease: the default
implementations of loadAcquire and storeRelease operate on a volatile
variable and add barriers. There are no direct operators for accessing
the value.
Each architecture-specific implementation can override any of the
functions or the memory barrier functions. It must implement at least
the testAndSetRelaxed function.
In addition, by specialising one template class, the implementations
can allow QBasicAtomicInteger for additional types (of different
sizes). At the very least, int, unsigned and pointers must be supported.
Change-Id: I6da647e225bb330d3cfc16f84d0e7849dff85ec7
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
| |
Change-Id: I15df58f9dc29189419f8cbc0ce47bf11e9f17cf4
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
| |
Change-Id: Iabc7c6a9f5554450e766dc63f518595871a3abb7
Reviewed-by: Richard J. Moore <rich@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides a ~10% improvement to the newly introduced QCoreApplication
event_posting_benchmark (a simple synthetic benchmark of creating a bunch of
events, posting them, and sending the queue).
before:
********* Start testing of QCoreApplicationBenchmark *********
Config: Using QTest library 5.0.0, Qt 5.0.0
PASS : QCoreApplicationBenchmark::initTestCase()
RESULT : QCoreApplicationBenchmark::signal_slot_benchmark():"1000":
0.82 msecs per iteration (total: 53, iterations: 64)
RESULT : QCoreApplicationBenchmark::signal_slot_benchmark():"10000":
8.6 msecs per iteration (total: 69, iterations: 8)
RESULT : QCoreApplicationBenchmark::signal_slot_benchmark():"100000":
84 msecs per iteration (total: 84, iterations: 1)
RESULT : QCoreApplicationBenchmark::signal_slot_benchmark():"1000000":
874 msecs per iteration (total: 874, iterations: 1)
PASS : QCoreApplicationBenchmark::signal_slot_benchmark()
PASS : QCoreApplicationBenchmark::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped
********* Finished testing of QCoreApplicationBenchmark *********
after:
********* Start testing of QCoreApplicationBenchmark *********
Config: Using QTest library 5.0.0, Qt 5.0.0
PASS : QCoreApplicationBenchmark::initTestCase()
RESULT : QCoreApplicationBenchmark::event_posting_benchmark():"1000 events":
0.781 msecs per iteration (total: 100, iterations: 128)
RESULT : QCoreApplicationBenchmark::event_posting_benchmark():"10000 events":
7.8 msecs per iteration (total: 63, iterations: 8)
RESULT : QCoreApplicationBenchmark::event_posting_benchmark():"100000 events":
75 msecs per iteration (total: 75, iterations: 1)
RESULT : QCoreApplicationBenchmark::event_posting_benchmark():"1000000 events":
774 msecs per iteration (total: 774, iterations: 1)
PASS : QCoreApplicationBenchmark::event_posting_benchmark()
PASS : QCoreApplicationBenchmark::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped
********* Finished testing of QCoreApplicationBenchmark *********
Change-Id: Ibf56d9526b0a8cbaf171008da4104bb457628172
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
|
|
|
|
|
| |
Change-Id: I3b569b1240a0bc5b2589de353dbf62c175472448
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After commit 79f675a1e0f628bbc25345ebc1eb1f5809166c6b, the connect and
disconnect callback API effectively becomes useless. Now that these
callbacks cannot/do not, it makes little sense to keep the backdoors
added for Qt Jambi support.
Remove them for now. Should the Qt Jambi team want/need to port to Qt 5,
we can re-add them, possibly designing a better API for doing so as
well.
Change-Id: I6209a1d647d683c979d5294b632b8c12c0f9f91c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a source incompatible change. There is concern that the
convenience of the implicit cast and assignment operators can lead to
misuse. Several commits have already been done that remove excess use
of the implicit cast, which is a *volatile* read every time it's used.
Users of the QAtomic* API should have to think about when they are
loading the value, and if they do or don't need the acquire memory
barrier on load. The code that people would write using this API is
meant to be multi-threaded, concurrent, and correct. The API should not
allow them to inadvertently, possibly unknowingly, shoot themselves
in the foot.
SC-break-rubber-stamped-by: Lars Knoll
Change-Id: I88fbc26d9db7b5ec80a58ad6271ffa13bbfd191f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
... and use it in QCoreApplication::notifyInterna() instead of
"reinventing" the wheel there. The constructor and destructor for
QScopedLoopLevelCounter are inline, so the class does not need to be
exported.
Change-Id: I7af5a4ef0987f277bcc50c1057f3c74152f3d79d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QAbstractEventDispatcher() does no longer install itself into the current
thread. Instead the new methods QThread::setEventDispatcher() and
QCoreApplication::setEventDispatcher() allow to install a custom event
dispatcher into any QThread as long as there is no default event dispatcher
created yet. That is, before the thread has been started with
QThread::start() or, in case of the main thread, before QCoreApplication has
been instantiated.
Change-Id: I7367e13d8d8aebed5a5651260bb69b8818eb1b90
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and isRunning() should return false.
This restore the Qt 4.7 behaviour
In Qt 4.7, the finished() was called with the thread's intenal mutex
locked. Which mean that:
- Call to isRunning or isFinished called from a slot connected to
finish within the thread would deadlock. (Hence no compatibility
to keep here)
- Call to isRunning or isFinished from a slot connected with
QueuedConnection in another thread would lock the mutex until
the destructors are finished. and then return as if the thread have
finished.
Change-Id: I963eccae8f7634aff90cc4bbab6ca886a78e35eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
QAtomic* has a copy constructor, so it may make sense to allow
assignment of one atomic variable to another.
Change-Id: Ic754d13765080e2fcd13dc583940e354ad4404cd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
| |
... since the latter is now deprecated and will be removed.
Change-Id: I456c1bf93ebf119c028bc4a63f1f8a31f069b83b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
|
|
|
|
|
|
|
|
| |
QMutexPrivate takes more memory than necessary, and also initialize
platform specific ressources.
Change-Id: I70be1b89b1c21499645785ae47693a6b2514e28b
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Because we use d as a local variable.
We used this->d to refer it, but this can be confusing to have twice the same
name
Change-Id: I570aa5f444ada358eb456d6b3d9b8bfa60b10bbf
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Those are already outdated and do not compile anymore
(QMutex has changed too much)
Better to remove that dead code so it do not show up in grep anymore
Change-Id: I096e7a73e23cbb77050843c2e1c10929086fdb8f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add Q_DECL_DEPRECATED to all methods that are pending removal once
http://codereview.qt-project.org/#change,6243 is merged.
This is necessary to give people time to react to the source
incompatible change.
Change-Id: Ia72f184d630d593f96dd1d95ad6cd0d3bd5d811c
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: Ia7ef1a8e01001f203e409c710c977d6f4686342e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Q_WS_QPA is the only active code path after merging
refactor, other Q_WS-macros are no longer used.
Enable compilation without -qpa.
- Remove Q_OS_MSDOS, Q_OS_OS2
- Remove Q_WS_QWS
- Remove/replace definitions/conditionals of Q_WS_XX
- Remove qpa branches from profiles
- Replace Q_WS_MAC by Q_OS_MAC
- Replace Q_WS_MAC && !Q_WS_QPA by
Q_OS_MAC && !QT_NO_CORESERVICES
- Similarly in profiles: mac:contains(QT_CONFIG, coreservices)
- Replace Q_FS_FAT by Q_OS_WIN
Change-Id: Icce5a6c55b052c8f72b3b979ddf31a4f388ea9c9
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
When using methods from a template base class, the lookup needs to be
qualified. See http://clang.llvm.org/compatibility.html#dep_lookup_bases
Change-Id: I5b7cd71e0d45414ac0eff97fe9ba5d3ccd5bd9e6
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Thiago Macieira (Intel) <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@kde.org>
|
|
|
|
|
|
|
|
|
| |
Now, users of QBasicAtomicInt and QBasicAtomicPointer must be sure to
use .load() and .store() to access the values.
Change-Id: I6b48ed175618baf387dd38d821bd50e6e93c082e
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
| |
Change-Id: I85139e0334b648bee0d18129cef9387dcc6c3222
Reviewed-by: Jerome Pasion <jerome.pasion@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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of these changes are search-and-replace of d->ref ==, d->ref !=
and d->ref =.
The QBasicAtomicPointer in QObjectPrivate::Connection didn't need to
be basic, so I made it QAtomicPointer.
Change-Id: Ie3271abd1728af599f9ab17c6f4868e475f17bb6
Reviewed-on: http://codereview.qt-project.org/5030
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should be replaced later with proper loadAcquire and storeRelease
functions in the architectures that require them. The code right now
is enough for x86, x86-64 and IA-64. It's probably not good for ARM
and MIPS.
Change-Id: Iaa28a18cad64772539662439c2c14690ec26940f
Reviewed-on: http://codereview.qt-project.org/5029
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/gui/kernel/qapplication_qpa.cpp
src/gui/kernel/qcursor_qpa.cpp
src/gui/kernel/qwindowsysteminterface_qpa.cpp
src/gui/kernel/qwindowsysteminterface_qpa.h
src/gui/kernel/qwindowsysteminterface_qpa_p.h
src/gui/text/qtextcontrol.cpp
src/plugins/platforms/wayland/wayland.pro
src/widgets/accessible/qaccessible2.h
src/widgets/widgets/qwidgetlinecontrol_p.h
Change-Id: I5e6f4eb184159dccc67e8f13673edb884d179c74
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Merge-request: 43
Reviewed-by: olivier
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Change-Id: Ic5e3ce8f49daf83665865f89fa9fd3488cc5b349
Reviewed-on: http://codereview.qt.nokia.com/2959
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/gui/kernel/qapplication_x11.cpp
src/gui/widgets/qlinecontrol.cpp
src/gui/widgets/qlinecontrol_p.h
src/gui/widgets/qtabwidget.h
Change-Id: I90ba893a5553b9ff5658ca0a3221ecf76be4c736
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
And added a POD QBasicMutex. (QBasicMutex* can safely be
static_cast'ed to QMutex*)
The d pointer is not anymore always a QMutexPrivate.
If d == 0x0: the mutex is unlocked
If d == 0x1: the mutex is locked, uncontended
On linux:
if d == 0x3: the mutex is locked contended, waiting on a futex
If d is a pointer, it is a recursive mutex.
On non-linux platforms:
When a thread tries to lock a mutex for which d == 0x1, it will try to
assing it a QMutexPrivated (allocated from a freelist) in order to wait
for it.
Change-Id: Ie1431cd9402a576fdd9a693cfd747166eebf5622
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/2116
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The commit 412ef92162f8874a1585221125c31ef5f8ccc9cb introduced a fix, but the
fix was incomplete. Fix it for good.
Change-Id: I3e7fbdb294f8e960fbbf2e830790750240ed813a
Merge-request: 30
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/1991
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/opengl/cube/main.cpp
examples/widgets/applicationicon/main.cpp
examples/widgets/orientation/main.cpp
src/gui/image/qicon.cpp
src/gui/image/qimage.h
src/gui/image/qpixmap.h
src/gui/image/qpixmap_mac.cpp
src/gui/kernel/qapplication.cpp
src/gui/kernel/qpalette.cpp
src/gui/kernel/qwidget.cpp
src/gui/styles/qmacstyle_mac.mm
src/gui/widgets/qmenubar.cpp
src/gui/widgets/qslider.cpp
src/opengl/qwindowsurface_gl.cpp
tests/auto/qvariant/qvariant.pro
tests/benchmarks/corelib/kernel/qobject/qobject.pro
tests/benchmarks/gui/animation/qanimation/qanimation.pro
tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/qgraphicsanchorlayout.pro
tests/benchmarks/gui/graphicsview/qgraphicsitem/qgraphicsitem.pro
tests/benchmarks/gui/graphicsview/qgraphicsscene/qgraphicsscene.pro
tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.pro
tests/benchmarks/gui/graphicsview/qgraphicswidget/qgraphicswidget.pro
tests/benchmarks/gui/image/qimagereader/qimagereader.pro
tests/benchmarks/gui/itemviews/qtableview/qtableview.pro
tests/benchmarks/gui/kernel/qapplication/qapplication.pro
tests/benchmarks/gui/kernel/qwidget/qwidget.pro
tests/benchmarks/gui/painting/qpainter/qpainter.pro
tests/benchmarks/gui/painting/qtbench/qtbench.pro
tests/benchmarks/gui/painting/qtracebench/qtracebench.pro
tests/benchmarks/gui/text/qtext/qtext.pro
Change-Id: I4b911c795ecb29d73b6a7fd18819711b49478a30
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Recalculate how much time is remaining.
This commit needs to be backported to 4.8.
Change-Id: Ib587335bb90306e65969bb26256fb388f8f6bd24
Merge-request: 20
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/1666
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
config.tests/unix/opengldesktop/opengldesktop.cpp
examples/itemviews/interview/interview.pro
examples/mainwindows/mainwindow/mainwindow.pro
examples/openvg/README
examples/richtext/textedit/textedit.pro
examples/tools/undo/undo.pro
src/corelib/global/qglobal.h
src/corelib/kernel/qcoreapplication.h
src/corelib/kernel/qcoreevent.h
src/corelib/kernel/qmetatype.h
src/gui/kernel/qevent.cpp
src/gui/kernel/qevent.h
src/gui/painting/qpaintengine_raster.cpp
src/gui/painting/qpaintengine_raster_p.h
src/gui/text/qfontdatabase.cpp
src/opengl/qgl.h
src/openvg/qpaintengine_vg.cpp
src/plugins/platforms/wayland/qwaylandwindow.cpp
tests/auto/qmainwindow/qmainwindow.pro
Change-Id: I6bfb586740a68379bb99f4612ec993393a5f3234
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: I6641c62d75d2034a46ea7cc869ae65285ae8b8f4
Reviewed-on: http://codereview.qt.nokia.com/866
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Liang Qi <liang.qi@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some functions (such as QObject::moveToThread) did not keep
the event ordered by priority.
And because qUpperBound is used to add events, that mean new
events would not be inserted in order.
Task-number: QTBUG19637
Change-Id: I38eb9addb1cdd45b8566e000361ac6e5f1f2c2b8
Reviewed-on: http://codereview.qt.nokia.com/733
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/animation/animatedtiles/animatedtiles.pro
examples/animation/appchooser/appchooser.pro
examples/animation/easing/easing.pro
examples/animation/easing/window.h
examples/animation/moveblocks/moveblocks.pro
examples/animation/states/states.pro
examples/animation/stickman/stickman.pro
examples/dbus/dbus-chat/dbus-chat.pro
examples/dbus/dbus.pro
examples/dbus/remotecontrolledcar/car/car.pro
examples/dbus/remotecontrolledcar/controller/controller.pro
examples/dbus/remotecontrolledcar/remotecontrolledcar.pro
examples/desktop/desktop.pro
examples/desktop/screenshot/screenshot.pro
examples/dialogs/classwizard/classwizard.pro
examples/dialogs/configdialog/configdialog.pro
examples/dialogs/dialogs.pro
examples/dialogs/extension/extension.pro
examples/dialogs/findfiles/findfiles.pro
examples/dialogs/licensewizard/licensewizard.pro
examples/dialogs/sipdialog/sipdialog.pro
examples/dialogs/standarddialogs/standarddialogs.pro
examples/dialogs/tabdialog/tabdialog.pro
examples/dialogs/trivialwizard/trivialwizard.pro
examples/draganddrop/draggableicons/draggableicons.pro
examples/draganddrop/draggabletext/draggabletext.pro
examples/draganddrop/dropsite/dropsite.pro
examples/draganddrop/fridgemagnets/fridgemagnets.pro
examples/draganddrop/puzzle/puzzle.pro
examples/effects/blurpicker/blurpicker.pro
examples/effects/fademessage/fademessage.pro
examples/effects/lighting/lighting.pro
examples/examples.pro
examples/gestures/imagegestures/imagegestures.pro
examples/graphicsview/anchorlayout/anchorlayout.pro
examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.pro
examples/graphicsview/collidingmice/collidingmice.pro
examples/graphicsview/diagramscene/diagramscene.pro
examples/graphicsview/dragdroprobot/dragdroprobot.pro
examples/graphicsview/elasticnodes/elasticnodes.pro
examples/graphicsview/flowlayout/flowlayout.pro
examples/graphicsview/graphicsview.pro
examples/graphicsview/simpleanchorlayout/simpleanchorlayout.pro
examples/graphicsview/weatheranchorlayout/weatheranchorlayout.pro
examples/ipc/ipc.pro
examples/ipc/sharedmemory/sharedmemory.pro
examples/itemviews/addressbook/addressbook.pro
examples/itemviews/basicsortfiltermodel/basicsortfiltermodel.pro
examples/itemviews/chart/chart.pro
examples/itemviews/coloreditorfactory/coloreditorfactory.pro
examples/itemviews/combowidgetmapper/combowidgetmapper.pro
examples/itemviews/customsortfiltermodel/customsortfiltermodel.pro
examples/itemviews/dirview/dirview.pro
examples/itemviews/editabletreemodel/editabletreemodel.pro
examples/itemviews/fetchmore/fetchmore.pro
examples/itemviews/frozencolumn/frozencolumn.pro
examples/itemviews/itemviews.pro
examples/itemviews/pixelator/pixelator.pro
examples/itemviews/puzzle/puzzle.pro
examples/itemviews/simpletreemodel/simpletreemodel.pro
examples/itemviews/simplewidgetmapper/simplewidgetmapper.pro
examples/itemviews/spinboxdelegate/spinboxdelegate.pro
examples/itemviews/stardelegate/stardelegate.pro
examples/ja_JP/linguist/hellotr/hellotr.pro
examples/layouts/basiclayouts/basiclayouts.pro
examples/layouts/borderlayout/borderlayout.pro
examples/layouts/dynamiclayouts/dynamiclayouts.pro
examples/layouts/flowlayout/flowlayout.pro
examples/layouts/layouts.pro
examples/linguist/arrowpad/arrowpad.pro
examples/linguist/hellotr/hellotr.pro
examples/linguist/linguist.pro
examples/linguist/trollprint/trollprint.pro
examples/mainwindows/application/application.pro
examples/mainwindows/dockwidgets/dockwidgets.pro
examples/mainwindows/mainwindows.pro
examples/mainwindows/mdi/mdi.pro
examples/mainwindows/menus/menus.pro
examples/mainwindows/recentfiles/recentfiles.pro
examples/mainwindows/sdi/sdi.pro
examples/network/network.pro
examples/opengl/opengl.pro
examples/openvg/openvg.pro
examples/painting/basicdrawing/basicdrawing.pro
examples/painting/concentriccircles/concentriccircles.pro
examples/painting/fontsampler/fontsampler.pro
examples/painting/imagecomposition/imagecomposition.pro
examples/painting/painterpaths/painterpaths.pro
examples/painting/painting.pro
examples/painting/transformations/transformations.pro
examples/qtconcurrent/imagescaling/imagescaling.pro
examples/qtconcurrent/map/map.pro
examples/qtconcurrent/progressdialog/progressdialog.pro
examples/qtconcurrent/qtconcurrent.pro
examples/qtconcurrent/runfunction/runfunction.pro
examples/qtconcurrent/wordcount/wordcount.pro
examples/qtestlib/qtestlib.pro
examples/qtestlib/tutorial1/tutorial1.pro
examples/qtestlib/tutorial2/tutorial2.pro
examples/qtestlib/tutorial3/tutorial3.pro
examples/qtestlib/tutorial4/tutorial4.pro
examples/qtestlib/tutorial5/tutorial5.pro
examples/qws/dbscreen/dbscreen.pro
examples/qws/framebuffer/framebuffer.pro
examples/qws/mousecalibration/mousecalibration.pro
examples/qws/simpledecoration/simpledecoration.pro
examples/qws/svgalib/svgalib.pro
examples/richtext/calendar/calendar.pro
examples/richtext/orderform/orderform.pro
examples/richtext/richtext.pro
examples/richtext/syntaxhighlighter/syntaxhighlighter.pro
examples/sql/sql.pro
examples/statemachine/eventtransitions/eventtransitions.pro
examples/statemachine/rogue/rogue.pro
examples/statemachine/trafficlight/trafficlight.pro
examples/statemachine/twowaybutton/twowaybutton.pro
examples/threads/mandelbrot/mandelbrot.pro
examples/threads/queuedcustomtype/queuedcustomtype.pro
examples/threads/threads.pro
examples/tools/codecs/codecs.pro
examples/tools/completer/completer.pro
examples/tools/contiguouscache/contiguouscache.pro
examples/tools/customcompleter/customcompleter.pro
examples/tools/customtype/customtype.pro
examples/tools/customtypesending/customtypesending.pro
examples/tools/echoplugin/echoplugin.pro
examples/tools/echoplugin/echowindow/echowindow.pro
examples/tools/echoplugin/plugin/plugin.pro
examples/tools/i18n/i18n.pro
examples/tools/inputpanel/inputpanel.pro
examples/tools/plugandpaint/plugandpaint.pro
examples/tools/plugandpaintplugins/basictools/basictools.pro
examples/tools/plugandpaintplugins/extrafilters/extrafilters.pro
examples/tools/plugandpaintplugins/plugandpaintplugins.pro
examples/tools/regexp/regexp.pro
examples/tools/settingseditor/settingseditor.pro
examples/tools/styleplugin/plugin/plugin.pro
examples/tools/styleplugin/styleplugin.pro
examples/tools/styleplugin/stylewindow/stylewindow.pro
examples/tools/tools.pro
examples/tools/treemodelcompleter/treemodelcompleter.pro
examples/tools/undoframework/undoframework.pro
examples/touch/dials/dials.pro
examples/touch/fingerpaint/fingerpaint.pro
examples/touch/knobs/knobs.pro
examples/touch/pinchzoom/pinchzoom.pro
examples/tutorials/addressbook-fr/addressbook-fr.pro
examples/tutorials/addressbook-fr/part1/part1.pro
examples/tutorials/addressbook-fr/part2/part2.pro
examples/tutorials/addressbook-fr/part3/part3.pro
examples/tutorials/addressbook-fr/part4/part4.pro
examples/tutorials/addressbook-fr/part5/part5.pro
examples/tutorials/addressbook-fr/part6/part6.pro
examples/tutorials/addressbook-fr/part7/part7.pro
examples/tutorials/addressbook/addressbook.pro
examples/tutorials/addressbook/part1/part1.pro
examples/tutorials/addressbook/part2/part2.pro
examples/tutorials/addressbook/part3/part3.pro
examples/tutorials/addressbook/part4/part4.pro
examples/tutorials/addressbook/part5/part5.pro
examples/tutorials/addressbook/part6/part6.pro
examples/tutorials/addressbook/part7/part7.pro
examples/tutorials/modelview/1_readonly/1_readonly.pro
examples/tutorials/modelview/2_formatting/2_formatting.pro
examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro
examples/tutorials/modelview/4_headers/4_headers.pro
examples/tutorials/modelview/5_edit/5_edit.pro
examples/tutorials/modelview/6_treeview/6_treeview.pro
examples/tutorials/modelview/7_selections/7_selections.pro
examples/tutorials/modelview/modelview.pro
examples/tutorials/widgets/childwidget/childwidget.pro
examples/tutorials/widgets/nestedlayouts/nestedlayouts.pro
examples/tutorials/widgets/toplevel/toplevel.pro
examples/tutorials/widgets/windowlayout/windowlayout.pro
examples/uitools/multipleinheritance/multipleinheritance.pro
examples/uitools/textfinder/textfinder.pro
examples/uitools/uitools.pro
examples/widgets/analogclock/analogclock.pro
examples/widgets/calculator/calculator.pro
examples/widgets/calendarwidget/calendarwidget.pro
examples/widgets/charactermap/charactermap.pro
examples/widgets/codeeditor/codeeditor.pro
examples/widgets/digitalclock/digitalclock.pro
examples/widgets/groupbox/groupbox.pro
examples/widgets/icons/icons.pro
examples/widgets/imageviewer/imageviewer.pro
examples/widgets/lineedits/lineedits.pro
examples/widgets/movie/movie.pro
examples/widgets/scribble/scribble.pro
examples/widgets/shapedclock/shapedclock.pro
examples/widgets/sliders/sliders.pro
examples/widgets/softkeys/softkeys.pro
examples/widgets/spinboxes/spinboxes.pro
examples/widgets/styles/styles.pro
examples/widgets/stylesheet/stylesheet.pro
examples/widgets/tablet/tablet.pro
examples/widgets/tetrix/tetrix.pro
examples/widgets/tooltips/tooltips.pro
examples/widgets/validators/validators.pro
examples/widgets/widgets.pro
examples/widgets/windowflags/windowflags.pro
examples/xml/xml.pro
mkspecs/qws/freebsd-generic-g++/qplatformdefs.h
mkspecs/qws/linux-arm-g++/qplatformdefs.h
mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h
mkspecs/qws/linux-armv6-g++/qplatformdefs.h
mkspecs/qws/linux-avr32-g++/qplatformdefs.h
mkspecs/qws/linux-cellon-g++/qplatformdefs.h
mkspecs/qws/linux-dm7000-g++/qplatformdefs.h
mkspecs/qws/linux-dm800-g++/qplatformdefs.h
mkspecs/qws/linux-generic-g++-32/qplatformdefs.h
mkspecs/qws/linux-generic-g++/qplatformdefs.h
mkspecs/qws/linux-ipaq-g++/qplatformdefs.h
mkspecs/qws/linux-lsb-g++/qplatformdefs.h
mkspecs/qws/linux-mips-g++/qplatformdefs.h
mkspecs/qws/linux-nacl-g++/qplatformdefs.h
mkspecs/qws/linux-powerpc-g++/qplatformdefs.h
mkspecs/qws/linux-sh-g++/qplatformdefs.h
mkspecs/qws/linux-sh4al-g++/qplatformdefs.h
mkspecs/qws/linux-sharp-g++/qplatformdefs.h
mkspecs/qws/linux-x86-g++/qplatformdefs.h
mkspecs/qws/linux-x86_64-g++/qplatformdefs.h
mkspecs/qws/linux-zylonite-g++/qplatformdefs.h
mkspecs/qws/macx-generic-g++/qplatformdefs.h
mkspecs/qws/macx-iphonedevice-g++/qplatformdefs.h
mkspecs/qws/macx-iphonesimulator-g++/qplatformdefs.h
mkspecs/qws/macx-nacl-g++/qplatformdefs.h
mkspecs/qws/solaris-generic-g++/qplatformdefs.h
src/gui/dialogs/qprintdialog_qws.cpp
src/gui/egl/qegl_qws.cpp
src/gui/embedded/qcopchannel_qws.cpp
src/gui/embedded/qcopchannel_qws.h
src/gui/embedded/qdecoration_qws.cpp
src/gui/embedded/qdecoration_qws.h
src/gui/embedded/qdecorationdefault_qws.cpp
src/gui/embedded/qdecorationdefault_qws.h
src/gui/embedded/qdecorationfactory_qws.cpp
src/gui/embedded/qdecorationfactory_qws.h
src/gui/embedded/qdecorationplugin_qws.cpp
src/gui/embedded/qdecorationplugin_qws.h
src/gui/embedded/qdecorationstyled_qws.cpp
src/gui/embedded/qdecorationstyled_qws.h
src/gui/embedded/qdecorationwindows_qws.cpp
src/gui/embedded/qdecorationwindows_qws.h
src/gui/embedded/qdirectpainter_qws.cpp
src/gui/embedded/qdirectpainter_qws.h
src/gui/embedded/qkbd_defaultmap_qws_p.h
src/gui/embedded/qkbd_qws.cpp
src/gui/embedded/qkbd_qws.h
src/gui/embedded/qkbd_qws_p.h
src/gui/embedded/qkbddriverfactory_qws.cpp
src/gui/embedded/qkbddriverfactory_qws.h
src/gui/embedded/qkbddriverplugin_qws.cpp
src/gui/embedded/qkbddriverplugin_qws.h
src/gui/embedded/qkbdintegrity_qws.cpp
src/gui/embedded/qkbdintegrity_qws.h
src/gui/embedded/qkbdlinuxinput_qws.cpp
src/gui/embedded/qkbdlinuxinput_qws.h
src/gui/embedded/qkbdqnx_qws.cpp
src/gui/embedded/qkbdqnx_qws.h
src/gui/embedded/qkbdtty_qws.cpp
src/gui/embedded/qkbdtty_qws.h
src/gui/embedded/qkbdum_qws.cpp
src/gui/embedded/qkbdum_qws.h
src/gui/embedded/qkbdvfb_qws.cpp
src/gui/embedded/qkbdvfb_qws.h
src/gui/embedded/qlock.cpp
src/gui/embedded/qlock_p.h
src/gui/embedded/qmouse_qws.cpp
src/gui/embedded/qmouse_qws.h
src/gui/embedded/qmousedriverfactory_qws.cpp
src/gui/embedded/qmousedriverfactory_qws.h
src/gui/embedded/qmousedriverplugin_qws.cpp
src/gui/embedded/qmousedriverplugin_qws.h
src/gui/embedded/qmouseintegrity_qws.cpp
src/gui/embedded/qmouseintegrity_qws.h
src/gui/embedded/qmouselinuxinput_qws.cpp
src/gui/embedded/qmouselinuxinput_qws.h
src/gui/embedded/qmouselinuxtp_qws.cpp
src/gui/embedded/qmouselinuxtp_qws.h
src/gui/embedded/qmousepc_qws.cpp
src/gui/embedded/qmousepc_qws.h
src/gui/embedded/qmouseqnx_qws.cpp
src/gui/embedded/qmouseqnx_qws.h
src/gui/embedded/qmousetslib_qws.cpp
src/gui/embedded/qmousetslib_qws.h
src/gui/embedded/qmousevfb_qws.cpp
src/gui/embedded/qmousevfb_qws.h
src/gui/embedded/qscreen_qws.cpp
src/gui/embedded/qscreen_qws.h
src/gui/embedded/qscreendriverfactory_qws.cpp
src/gui/embedded/qscreendriverfactory_qws.h
src/gui/embedded/qscreendriverplugin_qws.cpp
src/gui/embedded/qscreendriverplugin_qws.h
src/gui/embedded/qscreenintegrityfb_qws.cpp
src/gui/embedded/qscreenintegrityfb_qws.h
src/gui/embedded/qscreenlinuxfb_qws.cpp
src/gui/embedded/qscreenlinuxfb_qws.h
src/gui/embedded/qscreenmulti_qws.cpp
src/gui/embedded/qscreenmulti_qws_p.h
src/gui/embedded/qscreenproxy_qws.cpp
src/gui/embedded/qscreenproxy_qws.h
src/gui/embedded/qscreenqnx_qws.cpp
src/gui/embedded/qscreenqnx_qws.h
src/gui/embedded/qscreentransformed_qws.cpp
src/gui/embedded/qscreentransformed_qws.h
src/gui/embedded/qscreenvfb_qws.cpp
src/gui/embedded/qscreenvfb_qws.h
src/gui/embedded/qsoundqss_qws.cpp
src/gui/embedded/qsoundqss_qws.h
src/gui/embedded/qtransportauth_qws.cpp
src/gui/embedded/qtransportauth_qws.h
src/gui/embedded/qtransportauth_qws_p.h
src/gui/embedded/qtransportauthdefs_qws.h
src/gui/embedded/qunixsocket.cpp
src/gui/embedded/qunixsocket_p.h
src/gui/embedded/qunixsocketserver.cpp
src/gui/embedded/qunixsocketserver_p.h
src/gui/embedded/qvfbhdr.h
src/gui/embedded/qwindowsystem_p.h
src/gui/embedded/qwindowsystem_qws.cpp
src/gui/embedded/qwindowsystem_qws.h
src/gui/embedded/qwscommand_qws.cpp
src/gui/embedded/qwscommand_qws_p.h
src/gui/embedded/qwscursor_qws.cpp
src/gui/embedded/qwsdisplay_qws.h
src/gui/embedded/qwsdisplay_qws_p.h
src/gui/embedded/qwsembedwidget.cpp
src/gui/embedded/qwsevent_qws.cpp
src/gui/embedded/qwsevent_qws.h
src/gui/embedded/qwslock.cpp
src/gui/embedded/qwslock_p.h
src/gui/embedded/qwsmanager_p.h
src/gui/embedded/qwsmanager_qws.cpp
src/gui/embedded/qwsmanager_qws.h
src/gui/embedded/qwsproperty_qws.cpp
src/gui/embedded/qwsproperty_qws.h
src/gui/embedded/qwsprotocolitem_qws.h
src/gui/embedded/qwssharedmemory.cpp
src/gui/embedded/qwssharedmemory_p.h
src/gui/embedded/qwssignalhandler.cpp
src/gui/embedded/qwssignalhandler_p.h
src/gui/embedded/qwssocket_qws.cpp
src/gui/embedded/qwssocket_qws.h
src/gui/embedded/qwsutils_qws.h
src/gui/image/qpixmap_qws.cpp
src/gui/inputmethod/qwsinputcontext_p.h
src/gui/inputmethod/qwsinputcontext_qws.cpp
src/gui/kernel/qapplication_qpa.cpp
src/gui/kernel/qapplication_qws.cpp
src/gui/kernel/qclipboard_qws.cpp
src/gui/kernel/qcursor_qws.cpp
src/gui/kernel/qdesktopwidget_qws.cpp
src/gui/kernel/qeventdispatcher_glib_qws.cpp
src/gui/kernel/qeventdispatcher_glib_qws_p.h
src/gui/kernel/qeventdispatcher_qws.cpp
src/gui/kernel/qeventdispatcher_qws_p.h
src/gui/kernel/qplatformintegration_qpa.cpp
src/gui/kernel/qplatformwindowformat_qpa.cpp
src/gui/kernel/qplatformwindowformat_qpa.h
src/gui/kernel/qsessionmanager_qws.cpp
src/gui/kernel/qsound_qws.cpp
src/gui/kernel/qwidget_qws.cpp
src/gui/painting/qcolormap_qws.cpp
src/gui/painting/qgraphicssystem.cpp
src/gui/painting/qgraphicssystem_mac.cpp
src/gui/painting/qgraphicssystem_mac_p.h
src/gui/painting/qgraphicssystem_p.h
src/gui/painting/qgraphicssystem_qws.cpp
src/gui/painting/qgraphicssystem_qws_p.h
src/gui/painting/qgraphicssystem_raster.cpp
src/gui/painting/qgraphicssystem_raster_p.h
src/gui/painting/qgraphicssystem_runtime.cpp
src/gui/painting/qgraphicssystem_runtime_p.h
src/gui/painting/qgraphicssystemfactory.cpp
src/gui/painting/qgraphicssystemfactory_p.h
src/gui/painting/qgraphicssystemplugin.cpp
src/gui/painting/qgraphicssystemplugin_p.h
src/gui/painting/qpaintdevice_x11.cpp
src/gui/painting/qprintengine_ps.cpp
src/gui/painting/qprintengine_ps_p.h
src/gui/painting/qprintengine_qws.cpp
src/gui/painting/qprintengine_qws_p.h
src/gui/painting/qregion_qws.cpp
src/gui/painting/qunifiedtoolbarsurface_mac.cpp
src/gui/painting/qunifiedtoolbarsurface_mac_p.h
src/gui/painting/qwindowsurface_mac.cpp
src/gui/painting/qwindowsurface_qws.cpp
src/gui/painting/qwindowsurface_qws_p.h
src/gui/painting/qwindowsurface_raster.cpp
src/gui/painting/qwindowsurface_raster_p.h
src/gui/painting/qwindowsurface_s60.cpp
src/gui/painting/qwindowsurface_s60_p.h
src/gui/painting/qwindowsurface_x11.cpp
src/gui/painting/qwindowsurface_x11_p.h
src/gui/painting/qwmatrix.h
src/gui/text/qabstractfontengine_qws.cpp
src/gui/text/qabstractfontengine_qws.h
src/gui/text/qfont_qws.cpp
src/gui/text/qfontdatabase_qws.cpp
src/gui/text/qfontengine_qws.cpp
src/opengl/qgl_qpa.cpp
src/opengl/qgl_qws.cpp
src/opengl/qglscreen_qws.cpp
src/opengl/qglscreen_qws.h
src/opengl/qglwindowsurface_qws.cpp
src/opengl/qgraphicssystem_gl.cpp
src/opengl/qgraphicssystem_gl_p.h
src/openvg/qpaintengine_vg.cpp
src/openvg/qpaintengine_vg_p.h
src/openvg/qpixmapdata_vg.cpp
src/openvg/qpixmapdata_vg_p.h
src/openvg/qpixmapfilter_vg.cpp
src/openvg/qpixmapfilter_vg_p.h
src/openvg/qvg.h
src/openvg/qvg_p.h
src/openvg/qvg_symbian.cpp
src/openvg/qvgcompositionhelper_p.h
src/openvg/qvgfontglyphcache_p.h
src/openvg/qvgimagepool.cpp
src/openvg/qvgimagepool_p.h
src/openvg/qwindowsurface_vg.cpp
src/openvg/qwindowsurface_vg_p.h
src/openvg/qwindowsurface_vgegl.cpp
src/openvg/qwindowsurface_vgegl_p.h
src/plugins/decorations/default/main.cpp
src/plugins/decorations/styled/main.cpp
src/plugins/decorations/windows/main.cpp
src/plugins/gfxdrivers/ahi/qscreenahi_qws.cpp
src/plugins/gfxdrivers/ahi/qscreenahi_qws.h
src/plugins/gfxdrivers/ahi/qscreenahiplugin.cpp
src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp
src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.h
src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp
src/plugins/gfxdrivers/directfb/qdirectfbmouse.h
src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.h
src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h
src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp
src/plugins/gfxdrivers/directfb/qdirectfbscreen.h
src/plugins/gfxdrivers/directfb/qdirectfbscreenplugin.cpp
src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.h
src/plugins/gfxdrivers/eglnullws/eglnullwsscreen.cpp
src/plugins/gfxdrivers/eglnullws/eglnullwsscreen.h
src/plugins/gfxdrivers/eglnullws/eglnullwsscreenplugin.cpp
src/plugins/gfxdrivers/eglnullws/eglnullwsscreenplugin.h
src/plugins/gfxdrivers/eglnullws/eglnullwswindowsurface.cpp
src/plugins/gfxdrivers/eglnullws/eglnullwswindowsurface.h
src/plugins/gfxdrivers/linuxfb/main.cpp
src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c
src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.h
src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h
src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.h
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreenplugin.cpp
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.cpp
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.h
src/plugins/gfxdrivers/qvfb/main.cpp
src/plugins/gfxdrivers/transformed/main.cpp
src/plugins/gfxdrivers/vnc/main.cpp
src/plugins/gfxdrivers/vnc/qscreenvnc_p.h
src/plugins/gfxdrivers/vnc/qscreenvnc_qws.cpp
src/plugins/gfxdrivers/vnc/qscreenvnc_qws.h
src/plugins/graphicssystems/meego/dithering.cpp
src/plugins/graphicssystems/meego/qmeegoextensions.cpp
src/plugins/graphicssystems/meego/qmeegoextensions.h
src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
src/plugins/graphicssystems/meego/qmeegographicssystem.h
src/plugins/graphicssystems/meego/qmeegographicssystemplugin.cpp
src/plugins/graphicssystems/meego/qmeegographicssystemplugin.h
src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp
src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h
src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp
src/plugins/graphicssystems/meego/qmeegopixmapdata.h
src/plugins/graphicssystems/meego/qmeegorasterpixmapdata.cpp
src/plugins/graphicssystems/opengl/main.cpp
src/plugins/graphicssystems/openvg/qgraphicssystem_vg.cpp
src/plugins/graphicssystems/openvg/qgraphicssystem_vg_p.h
src/plugins/graphicssystems/shivavg/main.cpp
src/plugins/graphicssystems/shivavg/shivavggraphicssystem.cpp
src/plugins/graphicssystems/shivavg/shivavggraphicssystem.h
src/plugins/graphicssystems/shivavg/shivavgwindowsurface.cpp
src/plugins/graphicssystems/shivavg/shivavgwindowsurface.h
src/plugins/graphicssystems/trace/main.cpp
src/plugins/graphicssystems/trace/qgraphicssystem_trace.cpp
src/plugins/graphicssystems/trace/qgraphicssystem_trace_p.h
src/plugins/kbddrivers/linuxinput/main.cpp
src/plugins/mousedrivers/linuxtp/main.cpp
src/plugins/mousedrivers/pc/main.cpp
src/plugins/mousedrivers/tslib/main.cpp
src/widgets/kernel/qwidget_qpa.cpp
|
| |
| |
| |
| |
| |
| |
| | |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|