profile/ivi/qtbase.git
12 years agoQSlotObjectBase: combat virtual function "bloat"
Marc Mutz [Fri, 10 Aug 2012 14:12:58 +0000 (16:12 +0200)]
QSlotObjectBase: combat virtual function "bloat"

In C++, the compiler creates extra functions and data for classes
with virtual functions. This can lead to "virtual function bloat":
  http://www.boost.org/doc/libs/1_47_0/doc/html/function/misc.html#id1382504

This is especially true when the number of instances is of the same
order of magnitute as the number of derived classes, such as is
common with type erasure techniques.

One such case is the QSlotObjectBase hierarchy, which this patch
tackles.

The mechanics of this optimisation are simple: re-implement the
virtual function call mechanism by hand, with function pointers.

But we go one step further and collapse the vtable into a single
pointer to a function that implements all three currently-defined
operations, swtching on an 'int which' argument. This even allows
us to extend this in a BC way, should that become necessary later,
by adding a new Operation and using the void** argument to
transport arguments, if any.

This approach was inspired by:
  Ulrich Drepper: How To Write Shared Libraries, Section 2.4.4
  http://www.akkadia.org/drepper/dsohowto.pdf

Also move the QSlotObjectBase hierarchy out of QObject so as not
to export all the derived classes.

This was pointed out in review by Thiago.

Results (Linux amd64, GCC 4.8-pre -O2 -std=c++11, stripped):

  size tst_qobject*

     text    data     bss     dec     hex filename
   523275   21192      48  544515   84f03 tst_qobject (old)
   507343   13984      48  521375   7f49f tst_qobject (new)

  relinfo.pl tst_qobject*

   (old) tst_qobject: 473 relocations, 0 relative (0%), 240 PLT entries, 240 for local syms (100%), 0 users
   (new) tst_qobject: 323 relocations, 0 relative (0%), 238 PLT entries, 238 for local syms (100%), 0 users

Change-Id: I40ad4744dde8c5c29ef62ed2d82d4b1ede178510
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoAvoid an expensive call to toLocal8Bit upon thread creation
Thiago Macieira [Wed, 15 Aug 2012 16:03:50 +0000 (18:03 +0200)]
Avoid an expensive call to toLocal8Bit upon thread creation

QString::toLocal8Bit() will need to call QTextCodec::codecForLocale(),
which isn't the cheapest of the functions, at least the first time it's
run. So avoid calling it when in most scenarios, the name of the QObject
isn't set, and the information is purely for debugging.

Additionally, avoid allocating memory when setting the thread name to
the class name. The class name coming from the meta object is a static
constant string and we can use it directly.

Change-Id: Ief643bad87a51487b1d41c0a2f323e80bb53e8a7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
12 years agoRemove trailing comma in enum
Thiago Macieira [Tue, 14 Aug 2012 11:15:14 +0000 (13:15 +0200)]
Remove trailing comma in enum

Spotted by ICC:
qfreelist_p.h(127): warning #271: trailing comma is nonstandard
          BlockCount = 4,
                        ^

Change-Id: Ib64d1d19ca0514e7582a295da48cbf6705aa8c44
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
12 years agoQUrl is not necessary for configure.exe, drop it from the .pro
Thiago Macieira [Wed, 15 Aug 2012 14:40:30 +0000 (16:40 +0200)]
QUrl is not necessary for configure.exe, drop it from the .pro

qurl.cpp was removed from the Makefiles on 6ab6b0fc1c594a589d96d17b5ab7,
but I missed the .pro file. You're not supposed to use the .pro file
anyway, it's just for opening in Creator.

But if you forget to remove the qmake build step, it would get compiled.

Change-Id: Ia52ae7349e195df58f76f8d2c5f8b46adfdc7454
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoSilence a false-positive warning about uninitialised variable with ICC
Thiago Macieira [Tue, 14 Aug 2012 11:29:24 +0000 (13:29 +0200)]
Silence a false-positive warning about uninitialised variable with ICC

ICC complains like so:
harfbuzz-gpos.c(95): warning #592: variable "error" is used before its value is set
      return error;
             ^

However, line 95 is never executed because the condition on line 94 is
always false. That's why it's a false positive. The same construct
happens in the other two places.

Still, silence the warning.

Change-Id: I168d916d6837d4ac346facfd22b3e5b4e22ef7f0
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
12 years agoMade eglfs work with backing store based applications again.
Samuel Rødal [Wed, 15 Aug 2012 10:18:35 +0000 (12:18 +0200)]
Made eglfs work with backing store based applications again.

Make sure we pick the same config for the context and window surface,
and do not create unnecessary window surfaces for the desktop widget.

Change-Id: I3c8fb3df9ab8a658196e41dfa1705cfca625a2d7
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
12 years agoDocumentation for QWidgetItem::controlTypes.
Frederik Gladhorn [Wed, 15 Aug 2012 11:13:33 +0000 (13:13 +0200)]
Documentation for QWidgetItem::controlTypes.

Change-Id: I673b884ac8513714d733411729a7418c19f05682
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
12 years agoUpdate docs.
Frederik Gladhorn [Wed, 15 Aug 2012 11:13:01 +0000 (13:13 +0200)]
Update docs.

Change-Id: I7bd1f1efe2d6ce3aee8cb7454f43cfef2979f525
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
12 years agoRemove docs for removed enum values.
Frederik Gladhorn [Wed, 15 Aug 2012 11:03:20 +0000 (13:03 +0200)]
Remove docs for removed enum values.

Change-Id: I225ea48606d60894a851c1dd620983b7a65d234d
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
12 years agoMove docs for QSessionManager to the right file.
Frederik Gladhorn [Wed, 15 Aug 2012 10:56:14 +0000 (12:56 +0200)]
Move docs for QSessionManager to the right file.

