/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://library.iserlohn-fortress.net/aqua/smolbote.git * * SPDX-License-Identifier: GPL-3.0 */ #ifndef SMOLBOTE_SMOLBLOK_HPP #define SMOLBOTE_SMOLBLOK_HPP #include "filtermanager.hpp" #include #include #include class smolblok { public: ~smolblok() { for(auto &plugin : m_formats) { delete plugin.loader; } } bool registerFormatPlugin(const QString &format, const QString &filename); const auto formats() const { return m_formats.keys(); } bool addSubscriptions(const QString &filename); QWebEngineUrlRequestInterceptor *interceptor() { return &m_subscriptions; } private: struct PluginInfo { QPluginLoader *loader = nullptr; FilterPlugin *instance = nullptr; }; QHash m_formats; FilterManager m_subscriptions; }; #endif // SMOLBOTE_SMOLBLOK_HPP