diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/ConfigurationEditor/configurationeditorplugin.cpp | 8 | ||||
-rw-r--r-- | plugins/ConfigurationEditor/configurationeditorplugin.h | 11 | ||||
-rw-r--r-- | plugins/ProfileEditor/profileeditorplugin.cpp | 15 | ||||
-rw-r--r-- | plugins/ProfileEditor/profileeditorplugin.h | 12 | ||||
-rw-r--r-- | plugins/interfaces.h | 31 |
5 files changed, 22 insertions, 55 deletions
diff --git a/plugins/ConfigurationEditor/configurationeditorplugin.cpp b/plugins/ConfigurationEditor/configurationeditorplugin.cpp index 93b1c69..0d44a8a 100644 --- a/plugins/ConfigurationEditor/configurationeditorplugin.cpp +++ b/plugins/ConfigurationEditor/configurationeditorplugin.cpp @@ -18,13 +18,7 @@ CommandHash_t ConfigurationEditorPlugin::commands() QDialog *ConfigurationEditorPlugin::createWidget(QWidget *parent) { - auto *dlg = new ConfigurationDialog(m_config, parent); + auto *dlg = new ConfigurationDialog(browser->getConfiguration(), parent); dlg->setAttribute(Qt::WA_DeleteOnClose, true); return dlg; } - -void ConfigurationEditorPlugin::setConfiguration(Configuration *cfg) -{ - Q_CHECK_PTR(cfg); - m_config = cfg; -} diff --git a/plugins/ConfigurationEditor/configurationeditorplugin.h b/plugins/ConfigurationEditor/configurationeditorplugin.h index 6054723..6bb72ce 100644 --- a/plugins/ConfigurationEditor/configurationeditorplugin.h +++ b/plugins/ConfigurationEditor/configurationeditorplugin.h @@ -5,22 +5,17 @@ #include <interfaces.h> class QDialog; -class ConfigurationEditorPlugin : public QObject, public PluginInterface, public ConfigurationInterface +class ConfigurationEditorPlugin : public QObject, public PluginInterface { Q_OBJECT - Q_PLUGIN_METADATA(IID ProfileInterfaceIid FILE "ConfigurationEditor.json") - Q_INTERFACES(PluginInterface ConfigurationInterface) + Q_PLUGIN_METADATA(IID PluginInterfaceIid FILE "ConfigurationEditor.json") + Q_INTERFACES(PluginInterface) public: // PluginInterface CommandHash_t commands() override; QDialog *createWidget(QWidget *parent = nullptr) override; - // ConfigurationInterface - void setConfiguration(Configuration *cfg) override; - -private: - Configuration *m_config = nullptr; }; #endif // CONFIGURATIONEDITOR_PLUGIN_H diff --git a/plugins/ProfileEditor/profileeditorplugin.cpp b/plugins/ProfileEditor/profileeditorplugin.cpp index d13e819..5d5c18a 100644 --- a/plugins/ProfileEditor/profileeditorplugin.cpp +++ b/plugins/ProfileEditor/profileeditorplugin.cpp @@ -20,24 +20,13 @@ QHash<QString, std::function<int()>> ProfileEditorPlugin::commands() auto *dialog = createWidget(nullptr); return dialog->exec(); }); - - hash.insert("list-profiles", [this]() -> int { - for(const WebProfile *profile : qAsConst(profiles)) { - qDebug(" - %s", qUtf8Printable(profile->name())); - } - return 0; - }); return hash; } QDialog *ProfileEditorPlugin::createWidget(QWidget *parent) { - auto *widget = new ProfileManagerDialog(profiles, parent); + Q_CHECK_PTR(browser); + auto *widget = new ProfileManagerDialog(browser->profiles(), parent); widget->setAttribute(Qt::WA_DeleteOnClose, true); return widget; } - -void ProfileEditorPlugin::registerProfile(WebProfile *profile) -{ - profiles.append(profile); -} diff --git a/plugins/ProfileEditor/profileeditorplugin.h b/plugins/ProfileEditor/profileeditorplugin.h index bc95708..c3e08af 100644 --- a/plugins/ProfileEditor/profileeditorplugin.h +++ b/plugins/ProfileEditor/profileeditorplugin.h @@ -14,11 +14,11 @@ class QWebEngineProfile; class QDialog; -class ProfileEditorPlugin : public QObject, public PluginInterface, public ProfileInterface +class ProfileEditorPlugin : public QObject, public PluginInterface { Q_OBJECT - Q_PLUGIN_METADATA(IID ProfileInterfaceIid FILE "ProfileEditor.json") - Q_INTERFACES(PluginInterface ProfileInterface) + Q_PLUGIN_METADATA(IID PluginInterfaceIid FILE "ProfileEditor.json") + Q_INTERFACES(PluginInterface) public: // PluginInterface @@ -26,12 +26,6 @@ public: // ProfileInterface QDialog *createWidget(QWidget *parent) override; - -public slots: - void registerProfile(WebProfile *profile) override; - -private: - QVector<WebProfile *> profiles; }; #endif //PROFILEEDITOR_PLUGIN_H diff --git a/plugins/interfaces.h b/plugins/interfaces.h index aad43c1..fc8eac8 100644 --- a/plugins/interfaces.h +++ b/plugins/interfaces.h @@ -20,6 +20,13 @@ class QDialog; class WebProfile; class Configuration; +class BrowserInterface +{ +public: + virtual Configuration *getConfiguration() const = 0; + virtual const QVector<WebProfile *> profiles() const = 0; +}; + struct Plugin { QString name; @@ -36,29 +43,17 @@ public: virtual ~PluginInterface() = default; virtual CommandHash_t commands() = 0; virtual QDialog *createWidget(QWidget *parent = nullptr) = 0; -}; -class ProfileInterface -{ -public: - virtual ~ProfileInterface() = default; - virtual void registerProfile(WebProfile *profile) = 0; -}; + void setBrowserInterface(BrowserInterface *browser) + { + this->browser = browser; + } -class ConfigurationInterface -{ -public: - virtual ~ConfigurationInterface() = default; - virtual void setConfiguration(Configuration *cfg) = 0; +protected: + BrowserInterface *browser = nullptr; }; #define PluginInterfaceIid "net.iserlohn-fortress.smolbote.PluginInterface" Q_DECLARE_INTERFACE(PluginInterface, PluginInterfaceIid) -#define ProfileInterfaceIid "net.iserlohn-fortress.smolbote.ProfileInterface" -Q_DECLARE_INTERFACE(ProfileInterface, ProfileInterfaceIid) - -#define ConfigurationInterfaceIid "net.iserlohn-fortress.smolbote.ConfigurationInterface" -Q_DECLARE_INTERFACE(ConfigurationInterface, ConfigurationInterfaceIid) - #endif // SMOLBOTE_PLUGIN_INTERFACES_H |