mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
bugfix: update without hot update
This commit is contained in:
@@ -146,7 +146,6 @@ void UpdateController::updateFilesOnServer(QList<FileData> *fileSendList){
|
||||
}
|
||||
|
||||
calculateCommonHash();
|
||||
sendSystem->sendPacketType(PacketType::TYPE_FINISH);
|
||||
sendSystem->sendPacketType(PacketType::RECALCULATE_DOCS);
|
||||
emit sigUpdateComplete(true);
|
||||
}
|
||||
|
||||
@@ -206,15 +206,8 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
||||
|
||||
}
|
||||
|
||||
if (packetType ==PacketType::TYPE_FINISH) //для повторного создания хэша после загрузки
|
||||
{
|
||||
postProcessorSystem->calculateCommonHash();
|
||||
|
||||
emit sigLoadComplete();
|
||||
packetType = PacketType::TYPE_NONE;
|
||||
}
|
||||
|
||||
if(packetType == PacketType::TYPE_NEEDUPDATE){ //нужно обновление
|
||||
if(packetType == PacketType::TYPE_NEEDUPDATE)
|
||||
{ //нужно обновление
|
||||
|
||||
bool flag = false;
|
||||
quint64 size = 0;
|
||||
@@ -254,7 +247,7 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
||||
emit sigCheckUpdate();
|
||||
}
|
||||
|
||||
if(packetType == PacketType::HASH_CALCULATE_START)
|
||||
if(packetType == PacketType::RECALCULATE_HASH)
|
||||
{
|
||||
emit sigdRecalculateHashOnServerState();
|
||||
}
|
||||
@@ -269,10 +262,19 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
||||
emit sigAnimationActivated(false);
|
||||
}
|
||||
|
||||
if(packetType == PacketType::TYPE_XMLANSWER_DOCS_CHANGED)
|
||||
if (packetType == PacketType::TYPE_XMLANSWER_DOCS_CHANGED) //на случай общего обновления
|
||||
{
|
||||
emit sigSendPacketType(PacketType::GET_DOCS);
|
||||
}
|
||||
|
||||
if (packetType == PacketType::UPDATE_FILE_COMPLETE)
|
||||
{
|
||||
postProcessorSystem->calculateCommonHash();
|
||||
emit sigLoadComplete();
|
||||
emit sigSendPacketType(PacketType::GET_DOCS);
|
||||
packetType = PacketType::TYPE_NONE;
|
||||
}
|
||||
|
||||
packetType = PacketType::TYPE_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,9 @@ signals:
|
||||
void sigCheckUpdate();
|
||||
void sigdRecalculateHashOnServerState();
|
||||
void sigSendPacketType(PacketType packetType);
|
||||
void sigSendPacketTypeWithDelay(PacketType packetType,int delay);
|
||||
void sigSendToInlineLog(QString message);
|
||||
void sigCallUpdateList();
|
||||
|
||||
private:
|
||||
VersionContainer *versionContainer;
|
||||
|
||||
@@ -165,12 +165,47 @@ void SendSystem::sendPacketType(PacketType packetType)
|
||||
stream << packetType;
|
||||
}
|
||||
|
||||
void SendSystem::sendPacketTypeWithDelay(PacketType packetType,int delay)
|
||||
{
|
||||
QDataStream stream(socket);
|
||||
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
||||
socket->waitForReadyRead(delay);
|
||||
stream << packetType;
|
||||
}
|
||||
void SendSystem::sendCheckHash()
|
||||
{
|
||||
QDataStream stream(socket);
|
||||
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
||||
QString fullPath = Tools::createSendFullPath(staticDataFolderName + hashFilename);
|
||||
|
||||
sendFileBlock(staticDataFolderName + hashFilename);
|
||||
quint64 fileSize = 0;
|
||||
int countSend = 0;
|
||||
|
||||
|
||||
QFile file(fullPath); //Открываем файл для чтения
|
||||
QFileInfo fileInfo(file);
|
||||
|
||||
fileSize = fileInfo.size();
|
||||
|
||||
stream << PacketType::SEND_HASH; //Отправляем тип блока
|
||||
stream << fileSize;
|
||||
|
||||
socket->waitForReadyRead(20);
|
||||
//socket->waitForBytesWritten();
|
||||
|
||||
if(file.open(QFile::ReadOnly)){
|
||||
while(!file.atEnd()){
|
||||
QByteArray data = file.read(readSize);
|
||||
stream << data;
|
||||
socket->waitForBytesWritten(20);
|
||||
countSend++;
|
||||
}
|
||||
|
||||
qDebug() << Tools::getTime() << "count end Final: " << countSend;
|
||||
}
|
||||
|
||||
file.close();
|
||||
countSend = 0;
|
||||
|
||||
socket->waitForReadyRead(2000);
|
||||
stream << PacketType::TYPE_CHECK_VERSION;
|
||||
|
||||
@@ -25,6 +25,7 @@ public:
|
||||
void sendCheckHash();
|
||||
void sendPacketType(PacketType packetType);
|
||||
~SendSystem(){};
|
||||
void sendPacketTypeWithDelay(PacketType packetType, int delay);
|
||||
signals:
|
||||
void sigSend();
|
||||
QByteArray sigGetXmlAnswer(QString);
|
||||
|
||||
@@ -39,13 +39,14 @@ enum PacketType{
|
||||
TYPE_COMMAND = 3,
|
||||
TYPE_FOLDER = 4,
|
||||
TYPE_DELETE = 5,
|
||||
TYPE_FINISH = 6,
|
||||
UPDATE_FILE_COMPLETE = 6,
|
||||
TYPE_NEEDUPDATE = 7,
|
||||
TYPE_XMLANSWER = 8,
|
||||
TYPE_QT = 9,
|
||||
TYPE_DISABLE = 11,
|
||||
TYPE_UPDATE = 12,
|
||||
TYPE_CHECK_VERSION = 13,
|
||||
UPDATE_DOCS_COMPLETE = 22,
|
||||
|
||||
TYPE_XMLANSWER_DOCS_CHANGED = 132,
|
||||
|
||||
@@ -55,9 +56,10 @@ enum PacketType{
|
||||
DELETE_DATA_VERSION = 153,
|
||||
BUSY = 154,
|
||||
FREE = 155,
|
||||
HASH_CALCULATE_START = 156,
|
||||
RECALCULATE_HASH = 156,
|
||||
RECALCULATE_DOCS = 157,
|
||||
GET_DOCS = 158
|
||||
GET_DOCS = 158,
|
||||
SEND_HASH = 159
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<AuthData Login="I1" Password="b59c67bf196a4758191e42f76670ceba" InstructorName="Петрушкин А.А." ClientName="Петрушкин А.А." AccessType="instructor"/>
|
||||
<AuthData Login="I1" Password="b59c67bf196a4758191e42f76670ceba" InstructorName="Instructor1" ClientName="Instructor1" AccessType="instructor"/>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<ServerSettingsContainer>
|
||||
<ServerSettings AutoStart="0" DestPortMath="18003" Language="RUS" UseMathModel="1" Port="6000" Address="192.168.100.83" LocalPortMath="18004"/>
|
||||
<VersionData Created="Пн ноя 17 15:59:34 2025" isChangable="1" Version="custom"/>
|
||||
<ServerSettings UseMathModel="1" Address="192.168.100.83" DestPortMath="18003" LocalPortMath="18004" Language="RUS" AutoStart="0" Port="6000"/>
|
||||
<VersionData isChangable="1" Version="base7" Created="Ср ноя 19 16:34:14 2025"/>
|
||||
</ServerSettingsContainer>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@ void CommonButtonGroupWidget::updateProgressBar(float value)
|
||||
void CommonButtonGroupWidget::loadCompleteState()
|
||||
{
|
||||
show();
|
||||
ui->updateButton->setEnabled(false);
|
||||
ui->updateButton->hide();
|
||||
ui->startButton->setEnabled(true);
|
||||
ui->loadingProgressBar->setValue(100);
|
||||
ui->startButton->show();
|
||||
|
||||
@@ -91,6 +91,9 @@ void CoreManager::binding()
|
||||
connect(recognizeSystem,&RecognizeSystem::sigCheckUpdate,this,&CoreManager::checkUpdate,Qt::AutoConnection);
|
||||
connect(recognizeSystem,&RecognizeSystem::sigdRecalculateHashOnServerState,this,&CoreManager::recalculateState,Qt::AutoConnection);
|
||||
connect(recognizeSystem,&RecognizeSystem::sigSendPacketType,this,&CoreManager::sendPacketType,Qt::AutoConnection);
|
||||
connect(recognizeSystem,&RecognizeSystem::sigSendPacketTypeWithDelay,sendSystem,&SendSystem::sendPacketTypeWithDelay,Qt::AutoConnection);
|
||||
connect(recognizeSystem,&RecognizeSystem::sigSendToInlineLog,this,&CoreManager::setInlineDebug,Qt::AutoConnection);
|
||||
connect(recognizeSystem,&RecognizeSystem::sigCallUpdateList,this,&CoreManager::callUpdateList,Qt::AutoConnection);
|
||||
|
||||
connect(hashComparer,&HashComparer::sigCallCheck,this,&CoreManager::checkUpdate);
|
||||
connect(hashComparer,&HashComparer::sigHaveDelta,this,&CoreManager::checkUpdateInfo);
|
||||
@@ -223,13 +226,18 @@ void CoreManager::checkUpdate()
|
||||
{
|
||||
widgetManager->activateLoadingAnimation(true);
|
||||
emit sigSendCheckUpdate();
|
||||
widgetManager->getMainWindow()->setInlineDebug(tr("Проверка обновлений..."));
|
||||
setInlineDebug(tr("Проверка обновлений..."));
|
||||
}
|
||||
|
||||
void CoreManager::recalculateState()
|
||||
{
|
||||
widgetManager->activateLoadingAnimation(true);
|
||||
widgetManager->getMainWindow()->setInlineDebug(tr("Пересчет хэша на сервере..."));
|
||||
setInlineDebug(tr("Пересчет хэша на сервере..."));
|
||||
}
|
||||
|
||||
void CoreManager::setInlineDebug(QString text)
|
||||
{
|
||||
widgetManager->getMainWindow()->setInlineDebug(text);
|
||||
}
|
||||
|
||||
void CoreManager::checkAccessType(const QString& accessType)
|
||||
|
||||
@@ -103,6 +103,7 @@ private:
|
||||
void checkNeedUpdate(bool flag, quint64 size, quint64 fileCount, quint64 deleteCount);
|
||||
void checkUpdate();
|
||||
|
||||
void setInlineDebug(QString text);
|
||||
};
|
||||
|
||||
#endif // COREMANAGER_H
|
||||
|
||||
Reference in New Issue
Block a user