1
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:
nowrep 2013-05-24 11:03:16 +02:00
parent 30594f2480
commit a172327992
15 changed files with 39 additions and 27 deletions

View File

@ -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; }

View File

@ -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();

View File

@ -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();

View File

@ -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);

View File

@ -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();

View File

@ -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*)));
}

View File

@ -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();

View File

@ -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);

View File

@ -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();

View File

@ -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);

View File

@ -34,7 +34,7 @@ public:
MouseGesturesPlugin();
PluginSpec pluginSpec();
void init(const QString &sPath);
void init(InitState state, const QString &settingsPath);
void unload();
bool testPlugin();

View File

@ -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);

View File

@ -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();

View File

@ -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

View File

@ -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();