Change-Id: Ia3735ac14fe91de8cfbb58fc68f1a37f04d7b668
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
12 years agoRemove outdated docs.
Frederik Gladhorn [Wed, 15 Aug 2012 09:56:32 +0000 (11:56 +0200)]
Remove outdated docs.

Change-Id: Ic878226c3b627b445ac45f56497a6a4ae77b2d38
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
12 years agoRemove deprecated docs for QActionGroup.
Frederik Gladhorn [Wed, 15 Aug 2012 09:51:30 +0000 (11:51 +0200)]
Remove deprecated docs for QActionGroup.

Change-Id: If086395d3e1d151324df3cc1c59152715cb4af40
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
12 years agoAdd parameter docs for QAbstractEventDispatcher::filterNativeEvent.
Frederik Gladhorn [Wed, 15 Aug 2012 09:45:57 +0000 (11:45 +0200)]
Add parameter docs for QAbstractEventDispatcher::filterNativeEvent.

Change-Id: If028d2560d7bb18c9dd3e0f5fa6677c42fbf7d4b
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
12 years agoDisable CPUID checking with GCC 4.2 or older
Thiago Macieira [Tue, 14 Aug 2012 12:07:31 +0000 (14:07 +0200)]
Disable CPUID checking with GCC 4.2 or older

This is not the first time that GCC 4.2 on Mac has produced bad code
surrounding the CPUID instruction (see also commit 81d1f79a7f4b0f67d71).
So declare it broken beyond repair and don't run the instruction at all.

Instead, initialise the set of features found to be exactly that which
we detected at compile-time. For that reason, we can also disable the
runtime checking of the processor (minFeatures == detected features).

At the time of this commit, only the draw helpers and one QImage
helper make use of the runtime detection. Since the detection now
switches to compile-time, QtGui will start carrying dead code for GCC
4.2 and earlier: it will never run the SSE2/SSSE3 code on 32-bit
builds. (GCC 4.2 does not support AVX, so that code won't be built)

Note: all Clang versions report that they are GCC 4.2, so we need to
exclude it from the test; ICC reports the same version as the system's
GCC.

Change-Id: I43f168a9480a2479c6444eea175782b2eadc2ab2
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoFix tst_qbytearray on QNX
Rafael Roquetto [Wed, 15 Aug 2012 10:04:35 +0000 (12:04 +0200)]
Fix tst_qbytearray on QNX

qUncompressCorruptedData() no longer hangs on QNX 650 and Blackberry OS
sytems.

Change-Id: Id131f9f1c6dcd358c152675c7e29ab937052c1d0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoOnly emit headerDataChanged for valid proxy intervals.
Stephen Kelly [Wed, 8 Aug 2012 12:56:14 +0000 (14:56 +0200)]
Only emit headerDataChanged for valid proxy intervals.

Modeltest asserts before the patch, and passes afterward.

Task-number: QTBUG-26515

Change-Id: I08a89cd5c9c59613badcddbd056a3d0b8fbbca13
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agotst_QUdpSocket: Remove unneeded ./ in application name printing
Marc Mutz [Wed, 15 Aug 2012 10:52:13 +0000 (12:52 +0200)]
tst_QUdpSocket: Remove unneeded ./ in application name printing

Reported-by: Shane Kearns <shane.kearns@accenture.com>
Change-Id: I12f2a23b98c3b0161a2961a9117c196cd7d72a6d
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
12 years agoFix "might be used uninit'ed" warning
Marc Mutz [Wed, 15 Aug 2012 10:16:58 +0000 (12:16 +0200)]
Fix "might be used uninit'ed" warning

GCC 4.8 warns:

  main.cpp:165:60: warning: ‘type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                               app.arguments().at(3).toInt());
                                                            ^

Change-Id: Ib0f6847031437b588e14c6708fdddea5fd474b58
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
12 years agoEmit the highlighted signal if the model changes.
Stephen Kelly [Mon, 13 Aug 2012 16:12:28 +0000 (18:12 +0200)]
Emit the highlighted signal if the model changes.

The bug is that the connection to emit that signal can be made
obsolete if the connection is made too early and the model is replaced.
In the bug report, the connection is made by calling view() early (thereby
causing the creation of a view and a QItemSelectionModel which operates on
the built-in QItemSelectionModel, and then connecting to that
QItemSelectionModel), and then when QComboBox::setModel() is called later
the built-in view creates a new QItemSelectionModel for it. The bug was
that that new QItemSelectionModel is not connected to. This patch fixes that
bug.

Task-number: QTBUG-4454
Change-Id: Ibbdb8731f16ab071008b4a19dc2cc7ae03cebc84
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoFix QMessageLogger and associated qdoc errors
Jeremy Katz [Mon, 6 Aug 2012 14:01:30 +0000 (16:01 +0200)]
Fix QMessageLogger and associated qdoc errors

Change-Id: I4b9555c8a15a698ef5ce270288c88a0aa88e0033
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoDoc: Fix broken return codes for a few examples
Geir Vattekar [Tue, 14 Aug 2012 13:38:53 +0000 (15:38 +0200)]
Doc: Fix broken return codes for a few examples

This reverts remnants of 79747d38987ce42adc510be0c5bb1565f55fd3d6.

Task-number: QTBUG-25571
Change-Id: I1dbf64cfcba889fb0c70ceaeeeffad8334a8aab1
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoAdd a module page for QtConcurrent
Lars Knoll [Tue, 14 Aug 2012 14:43:39 +0000 (16:43 +0200)]
Add a module page for QtConcurrent

Fix some foward references from QtCore in addition. This
will require more work.

Change-Id: Ib1bade18c2cc220a7afe25e9fca6a3f50cb1174b
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoIgnore Q_DECL_NOEXCEPT in qdoc
Lars Knoll [Tue, 14 Aug 2012 15:26:52 +0000 (17:26 +0200)]
Ignore Q_DECL_NOEXCEPT in qdoc

This fixes a large bunch of qdoc errors in Qt Core.

