Commit Graph

14219 Commits (2b0cf53df77e4cc49d582b23bfec292eeca327c5)

Author SHA1 Message Date
Thiago Macieira 2b0cf53df7 Simplify the QLibrary plugin-detection code
The reason why the scanning of files was restricted to Unix is lost in
history. My guess is that it was added *because* on Unix you couldn't
do the LoadLibrary trick to load without dependencies. That is, it
makes no comparison to whether scanning is faster than LoadLibrary.

So assume that scanning is faster, especially now that we have memory
mapping in QFile (it wasn't there in Qt 4.0).

This simplifies greatly the codebase because we no longer need to try
to load and later unload the library to check whether it is a Qt
plugin or not, nor deal with Windows non-C++ exceptions. Just scan on
all platforms.

Change-Id: If269e009bfb9920805ca1aa6c2b66aacdd5b26e9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-20 02:09:33 +02:00
Thiago Macieira 62d636a666 Add a Mach-O decoder to the QPluginLoader
We already had an ELF decoder, which helped us greatly to find the
metadata and that catches most Unix systems (Solaris, QNX, HP-UXi, and
all of the free Unixes). On other Unix systems, aside from Mac OS X,
we simply scanned the entire file for the signature. On Windows, even
without a COFF-PE decoder, we use a LoadLibrary trick to load the
plugin without loading the dependent libraries. In most cases, that
works.

Unfortunately, on Mac OS X we didn't have a decoder and nor could we
do the file scan: because Mac OS X binaries could be fat binaries, we
wouldn't know which architecture's signature we had found.

No more. This adds a full Mach-O decoder to QtCore. It is also capable
of finding the boundaries of the architecture's binary, but that
functionality is disabled since all Qt 5 plugins have plugin metadata
sections.

Change-Id: I2d5c04c5ecf024864b8a43f31ab6b7e6c5eae9ce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-20 02:09:26 +02:00
Oswald Buddenhagen 3fdf69b599 update m_featureRoots less aggressively
it's not necessary to immediately re-calculate the roots after assigning
QMAKE_PLATFORM - it's sufficient to do it on-demand, so merely
invalidate them. this avoids that we re-calculate them multiple times
without ever using them in between while processing specs with
distributed platform assignments.

Change-Id: If508594764811b96a577fc81c5ded34ab0453148
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
(cherry picked from qtcreator/28df27d924bb407791a76de8159c9ffa6efde283)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-19 17:15:16 +02:00
Oswald Buddenhagen 3a6a462ad9 cache results of feature search
looking up the same files in the same locations over and over again
is a rather significant waste. in particular, looking up the CONFIG
flags that don't correspond with features has a measurable impact on qt
creator's project loading time.

Task-number: QTCREATORBUG-9154
Change-Id: Ibae3d8b7797e706a6416a7d45c77734ab1281b51
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/fa27cd79e05aed4ebd16d5648480cc7d48fefd43)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-19 17:15:16 +02:00
Oswald Buddenhagen 547b7ed29c minor optimization: don't concatenate strings needlessly
Change-Id: Iddec1a818ff9f3ad8b12491100883e433e4b8246
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/12652c20711fd29dcba62b8d5ba71c077d8bd06c)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-19 17:15:16 +02:00
Oswald Buddenhagen 4b600bd3c1 don't unnecessarily use QFileInfo::filePath()
just directly use the filename we constructed it from.

Change-Id: Ia428a2cb4b192fea6bde62dfbf35361bcfc4b21e
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/571234786a3ff7e8e3a9220f12d22a9f74f7a53c)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-19 17:15:16 +02:00
Friedemann Kleint 83ee168cbb Fix compilation of the tst_qnetworkreply benchmark test with QT_NO_SSL.
preConnectEncrypted_data() is called by preConnect_data().

