VersionSelectWidget refact

This commit is contained in:
2025-11-26 17:28:22 +03:00
parent 44b6299e59
commit 1c151d4aff
14 changed files with 221 additions and 102 deletions

View File

@@ -1,59 +1,87 @@
#include "versionselectwidget.h"
#include "ui_versionselectwidget.h"
#include "ui_versionselectwidget.h"
#include <QMessageBox>
#include <QResizeEvent>
VersionSelectWidget::VersionSelectWidget(QWidget *parent) :
QWidget(parent),
#include "versionselectwidget.h"
#include "specialmessagebox.h"
#include "ui_versionselectwidget.h"
VersionSelectWidget::VersionSelectWidget(ConnectorToServer* connectorToServer, QWidget *parent) :
QDialog(parent),
ui(new Ui::VersionSelectWidget),
connectorToServer(connectorToServer),
versionContainer(nullptr),
serverDataList(nullptr),
selectedVersion(nullptr),
waitAnimationWidget(nullptr),
recognizeSystem(nullptr)
authorName(""),
flGetVersion(false)
{
ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint);
setAttribute(Qt::WA_ShowModal,true);
}
ui->setupUi(this);
void VersionSelectWidget::initialize(SendSystem *sendSystem,VersionContainer *versionContainer,NotifyController *notifyController, RecognizeSystem *recognizeSystem)
{
this->recognizeSystem = recognizeSystem;
setMinimumSize(500, 300);
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
setWindowTitle(tr("Version control"));
versionContainer = new VersionContainer;
waitAnimationWidget = new WaitAnimationWidget;
QMovie *movie = new QMovie(":/resources/icons/762.gif");
waitAnimationWidget->setParent(this);
waitAnimationWidget->initialize(movie,this);
}
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);
VersionSelectWidget::~VersionSelectWidget()
{
waitAnimationWidget->hideWithStop();
connect(recognizeSystem,&RecognizeSystem::sigAnimationActivated,this,&VersionSelectWidget::slot_activateLoadAnimation,Qt::AutoConnection);
delete versionContainer;
this->versionContainer = versionContainer;
hide();
setWindowTitle(tr("Version control"));
delete waitAnimationWidget;
delete ui;
}
void VersionSelectWidget::initialize()
{
connect (connectorToServer, &ConnectorToServer::signal_SetVersion, this, &VersionSelectWidget::slot_SetVersion);
connect(connectorToServer, &ConnectorToServer::signal_AnimationActivated, this, &VersionSelectWidget::slot_activateLoadAnimation);
connect(connectorToServer, &ConnectorToServer::signal_showServerList, this, &VersionSelectWidget::slot_showServerList);
connect(this, &VersionSelectWidget::sigSendSwitchVersion, connectorToServer, &ConnectorToServer::slot_SendSwitchVersion);
connect(this, &VersionSelectWidget::sigSendCopyVersion, connectorToServer, &ConnectorToServer::slot_SendCopyVersion);
connect(this, &VersionSelectWidget::sigSendDeleteVersion, connectorToServer, &ConnectorToServer::slot_SendDeleteVersion);
connect(this, &VersionSelectWidget::signal_getVersion, connectorToServer, &ConnectorToServer::slot_getVersion);
emit signal_getVersion();
//connectorToServer->sendShowVersionSelect();
}
void VersionSelectWidget::fillView(QList<StreamingVersionData *> *serverData)
{
show();
ui->verListView->clear();
serverDataList = serverData;
ui->verValue->setText(versionContainer->getServerVersionData()->getViewName());
foreach(StreamingVersionData *data,*serverData)
for(StreamingVersionData *data : *serverData)
{
ui->verListView->addItem(data->getViewName());
}
ui->verListView->setCurrentRow(0);
ui->verListView->itemClicked(ui->verListView->item(0));
}
QString VersionSelectWidget::changableText(bool flag)
{
if(flag) return tr("Yes");
else return tr("No");
}
void VersionSelectWidget::on_verListView_itemClicked(QListWidgetItem *item)
{
foreach(StreamingVersionData *data,*serverDataList)
for(StreamingVersionData *data : *serverDataList)
{
if(data->getViewName() == item->text())
{
@@ -67,47 +95,42 @@ void VersionSelectWidget::on_verListView_itemClicked(QListWidgetItem *item)
}
}
QString VersionSelectWidget::changableText(bool flag)
{
if(flag) return tr("Yes");
else return tr("No");
}
void VersionSelectWidget::on_createDuplicateButton_clicked()
{
if (selectedVersion == nullptr)
{
emit sigSendNotify(tr("Version not selected"), this);
return;
}
DialogNewVersion *dlgNewVersion = new DialogNewVersion(this);
dlgNewVersion->initialize(this,selectedVersion->getViewName());
dlgNewVersion->exec();
delete dlgNewVersion;
}
void VersionSelectWidget::sendCopyEmit(QString newName)
{
QString result = selectedVersion->getViewName() + ";" + newName + ";" + authorName;
if (selectedVersion == nullptr)
{
emit sigSendNotify(tr("Version not selected"), this);
QString text = tr("Version not selected");
SpecialMessageBox(this, SpecialMessageBox::TypeSpecMsgBox::warningClose, text).exec();
return;
}
//versionContainer->setLocalVersionData(selectedVersion);
versionContainer->setLocalVersionData(selectedVersion);
emit sigSendCopyVersion(result);
}
void VersionSelectWidget::on_DeleteVersionButton_clicked()
void VersionSelectWidget::on_createDuplicateButton_clicked()
{
if (selectedVersion == nullptr)
{
emit sigSendNotify(tr("Version not selected"), this);
QString text = tr("Version not selected");
SpecialMessageBox(this, SpecialMessageBox::TypeSpecMsgBox::warningClose, text).exec();
return;
}
DialogNewVersion *dlgNewVersion = new DialogNewVersion(this);
dlgNewVersion->initialize(this, selectedVersion->getViewName());
dlgNewVersion->exec();
delete dlgNewVersion;
}
void VersionSelectWidget::on_deleteVersionButton_clicked()
{
if (selectedVersion == nullptr)
{
QString text = tr("Version not selected");
SpecialMessageBox(this, SpecialMessageBox::TypeSpecMsgBox::warningClose, text).exec();
return;
}
@@ -118,7 +141,8 @@ void VersionSelectWidget::on_switchServerVersionButton_clicked()
{
if (selectedVersion == nullptr)
{
emit sigSendNotify(tr("Version not selected"), this);
QString text = tr("Version not selected");
SpecialMessageBox(this, SpecialMessageBox::TypeSpecMsgBox::warningClose, text).exec();
return;
}
@@ -139,6 +163,21 @@ void VersionSelectWidget::slot_activateLoadAnimation(bool flag)
}
}
void VersionSelectWidget::slot_showServerList(QList<StreamingVersionData *> *serverList)
{
fillView(serverList);
}
void VersionSelectWidget::slot_SetVersion(StreamingVersionData *serverVersion)
{
versionContainer->setServerVersionData(serverVersion);
if(!flGetVersion)
connectorToServer->sendShowVersionSelect();
flGetVersion = true;
}
void VersionSelectWidget::setAuthor(QString name)
{
authorName = name;
@@ -149,15 +188,3 @@ void VersionSelectWidget::resizeEvent(QResizeEvent *event)
QSize size = event->size();
waitAnimationWidget->resize(size);
}
VersionSelectWidget::~VersionSelectWidget()
{
waitAnimationWidget->hideWithStop();
delete waitAnimationWidget;
delete ui;
}