bugfix: fast change version

This commit is contained in:
semenov
2025-07-23 13:21:56 +03:00
parent 71215cf5ec
commit d2ec916793
2 changed files with 22 additions and 21 deletions

View File

@@ -65,7 +65,8 @@ void UpdateController::deleteAssetVersion(QString versionName)
void UpdateController::compareFiles(ClientHandler* handler, QByteArray array) void UpdateController::compareFiles(ClientHandler* handler, QByteArray array)
{ {
mutex->lock(); mutex->lock();
loadHash(); serverDataList.clear();
serverDataList = *loadHash(hashFileName);
clientDataList.clear(); clientDataList.clear();
xmlFileDataParse(array); xmlFileDataParse(array);
checkNeedUpdate(handler); checkNeedUpdate(handler);
@@ -95,7 +96,7 @@ void UpdateController::calculateFullHash()
void UpdateController::calculateFullHashWithSetup() void UpdateController::calculateFullHashWithSetup()
{ {
commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_CALCULATE_START); commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_CALCULATE_START);
calculateFullHash(); calculateCurrentSharedHash();
setUpCurrentServerHash(); setUpCurrentServerHash();
commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY); commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY);
} }
@@ -129,11 +130,11 @@ void UpdateController::saveHash(QString fileName,QList<FileData> *fileList)
} }
void UpdateController::loadHash() QList<FileData>* UpdateController::loadHash(QString filename)
{ {
serverDataList.clear(); QList<FileData> *files = new QList<FileData>();
QFile hashFile(hashFileName); QFile hashFile(filename);
QByteArray array; QByteArray array;
if(hashFile.open(QIODevice::ReadOnly)){ if(hashFile.open(QIODevice::ReadOnly)){
array = hashFile.readAll(); array = hashFile.readAll();
@@ -161,7 +162,7 @@ void UpdateController::loadHash()
data.hash = value; data.hash = value;
} }
serverDataList.append(data); files->append(data);
} }
} }
@@ -171,6 +172,8 @@ void UpdateController::loadHash()
emit sigLogMessage("Hash load from file "); emit sigLogMessage("Hash load from file ");
return files;
} }
void UpdateController::calculateSize() void UpdateController::calculateSize()
@@ -203,12 +206,13 @@ QString UpdateController::getCommands()
void UpdateController::setUpCurrentServerHash() void UpdateController::setUpCurrentServerHash()
{ {
QList<FileData> *fileList = new QList<FileData>; QList<FileData> *fileList = new QList<FileData>;
fileList->append(*calculateHash(buildPath)); fileList->append(*loadHash(buildHashName));
FileData *streamingFolder = new FileData; FileData *streamingFolder = new FileData;
streamingFolder->hash = "FOLDER"; streamingFolder->hash = "FOLDER";
streamingFolder->path = buildDataPath + streamingAssetsFolderName; streamingFolder->path = buildDataPath + streamingAssetsFolderName;
fileList->append(*streamingFolder); fileList->append(*streamingFolder);
fileList->append(*calculateHash(currentStreamingPath)); QString streamingHashFileName = Tools::createVersionHashFilepath(assetManager->getCurrentVersionData()->getViewName());
fileList->append(*loadHash(streamingHashFileName));
assetManager->prepareLocalPathList(fileList); assetManager->prepareLocalPathList(fileList);
saveHash(hashFileName,fileList); saveHash(hashFileName,fileList);
@@ -462,23 +466,19 @@ void UpdateController::calculateSharedHash()
StreamingVersionData *version = new StreamingVersionData( StreamingVersionData *version = new StreamingVersionData(
fileInfo.absoluteFilePath(),fileInfo.fileName(), fileInfo.absoluteFilePath(),fileInfo.fileName(),
fileInfo.birthTime(),fileInfo.size()); fileInfo.birthTime(),fileInfo.size());
// if(fileInfo.fileName() == baseNameVersion)
// {
// version->setIsChangeable(false);
// version->setAuthor(tr("Константа-дизайн"));
// }
// else
// {
// version->setIsChangeable(true);
// }
versionList->append(version); versionList->append(version);
} }
assetManager->createFirstVersionListXML(*versionList); assetManager->createFirstVersionListXML(*versionList);
//assetManager->setVersionList(versionList); }
void UpdateController::calculateCurrentSharedHash()
{
QList<FileData> *fileList = new QList<FileData>;
QString fileName = Tools::createVersionHashFilepath(assetManager->getCurrentVersionData()->getViewName());
fileList = calculateHash(currentStreamingPath);
saveHash(fileName,fileList);
} }
void UpdateController::sendNewVersionList() void UpdateController::sendNewVersionList()

View File

@@ -96,9 +96,10 @@ private:
void setLocalFileData(QList<FileData> dataList); void setLocalFileData(QList<FileData> dataList);
void calculateSize(); void calculateSize();
void saveHash(QString fileName,QList<FileData> *fileList); void saveHash(QString fileName,QList<FileData> *fileList);
void loadHash(); QList<FileData>* loadHash(QString fileName);
void CalculateSizeToSend(QList<FileData> diffList); void CalculateSizeToSend(QList<FileData> diffList);
bool checkRequiredFolder(); bool checkRequiredFolder();
void calculateCurrentSharedHash();
}; };
#endif // UPDATECONTROLLER_H #endif // UPDATECONTROLLER_H