Change-Id: Ie3c3cebc730081a0927a0998d8937d721719c1c6
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoMark QCollator as internal.
Lars Knoll [Tue, 14 Aug 2012 15:05:30 +0000 (17:05 +0200)]
Mark QCollator as internal.

The class is private in 5.0, we'll publish it in 5.1

Change-Id: Ia7511db0393528aafa8c8059b4eb1657c8cdcc64
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoFix QPointer qdoc errors
Lars Knoll [Tue, 14 Aug 2012 15:03:51 +0000 (17:03 +0200)]
Fix QPointer qdoc errors

Change-Id: I54082a87f076aa511329cfb7a6ed6ecabcfb40f7
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoMake the "\internal" qdoc command stand on its own line
Laszlo Papp [Wed, 15 Aug 2012 05:37:01 +0000 (06:37 +0100)]
Make the "\internal" qdoc command stand on its own line

The qdoc manual currently claims that the command must stand on its own line.

The change follows the consistency with the rest and how the example looks like
inside the qdoc manual for this command.

Change-Id: I6b653dc95cf9d84e4adf32220dace5d313678419
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoFix undo and redo in QLineEdit when in password mode
Jani Honkonen [Mon, 6 Aug 2012 10:18:48 +0000 (13:18 +0300)]
Fix undo and redo in QLineEdit when in password mode

There are some security issues with undo/redo. User should not be
able to get the erased password back in any situation. Therefore
redo must be disabled completely and undo is limited only for erasing
previously entered text.

Task-number: QTBUG-14226
Change-Id: I2b38aca84adbad1c14db76b56ad6303d56b35b4d
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoMake selectAll() do nothing if the mode is NoSelection.
Stephen Kelly [Wed, 8 Aug 2012 13:50:31 +0000 (15:50 +0200)]
Make selectAll() do nothing if the mode is NoSelection.

Task-number: QTBUG-26687

Change-Id: Iaa0197efe64c61505e22e4a63a1f5c012af0bc78
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoset QT_PLUGIN_PATH for tools
Oswald Buddenhagen [Mon, 13 Aug 2012 15:01:38 +0000 (17:01 +0200)]
set QT_PLUGIN_PATH for tools

Change-Id: Ie76b25b605ab4271eff161ee9bfc4f54df640f4a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agomake .private_includes in module pri files "self-contained"
Oswald Buddenhagen [Mon, 13 Aug 2012 13:35:35 +0000 (15:35 +0200)]
make .private_includes in module pri files "self-contained"

this puts the whole logic of assembling those paths into qt_module.

Change-Id: Iafbe3969e3092e294bdb8243b2dffa7a899a7eb8
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoSpeed up construction of basic QVariants
Harald Fernengel [Tue, 14 Aug 2012 11:15:11 +0000 (13:15 +0200)]
Speed up construction of basic QVariants

Instead of first creating an initialized Private struct, then overwrite
the member variables, we added an internal constructor that
initializes the private struct sanely.

In the new (inlined, internal) constructor, both the MSB bits in the
bitfield are 0, and since the value of internal meta-type ID is so
low that the two MSB bits should never be set, the compiler can
(hopefully) optimize away the bit-fiddling initialization of the bit-field.

Callgrind shows about 33% speed-up in e.g. QVariant::QVariant(int)

Change-Id: I706773a71c0d8dcbe119ad15411578b81892deb5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
12 years agorevamp preparation of command line for qmake calls in makefiles
Oswald Buddenhagen [Thu, 9 Aug 2012 16:54:40 +0000 (18:54 +0200)]
revamp preparation of command line for qmake calls in makefiles

instead of re-assembling a list from the variables, take the original
command line minus some explicitly stripped out options. this is way
less code and poses no synchronization problem between the two parts.

as a "side effect", variables obtained from $QMAKEFLAGS won't multiply
with each makefile nesting level, as the generated command line won't
replicate data obtained from the environment.

Change-Id: I5d1ce0f11efb338f60405529f9818910103b1b0e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agomake command line parser use qt containers
Oswald Buddenhagen [Thu, 9 Aug 2012 16:45:48 +0000 (18:45 +0200)]
make command line parser use qt containers

way more legible code

Change-Id: I7ba5a66f1f0bc7ae78ba0537ef8e5c780506a149
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agotake parsing of qmake mode out of parseCommandLine()
Oswald Buddenhagen [Thu, 9 Aug 2012 14:13:56 +0000 (16:13 +0200)]
take parsing of qmake mode out of parseCommandLine()

it wouldn't do anything particularly useful when parsing QMAKEFLAGS, so
take it out of the common path.

Change-Id: I60f1215c4645707e1f99932dd19160e1d1c9d953
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoremove rather pointless parameter from parseCommandLine()
Oswald Buddenhagen [Thu, 9 Aug 2012 14:13:07 +0000 (16:13 +0200)]
remove rather pointless parameter from parseCommandLine()

Change-Id: I97998555c41e8eab2438ac355950abf9dace24a0
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agorcc: use new qEnvironmentVariableIsEmpty()
Marc Mutz [Mon, 6 Aug 2012 22:19:59 +0000 (00:19 +0200)]
rcc: use new qEnvironmentVariableIsEmpty()

Change-Id: I48dd9b7b8dd51e1c662273eb37ac2e1f4c1c4d15
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoQtTestLib: use new qEnvironmentVariableIsEmpty()
Marc Mutz [Mon, 6 Aug 2012 22:18:45 +0000 (00:18 +0200)]
QtTestLib: use new qEnvironmentVariableIsEmpty()

Except where using the contents of the variable, in which case
collapse two calls to qgetenv() for the same variable into one
that stores the result in a temporary QByteArray and continues
working with that one instead.

Change-Id: I6c09a20ae946327ccb85e4833a60a373a8a07355
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoQtGui: use new qEnvironmentVariableIsEmpty()
Marc Mutz [Mon, 6 Aug 2012 22:11:51 +0000 (00:11 +0200)]
QtGui: use new qEnvironmentVariableIsEmpty()

