mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
230 lines
6.5 KiB
C++
230 lines
6.5 KiB
C++
#include <QResizeEvent>
|
|
|
|
#include "dialogversioncontrol.h"
|
|
#include "specialmessagebox.h"
|
|
#include "ui_dialogversioncontrol.h"
|
|
|
|
|
|
DialogVersionControl::DialogVersionControl(ConnectorToServer* connectorToServer, QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::DialogVersionControl),
|
|
connectorToServer(connectorToServer),
|
|
serverDataList(nullptr),
|
|
selectedVersion(nullptr),
|
|
versionContainer(nullptr),
|
|
waitAnimationWidget(nullptr),
|
|
dlgNewVersion(nullptr),
|
|
authorName(""),
|
|
flGetVersion(false)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
ui->createDuplicateButton->setObjectName("createDuplicateButton");
|
|
ui->deleteVersionButton->setObjectName("deleteVersionButton");
|
|
ui->switchServerVersionButton->setObjectName("switchServerVersionButton");
|
|
|
|
setMinimumSize(600, 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);
|
|
}
|
|
|
|
DialogVersionControl::~DialogVersionControl()
|
|
{
|
|
if(dlgNewVersion)
|
|
{
|
|
dlgNewVersion->close();
|
|
delete dlgNewVersion;
|
|
dlgNewVersion = nullptr;
|
|
}
|
|
|
|
waitAnimationWidget->hideWithStop();
|
|
|
|
delete versionContainer;
|
|
|
|
delete waitAnimationWidget;
|
|
|
|
delete ui;
|
|
}
|
|
|
|
void DialogVersionControl::initialize(QString authorName)
|
|
{
|
|
this->authorName = authorName;
|
|
|
|
connect (connectorToServer, &ConnectorToServer::signal_SetVersion, this, &DialogVersionControl::slot_SetVersion);
|
|
connect(connectorToServer, &ConnectorToServer::signal_AnimationActivated, this, &DialogVersionControl::slot_activateLoadAnimation);
|
|
|
|
connect(connectorToServer, &ConnectorToServer::signal_showServerList, this, &DialogVersionControl::slot_showServerList);
|
|
connect(connectorToServer, &ConnectorToServer::signal_NotifyVersionControl, this, &DialogVersionControl::slot_NotifyVersionControl);
|
|
|
|
connect(this, &DialogVersionControl::sigSendSwitchVersion, connectorToServer, &ConnectorToServer::slot_SendSwitchVersion);
|
|
connect(this, &DialogVersionControl::sigSendCopyVersion, connectorToServer, &ConnectorToServer::slot_SendCopyVersion);
|
|
connect(this, &DialogVersionControl::sigSendDeleteVersion, connectorToServer, &ConnectorToServer::slot_SendDeleteVersion);
|
|
|
|
connect(this, &DialogVersionControl::signal_getVersion, connectorToServer, &ConnectorToServer::slot_getVersion);
|
|
|
|
emit signal_getVersion();
|
|
}
|
|
|
|
void DialogVersionControl::fillView(QList<StreamingVersionData *> *serverData)
|
|
{
|
|
ui->verListView->clear();
|
|
serverDataList = serverData;
|
|
ui->verValue->setText(versionContainer->getServerVersionData()->getViewName());
|
|
|
|
for(StreamingVersionData *data : *serverData)
|
|
{
|
|
ui->verListView->addItem(data->getViewName());
|
|
}
|
|
|
|
if(ui->verListView->count())
|
|
{
|
|
ui->verListView->setCurrentRow(0);
|
|
ui->verListView->itemClicked(ui->verListView->item(0));
|
|
}
|
|
}
|
|
|
|
QString DialogVersionControl::changableText(bool flag)
|
|
{
|
|
if(flag) return tr("Yes");
|
|
else return tr("No");
|
|
}
|
|
|
|
void DialogVersionControl::on_verListView_itemClicked(QListWidgetItem *item)
|
|
{
|
|
for(StreamingVersionData *data : *serverDataList)
|
|
{
|
|
if(data->getViewName() == item->text())
|
|
{
|
|
QString info = tr("Version name: ") + data->getViewName() + "\n";
|
|
info.append(tr("Created: ") + data->getCreateData().toString() + "\n");
|
|
info.append(tr("Changeable: ") + changableText(data->getIsChangeable()) + "\n");
|
|
info.append(tr("Author: ") + data->getAuthor());
|
|
ui->infoValue->setText(info);
|
|
selectedVersion = data;
|
|
}
|
|
}
|
|
}
|
|
|
|
void DialogVersionControl::sendCopyEmit(QString newName)
|
|
{
|
|
QString result = selectedVersion->getViewName() + ";" + newName + ";" + authorName;
|
|
|
|
if (selectedVersion == nullptr)
|
|
{
|
|
QString text = tr("Version not selected");
|
|
SpecMsgBox::WarningClose(this, text);
|
|
return;
|
|
}
|
|
|
|
versionContainer->setLocalVersionData(selectedVersion);
|
|
emit sigSendCopyVersion(result);
|
|
}
|
|
|
|
void DialogVersionControl::on_createDuplicateButton_clicked()
|
|
{
|
|
if (selectedVersion == nullptr)
|
|
{
|
|
QString text = tr("Version not selected");
|
|
SpecMsgBox::WarningClose(this, text);
|
|
return;
|
|
}
|
|
|
|
dlgNewVersion = new DialogNewVersion(this);
|
|
dlgNewVersion->initialize(selectedVersion->getViewName());
|
|
|
|
switch(dlgNewVersion->exec())
|
|
{
|
|
case QDialog::Accepted:
|
|
{
|
|
QString newName = dlgNewVersion->getNewName();
|
|
sendCopyEmit(newName);
|
|
break;
|
|
}
|
|
case QDialog::Rejected:
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if(dlgNewVersion)
|
|
{
|
|
delete dlgNewVersion;
|
|
dlgNewVersion = nullptr;
|
|
}
|
|
}
|
|
|
|
void DialogVersionControl::on_deleteVersionButton_clicked()
|
|
{
|
|
if (selectedVersion == nullptr)
|
|
{
|
|
QString text = tr("Version not selected");
|
|
SpecMsgBox::WarningClose(this, text);
|
|
return;
|
|
}
|
|
|
|
if(SpecMsgBox::WarningYesNo(this, tr("The deletion will be irrevocable.\nDelete it anyway?")) == QDialog::Accepted)
|
|
{
|
|
emit sigSendDeleteVersion(selectedVersion);
|
|
}
|
|
}
|
|
|
|
void DialogVersionControl::on_switchServerVersionButton_clicked()
|
|
{
|
|
if (selectedVersion == nullptr)
|
|
{
|
|
QString text = tr("Version not selected");
|
|
SpecMsgBox::WarningClose(this, text);
|
|
return;
|
|
}
|
|
|
|
//versionContainer->setServerVersionData(selectedVersion);
|
|
//ui->verValue->setText(selectedVersion->getViewName());
|
|
emit sigSendSwitchVersion(selectedVersion);
|
|
}
|
|
|
|
void DialogVersionControl::slot_activateLoadAnimation(bool flag)
|
|
{
|
|
if (flag)
|
|
{
|
|
waitAnimationWidget->showWithPlay();
|
|
}
|
|
else
|
|
{
|
|
waitAnimationWidget->hideWithStop();
|
|
}
|
|
}
|
|
|
|
void DialogVersionControl::slot_showServerList(QList<StreamingVersionData *> *serverList)
|
|
{
|
|
fillView(serverList);
|
|
}
|
|
|
|
void DialogVersionControl::slot_SetVersion(StreamingVersionData *serverVersion)
|
|
{
|
|
versionContainer->setServerVersionData(serverVersion);
|
|
ui->verValue->setText(versionContainer->getServerVersionData()->getViewName());
|
|
|
|
if(!flGetVersion)
|
|
connectorToServer->sendShowVersionSelect();
|
|
|
|
flGetVersion = true;
|
|
}
|
|
|
|
void DialogVersionControl::slot_NotifyVersionControl(QString text)
|
|
{
|
|
SpecMsgBox::WarningClose(this, text);
|
|
}
|
|
|
|
void DialogVersionControl::resizeEvent(QResizeEvent *event)
|
|
{
|
|
QSize size = event->size();
|
|
waitAnimationWidget->resize(size);
|
|
}
|