Fix leak in QDragManager::drag on mac

Change-Id: I467129f989b6e28078c9dd789cde7ff898faf1f5
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
QNX: Changing the way JSC retrieves the current stack base pointer

What Qt is calling the stackbase is the top of the stack.
The thread local storage [__tls()] area is at the top of the stack
and the stack pointer is initialized below this on thread
creation.
With this patch, the stack base pointer can be retrieved faster then in
the current implementation.

This patch is from Sean Boudreau.

Change-Id: I3d1ac58d5c43997cbf462424c66be0c7caafcf1b
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
fix off-by-one index check

Change-Id: I6d6461eec24895e9aa0e77deccd39210958b7e2c
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
(cherry picked from qtbase/96a22ed926cfd706c1b5aca1881f124bc9624f2f)
Bring in WebKit revisions 139553 and 139921.

They are primarily useful for getting rid of some libstdc++-specific
includes which break the build with libc++, and also for simplifying the
code and removing a Darwin-specific code path.

r139553 by ossy@webkit.org:
  Use sync_add_and_fetch instead of gnu_cxx::exchange_and_add
  https://bugs.webkit.org/show_bug.cgi?id=106729

  After r139514 we need atomicIncrement(int64_t volatile*) for all
  platform. Now the GCC implementation of atomicIncrement() is based on
  gnu_cxx::exchange_and_add, which doesn't support int64_t type, but
  sync_add_and_fetch does.

  Reviewed by Benjamin Poulain.

r139921 by benjamin@webkit.org:
  Use GCC's implementation of atomicIncrement/Decrement on Mac
  https://bugs.webkit.org/show_bug.cgi?id=106976

  Reviewed by Filip Pizlo.

  wtf/Atomics.h: GCC and LLVM have builtin for atomic ADD and SUB:
                 sync_add_and_fetch, sync_sub_and_fetch.

  Using them let the compiler just generate the atomic operations inline
  instead of generating a function call to LibC. It also simplify the
  code a bit.

Cherry-picked from qtwebkit/0baf197 and qtwebkit/801fc96. I'm cherry-picking
both revisions together to match what was done in 0de22e80.

Change-Id: Ie5c1067980662ff04e8e36d8cf6e9459b7c46aab
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
BlackBerry: Increased loop level around bps_get_event

This is needed, because bps_get_event can also invoke callbacks.
Deferred deletions in such a callback are not executed for instance,
because the loop level might already be at its minimum.
Backported from qtbase: f62c92b

Change-Id: I83d72d773d53b7b84ec590180f6b1131a57e0f46
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Set projection matrix for systems with OpenGL 3.1

The projection matrix should also be set for systems
running OpenGL 3.1 with GL_ARB_compatibility extension.

Task-number: QTBUG-28284

This fix is based on Commit 9514422eeecb468fbf0a60604f5699f9caba3f39
from qt/qtbase project.

Change-Id: Iadc5bf3a0e73e401e5c8c5b220fb9bd0ace3970f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Fix drawing of 0-width polylines from outside the devicerect.

This was broken by a previous fix which aimed to fix gaps in
polylines with tiny line segments. The result was that we
skipped updating the origin point when stroke() didn't produce
pixels which accidentally included the case of the line
being completely outside the deviceRect. I fixed this
by returning the value of clipLine in drawLine to the caller
so we could still update the origin for this case.

Task-number: QTBUG-31579
Change-Id: Iac29436f042da7658bbeaf9370351dc6f2c95065
(cherry picked from qtbase/900cccfd459fcbdbc4aa3d313afe12cfbf68fd87)
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
can show the Cocoa color panel repeatedly

Task-number: QTBUG-11188
Change-Id: I8491985dd6f04971a7aae2ccf7a53fd7294b799b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
qfilesystemengine_mac.cpp is empty => purge

All mac related qfilesystemengine operations are done in
qfilesystemengine_unix.
Purging it like commit bd7ca33889139782f3f0063f93ca9c1f39501a17 in
qtbase

Change-Id: I16ba494b699d731c3cd688cbd34b81cc67851b47
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Fix clipping of QTextList decorators.

List decorators may be clipped if you set a large font size and/or
small indent for a QTextList. This fix is to prevent clipping by
moving list decorators and items to left (or to right in case of
right to left layouts) so that the list decorator is always painted
inside the layout.

This commit fixes painting related issue, so auto test is not needed.
The manual test program can be used for verification purposes.

Task-number: QTBUG-5111
Change-Id: I0de01f4d6b833289948ac29e38dd3cc8ab9bca9e
(cherry picked from commit qtbase/ad443dfb1d8e9096c4913686aa2ed0bc9b3f5de7)
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Fix Mac static builds so they get the qt_menu.nib from the resource file

Instead of loading the file from the bundle (if it existed) then we
create the qt_menu.nib from the resources instead. This ensures that
static builds no longer have to have the qt_menu.nib file manually
copied to be in the Resources folder for every application.

Change-Id: I7abb6fad6395d466e22e7a3b7ffb63b50ae82f65
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Mac: Handle the maximizing of the window ourselves when it is frameless

