summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QVariant: make the HasIsNullMethod check work across all compilers (maybe)Marc Mutz2012-08-261-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently, we have a C++11 version that requires Q_COMPILER_DECLTYPE support, and can deal with final classes, and a C++98 version that doesn't require any C++11 features, but fails on final classes. What we're missing is a version that works for MSVC v8 and v9 (2005 and 2008), which sport the 'sealed' non-standard keywords but lack decltype support. So far, we tried to solve the problem by making class-level final special (Q_DECL_FINAL_CLASS), not defining that macro for these two compilers, even though we did define Q_DECL_FINAL, the method-level keyword. This new formulation, taken from http://stackoverflow.com/a/9655327/134841 supposedly supports all compilers with a minor #ifdef for MSVC which doesn't like applying sizeof() the way we do. However, testing has shown this to blow up on OSX. So we use the less intrusive approach: add this variant as a third version, only used by VC 2005 and 2008. Change-Id: If1945f8a6e9ed36cb68212fa781d5e29eb2a082d Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* qcompilerdetection.h: add MSVC 2012 featuresMarc Mutz2012-08-261-0/+7
| | | | | | | | These are taken from the table at http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx Change-Id: Ifd2f88ca5d92092a6a025bef3da36fde0a802a66 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* qcompilerdetection.h: stream-line MSVC feature detectionMarc Mutz2012-08-261-6/+9
| | | | | | | | | | | | | | | | | Reformat the MSVC feature detection to be similar to other compilers, ie. 1. Inside the C++11 features section instead of where the compilers are detected 2. In one block for the compiler, with sub-blocks for the version. However, it's now not 100% compatible with the previous version, since Q_CC_INTEL is now explicitly excluded while before it was implicitly included in the MSVC case. I have no idea whether that matters, since Q_CC_INTEL is handled for itself further up already. Change-Id: Id9e8da0a5394ad5643bcb29493f14bc6e8264c13 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Small optimisation to recursive mutexesThiago Macieira2012-08-261-2/+2
| | | | | | | | | | | A recursive mutex operates on top of a non-recursive mutex. Therefore, we can bypass the test for recursive. The end result is simply that the compiler can inline the locking and unlocking a little better inside the lock() and unlock() functions Change-Id: Ic06d1344ccd411c22cbdef74536f3a4d368d75d7 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* blockSignals should block QML signal emission.Michael Brasser2012-08-261-3/+3
| | | | | | Change-Id: Ief35f3ca326173a87240e3cb558e47f721bd04b7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QUrl: port thread-safety autotest from Qt4.David Faure2012-08-261-0/+2
| | | | | | | | This detected the same missing detach()s in QUrl::resolve. Everything else works, no need for a mutex in Qt5's QUrl. Change-Id: I0da51b7b0c6b810d314a26d4b638383cd17de12b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QFileSystemModel: remove incorrect #ifndefMarc Mutz2012-08-261-2/+0
| | | | | | | | | | No other call to fileInfoGatherer.getInfo(info) is #ifndef'ed on QT_NO_FILESYSTEMWATCHER, so this one shouldn't be, either. Change-Id: If145226c13d77460d6169a9ed3028647b0f565b5 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com> Reviewed-by: Majid Khan <mkhan3189@gmail.com>
* HarfBuzz: fix unused parameter / variable warningsMarc Mutz2012-08-251-2/+5
| | | | | | Change-Id: I362c80081ac4e4d0b9126385bab5a77826810926 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix infinite recursion while dragging toolbar of QMainWindow.Markku Heikkila2012-08-251-2/+3
| | | | | | | | | | | | | Prevent recursion in QMainWindowLayout::endSeparatorMove(). Manually cherry-picked from Qt 4.8 change 90b71dc0ff4ec9bb150a0de9933d6eb06d995a34 Task-number: QTBUG-21378 Change-Id: I901ebfd96be0bdc6ab03dd8c3335d2622db843db Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* explain specifically how to make a transparent windowShawn Rutledge2012-08-251-2/+10
| | | | | | Change-Id: I136d8d9709d4fae914f12919e513641a6e76e3f0 Task-number: QTBUG-20768 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* OSX: Drag and Drop QMimeData.Christoph Schleifenbaum2012-08-251-4/+17
| | | | | | | | | | | | When dragging and dropping within the same application, the QDropEvent should contain exactly the same instance of QMimeData as it was set to QDrag. This solves the problem in https://bugreports.qt-project.org/browse/QTBUG-26953 Change-Id: I3bc4da845ff4293c509343c1c8c62fc331416ec0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* doc: Fix doc warnings for qtextlayout.cppEskil Abrahamsen Blomfeldt2012-08-251-3/+7
| | | | | | | | | \Auml for a with umlaut doesn't seem to work with qdoc anymore, so replace this with the unicode value instead. Also, add reference to arguments in glyphRuns() function. Change-Id: I31861b384b822d1fbdcafbeeac07ea68a0e5fd07 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* doc: Fix several text-related qdoc warningsEskil Abrahamsen Blomfeldt2012-08-2510-39/+87
| | | | | | | | | Also adds a new snippet which is just copy-pasted from the old documentation, because the snippet-file previously referenced seems to have disappeared. Change-Id: I0180715544321e076acda769cbdcbf19d50a971b Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Split the futexFlags() function in two: a hot and a cold pathThiago Macieira2012-08-251-18/+26
| | | | | | | | | | | | | | We could mark the cold path with __attribute__((cold)) (since GCC 4.3), but quick tests locally indicate that the compiler is smart enough to determine that by itself. It will inline the hot path in _q_futex, which in turn is inlined in the lockInternal and unlockInternal functions, whereas the cold path is kept outside. Change-Id: I8ae7d851d4f050498bfb491ba87d3e25453a14f8 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Mark mutex locking and unlocking functions with noexceptThiago Macieira2012-08-257-33/+37
| | | | | | | | | | | | | | | | | | | | | Unlocking a mutex can never throw an exception. That doesn't make sense and our code should make sure it can't happen. Right now, provided that the system-level functions don't throw, we don't either. Locking a mutex cannot throw on Linux because we use futexes directly. A non-recursive mutex is just a futex, whereas a recursive mutex uses a mutex (a futex) to manage a lock count. However, on other platforms, due to the freelist, there can be memory allocation, which means it might throw std::bad_alloc. Not because of the freelist itself (that uses malloc and will just crash if malloc fails) but because of Q_GLOBAL_STATIC. In 5.1, the global static will be noexcept provided the type's constructor is so too (it is, in this case). Change-Id: I4c562383f48de1be7827b9afb512d73eaf0792d5 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add a way for QtDBus to force a call to dbus_shutdownThiago Macieira2012-08-252-3/+17
| | | | | | | | | | | | This will ask the D-Bus library to free its caches. It's useful for running valgrind on a D-Bus based application, so we can detect real leaks. We can't run this by default because there could be other users of libdbus-1. Calling the shutdown function would make them stop working. Change-Id: I9854b82afcdbc4955d6f0a1a1b49a673186242c8 Reviewed-by: Lorn Potter <lorn.potter@nokia.com>
* Print some debugging from QDBusConnection when disconnectingThiago Macieira2012-08-251-0/+1
| | | | | Change-Id: I6e19cd8b16513faad6435d1713eab56675d07289 Reviewed-by: Lorn Potter <lorn.potter@nokia.com>
* Do not build qpa/gui dependant plugins in no-gui modeJ-P Nurmi2012-08-251-3/+1
| | | | | Change-Id: I725e9127e640c0dd3cbd7f1488b16dcf4eb06377 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* src.pro: remove redundant & incorrect platformsupport dependencyJ-P Nurmi2012-08-251-1/+1
| | | | | | | it's already added conditionally below Change-Id: I4df89b2822a3e6e46d8254c08fd69d0c98e680b7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Use nanosleep instead of pthread_cond_timedwait for thread sleepingThiago Macieira2012-08-254-40/+36
| | | | | | | | | | | | | | | There's a comment saying nanosleep's availability is questionable, but the information of what systems don't have that is now lost in time. It's quite likely that they were older, Unix systems we no longer support anyway. nanosleep comes from POSIX.1b-1993, which is merged into POSIX.1-2001, so chances are that it's supported almost everywhere where Qt runs (except for Windows anyway). Change-Id: I4fd18f8715c43a42429000f3b3d2c3b7343f94b4 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Improve docs.Frederik Gladhorn2012-08-251-129/+5
| | | | | | Change-Id: I073398e4da14a1c6489c951200f022a346f4d2fa Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Don't define QT_NO_ICONV on Windows: that comes from qconfig.hThiago Macieira2012-08-251-1/+1
| | | | | | | | | | | | Both the configure script and configure.exe add QT_NO_ICONV to qconfig.h in case they can't find iconv. Since Windows doesn't use iconv anyway, we don't need to set QT_NO_ICONV here. MSVC likes to print a warning that a macro is redefined. That gets quite spammy... Change-Id: Ide9800f6f848bc0c2d8bdbcb41875a709d3e249c Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add qiterator.h to tools.priThiago Macieira2012-08-251-0/+1
| | | | | Change-Id: I2c8182adbf513231bcef5dc2de60217753a54b76 Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* QDBusMetaType: #if -> #ifdef QT_BOOTSTRAPPEDMarc Mutz2012-08-251-1/+1
| | | | | | | The rest of the code uses #ifdef/#ifndef, so do so here, too. Change-Id: I4811755f9a1c2a1cab371e3bea78d3c5f9af086e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qdbus_loadLibDBus: remove unneeded volatile qualificationMarc Mutz2012-08-251-1/+1
| | | | | | | | | The variable is only ever accessed under mutex protection, and doesn't otherwise look like it could be changed by the hardware, so remove the volatile qualifier. Change-Id: I3bb00ed6f8017d662bbf73425a70d52116cc9297 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix doc: qglcolormap is not the opengl moduleFrederik Gladhorn2012-08-241-1/+1
| | | | | Change-Id: I134aeafbabc62e36da20e0a6df667b6c1aa0c477 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* fbbackingstore: Don't overload inherited virtual functionKent Hansen2012-08-242-3/+2
| | | | | | | | The QPlatformBackingStore::endPaint function does not take any parameters. Change-Id: If15d7824d65a52c38332c6676c12a954469a58ab Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix performence problem while shaping a lines with many scriptsOlivier Goffart2012-08-231-1/+1
| | | | | | | | | Fix quadradic behaviour regression introduced in commit 2e6b8b4734710377e25c199e3ff7865628e7d723 Task-number: QTBUG-22275 Change-Id: I343452c6b1cd0e571770e5dadd3cd6fd3167c96d Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Speed up QTextEngine::setBoundaryOlivier Goffart2012-08-231-6/+14
| | | | | | | | | | | | | | Before, setBoundary was O(N), now it is O(log N) assuming the boundaries are added in order. (splitItem might still be linear because of the call to QVector::insert) This speeds up a lot QTextEngine::addRequiredBoundaries when there is a lot of addFormats. (For example if there is a very long line with syntax highlighting) Task-number: QTBUG-8389 Change-Id: I10c9fca72343f46db24b1d4f519f7747188d4009 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Speed up QTextEngine::resolveAdditionalFormatsOlivier Goffart2012-08-231-2/+65
| | | | | | | | | Don't call the linear QTextEngine::format in the loop. Instead, keep track of the current formats by indexing their start and end position. Task-number: QTBUG-8389 Change-Id: I89c18b804111edfab6254442cbee33da39d1a273 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* doc: Fix some qdoc warningsEskil Abrahamsen Blomfeldt2012-08-232-10/+12
| | | | | | | | | | | QDoc doesn't supported nested tags, and there doesn't seem to be any way to trick it into thinking you've mentioned the argument (\omit didn't work), so actually rephrasing is the only way to kill the warning. Also add a const modifier to a signature to make it match the declaration. Change-Id: Ie02a488c42565205e827602959111c53e2d05a83 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Compile without the deprecated filterEvent functionThiago Macieira2012-08-231-1/+1
| | | | | | | | Use the filterNativeEvent function, which also takes the name of the event. Change-Id: Ifa3dd6285a2a526b5c3de5a86a74ead706534759 Reviewed-by: David Faure <faure@kde.org>
* xcb: fix unused static warningMarc Mutz2012-08-231-0/+2
| | | | | | | | | The variable ptrXcursorLibraryLoadCursor is only used in code wrapped in XCB_USE_XLIB. Change-Id: If0b4997ac6e80a3709263d9793d1ca0dfd5907f3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* linuxfb: remove unused functionMarc Mutz2012-08-231-10/+0
| | | | | | | | debug() isn't even referenced in commented-out code, and GCC warns about it being unused, so remove. Change-Id: I2830b7932e18cdd3643925973995bea7fea9f277 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* QSystemTrayIcon: fix narrowing warningMarc Mutz2012-08-231-1/+1
| | | | | | | | | | | | GCC complained: warning: narrowing conversion of ‘((QSystemTrayIconSys*)this)->QSystemTrayIconSys::<anonymous>.QWidget::winId()’ from ‘WId {aka long long unsigned int}’ to ‘long int’ inside { } [-Wnarrowing] Change-Id: I63908c884b51db203ee0ed659a152af77c295292 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* QNetworkDiskCache: avoid a 31-bit truncationMarc Mutz2012-08-231-1/+1
| | | | | | | | | Network operations whose content size exceed 2G are not unheard of, and they probably shouldn't be cached, so use the correct toX() function, one that doesn't truncate the value in the header. Change-Id: Ie4e68a3120c85952dd2cc9feb73c5844e20b9aa3 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* doc: Remove documentation for removed functionEskil Abrahamsen Blomfeldt2012-08-231-12/+0
| | | | | | | | Function was removed in 1582407fc782c0befd0760633324dd5c206524a1, but the documentation was left behind. Change-Id: Ib59197221e3be0e13db958ab3efdcc95b7c52452 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QtNetwork: declare some classes as sharedMarc Mutz2012-08-2314-2/+38
| | | | | Change-Id: Ib3eaba59836529ad0cf8e4353b54dd0cd31fd1ad Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Extract the QMetaMethodPrivate::ownMethodIndex method.Stephen Kelly2012-08-231-5/+11
| | | | | | Change-Id: Ic96e3582ff4332ac489f7c51ed40eb1b1a0ac42d Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Fixed missing window decorations on compiz.Samuel Rødal2012-08-231-3/+1
| | | | | | Task-number: QTBUG-26954 Change-Id: I6981338d4bbc9cf1440c9d67e9d034e0553dfeae Reviewed-by: Jason Barron <jason.barron@nokia.com>
* Make QAbstractItemModel::sibling virtual.Stephen Kelly2012-08-232-17/+21
| | | | | | | | | | | | | | | | | | | This would allow implementations to create an optimized way to create sibling indexes. A typical pattern of QAIM implementation is to use the same internalPointer for each row of a subtable of a model (such that the internalPointer is related to the common parent of each set of rows) and differentiate on the row value in the QModelIndex. Alternatively, it is also common to have the internalPointer correspond directly to the row value for the QModelIndex. In both cases it is possible for the implementation to optimally create a sibling QModelIndex in the same column as a known row. Provide a virtual method for them to do so. Change-Id: I3b076abcd5f6087a4cb108fbc6dceeef15529987 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make sure we don't get duplicated doc pages.Lars Knoll2012-08-231-5/+0
| | | | | | | | | \group generates a page with the same name as the \page comand afterwards. Change-Id: Iaca6da21485532c8c3b13982bd06a06f3dbc0375 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Doc: Add \inmodule QtCore to all QtCore class doc bodiesThiago Macieira2012-08-23142-11/+235
| | | | | Change-Id: I19100755c97cc155c76a859e19940e9f9222d34e Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Doc: Add \inmodule QtDBus to all QtDBus class doc bodiesThiago Macieira2012-08-232-0/+9
| | | | | Change-Id: I0aa273c355314effd563cfeda74ce7bacbef3db8 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Doc: Fix snippet and example referencing widget examplesAndy Nichols2012-08-238-18/+18
| | | | | | | | Widget examples were moved into a widgets subfolder, but qdoc references were not updated. Change-Id: Id2a4573e723745b9827c664c852807d6116f8f6d Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Remove remaining bits of deprecated QInputPanelPekka Vuorela2012-08-236-142/+4
| | | | | | | Introduced during Qt5 development and renamed to QInputMethod. Change-Id: If6744648dc98b779e65c449ae32626db574181df Reviewed-by: Joona Petrell <joona.petrell@gmail.com>
* ICU: Fix crash in codecForMib(2107)Kai Koehne2012-08-231-0/+4
| | | | | | | | | | | | availableMibs() unconditionally adds 2107 to the list of mibs. The patch ensures that codecForMib() also knows about this special TSCII codec. (Note that the autotest only really checks this code path if only this test case is run. The other tests already fill the internal codec cache otherwise). Change-Id: Id987d7cecd5f5700cca75e9b85b37011f8e5c622 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove qWaitForWindowShown(QWindow*) overload.Stephen Kelly2012-08-232-18/+0
| | | | | | | | The QWindow* overload was introduced for Qt 5.0, but is unused already. Change-Id: Ic07f19eac87bc93a589017407668760fceb2f632 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* A few more random documentation fixesShawn Rutledge2012-08-233-7/+18
| | | | | | | @p replaced by \a, \QD replaced by {Qt Designer}, couple of enums etc. Change-Id: I315510690bf52e42db519292b4122fa24c73bbc9 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* De-inline QVariant(float)Harald Fernengel2012-08-232-1/+4
| | | | | | | | | All QVariant constructors are not inline, so change QVariant(float) as well. This allows for refactoring of QVariant during lifetime of Qt 5 without breaking QVariant(float) case. Change-Id: Icd1fc331a1ef8a2872be811aa7d1160406038f06 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>