diff --git a/DOCS/Алексей/Board.md b/DOCS/Алексей/Board.md index b2d8efb..a4ee4a9 100644 --- a/DOCS/Алексей/Board.md +++ b/DOCS/Алексей/Board.md @@ -8,6 +8,7 @@ kanban-plugin: board - [ ] проверить работоспособность без Qt - не работает - [ ] 23 -> связное оборудование -> общая часть +- [ ] Добавить экран первой настройки ## bugs @@ -26,8 +27,7 @@ kanban-plugin: board ## feature client QT -- [ ] Добавить экран первой настройки -- [ ] добавить выбор файлов которые нжно обновить в клиенте и формировать из него список того, что обновляется +- [ ] у RRJClient пробрасывать аргументы в Unity приложение ## feature server @@ -43,6 +43,8 @@ kanban-plugin: board ## Complete +- [ ] починить закрытие во время загрузки +- [ ] добавить выбор файлов которые нжно обновить в клиенте и формировать из него список того, что обновляется - [ ] Связать схемный и реальный манометр - [ ] QT клиент при восстановлении сразу показывают кнопку обновить, а должен вызывать слайдер загрузкии - [ ] при переключении между позициями при режиме панели не сбрасывается fov diff --git a/LibInstructorsAndTrainees/connectorToServer/Core/FileData.h b/LibInstructorsAndTrainees/connectorToServer/Core/FileData.h index a12244d..71e7ccd 100644 --- a/LibInstructorsAndTrainees/connectorToServer/Core/FileData.h +++ b/LibInstructorsAndTrainees/connectorToServer/Core/FileData.h @@ -8,6 +8,7 @@ struct FileData { QString path; QString hash; + QString lastUpdate; bool operator==(const FileData& other)const{ if(this->path==(other.path) && this->hash == other.hash) return true; diff --git a/LibInstructorsAndTrainees/connectorToServer/Core/dataparser.cpp b/LibInstructorsAndTrainees/connectorToServer/Core/dataparser.cpp index f4c03aa..7675d19 100644 --- a/LibInstructorsAndTrainees/connectorToServer/Core/dataparser.cpp +++ b/LibInstructorsAndTrainees/connectorToServer/Core/dataparser.cpp @@ -44,6 +44,7 @@ void DataParser::createFileDataList(QList fileDataList,QString filenam xmlWriter.writeAttribute("Path",data.path); xmlWriter.writeAttribute("Hash",data.hash); + xmlWriter.writeAttribute("LastUpdate",data.lastUpdate); xmlWriter.writeEndElement(); } @@ -499,6 +500,8 @@ QList* DataParser::xmlFileDataParse(QByteArray array, QString filter = data.path = value; else if(name == "Hash") data.hash = value; + else if(name == "LastUpdate") + data.lastUpdate = value; } if(data.path.contains(filter)) diff --git a/LibServer/Data/typesDataServerClient.h b/LibServer/Data/typesDataServerClient.h index 5db5438..a55d1cd 100644 --- a/LibServer/Data/typesDataServerClient.h +++ b/LibServer/Data/typesDataServerClient.h @@ -19,6 +19,7 @@ struct FileData { QString path; QString hash; + QString lastUpdate; bool operator==(const FileData& other)const { diff --git a/LibServer/Systems/fasthashcalculator.cpp b/LibServer/Systems/fasthashcalculator.cpp index 6c66661..a15975d 100644 --- a/LibServer/Systems/fasthashcalculator.cpp +++ b/LibServer/Systems/fasthashcalculator.cpp @@ -61,6 +61,8 @@ void FastHashCalculator::calculateHashes(QString path) QtConcurrent::map(files, [this](const QString &filePath) { + QFileInfo fileinfo(filePath); + QByteArray hash = calculateFileHashOptimized(filePath); QMutexLocker locker(&_mutex); FileData currentFile; @@ -68,6 +70,7 @@ void FastHashCalculator::calculateHashes(QString path) currentFile.path = Tools::createLocalPath(filePath); currentFile.hash = hash.toHex(); + currentFile.lastUpdate = fileinfo.fileTime(QFileDevice::FileModificationTime).toString("dd.MM.yyyy hh:mm:ss"); hashList->append(currentFile); }).waitForFinished(); diff --git a/LibServer/Systems/updatecontroller.cpp b/LibServer/Systems/updatecontroller.cpp index 3b3eae7..02f1fb1 100644 --- a/LibServer/Systems/updatecontroller.cpp +++ b/LibServer/Systems/updatecontroller.cpp @@ -149,6 +149,7 @@ void UpdateController::saveHash(QString fileName,QList *fileList) xmlWriter.writeAttribute("Path",data.path); xmlWriter.writeAttribute("Hash",data.hash); + xmlWriter.writeAttribute("LastUpdate",data.lastUpdate); xmlWriter.writeEndElement(); } @@ -162,6 +163,7 @@ void UpdateController::saveHash(QString fileName,QList *fileList) QList* UpdateController::loadHash(QString filename) { + //TODO: дублируется функционал DataParser QList *files = new QList(); QFile hashFile(filename); @@ -190,6 +192,8 @@ QList* UpdateController::loadHash(QString filename) data.path = value; else if(name == "Hash") data.hash = value; + else if(name == "LastUpdate") + data.lastUpdate = value; } files->append(data);