Commit Graph

22360 Commits

Author SHA1 Message Date
Friedemann Kleint
dff18b8e80 Windows: Allow for passing a modified argv to QCoreApplication.
Check by comparing __argc/__argv whether a modified argv was
passed to QCoreApplication. If that is the case, build
QCoreApplication::arguments() from that argv instead of using
the command line.

[ChangeLog][Important Behavior Changes][QCoreApplication]
On Windows, QCoreApplication::arguments() now returns a list built
from argv on Windows as well if a modified argv was passed to the
class' constructor.

Task-number: QTBUG-30330
Task-number: QTSOLBUG-184
Change-Id: I2498bb554130e7bfaeada3aebe786dfdd0eb534d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-05 05:20:20 +00:00
Kai Koehne
6a607aa7aa Do not specifically mention features supported since XP
We do not support Windows older versions in the first place ...

Change-Id: I2cd3135f1b7f2dac6929c07624ea9373f4ac0ff1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-04 23:12:25 +00:00
Antonio Lotti
dcedbce99a Windows : fix call to LookupAccountNameW
The call to LookupAccountNameW from advapi32 was rewritten following
the example:
http://msdn.microsoft.com/en-us/library/aa392742%28v=vs.85%29.aspx
This prevents the generation of a garbage pointer when accessing
QWindowsSystemProxy::init() for Qt compiled as 64bit library
with MinGW-w64.

Task-number: QTBUG-39874
Task-number: QTBUG-38145
Change-Id: I620b2fa64941f84838f9a386851480285336e8d1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-02-04 23:08:33 +00:00
Allan Sandfeld Jensen
57469a8e10 Avoid creating a QPixmap on QBrush comparisons
We shouldn't create QPixmaps when comparing QBrushes that do not
contain a QPixmap.

This patch extends the comparison logic to comparing QImage cachekeys
if the brushes are QImage based.

Note the comparison still produces false negatives on equal content on
different pixmaps and images, but this is preserving existing behavior.

Task-number: QTBUG-43766
Change-Id: I001b4032172c1e568aad311f7df2eaae6aee8dc6
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-04 22:10:17 +00:00
Marc Mutz
a29374fc8e QComboBox: use QModelIndex::sibling() instead of index()+parent()
QAIM::sibling() may be more efficient, esp. in cases where only the
column number needs to be adjusted. It is a no-op if the column
number is already correct.

Change-Id: Iabb8d5ef58d083da971a9d2f3702908257e5cc0a
Reviewed-by: David Faure <david.faure@kdab.com>
2015-02-04 19:38:04 +00:00
Allan Sandfeld Jensen
6c117ee4aa Correct QPainter's is_brush_transparent
1-bit QImage's should not be considered transparent unless they have use
transparent colors in the color table or have no color table. By using
hasAlphaChannel we also catch other transparent brush textures.

The method is only used in determining emulation specifiers.

Change-Id: I120ee1de4dc2df666c3e2acb1e40b53a8de40754
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-04 19:37:33 +00:00
Allan Sandfeld Jensen
89edf43c44 Generate SSE4.1 versions of premultiplying methods where convenient
The autovectorized versions of premultiplying conversions are almost
twice as fast with SSE4.1 as with SSE2. Therefore this patch lets
compilers that can make those versions convenient without duplicating
code do that and lets us use them when available.

Change-Id: I699035963abe55a38b9ef8ba7b4a8c961c8dfcdd
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-04 19:37:22 +00:00
Marc Mutz
83a3292342 QPair: work around std::move not being constexpr in C++11
Use a static_cast instead. This is not 100% equivalent,
since it's missing remove_reference<>, which we don't want
to depend on and whose emulation in qtypetraits.h is missing
rvalue support.

That will be fixed in dev.

Change-Id: Ib03754c81c904932943d3a5415b54ff107f4719d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-04 18:38:52 +00:00
Tor Arne Vestbø
5432f2c7a1 Remove traces of the Maemo platform
Change-Id: I6b551de331aa0386ea53d8e96f50b669777d2d69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-02-04 17:14:35 +00:00
Tor Arne Vestbø
b6c03f58ce a11y: Fix warning about instance method '-invalidate' not found
The interface declaration of QMacAccessibilityElement lives in the Cocoa
platform plugin. We replicate the needed parts in QtGui to silence the
compiler.

Change-Id: I2d1984c988777d3c7af82df90390624c93fd85b5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-02-04 17:14:31 +00:00
Oswald Buddenhagen
cf38b12a27 make shellQuoteWin() be more sparing with circumflexes
... as newer versions of nmake (and jom, for compatibility) have botched
circumflex processing (they simply don't do it when shortcutting the shell
evaluation).

as a side effect, the output is also more readable if the string contains
quotes.

Change-Id: I0506b59ceecb70da258c482f9973156b2803066d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:34:02 +00:00
Oswald Buddenhagen
fde33949f4 always use single quotes in shellQuoteUnix()
double quotes cause mingw32-make to switch from direct execution to going
through the shell, so avoid them.

Change-Id: I05b71a050e425a1b327f747fab01755ff528ba0b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:59 +00:00
Oswald Buddenhagen
e351ccfc12 add value quoting to qtAddToolEnv()
for sh, this is usual quoting.
for cmd, this means escaping closing parens - everything else is permitted
anyway.

Change-Id: I1179849d95f1f1f9e4b0d62ecd88917a1327f60f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:56 +00:00
Oswald Buddenhagen
2a3cac756d nuke pointless QT_BUILD_TREE assignments
this variable has been dead for the most part for some years.

Change-Id: I834e23c5db4585cacfa7fa556509dabc030e5c37
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:54 +00:00
Oswald Buddenhagen
ca15d0d7e1 de-noise test
don't complain about various missing things resulting from replacing
default_pre.prf and having a private .qmake.cache.

Change-Id: Ie3471b514ebb1a80b72a480144551b56b5c7a254
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:51 +00:00
Oswald Buddenhagen
36160e8980 make configure -redo and config.status able to handle spaces in arguments
Change-Id: If6ffe381b03595885570ae431a9937c6fdce164b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:45 +00:00
Oswald Buddenhagen
9c877bf6ed remove support for ancient /bin/sh which mishandle empty "$@"
Change-Id: Id936a48e8b9a5b8e15512481e464a0e9366b9152
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:42 +00:00
Oswald Buddenhagen
b8ed5d3c6f remove some redundant backslashes
%QTSRC% always contains a trailing backslash.

Change-Id: I96772c18f45655f8dbe386f9351d0823fa70f1d0
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:40 +00:00
Oswald Buddenhagen
7ee850636e remove redundant CXX definition
configure.bat adds it anyway.

Change-Id: Ica0d49c08f3d0ddbc51c211d61da1150444c6782
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:37 +00:00
Oswald Buddenhagen
ed3aca119f make test support qmake path with spaces
Change-Id: I66d8b3cc742c44d02c224bbfc4086500af0d5f4a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:33 +00:00
Oswald Buddenhagen
8d71fcabb1 prune pointless INCLUDEPATH fixing
MakefileGenerator::init() fixifies the variable, so there is no point in
the windows generator adjusting path separators as well.

Change-Id: I9331631125ee16ce4d64e38153f3c67f2f78b16b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:13 +00:00
Oswald Buddenhagen
6dfda9b994 fix versioned lib lookup with normalized full paths
this is admittedly a rather improbable use case, so unlikely to have any
real world effect.

Change-Id: If98f0de90043525f0555f8ddf98f8b4352e5a0a7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:33:00 +00:00
Oswald Buddenhagen
030c3a6197 remove pointless return value from QMakeParser::read()
it always returned true nowadays.

an obvious followup effect is that the return value of parsedProBlock()
doesn't need to be null-checked any more as well.

Change-Id: I782785cab9b721a78a342a010921a73e642ebe7f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:32:57 +00:00
Oswald Buddenhagen
924659b22f don't re-implement QDir::mkpath()
Change-Id: Ic5cd5d3048c19047f22641698acbf678301d366e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:32:53 +00:00
Oswald Buddenhagen
7d04d82319 rename fileVarGlue() => fixFileVarGlue()
... because it also fixes the path, and we'll need the "plain" name later.

Change-Id: I86da8f53e44a68005c413c4b78b1b1682746e22e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 16:32:51 +00:00
Oswald Buddenhagen
5629187697 xcode: remove special treatment of YACCSOURCES and LEXSOURCES
we (supposedly) fully support QMAKE_EXTRA_COMPILERS, so there is no need
for any special casing here.

Change-Id: I4e9d389320a3e5ad0acbf73823ff1e6f7b9c370f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-04 16:32:48 +00:00
Oswald Buddenhagen
68c750dd4b don't rely on the right moc being in PATH
Change-Id: Ibe89f9d3090398e0c5fc63d32dec18934bf89ac4
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-04 16:32:42 +00:00
Oswald Buddenhagen
b91558419b don't rely on the right qdbuscpp2xml/qdbusxml2cpp being in PATH
Change-Id: I50f639632dcb37c9752b41241a21c9fcd9dde0dd
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-04 16:32:40 +00:00
Richard J. Moore
91a48160d6 Move Rfc822NameType, DnsNameType and UniformResourceIdentifierType.
Move these types to QAsn1Element so that they can use the toString()
method which guards against malicious ASN.1.