On Mac we need to make a frameless window appear maximized manually
rather than letting the underlying Cocoa API deal with it because
it would overwise not appear correctly.

The test is only done for Mac due to the fact that it is not
giving reliable results on other platforms and the source code
change is Mac specific anyway.

Change-Id: Id48a67ba70bfb4bdc921256f1a80328615c98a6b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Bump Qt version to 4.8.6

Change-Id: I91189c8c33591ef866a4478c113f93162afede95
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Fixes: ASSERT in qpaintengine_x11 when using native graphicssystem

QFontEngineFT::loadGlyph() was called with wrong number/type of
arguments, but as the compiler silently accepted an enum value as
a QFixed, and the rest had default values, this was not discovered.

Fix not needed in Qt5, since this functionality is not there.

Task-number: QTBUG-32166
Change-Id: Ifc5be593530fee5ff0e329a9f56f6ba48eea6cdf
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Replaced Nokia copyrights in header

Replaced old Nokia copyrights with Digia copyrights.
Removed "All rights reserved" strings without leading copyrights were
removed (for example, 'Copyright SomeCompany, all rights reserved
remain untouched).

Did NOT touch contact details, will change them later.
Excluded folders that have '3rdparty' in path.

Used command:
find . -path '*/3rdparty/*' -prune -o
-exec grep -ilI -E '.*Copyright.*Nokia.*' {} \; |
tee >(xargs sed -i -r '1,10 s/([ #*]*)(.*Copyright.*Nokia.*)/
\1Copyright \(C\) 2013 Digia Plc and\/or its subsidiary\(-ies\)\./I')
>(xargs sed -i -r '1,10 s/(^[ #*]*)(all rights reserved.*)/\1/I')

This excludes binary files and retains whitespace and #* characters in
the beginning of the edited lines.
Fixed "all rights reserved" that didn't get removed completely.

Change-Id: Iec19ee5ca4fd7e0735a234955fe1648f1f71d206
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Fixed copyright and contact headers

Removed deprecated "all rights reserved" strings
Changed contact details to qt-project.org/legal

Used the following command:

find . -path '*/3rdparty/*' -prune -o  -exec grep -ilI -E
'.*Copyright.*Nokia.*|.*Contact.*' {} \; | tee
>(xargs sed -i -r '1,50 { /INdT|copy[a-z]*[ ]*=/ !{
s/(^[ \t:#*;/"\\-]*)([a-z ]*)(Copyright.*Nokia.*)/
\1\2Copyright \(C\) 2013 Digia Plc and\/or its subsidiary\(-ies\)\./I
}}') >(xargs sed -i -r '1,50 s/(^[ \t:#*;/"\\-]*)
(.*info@qt\.nokia\.com.*|.*INSERT EMAIL ADDRESS.*
|.*qt-info@nokia\.com.*|.*qt-label1@nokia\.com.*
|.*http:\/\/qt\.nokia\.com\/contact.*|.*qt-sales@nokia\.com.*
|.*http:\/\/www\.qt-project\.org\/.*)/
\1Contact: http:\/\/www\.qt-project\.org\/legal/I') >(xargs
sed -i -r '1,50{/(^[ \t:#*;/"\\-]*)(all rights reserved.*)/Id}')

Change-Id: Ic57037fd897a54440e4bad0939ee2bf9f1dfcd5d
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
QString::normalize(): Fix assertion in some corner case

Don't assume `from` is 0 and the string always starts with a starter code point.

This has been fixed for 5.0 as part of Unicode Data & Algorithms update
(qtbase:46b78113b22428e6f8540193fcf0e00591dbd724).

Task-number: QTBUG-30931

Change-Id: I2030aaf831ebe619b980e55e98d5f5a366dbe3ed
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
qpa: Fix memory leak of QFontEngineBox object

Delete QFontEngineBox object in QFontDatabase::load() if the object can not
be used.

cherry-picked from qt5/qtbase effbc9edc57fd8a2e40729a76004fe4f5fafcf49
original patch from jianliang79 <jianliang79@gmail.com>

Modified to match changes in QAtomicInt API.

Change-Id: I1cf7398f582c918426a73973347efe4425100eec
Reviewed-by: jian liang <jianliang79@gmail.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Julien Brianceau <jbrianceau@nds.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Accept defeat when select(2)ing without a monotonic clock

We prefer to use the monotonic clock because it's never affected by time
jumps (such as the user changing the date, or the system adjusting for
any other reasons, including automatic leap seconds). But if a system
doesn't have a monotonic clock, we simply accept the regular, real time
clock and hope it doesn't jump.

This is better than the current code that never restarts a call. The
side-effect is that a 30-second select may become a 3630-second select
if someone sets the clock back one hour.

Task-number: QTBUG-22301
Change-Id: Ia5a3bb453cd475f45b03637e2549165589fd2524
(cherry-picked from qtbase commit c64d602df3712c0d147b7b689d29f79c700e63bc)
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Consider virtual screen when determining dock widget visibility.

Task-number: QTBUG-32260

Change-Id: I8b28e3869a6e3b1ed12a311dfa0100979098fc4b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
(cherry picked from qtbase/6c37fb70d695df001999c78a27ca50d6d2ac6517)