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

📄 abstractformbuilder.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        f.setItalic(font->elementItalic());        f.setBold(font->elementBold());        f.setUnderline(font->elementUnderline());        f.setStrikeOut(font->elementStrikeOut());        v = qVariantFromValue(f);    } break;    case DomProperty::Date: {        DomDate *date = p->elementDate();        QDate d(date->elementYear(), date->elementMonth(), date->elementDay());        v = QVariant(d);    } break;    case DomProperty::Time: {        DomTime *t = p->elementTime();        QTime tm(t->elementHour(), t->elementMinute(), t->elementSecond());        v = QVariant(tm);    } break;    case DomProperty::DateTime: {        DomDateTime *dateTime = p->elementDateTime();        QDate d(dateTime->elementYear(), dateTime->elementMonth(), dateTime->elementDay());        QTime tm(dateTime->elementHour(), dateTime->elementMinute(), dateTime->elementSecond());        QDateTime dt(d, tm);        v = QVariant(dt);    } break;    case DomProperty::Pixmap:    case DomProperty::IconSet: {        DomResourcePixmap *resource = 0;        if (p->kind() == DomProperty::IconSet)            resource = p->elementIconSet();        else            resource = p->elementPixmap();        if (resource != 0) {            QString icon_path = resource->text();            QString qrc_path = resource->attributeResource();            if (icon_path.isEmpty()) {                if (p->kind() == DomProperty::IconSet)                    return QIcon();                return QPixmap();            }            if (qrc_path.isEmpty())                icon_path = workingDirectory().absoluteFilePath(icon_path);            else                qrc_path = workingDirectory().absoluteFilePath(qrc_path);            if (p->kind() == DomProperty::IconSet) {                QIcon icon = nameToIcon(icon_path, qrc_path);                v = qVariantFromValue(icon);            } else {                QPixmap pixmap = nameToPixmap(icon_path, qrc_path);                v = qVariantFromValue(pixmap);            }        }    } break;    case DomProperty::Palette: {        DomPalette *dom = p->elementPalette();        QPalette palette;        if (dom->elementActive())            setupColorGroup(palette, QPalette::Active, dom->elementActive());        if (dom->elementInactive())            setupColorGroup(palette, QPalette::Inactive, dom->elementInactive());        if (dom->elementDisabled())            setupColorGroup(palette, QPalette::Disabled, dom->elementDisabled());        palette.setCurrentColorGroup(QPalette::Active);        v = qVariantFromValue(palette);    } break;    case DomProperty::Cursor: {        v = qVariantFromValue(QCursor(static_cast<Qt::CursorShape>(p->elementCursor())));    } break;    case DomProperty::Set: {        QByteArray pname = p->attributeName().toUtf8();        int index = meta->indexOfProperty(pname);        if (index == -1) {            qWarning() << "property" << pname << "is not supported";            break;        }        QMetaEnum e = meta->property(index).enumerator();        Q_ASSERT(e.isFlag() == true);        v = e.keysToValue(p->elementSet().toUtf8());    } break;    case DomProperty::Enum: {        QByteArray pname = p->attributeName().toUtf8();        int index = meta->indexOfProperty(pname);        if (index == -1) {            // ### special-casing for Line (QFrame) -- fix for 4.2            if (!qstrcmp(meta->className(), "QFrame")                && (pname == QLatin1String("orientation"))) {                v = (p->elementEnum() == QLatin1String("Qt::Horizontal"))                    ? QFrame::HLine : QFrame::VLine;            } else {                qWarning() << "property" << pname << "is not supported";            }            break;        }        QMetaEnum e = meta->property(index).enumerator();        v = e.keyToValue(p->elementEnum().toUtf8());    } break;    case DomProperty::SizePolicy: {        DomSizePolicy *sizep = p->elementSizePolicy();        QSizePolicy sizePolicy;        sizePolicy.setHorizontalStretch(sizep->elementHorStretch());        sizePolicy.setVerticalStretch(sizep->elementVerStretch());        sizePolicy.setHorizontalPolicy((QSizePolicy::Policy) sizep->elementHSizeType());        sizePolicy.setVerticalPolicy((QSizePolicy::Policy) sizep->elementVSizeType());        v = qVariantFromValue(sizePolicy);    } break;    default:        qWarning() << "QAbstractFormBuilder::toVariant:" << p->kind() << " not implemented yet!";        break;    }    return v;}/*!    \internal*/void QAbstractFormBuilder::setupColorGroup(QPalette &palette, QPalette::ColorGroup colorGroup,            DomColorGroup *group){    QList<DomColor*> colors = group->elementColor();    for (int role = 0; role < colors.size(); ++role) {        DomColor *color = colors.at(role);        QColor c(color->elementRed(), color->elementGreen(), color->elementBlue());        palette.setColor(colorGroup, QPalette::ColorRole(role), c); // ### TODO: support the QPalette::ColorRole as string    }}/*!    \internal*/DomColorGroup *QAbstractFormBuilder::saveColorGroup(const QPalette &palette){    DomColorGroup *group = new DomColorGroup();    QList<DomColor*> colors;    for (int role = QPalette::Foreground; role < QPalette::NColorRoles; ++role) {        QColor c = palette.color(QPalette::ColorRole(role));        DomColor *color = new DomColor();        color->setElementRed(c.red());        color->setElementGreen(c.green());        color->setElementBlue(c.blue());        colors.append(color);    }    group->setElementColor(colors);    return group;}/*!    \internal*/QWidget *QAbstractFormBuilder::createWidget(const QString &widgetName, QWidget *parentWidget, const QString &name){    Q_UNUSED(widgetName);    Q_UNUSED(parentWidget);    Q_UNUSED(name);    return 0;}/*!    \internal*/QLayout *QAbstractFormBuilder::createLayout(const QString &layoutName, QObject *parent, const QString &name){    Q_UNUSED(layoutName);    Q_UNUSED(parent);    Q_UNUSED(name);    return 0;}/*!    \internal*/QAction *QAbstractFormBuilder::createAction(QObject *parent, const QString &name){    QAction *action = new QAction(parent);    action->setObjectName(name);    m_actions.insert(name, action);    return action;}/*!    \internal*/QActionGroup *QAbstractFormBuilder::createActionGroup(QObject *parent, const QString &name){    QActionGroup *g = new QActionGroup(parent);    g->setObjectName(name);    m_actionGroups.insert(name, g);    return g;}/*!    \fn void QAbstractFormBuilder::save(QIODevice *device, QWidget *widget)    Saves an XML representation of the given \a widget to the    specified \a device in the standard \c{.ui} file format.    \sa load()*/void QAbstractFormBuilder::save(QIODevice *dev, QWidget *widget){    DomWidget *ui_widget = createDom(widget, 0);    Q_ASSERT( ui_widget != 0 );    DomUI *ui = new DomUI();    ui->setAttributeVersion(QLatin1String("4.0"));    ui->setElementWidget(ui_widget);    saveDom(ui, widget);    QDomDocument doc;    doc.appendChild(ui->write(doc));    QByteArray bytes = doc.toString().toUtf8();    dev->write(bytes, bytes.size());    m_laidout.clear();    delete ui;}/*!    \internal*/void QAbstractFormBuilder::saveDom(DomUI *ui, QWidget *widget){    ui->setElementClass(widget->objectName());    if (DomConnections *ui_connections = saveConnections()) {        ui->setElementConnections(ui_connections);    }    if (DomCustomWidgets *ui_customWidgets = saveCustomWidgets()) {        ui->setElementCustomWidgets(ui_customWidgets);    }    if (DomTabStops *ui_tabStops = saveTabStops()) {        ui->setElementTabStops(ui_tabStops);    }    if (DomResources *ui_resources = saveResources()) {        ui->setElementResources(ui_resources);    }}/*!    \internal*/DomConnections *QAbstractFormBuilder::saveConnections(){    return new DomConnections;}/*!    \internal*/DomWidget *QAbstractFormBuilder::createDom(QWidget *widget, DomWidget *ui_parentWidget, bool recursive){    DomWidget *ui_widget = new DomWidget();    ui_widget->setAttributeClass(QLatin1String(widget->metaObject()->className()));    ui_widget->setElementProperty(computeProperties(widget));    if (recursive) {        if (QLayout *layout = widget->layout()) {            if (DomLayout *ui_layout = createDom(layout, 0, ui_parentWidget)) {                QList<DomLayout*> ui_layouts;                ui_layouts.append(ui_layout);                ui_widget->setElementLayout(ui_layouts);            }        }    }    // widgets, actions and action groups    QList<DomWidget*> ui_widgets;    QList<DomAction*> ui_actions;    QList<DomActionGroup*> ui_action_groups;    QList<QObject*> children;    // splitters need to store their children in the order specified by child indexes,    // not the order of the child list.    if (QSplitter *splitter = qobject_cast<QSplitter*>(widget)) {        for (int i = 0; i < splitter->count(); ++i)            children.append(splitter->widget(i));    } else {        children = widget->children();    }    foreach (QObject *obj, children) {        if (QWidget *childWidget = qobject_cast<QWidget*>(obj)) {            if (m_laidout.contains(childWidget) || recursive == false)                continue;            if (DomWidget *ui_child = createDom(childWidget, ui_widget)) {                ui_widgets.append(ui_child);            }        } else if (QAction *childAction = qobject_cast<QAction*>(obj)) {            if (childAction->actionGroup() != 0) {                // it will be added later.                continue;            }            if (DomAction *ui_action = createDom(childAction)) {                ui_actions.append(ui_action);            }        } else if (QActionGroup *childActionGroup = qobject_cast<QActionGroup*>(obj)) {            if (DomActionGroup *ui_action_group = createDom(childActionGroup)) {                ui_action_groups.append(ui_action_group);            }        }    }    // add-action    QList<DomActionRef*> ui_action_refs;    foreach (QAction *action, widget->actions()) {        if (DomActionRef *ui_action_ref = createActionRefDom(action)) {            ui_action_refs.append(ui_action_ref);        }    }    if (recursive)        ui_widget->setElementWidget(ui_widgets);    ui_widget->setElementAction(ui_actions);    ui_widget->setElementActionGroup(ui_action_groups);    ui_widget->setElementAddAction(ui_action_refs);    saveExtraInfo(widget, ui_widget, ui_parentWidget);    return ui_widget;}/*!    \internal*/DomActionRef *QAbstractFormBuilder::createActionRefDom(QAction *action){    QString name = action->objectName();    if (action->menu() != 0)        name = action->menu()->objectName();    DomActionRef *ui_action_ref = new DomActionRef();    if (action->isSeparator())        ui_action_ref->setAttributeName(QLatin1String("separator"));    else        ui_action_ref->setAttributeName(name);    return ui_action_ref;}/*!    \internal*/DomLayout *QAbstractFormBuilder::createDom(QLayout *layout, DomLayout *ui_layout, DomWidget *ui_parentWidget){    Q_UNUSED(ui_layout)    DomLayout *lay = new DomLayout();    lay->setAttributeClass(QLatin1String(layout->metaObject()->className()));    lay->setElementProperty(computeProperties(layout));    QList<DomLayoutItem*> ui_items;    for (int idx=0; layout->itemAt(idx); ++idx) {        QLayoutItem *item = layout->itemAt(idx);        DomLayoutItem *ui_item = createDom(item, lay, ui_parentWidget);        if (ui_item)            ui_items.append(ui_item);    }    lay->setElementItem(ui_items);    return lay;}/*!    \internal*/DomLayoutItem *QAbstractFormBuilder::createDom(QLayoutItem *item, DomLayout *ui_layout, DomWidget *ui_parentWidget){    DomLayoutItem *ui_item = new DomLayoutItem();

⌨️ 快捷键说明

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