summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Correctly detect HTML 5 charset attribute in QTextCodec::codecForHtml()Mitch Curtis2013-02-122-23/+84
| | | | | | | | | | | | | | | | | | | | | | | | | QTextCodec::codecForHtml currently fails to detect the charset for this HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=9,chrome=1"> <title>Test</title> </head> This patch makes the detection of charsets more flexible, allowing for the use of the HTML 5 charset attribute as well more terminator characters ("'", and ">"). I also added a *_data function for the unit tests. Task-number: QTBUG-5451 Change-Id: I69fe4a04582f0d845cbbe9140a86a950fb7dc861 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
* Simplify a function to fix a warning reported by ICCThiago Macieira2013-02-111-5/+2
| | | | | | | | | | | | ICC thinks that the return statement is missing: src/plugins/accessible/widgets/itemviews.cpp(867): error #1011: missing return statement at end of non-void function "QAccessibleTableHeaderCell::parent" Clearly it's wrong, but the function is overly complex for no good reason. So just simplify it instead. Change-Id: Ic63029df18b4712d9864a4dc66b6751b2d4574b7 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Add Q_DECL_RESTRICT and Q_ALWAYS_INLINE for MSVCThiago Macieira2013-02-111-0/+4
| | | | | Change-Id: I598463e5990e91a5a049d1f9f7a4aa80930c0904 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Rename the Q_STATIC_INLINE_FUNCTION macro to Q_ALWAYS_INLINEThiago Macieira2013-02-111-14/+14
| | | | | | | | | That's what the macro did anyway, except it had an extra "static" keyword. This allows us now to use Q_ALWAYS_INLINE in non-static contexts, if we wanted to (e.g., certain template cases). Change-Id: I899d359f46234e93d1912ef9125080dc84e15c93 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* BB10 systemProxyForQuery: query system proxy also for non-URL requestsPeter Hartmann2013-02-112-4/+28
| | | | | | | | | | | | | | ... like e.g. in QAbstractSocket::connectToHost(). We can set the scheme on the query URL based on well-known ports; even if the port is not well-known, we can just query the URL anyhow and let the netstatus API resolve the right proxy for us. In addition, return early for local schemes like "file" and "qrc". Task-number: QTBUG-29425 Change-Id: I900f1ecbac6dd380bb8a77470b39de2c07aa7f6e Reviewed-by: Andrey Leonov <aleonov@rim.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* QPA Cocoa Menu: Make sure mouse button state is clean after popupGabriel de Dietrich2013-02-113-12/+12
| | | | | | | | | | | Calling popUpMenuPositioningItem:atLocation:inView: will swallow any mouse up/released event, if we popup on mouse down/pressed. Since we cache the button state in QNSView, the safest way seems to be to clear this button state. Another option would be to send Cocoa mouse up events for each mouse button, but we prefer to keep things simple. Change-Id: I7f3f369c45e9f5ed9d2ab693bffd8be4a4596ae6 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Allow QtTest's QCOMPARE to work with mixed q(u)int32 and q(u)int64Jon Severinsson2013-02-112-0/+66
| | | | | | | | | | Change-Id: I491edcae84c149775cf3640626ccff8cbf0d69fe Reviewed-by: Jon Severinsson <jon@severinsson.net> Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Jason McDonald <macadder1@gmail.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove dead code from QPointer.Stephen Kelly2013-02-111-40/+0
| | | | | | | | | | | The compilers checked here are not supported in Qt 5. Additionally, the QSharedPointer implementation has similar operators without such guards, so in reality these compilers may not have worked with Qt 4.6+ either. Change-Id: I208f3cde7c689770ae15245a555e3a58b749a8a3 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add support for getting the paper names available for the printerAndy Shaw2013-02-1115-3/+131
| | | | | | | Task-number: QTBUG-27714 Change-Id: I9bc6f1188f262e43f581add058d7895e1b5bd9e3 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Also copy checkable property to platform itemBogDan Vatra2013-02-111-1/+2
| | | | | | | Add missing property copy statement. Change-Id: Ic7cae46becd412194a490d0fe501ce6ebe2737a3 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Automatically hide the SIPBogDan Vatra2013-02-112-1/+5
| | | | | | Change-Id: I4d63a883941842aed9a9c3806479d7aeeebb9f56 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Remove unused variableMontel Laurent2013-02-111-1/+0
| | | | | Change-Id: I3cef189a668f73c8599958b2c15bf140bd86d091 Reviewed-by: David Faure <david.faure@kdab.com>
* Fix initialize variablesMontel Laurent2013-02-111-0/+2
| | | | | Change-Id: Iaebd03bebf38cddf84f163703e2820925b69c3d9 Reviewed-by: David Faure (KDE) <faure@kde.org>
* Fix missing namespace macro warnings when building Qt Addon modules.Aaron McCarthy2013-02-111-3/+5
| | | | | | | | | | | | Addon modules may not be in the standard Qt namespace and therefore do not use the QT_{BEGIN,END}_NAMESPACE macros. Instead module specific QT_{BEGIN,END}_NAMESPACE_FOO macros are used. Extend the syncqt test to allow for this and ensure that the QT_END_NAMESPACE suffix matches the QT_BEGIN_NAMESPACE suffix. Change-Id: I33110c01118b0fb4376307db7447f747fc38bb29 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qprocess autotests don't need QtGuiDavid Faure2013-02-097-0/+7
| | | | | | | | (this isn't true of -all- corelib/ autotests though, e.g. tst_qdatastream uses QBitmap) Change-Id: I314fda5d85d45cb5eece8da74156989b83cf0299 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix segfault when setting a device-pixel-ratio on a null-QPixmapTor Arne Vestbø2013-02-091-0/+3
| | | | | Change-Id: If3680766a50d5cf78889822d740c9472123191a7 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* QGraphicsView - remove not needed storeMouseEventThorbjørn Lund Martsum2013-02-092-3/+2
| | | | | | | | | | | | | | | | updateRubberBand is only called from mouseMoveEvent. The event is not changed. At the end of the event we call d->mouseMoveEventHandler which calls storeMouseEvent. There is no need to call it twice. Beside that this patch also changes the argument from QMouseEvent* to const QMouseEvent*. The only reason it needed to be const was the call to storeMouseEvent. Change-Id: I01148a6a8d36e782c4d95a90e36435e20b1681e1 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Add support for SHA3 to QCryptographicHash.Richard Moore2013-02-0912-96/+270
| | | | | | | | | | | This commit adds SHA3 support to QCryptographicHash. Two implementations are provided, one optimised for 32 bit and one for 64 bits. The code has been written to make it easy to add further implementations, for example ones using NEON instructions on ARM. Change-Id: I3be9c45bbd4fcc2771d697e7f7ae74e48a831e8f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fixed QOpenGLFunctions feature/extension detection to check GL versionSamuel Rødal2013-02-091-2/+9
| | | | | | | | | | If the GL version is new enough the extension string won't contain features that have been standardized. So far we only check for FBOs. Change-Id: Ib29826f378b394894885717c062872581bd5c9f5 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Try harder to locate external OpenSSL libraries on win32Erik van Pienbroek2013-02-091-7/+25
| | | | | | | | | | | | When OpenSSL is built using MSVC then the library names are named ssleay32.dll and libeay32. However, when OpenSSL is built with GCC then different library names are used like libssl-10.dll and libcrypto-10.dll (depending on the version of OpenSSL used) Change-Id: Icb79a5f82d2a511752bfc904f53a58423ce4b86b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Peter Hartmann <phartmann@rim.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* QUrl effective TLDs: update table and split into chunks of 64KPeter Hartmann2013-02-095-6209/+9718
| | | | | | | | | | | The table is there to know which domains are allowed to set cookies and which are not. There are more than 2000 new entries since the list has last been generated. The split to 64K chunks was made because this is the hard limit for strings in Visual Studio. Change-Id: I511aec062af673555e9a69442c055f75bdcd1606 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* SSL: Use correct signature for SSL_get1_sessionMarcel Krems2013-02-092-2/+2
| | | | | | | | | | | This fixes a compilation error with GCC 4.7 which was introduced in b5652df775efbd1c52eecee5f08e40e600e5d70b In function ‘SSL_SESSION* q_SSL_get1_session(const SSL*)’: invalid conversion from ‘const SSL* {aka const ssl_st*}’ to ‘SSL* {aka ssl_st*}’ [-fpermissive] Change-Id: I909f7fb4295b2019283a7af66a038d4711e5f7cb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Peter Hartmann <phartmann@rim.com>
* Add QWindowSystemInterface::handleFileOpen(const QUrl&)José Dapena Paz2013-02-084-4/+14
| | | | | | | | | | | | In some cases, the call to handleFileOpen may receive a non local URL. With previous API, there was no way to pass it to other layers. With this change, any platform plugin creating this event can directly pass a URL. Change-Id: Ibd7299ad6c09527e1db979840bd67726882efb9b Reviewed-by: Jose Dapena Paz <jdapena@igalia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Added version() and setVersion() convenience API to QSurfaceFormat.Samuel Rødal2013-02-085-0/+139
| | | | | | | | | | This lets you write code like format.version() >= qMakePair(3, 2), and format.setVersion(4, 2) instead of format.setMajorVersion(4); format.setMinorVersion(2); Change-Id: Ib052091cc12865ea0d5db52e468ed6cd28f14840 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Allow actions in a QMenu to show their tooltipshjk2013-02-083-1/+47
| | | | | | | | | | | This introduces a property QMenu::toolTipsVisible with default value set to 'false'. Task-number: QTBUG-13663 Task-number: QTBUG-2362 Change-Id: I13079609e2a92adc71b2bbff3dd94494cde1f586 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* qMetaTypeId(): deprecate the dummy parameter.Olivier Goffart2013-02-083-19/+19
| | | | | | | | | | | | | | It was there because of MSVC6 compatibility. It is not removed, because some code used to do qMetaTypeId(&myVariable); This was not a documented feature anyway, so it should not be user visible. Change-Id: I55327d7e73e67a6bb741817741d530d5a650291a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fix crash-on-exit with some plugin systems (e.g. sensors)Thiago Macieira2013-02-071-8/+9
| | | | | | | | | | | | | | | | | | | | | | | Don't assume that all entries in the QLibrary global data refer to libraries have have been loaded. There are three (not two) ways of getting entries there: 1) creating a QLibrary 2) using the static QLibrary::resolve 3) via plugins The unload code was meant to handle the first two cases only: libraries are still loaded at the end of the execution if the static methods were called or if QLibrary objects were leaked. It didn't handle the case of plugins being found by the directory scanner in QFactoryLoader but never loaded. Note it's possible that this assertion also happened with leaked QLibrary. Change-Id: Idcd7a551f96d8fe500cbca682f8014f5122b7584 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Use QPaintEngineEx to decide if font is too big for using the glyph cacheTor Arne Vestbø2013-02-072-12/+4
| | | | | | | Instead of having separate logic in the OpenGL paint engine. Change-Id: I9854328f784864e52ba1bbaafe5e1c5dda976231 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* QtNetwork: give started threads more verbose namingPeter Hartmann2013-02-072-3/+3
| | | | | | | | | | i.e. make it obvious that they come from Qt. This helps when debugging and trying to differ user created threads from Qt threads. Change-Id: Idd6804246d6676b17cf15de6b644a5be629aa023 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add qunsetenv(), next to qputenv() and friends.David Faure2013-02-073-0/+45
| | | | | | | | | | | | | | | | | The existing tst_qgetputenv shows that qputenv with an empty value doesn't lead to the same result on Windows and on Unix, and there was no way to fully delete an env var on Unix (which is needed for some env vars where not-set and empty are different, such as TZ, see `man tzset`). This is also why qglobal has qEnvironmentVariableIsSet() vs qEnvironmentVariableIsEmpty(), on the getter side. Qt4's ifdefs around unsetenv in qapplication_x11.cpp show that this is needed within Qt too (although this particular startup notification code has to be re-imported into Qt5 still). Change-Id: I631c8cddbcf933d4b9008f11aefc59f5a3c7c866 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QColorDialog manual test: add initial color selectionJ-P Nurmi2013-02-072-2/+74
| | | | | Change-Id: I956404af728ef0d70977f6c69b1059b3656edd91 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Dialog testing tool: add missing enableDeleteModalDialogButton() callsJ-P Nurmi2013-02-071-0/+2
| | | | | Change-Id: I012dc8c7c07fced69f8b7eda7a1686af1e11033f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* SSL: Implement session sharing and use it from QNetworkAccessManagerPeter Hartmann2013-02-0616-214/+604
| | | | | | | | This improves performance since a network round trip can be avoided. Change-Id: I1aaff7e48ef9638cb137de0f43942c3a4dd2884a Initial-patch-by: Markus Goetz <markus@woboq.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Add the pristine SHA3 reference sources.Richard Moore2013-02-0615-0/+3159
| | | | | | | | Add the SHA3 reference implementation (public domain) which will be used in a later commit to add support for SHA3 to QCryptographicHash. Change-Id: Id0e9d47d628cc94f1d3d2a7696836bc43f6ddf61 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Increase the size of the QHostInfo cache.Richard Moore2013-02-061-2/+2
| | | | | | | | | | This change increases the size of the DNS cache in QHostInfo from 64 entries to 128. Given the figures in the google chrome performance paper http://www.igvita.com/posa/high-performance-networking-in-google-chrome/ this should mean we can cache enough entries to handle 4 tabs at once. Change-Id: I34e32e9e0966473591c59ca5f222623a354650d2 Reviewed-by: Peter Hartmann <phartmann@rim.com>
* Add note about QT_{BEGIN,END}_HEADER removal for Qt 6Sergio Ahumada2013-02-061-0/+1
| | | | | | | | This macro usage has been removed from most of the Qt 5 code, so adding a note to be completely removed in Qt 6. Change-Id: I19a90db78745f3cacbcbf206e8642c7d7c36e04a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Allow overriding subElementRect in QProxyStyle for ItemViewItemJerzy Kozera2013-02-051-3/+3
| | | | | | | | | proxy() should be used instead of direct calls to QCommonStyle methods to allow overriding behavior in QProxyStyle, while keeping fallback to default behavior. Change-Id: I338e6b65f4c0ee77c55f03c412f59877fad42b79 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Add QT_{BEGIN,END}_HEADER definition backSergio Ahumada2013-02-051-0/+3
| | | | | | | | This commit partially reverts 07e3bcdc106ac42703ae0fb88b6cac2d2bfdd072 The empty macro defition was not supposed to be removed yet. Change-Id: Ie83b2adbe2328b83c70a70274a401e1e6c74498f Reviewed-by: David Faure (KDE) <faure@kde.org>
* qsql ibase: remove duplicate class definitionMark Brand2013-02-051-23/+0
| | | | | | | | Follow-up to 1580f558472e2c37936fe817fc546a79a8b0a9a5 Task-number: QTBUG-29455 Change-Id: Id254a166ac901fb0cc0ba81db4bf1051a2acb53f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Add enablers for Android port in QPlatformMenuEskil Abrahamsen Blomfeldt2013-02-053-0/+5
| | | | | | | We need a couple of functions here for the Android support. Change-Id: I50e27277d7e838e277d616dbd3af9be817fb7197 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Manual test for QFontDialogJ-P Nurmi2013-02-054-3/+299
| | | | | Change-Id: I2bcdd30990e88af45c8d4b2756fcdd48fc2a47d7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Add qDegreesToRadians and qRadiansToDegrees math functionsLaszlo Papp2013-02-054-0/+245
| | | | | Change-Id: I6e9fd76f2d2860f46531a72349b46193b8eeaaa7 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* QRegularExpression: add method for extracting the capturing group namesGiuseppe D'Angelo2013-02-055-0/+138
| | | | | | | | | | | | | | | | It may be useful to know which named capturing groups are defined in an regular expression, and for each of them, what's the corresponding index. This commit adds the needed method to QRegularExpression. Note that extracting the information doesn't happen while holding the mutex in the private -- pcre_fullinfo just reads information from the compiled pattern, so that's thread-safe. Task-number: QTBUG-29079 Change-Id: I50c00ee860f06427c2e6ea10417d5c0733cc8303 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Provide better error if min (or max) is defined in QDateTimeThorbjørn Martsum2013-02-021-0/+3
| | | | | | | | | This is better than getting a regular compiler error without knowing where min was previously defined. Change-Id: I5a86599cdf76a9a8d87a51e119543206d9f835c1 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make sure we don't have an operator void(), ICC doesn't like it.Thiago Macieira2013-02-021-1/+5
| | | | | | | | | ICC is right: this function will never be called. But we didn't want it called anyway. Just make it be something non-void. qdbuspendingreply.h(185): error #597: "QDBusPendingReply<T1, T2, T3, T4, T5, T6, T7, T8>::operator void() const [with T1=void, T2=void, T3=void, T4=void, T5=void, T6=void, T7=void, T8=void]" will not be called for implicit or explicit conversions Change-Id: I5e067bd03aafc6d6772cc1e0f8f8ae8bfa1712d7 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix change-of-sign warning found by ICCThiago Macieira2013-02-022-2/+2
| | | | | | | | | | | | | qdbusintegrator_p.h(119): error #68: integer conversion resulted in a change of sign : QMetaCallEvent(0, -1, 0, sender, -1, 0, 0, 0, s), connection(c), node(n), ^ qpaintengineex_opengl2_p.h(193): error #68: integer conversion resulted in a change of sign void updateTextureFilter(GLenum target, GLenum wrapMode, bool smoothPixmapTransform, GLuint id = -1); ^ Change-Id: I7de381ea9ff348878ee99e5a18525352a779b31e Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Remove unused variables and functions from the source codeThiago Macieira2013-02-027-146/+0
| | | | | | Change-Id: I5f37414ee4846b4fe774361f49367bc0d5874039 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Comment out an unused global variable.Thiago Macieira2013-02-021-1/+1
| | | | | | | The variable is present only for completeness in qurl.cpp. Change-Id: I68d7ca4cd52c14fbf8154e510737f7428d8e9679 Reviewed-by: David Faure (KDE) <faure@kde.org>
* Work around an unfixed glibc bug in dlclose(3) on exitThiago Macieira2013-02-022-4/+14
| | | | | | | | | | | | | | | | | During exit, libraries are unloaded and global destructors are run. If we call dlclose(3) from inside the global destructors, we might be telling libdl to unload a module it has already unloaded. I cannot reproduce the issue on my Fedora 17 machine with glibc 2.15, but it could be reliably be reproduced on an Ubuntu 11.10. The assertion is identical to the one reported upstream at http://sourceware.org/bugzilla/show_bug.cgi?id=11941 (see better explanation at https://bugzilla.novell.com/show_bug.cgi?id=622977). I cannot find any evidence in glibc's source code that the bug has been fixed. Change-Id: I97745f89e8c5481196e645dada8762d607a9fb2c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Improve QLibrary global destructionThiago Macieira2013-02-022-39/+111
| | | | | | | | | | | | | | | | | | | | | | | | The previous solution was a global static, which got deleted at the end of the execution of the application or at QtCore unload, whichever came first. Unfortunately, the end of the execution often came first, which is inconvenient: it means the global was deleted before all atexit functions were run, including some QLibrary destructors. Consequently, some QLibrary destructors did not reach the global data and were thus unable to unload their libraries or delete their data properly. The previous solution leaked. This solution instead uses a Q_DESTRUCTOR_FUNCTION, which makes a requirement to destroy only at QtCore unload time. Thus, we're sure that all references have been dropped. Additionally, during the cleanup, do try to unload the libraries that have a single reference count left. That means either a QLibrary that was destroyed without unload(), or a use of the static QLibrary::resolve functions. Change-Id: I12e0943b0c6edc27390c103b368d1b04bfe7e302 Reviewed-by: Lars Knoll <lars.knoll@digia.com>