summaryrefslogtreecommitdiffstats
path: root/akregator/src
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2014-12-06 15:17:15 -0600
committerTimothy Pearson <[email protected]>2014-12-06 15:17:15 -0600
commit6e9f8cb7044774da171b2a0f6ffdda579eb9ddab (patch)
tree8078dd1ba3a4b5ec1d651c09156cf18e2cba9d51 /akregator/src
parent96cf12b16ab69bcb2df0773091ba9751e9219446 (diff)
downloadtdepim-03fc27296e2eb29fdf8158aefa3b979ea6a95698.tar.gz
tdepim-03fc27296e2eb29fdf8158aefa3b979ea6a95698.zip
Fix Kontact crash in Akregator part due to identical destructor signatures being generated for two unrelated classesr14.0.0
This relates to Bug 2235 Fix a slew of non-virtual destructor problems
Diffstat (limited to 'akregator/src')
-rw-r--r--akregator/src/actionmanagerimpl.cpp1
-rw-r--r--akregator/src/article.cpp6
-rw-r--r--akregator/src/articlefilter.h4
-rw-r--r--akregator/src/articlelistview.cpp1
-rw-r--r--akregator/src/articleviewer.cpp1
-rw-r--r--akregator/src/feed.cpp12
-rw-r--r--akregator/src/feedlist.cpp2
-rw-r--r--akregator/src/feedlistview.cpp4
-rw-r--r--akregator/src/plugin.cpp6
-rw-r--r--akregator/src/plugin.h1
-rw-r--r--akregator/src/simplenodeselector.cpp1
-rw-r--r--akregator/src/storagefactory.h13
12 files changed, 35 insertions, 17 deletions
diff --git a/akregator/src/actionmanagerimpl.cpp b/akregator/src/actionmanagerimpl.cpp
index c269500e7..7fa61cdc9 100644
--- a/akregator/src/actionmanagerimpl.cpp
+++ b/akregator/src/actionmanagerimpl.cpp
@@ -68,6 +68,7 @@ class ActionManagerImpl::NodeSelectVisitor : public TreeNodeVisitor
{
public:
NodeSelectVisitor(ActionManagerImpl* manager) : m_manager(manager) {}
+ virtual ~NodeSelectVisitor() {}
virtual bool visitFeed(Feed* node)
{
diff --git a/akregator/src/article.cpp b/akregator/src/article.cpp
index 8b62509f4..0e01d3e7c 100644
--- a/akregator/src/article.cpp
+++ b/akregator/src/article.cpp
@@ -91,6 +91,7 @@ Article::Article(const TQString& guid, Feed* feed) : d(new Private)
d->guid = guid;
d->archive = Backend::Storage::getInstance()->archiveFor(feed->xmlUrl());
d->status = 0;
+ d->hash = 0;
}
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() );
d->guid = article.guid();
-
+
if (!d->archive->contains(d->guid))
{
d->archive->addEntry(d->guid);
@@ -113,7 +114,7 @@ void Article::initialize(RSS::Article article, Backend::FeedStorage* archive)
}
else
{ // article is not deleted, let's add it to the archive
-
+
d->archive->setHash(d->guid, hash() );
TQString title = article.title().isEmpty() ? buildTitle(article.description()) : article.title();
d->archive->setTitle(d->guid, title);
@@ -358,7 +359,6 @@ KURL Article::commentsLink() const
int Article::comments() const
{
-
return d->archive->comments(d->guid);
}
diff --git a/akregator/src/articlefilter.h b/akregator/src/articlefilter.h
index 5f1e7af37..535a731ef 100644
--- a/akregator/src/articlefilter.h
+++ b/akregator/src/articlefilter.h
@@ -145,6 +145,10 @@ class TagMatcher : public AbstractMatcher
class AbstractAction
{
public:
+ AbstractAction() {}
+ virtual ~AbstractAction() {}
+
+ public:
virtual void exec(Article& article) = 0;
virtual void writeConfig(TDEConfig* config) const = 0;
diff --git a/akregator/src/articlelistview.cpp b/akregator/src/articlelistview.cpp
index 2324096be..a0e5c8b70 100644
--- a/akregator/src/articlelistview.cpp
+++ b/akregator/src/articlelistview.cpp
@@ -89,6 +89,7 @@ class ArticleListView::ColumnLayoutVisitor : public TreeNodeVisitor
{
public:
ColumnLayoutVisitor(ArticleListView* view) : m_view(view) {}
+ virtual ~ColumnLayoutVisitor() {}
virtual bool visitTagNode(TagNode* /*node*/)
{
diff --git a/akregator/src/articleviewer.cpp b/akregator/src/articleviewer.cpp
index 96b269e6d..3b1cc6db9 100644
--- a/akregator/src/articleviewer.cpp
+++ b/akregator/src/articleviewer.cpp
@@ -66,6 +66,7 @@ class ArticleViewer::ShowSummaryVisitor : public TreeNodeVisitor
public:
ShowSummaryVisitor(ArticleViewer* view) : m_view(view) {}
+ virtual ~ShowSummaryVisitor() {}
virtual bool visitFeed(Feed* node)
{
diff --git a/akregator/src/feed.cpp b/akregator/src/feed.cpp
index 3b0d81035..7e7f59e80 100644
--- a/akregator/src/feed.cpp
+++ b/akregator/src/feed.cpp
@@ -445,7 +445,7 @@ void Feed::appendArticles(const RSS::Document &doc)
RSS::Article::List::ConstIterator en = d_articles.end();
int nudge=0;
-
+
TQValueList<Article> deletedArticles = d->deletedArticles;
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();
for (TQValueList<ArticleInterceptor*>::ConstIterator it = interceptors.begin(); it != interceptors.end(); ++it)
(*it)->processArticle(mya);
-
+
d->addedArticlesNotify.append(mya);
-
+
if (!mya.isDeleted() && !markImmediatelyAsRead())
mya.setStatus(Article::New);
else
mya.setStatus(Article::Read);
-
+
changed = true;
}
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.
Article old = d->articles[(*it).guid()];
- Article mya(*it, this);
+ Article mya(*it, this);
if (!mya.guidIsHash() && mya.hash() != old.hash() && !old.isDeleted())
{
mya.setKeep(old.keep());
@@ -491,7 +491,7 @@ void Feed::appendArticles(const RSS::Document &doc)
}
else if (old.isDeleted())
deletedArticles.remove(mya);
- }
+ }
}
TQValueList<Article>::ConstIterator dit = deletedArticles.begin();
diff --git a/akregator/src/feedlist.cpp b/akregator/src/feedlist.cpp
index 708b4fb7e..0c34e3933 100644
--- a/akregator/src/feedlist.cpp
+++ b/akregator/src/feedlist.cpp
@@ -52,6 +52,7 @@ class FeedList::AddNodeVisitor : public TreeNodeVisitor
{
public:
AddNodeVisitor(FeedList* list) : m_list(list) {}
+ virtual ~AddNodeVisitor() {}
virtual bool visitFeed(Feed* node)
@@ -69,6 +70,7 @@ class FeedList::RemoveNodeVisitor : public TreeNodeVisitor
{
public:
RemoveNodeVisitor(FeedList* list) : m_list(list) {}
+ virtual ~RemoveNodeVisitor() {}
virtual bool visitFeed(Feed* node)
{
diff --git a/akregator/src/feedlistview.cpp b/akregator/src/feedlistview.cpp
index d6ea394a1..f0a373632 100644
--- a/akregator/src/feedlistview.cpp
+++ b/akregator/src/feedlistview.cpp
@@ -78,6 +78,7 @@ class NodeListView::ConnectNodeVisitor : public TreeNodeVisitor
{
public:
ConnectNodeVisitor(NodeListView* view) : m_view(view) {}
+ virtual ~ConnectNodeVisitor() {}
virtual bool visitTreeNode(TreeNode* node)
{
@@ -114,6 +115,7 @@ class NodeListView::DisconnectNodeVisitor : public TreeNodeVisitor
{
public:
DisconnectNodeVisitor(NodeListView* view) : m_view(view) {}
+ virtual ~DisconnectNodeVisitor() {}
virtual bool visitTagNode(TagNode* node)
{
@@ -153,6 +155,7 @@ class NodeListView::DeleteItemVisitor : public TreeNodeVisitor
public:
DeleteItemVisitor(NodeListView* view) : m_view(view) {}
+ virtual ~DeleteItemVisitor() {}
virtual bool visitTreeNode(TreeNode* node)
{
@@ -204,6 +207,7 @@ class NodeListView::CreateItemVisitor : public TreeNodeVisitor
{
public:
CreateItemVisitor(NodeListView* view) : m_view(view) {}
+ virtual ~CreateItemVisitor() {}
virtual bool visitTagNode(TagNode* node)
{
diff --git a/akregator/src/plugin.cpp b/akregator/src/plugin.cpp
index 495dabc38..a90136b8b 100644
--- a/akregator/src/plugin.cpp
+++ b/akregator/src/plugin.cpp
@@ -8,11 +8,13 @@ namespace Akregator {
Plugin::Plugin()
-{}
+{
+}
Plugin::~Plugin()
-{}
+{
+}
void
diff --git a/akregator/src/plugin.h b/akregator/src/plugin.h
index 650a4a924..f44084209 100644
--- a/akregator/src/plugin.h
+++ b/akregator/src/plugin.h
@@ -14,7 +14,6 @@
#include <tqmap.h>
#include <tqstring.h>
-
namespace Akregator
{
// class PluginConfig;
diff --git a/akregator/src/simplenodeselector.cpp b/akregator/src/simplenodeselector.cpp
index 4291bb453..a4f1d4be8 100644
--- a/akregator/src/simplenodeselector.cpp
+++ b/akregator/src/simplenodeselector.cpp
@@ -93,6 +93,7 @@ class SimpleNodeSelector::NodeVisitor : public TreeNodeVisitor
public:
NodeVisitor(SimpleNodeSelector* view) : TreeNodeVisitor(), m_view(view) {}
+ virtual ~NodeVisitor() {}
void createItems(TreeNode* node)
{
diff --git a/akregator/src/storagefactory.h b/akregator/src/storagefactory.h
index 93ab7f753..3505ef449 100644
--- a/akregator/src/storagefactory.h
+++ b/akregator/src/storagefactory.h
@@ -38,18 +38,21 @@ class Storage;
class AKREGATOR_EXPORT StorageFactory
{
public:
-
+
+ StorageFactory() {}
+ virtual ~StorageFactory() {}
+
/** identifier of the storage type, like "metakit", "postgres" etc. For use in
configuration files. Must not contain spaces or special characters.
*/
virtual TQString key() const = 0;
-
+
/** returns the (i18n'd) name of the storage type. */
virtual TQString name() const = 0;
/** true if the plugin is configurable via a config dialog */
virtual bool isConfigurable() const = 0;
-
+
/** shows the plugin's configuration dialog */
virtual void configure() = 0;
@@ -59,11 +62,11 @@ class AKREGATOR_EXPORT StorageFactory
* write access.
*/
virtual bool allowsMultipleWriteAccess() const = 0;
-
+
/** creates a storage object with given parameters
@param params list of implementation-specific parameters
*/
- virtual Storage* createStorage(const TQStringList& params) const = 0;
+ virtual Storage* createStorage(const TQStringList& params) const = 0;
};
}