#ifndef QVARIANT_H
#define QVARIANT_H
#include <QtCore/qatomic.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qlist.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qmap.h>
#include <QtCore/qstring.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QVariant{
public: enum Type{
Invalid = 0,
Bool = 1,
Int = 2,
UInt = 3,
LongLong = 4,
ULongLong = 5,
Double = 6,
Char = 7,
Map = 8,
List = 9,
String = 10,
StringList = 11,
ByteArray = 12,
BitArray = 13,
Date = 14,
Time = 15,
DateTime = 16,
Url = 17,
Locale = 18,
Rect = 19,
RectF = 20,
Size = 21,
SizeF = 22,
Line = 23,
LineF = 24,
Point = 25,
PointF = 26,
RegExp = 27,
LastCoreType = 27,
Font = 64,
Pixmap = 65,
Brush = 66,
Color = 67,
Palette = 68,
Icon = 69,
Image = 70,
Polygon = 71,
Region = 72,
Bitmap = 73,
Cursor = 74,
SizePolicy = 75,
KeySequence = 76,
Pen = 77,
TextLength = 78,
TextFormat = 79,
Matrix = 80,
LastGuiType = 80,
UserType = 127,
LastType = -1,
};
public: ~QVariant();
public: QVariant(enum QVariant::Type type);
public: QVariant(int typeOrUserType, void const * copy);
public: QVariant(class QVariant const & other);
#ifndef QT_NO_DATASTREAM
public: QVariant(class QDataStream& s);
#endif
public: QVariant(int i);
public: QVariant(uint ui);
public: QVariant(qlonglong ll);
public: QVariant(qulonglong ull);
public: QVariant(bool b);
public: QVariant(double d);
#ifndef QT_NO_CAST_FROM_ASCII
public: QVariant(char const * str);
#endif
public: QVariant(class QByteArray const & bytearray);
public: QVariant(struct QBitArray const & bitarray);
public: QVariant(class QString const & string);
public: QVariant(class QLatin1String const & string);
public: QVariant(struct QStringList const & stringlist);
public: QVariant(class QChar const & qchar);
public: QVariant(struct QDate const & date);
public: QVariant(struct QTime const & time);
public: QVariant(struct QDateTime const & datetime);
public: QVariant(class QList < class QVariant > const & list);
public: QVariant(class QMap < class QString, class QVariant > const & map);
#ifndef QT_NO_GEOM_VARIANT
public: QVariant(struct QSize const & size);
public: QVariant(struct QSizeF const & size);
public: QVariant(struct QPoint const & pt);
public: QVariant(struct QPointF const & pt);
public: QVariant(struct QLine const & line);
public: QVariant(struct QLineF const & line);
public: QVariant(struct QRect const & rect);
public: QVariant(struct QRectF const & rect);
#endif
public: QVariant(struct QUrl const & url);
public: QVariant(struct QLocale const & locale);
public: QVariant(struct QRegExp const & regExp);
public: QVariant(enum Qt::GlobalColor color);
public: class QVariant& operator =(class QVariant const & other);
public: enum QVariant::Type type() const
public: int userType() const
public: char const * typeName() const
public: bool canConvert(enum QVariant::Type t) const
public: bool convert(enum QVariant::Type t);
public: bool isNull() const
public: void clear();
public: void detach();
public: int toInt(bool* ok = 0) const
public: uint toUInt(bool* ok = 0) const
public: qlonglong toLongLong(bool* ok = 0) const
public: qulonglong toULongLong(bool* ok = 0) const
public: bool toBool() const
public: double toDouble(bool* ok = 0) const
public: class QByteArray toByteArray() const
public: struct QBitArray toBitArray() const
public: class QString toString() const
public: struct QStringList toStringList() const
public: class QChar toChar() const
public: struct QDate toDate() const
public: struct QTime toTime() const
public: struct QDateTime toDateTime() const
public: class QList < class QVariant > toList() const
public: class QMap < class QString, class QVariant > toMap() const
#ifndef QT_NO_GEOM_VARIANT
public: struct QPoint toPoint() const
public: struct QPointF toPointF() const
public: struct QRect toRect() const
public: struct QSize toSize() const
public: struct QSizeF toSizeF() const
public: struct QLine toLine() const
public: struct QLineF toLineF() const
public: struct QRectF toRectF() const
#endif
public: struct QUrl toUrl() const
public: struct QLocale toLocale() const
public: struct QRegExp toRegExp() const
#ifndef QT_NO_DATASTREAM
public: void load(class QDataStream& ds);
public: void save(class QDataStream& ds) const
#endif
public: static char const * typeToName(enum QVariant::Type type);
public: static enum QVariant::Type nameToType(char const * name);
public: void* data();
public: void const * constData() const
public: inline void const * data() const
#ifndef QT_NO_MEMBER_TEMPLATES
public: template < typename T > inline void setValue(T const & avalue);
public: template < typename T > inline T value() const
public: template < typename T > static inline class QVariant fromValue(T const & value);
public: template < typename T > inline bool canConvert() const
#endif
#ifndef qdoc
public: struct PrivateShared{
public: inline PrivateShared();
public: inline PrivateShared(void* v);
public: void* ptr;
public: class QAtomic ref;
};
public: struct Private{
public: inline Private();
public: inline Private(struct QVariant::Private const & other);
public: union Data{
char c;
int i;
uint u;
bool b;
double d;
qlonglong ll;
qulonglong ull;
void* ptr;
struct QVariant::PrivateShared* shared;
};
public: union QVariant::Private::Data data;
public: unsigned int type:30;
public: unsigned int is_shared:1;
public: unsigned int is_null:1;
};
public: typedef void (* f_construct)(struct QVariant::Private*, void const *);
public: typedef void (* f_clear)(struct QVariant::Private*);
public: typedef bool (* f_null)(QVariant::Private*);
#ifndef QT_NO_DATASTREAM
public: typedef void (* f_load)(struct QVariant::Private*, class QDataStream&);
public: typedef void (* f_save)(QVariant::Private*, class QDataStream&);
#endif
public: typedef bool (* f_compare)(QVariant::Private*, QVariant::Private*);
public: typedef bool (* f_convert)(QVariant::Private*, enum QVariant::Type, void*, bool*);
public: typedef bool (* f_canConvert)(QVariant::Private*, enum QVariant::Type);
public: typedef void (* f_debugStream)(struct QDebug, class QVariant const &);
public: struct Handler{
public: void (* construct)(struct QVariant::Private*, void const *);
public: void (* clear)(struct QVariant::Private*);
public: bool (* isNull)(QVariant::Private*);
#ifndef QT_NO_DATASTREAM
public: void (* load)(struct QVariant::Private*, class QDataStream&);
public: void (* save)(QVariant::Private*, class QDataStream&);
#endif
public: bool (* compare)(QVariant::Private*, QVariant::Private*);
public: bool (* convert)(QVariant::Private*, enum QVariant::Type, void*, bool*);
public: bool (* canConvert)(QVariant::Private*, enum QVariant::Type);
public: void (* debugStream)(struct QDebug, class QVariant const &);
};
#endif
public: inline bool operator ==(class QVariant const & v) const
public: inline bool operator !=(class QVariant const & v) const
protected: struct QVariant::Private d;
#ifndef QT_MOC
protected: static struct QVariant::Handler const * handler;
#endif
protected: void create(int type, void const * copy);
protected: bool cmp(class QVariant const & other) const
#ifndef QT3_SUPPORT
private: inline QVariant(bool, int);
#endif
public: inline QVariant();
public: inline bool isValid() const
public: inline bool isDetached() const
friend inline bool qvariant_cast_helper(class QVariant const & v, enum QVariant::Type tp, void* ptr);
friend int qRegisterGuiVariant();
friend inline bool operator ==(class QVariant const & v1, class QVariantComparisonHelper const & v2);
friend struct QDebug operator <<(struct QDebug, class QVariant const &);
};
int qRegisterGuiVariant();
#ifndef QT_MOC
typedef class QList < class QVariant > QVariantList;
typedef class QMap < class QString, class QVariant > QVariantMap;
template < > struct QMetaTypeId2 < class QList < class QVariant > >{
public: static inline int qt_metatype_id();
public: enum /*anonymous*/{
Defined = 1,
MetaType = 9,
};
};
template < > struct QMetaTypeId2 < class QMap < class QString, class QVariant > >{
public: static inline int qt_metatype_id();
public: enum /*anonymous*/{
Defined = 1,
MetaType = 8,
};
};
#endif
inline bool qvariant_cast_helper(class QVariant const & v, enum QVariant::Type tp, void* ptr);
#ifndef QT_MOC
template < typename T > inline class QVariant qVariantFromValue(T const & t);
template < typename T > inline void qVariantSetValue(class QVariant& v, T const & t);
#endif
#ifndef QT_NO_DATASTREAM
class QDataStream& operator >>(class QDataStream& s, class QVariant& p);
class QDataStream& operator <<(class QDataStream& s, class QVariant const & p);
class QDataStream& operator >>(class QDataStream& s, enum QVariant::Type& p);
class QDataStream& operator <<(class QDataStream& s, enum QVariant::Type p);
#endif
#ifdef qdoc
#else
class QVariantComparisonHelper{
public: inline QVariantComparisonHelper(class QVariant const & var);
private: QVariant* v;
friend inline bool operator ==(class QVariant const & v1, class QVariantComparisonHelper const & v2);
};
inline bool operator ==(class QVariant const & v1, class QVariantComparisonHelper const & v2);
inline bool operator !=(class QVariant const & v1, class QVariantComparisonHelper const & v2);
#endif
#ifndef QT_MOC
#if !defined qdoc && defined Q_CC_MSVC && _MSC_VER < 1300
#else
template < typename T > T qvariant_cast(class QVariant const & v);
template < typename T > inline T qVariantValue(class QVariant const & variant);
template < typename T > inline bool qVariantCanConvert(class QVariant const & variant);
#endif
#endif
template < > class QTypeInfo < class QVariant >{
public: static inline char const * name();
public: enum /*anonymous*/{
isComplex = 1,
isStatic = 0,
isLarge = 1,
isPointer = 0,
isDummy = 0,
};
};
#ifndef QT_NO_DEBUG_STREAM
struct QDebug operator <<(struct QDebug, class QVariant const &);
struct QDebug operator <<(struct QDebug, enum QVariant::Type);
#endif
#endif // QVARIANT_H