110 lines
3.0 KiB
C++
110 lines
3.0 KiB
C++
// neuratemplatemanager.cpp
|
||
#include "neuraltemplatemanager.h"
|
||
#include "qdebug.h"
|
||
#include <QTableWidget>
|
||
|
||
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);
|
||
}
|
||
}
|
||
}
|
||
}
|