#include "outitemmodel.h" #include "view/step/models/outitemwidget.h" #include "model/step/tools.h" OUTItemModel::OUTItemModel() : AbstractOutModel() { _widget = new OUTItemWidget(this); _status = AbstractOutModel::S_Added; setData(QVariant(QColor(Qt::black)),Qt::ForegroundRole); setText(getPrefixedAlias()); } void OUTItemModel::init(QString itemType, QString temp, QString alias, QString name, QString desc) { ((OUTItemWidget*)_widget)->init(itemType, temp, alias, name, desc); _status = AbstractOutModel::S_Copy; setData(QVariant(QColor(Qt::blue)),Qt::ForegroundRole); setText(getPrefixedAlias() + " (copie)"); } void OUTItemModel::init(INItemModel *inModel) { init(inModel->getItemType(), inModel->getItemTemplate(), inModel->getAlias(), inModel->getDisplayableName(), inModel->getDescription()); } QString OUTItemModel::getName() { if (!isCopyResult()) return "_outItem" + getAlias(); else return "_inItem" + getAlias(); } bool OUTItemModel::isCopyResult() { return (_status != AbstractOutModel::S_Added); } QString OUTItemModel::getItemType() { return ((OUTItemWidget*) _widget)->getItemType(); } QString OUTItemModel::getItemTemplate() { return ((OUTItemWidget*) _widget)->getTemplate(); } QString OUTItemModel::getItemTypeWithTemplate() { return ((OUTItemWidget*) _widget)->getItemTypeWithTemplate(); } QString OUTItemModel::getItemInCode(int indent, QString name) { AbstractItemType* itemType = Tools::ITEMTYPE.value(getItemType(), NULL); if (itemType == NULL) {return "";} QString result = itemType->getInCode(indent, name); return result; } QString OUTItemModel::getItemOutCode(int indent, QString name, QString modelName, QString resultName) { AbstractItemType* itemType = Tools::ITEMTYPE.value(getItemType(), NULL); if (itemType == NULL) {return "";} QString result = itemType->getOutCode(indent, name, modelName, resultName); return result; } void OUTItemModel::getIncludes(QSet &list) { AbstractItemType* itemType = Tools::ITEMTYPE.value(getItemType(), NULL); if (itemType != NULL) { list.insert(itemType->getInclude()); } } QString OUTItemModel::getModelDoc() { QString result = ""; result = " - " + getItemTypeWithTemplate() + "%1 \\n"; result = result.arg(isCopyResult()?" (copie)":""); result += "\n"; return result; } QString OUTItemModel::getModelDeclaration() { QString result = ""; if (!isCopyResult()) result = Tools::getIndentation(1) + "CT_HandleOutSingularItem<" + getItemTypeWithTemplate() + "> " + getName() + "; /*!< " + ((AbstractOutWidget*) _widget)->getDescription() + " */"; if (result != "") result += "\n"; return result; } QString OUTItemModel::getCreateOutResultModelListProtectedContent(QString resultModelName, bool rootGroup) { Q_UNUSED(rootGroup); QString result = ""; if (getStatus() == S_Added) { result = "%1manager.addItem(%2, %3, %4, %5);\n"; result = result.arg(Tools::getIndentation(1), resultModelName, getName(), Tools::trs(getDisplayableName()), Tools::trs(getDescription())); } else if (getStatus() == S_DeletedCopy) { result = "%1manager.removeItem(%2, %3);\n"; result = result.arg(Tools::getIndentation(1), resultModelName, getName()); } return result; } QString OUTItemModel::getComputeContent(QString resultName, QString parentName, int indent, bool rootGroup) { Q_UNUSED(rootGroup); QString result = ""; if (getStatus() == S_Added) { QString itemCode = getItemOutCode(indent, "my"+getName(), getName(), "my"+resultName); result += itemCode; result += "%1my%2->addSingularItem(%3, my%3);\n"; result = result.arg(Tools::getIndentation(indent),parentName,getName()); } else if (getStatus() == S_Copy) { QString itemCode = getItemInCode(indent+1, getName()); result += "%1for (const %3* my%4 : my%5->singularItems(%4))\n" "%1{\n" "%2if (isStopped()) return;\n" "%2\n" "%6" "%1}\n"; result = result.arg(Tools::getIndentation(indent), Tools::getIndentation(indent+1), getItemTypeWithTemplate(), getName(), parentName, itemCode); } return result; }