// neuratemplatemanager.cpp #include "neuraltemplatemanager.h" #include "qdebug.h" #include NeuralTemplateManager::NeuralTemplateManager(QObject *parent) : QObject(parent) { } bool NeuralTemplateManager::addTemplate(const QString &name, const QString &templateText) { if (name.isEmpty()) { qWarning() << "Имя шаблона не может быть пустым"; return false; } if (containsTemplate(name)) { qWarning() << "Шаблон с именем" << name << "уже существует"; return false; } templates.append(NeuralTemplate(name, templateText)); // emit templateAdded(name, templateText); return true; } QString NeuralTemplateManager::getTemplateText(const QString &name) const { int index = findTemplateIndex(name); if (index == -1) { return QString(); } return templates[index].templateText; } bool NeuralTemplateManager::removeTemplate(const QString& name) { int index = findTemplateIndex(name); if (index == -1) { qWarning() << "Шаблон с именем" << name << "не найден"; return false; } templates.remove(index); // emit templateRemoved(name); return true; } bool NeuralTemplateManager::updateTemplate(const QString& oldName, const QString& newName, const QString& newTemplateText) { int index = findTemplateIndex(oldName); if (index == -1) { qWarning() << "Шаблон с именем" << oldName << "не найден"; return false; } // Проверяем, не используется ли новое имя другим шаблоном if (oldName != newName && containsTemplate(newName)) { qWarning() << "Шаблон с именем" << newName << "уже существует"; return false; } templates[index].name = newName; templates[index].templateText = newTemplateText; // emit templateUpdated(oldName, newName, newTemplateText); return true; } int NeuralTemplateManager::findTemplateIndex(const QString& name) const { for (int i = 0; i < templates.size(); ++i) { if (templates[i].name == name) { return i; } } return -1; } bool NeuralTemplateManager::containsTemplate(const QString& name) const { return findTemplateIndex(name) != -1; } void NeuralTemplateManager::clear() { templates.clear(); } void NeuralTemplateManager::loadFromTableWidget(QTableWidget *table) { clear(); if (!table) return; for (int row = 0; row < table->rowCount(); ++row) { QTableWidgetItem *nameItem = table->item(row, 0); QTableWidgetItem *templateItem = table->item(row, 1); if (nameItem && templateItem) { QString name = nameItem->text().trimmed(); QString templateText = templateItem->text().trimmed(); if (!name.isEmpty() && !templateText.isEmpty()) { addTemplate(name, templateText); } } } }