Change-Id: I9a3fad294d88e4cb4d2f6132cf7a87945373bb7d
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Sérgio Martins <sergio.martins.qnx@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-19 14:16:42 +02:00
Kevin Ottens 5069e203d7 Add QUrl based API to QFileDialog
Change-Id: Iaf4f8e57e8df956dec9105eb00c193645f2db098
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-07-18 17:07:22 +02:00
Kevin Ottens f5dbc87637 Have QFileDialog use QUrl internally
When using the native dialog and through the helper, we use QUrl in
QFileDialog. It is preparatory work for having QUrl based methods on
QFileDialog interface itself.

Done-with: sean.harmer@kdab.com
Done-with: faure@kde.org

Change-Id: I61e99d498252241f38ec05724702a90ba050c4bb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-18 13:17:41 +02:00
Friedemann Kleint c96a6ab627 Pass argc, argv to the platform plugins.
Allow for parsing of X11-specific arguments like -display,
-geometry. Introduce overload of
QPlatformIntegration::create() with argc and argv
and provide default implementation that calls the old version
(for platforms that do not have argc, argv). Provide default
implementation for the old version returning 0 so that platforms
using the new API compile.
Prototypically implement -display in XCB.

Task-number: QTBUG-29396
Change-Id: I6a0e9271fad6e2d10f11b80393025ae3a3e36623
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-18 13:13:36 +02:00
Friedemann Kleint 066d32d743 Testlib: Add a crash handler for Windows that prints a message.
Change-Id: I4d6559fd1b21f9f259be6a5a160361e25ea0d217
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-07-17 10:30:35 +02:00
Friedemann Kleint 915f4d8c95 API-cleanup: Add QPlatformFontDatabase::registerAliasToFontFamily().
Unexport free function qt_registerAliasToFontFamily() and
Make it a static member of QPlatformFontDatabase instead.

Change-Id: I1df49a8e37a24b3961f92288d67b6f1108a7d520
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-07-16 16:02:51 +02:00
Tor Arne Vestbø ba1aba61cc Disable app_bundle and lib_bundle when running configure tests
Just like configure.prf.

Change-Id: I760e0ca5bec41b3befb738a8a7a468e8f1a15946
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-16 13:44:18 +02:00
Friedemann Kleint c8cc4f162d QTestlib: Re-enable Windows error dialog when -nocrashhandler is passed.
The error dialog is sometimes desired when trying to attach a
debugger. Use the  -nocrashhandler option for it, which already
exists on UNIX.

Change-Id: I42c9311242cdeaa81a148af9bf61875e1bc6f32c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-07-15 21:52:55 +02:00
Friedemann Kleint d3859c61bf Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-07-15 15:46:20 +02:00
Tor Arne Vestbø 9f266a0210 iOS: Get rid of QIOSMainWrapperApplicationDelegate
We only control the application delegate in the wrapped case anyways,
so QIOSApplicationDelegate is good enough for our use.

Change-Id: Ib738592dc306c5b6652632b9ae4dab431639a89a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-07-15 12:40:04 +02:00
Tor Arne Vestbø 02a2c91e24 macx-xcode: Use Info.plist templates from original makespec
Change-Id: I178f1ce7cea1228d3d38b3517f9dcecc3c2d4c6f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-07-15 12:39:58 +02:00
Tor Arne Vestbø b460decdfa Remove Mac libc++ mkspecs
Should not be needed anymore (as of 3d0a60aaa4), as we now use libc++
automatically when C++11 support is enabled.

The specs were deprecated in Qt 5.1 (commit f7a7859a7).

Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I6653f191b99f7c51c3f02a62c6ef68591b2dfa70
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-15 12:39:52 +02:00
Frederik Gladhorn 1190863fc0 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I0218a1f08b89f2d56757ab35eec06799d2a1492f
2013-07-15 10:36:59 +02:00
Bernd Weimer ab20b499d8 QNX: Silenced propagateSizeHints warning
On QNX propagateSizeHints is ignored. Default base class implementation
is overridden to silence warning.

