Make sure the content widget never replaces valid data with empty data.

This could happen because insertContents() is called once for
every run of the content provider, even if an invalidation happens
in between. Example sequence:
    run()
    invalidate() [removes result of first run]
    run()
    insertContents() [queued for first run, retrieves result of second run]
    insertContents() [queued for second run, retrieves empty data]
We now check in insertContents() whether the content provider has a
valid root item and do nothing if it does not. This means that
insertContents() will never replace the current model data with empty
data; only invalidateContents() can do that from now on.
Further improvements:
    - Only call insertContents() if the run was not aborted; this
      reduces the number of useless objects in the event queue.
    - Remove the m_rootItem member; it was only used in the run() function.
    - Only add the root item to the list at the end of a successful run;
      there is no reason this object should be accessible from the outside
      while there are still children being added to it.

Change-Id: I80e2ea93dd9bbc8ab7f406c989b61f16f11b6eea
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
QMacStyle: Fix QTabBar appearance on Yosemite

The selected tab text color should be white except when the
window is not active. Also, no text shadow should be rendered
in any case. Finally, there's no need to move the tab shape up
anymore.

Backport of qtbase/e9e66079b16754f1fef89c2ad93593d7d55c8654

Change-Id: Ib41b9ccb990dc5c550f5a48c855bebd39262b06e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
[OS X]: respect icon visibility preference in system tray menus

Check the `IconVisibleInMenu` switch so that systray menu items only
show an icon if the application/user has configured things that way,
and not otherwise.

Task-number: QTBUG-41348
Change-Id: Ibb7db326fd598ca78cb95c815b5e165de2babeda
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
QTreeView: speed up isRowHidden for the case where no rows are hidden.

isPersistent(index) is a linear search, which we can avoid altogether
(as well as the creation of a persistent model index, is idx is indeed persistent)
when the row-hiding feature isn't used at all.

Change-Id: I55ef204dd9b79a89d51d5d3aacc1c110d37a4ea0
(cherry picked from qtbase/cd824ee79188b889df85d4d648a625589655e15e)
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
Fix license text and URLs in QMessageBox::aboutQt().

Point to new qt.io site, adapt licensing text.

Task-number: QTBUG-41798
Change-Id: I492df6a842c2b31e44653fb4388408c209f24f1e
Reviewed-by: Sami Makkonen <sami.makkonen@digia.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
(cherry picked from qtbase/4a2cf9ca4174ee9879bfc5858f10dacc028a521f)
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Windows native socket: handle WSAENETRESET the same as WSAECONNRESET

Backported from Qt 5.

Task-number: QTBUG-41934
Change-Id: I4cebfb4b5f6e400b54cab3271af4411becd91b9f
Reviewed-by: Richard J. Moore <rich@kde.org>
fix warning when generating VS 2013 project

/FS forces the compiler to synchronize pdb file writes.
This option is not needed when building with Visual Studio itself.
Still, qmake needs to know it when parsing the compiler flags.

Task-number: QTBUG-36535
Change-Id: Id5b68c4028844e0b95904e08b5121310a4ff13d6
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
(cherry picked from commit qtbase/9b59e51c5064c67c423389c2c884d009903910c7)
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
qmake vcxproj generator: write PrimaryOutputExtension value

Second attempt. MSVCPROJ_TARGET contains the resolved target name,
including version number and target extension.
We're splitting this value into PrimaryOutput and
PrimaryOutputExtension.
PrimaryOutputExtension is only written if it contains a non-default
value.

Task-number: QTBUG-26782
Change-Id: I4b828dc5dd47322f653585aee1a5767f0cf8bd48
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from commit qtbase/d1e950b919615c1ae754e07899f1b45303c17654)
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Handle relative paths correctly for files in QMAKE_BUNDLE_DATA

Partially cherry pick from f6bd02317db7beadda1237df7feddd4a780415cb
from Qt 5. The Qt 5 SHA1 changes a lot of different parts in the
XCode generator after a general qmake change caused some problems.
So we just pick the part needed to fix the handling of relative
paths used in files in QMAKE_BUNDLE_DATA.

Change-Id: I364f82a353dfa922591d07c2aa9061666b79de02
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Fix compiler warning

Already fixed in Qt 5

Task-number: QTBUG-42032
Change-Id: I7ed7d955115e875468b94759bda44f99b737e7cb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Adjust the layout if a QGraphicsWidget is explicitly hidden

Task-number: QTBUG-20132
Change-Id: Iab59fc9b61d4ca1bb2208c479a027da6eb0283a9
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
(cherry picked from qtbase/bf200fc948d89e1a735a8bcca879654028f944d2)
Parse multiple buttons during mouse press and release

Copies the logic for parsing mouse buttons from Qt5 QtWebKit so that
button clicks when another button is held works.

Task-number: QTBUG-42319
Change-Id: If56e20533531fe949eef444eb7e2f747907f5bcc
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Fix thai symbol rendering slowness

Harfbuzz is constantly trying to load libthai in
src/3rdparty/harfbuzz/src/harfbuzz-thai.c,
making rendering of thai symbols very slow.

Task-number: QTBUG-37665
Change-Id: I30a2a5489271534eeacc205d8106b22130c40c5f
(cherry picked from qtbase/47e6ec0736aa129e181e0b6f02cec884f9832432)
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Fix string placeholders in two translations

As the translation in Qt 5 is more out of date this is being fixed
directly in the Qt 4.8 version as this is more accurate.

Change-Id: Ie7abbd224e26f8af63d80acd81ddf2973b39e0d4
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Remove the use of a template qUnused function for ICC

ICC 12 does not seem to need this.

Change-Id: I98e9d530e767c4d24424f0c2b5d763f863e85fe4
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
(backported from qt5/qtbase d3951a5b0f4fe9731d1512668b43f51bd98bd84e)
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Only add the res_file to the generated files if there is no rc_file

If both the rc_file and res_file was added to the project then in MSVC
2012 it would cause an error complaining of a duplicated resource.

Task-number: QTBUG-29826
Change-Id: Ib3401b423208cd8c90895038c9cbadd80c39b542
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtbase/fa1fb5ed945650d45cf9b61906232cfbae11360e)
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Fix minor compiler warning

Change-Id: Ifb0e8c7998ca2b4cba9ce4a34655614d7cefb860
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
Auto-scroll while selecting entire rows/columns did not work

If you press and hold a section in a header view you can extend the
selection to more rows by moving the mouse. This worked fine until you
moved the mouse outside the geometry of the header view. The expected
behavior was then to scroll the view (this is what happens with extended
selections on regular table cells).

[ChangeLog][QtWidgets][QHeaderView] Auto-scroll the view when making
extended row/column selections.

Change-Id: Ic65aa34d370e74054b2123ab57edb1add0e8adb9
Task-number: QTBUG-21201
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
(cherry picked from qtbase/f9408317e70bc2e635a2f9baeff35d1c06227734)
Bump Qt version to 4.8.7

Change-Id: Icd6fcdb59eb1b9fd8de555ef1c1c87a379f06a27
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Rewrite debug output of event classes.

Bring debug formatting in Qt 4 on par with Qt 5.4:
- Introduce functions to return class name and type name by type.
- Add verbose output for DnD, tablet, native gestures and context
  menu, events.

Task-number: QTBUG-38858
Task-number: QTBUG-42344

[ChangeLog][QtGui][QEvent] The debug output for events has
been significantly improved.

Change-Id: I3f11e34c3c9d6a3c6db596be4051b801f00e6153
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
(cherry picked from qtbase/14f9c09542bd6cc19430473da9ce4c68f239ec7d)
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>