From 49a1a14009223e0a9fd6ad6adefc64da06940b1b Mon Sep 17 00:00:00 2001 From: Albert S Date: Sat, 22 Oct 2022 15:07:46 +0200 Subject: [PATCH] gui: previewgenerator: Use QHash and guard using mutexes --- gui/previewgenerator.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gui/previewgenerator.cpp b/gui/previewgenerator.cpp index 1e0b2ce..d46e0de 100644 --- a/gui/previewgenerator.cpp +++ b/gui/previewgenerator.cpp @@ -1,20 +1,24 @@ #include "../shared/common.h" #include "previewgenerator.h" +#include #include "previewgeneratorpdf.h" #include "previewgeneratorplaintext.h" #include "previewgeneratorodt.h" static PreviewGenerator *plainTextGenerator = new PreviewGeneratorPlainText(); -static QMap generators{ +static QHash generators{ {"pdf", new PreviewGeneratorPdf()}, {"txt", plainTextGenerator}, {"md", plainTextGenerator}, {"py", plainTextGenerator}, {"java", plainTextGenerator}, {"js", plainTextGenerator}, {"cpp", plainTextGenerator}, {"c", plainTextGenerator}, {"sql", plainTextGenerator}, {"odt", new PreviewGeneratorOdt()}}; +static QMutex generatorsMutex; PreviewGenerator *PreviewGenerator::get(QFileInfo &info) { + QMutexLocker locker(&generatorsMutex); PreviewGenerator *result = generators.value(info.suffix(), nullptr); + locker.unlock(); if(result == nullptr) { if(Common::isTextFile(info))