#include "plugincreator.h" #include #include "model/step/tools.h" PluginCreator::PluginCreator(QString directory, QString name, QString code, bool exampleMode) : QObject() { _pluginDirectory = directory; _pluginName = name; _pluginCode = code; _exampleMode = exampleMode; _proName = QString("plugin%1" ).arg(_pluginName.toLower()); _entryName = QString("%1_PluginEntry" ).arg(_pluginCode); _managerName = QString("%1_PluginManager").arg(_pluginCode); } QString PluginCreator::createPluginFiles() { QString logMessage = ""; QDir().mkpath(_pluginDirectory); QDir(_pluginDirectory).mkdir("languages"); if (!createPluginProject_pro()) logMessage.append(tr("Impossible de créer le fichier projet (.pro)\n" )); if (!createPluginEntry_h ()) logMessage.append(tr("Impossible de créer le fichier PluginEntry (.h)\n" )); if (!createPluginEntry_cpp ()) logMessage.append(tr("Impossible de créer le fichier PluginEntry (.cpp)\n" )); if (!createPluginManager_h ()) logMessage.append(tr("Impossible de créer le fichier PluginManager (.h)\n" )); if (!createPluginManager_cpp()) logMessage.append(tr("Impossible de créer le fichier PluginManager (.cpp)\n")); return logMessage; } bool PluginCreator::createPluginProject_pro() { QString input = ":/templates/PluginProject_pro.txt"; QString output = QString("%1/%2.pro").arg(_pluginDirectory, _proName); QList > *tags = new QList >(); tags->append(QPair("{{NAME}}" ,_pluginName.toLower())); tags->append(QPair("{{CODE_LOWER}}",_pluginCode.toLower())); return Tools::parseTemplate(input, output, tags, _exampleMode); } bool PluginCreator::createPluginEntry_h() { QString input = ":/templates/PluginEntry_h.txt"; QString output = QString("%1/%2.h").arg(_pluginDirectory, _entryName.toLower()); QList > *tags = new QList >(); tags->append(QPair("{{CODE_UPPER}}",_pluginCode.toUpper())); tags->append(QPair("{{CODE_LOWER}}",_pluginCode.toLower())); return Tools::parseTemplate(input, output, tags, _exampleMode); } bool PluginCreator::createPluginEntry_cpp() { QString input = ":/templates/PluginEntry_cpp.txt"; QString output = QString("%1/%2.cpp").arg(_pluginDirectory, _entryName.toLower()); QList > *tags = new QList >(); tags->append(QPair("{{CODE_UPPER}}",_pluginCode.toUpper())); tags->append(QPair("{{CODE_LOWER}}",_pluginCode.toLower())); tags->append(QPair("{{VERSION}}" ,"1.0" )); // TODO: Ask for the plugin version in dialog? return Tools::parseTemplate(input, output, tags, _exampleMode); } bool PluginCreator::createPluginManager_h() { QString input = ":/templates/PluginManager_h.txt"; QString output = QString("%1/%2.h").arg(_pluginDirectory, _managerName.toLower()); QList > *tags = new QList >(); tags->append(QPair("{{CODE_UPPER}}",_pluginCode.toUpper())); return Tools::parseTemplate(input, output, tags, _exampleMode); } bool PluginCreator::createPluginManager_cpp() { QString input = ":/templates/PluginManager_cpp.txt"; QString output = QString("%1/%2.cpp").arg(_pluginDirectory, _managerName.toLower()); QList > *tags = new QList >(); tags->append(QPair("{{CODE_UPPER}}",_pluginCode.toUpper())); tags->append(QPair("{{CODE_LOWER}}",_pluginCode.toLower())); tags->append(QPair("{{URL}}" ,"" )); // TODO: Ask for the plugin URL in dialog? return Tools::parseTemplate(input, output, tags, _exampleMode); }