From f5eafe2a713998b345027373a26ad73af9e060b5 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sun, 18 Feb 2018 14:57:42 +0100 Subject: Cleanup: Fold add_hash() call into learnHash() function learnHash() was always called in conjunction with add_hash(). The pattern was that a local filename and a hash were connected in the hash-to-filename and the filename-to-hash maps. Then, the original picture-filename or url were registered in the filename-to-hash map. This commit changes learnHash() to take three parameters (original-filename, local-filename and hash) and do all of the above. The new code is simpler because no dummy picture struct has to be generated in DiveListView::loadImageFromURL(). The tests were extended to check for all hash<->filename associations. Signed-off-by: Berthold Stoeger --- core/imagedownloader.cpp | 3 +-- core/qthelper.cpp | 5 +++-- core/qthelper.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'core') diff --git a/core/imagedownloader.cpp b/core/imagedownloader.cpp index 3b55dfd06..e486830d2 100644 --- a/core/imagedownloader.cpp +++ b/core/imagedownloader.cpp @@ -71,8 +71,7 @@ void ImageDownloader::saveImage(QNetworkReply *reply, bool &success) stream.writeRawData(imageData.data(), imageData.length()); imageFile.waitForBytesWritten(-1); imageFile.close(); - add_hash(imageFile.fileName(), hash.result()); - learnHash(picture, hash.result()); + learnHash(QString(picture->filename), imageFile.fileName(), hash.result()); } // This should be called to make the picture actually show. // Problem is DivePictureModel is not in core. diff --git a/core/qthelper.cpp b/core/qthelper.cpp index 0029ca13a..e03f86739 100644 --- a/core/qthelper.cpp +++ b/core/qthelper.cpp @@ -1149,12 +1149,13 @@ QByteArray hashFile(const QString filename) } } -void learnHash(const struct picture *picture, QByteArray hash) +void learnHash(const QString &originalName, const QString &localName, const QByteArray &hash) { if (hash.isNull()) return; + add_hash(localName, hash); QMutexLocker locker(&hashOfMutex); - hashOf[QString(picture->filename)] = hash; + hashOf[originalName] = hash; } static bool haveHash(const QString &filename) diff --git a/core/qthelper.h b/core/qthelper.h index a71960c86..948ca234d 100644 --- a/core/qthelper.h +++ b/core/qthelper.h @@ -40,7 +40,7 @@ void hashPicture(struct picture *picture); extern "C" char *hashstring(const char *filename); QString localFilePath(const QString originalFilename); QString fileFromHash(const char *hash); -void learnHash(const struct picture *picture, QByteArray hash); +void learnHash(const QString &originalName, const QString &localName, const QByteArray &hash); weight_t string_to_weight(const char *str); depth_t string_to_depth(const char *str); pressure_t string_to_pressure(const char *str); -- cgit v1.2.3-70-g09d2