mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
201 lines
5.4 KiB
C++
201 lines
5.4 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
|
: QMainWindow(parent)
|
|
, ui(new Ui::MainWindow)
|
|
{
|
|
ui->setupUi(this);
|
|
Initialize();
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::Initialize()
|
|
{
|
|
|
|
ui->settingsWidget->hide();
|
|
ui->notificationLabel->hide();
|
|
ui->loadingProgressBar->hide();
|
|
ui->updateButton->hide();
|
|
ui->startButton->setEnabled(false);
|
|
|
|
updateControllerThread = new QThread;
|
|
connectionThread = new QThread;
|
|
|
|
|
|
client = new TCPClient;
|
|
client->moveToThread(connectionThread);
|
|
|
|
dataParser = new DataParser;
|
|
|
|
updateController = new UpdateController(dataParser);
|
|
updateController->moveToThread(updateControllerThread);
|
|
|
|
recognizeSystem = new RecognizeSystem;
|
|
screenChecker = new ScreenChecker;
|
|
externalExecuter = new ExternalExecuter;
|
|
|
|
connect(recognizeSystem,&RecognizeSystem::UpdateBytesAvailable,this,&MainWindow::UpdateProgress);
|
|
connect(recognizeSystem,&RecognizeSystem::LoadComplete,this,&MainWindow::LoadComplete);
|
|
connect(recognizeSystem,&RecognizeSystem::onNeedUpdate,this,&MainWindow::SetNeedUpdate);
|
|
connect(recognizeSystem,&RecognizeSystem::onSendDebugLog,this,&MainWindow::DebugLog);
|
|
connect(recognizeSystem,&RecognizeSystem::SockedDisabled,this,&MainWindow::LostConnection);
|
|
connect(recognizeSystem,&RecognizeSystem::SaveLoginData,this,&MainWindow::CheckLoginResult);
|
|
connect(recognizeSystem,&RecognizeSystem::SocketWaitForReadyRead,client,&TCPClient::WaitRead,Qt::AutoConnection);
|
|
|
|
connectionThread->start();
|
|
updateControllerThread->start();
|
|
|
|
updateControllerThread->setPriority(QThread::LowPriority);
|
|
connectionThread->setPriority(QThread::HighestPriority);
|
|
|
|
connect(client,&TCPClient::onSendDebugLog,this,&MainWindow::DebugLog,Qt::AutoConnection);
|
|
|
|
connect(this,&MainWindow::onInitializeClient,client,&TCPClient::Initialize,Qt::AutoConnection);
|
|
connect(this,&MainWindow::onSetConnect,client,&TCPClient::SetConnect,Qt::AutoConnection); //умирает
|
|
connect(this,&MainWindow::onSendMessage,client,&TCPClient::MessageEntered,Qt::AutoConnection);
|
|
connect(this,&MainWindow::SendClientAuthorization,client,&TCPClient::SendClientAutorization,Qt::AutoConnection);
|
|
|
|
connect(this,&MainWindow::onCalculateHash,updateController,&UpdateController::CalculateHash);
|
|
|
|
emit onCalculateHash();
|
|
emit onInitializeClient(recognizeSystem,externalExecuter);
|
|
|
|
recognizeSystem->Initialize(updateController,dataParser);
|
|
|
|
screenChecker->Check();
|
|
ui->disblayCount->setText(screenChecker->getScreenCount());
|
|
ui->updateButton->setEnabled(false);
|
|
ui->startButton->setEnabled(false);
|
|
|
|
maxBytesAvailable = 0;
|
|
ui->loadingProgressBar->setValue(0);
|
|
|
|
emit onSetConnect(dataParser->GetServerSettings());
|
|
|
|
CheckAppAvailable();
|
|
}
|
|
|
|
void MainWindow::UpdateProgress(qint64 size,quint64 sended)
|
|
{
|
|
|
|
ui->loadingProgressBar->setMaximum(size);
|
|
ui->loadingProgressBar->setMinimum(0);
|
|
|
|
ui->loadingProgressBar->setValue(sended);
|
|
}
|
|
|
|
void MainWindow::LoadComplete()
|
|
{
|
|
ui->loadingProgressBar->setValue(100);
|
|
ui->updateButton->setEnabled(false);
|
|
externalExecuter->FindApp();
|
|
ui->startButton->setEnabled(true);
|
|
}
|
|
|
|
void MainWindow::SetNeedUpdate(bool flag)
|
|
{
|
|
ui->updateButton->setEnabled(flag);
|
|
ui->startButton->setEnabled(!flag);
|
|
}
|
|
|
|
void MainWindow::LostConnection()
|
|
{
|
|
ui->loadingProgressBar->setValue(0);
|
|
|
|
}
|
|
|
|
void MainWindow::CheckLoginResult(ServerAuthorization *serverAuth)
|
|
{
|
|
if (serverAuth->Result){
|
|
emit onSendMessage("check");
|
|
ui->loadingProgressBar->show();
|
|
ui->updateButton->show();
|
|
dataParser->CreateAuthData(serverAuth);
|
|
|
|
}
|
|
else {
|
|
ui->notificationLabel->setText("Неверный логин/пароль");
|
|
ui->notificationLabel->show();
|
|
}
|
|
|
|
}
|
|
|
|
void MainWindow::CheckAppAvailable()
|
|
{
|
|
bool isAvailable = externalExecuter->FindApp();
|
|
ui->startButton->setEnabled(isAvailable);
|
|
}
|
|
|
|
|
|
void MainWindow::on_loginButton_clicked()
|
|
{
|
|
QString username = ui->loginInputField->text();
|
|
QString password = ui->passwordInputField->text();
|
|
|
|
ClientAutorization *autorization = new ClientAutorization;
|
|
autorization->Login = username;
|
|
autorization->Password = password;
|
|
|
|
dataParser->CreateAuthMessage(autorization);
|
|
emit SendClientAuthorization();
|
|
}
|
|
|
|
void MainWindow::on_updateButton_clicked()
|
|
{
|
|
emit onSendMessage("update");
|
|
ui->loadingProgressBar->setValue(0);
|
|
}
|
|
|
|
void MainWindow::on_startButton_clicked()
|
|
{
|
|
externalExecuter->CallApp();
|
|
}
|
|
|
|
|
|
void MainWindow::on_saveServerButton_clicked()
|
|
{
|
|
ui->settingsWidget->hide();
|
|
ui->loginWidget->show();
|
|
|
|
QString server = ui->serverInputField->text();
|
|
QString port = ui->portInputField->text();
|
|
|
|
dataParser->CreateServerSettings(server,port);
|
|
|
|
emit onSetConnect(dataParser->GetServerSettings());
|
|
}
|
|
|
|
void MainWindow::on_settingsButton_clicked()
|
|
{
|
|
ui->settingsWidget->show();
|
|
ui->loginWidget->hide();
|
|
|
|
ServerSettings *currentSettings = dataParser->GetServerSettings();
|
|
|
|
ui->serverInputField->setText(currentSettings->Address);
|
|
ui->portInputField->setText(currentSettings->Port);
|
|
}
|
|
|
|
void MainWindow::DebugLog(QString message)
|
|
{
|
|
ui->debugText->append(message);
|
|
}
|
|
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
connectionThread->quit();
|
|
connectionThread->wait();
|
|
|
|
updateControllerThread->quit();
|
|
updateControllerThread->wait();
|
|
|
|
delete connectionThread;
|
|
delete updateControllerThread;
|
|
delete ui;
|
|
}
|
|
|