mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 06:15:26 +00:00
Dive pictures: Derive thumbnail file from picture filename
Since commit 6618c9ebfc
, thumbnails
are saved in individual files. The filename was simply the picture-hash.
In a mailing-list discussion it turned out that in the future we might
not hash images or change the hash. Therefore, derive the thumbnail
filename from the image filename, using the SHA1 algorithm.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
b34eeeaba2
commit
80224a98b1
2 changed files with 6 additions and 13 deletions
|
@ -148,7 +148,6 @@ Thumbnailer *Thumbnailer::instance()
|
|||
|
||||
static QImage getThumbnailFromCache(const QString &picture_filename)
|
||||
{
|
||||
// First, check if we know a hash for this filename
|
||||
QString filename = thumbnailFileName(picture_filename);
|
||||
if (filename.isEmpty())
|
||||
return QImage();
|
||||
|
@ -173,14 +172,6 @@ static void addThumbnailToCache(const QImage &thumbnail, const QString &picture_
|
|||
return;
|
||||
|
||||
QString filename = thumbnailFileName(picture_filename);
|
||||
|
||||
// If we got a thumbnail, we are guaranteed to have its hash and therefore
|
||||
// thumbnailFileName() should return a filename.
|
||||
if (filename.isEmpty()) {
|
||||
qWarning() << "Internal error: can't get filename of recently created thumbnail";
|
||||
return;
|
||||
}
|
||||
|
||||
QSaveFile file(filename);
|
||||
if (!file.open(QIODevice::WriteOnly))
|
||||
return;
|
||||
|
|
|
@ -1088,12 +1088,14 @@ static QString thumbnailDir()
|
|||
return QString(system_default_directory()) + "/thumbnails/";
|
||||
}
|
||||
|
||||
// Return filename of thumbnail if it is known to us.
|
||||
// If this is an unknown thumbnail, return an empty string.
|
||||
// Calculate thumbnail filename by hashing name of file.
|
||||
QString thumbnailFileName(const QString &filename)
|
||||
{
|
||||
QString hash = getHash(filename).toHex();
|
||||
return hash.isEmpty() ? QString() : thumbnailDir() + hash;
|
||||
if (filename.isEmpty())
|
||||
return QString();
|
||||
QCryptographicHash hash(QCryptographicHash::Sha1);
|
||||
hash.addData(filename.toUtf8());
|
||||
return thumbnailDir() + hash.result().toHex();
|
||||
}
|
||||
|
||||
extern "C" char *hashfile_name_string()
|
||||
|
|
Loading…
Add table
Reference in a new issue