mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
145 lines
4.5 KiB
C++
145 lines
4.5 KiB
C++
#include "updatenotifywidget.h"
|
||
#include "ui_updatenotifywidget.h"
|
||
#include "Core/tools.h"
|
||
|
||
#include <QMessageBox>
|
||
|
||
UpdateNotifyWidget::UpdateNotifyWidget(QWidget *) :
|
||
ui(new Ui::UpdateNotifyWidget)
|
||
{
|
||
ui->setupUi(this);
|
||
// setWindowFlag(Qt::FramelessWindowHint);
|
||
// setAttribute(Qt::WA_ShowModal,true);
|
||
}
|
||
|
||
void UpdateNotifyWidget::initialize(QPoint startPos)
|
||
{
|
||
currentLoadingCount = 0;
|
||
hide();
|
||
|
||
QPoint pos = startPos;
|
||
pos.setY(pos.y() + 40);
|
||
move(pos);
|
||
}
|
||
|
||
void UpdateNotifyWidget::setVersionContainer(VersionContainer *versionContainer)
|
||
{
|
||
this->versionContainer = versionContainer;
|
||
}
|
||
|
||
void UpdateNotifyWidget::addToList(FileData fileData)
|
||
{
|
||
QString itemName = fileData.path;
|
||
itemName = itemName.remove(streamingAssetsPath);
|
||
ui->updateListWidget->addItem(itemName);
|
||
}
|
||
|
||
void UpdateNotifyWidget::showTryChangeBase()
|
||
{
|
||
QString path = QDir::currentPath() + streamingAssetsPath;
|
||
QString link = "<a href=\""+ path + "\"style=\"color:white;\">папку</a>";
|
||
|
||
ui->labelsLayout->addWidget(createLabel(tr("Данные изменения нельзя выгрузить на сервер, так как версия сервера не изменяема \n")));
|
||
ui->labelsLayout->addWidget(createLabel(tr("Чтобы выгрузить на сервер нужно:")));
|
||
ui->labelsLayout->addWidget(createLabel(tr("1. Скопировать измененные или созданные файлы в временную папку")));
|
||
QLabel *labelStorage = new QLabel;
|
||
QString link2 = "<a href=\""+ path + "\"style=\"color:white;\">тут</a>";
|
||
labelStorage->setText(tr("Файлы можно найти в ") + link2 );
|
||
labelStorage->setOpenExternalLinks(true);
|
||
ui->labelsLayout->addWidget(labelStorage);
|
||
ui->labelsLayout->addWidget(createLabel(tr("2. Нажать Отменить изменения и дождатся окончания операции")));
|
||
ui->labelsLayout->addWidget(createLabel(tr("3. Изменить версию сервера на изменяемую")));
|
||
ui->labelsLayout->addWidget(createLabel(tr("4. Нажать обновить")));
|
||
|
||
//СОЗДАНИЕ
|
||
QLabel *linkLabel = new QLabel;
|
||
linkLabel->setText(tr("5. Скопировать файлы из временной папки в эту ") + link);
|
||
linkLabel->setOpenExternalLinks(true);
|
||
|
||
ui->labelsLayout->addWidget(linkLabel);
|
||
ui->labelsLayout->addWidget(createLabel(tr("6.Перезапустить клиент и выгрузить изменения на сервер")));
|
||
|
||
setCantUpdateState();
|
||
}
|
||
|
||
void UpdateNotifyWidget::showWithFill()
|
||
{
|
||
clearList();
|
||
|
||
if(!versionContainer->getLocalVersionData()->getIsChangeable())
|
||
{
|
||
showTryChangeBase();
|
||
}
|
||
else if(!versionContainer->getServerVersionData()->getIsChangeable())
|
||
{
|
||
showTryChangeBase();
|
||
}
|
||
else
|
||
{
|
||
ui->labelsLayout->addWidget(createLabel(tr("Возможные действия:")));
|
||
ui->labelsLayout->addWidget(createLabel(tr(" 1. Выгрузить изменения на сервер")));
|
||
ui->labelsLayout->addWidget(createLabel(tr(" 2. Отменить изменения с загрузкой версии с сервера")));
|
||
ui->labelsLayout->addWidget(createLabel(tr(" 3. Запустить без отправки файлов, но с текущими изменениями")));
|
||
|
||
setUpdateState();
|
||
}
|
||
show();
|
||
}
|
||
|
||
void UpdateNotifyWidget::clearList()
|
||
{
|
||
QLayoutItem* item;
|
||
while ( ( item = ui->labelsLayout->layout()->takeAt( 0 ) ) != NULL )
|
||
{
|
||
delete item->widget();
|
||
delete item;
|
||
}
|
||
}
|
||
QLabel* UpdateNotifyWidget::createLabel(QString text)
|
||
{
|
||
QLabel *label = new QLabel;
|
||
label->setText(text);
|
||
|
||
return label;
|
||
}
|
||
void UpdateNotifyWidget::on_loadToServerButton_clicked()
|
||
{
|
||
emit sigLoadToServerBehaviour();
|
||
}
|
||
|
||
void UpdateNotifyWidget::on_undoChangesButton_clicked()
|
||
{
|
||
emit sigUndoCurrentChanges();
|
||
}
|
||
|
||
void UpdateNotifyWidget::on_startWithCurrentChangesButton_clicked()
|
||
{
|
||
emit sigStartUnityClient();
|
||
}
|
||
|
||
void UpdateNotifyWidget::setUpdateState()
|
||
{
|
||
ui->undoChangesButton->show();
|
||
ui->loadToServerButton->show();
|
||
ui->startWithCurrentChangesButton->show();
|
||
}
|
||
|
||
|
||
void UpdateNotifyWidget::setCantUpdateState()
|
||
{
|
||
ui->undoChangesButton->show();
|
||
ui->loadToServerButton->hide();
|
||
ui->startWithCurrentChangesButton->hide();
|
||
}
|
||
|
||
UpdateNotifyWidget::~UpdateNotifyWidget()
|
||
{
|
||
delete ui;
|
||
}
|
||
|
||
void UpdateNotifyWidget::on_closeButton_clicked()
|
||
{
|
||
emit sigShowMainFrame(true);
|
||
close();
|
||
}
|