diff --git a/src/core/feedsimportexportmodel.cpp b/src/core/feedsimportexportmodel.cpp index aa3325d18..b782a5235 100644 --- a/src/core/feedsimportexportmodel.cpp +++ b/src/core/feedsimportexportmodel.cpp @@ -110,7 +110,7 @@ bool FeedsImportExportModel::exportToOMPL20(QByteArray &result) { } case FeedsModelRootItem::Feed: { - FeedsModelFeed *child_feed = static_cast(child_item); + FeedsModelFeed *child_feed = child_item->toFeed(); QDomElement outline_feed = opml_document.createElement("outline"); outline_feed.setAttribute("text", child_feed->title()); outline_feed.setAttribute("xmlUrl", child_feed->url()); diff --git a/src/core/feedsmodel.cpp b/src/core/feedsmodel.cpp index 4c6ad2a2b..769c00553 100755 --- a/src/core/feedsmodel.cpp +++ b/src/core/feedsmodel.cpp @@ -129,7 +129,7 @@ bool FeedsModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int if (dragged_item->kind() == FeedsModelRootItem::Feed) { qDebug("Drag-drop action for feed '%s' detected, editing the feed.", qPrintable(dragged_item->title())); - FeedsModelFeed *actual_feed = static_cast(dragged_item); + FeedsModelFeed *actual_feed = dragged_item->toFeed(); FeedsModelFeed *feed_new = new FeedsModelFeed(*actual_feed); feed_new->setParent(target_item); @@ -138,7 +138,7 @@ bool FeedsModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int else if (dragged_item->kind() == FeedsModelRootItem::Category) { qDebug("Drag-drop action for category '%s' detected, editing the feed.", qPrintable(dragged_item->title())); - FeedsModelCategory *actual_category = static_cast(dragged_item); + FeedsModelCategory *actual_category = dragged_item->toCategory(); FeedsModelCategory *category_new = new FeedsModelCategory(*actual_category); category_new->clearChildren(); @@ -581,7 +581,7 @@ FeedsModelCategory *FeedsModel::categoryForIndex(const QModelIndex &index) const FeedsModelRootItem *item = itemForIndex(index); if (item->kind() == FeedsModelRootItem::Category) { - return static_cast(item); + return item->toCategory(); } else { return NULL; @@ -592,7 +592,7 @@ FeedsModelRecycleBin *FeedsModel::recycleBinForIndex(const QModelIndex &index) c FeedsModelRootItem *item = itemForIndex(index); if (item->kind() == FeedsModelRootItem::RecycleBin) { - return static_cast(item); + return item->toRecycleBin(); } else { return NULL; @@ -697,7 +697,7 @@ bool FeedsModel::mergeModel(FeedsImportExportModel *model, QString &output_messa } if (source_item->kind() == FeedsModelRootItem::Category) { - FeedsModelCategory *source_category = static_cast(source_item); + FeedsModelCategory *source_category = source_item->toCategory(); FeedsModelCategory *new_category = new FeedsModelCategory(*source_category); // Add category to model. @@ -724,7 +724,7 @@ bool FeedsModel::mergeModel(FeedsImportExportModel *model, QString &output_messa } } else if (source_item->kind() == FeedsModelRootItem::Feed) { - FeedsModelFeed *source_feed = static_cast(source_item); + FeedsModelFeed *source_feed = source_item->toFeed(); FeedsModelFeed *new_feed = new FeedsModelFeed(*source_feed); // Append this feed and end this iteration. @@ -848,7 +848,7 @@ FeedsModelFeed *FeedsModel::feedForIndex(const QModelIndex &index) { FeedsModelRootItem *item = itemForIndex(index); if (item->kind() == FeedsModelRootItem::Feed) { - return static_cast(item); + return item->toFeed(); } else { return NULL; @@ -973,7 +973,7 @@ QHash FeedsModel::categoriesForItem(FeedsModelRootItem // This item is category, add it to the output list and // scan its children. int category_id = item->id(); - FeedsModelCategory *category = static_cast(item); + FeedsModelCategory *category = item->toCategory(); if (!categories.contains(category_id)) { categories.insert(category_id, category); @@ -995,7 +995,7 @@ QList FeedsModel::feedsForItem(FeedsModelRootItem *root) { if (root->kind() == FeedsModelRootItem::Feed) { // Root itself is a FEED. - feeds.append(static_cast(root)); + feeds.append(root->toFeed()); } else { // Root itself is a CATEGORY or ROOT item. @@ -1010,11 +1010,11 @@ QList FeedsModel::feedsForItem(FeedsModelRootItem *root) { foreach (FeedsModelRootItem *child, active_category->childItems()) { if (child->kind() == FeedsModelRootItem::Feed) { // This child is feed. - feeds.append(static_cast(child)); + feeds.append(child->toFeed()); } else if (child->kind() == FeedsModelRootItem::Category) { // This child is category, add its child feeds too. - traversable_items.append(static_cast(child)); + traversable_items.append(child->toCategory()); } } } diff --git a/src/core/feedsmodelrootitem.cpp b/src/core/feedsmodelrootitem.cpp index b83742ed0..d5c880117 100755 --- a/src/core/feedsmodelrootitem.cpp +++ b/src/core/feedsmodelrootitem.cpp @@ -17,9 +17,10 @@ #include "core/feedsmodelrootitem.h" -#include "miscellaneous/application.h" #include "core/feedsmodelcategory.h" #include "core/feedsmodelfeed.h" +#include "core/feedsmodelrecyclebin.h" +#include "miscellaneous/application.h" #include @@ -80,11 +81,23 @@ bool FeedsModelRootItem::removeChild(FeedsModelRootItem *child) { return m_childItems.removeOne(child); } +FeedsModelRecycleBin* FeedsModelRootItem::toRecycleBin() { + return static_cast(this); +} + +FeedsModelCategory* FeedsModelRootItem::toCategory() { + return static_cast(this); +} + +FeedsModelFeed* FeedsModelRootItem::toFeed() { + return static_cast(this); +} + FeedsModelRootItem *FeedsModelRootItem::child(FeedsModelRootItem::Kind kind_of_child, const QString &identifier) { foreach (FeedsModelRootItem *child, childItems()) { if (child->kind() == kind_of_child) { - if ((kind_of_child == Category && static_cast(child)->title() == identifier) || - (kind_of_child == Feed && static_cast(child)->url() == identifier)) { + if ((kind_of_child == Category && child->title() == identifier) || + (kind_of_child == Feed && child->toFeed()->url() == identifier)) { return child; } } diff --git a/src/core/feedsmodelrootitem.h b/src/core/feedsmodelrootitem.h index 65614fd84..17b804451 100755 --- a/src/core/feedsmodelrootitem.h +++ b/src/core/feedsmodelrootitem.h @@ -23,6 +23,9 @@ #include #include +class FeedsModelRecycleBin; +class FeedsModelCategory; +class FeedsModelFeed; // Represents ROOT item of FeedsModel. // NOTE: This class is derived to add functionality for @@ -163,6 +166,11 @@ class FeedsModelRootItem { m_description = description; } + // Converters + FeedsModelRecycleBin* toRecycleBin(); + FeedsModelCategory* toCategory(); + FeedsModelFeed* toFeed(); + // Compares two model items. static bool isEqual(FeedsModelRootItem *lhs, FeedsModelRootItem *rhs); static bool lessThan(FeedsModelRootItem *lhs, FeedsModelRootItem *rhs); diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index b0e084997..30b430147 100755 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -356,10 +356,10 @@ void FeedsView::editSelectedItem() { FeedsModelFeed *feed; if ((category = selectedCategory()) != NULL) { - editCategory(static_cast(category)); + editCategory(category); } else if ((feed = selectedFeed()) != NULL) { - editFeed(static_cast(feed)); + editFeed(feed); } // Changes are done, unlock the update master lock. diff --git a/src/network-web/basenetworkaccessmanager.cpp b/src/network-web/basenetworkaccessmanager.cpp index 94d9752a3..76687a420 100755 --- a/src/network-web/basenetworkaccessmanager.cpp +++ b/src/network-web/basenetworkaccessmanager.cpp @@ -38,8 +38,8 @@ BaseNetworkAccessManager::~BaseNetworkAccessManager() { void BaseNetworkAccessManager::loadSettings() { QNetworkProxy new_proxy; QNetworkProxy::ProxyType selected_proxy_type = static_cast(qApp->settings()->value(APP_CFG_PROXY, - "proxy_type", - QNetworkProxy::NoProxy).toInt()); + "proxy_type", + QNetworkProxy::NoProxy).toInt()); if (selected_proxy_type == QNetworkProxy::NoProxy) { // No extra setting is needed, set new proxy and exit this method.