📄 writeinitialization.cpp
字号:
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 + -