Port from KParts::Factory to KPluginFactory. Cleanups.

svn path=/trunk/KDE/kdebase/apps/; revision=1214191
This commit is contained in:
David Faure 2011-01-13 12:20:16 +00:00
parent 8cd3c32c33
commit 19b73be057
4 changed files with 25 additions and 37 deletions

View file

@ -64,7 +64,7 @@ if (X11_Xt_LIB)
########### install files ###############
install( FILES khtml_plugins.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
install( FILES nspluginpart.rc DESTINATION ${DATA_INSTALL_DIR}/plugin )
install( FILES nspluginpart.rc DESTINATION ${DATA_INSTALL_DIR}/nsplugin )
install( FILES org.kde.nsplugins.CallBack.xml DESTINATION ${DBUS_INTERFACES_INSTALL_DIR} )
add_subdirectory( test )

View file

@ -29,6 +29,7 @@ Java Plugin from SUN (Well, more like untested since KJava beats us to it)
Good test sites:
http://www.shockwave.com/
http://www.adobe.com/products/flashplayer/
http://www.apple.com/trailers/
http://www.djvuzone.org/
http://www.tcl.tk/software/plugin/

View file

@ -139,19 +139,15 @@ QString PluginLiveConnectExtension::evalJavaScript( const QString & script )
return nsplugin;
}
K_EXPORT_PLUGIN(PluginFactory)
/**
* We need one static instance of the factory for our C 'main'
* function
*/
KComponentData *PluginFactory::s_instance = 0L;
KComponentData *PluginFactory::s_instance = 0;
PluginFactory::PluginFactory()
: KPluginFactory("plugin", "nsplugin")
{
kDebug(1432) << "PluginFactory::PluginFactory";
s_instance = 0;
setComponentData(componentData());
registerPlugin<PluginPart>();
// preload plugin loader
_loader = NSPluginLoader::instance();
@ -164,40 +160,36 @@ PluginFactory::~PluginFactory()
_loader->release();
if (s_instance) {
delete s_instance;
s_instance = 0;
}
delete s_instance;
s_instance = 0;
}
KParts::Part * PluginFactory::createPartObject(QWidget *parentWidget, QObject *parent,
const char *classname, const QStringList &args)
{
Q_UNUSED(classname)
kDebug(1432) << "PluginFactory::create";
KParts::Part *obj = new PluginPart(parentWidget, parent, args);
return obj;
}
const KComponentData &PluginFactory::componentData()
{
kDebug(1432) << "PluginFactory::instance";
if (!s_instance) {
KAboutData about("plugin", 0, ki18n("plugin"), "1.99");
KAboutData about("nsplugin", 0, ki18n("Netscape Plugin"), KDE_VERSION_STRING);
s_instance = new KComponentData(about);
}
return *s_instance;
}
K_EXPORT_PLUGIN(PluginFactory)
/**************************************************************************/
static int s_callBackObjectCounter;
PluginPart::PluginPart(QWidget *parentWidget, QObject *parent, const QStringList &args)
: KParts::ReadOnlyPart(parent), _widget(0), _args(args),
// KDE5: use static public KPluginFactory::variantListToStringList instead.
static QStringList variantListToStringList(const QVariantList &list)
{
QStringList stringlist;
Q_FOREACH(const QVariant& var, list)
stringlist << var.toString();
return stringlist;
}
PluginPart::PluginPart(QWidget *parentWidget, QObject *parent, const QVariantList &args)
: KParts::ReadOnlyPart(parent), _widget(0), _args(variantListToStringList(args)),
_destructed(0L)
{
callbackPath = QString::fromLatin1("/Callback") + QString::number(s_callBackObjectCounter);

View file

@ -25,7 +25,7 @@
#define __plugin_part_h__
#include <kparts/browserextension.h>
#include <kparts/factory.h>
#include <kpluginfactory.h>
#include <kparts/part.h>
#include <QWidget>
#include <QPointer>
@ -37,7 +37,7 @@ class PluginBrowserExtension;
class PluginLiveConnectExtension;
class PluginPart;
class PluginFactory : public KParts::Factory
class PluginFactory : public KPluginFactory
{
Q_OBJECT
@ -45,14 +45,9 @@ public:
PluginFactory();
virtual ~PluginFactory();
virtual KParts::Part * createPartObject(QWidget *parentWidget = 0, QObject *parent = 0,
const char *classname = "KParts::Part",
const QStringList &args = QStringList());
static const KComponentData &componentData();
private:
static KComponentData *s_instance;
class NSPluginLoader *_loader;
};
@ -79,7 +74,7 @@ class PluginPart: public KParts::ReadOnlyPart
Q_OBJECT
public:
PluginPart(QWidget *parentWidget, QObject *parent,
const QStringList &args = QStringList());
const QVariantList &args = QVariantList());
virtual ~PluginPart();
// CallBack interface (DBus-exported)