diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index 709abd481..4ca16c11f 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -191,7 +191,7 @@ void WebApplication::sendWebUIFile() sendFile(localPath); } -void WebApplication::translateDocument(QString &data) +void WebApplication::translateDocument(QString &data) const { const QRegularExpression regex("QBT_TR\\((([^\\)]|\\)(?!QBT_TR))+)\\)QBT_TR\\[CONTEXT=([a-zA-Z_][a-zA-Z0-9_]*)\\]"); @@ -368,11 +368,10 @@ void WebApplication::sendFile(const QString &path) const QDateTime lastModified {QFileInfo(path).lastModified()}; // find translated file in cache - auto it = m_translatedFiles.constFind(path); - if ((it != m_translatedFiles.constEnd()) && (lastModified <= (*it).lastModified)) { - const QString mimeName {QMimeDatabase().mimeTypeForFileNameAndData(path, (*it).data).name()}; - print((*it).data, mimeName); - header(Http::HEADER_CACHE_CONTROL, getCachingInterval(mimeName)); + const auto it = m_translatedFiles.constFind(path); + if ((it != m_translatedFiles.constEnd()) && (lastModified <= it->lastModified)) { + print(it->data, it->mimeType); + header(Http::HEADER_CACHE_CONTROL, getCachingInterval(it->mimeType)); return; } @@ -400,7 +399,7 @@ void WebApplication::sendFile(const QString &path) translateDocument(dataStr); data = dataStr.toUtf8(); - m_translatedFiles[path] = {data, lastModified}; // caching translated file + m_translatedFiles[path] = {data, mimeType.name(), lastModified}; // caching translated file } print(data, mimeType.name()); diff --git a/src/webui/webapplication.h b/src/webui/webapplication.h index 435c5fcb1..43b74d80c 100644 --- a/src/webui/webapplication.h +++ b/src/webui/webapplication.h @@ -105,7 +105,7 @@ private: void sendFile(const QString &path); void sendWebUIFile(); - void translateDocument(QString &data); + void translateDocument(QString &data) const; // Session management QString generateSid() const; @@ -136,6 +136,7 @@ private: struct TranslatedFile { QByteArray data; + QString mimeType; QDateTime lastModified; }; QHash m_translatedFiles;