summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-01-15 16:48:35 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2017-01-15 16:48:35 +0000
commit7600cb6901f515edf6dd712f594927c1b43d61a8 (patch)
treeab5dc9385d3aca75365282134951e761ec0dc568 /src/corelib
parentdbb4504f1214cddff47eb3b8dd935f3adb7f0940 (diff)
parent00935bf8c29d54fcd794ce5673cb5f973808cbf9 (diff)
Merge "Merge remote-tracking branch 'origin/5.8.0' into 5.8" into refs/staging/5.8
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/itemmodels/qitemselectionmodel.h18
-rw-r--r--src/corelib/tools/qvector.h2
2 files changed, 20 insertions, 0 deletions
diff --git a/src/corelib/itemmodels/qitemselectionmodel.h b/src/corelib/itemmodels/qitemselectionmodel.h
index 3d3cb00750..c22ac6dbe5 100644
--- a/src/corelib/itemmodels/qitemselectionmodel.h
+++ b/src/corelib/itemmodels/qitemselectionmodel.h
@@ -251,6 +251,24 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QItemSelectionModel::SelectionFlags)
// dummy implentation of qHash() necessary for instantiating QList<QItemSelectionRange>::toSet() with MSVC
inline uint qHash(const QItemSelectionRange &) { return 0; }
+#ifdef Q_CC_MSVC
+
+/*
+ ### Qt 6:
+ ### This needs to be removed for next releases of Qt. It is a workaround for vc++ because
+ ### Qt exports QItemSelection that inherits QList<QItemSelectionRange>.
+*/
+
+# ifndef Q_TEMPLATE_EXTERN
+# if defined(QT_BUILD_CORE_LIB)
+# define Q_TEMPLATE_EXTERN
+# else
+# define Q_TEMPLATE_EXTERN extern
+# endif
+# endif
+Q_TEMPLATE_EXTERN template class Q_CORE_EXPORT QList<QItemSelectionRange>;
+#endif // Q_CC_MSVC
+
class Q_CORE_EXPORT QItemSelection : public QList<QItemSelectionRange>
{
public:
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h
index 4dbf95c315..5225b68d40 100644
--- a/src/corelib/tools/qvector.h
+++ b/src/corelib/tools/qvector.h
@@ -982,11 +982,13 @@ QT_BEGIN_INCLUDE_NAMESPACE
#include <QtCore/qpoint.h>
QT_END_INCLUDE_NAMESPACE
+#ifndef Q_TEMPLATE_EXTERN
#if defined(QT_BUILD_CORE_LIB)
#define Q_TEMPLATE_EXTERN
#else
#define Q_TEMPLATE_EXTERN extern
#endif
+#endif
Q_TEMPLATE_EXTERN template class Q_CORE_EXPORT QVector<QPointF>;
Q_TEMPLATE_EXTERN template class Q_CORE_EXPORT QVector<QPoint>;
#endif