summaryrefslogtreecommitdiffstats
path: root/src/otrplugin-factory.cpp
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2021-06-29 13:17:37 +0200
committerSlávek Banko <slavek.banko@axis.cz>2021-07-01 12:27:19 +0200
commit186deab80cc9a4b742027d74f8025e15bbd334ca (patch)
treeb6995d55884fdb972279b2942db3cb584e7c56b4 /src/otrplugin-factory.cpp
parentd4af338ad1d4607aa3820e64967d024b772ea212 (diff)
downloadkopete-otr-186deab80cc9a4b742027d74f8025e15bbd334ca.tar.gz
kopete-otr-186deab80cc9a4b742027d74f8025e15bbd334ca.zip
Create a custom OTRPluginFactory object instead of using the KGenericFactory
template. This prevents an unwanted creation of a hidden second instance if the library is built with enabled hidden visibility. This resolves issue #3. Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'src/otrplugin-factory.cpp')
-rw-r--r--src/otrplugin-factory.cpp38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/otrplugin-factory.cpp b/src/otrplugin-factory.cpp
index bf1df9f..1d6fafc 100644
--- a/src/otrplugin-factory.cpp
+++ b/src/otrplugin-factory.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007 by Michael Zanetti *
+ * Copyright (C) 2021 by Slávek Banko *
* *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -15,18 +15,44 @@
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
+#if defined(HAVE_CONFIG_H)
+#include "config.h"
+#endif
+
#include <kgenericfactory.h>
#include <tdeaboutdata.h>
+#include "otrplugin-factory.h"
#include "otrplugin.h"
-/**
- * @author Michael Zanetti
- */
-typedef KGenericFactory<OTRPlugin> OTRPluginFactory;
+// typedef KGenericFactory<OTRPlugin> OTRPluginFactory;
static const TDEAboutData aboutdata("kopete_otr", I18N_NOOP("OTR") , "0.7" );
K_EXPORT_COMPONENT_FACTORY( kopete_otr, OTRPluginFactory( &aboutdata ) )
+
+TDEInstance *OTRPluginFactory::s_instance = 0;
+
+OTRPluginFactory::OTRPluginFactory( const TDEAboutData *aboutdata )
+{
+ s_instance = new TDEInstance( aboutdata );
+}
+
+OTRPluginFactory::~OTRPluginFactory()
+{
+ delete s_instance;
+}
+
+KParts::Part *OTRPluginFactory::createPartObject( TQWidget * /*parentWidget*/,
+ const char * /*widgetName*/,
+ TQObject *parent,
+ const char *name,
+ const char * /*className*/,
+ const TQStringList & args )
+{
+ return (KParts::Part*) new OTRPlugin( instance(), parent, name, args);
+}
+
+#include "otrplugin-factory.moc"