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

📄 writeinitialization.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
    if (p->kind() == DomProperty::IconSet) {        type = QLatin1String("QIcon");        s = p->elementIconSet()->text();    } else {        type = QLatin1String("QPixmap");        s = p->elementPixmap()->text();    }    if (s.isEmpty())        return type + QLatin1String("()");    else if (findImage(s) != 0)        return QLatin1String("icon(") + s + QLatin1String("_ID)");    QString pixFunc = uic->pixmapFunction();    if (pixFunc.isEmpty())        pixFunc = QLatin1String("QString::fromUtf8");    return type + QLatin1String("(") + pixFunc + QLatin1String("(") + fixString(s, option.indent) + QLatin1String(")") + QLatin1String(")");}void WriteInitialization::initializeComboBox(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("icon"));        if (!(text || pixmap))            continue;        refreshOut << option.indent << varName << "->addItem(";        if (pixmap != 0) {            refreshOut << pixCall(pixmap);            if (text)                refreshOut << ", ";        }        refreshOut << trCall(text->elementString()) << ");\n";    }}void WriteInitialization::initializeListWidget(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";    // 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 << "QListWidgetItem *" << itemName << " = new QListWidgetItem(" << varName << ");\n";        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(" << trCall(p->elementString()) << ");\n";            if (p->attributeName() == QLatin1String("icon"))                refreshOut << option.indent << itemName << "->setIcon(" << pixCall(p) << ");\n";        }    }}void WriteInitialization::initializeTreeWidget(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 *icon = properties.value(QLatin1String("icon"));        QString txt = trCall(text->elementString());        refreshOut << option.indent << varName << "->headerItem()->setText(" << i << ", " << txt << ");\n";        if (icon != 0 && icon->elementIconSet()) {            output << option.indent << varName << "->headerItem()->setIcon("                   << i << ", " << pixCall(icon) << ");\n";        }    }    if (w->elementItem().size()) {        refreshOut << option.indent << varName << "->clear();\n";        initializeTreeWidgetItems(className, varName, w->elementItem());    }}void WriteInitialization::initializeTableWidget(DomWidget *w){    QString varName = driver->findOrInsertWidget(w);    QString className = w->attributeClass();    refreshOut << option.indent << varName << "->clear();\n";    // columns    QList<DomColumn *> columns = w->elementColumn();    refreshOut << option.indent << varName << "->setColumnCount("                << columns.size() << ");\n";    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 *icon = properties.value(QLatin1String("icon"));        if (text || icon) {            QString itemName = driver->unique(QLatin1String("__colItem"));            refreshOut << "\n";            refreshOut << option.indent << "QTableWidgetItem *"                           << itemName << " = new QTableWidgetItem();\n";            if (text && text->attributeName() == QLatin1String("text"))                refreshOut << option.indent << itemName << "->setText("                           << trCall(text->elementString()) << ");\n";            if (icon && icon->attributeName() == QLatin1String("icon"))                refreshOut << option.indent << itemName << "->setIcon("                           << pixCall(icon) << ");\n";            refreshOut << option.indent << varName << "->setHorizontalHeaderItem("                           << i << ", " << itemName << ");\n";        }    }    // rows    QList<DomRow *> rows = w->elementRow();    refreshOut << option.indent << varName << "->setRowCount("                << rows.size() << ");\n";    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 *icon = properties.value(QLatin1String("icon"));        if (text || icon) {            QString itemName = driver->unique(QLatin1String("__rowItem"));            refreshOut << "\n";            refreshOut << option.indent << "QTableWidgetItem *"                           << itemName << " = new QTableWidgetItem();\n";            if (text && text->attributeName() == QLatin1String("text"))                refreshOut << option.indent << itemName << "->setText("                           << trCall(text->elementString()) << ");\n";            if (icon && icon->attributeName() == QLatin1String("icon"))                refreshOut << option.indent << itemName << "->setIcon("                           << pixCall(icon) << ");\n";            refreshOut << option.indent << varName << "->setVerticalHeaderItem("                           << i << ", " << itemName << ");\n";        }    }    // items    QList<DomItem *> items = w->elementItem();    for (int i = 0; i < items.size(); ++i) {        DomItem *item = items.at(i);        if (item->hasAttributeRow() && item->hasAttributeColumn()) {            QHash<QString, DomProperty*> properties = propertyMap(item->elementProperty());            DomProperty *text = properties.value(QLatin1String("text"));            DomProperty *icon = properties.value(QLatin1String("icon"));            if (text || icon) {                QString itemName = driver->unique(QLatin1String("__item"));                refreshOut << "\n";                refreshOut << option.indent << "QTableWidgetItem *"                    << itemName << " = new QTableWidgetItem();\n";                if (text && text->attributeName() == QLatin1String("text"))                    refreshOut << option.indent << itemName << "->setText("                        << trCall(text->elementString()) << ");\n";                if (icon && icon->attributeName() == QLatin1String("icon"))                    refreshOut << option.indent << itemName << "->setIcon("                        << pixCall(icon) << ");\n";                refreshOut << option.indent << varName << "->setItem("                    << item->attributeRow() << ", "                    << item->attributeColumn() << ", "                    << itemName << ");\n";            }        }    }}QString WriteInitialization::trCall(const QString &str, const QString &commentHint) const{    QString result;    QString comment = commentHint.isEmpty() ? QString::fromUtf8("0") : fixString(commentHint, option.indent);    if (option.translateFunction.isEmpty()) {        result = QLatin1String("QApplication::translate(\"");        result += m_generatedClass;        result += QLatin1String("\"");        result += QLatin1String(", ");    } else {        result = option.translateFunction + QLatin1String("(");    }    result += fixString(str, option.indent);    result += QLatin1String(", ");    result += comment;    if (option.translateFunction.isEmpty()) {        result += QLatin1String(", ");        result += QLatin1String("QApplication::UnicodeUTF8");    }    result += QLatin1String(")");    return result;}void WriteInitialization::initializeQ3SqlDataTable(DomWidget *w){    QHash<QString, DomProperty*> properties = propertyMap(w->elementProperty());    DomProperty *frameworkCode = properties.value(QLatin1String("frameworkCode"), 0);    if (frameworkCode && toBool(frameworkCode->elementBool()) == false)        return;    QString connection;    QString table;    QString field;    DomProperty *db = properties.value(QLatin1String("database"), 0);    if (db && db->elementStringList()) {        QStringList info = db->elementStringList()->elementString();        connection = info.size() > 0 ? info.at(0) : QString();        table = info.size() > 1 ? info.at(1) : QString();        field = info.size() > 2 ? info.at(2) : QString();    }    if (table.isEmpty() || connection.isEmpty()) {        fprintf(stderr, "invalid database connection\n");        return;    }    QString varName = driver->findOrInsertWidget(w);    output << option.indent << "if (!" << varName << "->sqlCursor()) {\n";    output << option.indent << option.indent << varName << "->setSqlCursor(";    if (connection == QLatin1String("(default)")) {        output << "new Q3SqlCursor(" << fixString(table, option.indent) << "), false, true);\n";    } else {        output << "new Q3SqlCursor(" << fixString(table, option.indent) << ", true, " << connection << "Connection" << "), false, true);\n";    }    output << option.indent << option.indent << varName << "->refresh(Q3DataTable::RefreshAll);\n";    output << option.indent << "}\n";}void WriteInitialization::initializeQ3SqlDataBrowser(DomWidget *w){    QHash<QString, DomProperty*> properties = propertyMap(w->elementProperty());    DomProperty *frameworkCode = properties.value(QLatin1String("frameworkCode"), 0);    if (frameworkCode && toBool(frameworkCode->elementBool()) == false)        return;    QString connection;    QString table;    QString field;    DomProperty *db = properties.value(QLatin1String("database"), 0);    if (db && db->elementStringList()) {        QStringList info = db->elementStringList()->elementString();        connection = info.size() > 0 ? info.at(0) : QString();        table = info.size() > 1 ? info.at(1) : QString();        field = info.size() > 2 ? info.at(2) : QString();    }    if (table.isEmpty() || connection.isEmpty()) {        fprintf(stderr, "invalid database connection\n");        return;    }    QString varName = driver->findOrInsertWidget(w);    output << option.indent << "if (!" << varName << "->sqlCursor()) {\n";    output << option.indent << option.indent << varName << "->setSqlCursor(";    if (connection == QLatin1String("(default)")) {        output << "new Q3SqlCursor(" << fixString(table, option.indent) << "), true);\n";    } else {        output << "new Q3SqlCursor(" << fixString(table, option.indent) << ", true, " << connection << "Connection" << "), false, true);\n";    }    output << option.indent << option.indent << varName << "->refresh();\n";    output << option.indent << "}\n";}void WriteInitialization::initializeMenu(DomWidget *w, const QString &/*parentWidget*/){    QString menuName = driver->findOrInsertWidget(w);    QString menuAction = menuName + QLatin1String("Action");    DomAction *action = driver->actionByName(menuAction);    if (action && action->hasAttributeMenu()) {        output << option.indent << menuAction << " = " << menuName << "->menuAction();\n";    }}QString WriteInitialization::trCall(DomString *str) const{    return trCall(toString(str), str->attributeComment());}bool WriteInitialization::isValidObject(const QString &name) const{    return m_registeredWidgets.contains(name)        || m_registeredActions.contains(name);}QString WriteInitialization::findDeclaration(const QString &name){    QString normalized = Driver::normalizedName(name);    if (DomWidget *widget = driver->widgetByName(normalized))        return driver->findOrInsertWidget(widget);    else if (DomAction *action = driver->actionByName(normalized))        return driver->findOrInsertAction(action);    return QString();}void WriteInitialization::acceptConnection(DomConnection *connection){    QString sender = findDeclaration(connection->elementSender());    QString receiver = findDeclaration(connection->elementReceiver());    if (sender.isEmpty() || receiver.isEmpty())        return;    output << option.indent << "QObject::connect("        << sender        << ", "        << "SIGNAL(" << connection->elementSignal() << ")"        << ", "        << receiver        << ", "        << "SLOT(" << connection->elementSlot() << ")"        << ");\n";}DomImage *WriteInitialization::findImage(const QString &name) const{    return m_registeredImages.value(name);}DomWidget *WriteInitialization::findWidget(const QString &widgetClass){    for (int i = m_widgetChain.count() - 1; i >= 0; --i) {        DomWidget *widget = m_widgetChain.at(i);        if (widget && uic->customWidgetsInfo()->extends(widget->attributeClass(), widgetClass))            return widget;    }    return 0;}void WriteInitialization::acceptImage(DomImage *image){    if (!image->hasAttributeName())        return;    m_registeredImages.insert(image->attributeName(), image);}

⌨️ 快捷键说明

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