From 186deab80cc9a4b742027d74f8025e15bbd334ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Tue, 29 Jun 2021 13:17:37 +0200 Subject: 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. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This resolves issue #3. Signed-off-by: Slávek Banko --- src/otrplugin-factory.cpp | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) (limited to 'src/otrplugin-factory.cpp') 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 #include +#include "otrplugin-factory.h" #include "otrplugin.h" -/** - * @author Michael Zanetti - */ -typedef KGenericFactory OTRPluginFactory; +// typedef KGenericFactory 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" -- cgit v1.2.1