Mark error message in qfsfileengine_unix.cpp as translatable.

Task-number: QTBUG-35594
Change-Id: I7aeab890a5972813f38370ff20f5b68839833e3b
Reviewed-by: David Faure <david.faure@kdab.com>
Windows: Remove rarely used integration/theming logging categories.

Preparing the introduction of the categorized logging system for the
plugin.

Change-Id: I2b180d88cf508559f495d39d4e1d36b8f3da7051
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Remove unimplemented constructor in QTextEngine

QTextEngine(LayoutData*) declaration seems to have been added in
Qt 4.1 without an implementation. As far as I can see it has
never been implemented.

Change-Id: I4bbf032395f7c930c9e8d365cdbbcf47bb118d64
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
constify some functions to improve readability

Change-Id: I4a5e68367f281f743a631272f57a848dc2833d12
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
remove qt_windows.h from qwinoverlappedionotifier_p.h

Preparation for making QWinOverlappedIoNotifier public.

Change-Id: Id443514a134b5c13e64d4d89450a7912ab38d40f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Remove runtime detection of SSE2

If the compiler supports SSE2, we'll use our SSE2-optimised code
unconditionally. Runtime detection is left for SSSE3 code.

The SSE2 codebase is big and thus a timebomb if an inline function
gets leaked out and run without runtime check. In reality, it's
extremely unlikely people running CPUs without SSE2 support are
running Qt 5 at this moment (they're either too old or too new,
e.g. Intel Quark).

The SSSE3 codebase is a lot more manageable.

Task-number: QTBUG-30440
Change-Id: I3e586e4434e820365d5316b650ee3061d0acf767
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Remove runtime detection of Neon on ARM CPUs

Now the only way to enable Neon support is to change the mkspec.

[ChangeLog][Important Behavior Changes] Qt no longer checks for
support for the Neon FPU on ARM platforms at runtime. Code optimized
for Neon must be enabled unconditionally at compile time by ensuring
the compiler supports Neon. You may need to edit your mkspec for that.

Task-number: QTBUG-30440
Change-Id: I4df9b2bf3cd022f8ed70f02f16878cb2cb3fe6fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Make qt_memfill{16,32} unconditional

These two functions used to cause a runtime detection of the CPU
features in order to improve their performance. Since the last two
commits, there's no runtime detection of either SSE2 or Neon support,
so there's no point in attempting runtime detection.

Task-number: QTBUG-30440
Change-Id: I54fe92787c983003c2cc867ee636daec30063033
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Automatically turn on SSE2 code generation throughout Qt

...unless the user passed the -no-sse2 option to the compiler.

[ChangeLog][Important Behavior Changes] Qt now automatically generates
code for processors supporting SSE2 on i386 platforms. To disable
this, pass the -no-sse2 option during Qt configuration. Since this
feature has been present on CPUs for 10 years and since Qt no longer
checks for runtime support for SSE2, we strongly encourage users to
leave the default setting on for best performance.
 - For Linux distributions that must retain support for CPUs without
   SSE2, we recommend doing two builds of Qt and installing the
   SSE2-enabled libraries in the LIBDIR/sse2 directory. Tools,
   plugins, and examples are not affected.
 - See discussion on the Qt development mailing list:
   http://lists.qt-project.org/pipermail/development/2013-November/014085.html

Change-Id: I7f9b1f58a9f66b6e5fe295bac15f87d34343695e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Ensure that the mkspec and source dirs are passed to moc on Windows

Those paths need not be in INCLUDEPATH: qmake always adds them to the
compiler command-line and we should match the behavior if we expand
INCLUDEPATH here.

Change-Id: I89508d15ac534b54ae873a42c4ad9764408042b5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Optimize INV_PREMUL

Our inverse premultiply is rather unoptimized. It's major weakness is
using three divide operation which are the slowest integer operations.

This patch reduces the three divisions to just one but using an
approximation that is accurate for all uchar values.

The patch also adds a general short-cut for alpha==255.

Together these improvements makes it 2 to 16 times faster depending on
how many 0 and 255 alpha values are encountered.

Change-Id: I96d7098a1bc320793b0d0526637acd1fdb5a43eb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Add detection of C++1y features (probably C++14)

I've added the most interesting features. I've skipped three features
that GCC and Clang will support:
  N3323  contextual conversion tweaks
  N3653  member initialisers and aggregates
  N3664  clarifying memory allocation

Of those, only N3653 brings a new syntax, so it could be added later.

Change-Id: I8314d81e028c9fb22052f73961c81cdc69c1461e
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Added convenience methods to QJsonArray for appending QJsonValues

operators for +, +=, and << were added to QJsonArray to make
it easier to work with, and more closely resemble the Qt
container classes

[ChangeLog][QtCore][QJsonArray] Added convenience methods to QJsonArray for appending QJsonValues

Change-Id: I96e0a43015f7c0f980cbbef7f20bd2085ee04795
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Added constructor to QJsonValue for const char *

For convenience, it reads more easily (and is somewhat expected) to
be able to add a string to a QJsonArray like you might with a
QVariantList: QJsonArray() << "string". Previously, QJsonValue provided
a private void* ctor to explicitly deny this case because it would
implicitly convert to a boolean. This ctor provides a const char* ctor
(much like QVariant) that interprets the incoming text as utf8 and
creates a String type QJsonValue.

[ChangeLog][QtCore][QJsonValue] Added constructor to QJsonValue for const char *

Change-Id: Icafa954d3da1fb264f9d0fd7cd1a1d2fbbe15095
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
iOS: Prevent trying to use both libc++ and libstdc++

Static builds of Qt will automatically enable C++11 for all projects,
but this happens in mac/default_post which is after our check.

Change-Id: I22a01e5d876242263fa31f8a404a65905c6c1877
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Remove last traces of QT_COMPILER_SUPPORTS_NEON

Fixes ARM build, as the NEON drawhelpers and image conversion functions
were ifdef'ed out.

Follow-up to 1b12c0608be2359baa2f96ae28b135a84abd388c.

Change-Id: I0b5e89c8f445741432db2dfe1f8d971b971c8605
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
iOS: Don't try to use NEON drawhelpers, we don't build them

On iOS we don't build the NEON drawhelpers as they are implemented using
GAS syntax assembly, so prevent drawhelpers.cpp from trying to use them.

Follow-up to 01c59ac857927043e49d4725062faea715ed49a3.

Change-Id: I3e3dc9b0e1d780db3184413d2ff3010ac8dcd37b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>