TTW_Bot/neuraltemplatemanager.cpp

110 lines
3.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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);
}
}
}
}