From e7a313fd77ebef1bd3bbca1c8375f3be1a7e36a8 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 31 Dec 2013 14:25:49 +0100 Subject: [PATCH] Some optimizations for feedsmodel. --- src/core/basenetworkaccessmanager.h | 1 - src/core/feedsmodel.cpp | 20 +++++++------------- src/core/feedsmodel.h | 2 +- src/gui/feedsview.cpp | 8 ++++++-- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/core/basenetworkaccessmanager.h b/src/core/basenetworkaccessmanager.h index d8ce13858..1016c9aba 100644 --- a/src/core/basenetworkaccessmanager.h +++ b/src/core/basenetworkaccessmanager.h @@ -19,7 +19,6 @@ class BaseNetworkAccessManager : public QNetworkAccessManager { virtual void loadSettings(); protected: - QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData); diff --git a/src/core/feedsmodel.cpp b/src/core/feedsmodel.cpp index 1447daffd..9443d9b02 100644 --- a/src/core/feedsmodel.cpp +++ b/src/core/feedsmodel.cpp @@ -35,19 +35,13 @@ FeedsModel::FeedsModel(QObject *parent) : QAbstractItemModel(parent) { FeedsModel::~FeedsModel() { qDebug("Destroying FeedsModel instance."); + delete m_rootItem; DatabaseFactory::getInstance()->removeConnection(objectName()); } QVariant FeedsModel::data(const QModelIndex &index, int role) const { - FeedsModelRootItem *item = itemForIndex(index); - - if (item != NULL) { - return item->data(index.column(), role); - } - else { - return QVariant(); - } + return itemForIndex(index)->data(index.column(), role); } QVariant FeedsModel::headerData(int section, @@ -153,7 +147,7 @@ FeedsModelRootItem *FeedsModel::itemForIndex(const QModelIndex &index) const { return static_cast(index.internalPointer()); } else { - return NULL; + return m_rootItem; } } @@ -168,9 +162,9 @@ FeedsModelCategory *FeedsModel::categoryForIndex(const QModelIndex &index) const } } -/* + QModelIndex FeedsModel::indexForItem(FeedsModelRootItem *item) const { - if (item->kind() == FeedsModelRootItem::RootItem) { + if (item == NULL || item->kind() == FeedsModelRootItem::RootItem) { // Root item lies on invalid index. return QModelIndex(); } @@ -212,8 +206,8 @@ QModelIndex FeedsModel::indexForItem(FeedsModelRootItem *item) const { return QModelIndex(); } -*/ +/* QModelIndex FeedsModel::indexForItem(FeedsModelRootItem *item) const { if (item->kind() == FeedsModelRootItem::RootItem) { // Root item lies on invalid index. @@ -255,7 +249,7 @@ QModelIndex FeedsModel::indexForItem(FeedsModelRootItem *item) const { } return QModelIndex(); -} +}*/ void FeedsModel::reloadChangedLayout(QModelIndexList list) { while (!list.isEmpty()) { diff --git a/src/core/feedsmodel.h b/src/core/feedsmodel.h index d62bf9380..0ea0369cd 100644 --- a/src/core/feedsmodel.h +++ b/src/core/feedsmodel.h @@ -64,7 +64,7 @@ class FeedsModel : public QAbstractItemModel { FeedsModelCategory *categoryForIndex(const QModelIndex &index) const; // Returns feed/category which lies at the specified index or - // null if index is invalid. + // root item if index is invalid. FeedsModelRootItem *itemForIndex(const QModelIndex &index) const; // Returns QModelIndex on which lies given item. diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index bcaf1c1f7..7f79d7f35 100644 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -205,8 +205,12 @@ void FeedsView::selectionChanged(const QItemSelection &selected, m_selectedFeeds.clear(); foreach (FeedsModelFeed *feed, selectedFeeds()) { - QModelIndex id = m_sourceModel->indexForItem(feed); - qDebug("INDEX %d, %d", id.row(), id.column()); +#if defined(DEBUG) + QModelIndex index_for_feed = m_sourceModel->indexForItem(feed); + + qDebug("Selecting feed '%s' (source index [%d, %d]).", + qPrintable(feed->title()), index_for_feed.row(), index_for_feed.column()); +#endif m_selectedFeeds << feed->id(); }