mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
ref: segregate systems, codestyle, busy message
This commit is contained in:
179
mainwindow.cpp
179
mainwindow.cpp
@@ -1,6 +1,5 @@
|
||||
#include "mainwindow.h"
|
||||
#include "ui_mainwindow.h"
|
||||
#include "updatenotifywidget.h"
|
||||
|
||||
#include <QFontDatabase>
|
||||
#include <QMessageBox>
|
||||
@@ -8,6 +7,7 @@
|
||||
#include <QPaintEvent>
|
||||
#include <QPainter>
|
||||
#include <QTimer>
|
||||
#include <Widgets/updatenotifywidget.h>
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
@@ -16,42 +16,31 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
ui->setupUi(this);
|
||||
isRecovery = false;
|
||||
setWindowFlag(Qt::FramelessWindowHint);
|
||||
painting();
|
||||
}
|
||||
|
||||
void MainWindow::initialize()
|
||||
{
|
||||
createObjects();
|
||||
loadStaticData();
|
||||
bindConnection();
|
||||
|
||||
updateWidget->initialize(this,versionContainer);
|
||||
entryWidget->initialize(this);
|
||||
versionSelectWidget->initialize(sendSystem,versionContainer);
|
||||
hashComparer->initialize(this,versionContainer);
|
||||
updateController->initialize(this,versionContainer);
|
||||
|
||||
sendSystem->initialize(this,dataParser);
|
||||
dataParser->initialize(recognizeSystem);
|
||||
recognizeSystem->initialize(updateController,dataParser,this,hashComparer,client,versionContainer);
|
||||
resourceManager->painting();
|
||||
commonButtonGroupWidget->initialize(this,externalExecuter,sendSystem,client);
|
||||
commonButtonGroupWidget->show();
|
||||
|
||||
ui->notificationLabel->hide();
|
||||
ui->unsafeChangingButton->hide();
|
||||
|
||||
ui->offlineStartButton->show();
|
||||
ui->offlineStartButton->setEnabled(false);
|
||||
ui->offlineStartButton->setGeometry(540,549,250,40);
|
||||
|
||||
ui->displayGroupWidget->show();
|
||||
ui->autostartCheckBox->hide();
|
||||
bindConnection();
|
||||
|
||||
sendSystem->initialize(this,dataParser);
|
||||
dataParser->initialize(recognizeSystem);
|
||||
setUpUi();
|
||||
|
||||
|
||||
emit sigCalculateHash();
|
||||
emit sigInitializeClient(this,recognizeSystem,externalExecuter,sendSystem,workerThread);
|
||||
recognizeSystem->initialize(updateController,dataParser,this,hashComparer,client,versionContainer);
|
||||
//emit sigRecognize(updateController,dataParser,this,hashComparer,client);
|
||||
|
||||
screenChecker->check();
|
||||
|
||||
@@ -59,7 +48,7 @@ void MainWindow::initialize()
|
||||
|
||||
checkAppAvailable();
|
||||
|
||||
//test
|
||||
//post
|
||||
|
||||
|
||||
}
|
||||
@@ -73,7 +62,6 @@ void MainWindow::createObjects()
|
||||
versionSelectWidget = new VersionSelectWidget;
|
||||
|
||||
ui->changButtonGroup->addWidget(commonButtonGroupWidget);
|
||||
|
||||
ui->interactiveGroup->addWidget(entryWidget);
|
||||
ui->interactiveGroup->addWidget(versionSelectWidget);
|
||||
|
||||
@@ -102,10 +90,19 @@ void MainWindow::createObjects()
|
||||
hashComparer->moveToThread(workerThread);
|
||||
|
||||
versionContainer = new VersionContainer;
|
||||
resourceManager = new ResourceManager;
|
||||
|
||||
workerThread->start();
|
||||
workerThread->setPriority(QThread::HighestPriority);
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout();
|
||||
layout->setParent(this);
|
||||
|
||||
movieLabel = new QLabel("MovieLabel");
|
||||
layout->addWidget(movieLabel);
|
||||
setLayout(layout);
|
||||
movieLabel->setStyleSheet("background-color:rgba(0,0,0,90)");
|
||||
|
||||
timer = new QTimer;
|
||||
}
|
||||
|
||||
@@ -118,7 +115,6 @@ void MainWindow::bindConnection()
|
||||
connect(this,&MainWindow::sigSetConnect,client,&TCPClient::setConnect,Qt::AutoConnection);
|
||||
connect(this,&MainWindow::sigSendCommand,client,&TCPClient::slotSendCommand,Qt::AutoConnection);
|
||||
connect(this,&MainWindow::sigSendXMLAnswer,sendSystem,&SendSystem::xmlAnswer,Qt::AutoConnection);
|
||||
//connect(this,&MainWindow::sigRecognize,recognizeSystem,&RecognizeSystem::initialize,Qt::AutoConnection);
|
||||
|
||||
connect(this,&MainWindow::sigGetConnected,client,&TCPClient::getIsConnected);
|
||||
connect(this,&MainWindow::sigCalculateHash,updateController,&UpdateController::calculateCommonHash);
|
||||
@@ -174,7 +170,7 @@ void MainWindow::setNeedUpdate(bool flag,quint64 size, quint64 fileCount,quint64
|
||||
ui->inlineTextDebug->setText(result);
|
||||
commonButtonGroupWidget->needUpdateState(flag);
|
||||
ui->autostartCheckBox->show();
|
||||
stopLoadingMovie();
|
||||
activateLoadingAnimation(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -185,14 +181,14 @@ void MainWindow::setNeedUpdate(bool flag,quint64 size, quint64 fileCount,quint64
|
||||
ui->offlineStartButton->setEnabled(true);
|
||||
dataParser->changeVersion(versionContainer->getServerVersion());
|
||||
setTitle();
|
||||
stopLoadingMovie();
|
||||
activateLoadingAnimation(false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::showServerListWidget(QList<StreamingVersionData *> *serverData)
|
||||
{
|
||||
entryWidget->hide();
|
||||
stopLoadingMovie();
|
||||
activateLoadingAnimation(false);
|
||||
versionSelectWidget->fillView(serverData);
|
||||
checkUpdate();
|
||||
}
|
||||
@@ -234,7 +230,7 @@ void MainWindow::checkLoginResult(ServerAuthorization *serverAuth)
|
||||
ui->LanguageWidget->hide();
|
||||
ui->settingsButton->hide();
|
||||
ui->offlineStartButton->show();
|
||||
startLoadingAnim();
|
||||
activateLoadingAnimation(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -327,7 +323,7 @@ void MainWindow::slotConnectionState(bool flag)
|
||||
ui->notificationLabel->show();
|
||||
QPalette palette = ui->notificationLabel->palette();
|
||||
|
||||
stopLoadingMovie();
|
||||
activateLoadingAnimation(false);
|
||||
|
||||
if(flag)
|
||||
{
|
||||
@@ -390,14 +386,14 @@ void MainWindow::login()
|
||||
|
||||
void MainWindow::saveServerSettingsWithConnect()
|
||||
{
|
||||
startLoadingAnim();
|
||||
activateLoadingAnimation(true);
|
||||
entryWidget->settingsWidgetIsActive(false);
|
||||
|
||||
if(client->getIsConnected())
|
||||
{
|
||||
entryWidget->loginIsActive(true);
|
||||
ui->offlineStartButton->show();
|
||||
stopLoadingMovie();
|
||||
activateLoadingAnimation(false);
|
||||
return;
|
||||
}
|
||||
//TODO: не заполняется 2 поля (автостарт и язык)
|
||||
@@ -441,7 +437,7 @@ void MainWindow::undoCurrentChanges()
|
||||
ui->offlineStartButton->setEnabled(false);
|
||||
updateWidget->hide();
|
||||
|
||||
startLoadingAnim();
|
||||
activateLoadingAnimation(true);
|
||||
|
||||
//delay
|
||||
|
||||
@@ -449,18 +445,13 @@ void MainWindow::undoCurrentChanges()
|
||||
while (QTime::currentTime() < dieTime)
|
||||
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
|
||||
|
||||
startLoadingAnim();
|
||||
activateLoadingAnimation(true);
|
||||
|
||||
emit sigSendCommand("update");
|
||||
commonButtonGroupWidget->startUpdateState();
|
||||
|
||||
isRecovery = false;
|
||||
stopLoadingMovie();
|
||||
}
|
||||
|
||||
void MainWindow::on_updateListGuideLabel_linkActivated(const QString &)
|
||||
{
|
||||
updateWidget->show();
|
||||
activateLoadingAnimation(false);
|
||||
}
|
||||
|
||||
void MainWindow::on_offlineStartButton_clicked()
|
||||
@@ -491,7 +482,7 @@ void MainWindow::checkUpdate()
|
||||
|
||||
void MainWindow::showUpdateInfo()
|
||||
{
|
||||
stopLoadingMovie();
|
||||
activateLoadingAnimation(false);
|
||||
updateWidget->showWithFill();
|
||||
ui->unsafeChangingButton->show();
|
||||
entryWidget->hide();
|
||||
@@ -505,13 +496,13 @@ void MainWindow::showUpdateInfo()
|
||||
void MainWindow::showCompleteDialogBox()
|
||||
{
|
||||
ui->inlineTextDebug->setText(tr("Загрузка завершена"));
|
||||
startLoadingAnim();
|
||||
activateLoadingAnimation(true);
|
||||
|
||||
QTime dieTime= QTime::currentTime().addSecs(10); //DELAY ДЛЯ ПЕРЕСЧЕТА ХЭША НА СЕРВЕРЕ
|
||||
while (QTime::currentTime() < dieTime)
|
||||
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
|
||||
|
||||
stopLoadingMovie();
|
||||
activateLoadingAnimation(false);
|
||||
checkUpdate();
|
||||
}
|
||||
|
||||
@@ -526,6 +517,35 @@ void MainWindow::setCurrentVersionName(StreamingVersionData *version)
|
||||
versionContainer->setLocalVersionData(version);
|
||||
}
|
||||
|
||||
void MainWindow::setUpUi()
|
||||
{
|
||||
ui->notificationLabel->hide();
|
||||
ui->unsafeChangingButton->hide();
|
||||
|
||||
ui->offlineStartButton->show();
|
||||
ui->offlineStartButton->setEnabled(false);
|
||||
ui->offlineStartButton->setGeometry(540,549,250,40);
|
||||
|
||||
ui->settingsButton->setIcon(*resourceManager->getSettingsIcon());
|
||||
|
||||
QSize cautionIconSize(30,30);
|
||||
ui->unsafeChangingButton->setIcon(*resourceManager->getUnsavedIcon());
|
||||
ui->unsafeChangingButton->setIconSize(cautionIconSize);
|
||||
|
||||
movieLabel->setGeometry(367,300,70,70);
|
||||
movieLabel->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
|
||||
movieLabel->setMovie(resourceManager->getMovie());
|
||||
|
||||
QSize iconSize(30,30);
|
||||
ui->exitButton->setIcon(*resourceManager->getCloseIcon());
|
||||
ui->exitButton->setIconSize(iconSize);
|
||||
|
||||
ui->displayGroupWidget->show();
|
||||
ui->autostartCheckBox->hide();
|
||||
|
||||
activateLoadingAnimation(true);
|
||||
}
|
||||
|
||||
void MainWindow::keyPressEvent(QKeyEvent *event)
|
||||
{
|
||||
if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)
|
||||
@@ -535,77 +555,18 @@ void MainWindow::keyPressEvent(QKeyEvent *event)
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::painting()
|
||||
void MainWindow::activateLoadingAnimation(bool flag)
|
||||
{
|
||||
QFontDatabase::addApplicationFont(":/resource/Fonts/Kanit Cyrillic.ttf");
|
||||
QFontDatabase::addApplicationFont(":/resource/Fonts/HelveticaNeue-Medium.ttf");
|
||||
|
||||
//settings
|
||||
QPixmap settingIcon(":resource/Icons/settingWhite.png");
|
||||
QPainter painter;
|
||||
QColor color(45,84,130);
|
||||
|
||||
painter.begin(&settingIcon);
|
||||
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
|
||||
painter.fillRect(settingIcon.rect(),color);
|
||||
painter.end();
|
||||
|
||||
QIcon icon;
|
||||
icon.addPixmap(settingIcon,QIcon::Normal,QIcon::Off);
|
||||
|
||||
ui->settingsButton->setIcon(icon);
|
||||
|
||||
//caution
|
||||
QPixmap cautionIcon(":resource/Icons/caution.png");
|
||||
|
||||
painter.begin(&cautionIcon);
|
||||
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
|
||||
painter.fillRect(cautionIcon.rect(),color);
|
||||
painter.end();
|
||||
|
||||
icon.addPixmap(cautionIcon,QIcon::Normal,QIcon::Off);
|
||||
|
||||
QSize cautionIconSize(30,30);
|
||||
ui->unsafeChangingButton->setIcon(icon);
|
||||
ui->unsafeChangingButton->setIconSize(cautionIconSize);
|
||||
|
||||
//exit
|
||||
QPixmap crossPixmap(":resource/Icons/crossInCircle.png");
|
||||
QPainter painterCross;
|
||||
QSize iconSize(30,30);
|
||||
|
||||
painter.begin(&crossPixmap);
|
||||
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
|
||||
painter.fillRect(crossPixmap.rect(),color);
|
||||
painter.end();
|
||||
|
||||
QIcon crossIcon;
|
||||
crossIcon.addPixmap(crossPixmap,QIcon::Normal,QIcon::Off);
|
||||
|
||||
ui->exitButton->setIcon(crossIcon);
|
||||
ui->exitButton->setIconSize(iconSize);
|
||||
|
||||
//loading
|
||||
|
||||
movie = new QMovie(":/resource/Icons/762.gif");
|
||||
movieLabel = new QLabel("No movie");
|
||||
movieLabel->setParent(this);
|
||||
movieLabel->setGeometry(367,300,70,70);
|
||||
movieLabel->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
|
||||
movieLabel->setMovie(movie);
|
||||
startLoadingAnim();
|
||||
}
|
||||
|
||||
void MainWindow::startLoadingAnim()
|
||||
{
|
||||
movie->start();
|
||||
movieLabel->show();
|
||||
}
|
||||
|
||||
void MainWindow::stopLoadingMovie()
|
||||
{
|
||||
movie->stop();
|
||||
movieLabel->hide();
|
||||
if (flag)
|
||||
{
|
||||
movieLabel->show();
|
||||
resourceManager->startLoadingAnim();
|
||||
}
|
||||
else
|
||||
{
|
||||
movieLabel->hide();
|
||||
resourceManager->stopLoadingMovie();
|
||||
}
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
|
||||
Reference in New Issue
Block a user