📄 qguivariant.cpp
字号:
if (d->type == QVariant::Color) { *static_cast<QByteArray *>(result) = v_cast<QColor>(d)->name().toLatin1(); return true; } break; case QVariant::String: { QString *str = static_cast<QString *>(result); switch (d->type) {#ifndef QT_NO_SHORTCUT case QVariant::KeySequence: *str = QString(*v_cast<QKeySequence>(d)); return true;#endif case QVariant::Font: *str = v_cast<QFont>(d)->toString(); return true; case QVariant::Color: *str = v_cast<QColor>(d)->name(); return true; default: break; } break; } case QVariant::Pixmap: if (d->type == QVariant::Image) { *static_cast<QPixmap *>(result) = QPixmap::fromImage(*v_cast<QImage>(d)); return true; } else if (d->type == QVariant::Bitmap) { *static_cast<QPixmap *>(result) = *v_cast<QBitmap>(d); return true; } else if (d->type == QVariant::Brush) { if (v_cast<QBrush>(d)->style() == Qt::TexturePattern) { *static_cast<QPixmap *>(result) = v_cast<QBrush>(d)->texture(); return true; } } break; case QVariant::Image: if (d->type == QVariant::Pixmap) { *static_cast<QImage *>(result) = v_cast<QPixmap>(d)->toImage(); return true; } else if (d->type == QVariant::Bitmap) { *static_cast<QImage *>(result) = v_cast<QBitmap>(d)->toImage(); return true; } break; case QVariant::Bitmap: if (d->type == QVariant::Pixmap) { *static_cast<QBitmap *>(result) = *v_cast<QPixmap>(d); return true; } else if (d->type == QVariant::Image) { *static_cast<QBitmap *>(result) = QBitmap::fromImage(*v_cast<QImage>(d)); return true; } break;#ifndef QT_NO_SHORTCUT case QVariant::Int: if (d->type == QVariant::KeySequence) { *static_cast<int *>(result) = (int)(*(v_cast<QKeySequence>(d))); return true; } break;#endif case QVariant::Font: if (d->type == QVariant::String) { QFont *f = static_cast<QFont *>(result); f->fromString(*v_cast<QString>(d)); return true; } break; case QVariant::Color: if (d->type == QVariant::String) { static_cast<QColor *>(result)->setNamedColor(*v_cast<QString>(d)); return static_cast<QColor *>(result)->isValid(); } else if (d->type == QVariant::ByteArray) { static_cast<QColor *>(result)->setNamedColor(QString::fromLatin1( *v_cast<QByteArray>(d))); return true; } else if (d->type == QVariant::Brush) { if (v_cast<QBrush>(d)->style() == Qt::SolidPattern) { *static_cast<QColor *>(result) = v_cast<QBrush>(d)->color(); return true; } } break; case QVariant::Brush: if (d->type == QVariant::Color) { *static_cast<QBrush *>(result) = QBrush(*v_cast<QColor>(d)); return true; } else if (d->type == QVariant::Pixmap) { *static_cast<QBrush *>(result) = QBrush(*v_cast<QPixmap>(d)); return true; } break;#ifndef QT_NO_SHORTCUT case QVariant::KeySequence: { QKeySequence *seq = static_cast<QKeySequence *>(result); switch (d->type) { case QVariant::String: *seq = QKeySequence(*v_cast<QString>(d)); return true; case QVariant::Int: *seq = QKeySequence(d->data.i); return true; default: break; } }#endif default: break; } return qcoreVariantHandler()->convert(d, t, result, ok);}#if !defined(QT_NO_DEBUG_STREAM) && !defined(Q_BROKEN_DEBUG_STREAM)static void streamDebug(QDebug dbg, const QVariant &v){ switch(v.type()) { case QVariant::Cursor:#ifndef QT_NO_CURSOR// dbg.nospace() << qvariant_cast<QCursor>(v); //FIXME#endif break; case QVariant::Bitmap:// dbg.nospace() << qvariant_cast<QBitmap>(v); //FIXME break; case QVariant::Polygon: dbg.nospace() << qvariant_cast<QPolygon>(v); break; case QVariant::Region: dbg.nospace() << qvariant_cast<QRegion>(v); break; case QVariant::Font:// dbg.nospace() << qvariant_cast<QFont>(v); //FIXME break; case QVariant::Matrix: dbg.nospace() << qvariant_cast<QMatrix>(v); break; case QVariant::Transform: dbg.nospace() << qvariant_cast<QTransform>(v); break; case QVariant::Pixmap:// dbg.nospace() << qvariant_cast<QPixmap>(v); //FIXME break; case QVariant::Image:// dbg.nospace() << qvariant_cast<QImage>(v); //FIXME break; case QVariant::Brush: dbg.nospace() << qvariant_cast<QBrush>(v); break; case QVariant::Color: dbg.nospace() << qvariant_cast<QColor>(v); break; case QVariant::Palette:// dbg.nospace() << qvariant_cast<QPalette>(v); //FIXME break;#ifndef QT_NO_ICON case QVariant::Icon:// dbg.nospace() << qvariant_cast<QIcon>(v); // FIXME break;#endif case QVariant::SizePolicy:// dbg.nospace() << qvariant_cast<QSizePolicy>(v); //FIXME break;#ifndef QT_NO_SHORTCUT case QVariant::KeySequence: dbg.nospace() << qvariant_cast<QKeySequence>(v); break;#endif case QVariant::Pen: dbg.nospace() << qvariant_cast<QPen>(v); break; default: qcoreVariantHandler()->debugStream(dbg, v); break; }}#endifconst QVariant::Handler qt_gui_variant_handler = { construct, clear, isNull,#ifndef QT_NO_DATASTREAM 0, 0,#endif compare, convert, 0,#if !defined(QT_NO_DEBUG_STREAM) && !defined(Q_BROKEN_DEBUG_STREAM) streamDebug#else 0#endif};struct QMetaTypeGuiHelper{ QMetaType::Constructor constr; QMetaType::Destructor destr;#ifndef QT_NO_DATASTREAM QMetaType::SaveOperator saveOp; QMetaType::LoadOperator loadOp;#endif};#ifdef QT_MAKEDLL# define Q_VARIANT_DECL_IMPORT Q_DECL_IMPORT#else# define Q_VARIANT_DECL_IMPORT#endifextern Q_VARIANT_DECL_IMPORT const QMetaTypeGuiHelper *qMetaTypeGuiHelper;#ifdef QT_NO_DATASTREAM# define Q_DECL_METATYPE_HELPER(TYPE) \ typedef void *(*QConstruct##TYPE)(const TYPE *); \ static const QConstruct##TYPE qConstruct##TYPE = qMetaTypeConstructHelper<TYPE>; \ typedef void (*QDestruct##TYPE)(TYPE *); \ static const QDestruct##TYPE qDestruct##TYPE = qMetaTypeDeleteHelper<TYPE>;#else# define Q_DECL_METATYPE_HELPER(TYPE) \ typedef void *(*QConstruct##TYPE)(const TYPE *); \ static const QConstruct##TYPE qConstruct##TYPE = qMetaTypeConstructHelper<TYPE>; \ typedef void (*QDestruct##TYPE)(TYPE *); \ static const QDestruct##TYPE qDestruct##TYPE = qMetaTypeDeleteHelper<TYPE>; \ typedef void (*QSave##TYPE)(QDataStream &, const TYPE *); \ static const QSave##TYPE qSave##TYPE = qMetaTypeSaveHelper<TYPE>; \ typedef void (*QLoad##TYPE)(QDataStream &, TYPE *); \ static const QLoad##TYPE qLoad##TYPE = qMetaTypeLoadHelper<TYPE>;#endif#ifdef QT3_SUPPORTQ_DECL_METATYPE_HELPER(QColorGroup)#endifQ_DECL_METATYPE_HELPER(QFont)Q_DECL_METATYPE_HELPER(QPixmap)Q_DECL_METATYPE_HELPER(QBrush)Q_DECL_METATYPE_HELPER(QColor)Q_DECL_METATYPE_HELPER(QPalette)#ifndef QT_NO_ICONQ_DECL_METATYPE_HELPER(QIcon)#endifQ_DECL_METATYPE_HELPER(QImage)Q_DECL_METATYPE_HELPER(QPolygon)Q_DECL_METATYPE_HELPER(QRegion)Q_DECL_METATYPE_HELPER(QBitmap)#ifndef QT_NO_CURSORQ_DECL_METATYPE_HELPER(QCursor)#endifQ_DECL_METATYPE_HELPER(QSizePolicy)#ifndef QT_NO_SHORTCUTQ_DECL_METATYPE_HELPER(QKeySequence)#endifQ_DECL_METATYPE_HELPER(QPen)Q_DECL_METATYPE_HELPER(QTextLength)Q_DECL_METATYPE_HELPER(QTextFormat)Q_DECL_METATYPE_HELPER(QMatrix)Q_DECL_METATYPE_HELPER(QTransform)#ifdef QT_NO_DATASTREAM# define Q_IMPL_METATYPE_HELPER(TYPE) \ { reinterpret_cast<QMetaType::Constructor>(qConstruct##TYPE), \ reinterpret_cast<QMetaType::Destructor>(qDestruct##TYPE) }#else# define Q_IMPL_METATYPE_HELPER(TYPE) \ { reinterpret_cast<QMetaType::Constructor>(qConstruct##TYPE), \ reinterpret_cast<QMetaType::Destructor>(qDestruct##TYPE), \ reinterpret_cast<QMetaType::SaveOperator>(qSave##TYPE), \ reinterpret_cast<QMetaType::LoadOperator>(qLoad##TYPE) \ }#endifstatic const QMetaTypeGuiHelper qVariantGuiHelper[] = {#ifdef QT3_SUPPORT Q_IMPL_METATYPE_HELPER(QColorGroup),#else {0, 0, 0, 0},#endif Q_IMPL_METATYPE_HELPER(QFont), Q_IMPL_METATYPE_HELPER(QPixmap), Q_IMPL_METATYPE_HELPER(QBrush), Q_IMPL_METATYPE_HELPER(QColor), Q_IMPL_METATYPE_HELPER(QPalette),#ifdef QT_NO_ICON {0, 0, 0, 0},#else Q_IMPL_METATYPE_HELPER(QIcon),#endif Q_IMPL_METATYPE_HELPER(QImage), Q_IMPL_METATYPE_HELPER(QPolygon), Q_IMPL_METATYPE_HELPER(QRegion), Q_IMPL_METATYPE_HELPER(QBitmap),#ifdef QT_NO_CURSOR {0, 0, 0, 0},#else Q_IMPL_METATYPE_HELPER(QCursor),#endif Q_IMPL_METATYPE_HELPER(QSizePolicy),#ifdef QT_NO_SHORTCUT {0, 0, 0, 0},#else Q_IMPL_METATYPE_HELPER(QKeySequence),#endif Q_IMPL_METATYPE_HELPER(QPen), Q_IMPL_METATYPE_HELPER(QTextLength), Q_IMPL_METATYPE_HELPER(QTextFormat), Q_IMPL_METATYPE_HELPER(QMatrix), Q_IMPL_METATYPE_HELPER(QTransform)};static const QVariant::Handler *qt_guivariant_last_handler = 0;int qRegisterGuiVariant(){ qt_guivariant_last_handler = QVariant::handler; QVariant::handler = &qt_gui_variant_handler; qMetaTypeGuiHelper = qVariantGuiHelper; return 1;}Q_CONSTRUCTOR_FUNCTION(qRegisterGuiVariant)int qUnregisterGuiVariant(){ QVariant::handler = qt_guivariant_last_handler; qMetaTypeGuiHelper = 0; return 1;}Q_DESTRUCTOR_FUNCTION(qUnregisterGuiVariant)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -