Fix parsing of documentation for QByteArrayList and QStringList

QListSpecialMethod is an internal class. Everything needs to be hidden
from Q_QDOC otherwise while parsing with clang, we get errors.

Importantly, hides it while inheriting from QList so it does not
appear in the documentation

Change-Id: If2ac158f35d6a367aa033cfc7e6a054c912359b9
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
This commit is contained in:
Olivier Goffart 2016-03-16 10:23:25 +01:00 committed by Olivier Goffart (Woboq GmbH)
parent 63274c95a3
commit f11ea381d6
4 changed files with 10 additions and 1 deletions

View File

@ -1897,7 +1897,9 @@ QT_FOR_EACH_STATIC_WIDGETS_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER)
typedef QList<QVariant> QVariantList;
typedef QMap<QString, QVariant> QVariantMap;
typedef QHash<QString, QVariant> QVariantHash;
#ifndef Q_QDOC
typedef QList<QByteArray> QByteArrayList;
#endif
#define Q_DECLARE_METATYPE_TEMPLATE_1ARG(SINGLE_ARG_TEMPLATE) \
QT_BEGIN_NAMESPACE \

View File

@ -50,11 +50,13 @@ QT_BEGIN_NAMESPACE
typedef QListIterator<QByteArray> QByteArrayListIterator;
typedef QMutableListIterator<QByteArray> QMutableByteArrayListIterator;
#ifndef Q_QDOC
typedef QList<QByteArray> QByteArrayList;
namespace QtPrivate {
QByteArray Q_CORE_EXPORT QByteArrayList_join(const QByteArrayList *that, const char *separator, int separatorLength);
}
#endif
#ifdef Q_QDOC
class QByteArrayList : public QList<QByteArray>

View File

@ -118,7 +118,10 @@ struct Q_CORE_EXPORT QListData {
};
template <typename T>
class QList : public QListSpecialMethods<T>
class QList
#ifndef Q_QDOC
: public QListSpecialMethods<T>
#endif
{
public:
struct MemoryLayout

View File

@ -149,6 +149,7 @@ public:
Q_DECLARE_TYPEINFO(QStringList, Q_MOVABLE_TYPE);
#ifndef Q_QDOC
inline QStringList *QListSpecialMethods<QString>::self()
{ return static_cast<QStringList *>(this); }
inline const QStringList *QListSpecialMethods<QString>::self() const
@ -284,6 +285,7 @@ inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) cons
}
#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
#endif // Q_QDOC
QT_END_NAMESPACE