feat: change buttonsView

* add buttonsView common(complete)
* add buttonsView instructor(notWorking)
* BUGFIX sendSystem meth update files
* BUGFIX updateController meth checkNeedUpdate
This commit is contained in:
semenov
2024-12-11 17:10:34 +03:00
parent 93705b54fe
commit 077208afdd
80 changed files with 145071 additions and 8038 deletions

View File

@@ -18,38 +18,43 @@ MainWindow::MainWindow(QWidget *parent)
isRecovery = false;
setWindowFlag(Qt::FramelessWindowHint);
painting();
initialize();
}
void MainWindow::bindWidgets(UpdateNotifyWidget *widget,CommonButtonGroupWidget *commonButtonGroup,
InstructorButtonGroupWidget *instructorButtonGroup)
{
updateWidget = widget;
this->commonButtonGroupWidget = commonButtonGroup;
this->instructorButtonGroupWidget = instructorButtonGroup;
}
void MainWindow::initialize()
{
ui->loadingProgressBar->setValue(0);
createObjects();
commonButtonGroupWidget->initialize(externalExecuter,sendSystem,client);
commonButtonGroupWidget->show();
instructorButtonGroupWidget->initialize(this);
ui->settingsWidget->hide();
ui->notificationLabel->hide();
ui->loadingProgressBar->hide();
ui->updateButton->hide();
ui->offlineWidget->hide();
ui->offlineStartButton->show();
ui->offlineStartButton->setEnabled(false);
ui->offlineStartButton->setGeometry(540,552,250,35);
ui->startButton->hide();
ui->startButton->setEnabled(false);
ui->displayGroupWidget->show();
ui->autostartCheckBox->hide();
ui->startButton->setEnabled(false);
ui->loginWidget->hide();
ui->updateWidget->hide();
ui->updateButtonGroup_2->hide();
createObjects();
bindConnection();
emit sigCalculateHash();
emit sigInitializeClient(recognizeSystem,externalExecuter,sendSystem,connectionThread);
recognizeSystem->initialize(updateController,dataParser,this);
recognizeSystem->initialize(updateController,dataParser,this,hashComparer,client);
screenChecker->check();
loadStaticData();
@@ -63,6 +68,13 @@ void MainWindow::initialize()
void MainWindow::createObjects()
{
updateWidget = new UpdateNotifyWidget;
commonButtonGroupWidget = new CommonButtonGroupWidget;
instructorButtonGroupWidget = new InstructorButtonGroupWidget;
ui->changButtonGroup->addWidget(commonButtonGroupWidget);
ui->changButtonGroup->addWidget(instructorButtonGroupWidget);
connectionThread = new QThread;
animationThread = new QThread;
@@ -95,15 +107,6 @@ void MainWindow::bindConnection()
{
connect(timer,&QTimer::timeout,this,&MainWindow::slotDisableNotify);
connect(recognizeSystem,&RecognizeSystem::sigStartCompare,hashComparer,&HashComparer::CompareDeltas);
connect(recognizeSystem,&RecognizeSystem::sigUpdateBytesAvailable,this,&MainWindow::updateProgress,Qt::QueuedConnection);
connect(recognizeSystem,&RecognizeSystem::sigLoadComplete,this,&MainWindow::loadComplete);
connect(recognizeSystem,&RecognizeSystem::sigNeedUpdate,this,&MainWindow::setNeedUpdate);
connect(recognizeSystem,&RecognizeSystem::sigSocketDisabled,this,&MainWindow::lostConnection);
connect(recognizeSystem,&RecognizeSystem::sigSaveLoginData,this,&MainWindow::checkLoginResult); //TODO: прибратся! 2 бинда на 1 сигнал
connect(recognizeSystem,&RecognizeSystem::sigSocketWaitForReadyRead,client,&TCPClient::waitRead,Qt::DirectConnection);
connect(recognizeSystem,&RecognizeSystem::sigServerBlocked,this,&MainWindow::serverBlocked);
connect(updateController,&UpdateController::sigUpdateComplete,this,&MainWindow::showCompleteDialogBox);
connect(hashComparer,&HashComparer::sigCallCheck,this,&MainWindow::checkUpdate);
@@ -129,21 +132,17 @@ void MainWindow::updateProgress()
{
filesLoaded++;
float value = 100 / ((float)fileCountForUpdate / filesLoaded);
ui->loadingProgressBar->setValue(value);
commonButtonGroupWidget->updateProgressBar(value);
}
void MainWindow::loadComplete()
{
externalExecuter->findApp();
ui->updateButton->setEnabled(false);
ui->startButton->setEnabled(true);
commonButtonGroupWidget->loadCompleteState();
autoStart();
ui->inlineTextDebug->setText(tr("Обновление завершено"));
ui->loadingProgressBar->setValue(100);
ui->startButton->show();
ui->offlineStartButton->setEnabled(true);
ui->autostartCheckBox->hide();
ui->loadingProgressBar->hide();
ui->offlineStartButton->show();
}
@@ -164,10 +163,7 @@ void MainWindow::setNeedUpdate(bool flag,quint64 size, quint64 fileCount)
QString result = tr("Доступно обновление: ") + Tools::convertFileSize(size);
result += tr("Количество файлов: ") + QString::number(fileCount);
ui->inlineTextDebug->setText(result);
ui->startButton->show();
ui->updateButton->setEnabled(flag);
ui->startButton->setEnabled(true);
ui->updateButton->show();
commonButtonGroupWidget->needUpdateState(flag);
ui->autostartCheckBox->show();
stopLoadingMovie();
}
@@ -175,8 +171,7 @@ void MainWindow::setNeedUpdate(bool flag,quint64 size, quint64 fileCount)
{
ui->inlineTextDebug->setText(tr("Установлена последняя версия"));
autoStart();
ui->loadingProgressBar->hide();
ui->startButton->show();
commonButtonGroupWidget->lastVerInstalledState();
ui->offlineStartButton->setEnabled(true);
stopLoadingMovie();
}
@@ -184,7 +179,7 @@ void MainWindow::setNeedUpdate(bool flag,quint64 size, quint64 fileCount)
void MainWindow::lostConnection()
{
ui->loadingProgressBar->setValue(0);
commonButtonGroupWidget->updateProgressBar(0);
slotConnectionState(false);
}
@@ -235,7 +230,7 @@ void MainWindow::checkLoginResult(ServerAuthorization *serverAuth)
void MainWindow::checkAppAvailable()
{
bool isAvailable = externalExecuter->findApp();
ui->startButton->setEnabled(isAvailable);
commonButtonGroupWidget->startButtonActive(isAvailable);
ui->offlineStartButton->setEnabled(isAvailable);
}
@@ -257,7 +252,7 @@ void MainWindow::checkLanguage(QString language)
void MainWindow::autoStart()
{
if(ui->autostartCheckBox->isChecked()){
on_startButton_clicked();
startUnityClient();
}
}
@@ -284,7 +279,7 @@ void MainWindow::showConnectionEmpty()
ui->settingsButton->show();
ui->loginWidget->hide();
ui->updateWidget->hide();
ui->updateButtonGroup_2->hide();
instructorButtonGroupWidget->hide();
}
void MainWindow::slotConnectionState(bool flag)
@@ -314,13 +309,9 @@ void MainWindow::slotConnectionState(bool flag)
void MainWindow::slotServerDisconnect()
{
ui->startButton->hide();
ui->loadingProgressBar->hide();
ui->updateButton->hide();
commonButtonGroupWidget->disconnectState();
ui->autostartCheckBox->hide();
ui->inlineTextDebug->setText("");
ui->updateButton->setEnabled(false);
slotConnectionState(false);
}
@@ -345,10 +336,6 @@ void MainWindow::callUpdateList()
updateWidget->initialize(this);
}
void MainWindow::bindNotifyWidget(UpdateNotifyWidget *widget)
{
updateWidget = widget;
}
void MainWindow::on_loginButton_clicked()
{
@@ -370,22 +357,6 @@ void MainWindow::on_loginButton_clicked()
}
void MainWindow::on_updateButton_clicked()
{
emit sigSendCommand("update");
ui->updateButton->hide();
ui->startButton->hide();
ui->loadingProgressBar->setValue(0);
ui->loadingProgressBar->show();
}
void MainWindow::on_startButton_clicked()
{
externalExecuter->callApp();
sendSystem->sendDisable();
}
void MainWindow::on_saveServerButton_clicked()
{
startLoadingAnim();
@@ -415,11 +386,6 @@ void MainWindow::on_settingsButton_clicked()
ui->offlineStartButton->hide();
}
void MainWindow::on_connectButton_clicked()
{
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
}
void MainWindow::on_languageComboBox_activated(const QString &arg1)
{
qDebug() << arg1;
@@ -428,26 +394,24 @@ void MainWindow::on_languageComboBox_activated(const QString &arg1)
ui->retranslateUi(this);
}
void MainWindow::on_loadToServerButton_clicked()
void MainWindow::loadToServer()
{
ui->inlineTextDebug->setText(tr("Отправка файлов..."));
ui->loadingProgressBar->show();
ui->updateButtonGroup_2->hide();
commonButtonGroupWidget->showProgressBar(true);
instructorButtonGroupWidget->hide();
ui->offlineStartButton->setEnabled(false);
ui->updateWidget->hide();
emit sigUpdateFilesOnServer(hashComparer->getFilesForUpdate());
}
void MainWindow::on_undoChangesButton_clicked()
void MainWindow::undoCurrentChanges()
{
isRecovery = true;
emit sigSendCommand("check");
ui->loadingProgressBar->show();
commonButtonGroupWidget->showProgressBar(true);
ui->offlineStartButton->setEnabled(false);
ui->updateButtonGroup_2->hide();
instructorButtonGroupWidget->hide();
ui->updateWidget->hide();
startLoadingAnim();
@@ -459,17 +423,14 @@ void MainWindow::on_undoChangesButton_clicked()
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
startLoadingAnim();
ui->updateButton->hide();
on_updateButton_clicked();
emit sigSendCommand("update");
commonButtonGroupWidget->startUpdateState();
isRecovery = false;
stopLoadingMovie();
}
void MainWindow::on_startWithCurrentChangesButton_clicked()
{
on_startButton_clicked();
}
void MainWindow::on_updateListGuideLabel_linkActivated(const QString &)
{
updateWidget->show();
@@ -481,7 +442,7 @@ void MainWindow::on_offlineStartButton_clicked()
QString password = "000000";
dataParser->createAuthDataOffline(username,password);
on_startButton_clicked();
startUnityClient();
}
void MainWindow::on_exitButton_clicked()
@@ -510,7 +471,7 @@ void MainWindow::showUpdateInfo()
ui->updateActionListLabel->setText(list);
ui->updateWidget->show();
ui->updateButtonGroup_2->show();
instructorButtonGroupWidget->show();
ui->offlineStartButton->setGeometry(540,552,250,35);
fileCountForUpdate = hashComparer->getFilesForUpdate()->length();
@@ -530,6 +491,12 @@ void MainWindow::showCompleteDialogBox()
checkUpdate();
}
void MainWindow::startUnityClient()
{
externalExecuter->callApp();
sendSystem->sendDisable();
}
void MainWindow::keyPressEvent(QKeyEvent *event)
{