bugfix: update without hot update

This commit is contained in:
semenov
2025-11-20 12:14:34 +03:00
parent 4829647e98
commit a2e64ecb68
14 changed files with 13161 additions and 13125 deletions

View File

@@ -146,7 +146,6 @@ void UpdateController::updateFilesOnServer(QList<FileData> *fileSendList){
}
calculateCommonHash();
sendSystem->sendPacketType(PacketType::TYPE_FINISH);
sendSystem->sendPacketType(PacketType::RECALCULATE_DOCS);
emit sigUpdateComplete(true);
}

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -25,6 +25,7 @@ public:
void sendCheckHash();
void sendPacketType(PacketType packetType);
~SendSystem(){};
void sendPacketTypeWithDelay(PacketType packetType, int delay);
signals:
void sigSend();
QByteArray sigGetXmlAnswer(QString);

View File

@@ -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
};

View File

@@ -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

View File

@@ -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

View File

@@ -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();

View File

@@ -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)

View File

@@ -103,6 +103,7 @@ private:
void checkNeedUpdate(bool flag, quint64 size, quint64 fileCount, quint64 deleteCount);
void checkUpdate();
void setInlineDebug(QString text);
};
#endif // COREMANAGER_H