In particular, static bool showRasterOverlay is safer.

Change-Id: I9df6c9a9a56d2e61b13391b6889c0ac6e259e801
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoQtDBus: use new qEnvironmentVariableIsEmpty()
Marc Mutz [Mon, 6 Aug 2012 22:11:00 +0000 (00:11 +0200)]
QtDBus: use new qEnvironmentVariableIsEmpty()

Change-Id: If983083cc7f360199716a060464344340c089236
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoQtCore: use new qEnvironmentVariableIs{Set,Empty}()
Marc Mutz [Mon, 6 Aug 2012 22:10:11 +0000 (00:10 +0200)]
QtCore: use new qEnvironmentVariableIs{Set,Empty}()

In particular, qEmergencyOut() is now completely exception-free.

Incidentally, this patch shows that Qt isn't consistent in how it
treats empty environment variables used as flags, but that is something
for a separate commit. This patch aims to be behaviour-preserving,
except in exceptional circumstances, of course.

Change-Id: Ie106e7b430e1ab086c40c81cc1e56cd0e5400cb4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoFix warning about change of sign
Thiago Macieira [Tue, 14 Aug 2012 11:21:34 +0000 (13:21 +0200)]
Fix warning about change of sign

method_relative_ is unsigned, so we can't store a -1 in it.

qobject.cpp(434): warning #68: integer conversion resulted in a change of sign
        callFunction_(0), method_offset_(0), method_relative_(-1)
                                                              ^

Change-Id: If8bf3835590ef2c26b9ca5010d638aa84675ff62
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoAdd some more of my 5.0.0 changes
Kent Hansen [Tue, 14 Aug 2012 08:58:49 +0000 (10:58 +0200)]
Add some more of my 5.0.0 changes

Change-Id: I606a11cb11d1559476eab6532db22f4bc81fed90
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
12 years agoMerge L_FLAGS and l_FLAGS in configure
Thiago Macieira [Sat, 11 Aug 2012 19:55:20 +0000 (21:55 +0200)]
Merge L_FLAGS and l_FLAGS in configure

This is prompted by the fact that QMAKE_LIBDIR_FLAGS is no longer
honoured by qmake, so we need to use LIBS. It didn't make much sense
to have the flags separate anyway...

Change-Id: Iaec4d58f9dbac25755bbc3bad7550e03edb5332b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agointroduce compileTest function
Oswald Buddenhagen [Sun, 12 Aug 2012 08:14:59 +0000 (10:14 +0200)]
introduce compileTest function

this cuts down the enormous duplication of identical command line args
passed to compile.test.
this necessitates the addition of a -config parameter to compile.test,
as QMAKE_CONFIG needs to be extended in some cases.

Change-Id: I677b2fea4a407b9e4395e70a25e4e349efb0a946
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoDeprecate Qt::WFlags.
Stephen Kelly [Mon, 13 Aug 2012 09:01:57 +0000 (11:01 +0200)]
Deprecate Qt::WFlags.

It seems to date from the Qt 1 days, and such abbreviations
are not current Qt style.

Change-Id: Iea7259bd7ba78b2c0863e3f6675e10826712ffd9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years ago(QNX) Make it possible to set physical screen size
Andreas Holzammer [Thu, 9 Aug 2012 11:02:44 +0000 (13:02 +0200)]
(QNX) Make it possible to set physical screen size

It can happen that the system is reporting a screen
width or height of zero, if the system does not know the
size instead of returning an error. You can either
set a define QQNX_PHYSICAL_SCREEN_WIDTH/QQNX_PHYSICAL_SCREEN_HEIGHT
or set it as environment variable QQNX_PHYSICAL_SCREEN_SIZE.

The preference order is:
1) Take detected size
2) Take size from env var
3) Take defined size if any define is set

Change-Id: I493a2c8988a225224587a6c323efeb9e9b7b5a54
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agobuild: Fix the FreeBSD build due build system change.
Holger Hans Peter Freyther [Sat, 11 Aug 2012 20:28:25 +0000 (22:28 +0200)]
build: Fix the FreeBSD build due build system change.

Revision 6f4ff81380862ad0e788151b35d742f548241d5a broke the
QtDeclarative build. FreeBSD's ld.so is using the LD_LIBRARY_PATH
environment variable as well.

Change-Id: I0a91cedfb9d1935a08d348212f5ff1a54bfe3e53
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoGroup functions in QAccessibleTextInterface
Jan-Arve Saether [Wed, 8 Aug 2012 15:17:24 +0000 (17:17 +0200)]
Group functions in QAccessibleTextInterface

Do the same in QAccessibleTextWidget

I got a bit annoyed by this, should hopefully make life easier
when forward porting QPlainTextEdit

Change-Id: Ib4b90d1892974ea39ecfcbc5cad6ed0694207b58
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
12 years agotst_QToolBar: fix "might be used uninit'ed" warnings
Marc Mutz [Mon, 13 Aug 2012 20:36:54 +0000 (22:36 +0200)]
tst_QToolBar: fix "might be used uninit'ed" warnings

GCC 4.8 warns:

  src/testlib/qtestmouse.h:219:67: warning: ‘popupMenu’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     { mouseEvent(MouseClick, widget, button, stateKey, pos, delay); }
  tests/auto/widgets/widgets/qtoolbar/tst_qtoolbar.cpp:862:12: note: ‘popupMenu’ was declared here

Change-Id: I19cfd1790fbd948e97bf740d4412ccf3bb98a330
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoFix sockets for Windows CE
Andreas Holzammer [Mon, 13 Aug 2012 15:40:08 +0000 (17:40 +0200)]
Fix sockets for Windows CE

Version numbers for CE are higher then for the desktop,
so insert a check for this, as the api is not working as
for windows 7 and above.

