Fix Kontact crash in Akregator part due to identical destructor signatures being generated for two unrelated classes

This relates to Bug 2235
Fix a slew of non-virtual destructor problems
pull/21/head r14.0.0
Timothy Pearson 10 years ago
parent 96cf12b16a
commit 6e9f8cb704

@ -68,6 +68,7 @@ class ActionManagerImpl::NodeSelectVisitor : public TreeNodeVisitor
{ {
public: public:
NodeSelectVisitor(ActionManagerImpl* manager) : m_manager(manager) {} NodeSelectVisitor(ActionManagerImpl* manager) : m_manager(manager) {}
virtual ~NodeSelectVisitor() {}
virtual bool visitFeed(Feed* node) virtual bool visitFeed(Feed* node)
{ {

@ -91,6 +91,7 @@ Article::Article(const TQString& guid, Feed* feed) : d(new Private)
d->guid = guid; d->guid = guid;
d->archive = Backend::Storage::getInstance()->archiveFor(feed->xmlUrl()); d->archive = Backend::Storage::getInstance()->archiveFor(feed->xmlUrl());
d->status = 0; d->status = 0;
d->hash = 0;
} }
void Article::initialize(RSS::Article article, Backend::FeedStorage* archive) void Article::initialize(RSS::Article article, Backend::FeedStorage* archive)
@ -101,7 +102,7 @@ void Article::initialize(RSS::Article article, Backend::FeedStorage* archive)
+ article.commentsLink().url() ); + article.commentsLink().url() );
d->guid = article.guid(); d->guid = article.guid();
if (!d->archive->contains(d->guid)) if (!d->archive->contains(d->guid))
{ {
d->archive->addEntry(d->guid); d->archive->addEntry(d->guid);
@ -113,7 +114,7 @@ void Article::initialize(RSS::Article article, Backend::FeedStorage* archive)
} }
else else
{ // article is not deleted, let's add it to the archive { // article is not deleted, let's add it to the archive
d->archive->setHash(d->guid, hash() ); d->archive->setHash(d->guid, hash() );
TQString title = article.title().isEmpty() ? buildTitle(article.description()) : article.title(); TQString title = article.title().isEmpty() ? buildTitle(article.description()) : article.title();
d->archive->setTitle(d->guid, title); d->archive->setTitle(d->guid, title);
@ -358,7 +359,6 @@ KURL Article::commentsLink() const
int Article::comments() const int Article::comments() const
{ {
return d->archive->comments(d->guid); return d->archive->comments(d->guid);
} }

@ -144,6 +144,10 @@ class TagMatcher : public AbstractMatcher
class AbstractAction class AbstractAction
{ {
public:
AbstractAction() {}
virtual ~AbstractAction() {}
public: public:
virtual void exec(Article& article) = 0; virtual void exec(Article& article) = 0;

@ -89,6 +89,7 @@ class ArticleListView::ColumnLayoutVisitor : public TreeNodeVisitor
{ {
public: public:
ColumnLayoutVisitor(ArticleListView* view) : m_view(view) {} ColumnLayoutVisitor(ArticleListView* view) : m_view(view) {}
virtual ~ColumnLayoutVisitor() {}
virtual bool visitTagNode(TagNode* /*node*/) virtual bool visitTagNode(TagNode* /*node*/)
{ {

@ -66,6 +66,7 @@ class ArticleViewer::ShowSummaryVisitor : public TreeNodeVisitor
public: public:
ShowSummaryVisitor(ArticleViewer* view) : m_view(view) {} ShowSummaryVisitor(ArticleViewer* view) : m_view(view) {}
virtual ~ShowSummaryVisitor() {}
virtual bool visitFeed(Feed* node) virtual bool visitFeed(Feed* node)
{ {

@ -445,7 +445,7 @@ void Feed::appendArticles(const RSS::Document &doc)
RSS::Article::List::ConstIterator en = d_articles.end(); RSS::Article::List::ConstIterator en = d_articles.end();
int nudge=0; int nudge=0;
TQValueList<Article> deletedArticles = d->deletedArticles; TQValueList<Article> deletedArticles = d->deletedArticles;
for (it = d_articles.begin(); it != en; ++it) for (it = d_articles.begin(); it != en; ++it)
@ -460,21 +460,21 @@ void Feed::appendArticles(const RSS::Document &doc)
TQValueList<ArticleInterceptor*> interceptors = ArticleInterceptorManager::self()->interceptors(); TQValueList<ArticleInterceptor*> interceptors = ArticleInterceptorManager::self()->interceptors();
for (TQValueList<ArticleInterceptor*>::ConstIterator it = interceptors.begin(); it != interceptors.end(); ++it) for (TQValueList<ArticleInterceptor*>::ConstIterator it = interceptors.begin(); it != interceptors.end(); ++it)
(*it)->processArticle(mya); (*it)->processArticle(mya);
d->addedArticlesNotify.append(mya); d->addedArticlesNotify.append(mya);
if (!mya.isDeleted() && !markImmediatelyAsRead()) if (!mya.isDeleted() && !markImmediatelyAsRead())
mya.setStatus(Article::New); mya.setStatus(Article::New);
else else
mya.setStatus(Article::Read); mya.setStatus(Article::Read);
changed = true; changed = true;
} }
else // article is in list else // article is in list
{ {
// if the article's guid is no hash but an ID, we have to check if the article was updated. That's done by comparing the hash values. // if the article's guid is no hash but an ID, we have to check if the article was updated. That's done by comparing the hash values.
Article old = d->articles[(*it).guid()]; Article old = d->articles[(*it).guid()];
Article mya(*it, this); Article mya(*it, this);
if (!mya.guidIsHash() && mya.hash() != old.hash() && !old.isDeleted()) if (!mya.guidIsHash() && mya.hash() != old.hash() && !old.isDeleted())
{ {
mya.setKeep(old.keep()); mya.setKeep(old.keep());
@ -491,7 +491,7 @@ void Feed::appendArticles(const RSS::Document &doc)
} }
else if (old.isDeleted()) else if (old.isDeleted())
deletedArticles.remove(mya); deletedArticles.remove(mya);
} }
} }
TQValueList<Article>::ConstIterator dit = deletedArticles.begin(); TQValueList<Article>::ConstIterator dit = deletedArticles.begin();

@ -52,6 +52,7 @@ class FeedList::AddNodeVisitor : public TreeNodeVisitor
{ {
public: public:
AddNodeVisitor(FeedList* list) : m_list(list) {} AddNodeVisitor(FeedList* list) : m_list(list) {}
virtual ~AddNodeVisitor() {}
virtual bool visitFeed(Feed* node) virtual bool visitFeed(Feed* node)
@ -69,6 +70,7 @@ class FeedList::RemoveNodeVisitor : public TreeNodeVisitor
{ {
public: public:
RemoveNodeVisitor(FeedList* list) : m_list(list) {} RemoveNodeVisitor(FeedList* list) : m_list(list) {}
virtual ~RemoveNodeVisitor() {}
virtual bool visitFeed(Feed* node) virtual bool visitFeed(Feed* node)
{ {

@ -78,6 +78,7 @@ class NodeListView::ConnectNodeVisitor : public TreeNodeVisitor
{ {
public: public:
ConnectNodeVisitor(NodeListView* view) : m_view(view) {} ConnectNodeVisitor(NodeListView* view) : m_view(view) {}
virtual ~ConnectNodeVisitor() {}
virtual bool visitTreeNode(TreeNode* node) virtual bool visitTreeNode(TreeNode* node)
{ {
@ -114,6 +115,7 @@ class NodeListView::DisconnectNodeVisitor : public TreeNodeVisitor
{ {
public: public:
DisconnectNodeVisitor(NodeListView* view) : m_view(view) {} DisconnectNodeVisitor(NodeListView* view) : m_view(view) {}
virtual ~DisconnectNodeVisitor() {}
virtual bool visitTagNode(TagNode* node) virtual bool visitTagNode(TagNode* node)
{ {
@ -153,6 +155,7 @@ class NodeListView::DeleteItemVisitor : public TreeNodeVisitor
public: public:
DeleteItemVisitor(NodeListView* view) : m_view(view) {} DeleteItemVisitor(NodeListView* view) : m_view(view) {}
virtual ~DeleteItemVisitor() {}
virtual bool visitTreeNode(TreeNode* node) virtual bool visitTreeNode(TreeNode* node)
{ {
@ -204,6 +207,7 @@ class NodeListView::CreateItemVisitor : public TreeNodeVisitor
{ {
public: public:
CreateItemVisitor(NodeListView* view) : m_view(view) {} CreateItemVisitor(NodeListView* view) : m_view(view) {}
virtual ~CreateItemVisitor() {}
virtual bool visitTagNode(TagNode* node) virtual bool visitTagNode(TagNode* node)
{ {

@ -8,11 +8,13 @@ namespace Akregator {
Plugin::Plugin() Plugin::Plugin()
{} {
}
Plugin::~Plugin() Plugin::~Plugin()
{} {
}
void void

@ -14,7 +14,6 @@
#include <tqmap.h> #include <tqmap.h>
#include <tqstring.h> #include <tqstring.h>
namespace Akregator namespace Akregator
{ {
// class PluginConfig; // class PluginConfig;

@ -93,6 +93,7 @@ class SimpleNodeSelector::NodeVisitor : public TreeNodeVisitor
public: public:
NodeVisitor(SimpleNodeSelector* view) : TreeNodeVisitor(), m_view(view) {} NodeVisitor(SimpleNodeSelector* view) : TreeNodeVisitor(), m_view(view) {}
virtual ~NodeVisitor() {}
void createItems(TreeNode* node) void createItems(TreeNode* node)
{ {

@ -38,18 +38,21 @@ class Storage;
class AKREGATOR_EXPORT StorageFactory class AKREGATOR_EXPORT StorageFactory
{ {
public: public:
StorageFactory() {}
virtual ~StorageFactory() {}
/** identifier of the storage type, like "metakit", "postgres" etc. For use in /** identifier of the storage type, like "metakit", "postgres" etc. For use in
configuration files. Must not contain spaces or special characters. configuration files. Must not contain spaces or special characters.
*/ */
virtual TQString key() const = 0; virtual TQString key() const = 0;
/** returns the (i18n'd) name of the storage type. */ /** returns the (i18n'd) name of the storage type. */
virtual TQString name() const = 0; virtual TQString name() const = 0;
/** true if the plugin is configurable via a config dialog */ /** true if the plugin is configurable via a config dialog */
virtual bool isConfigurable() const = 0; virtual bool isConfigurable() const = 0;
/** shows the plugin's configuration dialog */ /** shows the plugin's configuration dialog */
virtual void configure() = 0; virtual void configure() = 0;
@ -59,11 +62,11 @@ class AKREGATOR_EXPORT StorageFactory
* write access. * write access.
*/ */
virtual bool allowsMultipleWriteAccess() const = 0; virtual bool allowsMultipleWriteAccess() const = 0;
/** creates a storage object with given parameters /** creates a storage object with given parameters
@param params list of implementation-specific parameters @param params list of implementation-specific parameters
*/ */
virtual Storage* createStorage(const TQStringList& params) const = 0; virtual Storage* createStorage(const TQStringList& params) const = 0;
}; };
} }

@ -58,7 +58,6 @@ class Summary;
class KDE_EXPORT Plugin : public TQObject, virtual public KXMLGUIClient class KDE_EXPORT Plugin : public TQObject, virtual public KXMLGUIClient
{ {
Q_OBJECT Q_OBJECT
public: public:
/** /**
@ -71,7 +70,7 @@ class KDE_EXPORT Plugin : public TQObject, virtual public KXMLGUIClient
*/ */
Plugin( Core *core, TQObject *parent, const char *name ); Plugin( Core *core, TQObject *parent, const char *name );
~Plugin(); virtual ~Plugin();
/** /**
Sets the identifier. Sets the identifier.

@ -63,6 +63,8 @@ class KDE_EXPORT UniqueAppHandler : public DCOPObject
class UniqueAppHandlerFactoryBase class UniqueAppHandlerFactoryBase
{ {
public: public:
UniqueAppHandlerFactoryBase() {}
virtual ~UniqueAppHandlerFactoryBase() {}
virtual UniqueAppHandler* createHandler( Plugin* ) = 0; virtual UniqueAppHandler* createHandler( Plugin* ) = 0;
}; };

@ -44,14 +44,13 @@
#include "akregator_plugin.h" #include "akregator_plugin.h"
namespace Akregator { namespace Akregator {
typedef KGenericFactory<Akregator::Plugin, Kontact::Core > PluginFactory; typedef KGenericFactory<Akregator::AkregatorPlugin, Kontact::Core > PluginFactory;
K_EXPORT_COMPONENT_FACTORY( libkontact_akregator, K_EXPORT_COMPONENT_FACTORY( libkontact_akregator,
PluginFactory( "kontact_akregator" ) ) PluginFactory( "kontact_akregator" ) )
Plugin::Plugin( Kontact::Core *core, const char *, const TQStringList& ) AkregatorPlugin::AkregatorPlugin( Kontact::Core *core, const char *, const TQStringList& )
: Kontact::Plugin( core, TQT_TQOBJECT(core), "akregator" ), m_stub(0) : Kontact::Plugin( core, TQT_TQOBJECT(core), "akregator" ), m_stub(0)
{ {
setInstance( PluginFactory::instance() ); setInstance( PluginFactory::instance() );
insertNewAction( new TDEAction( i18n( "New Feed..." ), "bookmark_add", CTRL+SHIFT+Key_F, this, TQT_SLOT( addFeed() ), actionCollection(), "feed_new" ) ); insertNewAction( new TDEAction( i18n( "New Feed..." ), "bookmark_add", CTRL+SHIFT+Key_F, this, TQT_SLOT( addFeed() ), actionCollection(), "feed_new" ) );
@ -60,22 +59,22 @@ Plugin::Plugin( Kontact::Core *core, const char *, const TQStringList& )
new Kontact::UniqueAppHandlerFactory<Akregator::UniqueAppHandler>(), this ); new Kontact::UniqueAppHandlerFactory<Akregator::UniqueAppHandler>(), this );
} }
Plugin::~Plugin() AkregatorPlugin::~AkregatorPlugin()
{ {
} }
bool Plugin::isRunningStandalone() bool AkregatorPlugin::isRunningStandalone()
{ {
return m_uniqueAppWatcher->isRunningStandalone(); return m_uniqueAppWatcher->isRunningStandalone();
} }
TQStringList Plugin::invisibleToolbarActions() const TQStringList AkregatorPlugin::invisibleToolbarActions() const
{ {
return TQStringList( "file_new_contact" ); return TQStringList( "file_new_contact" );
} }
Akregator::AkregatorPartIface_stub *Plugin::interface() Akregator::AkregatorPartIface_stub *AkregatorPlugin::interface()
{ {
if ( !m_stub ) { if ( !m_stub ) {
part(); part();
@ -86,7 +85,7 @@ Akregator::AkregatorPartIface_stub *Plugin::interface()
} }
MyBasePart* Plugin::createPart() MyBasePart* AkregatorPlugin::createPart()
{ {
MyBasePart* p = loadPart(); MyBasePart* p = loadPart();
@ -98,24 +97,24 @@ MyBasePart* Plugin::createPart()
} }
void Plugin::showPart() void AkregatorPlugin::showPart()
{ {
core()->selectPlugin(this); core()->selectPlugin(this);
} }
void Plugin::addFeed() void AkregatorPlugin::addFeed()
{ {
interface()->addFeed(); interface()->addFeed();
} }
TQStringList Plugin::configModules() const TQStringList AkregatorPlugin::configModules() const
{ {
TQStringList modules; TQStringList modules;
modules << "PIM/akregator.desktop"; modules << "PIM/akregator.desktop";
return modules; return modules;
} }
void Plugin::readProperties( TDEConfig *config ) void AkregatorPlugin::readProperties( TDEConfig *config )
{ {
if ( part() ) { if ( part() ) {
Akregator::Part *myPart = static_cast<Akregator::Part*>( part() ); Akregator::Part *myPart = static_cast<Akregator::Part*>( part() );
@ -123,7 +122,7 @@ void Plugin::readProperties( TDEConfig *config )
} }
} }
void Plugin::saveProperties( TDEConfig *config ) void AkregatorPlugin::saveProperties( TDEConfig *config )
{ {
if ( part() ) { if ( part() ) {
Akregator::Part *myPart = static_cast<Akregator::Part*>( part() ); Akregator::Part *myPart = static_cast<Akregator::Part*>( part() );

@ -48,15 +48,14 @@ class UniqueAppHandler : public Kontact::UniqueAppHandler
}; };
class Plugin : public Kontact::Plugin class AkregatorPlugin : public Kontact::Plugin
{ {
Q_OBJECT Q_OBJECT
public: public:
Plugin( Kontact::Core *core, const char *name, AkregatorPlugin( Kontact::Core *core, const char *name,
const TQStringList & ); const TQStringList & );
~Plugin(); virtual ~AkregatorPlugin();
int weight() const { return 475; } int weight() const { return 475; }

@ -45,11 +45,10 @@ public:
class KAddressbookPlugin : public Kontact::Plugin class KAddressbookPlugin : public Kontact::Plugin
{ {
Q_OBJECT Q_OBJECT
public: public:
KAddressbookPlugin( Kontact::Core *core, const char *name, const TQStringList& ); KAddressbookPlugin( Kontact::Core *core, const char *name, const TQStringList& );
~KAddressbookPlugin(); virtual ~KAddressbookPlugin();
virtual bool createDCOPInterface( const TQString &serviceType ); virtual bool createDCOPInterface( const TQString &serviceType );
virtual bool isRunningStandalone(); virtual bool isRunningStandalone();

@ -37,12 +37,11 @@ class TDEAboutData;
class KarmPlugin : public Kontact::Plugin class KarmPlugin : public Kontact::Plugin
{ {
Q_OBJECT Q_OBJECT
public: public:
KarmPlugin( Kontact::Core *core, const char *name, KarmPlugin( Kontact::Core *core, const char *name,
const TQStringList & ); const TQStringList & );
~KarmPlugin(); virtual ~KarmPlugin();
int weight() const { return 700; } int weight() const { return 700; }

@ -35,12 +35,11 @@ class TDEAboutData;
class KitchenSyncPlugin : public Kontact::Plugin class KitchenSyncPlugin : public Kontact::Plugin
{ {
Q_OBJECT Q_OBJECT
public: public:
KitchenSyncPlugin( Kontact::Core *core, const char *name, KitchenSyncPlugin( Kontact::Core *core, const char *name,
const TQStringList & ); const TQStringList & );
~KitchenSyncPlugin(); virtual ~KitchenSyncPlugin();
int weight() const { return 800; } int weight() const { return 800; }

@ -46,11 +46,10 @@ public:
class KMailPlugin : public Kontact::Plugin class KMailPlugin : public Kontact::Plugin
{ {
Q_OBJECT Q_OBJECT
public: public:
KMailPlugin( Kontact::Core *core, const char *name, const TQStringList& ); KMailPlugin( Kontact::Core *core, const char *name, const TQStringList& );
~KMailPlugin(); virtual ~KMailPlugin();
virtual bool isRunningStandalone(); virtual bool isRunningStandalone();
virtual bool createDCOPInterface( const TQString& serviceType ); virtual bool createDCOPInterface( const TQString& serviceType );

@ -43,11 +43,10 @@ public:
class KNodePlugin : public Kontact::Plugin class KNodePlugin : public Kontact::Plugin
{ {
Q_OBJECT Q_OBJECT
public: public:
KNodePlugin( Kontact::Core *core, const char *name, const TQStringList& ); KNodePlugin( Kontact::Core *core, const char *name, const TQStringList& );
~KNodePlugin(); virtual ~KNodePlugin();
virtual bool createDCOPInterface( const TQString& serviceType ); virtual bool createDCOPInterface( const TQString& serviceType );
virtual bool isRunningStandalone(); virtual bool isRunningStandalone();

@ -32,11 +32,10 @@ class SummaryWidget;
class KNotesPlugin : public Kontact::Plugin class KNotesPlugin : public Kontact::Plugin
{ {
Q_OBJECT Q_OBJECT
public: public:
KNotesPlugin( Kontact::Core *core, const char *name, const TQStringList& ); KNotesPlugin( Kontact::Core *core, const char *name, const TQStringList& );
~KNotesPlugin(); virtual ~KNotesPlugin();
virtual Kontact::Summary *createSummaryWidget( TQWidget *parentWidget ); virtual Kontact::Summary *createSummaryWidget( TQWidget *parentWidget );

@ -36,11 +36,10 @@
class KOrganizerPlugin : public Kontact::Plugin class KOrganizerPlugin : public Kontact::Plugin
{ {
Q_OBJECT Q_OBJECT
public: public:
KOrganizerPlugin( Kontact::Core *core, const char *name, const TQStringList& ); KOrganizerPlugin( Kontact::Core *core, const char *name, const TQStringList& );
~KOrganizerPlugin(); virtual ~KOrganizerPlugin();
virtual bool createDCOPInterface( const TQString& serviceType ); virtual bool createDCOPInterface( const TQString& serviceType );
virtual bool isRunningStandalone(); virtual bool isRunningStandalone();

@ -43,6 +43,10 @@ KPilotPlugin::KPilotPlugin( Kontact::Core *core, const char *name, const TQStrin
} }
KPilotPlugin::~KPilotPlugin()
{
}
Kontact::Summary *KPilotPlugin::createSummaryWidget( TQWidget *parentWidget ) Kontact::Summary *KPilotPlugin::createSummaryWidget( TQWidget *parentWidget )
{ {
return new SummaryWidget( parentWidget ); return new SummaryWidget( parentWidget );

@ -32,6 +32,7 @@ class KPilotPlugin : public Kontact::Plugin
public: public:
KPilotPlugin( Kontact::Core *core, const char *name, const TQStringList& ); KPilotPlugin( Kontact::Core *core, const char *name, const TQStringList& );
KPilotPlugin(); KPilotPlugin();
virtual ~KPilotPlugin();
virtual Kontact::Summary *createSummaryWidget( TQWidget *parentWidget ); virtual Kontact::Summary *createSummaryWidget( TQWidget *parentWidget );

@ -37,6 +37,10 @@ NewsTickerPlugin::NewsTickerPlugin( Kontact::Core *core, const char *name, const
setInstance( NewsTickerPluginFactory::instance() ); setInstance( NewsTickerPluginFactory::instance() );
} }
NewsTickerPlugin::~NewsTickerPlugin()
{
}
Kontact::Summary *NewsTickerPlugin::createSummaryWidget( TQWidget* parentWidget ) Kontact::Summary *NewsTickerPlugin::createSummaryWidget( TQWidget* parentWidget )
{ {
return new SummaryWidget( parentWidget ); return new SummaryWidget( parentWidget );

@ -30,6 +30,7 @@ class NewsTickerPlugin : public Kontact::Plugin
public: public:
NewsTickerPlugin( Kontact::Core *core, const char *name, const TQStringList& ); NewsTickerPlugin( Kontact::Core *core, const char *name, const TQStringList& );
NewsTickerPlugin(); NewsTickerPlugin();
virtual ~NewsTickerPlugin();
virtual Kontact::Summary *createSummaryWidget( TQWidget* parentWidget ); virtual Kontact::Summary *createSummaryWidget( TQWidget* parentWidget );

@ -33,7 +33,7 @@ class SpecialdatesPlugin : public Kontact::Plugin
{ {
public: public:
SpecialdatesPlugin( Kontact::Core *core, const char *name, const TQStringList& ); SpecialdatesPlugin( Kontact::Core *core, const char *name, const TQStringList& );
~SpecialdatesPlugin(); virtual ~SpecialdatesPlugin();
int weight() const { return 310; } int weight() const { return 310; }

@ -1,7 +1,7 @@
/* /*
This file is part of KDE Kontact. This file is part of KDE Kontact.
Copyright (C) 2003 Sven Lüppken <sven@kde.org> Copyright (C) 2003 Sven L<EFBFBD>ppken <sven@kde.org>
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public modify it under the terms of the GNU Library General Public
@ -39,7 +39,7 @@ class SummaryView : public Kontact::Plugin
public: public:
SummaryView( Kontact::Core *core, const char *name, const TQStringList& ); SummaryView( Kontact::Core *core, const char *name, const TQStringList& );
~SummaryView(); virtual ~SummaryView();
int weight() const { return 100; } int weight() const { return 100; }

@ -39,7 +39,7 @@ class TestPlugin : public Kontact::Plugin
public: public:
TestPlugin(Kontact::Core *core, const char *name, const TQStringList &); TestPlugin(Kontact::Core *core, const char *name, const TQStringList &);
~TestPlugin(); virtual ~TestPlugin();
protected: protected:
KParts::Part* createPart(); KParts::Part* createPart();

@ -37,6 +37,10 @@ WeatherPlugin::WeatherPlugin( Kontact::Core *core, const char *name, const TQStr
setInstance( WeatherPluginFactory::instance() ); setInstance( WeatherPluginFactory::instance() );
} }
WeatherPlugin::~WeatherPlugin()
{
}
Kontact::Summary *WeatherPlugin::createSummaryWidget( TQWidget *parentWidget ) Kontact::Summary *WeatherPlugin::createSummaryWidget( TQWidget *parentWidget )
{ {
return new SummaryWidget( parentWidget ); return new SummaryWidget( parentWidget );

@ -30,6 +30,7 @@ class WeatherPlugin : public Kontact::Plugin
public: public:
WeatherPlugin( Kontact::Core *core, const char *name, const TQStringList& ); WeatherPlugin( Kontact::Core *core, const char *name, const TQStringList& );
WeatherPlugin(); WeatherPlugin();
virtual ~WeatherPlugin();
virtual Kontact::Summary *createSummaryWidget( TQWidget *parentWidget ); virtual Kontact::Summary *createSummaryWidget( TQWidget *parentWidget );

@ -38,13 +38,14 @@ class KDE_EXPORT CellItem
: mSubCells( 0 ), mSubCell( -1 ) : mSubCells( 0 ), mSubCell( -1 )
{ {
} }
virtual ~CellItem() {}
void setSubCells( int v ) { mSubCells = v; } void setSubCells( int v ) { mSubCells = v; }
int subCells() const { return mSubCells; } int subCells() const { return mSubCells; }
void setSubCell( int v ) { mSubCell = v; } void setSubCell( int v ) { mSubCell = v; }
int subCell() const { return mSubCell; } int subCell() const { return mSubCell; }
virtual bool overlaps( CellItem *other ) const = 0; virtual bool overlaps( CellItem *other ) const = 0;
virtual TQString label() const; virtual TQString label() const;

@ -50,6 +50,8 @@ public:
class WinObjHandle class WinObjHandle
{ {
public: public:
WinObjHandle() {}
virtual ~WinObjHandle() {}
virtual void apply( TQPainter& p ) = 0; virtual void apply( TQPainter& p ) = 0;
}; };

@ -77,6 +77,7 @@ class LIBKCAL_EXPORT CalendarResources :
DestinationPolicy( CalendarResourceManager *manager, DestinationPolicy( CalendarResourceManager *manager,
TQWidget *parent = 0 ) : TQWidget *parent = 0 ) :
mManager( manager ), mParent( parent ) {} mManager( manager ), mParent( parent ) {}
virtual ~DestinationPolicy() {}
virtual ResourceCalendar *destination( Incidence *incidence ) = 0; virtual ResourceCalendar *destination( Incidence *incidence ) = 0;
virtual TQWidget *parent() { return mParent; } virtual TQWidget *parent() { return mParent; }
@ -100,6 +101,7 @@ class LIBKCAL_EXPORT CalendarResources :
StandardDestinationPolicy( CalendarResourceManager *manager, StandardDestinationPolicy( CalendarResourceManager *manager,
TQWidget *parent = 0 ) : TQWidget *parent = 0 ) :
DestinationPolicy( manager, parent ) {} DestinationPolicy( manager, parent ) {}
virtual ~StandardDestinationPolicy() {}
ResourceCalendar *destination( Incidence *incidence ); ResourceCalendar *destination( Incidence *incidence );
@ -117,6 +119,7 @@ class LIBKCAL_EXPORT CalendarResources :
AskDestinationPolicy( CalendarResourceManager *manager, AskDestinationPolicy( CalendarResourceManager *manager,
TQWidget *parent = 0 ) : TQWidget *parent = 0 ) :
DestinationPolicy( manager, parent ) {} DestinationPolicy( manager, parent ) {}
virtual ~AskDestinationPolicy() {}
ResourceCalendar *destination( Incidence *incidence ); ResourceCalendar *destination( Incidence *incidence );

@ -34,6 +34,10 @@ AlarmClient::AlarmClient()
kdDebug(5850) << "AlarmClient::AlarmClient()" << endl; kdDebug(5850) << "AlarmClient::AlarmClient()" << endl;
} }
AlarmClient::~AlarmClient()
{
}
void AlarmClient::startDaemon() void AlarmClient::startDaemon()
{ {
if ( kapp->dcopClient()->isApplicationRegistered( "korgac" ) ) { if ( kapp->dcopClient()->isApplicationRegistered( "korgac" ) ) {

@ -29,6 +29,7 @@ class AlarmClient
{ {
public: public:
AlarmClient(); AlarmClient();
virtual ~AlarmClient();
/** /**
Start alarm daemon. Start alarm daemon.

@ -35,6 +35,8 @@ class CreateImapAccount : public TDEConfigPropagator::Change
class CustomWriter class CustomWriter
{ {
public: public:
CustomWriter() {}
virtual ~CustomWriter() {}
virtual void writeFolder( TDEConfig &, int folderId ) = 0; virtual void writeFolder( TDEConfig &, int folderId ) = 0;
virtual void writeIds( int accountId, int transportId ) = 0; virtual void writeIds( int accountId, int transportId ) = 0;
}; };

Loading…
Cancel
Save