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))