feat: add version container

This commit is contained in:
semenov
2024-12-27 10:43:26 +03:00
parent 8d748507b5
commit fc7f311d1e
85 changed files with 1875 additions and 632 deletions

View File

@@ -2,18 +2,22 @@
#include "ui_versionselectwidget.h"
#include "ui_versionselectwidget.h"
#include <QMessageBox>
VersionSelectWidget::VersionSelectWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::VersionSelectWidget)
ui(new Ui::VersionSelectWidget),
selectedVersion(nullptr)
{
ui->setupUi(this);
}
void VersionSelectWidget::initialize(SendSystem *sendSystem)
void VersionSelectWidget::initialize(SendSystem *sendSystem,VersionContainer *versionContainer)
{
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);
this->versionContainer = versionContainer;
hide();
}
@@ -22,6 +26,7 @@ void VersionSelectWidget::fillView(QList<StreamingVersionData *> *serverData)
show();
ui->verListView->clear();
serverDataList = serverData;
ui->verValue->setText(versionContainer->getServerVersionData()->getViewName());
foreach(StreamingVersionData *data,*serverData)
{
@@ -29,11 +34,6 @@ void VersionSelectWidget::fillView(QList<StreamingVersionData *> *serverData)
}
}
void VersionSelectWidget::fillCurrentVersionName(QString versionName)
{
ui->verValue->setText(versionName);
}
void VersionSelectWidget::on_verListView_itemDoubleClicked(QListWidgetItem *item)
{
foreach(StreamingVersionData *data,*serverDataList)
@@ -59,22 +59,67 @@ void VersionSelectWidget::on_createDuplicateButton_clicked()
void VersionSelectWidget::sendCopyEmit(QString newName)
{
QString result = selectedVersion->getViewName() + ";" + newName;
if (selectedVersion != nullptr)
if (selectedVersion == nullptr)
{
showWarning(tr("Версия не выбрана"));
return;
}
quint16 matchIndex = ui->verListView->findItems(newName,Qt::MatchFlag::MatchFixedString).length();
if (matchIndex > 0)
{
showWarning(tr("Версия с таким именем уже существует"));
return;
}
versionContainer->setLocalVersionData(selectedVersion);
emit sigSendCopyVersion(result);
}
void VersionSelectWidget::on_DeleteVersionButton_clicked()
{
if (selectedVersion != nullptr)
if (selectedVersion == nullptr)
{
showWarning(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){
emit sigSendSwitchVersion(selectedVersion);
if (selectedVersion == nullptr)
{
showWarning(tr("Версия не выбрана"));
return;
}
versionContainer->setServerVersonData(selectedVersion);
ui->verValue->setText(selectedVersion->getViewName());
emit sigSendSwitchVersion(selectedVersion);
}
void VersionSelectWidget::showWarning(QString text)
{
QMessageBox warning;
warning.setText(text);
warning.setIcon(QMessageBox::Warning);
warning.setWindowTitle(tr("Ошибка"));
warning.exec();
}
VersionSelectWidget::~VersionSelectWidget()