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

📄 writedeclaration.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the tools applications of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "writedeclaration.h"#include "writeicondeclaration.h"#include "writeinitialization.h"#include "writeiconinitialization.h"#include "driver.h"#include "ui4.h"#include "uic.h"#include "databaseinfo.h"#include "customwidgetsinfo.h"#include <QTextStream>WriteDeclaration::WriteDeclaration(Uic *uic)    : driver(uic->driver()), output(uic->output()), option(uic->option()){    this->uic = uic;}void WriteDeclaration::acceptUI(DomUI *node){    QString qualifiedClassName = node->elementClass() + option.postfix;    QString className = qualifiedClassName;    QString varName = driver->findOrInsertWidget(node->elementWidget());    QString widgetClassName = node->elementWidget()->attributeClass();    QString exportMacro = node->elementExportMacro();    if (!exportMacro.isEmpty())        exportMacro.append(QLatin1Char(' '));    QStringList nsList = qualifiedClassName.split(QLatin1String("::"));    if (nsList.count()) {        className = nsList.last();        nsList.removeLast();    }    QListIterator<QString> it(nsList);    while (it.hasNext()) {        QString ns = it.next();        if (ns.isEmpty())            continue;        output << "namespace " << ns << " {\n";    }    if (nsList.count())        output << "\n";    output << "class " << exportMacro << option.prefix << className << "\n"           << "{\n"           << "public:\n";    QStringList connections = uic->databaseInfo()->connections();    for (int i=0; i<connections.size(); ++i) {        QString connection = connections.at(i);        if (connection == QLatin1String("(default)"))            continue;        output << option.indent << "QSqlDatabase " << connection << "Connection;\n";    }    TreeWalker::acceptWidget(node->elementWidget());    output << "\n";    WriteInitialization(uic).acceptUI(node);    if (node->elementImages()) {        output << "\n"            << "protected:\n"            << option.indent << "enum IconID\n"            << option.indent << "{\n";        WriteIconDeclaration(uic).acceptUI(node);        output << option.indent << option.indent << "unknown_ID\n"            << option.indent << "};\n";        WriteIconInitialization(uic).acceptUI(node);    }    output << "};\n\n";    it.toBack();    while (it.hasPrevious()) {        QString ns = it.previous();        if (ns.isEmpty())            continue;        output << "} // namespace " << ns << "\n";    }    if (nsList.count())        output << "\n";    if (option.generateNamespace && !option.prefix.isEmpty()) {        nsList.append(QLatin1String("Ui"));        QListIterator<QString> it(nsList);        while (it.hasNext()) {            QString ns = it.next();            if (ns.isEmpty())                continue;            output << "namespace " << ns << " {\n";        }        output << option.indent << "class " << exportMacro << className << ": public " << option.prefix << className << " {};\n";        it.toBack();        while (it.hasPrevious()) {            QString ns = it.previous();            if (ns.isEmpty())                continue;            output << "} // namespace " << ns << "\n";        }        if (nsList.count())            output << "\n";    }}void WriteDeclaration::acceptWidget(DomWidget *node){    QString className = QLatin1String("QWidget");    if (node->hasAttributeClass())        className = node->attributeClass();    output << option.indent << uic->customWidgetsInfo()->realClassName(className) << " *" << driver->findOrInsertWidget(node) << ";\n";    TreeWalker::acceptWidget(node);}void WriteDeclaration::acceptLayout(DomLayout *node){    QString className = QLatin1String("QLayout");    if (node->hasAttributeClass())        className = node->attributeClass();    output << option.indent << className << " *" << driver->findOrInsertLayout(node) << ";\n";    TreeWalker::acceptLayout(node);}void WriteDeclaration::acceptSpacer(DomSpacer *node){    output << option.indent << "QSpacerItem *" << driver->findOrInsertSpacer(node) << ";\n";    TreeWalker::acceptSpacer(node);}void WriteDeclaration::acceptActionGroup(DomActionGroup *node){    output << option.indent << "QActionGroup *" << driver->findOrInsertActionGroup(node) << ";\n";    TreeWalker::acceptActionGroup(node);}void WriteDeclaration::acceptAction(DomAction *node){    output << option.indent << "QAction *" << driver->findOrInsertAction(node) << ";\n";    TreeWalker::acceptAction(node);}

⌨️ 快捷键说明

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