#include "../shared/common.h" #include "previewgenerator.h" #include #include "previewgeneratorpdf.h" #include "previewgeneratorplaintext.h" #include "previewgeneratorodt.h" static PreviewGenerator *plainTextGenerator = new PreviewGeneratorPlainText(); 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)) { return plainTextGenerator; } } return result; }