Change-Id: I7d6155147a6fc2d41da6f3ae87551b6cb75aa9ce
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
2015-02-04 15:49:50 +00:00
Richard J. Moore
3bc5f8c081 Harden QAsn1Element against malicious ASN.1 strings.
We don't currently use this class for critical things like hostname
verification however we still want to ensure that it is not possible
to trick it using ASN.1 strings with embedded NUL characters. This will
avoid problems in the future.

Change-Id: Ibf3bc142a94fc9cad5f06db50f375399a087f9dc
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
2015-02-04 15:49:35 +00:00
Allan Sandfeld Jensen
b10fa67605 Remove unused qdrawhelper_sse_p.h header
This header has not compiled since the MMX header it includes
was removed in 2011. It appears to be completely unused.

Change-Id: I48dbade1af186cf113cbd50eb7bedf3a32b97883
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-02-04 15:32:02 +00:00
Allan Sandfeld Jensen
e1c9315829 Remove unnecessary math.h and limits.h includes
Change-Id: I28c898f869ed3f03b08ff55f2972a38667c755ad
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-04 15:31:41 +00:00
Konstantin Ritt
40ebda3efb [QFontDatabase] Speed-up is(Bitmap|Smoothly)Scalable
...with hints provided by platform font database.
Namely, if database reports fontsAlwaysScalable(), then we could
simply return true in QFontDatabase::is(Bitmap|Smoothly)Scalable.

Change-Id: I7af082718e007dfdaf430d3c4852005f62efa41a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-02-04 15:24:34 +00:00
Laszlo Agocs
bfc3d41894 Check for the proper extension for anisotropic filtering
Change-Id: I881fccea3af74ead14f523c7c54a405a15ea29ab
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
2015-02-04 15:22:59 +00:00
Richard Moe Gustavsen
7a377fe379 QDialog: don't tell native dialog to hide if never shown
If the platform returns false when asked to show a native
dialog, it means that it could not show it. Calling hide
on it later is therefore wrong, and can cause unwanted
side effects.

Change-Id: Icf5bdb5d98f40af6ef70fdbeaff824a535a404b3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-02-04 15:05:15 +00:00
Olivier Goffart
7d6c6bc082 Use Q_ENUM and Q_FLAG for types in QtCore
Change-Id: I33590a9c4c6d87c5bbba1d201e32c6bf1bd3e00b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-04 14:59:35 +00:00
Olivier Goffart
d446b1a5ef Use Q_ENUM and Q_FLAG in the Qt namespace
They need a special macro since they have a different metaobject

Change-Id: I2fa50b4b2e45990fb01771378765b42f03139183
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-04 14:59:22 +00:00
Jan Arve Saether
3f431e279a Do not compile in dlldata.c or ia2_api_all_c.c
These files are only required for a COM server, but since the
IAccessible2Proxy will actually be the effective server (inside our
process). We just have to make sure we respond to the correct events, and
reimplement the virtual functions as required.
This is already done, so these files can be removed.

Task-number: QTBUG-30838
Task-number: QTBUG-28645
Change-Id: Ic95101945bad263a6da63c08b3e47cc0c9d5734a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-02-04 14:59:03 +00:00
Sandro Mani
37e7c3afbc Ensure null pointers are not added to QXcbConnection::m_touchDevices
QXcbConnection::touchDeviceForId attempts to retrieve an existing
XInput2TouchDeviceData from m_touchDevices via QHash::operator[]. If
m_touchDevices does not contain the specified XInput2TouchDeviceData,
QHash::operator[] adds a default constructed value (i.e. a null pointer) for
the specified id. This null pointer is not removed from m_touchDevices if
the condition "nrDevices <= 0" is true below. This causes a null pointer
dereference later on in QXcbConnection::finalizeXInput2.

Change-Id: Icd3352417047c4b35d56db2d9f51e3fa1d859e9d
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-02-04 14:41:48 +00:00
Shawn Rutledge
315145ac95 D-Bus tray icons: get devicePixelRatio at runtime
In static builds of Qt, static initialization may not work because
we need an initialized list of screens before devicePixelRatio() can
use them to find the value.  Anyway, it's better to know the dpr
at the time the tray icon will be shown rather than when the
application is started, just in case it changes.