Change-Id: I79baba9183e11c714cffd0bb43327c197043d6e0
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
12 years agoRemove relic QT_VERSION from qmake test
Rafael Roquetto [Mon, 13 Aug 2012 13:42:01 +0000 (15:42 +0200)]
Remove relic QT_VERSION from qmake test

Change-Id: Ic9095e3e924543d4f3e6d0f7c3a7b27f842cd300
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoTidy up QEvent::Type enums.
Mitch Curtis [Fri, 10 Aug 2012 07:44:28 +0000 (09:44 +0200)]
Tidy up QEvent::Type enums.

Corrected the list's ordering and added punctuation.

Change-Id: I36a477801cd0cfd3d36db308b4263982b582106b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoImplemented QAccessibleTextWidget
Jan-Arve Saether [Wed, 8 Aug 2012 14:06:33 +0000 (16:06 +0200)]
Implemented QAccessibleTextWidget

A new class called QAccessibleTextWidget was added.
This class should implement all methods of QAccessibleTextInterface and
QAccessibleEditableTextInterface which only need a QTextCursor, and it
defines two pure virtual methods, to obtain and set the text cursor, so
accessible implementations of widgets which use a text cursor can implement
these two methods.

QAccessibleTextEdit is now a subclass of QAccessibleTextWidget and most of
its methods were moved to QAccessibleTextWidget.

This is a forward port of ba5d7d608cc31fc63354fd74d85a1bad7780fc45 from
Qt 4.8, and is a prerequisite for forward-porting QPlainTextEdit

Change-Id: I6093c4fa7e0a77b84de779479c6074db006efec1
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
12 years agoDocument QFile::open() argument "handleFlags"
Jeremy Katz [Thu, 9 Aug 2012 12:54:07 +0000 (14:54 +0200)]
Document QFile::open() argument "handleFlags"

Change-Id: I5ef909b21ddd4782062dd4ebd0ea7bca33f3387f
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoAdd Linux Accessibility Bridge
Frederik Gladhorn [Thu, 10 May 2012 21:52:05 +0000 (23:52 +0200)]
Add Linux Accessibility Bridge

This is a plugin that bridges the QAccessible world
to AT-SPI 2 on Linux.

Change-Id: I7af22621ee6a3cefc723b137b7f227a611cf6641
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
12 years agoqsql_oci: use OCI_COMMIT_ON_SUCCESS for SELECT without transaction
Mark Brand [Tue, 17 Jul 2012 07:32:20 +0000 (09:32 +0200)]
qsql_oci: use OCI_COMMIT_ON_SUCCESS for SELECT without transaction

Otherwise, the open statement, say in QSqlQueryModel, will prevent
other statements from running.

Task-number: QTBUG-18608
Change-Id: Icdd6817fb981678be6fb70ade21a8123e152dcf6
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
12 years agoFix declaration of qt_gettime for Q_DECL_NOTHROW
Thiago Macieira [Sun, 12 Aug 2012 10:38:39 +0000 (12:38 +0200)]
Fix declaration of qt_gettime for Q_DECL_NOTHROW

Since the #include wasn't present in the qelapsedtimer_{mac,unix}.cpp
files, we did not notice that the declaration missed the macro.

Change-Id: I3e4f23b28e127d41b12690cf306f47986be53d89
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years agofix some QElapsedTimer doc grammar issues
Jeremy Katz [Fri, 10 Aug 2012 12:10:09 +0000 (14:10 +0200)]
fix some QElapsedTimer doc grammar issues

Change-Id: I9bdb0b93b101119477a560b28396f88ea8103745
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoUse Qt::WindowFlags, not Qt::WFlags.
Stephen Kelly [Mon, 13 Aug 2012 08:45:37 +0000 (10:45 +0200)]
Use Qt::WindowFlags, not Qt::WFlags.

The latter seems to date from the Qt 1 days, and such abbreviations
are not current Qt style.

Change-Id: I83bc8722a309f4ece7e51881590d07b40fbe6bef
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years agoSync .pr[oi] with the Makefiles so qmake builds again
Marius Storm-Olsen [Thu, 26 Jul 2012 17:47:33 +0000 (12:47 -0500)]
Sync .pr[oi] with the Makefiles so qmake builds again

Change-Id: Ief766ac61f98859b84fc61b03b8c1292d3c06525
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoMake QElapsedTimer always store nanoseconds in t2
Thiago Macieira [Fri, 10 Aug 2012 13:00:50 +0000 (15:00 +0200)]
Make QElapsedTimer always store nanoseconds in t2

Up until now, the value stored in t2 depended on whether we had found
a monotonic clock or not. Fix that by always storing nanoseconds: we
avoid extra calculations and accessing a global variable all the time.

The impact is contained to the actual getting of the time. And we
mitigate by using clock_gettime to get the realtime clock instead of
gettimeofday, if that's available.

Change-Id: Iceef2d050fd9472f1a66e11e7ded79fe5163a132
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoFix a ### Qt5 issue: remove limits.h from qreadwritelock.h
Thiago Macieira [Sat, 11 Aug 2012 17:04:22 +0000 (19:04 +0200)]
Fix a ### Qt5 issue: remove limits.h from qreadwritelock.h

Change-Id: I1fc54561aabd1be693f179e668031ddb0f86a130
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoSpeed up tst_QGraphicsView::mapToScene test
Thiago Macieira [Sun, 12 Aug 2012 22:24:27 +0000 (00:24 +0200)]
Speed up tst_QGraphicsView::mapToScene test

This test is doing a brute-force mapping. Coupled with changes to
QCOMPARE last year, this now allocates and deallocates a lot of memory
per iteration. On my Sandybridge, it takes two minutes to run:

     111136.781153 task-clock                #    0.999 CPUs utilized
   371,692,633,238 cycles                    #    3.344 GHz
   182,641,818,708 stalled-cycles-frontend   #   49.14% frontend cycles idle
    57,951,552,830 stalled-cycles-backend    #   15.59% backend  cycles idle
   477,216,332,971 instructions              #    1.28  insns per cycle
                                             #    0.38  stalled cycles per insn
    86,959,637,669 branches                  #  782.456 M/sec
       309,185,237 branch-misses             #    0.36% of all branches

     111.264868818 seconds time elapsed

