⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qguivariant.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    case QVariant::Font:        s << *v_cast<QFont>(d);        break;    case QVariant::Pixmap:        s << *v_cast<QPixmap>(d);        break;    case QVariant::Image:        s << *v_cast<QImage>(d);        break;    case QVariant::Brush:        s << *v_cast<QBrush>(d);        break;    case QVariant::Color:        s << *v_cast<QColor>(d);        break;    case QVariant::Palette:        s << *v_cast<QPalette>(d);        break;#ifdef QT3_SUPPORT    case QVariant::ColorGroup:        qt_stream_out_qcolorgroup(s, *v_cast<QColorGroup>(d));        break;#endif#ifndef QT_NO_ICON    case QVariant::Icon:        //### add stream operator to icon        s << v_cast<QIcon>(d)->pixmap(QSize(22, 22)); //FIXME        break;#endif    case QVariant::TextFormat:        s << *v_cast<QTextFormat>(d);        break;    case QVariant::TextLength:        s << *v_cast<QTextLength>(d);        break;    case QVariant::SizePolicy:    {        const QSizePolicy *p = v_cast<QSizePolicy>(d);        s << (int) p->horizontalPolicy() << (int) p->verticalPolicy()          << (qint8) p->hasHeightForWidth();    }    break;#ifndef QT_NO_SHORTCUT    case QVariant::KeySequence:        s << *v_cast<QKeySequence>(d);        break;#endif    case QVariant::Pen:        s << *v_cast<QPen>(d);        break;    default:        qcoreVariantHandler()->save(d, s);    }}#endif // QT_NO_DATASTREAMstatic bool compare(const QVariant::Private *a, const QVariant::Private *b){    Q_ASSERT(a->type == b->type);    switch(a->type) {    case QVariant::Cursor:#ifndef QT_NO_CURSOR        return v_cast<QCursor>(a)->shape() == v_cast<QCursor>(b)->shape();#endif    case QVariant::Bitmap:        return v_cast<QBitmap>(a)->serialNumber()            == v_cast<QBitmap>(b)->serialNumber();    case QVariant::Polygon:        return *v_cast<QPolygon>(a) == *v_cast<QPolygon>(b);    case QVariant::Region:        return *v_cast<QRegion>(a) == *v_cast<QRegion>(b);    case QVariant::Font:        return *v_cast<QFont>(a) == *v_cast<QFont>(b);    case QVariant::Pixmap:        return v_cast<QPixmap>(a)->serialNumber() == v_cast<QPixmap>(b)->serialNumber();    case QVariant::Image:        return *v_cast<QImage>(a) == *v_cast<QImage>(b);    case QVariant::Brush:        return *v_cast<QBrush>(a) == *v_cast<QBrush>(b);    case QVariant::Color:        return *v_cast<QColor>(a) == *v_cast<QColor>(b);    case QVariant::Palette:        return *v_cast<QPalette>(a) == *v_cast<QPalette>(b);#ifdef QT3_SUPPORT    case QVariant::ColorGroup:        return *v_cast<QColorGroup>(a) == *v_cast<QColorGroup>(b);#endif#ifndef QT_NO_ICON    case QVariant::Icon:        return false; // #### FIXME#endif    case QVariant::TextFormat:        return *v_cast<QTextFormat>(a) == *v_cast<QTextFormat>(b);    case QVariant::TextLength:        return *v_cast<QTextLength>(a) == *v_cast<QTextLength>(b);    case QVariant::SizePolicy:        return *v_cast<QSizePolicy>(a) == *v_cast<QSizePolicy>(b);#ifndef QT_NO_SHORTCUT    case QVariant::KeySequence:        return *v_cast<QKeySequence>(a) == *v_cast<QKeySequence>(b);#endif    case QVariant::Pen:        return *v_cast<QPen>(a) == *v_cast<QPen>(b);    default:        break;    }    return qcoreVariantHandler()->compare(a, b);}static bool convert(const QVariant::Private *d, QVariant::Type t,                 void *result, bool *ok){    switch (t) {    case QVariant::ByteArray:        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;        }        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 true;        } else if (d->type == QVariant::ByteArray) {            static_cast<QColor *>(result)->setNamedColor(QString::fromLatin1(                                *v_cast<QByteArray>(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);}static bool canConvert(const QVariant::Private *d, QVariant::Type t){    if (d->type == uint(t))        return true;    switch (t) {    case QVariant::Int:        if (d->type == QVariant::KeySequence)            return true;        break;    case QVariant::Image:        return d->type == QVariant::Pixmap || d->type == QVariant::Bitmap;    case QVariant::Pixmap:        return d->type == QVariant::Image || d->type == QVariant::Bitmap;    case QVariant::Bitmap:        return d->type == QVariant::Pixmap || d->type == QVariant::Image;    case QVariant::ByteArray:        if (d->type == QVariant::Color)            return true;        break;    case QVariant::String:        if (d->type == QVariant::KeySequence || d->type == QVariant::Font || d->type == QVariant::Color)            return true;        break;    case QVariant::KeySequence:        return d->type == QVariant::String || d->type == QVariant::Int;    case QVariant::Font:        return d->type == QVariant::String;    case QVariant::Color:        return d->type == QVariant::String || d->type == QVariant::ByteArray;    default:        break;    }    return qcoreVariantHandler()->canConvert(d, t);}#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::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    load,    save,#endif    compare,    convert,    canConvert,#if !defined(QT_NO_DEBUG_STREAM) && !defined(Q_BROKEN_DEBUG_STREAM)    streamDebug#else    0#endif};int qRegisterGuiVariant(){    QVariant::handler = &qt_gui_variant_handler;    return 1;}Q_CONSTRUCTOR_FUNCTION(qRegisterGuiVariant)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -