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"; }
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; }
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; }