Files
RRJClient/Widgets/versionselectwidget.cpp
2025-01-20 10:59:16 +03:00

124 lines
3.6 KiB
C++
Raw 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.
#include "versionselectwidget.h"
#include "ui_versionselectwidget.h"
#include "ui_versionselectwidget.h"
#include <QMessageBox>
VersionSelectWidget::VersionSelectWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::VersionSelectWidget),
selectedVersion(nullptr)
{
ui->setupUi(this);
}
void VersionSelectWidget::initialize(SendSystem *sendSystem,VersionContainer *versionContainer,NotifyController *notifyController)
{
connect(this,&VersionSelectWidget::sigSendSwitchVersion,sendSystem,&SendSystem::sendChangeVersion,Qt::AutoConnection);
connect(this,&VersionSelectWidget::sigSendCopyVersion,sendSystem,&SendSystem::sendCopyVersion,Qt::AutoConnection);
connect(this,&VersionSelectWidget::sigSendDeleteVersion,sendSystem,&SendSystem::sendDeleteVersion,Qt::AutoConnection);
connect(this,&VersionSelectWidget::sigSendNotify,notifyController,&NotifyController::showWarning,Qt::AutoConnection);
this->versionContainer = versionContainer;
hide();
}
void VersionSelectWidget::fillView(QList<StreamingVersionData *> *serverData)
{
show();
ui->verListView->clear();
serverDataList = serverData;
ui->verValue->setText(versionContainer->getServerVersionData()->getViewName());
foreach(StreamingVersionData *data,*serverData)
{
ui->verListView->addItem(data->getViewName());
}
}
void VersionSelectWidget::on_verListView_itemDoubleClicked(QListWidgetItem *item)
{
foreach(StreamingVersionData *data,*serverDataList)
{
if(data->getViewName() == item->text())
{
QString info = "Имя версии: " + data->getViewName() + "\n";
info.append("Создан: " + data->getCreateData().toString());
ui->infoValue->setText(info);
selectedVersion = data;
}
}
}
void VersionSelectWidget::on_createDuplicateButton_clicked()
{
NewVersionWidget *newVersionWidget = new NewVersionWidget;
newVersionWidget->initialize(this,selectedVersion->getViewName());
newVersionWidget->show();
}
void VersionSelectWidget::sendCopyEmit(QString newName)
{
QString result = selectedVersion->getViewName() + ";" + newName;
if (selectedVersion == nullptr)
{
sigSendNotify(tr("Версия не выбрана"));
return;
}
quint16 matchIndex = ui->verListView->findItems(newName,Qt::MatchFlag::MatchFixedString).length();
if (matchIndex > 0)
{
sigSendNotify(tr("Версия с таким именем уже существует"));
return;
}
versionContainer->setLocalVersionData(selectedVersion);
emit sigSendCopyVersion(result);
}
void VersionSelectWidget::on_DeleteVersionButton_clicked()
{
if (selectedVersion == nullptr)
{
sigSendNotify(tr("Версия не выбрана"));
return;
}
// if (selectedVersion->getViewName() == baseNamePackage)
// {
// showWarning(tr("Нельзя удалить базовый пакет"));
// return;
// }
// if (selectedVersion->getViewName() == versionContainer->getServerVersion())
// {
// showWarning(tr("Нельзя удалить активную версию"));
// return;
// }
emit sigSendDeleteVersion(selectedVersion);
}
void VersionSelectWidget::on_switchServerVersionButton_clicked()
{
if (selectedVersion == nullptr)
{
sigSendNotify(tr("Версия не выбрана"));
return;
}
versionContainer->setServerVersonData(selectedVersion);
ui->verValue->setText(selectedVersion->getViewName());
emit sigSendSwitchVersion(selectedVersion);
}
VersionSelectWidget::~VersionSelectWidget()
{
delete ui;
}