void ClassAnalyzer::postProcessBaseClasses()
{
    // append namespace prefixes if needed
    for (auto it = m_classes.begin(); it != m_classes.end(); it++)
    {
        if (!it->baseClasses().isEmpty())
        {
            QStringList baseClasses = it->baseClasses();

            for (auto it2 = baseClasses.begin(); it2 != baseClasses.end(); it2++)
            {
                QStringList splittedBaseClassName = it2->split("::");

                for (auto it3 = m_classes.begin(); it3 != m_classes.end(); it3++)
                {
                    QStringList splittedClassName = it3->name().split("::");

                    // check from back to front
                    if (splittedClassName.last() == splittedBaseClassName.last())
                    {
                        QString fullName = splittedClassName.last();
                        splittedClassName.removeLast();

                        QStringList splitted = it->name().split("::");

                        while(!splitted.isEmpty())
                        {
                            splitted.removeLast();

                            if (splittedClassName == splitted)
                            {
                                for (auto it4 = splitted.rbegin(); it4 != splitted.rend(); it4++)
                                {
                                    fullName.prepend("::");
                                    fullName.prepend(*it4);
                                }

                                break;
                            }
                        }

                        *it2 = fullName;
                    }
                }
            }

            it->setBaseClasses(baseClasses);
        }
    }
}
void ClassAnalyzer::printAllClasses()
{
    for (auto it = m_classes.begin(); it != m_classes.end(); it++)
    {
        qDebug() << it->header() << it->name() << it->baseClasses();
    }

    qDebug() << "found" << m_classes.size() << "classes";
}
Beispiel #3
0
QWizard *GuiAppWizard::createWizardDialog(QWidget *parent,
                                          const QString &defaultPath,
                                          const WizardPageList &extensionPages) const
{
    GuiAppWizardDialog *dialog = new GuiAppWizardDialog(name(), icon(), extensionPages, parent);
    dialog->setPath(defaultPath.isEmpty() ? Core::Utils::PathChooser::homePath() : defaultPath);
    // Order! suffixes first to generate files correctly
    dialog->setSuffixes(headerSuffix(), sourceSuffix(), formSuffix());
    dialog->setBaseClasses(baseClasses());
    return dialog;
}
Beispiel #4
0
QWizard *GuiAppWizard::createWizardDialog(QWidget *parent,
                                          const QString &defaultPath,
                                          const WizardPageList &extensionPages) const
{
    GuiAppWizardDialog *dialog = new GuiAppWizardDialog(displayName(), icon(), extensionPages,
                                                        showModulesPageForApplications(),
                                                        m_createMobileProject,
                                                        parent);
    dialog->setPath(defaultPath);
    dialog->setProjectName(GuiAppWizardDialog::uniqueProjectName(defaultPath));
    // Order! suffixes first to generate files correctly
    dialog->setLowerCaseFiles(QtWizard::lowerCaseFiles());
    dialog->setSuffixes(headerSuffix(), sourceSuffix(), formSuffix());
    dialog->setBaseClasses(baseClasses());
    return dialog;
}