Change-Id: Iedffb674d8e8818c2a4e64d7c7a3c89a2dca77f3
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-02-04 14:41:36 +00:00
Sandro Mani
1f4b84f69f QXcbClipboard: don't hold on to the screen pointer
Remove the QXcbClipboard::m_screen member variable and make it use
connection()->primaryScreen() instead. The clipboard is created in the
QXcbConnection constructor, and QXcbClipboard::m_screen was set to the primary
screen at the time of construction. If the primary screen later gets
disconnected, m_screen ends up pointing to a non-existing screen.

Change-Id: I2d23106673d0ba013056d4dbb7078acdf6f9bc7c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-02-04 14:41:19 +00:00
Sandro Mani
cf1c4d810a QXcbWindow: use an accessor to get the screen instead of storing it
Applications which construct a window with one screen configuration and show
the window later on after a screen configuration change crash because the
QXcbWindow::m_screen still pointed to the screen present at the time of window
construction. In QXcbWindow::handleConfigureNotifyEvent the m_screen should get
updated with the new screen, but I didn't see that method called in the
scenario outlined. Looking at the other platform backends, I however see that
they take the screen directly from the QPlatformWindow instead of storing the
instance, hence this patch which makes QXcbWindow do the same.

Change-Id: I13759a5939315c3aac36ec6e2c25bd0a6d7b1c35
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-02-04 14:40:56 +00:00
Konstantin Ritt
348ac43821 [QMath3D] Add public c-tors that do not initialize the contents
Change-Id: I1a28766451e6750986a239c989e7f30c14479057
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-02-04 14:38:03 +00:00
Friedemann Kleint
2e1a76a594 Streamline code in QDesktopWidget.
Task-number: QTBUG-44070
Task-number: QTBUG-44213
Change-Id: Icbf0547eb521b9f3fcc725066ee4903226ecc630
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 14:04:16 +00:00
Friedemann Kleint
b1b262559c QWindowsXPStylePrivate::buffer(): Improve warnings.
Task-number: QTBUG-44282
Change-Id: If617db5c6eae410042394f20855892a2c564e808
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 14:04:07 +00:00
Friedemann Kleint
276de71be7 Handle failure of Windows XP theme painting functions for PE_FrameWindow.
QWindowsXPStylePrivate::buffer() can fail due to CreateDIBSection()
failing for large sizes. Introduce a bool return for the
QWindowsXPStylePrivate::drawBackground() helpers and fall back to
QWindowsStyle:::drawPrimitive() should that happen for PE_FrameWindow
in QWindowsXPStyle::drawPrimitive().

Task-number: QTBUG-44282
Change-Id: I122d84576455bbad8e6639022da5bf64f79aed3a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-04 11:15:25 +00:00
Marc Mutz
9cf6e48525 QCalendarWidget: simplify formatNumber()
The code just does the sprintf-equivalent of %0<n>d where <n>=fieldWidth.
Be explicit and use QString::rightJustified().

Change-Id: I7d72b5d62e5de581ba4207eba0d358a18f0b1972
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-04 06:32:39 +00:00
Timur Pocheptsov
d024f0a922 Cocoa plugin - showMaximized/showMinimized and Qt::FramelessWindowHint
1. Qt::FramelessWindowHint imlplies NSBorderlessWindowMask, but should
   _not_ exclude NSResizableWindowMask - we still have API (showMaximized)
   to resize this window. Without NSResizableWindowMask showMaximized
   (calling NSWindow's '-zoom' under the hood) has no effect.
2. -performMiniaturize does not work with a borderless window, since such
   a window does not have a minimize button - use miniaturize for such
   window instead.

Change-Id: I691182ad7c1d230e670bfb70ef758483acbf0792
Task-number: QTBUG-44195
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-02-04 05:52:34 +00:00
Sérgio Martins
ad2ea16550 Fix 1700 override warnings [-Winconsistent-missing-override]
Classes should either use or not use override, otherwise it hurts
code readability.

Some inline keywords were removed because of an error with MSVC2010:
error C2216: 'override' cannot be used with 'inline'

Change-Id: I7276d5525a92281bd0d743beb11d0dc73441443b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-03 22:52:14 +00:00
Maks Naumov
b2595bd015 QLayoutStruct: reduce struct size 36 -> 32 bytes
Change-Id: I2cc9f8456317f57531280912966c24073f0c6f34
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-03 22:51:11 +00:00