summaryrefslogtreecommitdiff
path: root/src/previewgenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/previewgenerator.cpp')
-rw-r--r--src/previewgenerator.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/previewgenerator.cpp b/src/previewgenerator.cpp
index c7df5a25..22332af3 100644
--- a/src/previewgenerator.cpp
+++ b/src/previewgenerator.cpp
@@ -27,33 +27,32 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "plugincontainer.h"
-PreviewGenerator::PreviewGenerator(const PluginContainer* pluginContainer) :
+using namespace MOBase;
+
+PreviewGenerator::PreviewGenerator(const PluginContainer& pluginContainer) :
m_PluginContainer(pluginContainer) {
m_MaxSize = QGuiApplication::primaryScreen()->size() * 0.8;
}
-void PreviewGenerator::registerPlugin(MOBase::IPluginPreview *plugin)
-{
- for (const QString &extension : plugin->supportedExtensions()) {
- m_PreviewPlugins.insert(std::make_pair(extension, plugin));
- }
-}
-
bool PreviewGenerator::previewSupported(const QString &fileExtension) const
{
- auto it = m_PreviewPlugins.find(fileExtension.toLower());
- if (it == m_PreviewPlugins.end()) {
- return false;
+ auto& previews = m_PluginContainer.plugins<IPluginPreview>();
+ for (auto* preview : previews) {
+ if (preview->supportedExtensions().contains(fileExtension)) {
+ return true;
+ }
}
- return m_PluginContainer->isEnabled(it->second);
+ return false;
}
QWidget *PreviewGenerator::genPreview(const QString &fileName) const
{
- auto iter = m_PreviewPlugins.find(QFileInfo(fileName).suffix().toLower());
- if (iter != m_PreviewPlugins.end() && m_PluginContainer->isEnabled(iter->second)) {
- return iter->second->genFilePreview(fileName, m_MaxSize);
- } else {
- return nullptr;
+ const QString ext = QFileInfo(fileName).suffix().toLower();
+ auto& previews = m_PluginContainer.plugins<IPluginPreview>();
+ for (auto* preview : previews) {
+ if (m_PluginContainer.isEnabled(preview) && preview->supportedExtensions().contains(ext)) {
+ return preview->genFilePreview(fileName, m_MaxSize);
+ }
}
+ return nullptr;
}