/* * 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://neueland.iserlohn-fortress.net/smolbote.hg * * SPDX-License-Identifier: MIT */ #ifndef SMOLBOTE_PLUGIN_INTERFACES_H #define SMOLBOTE_PLUGIN_INTERFACES_H #include #include #include #include class QString; class QAction; class QDialog; class WebProfile; struct Plugin { QString name; QString author; QKeySequence shortcut; std::shared_ptr instance; }; class PluginInterface { public: virtual ~PluginInterface() = default; virtual QHash> commands() = 0; }; class ProfileInterface { public: virtual ~ProfileInterface() = default; virtual void setProfiles(QHash *profiles) = 0; virtual QDialog *createWidget(QWidget *parent = nullptr) = 0; }; #define PluginInterfaceIid "net.iserlohn-fortress.smolbote.PluginInterface" Q_DECLARE_INTERFACE(PluginInterface, PluginInterfaceIid) #define ProfileInterfaceIid "net.iserlohn-fortress.smolbote.ProfileInterface" Q_DECLARE_INTERFACE(ProfileInterface, ProfileInterfaceIid) #endif // SMOLBOTE_PLUGIN_INTERFACES_H