[kgraphviewer-devel] [PATCH] Port to KPluginFactory.
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Sun Mar 2 01:31:22 UTC 2014
---
src/kgraphviewer.cpp | 5 +--
src/part/kgraphviewer_interface.h | 4 +--
src/part/kgraphviewer_part.cpp | 75 ++++++---------------------------------
src/part/kgraphviewer_part.h | 18 +---------
4 files changed, 17 insertions(+), 85 deletions(-)
diff --git a/src/kgraphviewer.cpp b/src/kgraphviewer.cpp
index 6fd8097..86270d5 100644
--- a/src/kgraphviewer.cpp
+++ b/src/kgraphviewer.cpp
@@ -139,14 +139,15 @@ void KGraphViewerWindow::reloadPreviousFiles()
void KGraphViewerWindow::openUrl(const KUrl& url)
{
kDebug() << url;
- KLibFactory *factory = KLibLoader::self()->factory("kgraphviewerpart");
+ KPluginFactory *factory = KPluginLoader("kgraphviewerpart").factory();
if (factory)
{
- KParts::ReadOnlyPart* part = static_cast<KParts::ReadOnlyPart*>(factory->create(this, "kgraphviewerpart"));
+ KParts::ReadOnlyPart* part = factory->create<KParts::ReadOnlyPart>("kgraphviewerpart", this);
KGraphViewer::KGraphViewerInterface* kgv = qobject_cast<KGraphViewer::KGraphViewerInterface*>( part );
if( ! kgv )
{
// This should not happen
+ kError() << "Failed to get KPart" << endl;
return;
}
kgv->setBackgroundColor(KGraphViewerSettings::backgroundColor());
diff --git a/src/part/kgraphviewer_interface.h b/src/part/kgraphviewer_interface.h
index ccc0633..778c3bd 100644
--- a/src/part/kgraphviewer_interface.h
+++ b/src/part/kgraphviewer_interface.h
@@ -46,9 +46,9 @@ namespace KGraphViewer
* Use it like this:
* \code
* // fetch the Part..
- * KLibFactory *factory = KLibLoader::self()->factory("kgraphviewerpart");
+ * KPluginFactory *factory = KPluginLoader("kgraphviewerpart").factory();
* if (factory) {
- * part = factory->create<KParts::ReadOnlyPart>(this);
+ * KParts::ReadOnlyPart* part = factory->create<KParts::ReadOnlyPart>("kgraphviewerpart", this);
*
* // cast the part to the KGraphViewerInterface...
* KGraphViewerInterface* graph = qobject_cast<KGraphViewerInterface*>( part );
diff --git a/src/part/kgraphviewer_part.cpp b/src/part/kgraphviewer_part.cpp
index 7829b29..ce48c5c 100644
--- a/src/part/kgraphviewer_part.cpp
+++ b/src/part/kgraphviewer_part.cpp
@@ -46,6 +46,16 @@
namespace KGraphViewer
{
+K_PLUGIN_FACTORY(KGraphViewerPartFactory, registerPlugin<KGraphViewerPart>("kgraphviewerpart");)
+static KAboutData createAboutData()
+{
+ return KAboutData( "kgraphviewerpart", 0, ki18n("KGraphViewerPart"),
+ "1.0", ki18n( "GraphViz dot files viewer" ),
+ KAboutData::License_GPL,
+ ki18n("(c) 2005-2006, Gaël de Chalendar <kleag at free.fr>"));
+}
+K_EXPORT_PLUGIN(KGraphViewerPartFactory(createAboutData()))
+
class KGraphViewerPartPrivate
{
public:
@@ -65,7 +75,7 @@ public:
};
-KGraphViewerPart::KGraphViewerPart( QWidget *parentWidget, QObject *parent)
+KGraphViewerPart::KGraphViewerPart( QWidget *parentWidget, QObject *parent, const QVariantList & )
: KParts::ReadOnlyPart(parent), d(new KGraphViewerPartPrivate())
{
kDebug() ;
@@ -427,69 +437,6 @@ void KGraphViewerPart::slotRenameNode(const QString& oldNodeName, const QString&
d->m_widget->graph()->renameNode(oldNodeName,newNodeName);
}
-extern "C"
-{
- /**
- * This function is the 'main' function of this part. It takes
- * the form 'void *init_lib<library name>() It always returns a
- * new factory object
- */
- KDE_EXPORT void *init_kgraphviewerpart()
- {
- return new KGraphViewerPartFactory();
- }
-}
-
-// KComponentData KGraphViewerPartFactory::s_instance = 0L;
-KAboutData* KGraphViewerPartFactory::s_about = new KAboutData(
-"kgraphviewerpart", 0, ki18n("KGraphViewerPart"),
-"1.0", ki18n( "GraphViz dot files viewer" ),
-KAboutData::License_GPL,
-ki18n("(c) 2005-2006, Gaël de Chalendar <kleag at free.fr>"));
-
-KComponentData KGraphViewerPartFactory::s_instance(s_about);
-
-KGraphViewerPartFactory::KGraphViewerPartFactory(QObject* parent)
-: KParts::Factory(parent)
-{
-}
-
-KGraphViewerPartFactory::~KGraphViewerPartFactory()
-{
-gvFreeContext(gvContext());
-delete s_about;
-}
-
-KParts::Part* KGraphViewerPartFactory::createPartObject( QWidget *parentWidget,
-QObject *parent,
-const char *classname,
-const QStringList &args )
-{
- Q_UNUSED(classname);
- Q_UNUSED(args);
- // Create an instance of our Part
- KGraphViewerPart* obj = new KGraphViewerPart( parentWidget, parent);
-
- // See if we are to be read-write or not
- // if (QCString(classname) == "KParts::ReadOnlyPart")
- // obj->setReadWrite(false);
-
- return obj;
-}
-
-KComponentData KGraphViewerPartFactory::componentData()
-{
- /* if( !s_instance )
- {
- s_about = new KAboutData( "kgraphviewerpart", 0, ki18n("KGraphViewerPart"),
- "1.0", ki18n( "GraphViz dot files viewer" ),
- KAboutData::License_GPL,
- ki18n("(c) 2005-2006, Gaël de Chalendar <kleag at free.fr>"));
- s_instance(s_about);
- }*/
- return s_instance;
-}
-
}
#include "kgraphviewer_part.moc"
diff --git a/src/part/kgraphviewer_part.h b/src/part/kgraphviewer_part.h
index ca3bad9..e66a0cf 100644
--- a/src/part/kgraphviewer_part.h
+++ b/src/part/kgraphviewer_part.h
@@ -67,7 +67,7 @@ public:
/**
* Default constructor
*/
- KGraphViewerPart(QWidget *parentWidget, QObject *parent);
+ KGraphViewerPart(QWidget *parentWidget, QObject *parent, const QVariantList &);
/**
@@ -153,21 +153,5 @@ private:
};
-class KGraphViewerPartFactory : public KParts::Factory
-{
- Q_OBJECT
-public:
- KGraphViewerPartFactory(QObject* parent = 0);
- ~KGraphViewerPartFactory();
- virtual KParts::Part* createPartObject( QWidget *parentWidget,
- QObject *parent,
- const char *classname, const QStringList &args );
- static KComponentData componentData();
-
-private:
- static KComponentData s_instance;
- static KAboutData* s_about;
-};
-
}
#endif // _KGRAPHVIEWERPART_H_
--
1.9.0
More information about the kgraphviewer-devel
mailing list