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();
|
calculateCommonHash();
|
||||||
sendSystem->sendPacketType(PacketType::TYPE_FINISH);
|
|
||||||
sendSystem->sendPacketType(PacketType::RECALCULATE_DOCS);
|
sendSystem->sendPacketType(PacketType::RECALCULATE_DOCS);
|
||||||
emit sigUpdateComplete(true);
|
emit sigUpdateComplete(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -206,15 +206,8 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (packetType ==PacketType::TYPE_FINISH) //для повторного создания хэша после загрузки
|
if(packetType == PacketType::TYPE_NEEDUPDATE)
|
||||||
{
|
{ //нужно обновление
|
||||||
postProcessorSystem->calculateCommonHash();
|
|
||||||
|
|
||||||
emit sigLoadComplete();
|
|
||||||
packetType = PacketType::TYPE_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(packetType == PacketType::TYPE_NEEDUPDATE){ //нужно обновление
|
|
||||||
|
|
||||||
bool flag = false;
|
bool flag = false;
|
||||||
quint64 size = 0;
|
quint64 size = 0;
|
||||||
@@ -254,7 +247,7 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
|||||||
emit sigCheckUpdate();
|
emit sigCheckUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(packetType == PacketType::HASH_CALCULATE_START)
|
if(packetType == PacketType::RECALCULATE_HASH)
|
||||||
{
|
{
|
||||||
emit sigdRecalculateHashOnServerState();
|
emit sigdRecalculateHashOnServerState();
|
||||||
}
|
}
|
||||||
@@ -269,10 +262,19 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
|||||||
emit sigAnimationActivated(false);
|
emit sigAnimationActivated(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(packetType == PacketType::TYPE_XMLANSWER_DOCS_CHANGED)
|
if (packetType == PacketType::TYPE_XMLANSWER_DOCS_CHANGED) //на случай общего обновления
|
||||||
{
|
{
|
||||||
emit sigSendPacketType(PacketType::GET_DOCS);
|
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;
|
packetType = PacketType::TYPE_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,9 @@ signals:
|
|||||||
void sigCheckUpdate();
|
void sigCheckUpdate();
|
||||||
void sigdRecalculateHashOnServerState();
|
void sigdRecalculateHashOnServerState();
|
||||||
void sigSendPacketType(PacketType packetType);
|
void sigSendPacketType(PacketType packetType);
|
||||||
|
void sigSendPacketTypeWithDelay(PacketType packetType,int delay);
|
||||||
|
void sigSendToInlineLog(QString message);
|
||||||
|
void sigCallUpdateList();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
VersionContainer *versionContainer;
|
VersionContainer *versionContainer;
|
||||||
|
|||||||
@@ -165,12 +165,47 @@ void SendSystem::sendPacketType(PacketType packetType)
|
|||||||
stream << 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()
|
void SendSystem::sendCheckHash()
|
||||||
{
|
{
|
||||||
QDataStream stream(socket);
|
QDataStream stream(socket);
|
||||||
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
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);
|
socket->waitForReadyRead(2000);
|
||||||
stream << PacketType::TYPE_CHECK_VERSION;
|
stream << PacketType::TYPE_CHECK_VERSION;
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ public:
|
|||||||
void sendCheckHash();
|
void sendCheckHash();
|
||||||
void sendPacketType(PacketType packetType);
|
void sendPacketType(PacketType packetType);
|
||||||
~SendSystem(){};
|
~SendSystem(){};
|
||||||
|
void sendPacketTypeWithDelay(PacketType packetType, int delay);
|
||||||
signals:
|
signals:
|
||||||
void sigSend();
|
void sigSend();
|
||||||
QByteArray sigGetXmlAnswer(QString);
|
QByteArray sigGetXmlAnswer(QString);
|
||||||
|
|||||||
@@ -39,13 +39,14 @@ enum PacketType{
|
|||||||
TYPE_COMMAND = 3,
|
TYPE_COMMAND = 3,
|
||||||
TYPE_FOLDER = 4,
|
TYPE_FOLDER = 4,
|
||||||
TYPE_DELETE = 5,
|
TYPE_DELETE = 5,
|
||||||
TYPE_FINISH = 6,
|
UPDATE_FILE_COMPLETE = 6,
|
||||||
TYPE_NEEDUPDATE = 7,
|
TYPE_NEEDUPDATE = 7,
|
||||||
TYPE_XMLANSWER = 8,
|
TYPE_XMLANSWER = 8,
|
||||||
TYPE_QT = 9,
|
TYPE_QT = 9,
|
||||||
TYPE_DISABLE = 11,
|
TYPE_DISABLE = 11,
|
||||||
TYPE_UPDATE = 12,
|
TYPE_UPDATE = 12,
|
||||||
TYPE_CHECK_VERSION = 13,
|
TYPE_CHECK_VERSION = 13,
|
||||||
|
UPDATE_DOCS_COMPLETE = 22,
|
||||||
|
|
||||||
TYPE_XMLANSWER_DOCS_CHANGED = 132,
|
TYPE_XMLANSWER_DOCS_CHANGED = 132,
|
||||||
|
|
||||||
@@ -55,9 +56,10 @@ enum PacketType{
|
|||||||
DELETE_DATA_VERSION = 153,
|
DELETE_DATA_VERSION = 153,
|
||||||
BUSY = 154,
|
BUSY = 154,
|
||||||
FREE = 155,
|
FREE = 155,
|
||||||
HASH_CALCULATE_START = 156,
|
RECALCULATE_HASH = 156,
|
||||||
RECALCULATE_DOCS = 157,
|
RECALCULATE_DOCS = 157,
|
||||||
GET_DOCS = 158
|
GET_DOCS = 158,
|
||||||
|
SEND_HASH = 159
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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'?>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<ServerSettingsContainer>
|
<ServerSettingsContainer>
|
||||||
<ServerSettings AutoStart="0" DestPortMath="18003" Language="RUS" UseMathModel="1" Port="6000" Address="192.168.100.83" LocalPortMath="18004"/>
|
<ServerSettings UseMathModel="1" Address="192.168.100.83" DestPortMath="18003" LocalPortMath="18004" Language="RUS" AutoStart="0" Port="6000"/>
|
||||||
<VersionData Created="Пн ноя 17 15:59:34 2025" isChangable="1" Version="custom"/>
|
<VersionData isChangable="1" Version="base7" Created="Ср ноя 19 16:34:14 2025"/>
|
||||||
</ServerSettingsContainer>
|
</ServerSettingsContainer>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@ void CommonButtonGroupWidget::updateProgressBar(float value)
|
|||||||
void CommonButtonGroupWidget::loadCompleteState()
|
void CommonButtonGroupWidget::loadCompleteState()
|
||||||
{
|
{
|
||||||
show();
|
show();
|
||||||
ui->updateButton->setEnabled(false);
|
ui->updateButton->hide();
|
||||||
ui->startButton->setEnabled(true);
|
ui->startButton->setEnabled(true);
|
||||||
ui->loadingProgressBar->setValue(100);
|
ui->loadingProgressBar->setValue(100);
|
||||||
ui->startButton->show();
|
ui->startButton->show();
|
||||||
|
|||||||
@@ -91,6 +91,9 @@ void CoreManager::binding()
|
|||||||
connect(recognizeSystem,&RecognizeSystem::sigCheckUpdate,this,&CoreManager::checkUpdate,Qt::AutoConnection);
|
connect(recognizeSystem,&RecognizeSystem::sigCheckUpdate,this,&CoreManager::checkUpdate,Qt::AutoConnection);
|
||||||
connect(recognizeSystem,&RecognizeSystem::sigdRecalculateHashOnServerState,this,&CoreManager::recalculateState,Qt::AutoConnection);
|
connect(recognizeSystem,&RecognizeSystem::sigdRecalculateHashOnServerState,this,&CoreManager::recalculateState,Qt::AutoConnection);
|
||||||
connect(recognizeSystem,&RecognizeSystem::sigSendPacketType,this,&CoreManager::sendPacketType,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::sigCallCheck,this,&CoreManager::checkUpdate);
|
||||||
connect(hashComparer,&HashComparer::sigHaveDelta,this,&CoreManager::checkUpdateInfo);
|
connect(hashComparer,&HashComparer::sigHaveDelta,this,&CoreManager::checkUpdateInfo);
|
||||||
@@ -223,13 +226,18 @@ void CoreManager::checkUpdate()
|
|||||||
{
|
{
|
||||||
widgetManager->activateLoadingAnimation(true);
|
widgetManager->activateLoadingAnimation(true);
|
||||||
emit sigSendCheckUpdate();
|
emit sigSendCheckUpdate();
|
||||||
widgetManager->getMainWindow()->setInlineDebug(tr("Проверка обновлений..."));
|
setInlineDebug(tr("Проверка обновлений..."));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoreManager::recalculateState()
|
void CoreManager::recalculateState()
|
||||||
{
|
{
|
||||||
widgetManager->activateLoadingAnimation(true);
|
widgetManager->activateLoadingAnimation(true);
|
||||||
widgetManager->getMainWindow()->setInlineDebug(tr("Пересчет хэша на сервере..."));
|
setInlineDebug(tr("Пересчет хэша на сервере..."));
|
||||||
|
}
|
||||||
|
|
||||||
|
void CoreManager::setInlineDebug(QString text)
|
||||||
|
{
|
||||||
|
widgetManager->getMainWindow()->setInlineDebug(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoreManager::checkAccessType(const QString& accessType)
|
void CoreManager::checkAccessType(const QString& accessType)
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ private:
|
|||||||
void checkNeedUpdate(bool flag, quint64 size, quint64 fileCount, quint64 deleteCount);
|
void checkNeedUpdate(bool flag, quint64 size, quint64 fileCount, quint64 deleteCount);
|
||||||
void checkUpdate();
|
void checkUpdate();
|
||||||
|
|
||||||
|
void setInlineDebug(QString text);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // COREMANAGER_H
|
#endif // COREMANAGER_H
|
||||||
|
|||||||
Reference in New Issue
Block a user