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

📄 writeinitialization.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
            if (p->elementString()->hasAttributeNotr()                    && toBool(p->elementString()->attributeNotr())) {                propertyValue = QLatin1String("QString::fromUtf8(")                        + fixString(p->elementString()->text(), option.indent)                        + QLatin1String(")");            } else {                propertyValue = trCall(p->elementString());            }            break;        }        case DomProperty::Number:            propertyValue = QString::number(p->elementNumber());            break;        case DomProperty::Float:            propertyValue = QString::number(p->elementFloat());            break;        case DomProperty::Double:            propertyValue = QString::number(p->elementDouble());            break;        case DomProperty::Date: {            DomDate *d = p->elementDate();            propertyValue = QString::fromLatin1("QDate(%1, %2, %3)")                            .arg(d->elementYear())                            .arg(d->elementMonth())                            .arg(d->elementDay());            break;        }        case DomProperty::Time: {            DomTime *t = p->elementTime();            propertyValue = QString::fromLatin1("QTime(%1, %2, %3)")                            .arg(t->elementHour())                            .arg(t->elementMinute())                            .arg(t->elementSecond());            break;        }        case DomProperty::DateTime: {            DomDateTime *dt = p->elementDateTime();            propertyValue = QString::fromLatin1("QDateTime(QDate(%1, %2, %3), QTime(%4, %5, %6))")                            .arg(dt->elementYear())                            .arg(dt->elementMonth())                            .arg(dt->elementDay())                            .arg(dt->elementHour())                            .arg(dt->elementMinute())                            .arg(dt->elementSecond());            break;        }        case DomProperty::StringList:            propertyValue = QLatin1String("QStringList()");            if (p->elementStringList()->elementString().size()) {                QStringList lst = p->elementStringList()->elementString();                for (int i=0; i<lst.size(); ++i) {                    propertyValue += QLatin1String(" << ") + fixString(lst.at(i), option.indent);                }            }            break;        case DomProperty::Unknown:            break;        }        if (propertyValue.size()) {            QTextStream *o = &output;            if (p->kind() == DomProperty::String                    && (!p->elementString()->hasAttributeNotr() || !toBool(p->elementString()->attributeNotr())))                o = &refreshOut;            (*o) << option.indent << varName << setFunction << propertyValue;            if (!stdset)                (*o) << ")";            (*o) << ");\n";        }    }}QString WriteInitialization::domColor2QString(DomColor *c){    return QString::fromLatin1("QColor(%1, %2, %3)")        .arg(c->elementRed())        .arg(c->elementGreen())        .arg(c->elementBlue());}void WriteInitialization::writeColorGroup(DomColorGroup *colorGroup, const QString &group, const QString &paletteName){    if (!colorGroup)        return;    QList<DomColor*> colors = colorGroup->elementColor();    for (int i=0; i<colors.size(); ++i) {        DomColor *color = colors.at(i);        output << option.indent << paletteName << ".setColor(" << group            << ", " << "static_cast<QPalette::ColorRole>(" << i << ")"            << ", " << domColor2QString(color)            << ");\n";    }}void WriteInitialization::acceptCustomWidget(DomCustomWidget *node){    Q_UNUSED(node);}void WriteInitialization::acceptCustomWidgets(DomCustomWidgets *node){    Q_UNUSED(node);}void WriteInitialization::acceptTabStops(DomTabStops *tabStops){    QString lastName;    QStringList l = tabStops->elementTabStop();    for (int i=0; i<l.size(); ++i) {        QString name = l.at(i);        if (!m_registeredWidgets.contains(name)) {            fprintf(stderr, "'%s' isn't a valid widget\n", name.toLatin1().data());            continue;        }        if (i == 0) {            lastName = name;            continue;        } else if (name.isEmpty() || lastName.isEmpty()) {            continue;        }        output << option.indent << "QWidget::setTabOrder(" << lastName << ", " << name << ");\n";        lastName = name;    }}void WriteInitialization::acceptLayoutDefault(DomLayoutDefault *node){    m_defaultMargin = INT_MIN;    m_defaultSpacing = INT_MIN;    if (!node)        return;    if (node->hasAttributeMargin())        m_defaultMargin = node->attributeMargin();    if (node->hasAttributeSpacing())        m_defaultSpacing = node->attributeSpacing();}void WriteInitialization::acceptLayoutFunction(DomLayoutFunction *node){    m_marginFunction.clear();    m_spacingFunction.clear();    if (!node)        return;    if (node->hasAttributeMargin())        m_marginFunction = node->attributeMargin();    if (node->hasAttributeSpacing())        m_spacingFunction = node->attributeSpacing();}void WriteInitialization::initializeQ3ListBox(DomWidget *w){    QString varName = driver->findOrInsertWidget(w);    QString className = w->attributeClass();    QList<DomItem*> items = w->elementItem();    if (items.isEmpty())        return;    refreshOut << option.indent << varName << "->clear();\n";    for (int i=0; i<items.size(); ++i) {        DomItem *item = items.at(i);        QHash<QString, DomProperty*> properties = propertyMap(item->elementProperty());        DomProperty *text = properties.value(QLatin1String("text"));        DomProperty *pixmap = properties.value(QLatin1String("pixmap"));        if (!(text || pixmap))            continue;        refreshOut << option.indent << varName << "->insertItem(";        if (pixmap) {            refreshOut << pixCall(pixmap);            if (text)                refreshOut << ", ";        }        if (text)            refreshOut << trCall(text->elementString());        refreshOut << ");\n";    }}void WriteInitialization::initializeQ3IconView(DomWidget *w){    QString varName = driver->findOrInsertWidget(w);    QString className = w->attributeClass();    QList<DomItem*> items = w->elementItem();    if (items.isEmpty())        return;    refreshOut << option.indent << varName << "->clear();\n";    for (int i=0; i<items.size(); ++i) {        DomItem *item = items.at(i);        QHash<QString, DomProperty*> properties = propertyMap(item->elementProperty());        DomProperty *text = properties.value(QLatin1String("text"));        DomProperty *pixmap = properties.value(QLatin1String("pixmap"));        if (!(text || pixmap))            continue;        QString itemName = driver->unique(QLatin1String("__item"));        refreshOut << "\n";        refreshOut << option.indent << "Q3IconViewItem *" << itemName << " = new Q3IconViewItem(" << varName << ");\n";        if (pixmap) {            refreshOut << option.indent << itemName << "->setPixmap(" << pixCall(pixmap) << ");\n";        }        if (text) {            refreshOut << option.indent << itemName << "->setText(" << trCall(text->elementString()) << ");\n";        }    }}void WriteInitialization::initializeQ3ListView(DomWidget *w){    QString varName = driver->findOrInsertWidget(w);    QString className = w->attributeClass();    // columns    QList<DomColumn*> columns = w->elementColumn();    for (int i=0; i<columns.size(); ++i) {        DomColumn *column = columns.at(i);        QHash<QString, DomProperty*> properties = propertyMap(column->elementProperty());        DomProperty *text = properties.value(QLatin1String("text"));        DomProperty *pixmap = properties.value(QLatin1String("pixmap"));        DomProperty *clickable = properties.value(QLatin1String("clickable"));        DomProperty *resizable = properties.value(QLatin1String("resizable"));        QString txt = trCall(text->elementString());        output << option.indent << varName << "->addColumn(" << txt << ");\n";        refreshOut << option.indent << varName << "->header()->setLabel(" << i << ", " << txt << ");\n";        if (pixmap) {            output << option.indent << varName << "->header()->setLabel("                   << varName << "->header()->count() - 1, " << pixCall(pixmap) << ", " << txt << ");\n";        }        if (clickable != 0) {            output << option.indent << varName << "->header()->setClickEnabled(" << clickable->elementBool() << ", " << varName << "->header()->count() - 1);\n";        }        if (resizable != 0) {            output << option.indent << varName << "->header()->setResizeEnabled(" << resizable->elementBool() << ", " << varName << "->header()->count() - 1);\n";        }    }    if (w->elementItem().size()) {        refreshOut << option.indent << varName << "->clear();\n";        initializeQ3ListViewItems(className, varName, w->elementItem());    }}void WriteInitialization::initializeQ3ListViewItems(const QString &className, const QString &varName, const QList<DomItem *> &items){    if (items.isEmpty())        return;    // items    for (int i=0; i<items.size(); ++i) {        DomItem *item = items.at(i);        QString itemName = driver->unique(QLatin1String("__item"));        refreshOut << "\n";        refreshOut << option.indent << "Q3ListViewItem *" << itemName << " = new Q3ListViewItem(" << varName << ");\n";        int textCount = 0, pixCount = 0;        QList<DomProperty*> properties = item->elementProperty();        for (int i=0; i<properties.size(); ++i) {            DomProperty *p = properties.at(i);            if (p->attributeName() == QLatin1String("text"))                refreshOut << option.indent << itemName << "->setText(" << textCount++ << ", "                           << trCall(p->elementString()) << ");\n";            if (p->attributeName() == QLatin1String("pixmap"))                refreshOut << option.indent << itemName << "->setPixmap(" << pixCount++ << ", "                           << pixCall(p) << ");\n";        }        if (item->elementItem().size()) {            refreshOut << option.indent << itemName << "->setOpen(true);\n";            initializeQ3ListViewItems(className, itemName, item->elementItem());        }    }}void WriteInitialization::initializeTreeWidgetItems(const QString &className, const QString &varName, const QList<DomItem *> &items){    if (items.isEmpty())        return;    // items    for (int i=0; i<items.size(); ++i) {        DomItem *item = items.at(i);        QString itemName = driver->unique(QLatin1String("__item"));        refreshOut << "\n";        refreshOut << option.indent << "QTreeWidgetItem *" << itemName << " = new QTreeWidgetItem(" << varName << ");\n";        int textCount = 0;        QList<DomProperty*> properties = item->elementProperty();        for (int i=0; i<properties.size(); ++i) {            DomProperty *p = properties.at(i);            if (p->attributeName() == QLatin1String("text"))                refreshOut << option.indent << itemName << "->setText(" << textCount++ << ", "                           << trCall(p->elementString()) << ");\n";            if (p->attributeName() == QLatin1String("icon") && textCount > 0)                refreshOut << option.indent << itemName << "->setIcon(" << textCount - 1 << ", "                           << pixCall(p) << ");\n";        }        if (item->elementItem().size())            initializeTreeWidgetItems(className, itemName, item->elementItem());    }}void WriteInitialization::initializeQ3Table(DomWidget *w){    QString varName = driver->findOrInsertWidget(w);    QString className = w->attributeClass();    // columns    QList<DomColumn*> columns = w->elementColumn();    for (int i=0; i<columns.size(); ++i) {        DomColumn *column = columns.at(i);        QHash<QString, DomProperty*> properties = propertyMap(column->elementProperty());        DomProperty *text = properties.value(QLatin1String("text"));        DomProperty *pixmap = properties.value(QLatin1String("pixmap"));        refreshOut << option.indent << varName << "->horizontalHeader()->setLabel(" << i << ", ";        if (pixmap) {            refreshOut << pixCall(pixmap) << ", ";        }        refreshOut << trCall(text->elementString()) << ");\n";    }    // rows    QList<DomRow*> rows = w->elementRow();    for (int i=0; i<rows.size(); ++i) {        DomRow *row = rows.at(i);        QHash<QString, DomProperty*> properties = propertyMap(row->elementProperty());        DomProperty *text = properties.value(QLatin1String("text"));        DomProperty *pixmap = properties.value(QLatin1String("pixmap"));        refreshOut << option.indent << varName << "->verticalHeader()->setLabel(" << i << ", ";        if (pixmap) {            refreshOut << pixCall(pixmap) << ", ";        }        refreshOut << trCall(text->elementString()) << ");\n";    }    //initializeQ3TableItems(className, varName, w->elementItem());}void WriteInitialization::initializeQ3TableItems(const QString &className, const QString &varName, const QList<DomItem *> &items){    Q_UNUSED(className);    Q_UNUSED(varName);    Q_UNUSED(items);}QString WriteInitialization::pixCall(DomProperty *p) const{    Q_ASSERT(p->kind() == DomProperty::IconSet || p->kind() == DomProperty::Pixmap);    QString type, s;

⌨️ 快捷键说明

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