Changing the iteration step from 1 to 5 reduces the runtime to about 5
seconds.

Change-Id: I9cad6f85f535f472319da7cd6c4aa28e12ddf1b7
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years agoUse POSITION_INDEPENDENT_CODE for these tests.
Stephen Kelly [Fri, 10 Aug 2012 09:14:10 +0000 (11:14 +0200)]
Use POSITION_INDEPENDENT_CODE for these tests.

These projects are expected to fail, but we need to make sure they fail
for the right reason.

Change-Id: I8a7caaa663060712c5c7113ef3b054feba2e2287
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoAdd hints for where to find packages for projects expected to fail.
Stephen Kelly [Fri, 10 Aug 2012 09:13:02 +0000 (11:13 +0200)]
Add hints for where to find packages for projects expected to fail.

In the CI system, an environment variable is used to convey
the CMAKE_PREFIX_PATH, but that can not be relied upon.

Change-Id: Ie4fbacaac6ae18f95a3b4d1e796a4b4c91a418c4
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoAdd the minimum CMake version to projects built standalone.
Stephen Kelly [Fri, 10 Aug 2012 09:12:15 +0000 (11:12 +0200)]
Add the minimum CMake version to projects built standalone.

Change-Id: If9d2a464d94faee0dccd77bc54946d91dd117db3
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agotst_qgraphicsview: increase test timeout further
Rohan McGovern [Mon, 13 Aug 2012 00:28:35 +0000 (10:28 +1000)]
tst_qgraphicsview: increase test timeout further

This test has recently timed out in CI, but appeared to be making
progress. Give it more time to complete.

Change-Id: Ied0fb7aad35ed6d5889dd585a7545687617e5e19
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
12 years agoQImage{Reader,Writer}: remove unused local typedef (GCC 4.8 warning)
Marc Mutz [Fri, 10 Aug 2012 22:03:24 +0000 (00:03 +0200)]
QImage{Reader,Writer}: remove unused local typedef (GCC 4.8 warning)

GCC 4.8 warns:

  warning: typedef ‘PluginKeyMapConstIterator’ locally defined but not used [-Wunused-local-typedefs]

Change-Id: I0225708b590ac3d72ab3cb8f61e686091c187053
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoQModelIndex: remove user-defined copy operations
Marc Mutz [Fri, 24 Feb 2012 16:15:25 +0000 (17:15 +0100)]
QModelIndex: remove user-defined copy operations

They're identical to the ones the compiler will
synthesize and their presence prevents move
constructor and assignment operators from being
synthesized alongside their copy counterparts.

The destructor can go, too.

Change-Id: Ia9cc26ba1ffaa670f03642af457e632f44bd69c2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agosupport -rpath for modules which are not installed to QT_INSTALL_PREFIX
Oswald Buddenhagen [Thu, 9 Aug 2012 13:02:44 +0000 (15:02 +0200)]
support -rpath for modules which are not installed to QT_INSTALL_PREFIX

a module's project file may set MODULE_INSTALL_LIBS before loading
qt_module.prf to have an alternative RPATH linked into the users of that
module.
this is relevant only for linking against non-installed -prefix builds
of that module, as otherwise .libs from the module's pri file is used
for rpath.

Change-Id: Ib240e748cf130a71a5991dc643c368a983092ead
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agofix -rpath-link handling for non-installed prefix builds
Oswald Buddenhagen [Wed, 8 Aug 2012 19:38:35 +0000 (21:38 +0200)]
fix -rpath-link handling for non-installed prefix builds

forwarding module pris get rpath_link{,_private} fields, which are
used accordingly by qtAddModule().

Change-Id: I0abc2dc8b1e8744dbf7f439aa7fed9ae159c2c74
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoFix order of namespace/include guards.
Frederik Gladhorn [Fri, 10 Aug 2012 16:33:07 +0000 (18:33 +0200)]
Fix order of namespace/include guards.

Change-Id: I9ed1e82c90e38a65c15bb9d05ff789270218d4b5
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
12 years agoqtAddModule(): put search paths directly into LIBS{,_PRIVATE}
Oswald Buddenhagen [Wed, 8 Aug 2012 07:56:39 +0000 (09:56 +0200)]
qtAddModule(): put search paths directly into LIBS{,_PRIVATE}

QMAKE_LIBDIR and QMAKE_FRAMEWORKPATH have the downside that they
always effectively end up in LIBS, which makes for weird prl files.

Change-Id: Iaf61b0038504ff91ae5ec7f9b1255fe3a2d134f1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoassemble the complete tool commands already in qt_tool.prf
Oswald Buddenhagen [Wed, 8 Aug 2012 09:33:26 +0000 (11:33 +0200)]
assemble the complete tool commands already in qt_tool.prf

this saves some repeated calculations. also, it's nicer to have most
logic in one place.

Change-Id: Iea362d40f5e6203709ced94d29ca61a4163b8e69
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agofix error message about bad qt modules
Oswald Buddenhagen [Wed, 8 Aug 2012 09:25:54 +0000 (11:25 +0200)]
fix error message about bad qt modules

the variable name is a function parameter now

Change-Id: I46f3ce37c157312e7f70291a0cef2d666d50664c
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoFix vcproj file generation for incredibuild handling of moc etc targets
Andy Shaw [Fri, 10 Aug 2012 12:54:32 +0000 (14:54 +0200)]
Fix vcproj file generation for incredibuild handling of moc etc targets

When incredibuild-xge had been turned on by configure then it was not
ensuring that the generated vcproj files had the right extra comments
needed to make incredibuild run moc and other tools in parallel.  By
fixing the prf file to get around a problem in the parser this is now
respected.

Task-number: QTBUG-14482

Change-Id: Ifd24bde2db7d80d3a52719c733d15f228c7b3534
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoMake rowIntersectsSelection take account of the parent argument.
Stephen Kelly [Fri, 10 Aug 2012 16:30:19 +0000 (18:30 +0200)]
Make rowIntersectsSelection take account of the parent argument.

Task-number: QTBUG-22370

Change-Id: I497194793eab624b760deea93dac0df767850330
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoQtWidgets: use new qEnvironmentVariableIs{Empty,Set}()
Marc Mutz [Mon, 6 Aug 2012 22:14:45 +0000 (00:14 +0200)]
QtWidgets: use new qEnvironmentVariableIs{Empty,Set}()

Incidentally, this patch shows that Qt isn't consistent in how it
treats empty environment variables used as flags, but that is something
for a separate commit. This patch aims to be behaviour-preserving.

Change-Id: I5390cda314858762b76384291373a6f0167d323a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoTake scroll position into account when painting drag pixmap.
Stephen Kelly [Thu, 9 Aug 2012 12:49:38 +0000 (14:49 +0200)]
Take scroll position into account when painting drag pixmap.

Task-number: QTBUG-26793

Change-Id: Ic19cb6581cd5838d26713998e152772a5d12da4f
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoRevert "Added default argument for color profile to QImage constructors."
Alexandros Dermenakis [Thu, 2 Aug 2012 10:51:13 +0000 (12:51 +0200)]
Revert "Added default argument for color profile to QImage constructors."

Reverting change after request in the developers mailing list.

This reverts commit 50a5bd5429e0c8b99be81b86d3730737cb7f8514.

Change-Id: Ic4a420d6ad0995810ed61d31edd28e7b603cca5e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agomake currentText the USER property for QComboBox
Mark Brand [Wed, 18 Jul 2012 20:02:43 +0000 (22:02 +0200)]
make currentText the USER property for QComboBox

QItemDelegate takes the USER property as the value to be set using
model->setData(). The text is what is expected.

follow-up to b1b87a73012342dc1619a8e907ea9954d59ca564 which in Qt 4.8.0
broke the interaction between QComboBox and QItemDelegate used by
QDataWidgetMapper and item views.

Task-number: QTBUG-26501
Change-Id: I005a0a6af5265ee22baf417957e520992d16d6e1
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoRequire CMake 2.8.9 for the qt5_use_modules function.
Stephen Kelly [Thu, 2 Aug 2012 08:07:19 +0000 (10:07 +0200)]
Require CMake 2.8.9 for the qt5_use_modules function.

The newer CMake version has the POSITION_INDEPENDENT_CODE property which is
what we need here. The CMake 2.8.8 implementation uses awkward and incomplete
string manipulation which I don't want to maintain for any amount of time
when Qt 5.0 is released.

Change-Id: If7ace9c6925ccdbf800f1863fa2368e55fa44d7f
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoDoc: Added a Qt Network landing page.
Jerome Pasion [Fri, 3 Aug 2012 15:39:21 +0000 (17:39 +0200)]
Doc: Added a Qt Network landing page.

-fixed generated HTML file names
-removed qt-network group in qt/qtdoc and removed \ingroup instances

Change-Id: Ida5ded5da30e6db1978382f6742a5da8036e055e
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Martin Smith <martin.smith@nokia.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
12 years agoUse an include guard for qelapsedtimer.h that matches the file name
Thiago Macieira [Fri, 10 Aug 2012 09:55:50 +0000 (11:55 +0200)]
Use an include guard for qelapsedtimer.h that matches the file name

The class used to be called QTimeStamp before.

Change-Id: I6e543f4f131a80299eb5dae78d8852b7899bab8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoUse Q_LIKELY instead of doing an #ifdef for GCC
Thiago Macieira [Fri, 10 Aug 2012 09:51:42 +0000 (11:51 +0200)]
Use Q_LIKELY instead of doing an #ifdef for GCC

This code predated the Q_LIKELY macro. Now that we have it, use the
official macro.

Change-Id: I0e43609f8d6827f8fef7b928655a965cba579b8d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoCorrect QTransform::QTransform documentation re m13 initialisation.
Mitch Curtis [Fri, 10 Aug 2012 06:59:02 +0000 (08:59 +0200)]
Correct QTransform::QTransform documentation re m13 initialisation.

Documentation incorrectly states that it is m13 that is set to 1,
when it is instead m33.

Task-number: QTBUG-10232
Change-Id: If3c7d3eb1c478ebef4f13b4842235445afc48049
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
12 years agoHandle "-psn_XXX" command line args on Mac
Morten Johan Sorvig [Tue, 7 Aug 2012 12:17:27 +0000 (14:17 +0200)]
Handle "-psn_XXX" command line args on Mac

Finder on Mac OS X sends a command line argument of
the form -psn_0_3523420 when launching applications.
Eat the argument like we do in Qt 4.

Change-Id: I09db9dea035e62c0b816a833c9ad6fcd78f83735
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: Simo Fält <simo.falt@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years agokms: Restore VT settings when crashed
Laszlo Agocs [Tue, 31 Jul 2012 10:43:42 +0000 (13:43 +0300)]
kms: Restore VT settings when crashed

This does the job of keeping the terminal keyboard working when
the application segfaults but is somewhat unsafe because ioctl()
is not async-signal safe.

Change-Id: Ie6728a4252e18c29bba8f8308e6c00d4a1eb6a8e
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
12 years agoQtGlobal: (new) qEnvironmentVariableIs{Set,Empty}()
Marc Mutz [Fri, 3 Aug 2012 10:46:15 +0000 (12:46 +0200)]
QtGlobal: (new) qEnvironmentVariableIs{Set,Empty}()

These functions are a faster version of {,!}qgetenv().is{Null,Empty}(),
a common pattern in Qt code.

Their main advantage is that they don't need to allocate memory, so
they can be used in noexcept functions, or dynamic initialisation of
namespace-scope statics, because throwing in these contexts invokes
std::terminate().

