Commit Graph

22318 Commits

Author SHA1 Message Date
Oswald Buddenhagen
f407607897 simplify absolute unix path detection
use the posix builtin that is used two lines down as well instead of sed
with platform-specific options.

Change-Id: I439f79554d883564150004c1f7b6d8655a0ef192
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:34 +00:00
Oswald Buddenhagen
a07fd165f3 configure --help clarifications relating to -*prefix
Change-Id: I71c78b7c91c9fedb7d55731b3f61d46ea75c9b8d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 14:26:31 +00:00
Peter Hartmann
3c24dddaf9 SSL NPN negotiation: Do not abort on unmatched protocols
... but choose HTTP/1.1 and continue connecting anyhow. According to
the NPN spec, actually we should choose SPDY:

"In the event that the client doesn't support any of server's protocols,
or the server doesn't advertise any, it SHOULD select the first protocol
that it supports."

However, some tested servers did not advertise anything and did not
support SPDY, so blindly trying the newest protocol would fail. We are
conservative in that case and choose HTTP.

Task-number: QTBUG-40714
Change-Id: Ia8aaf01fea74e13d9e4416306f85f1890b25559e
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-02-05 14:07:19 +00:00
Friedemann Kleint
239f67f158 Do not close popup widgets when showing a widget embedded into QGraphicsView.
Disable top-level widget code path for embedded widget in the show
helper.

Task-number: QTBUG-43780
Change-Id: I574e07130e5e68a019a426cee3fde982f3883720
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-02-05 13:54:01 +00:00
Joerg Bornemann
df3ffeec15 QProcess/Win: fix sporadic crash
QProcessPrivate::_q_processDied() was potentially called twice if there
was a slot connected to readyRead() that called processEvents(), because
the processFinishedNotifier was still enabled when readyRead() was
emitted.
This led to a null pointer access in findExitCode.

Change-Id: I4b796b81f050dc46bb9469602984accaa6ebfa28
Task-number: QTBUG-33731
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-05 13:43:57 +00:00
Laszlo Agocs
c0fa5922b2 Fix xcb's dbus dependency
Getting a build error on Raspbian due to the lack of libdbus-1. Configure
chooses dbus-1 at runtime so there should be no reason to force -ldbus-1
in xcb.

Change-Id: I3f35e0069b3abae59d575c5e3d8f4f24f7d935d2
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-02-05 10:01:13 +00:00
Laszlo Agocs
e8ef23eee4 xcb: do not leak window system integration
Destroy the GLX or EGL backend. This also requires fixing an uninitalized
member in the native interfaace handler.

Besides fixing the leak this will also do eglTerminate on exit, which is
very beneficial for proper resource cleanup and avoids "Display is destroyed
with resources" warnings on Mesa with debugging enabled.

Change-Id: Ibd62d6964e86ac1319abed1f06b478327c348a0e
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-02-05 10:01:09 +00:00
Friedemann Kleint
c56da2e8da Diaglib: Fix compilation with MSVC 2010 / SDK 7.X.
Change-Id: Idf6adc6d3788c3ac6fda770c4cf42bceb530cd48
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-05 05:21:26 +00:00
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