summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* doc: Fix remaining qdoc warnings in qabstractitemmodel.cppMartin Smith2018-01-181-9/+9
| | | | | | | | Some enum values were qualified with the enum name, which is not required in the \value command. The qualifications were removed. Change-Id: Ic67003ae04b558f437b331bd3e01af88ace0e888 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* QSortFilterProxyModel: annotate some deprecated functions as deprecatedChristian Ehrlicher2018-01-172-9/+12
| | | | | | | | | QSortFilterProxyModel::clear() and filterChanged() are deprecated since Qt4.3 but not annotated with QT_DEPRECATED. Change-Id: Ia468203802b6be0596f0a48d51f1da3fa55b724b Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Add QIODevice::NewOnly and QIODevice::ExistingOnly OpenMode flagsd3fault2018-01-179-36/+90
| | | | | | | | | | | | | | | | When QFile::open is called with the NewOnly flag, the call will fail if the file already exists. As usual, if the file does not exist, it will be created. Like QTemporaryFile, there is a guarantee from the operating system that you are not accidentally creating a new file on top of an older file. When QFile::open is called with the ExistingOnly flag, the call will fail if the file does not exist. The ExistingOnly flag only provides new functionality when used with the WriteOnly flag. For ReadOnly it provides no change in functionality, as ReadOnly by itself already never creates. Task-number: QTBUG-52244 Change-Id: I8e3206728f245f95172c225bf297023fb078fc6d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* logging: Factor out how to determine if a category is the default categoryTor Arne Vestbø2018-01-161-2/+7
| | | | | Change-Id: I00a94c8c3ce2c0cba5263e6fbc499794dc7ef38f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add missing dead key symbolsMatt Whitlock2018-01-152-0/+60
| | | | | | | | | | | | | | | Qt was missing symbols for many dead keys defined in <X11/keysymdef.h>. These dead keys were thus ignored by the "compose" input module. This commit adds the missing dead key symbols. [ChangeLog][Linux/XCB] Added missing dead key symbols, enabling their use with the "compose" input module. Task-number: QTBUG-56452 Change-Id: Ib5c37168990c9d9fa99fdd50f63b934c793e8dc4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> Reviewed-by: Matt Whitlock <qt@mattwhitlock.name>
* Fix QNX 7 buildTor Arne Vestbø2018-01-141-2/+2
| | | | | | | | Missing return value after 114f795221. Task-number: QTBUG-65747 Change-Id: I8881fc70f76a163e7b1f032c7a7485ab09f852b1 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Add QModelIndex::siblingAtColumn and ::siblingAtRowAndre Somers2018-01-122-1/+29
| | | | | | | | | | | | | | | | | | | | Data in item models is most often organized in rows, where each column contains an attribute of the item represented by the row. Often when sibling is used, it is to request another piece of data from the same row. Having a specialized version makes this easier and less awkward to do, simplifying auto sibling = index.sibling(index.row(), columnOfInterest); to auto sibling = index.siblingAtColumn(columnOfInterest); For symmetry reasons, siblingAtRow(rowOfInterest) was also added. Change-Id: Ib203b2cdb16154cbb2680d16fb5c6a7538f33d07 Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: David Faure <david.faure@kdab.com>
* logging: Break out alternative logging sinks into a well defined APITor Arne Vestbø2018-01-121-30/+74
| | | | | | | | | | | | | | | | | | | | | | | | First steps towards a public API for having multiple output sinks is to allow this internally. We give all the different log sinks the same signature, with a bool return value to signify if stderr has been handled. The logic of not logging to the alternative sinks when the function qt_logging_to_console() returns true has been moved into each sink, so that they in the future may choose to log even when also logging to the console, allowing multi-sink output. They must then make sure to return true if the native logging sink has also logged to stderr. The logic of each sink has been kept the same when it comes to the formatting of the message. Some of these sinks should ideally use the raw message instead of the formatted one, as they are structured logging sinks. Change-Id: I441d3bc1db3e16180704e00d13a40564b6f06a6c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* logging: Clarify that QT_MESSAGE_PATTERN only applies to unstructured loggingTor Arne Vestbø2018-01-121-0/+4
| | | | | | | | | Structured sinks such as systemd should capture each piece of information individually, not bake it into the message via the message pattern. Change-Id: I164c043683f123764a5445dc9faad049e25fd738 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* MinGW: Remove workaround that disabled strict_c++Kai Koehne2018-01-121-4/+0
| | | | | | | | | | The workaround was needed in older versions of MinGW-w64 headers that did disable some common functions for -std=c++1z. Anyhow, this is not reproducable anymore with any recent MinGW-w64. Change-Id: I8e34a2e055f8e2356696dd4fe131a757c1527574 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.10' into dev" into ↵Liang Qi2018-01-122-1/+7
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-112-1/+7
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/harfbuzz-ng/src/hb-private.hh src/sql/doc/snippets/code/doc_src_sql-driver.cpp src/sql/doc/src/sql-driver.qdoc Change-Id: I38f0e82fcd37926cbf3c1915e009a731040d4598
| | * Merge "Merge remote-tracking branch 'origin/5.9' into 5.10" into ↵Liang Qi2018-01-111-1/+1
| | |\ | | | | | | | | | | | | refs/staging/5.10
| | | * Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-091-1/+1
| | | |\ | | | | | | | | | | | | | | | Change-Id: I840849c072075a69819eb185b20bc42c3de0f825
| | | | * CMake: qt5_add_binary_resource: re-run if neededKevin Funk2018-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qt5_add_binary_resources() macro did not recompile for CMake generated input before this patch. Adding the input files to the DEPENDS option corrects this issue: Task-number: QTBUG-60714 Change-Id: I0f46918c6f1079fed7ee1b21305b18ff38f863f8 Reviewed-by: David Faure <david.faure@kdab.com>
| | * | | moc: Initialize staticMetaObject with the highest user-settable priorityMartin Storsjö2018-01-091-0/+6
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The referenced static meta object for the superclass might be in a different DLL. In this case, the whole QMetaObject can't be initialized all via preinitialized data in the data section of the binary, but must run code at runtime to fill in the value of the dllimported pointer. In these cases, both GCC and MSVC initialize as much as possible statically, while only filling in the dllimported values (QMetaObject::d::superdata) at runtime. Clang, on the other side, initializes the whole struct at runtime if some part of it needs runtime initialization, leaving the struct completely uninitialized before constructors are run. In C++, there are no guarantees for in what order constructors in different translation units are executed. This in particular means that there are no guarantees as to whether qRegisterWidgetsVariant() in qwidgetsvariants.cpp runs before or after the runtime initialization of QWidget::staticMetaObject. With GCC and MSVC, this doesn't seem to have mattered since only the superdata pointer of the staticMetaObject was uninitialized - everything else was initialized, and the superdata pointer doesn't seem to be accessed during qRegisterWidgetsVariant. With clang, the whole staticMetaObject is uninitialized, unless the staticMetaObject has been initialized before (and the initialization order is undefined). By setting a manual priority (which is a GCC extension that also clang supports) for the staticMetaObjects, we can be sure that these are initialized before the actual explicit constructor invocations (without any explicit initialization priority) that can access the staticMetaObjects. Change-Id: I64a82f12d690528567509791bae088b6304e189b Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | / / Add more Q_FALLTHROUGH()Friedemann Kleint2018-01-122-2/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | Silence g++ 7.X warnings. Change-Id: Id06d06e7e3b5be2cf3934d81f1891da58dea2649 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | QRingBuffer: replace some checks with assertsAlex Trotsenko2018-01-102-31/+36
| | | | | | | | | | | | | | | | | | | | | | | | To avoid the silent exits and potentially dangerous output values, the caller must supply the correct parameters on input. Change-Id: Ia9c56940adbf4ad34605a002dfc5c86b32c4658c Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | Micro-optimize QRingBuffer::free()Alex Trotsenko2018-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Change the condition to strong equal, as 'bytes' was checked against wrong value on the start of the function. Change-Id: I4ec4768b9fff3292af233417c4a5862d72d4eeac Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | | Add doc explaining the gotcha when connecting a signal to qApp->exitd3fault2018-01-092-1/+15
| | | | | | | | | | | | | | | | | | Change-Id: I981e4bfdf679bf755665748e9d3b389a94561e55 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io>
* | | doc: Remove undef of Q_GADGETMartin Smith2018-01-091-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Someone, almost certainly this writer, undefed Q_GADGET for qdoc, but this was a mistake that caused clang to report a lot of errors for undefined variable. The undef of Q_GADGET is now removed. Change-Id: I39fb09443110b60bbcb16cf350f38c1eac773d8a Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct clang parsing errors in qvariant.hMartin Smith2018-01-094-2/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some old uses of Q_QDOC to prevent the old qdoc C++ parser from seeing declarations it didn't need to see were preventing clang from seeing declarations it did need to see. These have been removed, and some internal documentation has been added to account for some declarations that suddenly became public but should not be seen in the Qt API. Change-Id: Iccf423e5cf8767f0a271150ab59bea54cf90ac46 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Move use of Q_CLANG_QDOC that caused compile-time assertMartin Smith2018-01-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | It caused a compile-time assert in clang that should not have occurred. It is now moved passed the assert macro. Change-Id: I8311992617de7837ca4604fcc3e5afb17dcda65d Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Remove Q_QDOC declarations that are no longer neededMartin Smith2018-01-091-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | clang-qdoc understands Q_OBJECT, so it sees the declarations that appear there. Change-Id: I669be13af59269a0e108e0988d9b4f7779274c7c Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Remove unnecessary #ifndef Q_QDOCMartin Smith2018-01-091-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | It was used to prevent qdoc from seeing the entire include file, but clang qdoc needs to see it. Change-Id: Ib8dbcdcd68f2003f4dd89ed6a5c9e1b65bc1c67c Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Remove unnecessary qdoc declaration hackMartin Smith2018-01-092-5/+6
| | | | | | | | | | | | | | | | | | | | | A special declaration for qdoc was no longer needed. Change-Id: Ib3486be5c016d57cf09ef89fc8df29045fef0577 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct qdoc warnings in qobject.cpp and qmetatype.cppMartin Smith2018-01-085-40/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang required adding template clauses to a few \fn commands. There were also a few cases where Q_QDOC was changed to Q_CLANG_QDOC and a few cases where special declarations for qdoc were removed in favor of the actual declarations. Unfortunately, a few qdoc warnings remain unfixed for classes QObject and QMetaType, but these might be caused by minor bugs in clang-qdoc itself, so they will be fixed there. Change-Id: Ib586628cb6d2aa9cf4bcad303b5af09b412a7e57 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | Introduce QAbstractItemModel::checkIndex()Giuseppe D'Angelo2018-01-082-0/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When implementing a custom model there's the habit, in each and every function that takes a QModelIndex, to carefully checking the index passed by the caller. This index is checked for "legality" (*): does the index belong to this model, is the index pointing to an existing row and column, and so on. These checks are hand-rolled and, as such, slightly different and possibly incomplete (i.e. wrong) every time. What's worse, these checks are implemented via "ordinary" code (if statements). However, passing an illegal index to a QAIM function is a precondition violation, and as such does not (and must not) be checked in ordinary conditions, as it triggers undefined behavior. On the other hand, while debugging a custom model or a custom hierarchy of (proxy) models, having such checks in place can be a significant aid. Enter checkIndex(): a debugging helper for QAbstractItemModel and its subclasses. checkIndex() centralizes the checks for legality of a given index. User code is free to assert on it, or have some other fallback mechanism in case a check fails. (*) Using "legality" here instead of "validity" in order to avoid confusion between QModelIndex::isValid() and what checkIndex() really does. [ChangeLog][QtCore][QAbstractItemModel] Added QAbstractItemModel::checkIndex(), a debugging function for QAbstractItemModel subclasses. Change-Id: I1eea0586b1ac3ededdbfbf46759145022dc5ad86 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: David Faure <david.faure@kdab.com>
* | | QStringBuilder: add support for QStringViewMarc Mutz2018-01-082-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QStringBuilder] Added support for QStringView. Change-Id: I5b6803397b107ef69d198a935b3ba4339ac95087 Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | QStringBuilder: add support for char16_t{,*,[]}Marc Mutz2018-01-082-1/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QStringBuilder] Added support for char16_t characters and strings. Change-Id: Iee727f07226f2a326ae0df28d44930336cd8f71e Reviewed-by: Milian Wolff <milian.wolff@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | QtCore: Raise minimum supported MSVC version to 2015Friedemann Kleint2018-01-0814-106/+23
| | | | | | | | | | | | | | | | | | | | | | | | Remove code for older versions and streamline #ifdefs. Task-number: QTBUG-51673 Change-Id: I211703189ff12f827d94914093369736b6e65d4a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | doc: Correct remaining qdoc warnings in qdeadlinetimer.cppMartin Smith2018-01-062-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | clang required adding template clauses to \fn commands and in one instance, removing a formal parameter name from a \fn command. An instance of Q_QDOC was changed to Q_CLANG_QDOC in the include file. Change-Id: Ic7dab56705043d2db8578dfc002d2f41b927f756 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qchar.h and qchar.cppMartin Smith2018-01-062-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | Several enum values had to be given \value statements, and a member function only visible for Windows had to become visible to clang-qdoc. Change-Id: I47fbbcf9c5e4333abd13a041ce8fee2c13f9541d Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in QStringViewMartin Smith2018-01-052-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | Added missing template clause to \fn commands required by clang-qdoc. Changed a few Q_QDOC macros to Q_CLANG_QDOC. Change-Id: I20e6855b13df6384b471fc2bb5de27b0e3b44d1b Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qstring.cppMartin Smith2018-01-052-14/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added missing template clause to \fn commands required by clang-qdoc. Removed several obsolete \sa targets. Added a few missing return types to \fn commands. Also changed a } to ] in a \fn command in qrandom.cpp. Change-Id: I0f004a1e57507ff5fb035e822ca8b1baa7faad9b Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qstack.cppMartin Smith2018-01-051-5/+5
| | | | | | | | | | | | | | | | | | | | | Added missing template clause to \fn commands required by clang-qdoc. Change-Id: Id2cb480a0780025276639c38f595cb21264bd8cb Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in a few filesMartin Smith2018-01-053-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | Added missing template clause to \fn commands required by clang-qdoc in qsharedpointer.cpp, qscopedpointer.cpp, and qstringbuilder.cpp. Change-Id: Ifca5b81db96e678a53e40080d351c69f14db604a Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qscopedvaluerollback.cppMartin Smith2018-01-051-4/+4
| | | | | | | | | | | | | | | | | | | | | Added missing template clause to \fn commands required by clang-qdoc. Change-Id: Ia7bc899153cccedc28e5083d658f427d322acab7 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-041-0/+0
|\| | | | | | | | | | | Change-Id: I644cd82b0d952b7d139e0228bf5017f147db77e7
| * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-041-0/+0
| |\| | | | | | | | | | Change-Id: I3fa5c9e216201bdf7da260c395f65d7fb95cba0b
| | * Fix source code file permissionsSimon Hausmann2018-01-021-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | Fix permissions after commit ffc8409aa58c04c1dd140001976b55925ac959f6 - our source files are not executable. Change-Id: Idc5103704256b6f73857b645c323492beaabe879 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | doc: Correct remaining qdoc warnings in qfsfileengine.cppMartin Smith2018-01-041-4/+0
| | | | | | | | | | | | | | | | | | | | | Removed a dupicate qdoc comment. Change-Id: I43214c63bda3dd3ff398b173472306955f8a72b7 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct qdoc warning in QVariantAnimationMartin Smith2018-01-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Added missing template clause to a template friend function of class QVariantAnimation. Change-Id: Ia96dcbb1dad1f6678642564a55991445d0b6ba0e Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qmetaobject.cppMartin Smith2018-01-041-3/+3
| | | | | | | | | | | | | | | | | | | | | clang required adding template clauses to a few \fn commands. Change-Id: I4e875f719ed58901d227fb0e6b80d4551f3b6e89 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qvariant.cppMartin Smith2018-01-041-8/+8
| | | | | | | | | | | | | | | | | | | | | clang required adding template clauses to several \fn commands. Change-Id: I1ee9855c626b41e499392c05160df01daa5c0618 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qtimer.cppMartin Smith2018-01-042-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | clang required adding template clauses to a several \fn commands. There was also a case where Q_QDOC was changed to Q_CLANG_QDOC in qtimer.h Change-Id: I1184e507a3fa719fe5049ade80e5da24f52ac851 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qmutex.cppMartin Smith2018-01-042-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | clang required adding template clauses to a few \fn commands. || defined(Q_CLANG_QDOC) was also added in qmutex.h. Change-Id: I7e61f460a8f8f15032094fb35c02f73721a5eb8a Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warning in qsignaltransition.cppMartin Smith2018-01-041-2/+1
| | | | | | | | | | | | | | | | | | | | | clang required adding template clause to a \fn command. Change-Id: Ie95a1db90adcc9f6b10a7d2943af574c3b0ce2e2 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warning in qstate.cppMartin Smith2018-01-041-2/+1
| | | | | | | | | | | | | | | | | | | | | clang required adding template clause to a \fn command. Change-Id: Icbe0557f7fa67ba211df5cfbc68baa6cf737d7b1 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Correct remaining qdoc warnings in qbytearraymatcher.cppMartin Smith2018-01-041-6/+6
| | | | | | | | | | | | | | | | | | | | | clang required adding template clauses to a few \fn commands. Change-Id: I5877c7bebd6a8a7b2630addb656d32e6f2043cf1 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>