Change-Id: I651c5bd72f450b5d7df76590f8791572fe992af5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoRemove code duplication in QStandardPaths implementations
David Faure [Wed, 8 Aug 2012 15:56:22 +0000 (17:56 +0200)]
Remove code duplication in QStandardPaths implementations

Using the new getter to access the "test mode" setting.

Change-Id: Id26a350cd3fab4bf2e5f58ba67bc7323f99c9cc3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoAdd bool QStandardPaths::isTestModeEnabled()
David Faure [Wed, 1 Aug 2012 15:28:39 +0000 (17:28 +0200)]
Add bool QStandardPaths::isTestModeEnabled()

Library code might need to know this, e.g. when calling an external
process, to give it the right configuration. (For instance when
ksycoca code calls kbuildsycoca to recreate the DB at the right place).

Change-Id: I343ddefff816586f9d391973c08ff1e1ad86bf0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoOpenGL: Allow querying OpenGL extensions via the QOpenGLContext
Sean Harmer [Tue, 7 Aug 2012 08:37:30 +0000 (09:37 +0100)]
OpenGL: Allow querying OpenGL extensions via the QOpenGLContext

Change-Id: Ia88470554bbfd2a56738dadfcafafe42a990382d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
12 years agoFix qlayout autotest build for WinCE.
Janne Anttila [Tue, 19 Jun 2012 08:22:46 +0000 (11:22 +0300)]
Fix qlayout autotest build for WinCE.

SRCDIR was not defined for WinCE but it should no longer be used.
Fixed test case to use QFINDTESTDATA instead.

Change-Id: I07cbf7d42790d33e2d205d1682ec10e7577a92bd
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
12 years agoUse native handles for parent change check in QWindowsWindow.
Miikka Heikkinen [Wed, 8 Aug 2012 10:48:29 +0000 (13:48 +0300)]
Use native handles for parent change check in QWindowsWindow.

QWindow::setParent() sets the parent to zero instead of the desired
parent, if platform window has not yet been created for the parent.
This caused QWindowsWindow::setParent() to skip setting the parent
later, when correct window was specified, as the QWindow parent-child
relationship hadn't changed. Fixed by changing the the check to use
native handles instead.

Task-number: QTBUG-26791
Change-Id: I292a1ddf746583a7268f2d07c20166995c0dd7d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoNeed to have the XI2 import to detect XI_TouchBeginMask
Shawn Rutledge [Thu, 9 Aug 2012 09:50:01 +0000 (11:50 +0200)]
Need to have the XI2 import to detect XI_TouchBeginMask

Followup to I5c925ae3e191244c7ab9415e4ba2fe49b93dd2af : touch was not
actually working by default.  A major symptom was getting double-clicks
instead of clicks on buttons and such, making it quite hard to
interact with anything.  There are some problems remaining.

Change-Id: I09fa5965036bac242ccc1f4db71f6d912445ca01
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
12 years agofix conditions in embed_manifest_*.prf
Joerg Bornemann [Wed, 8 Aug 2012 09:24:54 +0000 (11:24 +0200)]
fix conditions in embed_manifest_*.prf

MSVC 2012 was ignored.

Change-Id: I41b2dff85c037ce8057c91036434aa26cd9b5d5c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoMark QElapsedTimer functions as Q_DECL_NOTHROW
Thiago Macieira [Mon, 6 Aug 2012 14:27:18 +0000 (16:27 +0200)]
Mark QElapsedTimer functions as Q_DECL_NOTHROW

All functions in QElapsedTimer are marked Q_DECL_NOTHROW. This code
is often introduced in many places to deal with timeouts and doesn't
need exception handlers. In particular, it's used in QMutex locking.

In addition, mark QDateTime::currentMSecsSinceEpoch as nothrow, as it
can't throw exceptions either and it is needed by the generic
QElapsedTimer.

Q{Date,Time}::current{Date,Time} operate on local time and run into at
least one cancellation point, which we must consider throwing. And
returning a QDateTime allocates memory.

Change-Id: Id776c5ec831fc06d7419a9ff5442d9b35cff1a22
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years agoAdd Q_DECL_NOTHROW to QRefCount.
Thiago Macieira [Mon, 6 Aug 2012 14:01:40 +0000 (16:01 +0200)]
Add Q_DECL_NOTHROW to QRefCount.

For the same reason as the previous commit (about the atomic classes),
mark these functions as never throwing an exception.

Change-Id: Idf46e41b226f54cb8658416efdf985ca40dd2952
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years agoMark all atomic functions as Q_DECL_NOTHROW
Thiago Macieira [Mon, 6 Aug 2012 15:48:42 +0000 (17:48 +0200)]
Mark all atomic functions as Q_DECL_NOTHROW

Actually, only the "new" atomics are marked. The old implementation,
based on qoldbasicatomic.h is unchanged, but should still work without a
problem.

The following configurations were tested and do work:
 - x86 64-bit
 - x86 32-bit
 - generic GCC
 - generic C++11 std::atomic
 - bootstrap
 - ARMv6 and 7
 - MIPS
 - MSVC 2010 32-bit
 - MSVC 2010 64-bit

The only two configurations untested are IA-64 and ARMv5. Except for
MSVC, all configurations were tested with GCC 4.6 (MIPS and ARM) and 4.7
(x86 and generics).

Change-Id: Iecbfeacd9d20b535453e91335165e9a221e0b47e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
12 years agoAdd Q_DECL_NOTHROW to the atomic functions
Thiago Macieira [Fri, 3 Aug 2012 19:13:22 +0000 (21:13 +0200)]
Add Q_DECL_NOTHROW to the atomic functions

These functions are inline (on most architectures) but they contain
inline assembly which the compiler could not understand. In any case,
if it decides not to inline them, it would need to generate exception
handlers.

Change-Id: If9d50793d715c51781e76d0a539da03a6d83e255
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>