Files
RRJClient/Core/hashcomparer.cpp
2025-01-20 10:59:01 +03:00

74 lines
1.5 KiB
C++

#include "hashcomparer.h"
#include <QCoreApplication>
#include <updatenotifywidget.h>
HashComparer::HashComparer(DataParser *dataParser,QObject *)
{
this->dataParser = dataParser;
}
void HashComparer::CompareDeltas()
{
QList<FileData> *serverStreamingHash = new QList<FileData>;
QList<FileData> *localStreamingHash = new QList<FileData>;
QFile file(serverHash);
file.open(QIODevice::ReadOnly | QIODevice::Text);
serverStreamingHash = dataParser->xmlFileDataParse(file.readAll(),"StreamingAssets");
file.close();
QFile file2(streamingHashFilename);
file2.open(QIODevice::ReadOnly | QIODevice::Text);
localStreamingHash = dataParser->xmlFileDataParse(file2.readAll(),"StreamingAssets");
file2.close();
QMutableListIterator<FileData> iterator(*localStreamingHash);
for (auto &item:*localStreamingHash)
{
if(serverStreamingHash->contains(item))
{
serverStreamingHash->removeOne(item);
localStreamingHash->removeOne(item);
}
}
filesForUpdate = localStreamingHash;
showDeltas();
}
void HashComparer::showDeltas()
{
if (filesForUpdate->length() <= 0)
{
emit sigCallCheck();
return;
}
for (auto &item:*filesForUpdate)
{
updateWidget->addToList(item);
}
emit sigHaveDelta();
}
void HashComparer::setWidget(UpdateNotifyWidget* updateWidget)
{
this->updateWidget = updateWidget;
}
QList<FileData> *HashComparer::getFilesForUpdate() const
{
return filesForUpdate;
}
HashComparer::~HashComparer()
{
}