Change-Id: I6c2df5e1943fdc1170c772b9bb4feb091726790f
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-07-15 10:17:44 +02:00
David Gil 7dbe4df27b Add reminders to change uint to quint64 in Qt6 QDateTime time_t methods
In order to avoid problems in 2038 with time_t dates in 32-bit machines,
add reminders to change uint to quint64 in Qt6, in time_t-related methods
of QDateTime.

Change-Id: I1596a64fe1806df17c28c7586bb1ce6283b9ae02
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-15 10:15:33 +02:00
Friedemann Kleint 0e4c09662a qdoc: Fix warning about unused variable.
qmlvisitor.cpp:248:13: warning: variable 'pgc_idx' set but not used
[-Wunused-but-set-variable].

Change-Id: Ia8ec15add69771ad7b71d2e17c68204c5bffb360
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-07-15 10:09:00 +02:00
David Faure 02afd94ef4 QUrl: remove old commented out code for normalized().
adjusted(NormalizePathSegments) does this.

Change-Id: I4b17c39174b5c04edac8d51e5fef8cd052db4b3f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-13 17:12:22 +02:00
David Faure a7bc4e8494 QUrl: add NormalizePathSegments to UrlFormattingOptions
This is a bit like QDir::cleanPath(), but for URL paths.
The code is shared with QDir::cleanPath(), by extracting the common parts
it into a helper, qt_normalizePathSegments().

Change-Id: I7133c5e4aa2bf17fba98af13eb5371afba64197a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-13 17:11:59 +02:00
Friedemann Kleint e4484bb15b XCB: Append 0-character to atom name string.
The below loop needs 2 consecutive 0-characters to terminate
properly.

Change-Id: I73e56cadbcd2515d5b0f1b4907316a27a6bbaf0e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-12 19:23:49 +02:00
Gabriel de Dietrich 64caf7b1be Display sizegrip on QMdiSubWindows, even on 10.7 and later
We don't have 4-edge window resizing, so we need QSizeGrip to
be functional again in this case.

Task-number: QTBUG-32228
Change-Id: Ib66bc662f8bf0b521427755570bc1cd65fb28446
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-07-12 17:02:54 +02:00
Thorbjørn Martsum 659f62981f QVarLengthArray - check if iterators arguments are valid (in debugmode)
This add checks on iterators on insert and erase.

Change-Id: I41d96e038d74668cc1df10b6d42cde4b82f8a696
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum 012d3750e7 QSet - check if iterator argument is valid (in debugmode)
This adds a check on erase that the iterator is from the set.

Change-Id: I9f4e127d53a5b1f5f8c70652604f1f5574c73688
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum 1c0a924a2e QHash - checks if iterator argument is valid (in debugmode)
This checks if the iterator argument in erase is valid in debug mode.

Change-Id: I8768f4263d1464ff78986a1a30702e210e561dc1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum ca3d8411b2 QList - check if iterators arguments are valid (in debugmode)
This adds a check of the iterator values in erase and insert.

Change-Id: I78403dcbd24fd7c6beb86d3c827a8e233963e770
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum 578fc87dff QVector - check if iterators arguments are valid (in debugmode)
This adds a check of the iterator values in erase and insert.

Change-Id: I28e660153dbfc5f0054a5b25cba2c5725c678a81
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Thorbjørn Martsum d24aa28b4c QMap - check if iterator arguments are valid (in debugmode)
This patch adds a debug-tests in erase, insert (with hint)
and insertMulti (with hint) that ensures the iterator-argument
is valid (and e.g not from another map)

Change-Id: I7920131bc9712543183cabf13c7603bd0e12880d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 16:15:44 +02:00
Tomasz Olszak 4f71a272b5 QCoreApplication: Removed out-of-date docs (argv() method).
QCoreApplication::argv() method was obsolete in Qt4.8
and removed in Qt5.0.

