From f229dbaaa7f516dc1958d0a0555b47cb17136377 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Fri, 4 Dec 2020 08:03:40 +0100 Subject: Do not store the list of preview plugins in PreviewGenerator. --- src/previewgenerator.cpp | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'src/previewgenerator.cpp') diff --git a/src/previewgenerator.cpp b/src/previewgenerator.cpp index c7df5a25..904d679f 100644 --- a/src/previewgenerator.cpp +++ b/src/previewgenerator.cpp @@ -27,33 +27,32 @@ along with Mod Organizer. If not, see . #include "plugincontainer.h" +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(); + 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(); + for (auto* preview : previews) { + if (m_PluginContainer->isEnabled(preview) && preview->supportedExtensions().contains(ext)) { + return preview->genFilePreview(fileName, m_MaxSize); + } } + return nullptr; } -- cgit v1.3.1