mirror of
https://invent.kde.org/network/falkon.git
synced 2024-09-21 17:52:10 +02:00
[Plugins] Added InitState to plugin's init() function
This commit is contained in:
parent
30594f2480
commit
a172327992
|
@ -59,13 +59,12 @@ class WebView;
|
|||
class PluginInterface
|
||||
{
|
||||
public:
|
||||
//Plugin Necessary Init Functions
|
||||
virtual PluginSpec pluginSpec() = 0;
|
||||
enum InitState { StartupInitState, LateInitState };
|
||||
|
||||
virtual void init(const QString &settingsPath) = 0;
|
||||
virtual PluginSpec pluginSpec() = 0;
|
||||
virtual void init(InitState state, const QString &settingsPath) = 0;
|
||||
virtual void unload() = 0;
|
||||
virtual bool testPlugin() = 0;
|
||||
//End Plugin Necessary Init Functions
|
||||
|
||||
virtual ~PluginInterface() { }
|
||||
virtual QTranslator* getTranslator(const QString &locale) { Q_UNUSED(locale) return 0; }
|
||||
|
|
|
@ -54,7 +54,7 @@ bool Plugins::loadPlugin(Plugins::Plugin* plugin)
|
|||
}
|
||||
|
||||
m_availablePlugins.removeOne(*plugin);
|
||||
plugin->instance = initPlugin(iPlugin, plugin->pluginLoader);
|
||||
plugin->instance = initPlugin(PluginInterface::LateInitState, iPlugin, plugin->pluginLoader);
|
||||
m_availablePlugins.prepend(*plugin);
|
||||
|
||||
refreshLoadedPlugins();
|
||||
|
@ -140,7 +140,7 @@ void Plugins::loadPlugins()
|
|||
Plugin plugin;
|
||||
plugin.fullPath = fullPath;
|
||||
plugin.pluginLoader = loader;
|
||||
plugin.instance = initPlugin(iPlugin, loader);
|
||||
plugin.instance = initPlugin(PluginInterface::StartupInitState, iPlugin, loader);
|
||||
|
||||
if (plugin.isLoaded()) {
|
||||
plugin.pluginSpec = iPlugin->pluginSpec();
|
||||
|
@ -211,13 +211,13 @@ void Plugins::loadAvailablePlugins()
|
|||
}
|
||||
}
|
||||
|
||||
PluginInterface* Plugins::initPlugin(PluginInterface* interface, QPluginLoader* loader)
|
||||
PluginInterface* Plugins::initPlugin(PluginInterface::InitState state, PluginInterface* interface, QPluginLoader* loader)
|
||||
{
|
||||
if (!interface) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
interface->init(mApp->currentProfilePath() + "extensions/");
|
||||
interface->init(state, mApp->currentProfilePath() + "extensions/");
|
||||
|
||||
if (!interface->testPlugin()) {
|
||||
interface->unload();
|
||||
|
|
|
@ -91,7 +91,7 @@ signals:
|
|||
|
||||
private:
|
||||
bool alreadySpecInAvailable(const PluginSpec &spec);
|
||||
PluginInterface* initPlugin(PluginInterface* interface, QPluginLoader* loader);
|
||||
PluginInterface* initPlugin(PluginInterface::InitState state , PluginInterface* interface, QPluginLoader* loader);
|
||||
|
||||
void refreshLoadedPlugins();
|
||||
void loadAvailablePlugins();
|
||||
|
|
|
@ -44,8 +44,10 @@ PluginSpec AKN_Plugin::pluginSpec()
|
|||
return spec;
|
||||
}
|
||||
|
||||
void AKN_Plugin::init(const QString &sPath)
|
||||
void AKN_Plugin::init(InitState state, const QString &sPath)
|
||||
{
|
||||
Q_UNUSED(state)
|
||||
|
||||
m_handler = new AKN_Handler(sPath, this);
|
||||
|
||||
QZ_REGISTER_EVENT_HANDLER(PluginProxy::KeyPressHandler);
|
||||
|
|
|
@ -38,7 +38,7 @@ public:
|
|||
AKN_Plugin();
|
||||
PluginSpec pluginSpec();
|
||||
|
||||
void init(const QString &sPath);
|
||||
void init(InitState state, const QString &settingsPath);
|
||||
void unload();
|
||||
bool testPlugin();
|
||||
|
||||
|
|
|
@ -46,10 +46,12 @@ PluginSpec GM_Plugin::pluginSpec()
|
|||
return spec;
|
||||
}
|
||||
|
||||
void GM_Plugin::init(const QString &sPath)
|
||||
void GM_Plugin::init(InitState state, const QString &settingsPath)
|
||||
{
|
||||
m_manager = new GM_Manager(sPath, this);
|
||||
m_settingsPath = sPath;
|
||||
Q_UNUSED(state)
|
||||
|
||||
m_manager = new GM_Manager(settingsPath, this);
|
||||
m_settingsPath = settingsPath;
|
||||
|
||||
connect(mApp->plugins(), SIGNAL(webPageCreated(WebPage*)), this, SLOT(webPageCreated(WebPage*)));
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ public:
|
|||
explicit GM_Plugin();
|
||||
PluginSpec pluginSpec();
|
||||
|
||||
void init(const QString &sPath);
|
||||
void init(InitState state, const QString &settingsPath);
|
||||
void unload();
|
||||
bool testPlugin();
|
||||
|
||||
|
|
|
@ -42,9 +42,10 @@ PluginSpec KWalletPlugin::pluginSpec()
|
|||
return spec;
|
||||
}
|
||||
|
||||
void KWalletPlugin::init(const QString &sPath)
|
||||
void KWalletPlugin::init(InitState state, const QString &settingsPath)
|
||||
{
|
||||
Q_UNUSED(sPath);
|
||||
Q_UNUSED(state);
|
||||
Q_UNUSED(settingsPath);
|
||||
|
||||
m_backend = new KWalletPasswordBackend;
|
||||
QZ_REGISTER_PASSWORD_BACKEND("KWallet", m_backend);
|
||||
|
|
|
@ -35,7 +35,7 @@ public:
|
|||
explicit KWalletPlugin();
|
||||
PluginSpec pluginSpec();
|
||||
|
||||
void init(const QString &sPath);
|
||||
void init(InitState state, const QString &settingsPath);
|
||||
void unload();
|
||||
bool testPlugin();
|
||||
|
||||
|
|
|
@ -43,9 +43,10 @@ PluginSpec MouseGesturesPlugin::pluginSpec()
|
|||
return spec;
|
||||
}
|
||||
|
||||
void MouseGesturesPlugin::init(const QString &sPath)
|
||||
void MouseGesturesPlugin::init(InitState state, const QString &settingsPath)
|
||||
{
|
||||
Q_UNUSED(sPath)
|
||||
Q_UNUSED(state)
|
||||
Q_UNUSED(settingsPath)
|
||||
|
||||
m_gestures = new MouseGestures(this);
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ public:
|
|||
MouseGesturesPlugin();
|
||||
PluginSpec pluginSpec();
|
||||
|
||||
void init(const QString &sPath);
|
||||
void init(InitState state, const QString &settingsPath);
|
||||
void unload();
|
||||
bool testPlugin();
|
||||
|
||||
|
|
|
@ -46,9 +46,11 @@ PluginSpec PIM_Plugin::pluginSpec()
|
|||
return spec;
|
||||
}
|
||||
|
||||
void PIM_Plugin::init(const QString &sPath)
|
||||
void PIM_Plugin::init(InitState state, const QString &settingsPath)
|
||||
{
|
||||
m_handler = new PIM_Handler(sPath, this);
|
||||
Q_UNUSED(state)
|
||||
|
||||
m_handler = new PIM_Handler(settingsPath, this);
|
||||
|
||||
QZ_REGISTER_EVENT_HANDLER(PluginProxy::KeyPressHandler);
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ public:
|
|||
PIM_Plugin();
|
||||
PluginSpec pluginSpec();
|
||||
|
||||
void init(const QString &sPath);
|
||||
void init(InitState state, const QString &settingsPath);
|
||||
void unload();
|
||||
bool testPlugin();
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ PluginSpec TestPlugin::pluginSpec()
|
|||
return spec;
|
||||
}
|
||||
|
||||
void TestPlugin::init(const QString &sPath)
|
||||
void TestPlugin::init(InitState state, const QString &settingsPath)
|
||||
{
|
||||
qDebug() << __FUNCTION__ << "called";
|
||||
|
||||
|
@ -62,7 +62,12 @@ void TestPlugin::init(const QString &sPath)
|
|||
// Settings path is PROFILE/extensions/, in this directory
|
||||
// you can use global .ini file for QSettings named "extensions.ini"
|
||||
// or create new folder for your plugin and save in it anything you want
|
||||
m_settingsPath = sPath;
|
||||
m_settingsPath = settingsPath;
|
||||
|
||||
// State can be either StartupInitState or LateInitState, and it
|
||||
// indicates when the plugin have been loaded.
|
||||
// Currently, it can be from preferences, or automatically at startup.
|
||||
Q_UNUSED(state)
|
||||
|
||||
// Registering this plugin as a MousePressHandler.
|
||||
// Otherwise mousePress() function will never be called
|
||||
|
|
|
@ -46,7 +46,7 @@ public:
|
|||
explicit TestPlugin();
|
||||
PluginSpec pluginSpec();
|
||||
|
||||
void init(const QString &sPath);
|
||||
void init(InitState state, const QString &settingsPath);
|
||||
void unload();
|
||||
bool testPlugin();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user