Change-Id: I217402f774f5509c8ca317a35c831ffa5ac2af06
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 14:54:09 +02:00
Thiago Macieira 9f3f455151 Fix disconnectFrom{Peer,Bus} when the connection failed
If the connection failed, the DBusConnection object is null, but we
still add our QDBusConnectionPrivate to the global hash (maybe we
shouldn't). Both disconnectFromXXX functions check that they are
disconnecting a connection of the right type, but we never initialized
the type if the connection failed.

So simply make sure we initialize before handling the error state.

Task-number: QTBUG-27973
Change-Id: I96f4825ab1b71adf1b72caf4f72db41742b44a55
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-07-12 14:53:12 +02:00
Sergio Ahumada 1866c13b7d Merge "Merge branch 'stable' into dev" into refs/staging/dev 2013-07-12 14:03:21 +02:00
Friedemann Kleint 7e7c689c34 Fix domain in manual test qhttpnetworkconnection.
Task-number: QTBUG-32390

Change-Id: Ic56640087d1f07edeca5f5fc36acac9dddc79c73
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
2013-07-12 12:41:30 +02:00
Friedemann Kleint b72a32b05d Remove Nokia-domains in commented-out test code.
Task-number: QTBUG-32390

Change-Id: Ida7d54aba9cde5c472ff6bb2696d1201ba4f2199
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2013-07-12 12:41:30 +02:00
Friedemann Kleint 6c37fb70d6 Consider virtual screen when determining dock widget visibility.
Task-number: QTBUG-32260

Change-Id: I8b28e3869a6e3b1ed12a311dfa0100979098fc4b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-07-12 12:41:30 +02:00
Allan Sandfeld Jensen e602003f87 DirectFB: Improve mapping of multimedia keys
The play_pause key was mapped incorrectly to direct pause. This one
maps it to togglePlayPause.

The two keys fast-forward and rewind have been mapped to
Key_AudioForward
and Key_AudioRewind, matching XCB and Android mappings.

Change-Id: I481bafab2fdfe1824b49e268e9d0754eef348cbf
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-07-12 09:55:21 +02:00
Bradley Buda 5cab14b8a1 Correct algorithm for digest auth when using the CONNECT verb
QHttpSocketEngine fails to authenticate to an HTTP proxy that is using
Digest authentication and the CONNECT method (i.e. when you are
tunneling TLS over HTTP). The bug is due to a bad parameter being
passed to QAuthenticatorPrivate::calculateResponse - the requestMethod
parameter is passed in as "CONNECT " instead of "CONNECT" (note the
trailing space).

Because an MD5 hash is derived from this method when using the
qop="auth" flavor of Digest auth, the hash does not match the expected
value and authentication always fails in this configuration.

Change-Id: Ia97ce5967bfb57b28db7614347ffdcaa56e4da0c
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2013-07-12 02:29:41 +02:00
Jake Petroules 5b648d4d79 Add osx and darwin scopes to qmake.
This gives us better consistency across the Qt ecosystem.

Change-Id: Ie12ebb6e8c826ed2e0445eb37de0b79595da41c2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-11 18:26:45 +02:00
Friedemann Kleint 376abfab39 Remove references to Nokia in qtbase examples.
Change-Id: I0d4a309bc7f92e1ad2c7465bfb2d677c91e6d818
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-07-11 17:29:39 +02:00
Kai Koehne 2c0f7fb8dc Fix compilation of libGLESv2 with older MinGW-w64 headers
Fix compilation of libGLESv2 for mingw-headers predating MinGW-w64
svn commit 5567 (like MinGW-builds gcc 4.7.2-rev8, the toolchain
we officially support).

Commit 5567 added the D3DCOMPILER_DLL define to d3dcompiler.h, but with
a trailing semicolon that has then fixed in commit 5783. Any toolchain
that ships MinGW-w64 headers from a version in between (like
MinGW-builds gcc 4.7.2-rev11) will unfortunately remain broken.

Change-Id: I31272a1a991c4fc0f1611f8fb7510be51d6bb925
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-11 17:29:39 +02:00
Friedemann Kleint 0b9c942f3d Use QFINDTESTDATA in tst_qfontdatabase.
Change-Id: I851dbe18cd3ba9a07ddac71d23e04f5211b2db17
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-07-11 17:29:39 +02:00
Friedemann Kleint bf42eacc7f Windows font database: Resolve aliases for extra fonts.
Ensure QFontDataBase::hasFamily() deals with aliases.

Task-number: QTBUG-31689

Change-Id: Ia59bfcb93362ac9343c6d30dab1091a4db482dfa
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-07-11 17:29:39 +02:00
Sergio Ahumada 3ef6cf060e Merge branch 'stable' into dev
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/json/qjsonwriter.cpp
	src/corelib/kernel/qeventdispatcher_blackberry.cpp
	src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm

Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
2013-07-11 16:42:01 +02:00
Andy Shaw 30f19d904f Check if widget inherits from QTextEdit when drawing the frame
There can be cases where the accessibility plugin is not available so
rather than have an incorrect style in those cases we check if the
widget inherits QTextEdit.

Change-Id: Ia514ce61f24ef016f56c6dce103f90f699b4048a
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-07-11 15:01:24 +02:00
Martin Smith 2eb28f51ce qdoc: Implement better handling of QML property groups
The \qmlpropertygroup command is added, and qdoc is taught to generate
better output for it. The format is, e.g.:

\qmlpropertygroup QtQuick2::Item::anchors
\qmlproperty AnchorLine QtQuick2::Item::anchors.top
\qmlproperty AnchorLine QtQuick2::Item::anchors.bottom
\qmlproperty AnchorLine QtQuick2::Item::anchors.left
\qmlproperty AnchorLine QtQuick2::Item::anchors.right
\qmlproperty AnchorLine QtQuick2::Item::anchors.horizontalCenter
\qmlproperty AnchorLine QtQuick2::Item::anchors.verticalCenter
\qmlproperty AnchorLine QtQuick2::Item::anchors.baseline
\qmlproperty Item QtQuick2::Item::anchors.fill
\qmlproperty Item QtQuick2::Item::anchors.centerIn
\qmlproperty real QtQuick2::Item::anchors.margins
\qmlproperty real QtQuick2::Item::anchors.topMargin
\qmlproperty real QtQuick2::Item::anchors.bottomMargin
\qmlproperty real QtQuick2::Item::anchors.leftMargin
\qmlproperty real QtQuick2::Item::anchors.rightMargin
\qmlproperty real QtQuick2::Item::anchors.horizontalCenterOffset
\qmlproperty real QtQuick2::Item::anchors.verticalCenterOffset
\qmlproperty real QtQuick2::Item::anchors.baselineOffset
\qmlproperty bool QtQuick2::Item::anchors.alignWhenCentered

Task-number: QTBUG-32341
Change-Id: I4b06a3a061b23680e663e8d4e82ac9863ffd4ecb
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-07-11 13:36:37 +02:00
Friedemann Kleint 7b9d6cf844 Stabilize tst_qguiapplication.
Introduce QScopedPointer for windows or instantiate them on the
stack to prevent leaks. Tile all windows within virtual
screen to ensure they don't influence each other and are not
in the taskbar area.
Move cursor away from windows in modalWindow-test.

Change-Id: I40343e9f72263e22bdf2560448d7efcc915d17cb
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-07-11 10:56:49 +02:00
Mitch Curtis 1ff0ac9415 Fix typo in setGraphicsEffect() occurrences.
Change-Id: Iaca926ab47670616b55b0ab7ab735710237a5df8
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-07-11 10:56:49 +02:00