diff --git a/gui/previewgenerator.cpp b/gui/previewgenerator.cpp index 7d4c891..32e0951 100644 --- a/gui/previewgenerator.cpp +++ b/gui/previewgenerator.cpp @@ -1 +1,15 @@ #include "previewgenerator.h" +#include "previewgeneratorpdf.h" +#include "previewgeneratorplaintext.h" + +static PreviewGenerator *plainTextGenerator = new PreviewGeneratorPlainText(); + +static QMap generators{ + {"pdf", new PreviewGeneratorPdf()}, {"txt", plainTextGenerator}, {"md", plainTextGenerator}, + {"py", plainTextGenerator}, {"java", plainTextGenerator}, {"js", plainTextGenerator}, + {"cpp", plainTextGenerator}, {"c", plainTextGenerator}, {"sql", plainTextGenerator}}; + +PreviewGenerator *PreviewGenerator::get(QFileInfo &info) +{ + return generators.value(info.suffix(), nullptr); +} diff --git a/gui/previewgenerator.h b/gui/previewgenerator.h index 51019a0..515f9c0 100644 --- a/gui/previewgenerator.h +++ b/gui/previewgenerator.h @@ -2,6 +2,7 @@ #define PREVIEWGENERATOR_H #include #include +#include #include "previewresult.h" #include "renderconfig.h" @@ -12,6 +13,8 @@ class PreviewGenerator virtual ~PreviewGenerator() { } + + static PreviewGenerator *get(QFileInfo &info); }; #endif // PREVIEWGENERATOR_H