File indexing completed on 2024-05-12 04:34:10

0001 /*
0002     SPDX-FileCopyrightText: 2018 Aleix Pol Gonzalez <aleixpol@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "okularsingleton.h"
0008 #include <KPluginMetaData>
0009 #include <QMimeDatabase>
0010 #include <QMimeType>
0011 
0012 OkularSingleton::OkularSingleton() = default;
0013 
0014 QStringList OkularSingleton::nameFilters() const
0015 {
0016     QStringList supportedPatterns;
0017 
0018     const auto plugins = KPluginMetaData::findPlugins(QStringLiteral("okular_generators"));
0019     if (plugins.isEmpty()) {
0020         qWarning() << "okularpart plugin not found. Required to get nameFilters";
0021         return supportedPatterns;
0022     }
0023 
0024     QMimeDatabase md;
0025     for (const auto &plugin : plugins) {
0026         const QStringList mimeTypes = plugin.mimeTypes();
0027 
0028         for (const auto &mimeName : mimeTypes) {
0029             const QStringList suffixes = md.mimeTypeForName(mimeName).suffixes();
0030             for (const QString &suffix : suffixes) {
0031                 supportedPatterns += QStringLiteral("*.") + suffix;
0032             }
0033         }
0034     }
0035 
0036     return supportedPatterns;
0037 }