// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void PMFileGenerator::generateOutput() { // std::cout << "PMFileGenerator::generateOutput" << std::endl; if (doesGenerateOutput() == false) { return; } //Get text field values from widget QString pluginName = getPluginName(); QString pluginDir = getOutputDir(); if (pluginName.isEmpty() == true || pluginDir.isEmpty() == true) { return; } // QString classNameLowerCase = m_ClassName.toLower(); //Open file QFile rfile(getCodeTemplateResourcePath()); if ( rfile.open(QIODevice::ReadOnly | QIODevice::Text) ) { QTextStream in(&rfile); QString text = in.readAll(); text.replace("@PluginName@", pluginName); QFileInfo fi(m_FileName); QString className = fi.baseName(); text.replace("@ClassName@", className); text.replace("@MD_FILE_NAME@", m_FileName); text.replace("@ClassNameLowerCase@", className.toLower()); text.replace("@FilterGroup@", pluginName); text.replace("@FilterSubgroup@", pluginName); QString parentPath = getOutputDir() + QDir::separator() + getPathTemplate().replace("@PluginName@", getPluginName()); parentPath = QDir::toNativeSeparators(parentPath); QDir dir(parentPath); dir.mkpath(parentPath); parentPath = parentPath + QDir::separator() + m_FileName; //Write to file QFile f(parentPath); if ( f.open(QIODevice::WriteOnly | QIODevice::Text) ) { QTextStream out(&f); out << text; } } }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void PMFileGenerator::generateOutput() { // qDebug() << "PMFileGenerator::generateOutput" << "\n"; if (doesGenerateOutput() == false) { return; } //Get text feature values from widget QString pluginName = getPluginName(); QString pluginDir = getOutputDir(); if (pluginName.isEmpty() == true || pluginDir.isEmpty() == true) { return; } QString contents = getFileContents(QString()); if (contents.isEmpty() == false) { QString parentPath = getOutputDir() + QDir::separator() + getPathTemplate().replace("@PluginName@", getPluginName()); parentPath = QDir::toNativeSeparators(parentPath); QDir dir(parentPath); dir.mkpath(parentPath); parentPath = parentPath + QDir::separator() + m_FileName; //Write to file QFile f(parentPath); if ( f.open(QIODevice::WriteOnly | QIODevice::Text) ) { QTextStream out(&f); out << contents; } } }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void PMFileGenerator::generateOutputWithFilterNames(QSet<QString> names) { // qDebug() << "PMFileGenerator::generateOutput" << "\n"; if (doesGenerateOutput() == false) { return; } //Get text feature values from widget QString pluginName = getPluginName(); QString pluginDir = getOutputDir(); if (pluginName.isEmpty() == true || pluginDir.isEmpty() == true) { return; } // QString classNameLowerCase = m_ClassName.toLower(); //Open file QFile rfile(getCodeTemplateResourcePath()); if (rfile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&rfile); QString text = in.readAll(); text.replace("@PluginName@", pluginName); QFileInfo fi(m_FileName); QString className = fi.baseName(); text.replace("@ClassName@", className); text.replace("@MD_FILE_NAME@", m_FileName); text.replace("@ClassNameLowerCase@", className.toLower()); text.replace("@FilterGroup@", pluginName); text.replace("@FilterSubgroup@", pluginName); if (names.isEmpty() == false) { if (getFileName() == "TestFileLocations.h.in") { QString replaceStr = createReplacementString(TESTFILELOCATIONS, names); text.replace("@Namespaces@", replaceStr); // Replace token for Test/TestFileLocations.h.in file } else if (getFileName() == "CMakeLists.txt") { QString replaceStr = createReplacementString(CMAKELISTS, names); text.replace("@AddTestText@", replaceStr); // Replace token for Test/CMakeLists.txt file } } else { text.replace("\n @Namespaces@\n", ""); // Replace token for Test/TestFileLocations.h.in file text.replace("\n@AddTestText@\n", ""); // Replace token for Test/CMakeLists.txt file } QString parentPath = getOutputDir() + QDir::separator() + getPathTemplate().replace("@PluginName@", getPluginName()); parentPath = QDir::toNativeSeparators(parentPath); QDir dir(parentPath); dir.mkpath(parentPath); parentPath = parentPath + QDir::separator() + m_FileName; //Write to file QFile f(parentPath); if (f.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream out(&f); out << text; } } }