From 93e1fb0ef73b3b8fe8b7d12343d6a2efb6d6642d Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Thu, 12 Dec 2013 08:27:05 +0100 Subject: [PATCH] Added new classes and some removed. --- CMakeLists.txt | 3 ++- src/core/feedsmodel.cpp | 18 +++++++-------- src/core/feedsmodelcategory.cpp | 2 +- src/core/feedsmodelcategory.h | 4 ++-- src/core/feedsmodelfeed.cpp | 2 +- src/core/feedsmodelfeed.h | 4 ++-- src/core/feedsmodelitem.cpp | 11 ---------- src/core/feedsmodelitem.h | 29 ------------------------- src/core/feedsmodelnonrootitem.cpp | 6 ++--- src/core/feedsmodelnonrootitem.h | 6 ++--- src/core/feedsmodelrootitem.cpp | 7 +++--- src/core/feedsmodelrootitem.h | 21 +++++++++--------- src/core/feedsmodelstandardcategory.cpp | 10 +++++++++ src/core/feedsmodelstandardcategory.h | 19 ++++++++++++++++ src/core/feedsmodelstandardfeed.cpp | 10 +++++++++ src/core/feedsmodelstandardfeed.h | 16 ++++++++++++++ 16 files changed, 92 insertions(+), 76 deletions(-) delete mode 100644 src/core/feedsmodelitem.cpp delete mode 100644 src/core/feedsmodelitem.h create mode 100644 src/core/feedsmodelstandardcategory.cpp create mode 100644 src/core/feedsmodelstandardcategory.h create mode 100644 src/core/feedsmodelstandardfeed.cpp create mode 100644 src/core/feedsmodelstandardfeed.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d725febf..b833d490d 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -269,11 +269,12 @@ set(APP_SOURCES src/core/messagesproxymodel.cpp src/core/feedsmodel.cpp src/core/feedsproxymodel.cpp - src/core/feedsmodelitem.cpp src/core/feedsmodelcategory.cpp src/core/feedsmodelrootitem.cpp src/core/feedsmodelnonrootitem.cpp src/core/feedsmodelfeed.cpp + src/core/feedsmodelstandardcategory.cpp + src/core/feedsmodelstandardfeed.cpp # Basic application sources. src/main.cpp diff --git a/src/core/feedsmodel.cpp b/src/core/feedsmodel.cpp index 60c1e087c..79305198a 100644 --- a/src/core/feedsmodel.cpp +++ b/src/core/feedsmodel.cpp @@ -28,7 +28,7 @@ QVariant FeedsModel::data(const QModelIndex &index, int role) const { return QVariant(); } - FeedsModelItem *item = static_cast(index.internalPointer()); + FeedsModelRootItem *item = static_cast(index.internalPointer()); return item->data(index.column(), Qt::DisplayRole); } @@ -55,16 +55,16 @@ QModelIndex FeedsModel::index(int row, int column, const QModelIndex &parent) co return QModelIndex(); } - FeedsModelItem *parent_item; + FeedsModelRootItem *parent_item; if (!parent.isValid()) { parent_item = m_rootItem; } else { - parent_item = static_cast(parent.internalPointer()); + parent_item = static_cast(parent.internalPointer()); } - FeedsModelItem *child_item = parent_item->child(row); + FeedsModelRootItem *child_item = parent_item->child(row); if (child_item) { return createIndex(row, column, child_item); @@ -79,8 +79,8 @@ QModelIndex FeedsModel::parent(const QModelIndex &child) const { return QModelIndex(); } - FeedsModelItem *child_item = static_cast(child.internalPointer()); - FeedsModelItem *parent_item = child_item->parent(); + FeedsModelRootItem *child_item = static_cast(child.internalPointer()); + FeedsModelRootItem *parent_item = child_item->parent(); if (parent_item == m_rootItem) { return QModelIndex(); @@ -91,7 +91,7 @@ QModelIndex FeedsModel::parent(const QModelIndex &child) const { } int FeedsModel::rowCount(const QModelIndex &parent) const { - FeedsModelItem *parent_item; + FeedsModelRootItem *parent_item; if (parent.column() > 0) { return 0; @@ -101,7 +101,7 @@ int FeedsModel::rowCount(const QModelIndex &parent) const { parent_item = m_rootItem; } else { - parent_item = static_cast(parent.internalPointer()); + parent_item = static_cast(parent.internalPointer()); } return parent_item->childCount(); @@ -109,7 +109,7 @@ int FeedsModel::rowCount(const QModelIndex &parent) const { int FeedsModel::columnCount(const QModelIndex &parent) const { if (parent.isValid()) { - return static_cast(parent.internalPointer())->columnCount(); + return static_cast(parent.internalPointer())->columnCount(); } else { return m_rootItem->columnCount(); diff --git a/src/core/feedsmodelcategory.cpp b/src/core/feedsmodelcategory.cpp index 129e70b7c..0dc4a21eb 100644 --- a/src/core/feedsmodelcategory.cpp +++ b/src/core/feedsmodelcategory.cpp @@ -1,7 +1,7 @@ #include "core/feedsmodelcategory.h" -FeedsModelCategory::FeedsModelCategory(FeedsModelItem *parent_item) +FeedsModelCategory::FeedsModelCategory(FeedsModelRootItem *parent_item) : FeedsModelNonRootItem(parent_item) { } diff --git a/src/core/feedsmodelcategory.h b/src/core/feedsmodelcategory.h index 9f0365925..717634431 100644 --- a/src/core/feedsmodelcategory.h +++ b/src/core/feedsmodelcategory.h @@ -5,11 +5,11 @@ // Base class for all categories contained in FeedsModel. -// NOTE: This class is derived to create PARTICULAR category types. +// NOTE: This class should be derived to create PARTICULAR category types. class FeedsModelCategory : public FeedsModelNonRootItem { public: // Constructors and destructors - explicit FeedsModelCategory(FeedsModelItem *parent_item); + explicit FeedsModelCategory(FeedsModelRootItem *parent_item); virtual ~FeedsModelCategory(); }; diff --git a/src/core/feedsmodelfeed.cpp b/src/core/feedsmodelfeed.cpp index 19df4a768..51a9c3090 100644 --- a/src/core/feedsmodelfeed.cpp +++ b/src/core/feedsmodelfeed.cpp @@ -1,7 +1,7 @@ #include "core/feedsmodelfeed.h" -FeedsModelFeed::FeedsModelFeed(FeedsModelItem *parent_item) +FeedsModelFeed::FeedsModelFeed(FeedsModelRootItem *parent_item) :FeedsModelNonRootItem(parent_item) { } diff --git a/src/core/feedsmodelfeed.h b/src/core/feedsmodelfeed.h index cc3839e63..cbbace0a8 100644 --- a/src/core/feedsmodelfeed.h +++ b/src/core/feedsmodelfeed.h @@ -5,12 +5,12 @@ // Represents BASE class for feeds contained in FeedsModel. -// NOTE: This class is derived to create PARTICULAR feed types. +// NOTE: This class should be derived to create PARTICULAR feed types. class FeedsModelFeed : public FeedsModelNonRootItem { public: // Constructors and destructors. - explicit FeedsModelFeed(FeedsModelItem *parent_item); + explicit FeedsModelFeed(FeedsModelRootItem *parent_item); virtual ~FeedsModelFeed(); int childCount() const; diff --git a/src/core/feedsmodelitem.cpp b/src/core/feedsmodelitem.cpp deleted file mode 100644 index cdd0a3441..000000000 --- a/src/core/feedsmodelitem.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include - -#include "core/feedsmodelitem.h" - - -FeedsModelItem::FeedsModelItem() { -} - -FeedsModelItem::~FeedsModelItem() { - qDebug("Destroying BaseFeedsModelItem instance."); -} diff --git a/src/core/feedsmodelitem.h b/src/core/feedsmodelitem.h deleted file mode 100644 index 41c68d8b8..000000000 --- a/src/core/feedsmodelitem.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef BASEFEEDSMODELITEM_H -#define BASEFEEDSMODELITEM_H - -#include - - -// Base class for all items contained in FeedsModel. -class FeedsModelItem { - public: - // Constructors and destructors. - explicit FeedsModelItem(); - virtual ~FeedsModelItem(); - - // Returns parent item of this item. - virtual FeedsModelItem *parent() = 0; - virtual FeedsModelItem *child(int row) = 0; - virtual int childCount() const = 0; - virtual int columnCount() const = 0; - virtual int row() const = 0; - - // NOTE: Reimplement this in target particular feed/category classes. - virtual QVariant data(int column, int role) const = 0; - - protected: - QIcon m_icon; - -}; - -#endif // BASEFEEDSMODELITEM_H diff --git a/src/core/feedsmodelnonrootitem.cpp b/src/core/feedsmodelnonrootitem.cpp index 8a75c343c..523395464 100644 --- a/src/core/feedsmodelnonrootitem.cpp +++ b/src/core/feedsmodelnonrootitem.cpp @@ -1,7 +1,7 @@ #include "core/feedsmodelnonrootitem.h" -FeedsModelNonRootItem::FeedsModelNonRootItem(FeedsModelItem *parent_item) +FeedsModelNonRootItem::FeedsModelNonRootItem(FeedsModelRootItem *parent_item) : FeedsModelRootItem(), m_parentItem(parent_item) { } @@ -9,13 +9,13 @@ FeedsModelNonRootItem::~FeedsModelNonRootItem() { qDebug("Destroying FeedsModelNonRootItem instance."); } -FeedsModelItem *FeedsModelNonRootItem::parent() { +FeedsModelRootItem *FeedsModelNonRootItem::parent() { return m_parentItem; } int FeedsModelNonRootItem::row() const { if (m_parentItem) { - return static_cast(m_parentItem)->m_childItems.indexOf((FeedsModelItem*) this); + return static_cast(m_parentItem)->m_childItems.indexOf((FeedsModelRootItem*) this); } else { return 0; diff --git a/src/core/feedsmodelnonrootitem.h b/src/core/feedsmodelnonrootitem.h index 52e0f2299..f6dc2025c 100644 --- a/src/core/feedsmodelnonrootitem.h +++ b/src/core/feedsmodelnonrootitem.h @@ -10,14 +10,14 @@ class FeedsModelNonRootItem : public FeedsModelRootItem { public: // Constructors and destructors. - explicit FeedsModelNonRootItem(FeedsModelItem *parent_item); + explicit FeedsModelNonRootItem(FeedsModelRootItem *parent_item); virtual ~FeedsModelNonRootItem(); - FeedsModelItem *parent(); + FeedsModelRootItem *parent(); int row() const; protected: - FeedsModelItem *m_parentItem; + FeedsModelRootItem *m_parentItem; }; #endif // FEEDSMODELNONROOTITEM_H diff --git a/src/core/feedsmodelrootitem.cpp b/src/core/feedsmodelrootitem.cpp index 14f41ff50..b0b65d63a 100644 --- a/src/core/feedsmodelrootitem.cpp +++ b/src/core/feedsmodelrootitem.cpp @@ -3,8 +3,7 @@ #include "core/feedsmodelrootitem.h" -FeedsModelRootItem::FeedsModelRootItem() - : FeedsModelItem() { +FeedsModelRootItem::FeedsModelRootItem() { } FeedsModelRootItem::~FeedsModelRootItem() { @@ -12,11 +11,11 @@ FeedsModelRootItem::~FeedsModelRootItem() { qDeleteAll(m_childItems); } -FeedsModelItem *FeedsModelRootItem::parent() { +FeedsModelRootItem *FeedsModelRootItem::parent() { return NULL; } -FeedsModelItem *FeedsModelRootItem::child(int row) { +FeedsModelRootItem *FeedsModelRootItem::child(int row) { return m_childItems.at(0); } diff --git a/src/core/feedsmodelrootitem.h b/src/core/feedsmodelrootitem.h index 0f190affa..810d656d4 100644 --- a/src/core/feedsmodelrootitem.h +++ b/src/core/feedsmodelrootitem.h @@ -1,13 +1,13 @@ #ifndef FEEDMODELROOTITEM_H #define FEEDMODELROOTITEM_H -#include "core/feedsmodelitem.h" +#include // Represents ROOT item of FeedsModel. // NOTE: This class is derived to add functionality for -// all non-root items of FeedsModel. -class FeedsModelRootItem : public FeedsModelItem { +// all other non-root items of FeedsModel. +class FeedsModelRootItem { friend class FeedsModelNonRootItem; friend class FeedsModel; @@ -16,15 +16,16 @@ class FeedsModelRootItem : public FeedsModelItem { explicit FeedsModelRootItem(); virtual ~FeedsModelRootItem(); - FeedsModelItem *parent(); - FeedsModelItem *child(int row); - int childCount() const; - int columnCount() const; - int row() const; - QVariant data(int column, int role) const; + virtual FeedsModelRootItem *parent(); + virtual FeedsModelRootItem *child(int row); + virtual int childCount() const; + virtual int columnCount() const; + virtual int row() const; + virtual QVariant data(int column, int role) const; protected: - QList m_childItems; + QIcon m_icon; + QList m_childItems; }; diff --git a/src/core/feedsmodelstandardcategory.cpp b/src/core/feedsmodelstandardcategory.cpp new file mode 100644 index 000000000..88b82d040 --- /dev/null +++ b/src/core/feedsmodelstandardcategory.cpp @@ -0,0 +1,10 @@ +#include "core/feedsmodelstandardcategory.h" + + +FeedsModelStandardCategory::FeedsModelStandardCategory(FeedsModelRootItem *parent_item) + : FeedsModelCategory(parent_item) { +} + +FeedsModelStandardCategory::~FeedsModelStandardCategory() { + qDebug("Destroying FeedsModelStandardCategory instance."); +} diff --git a/src/core/feedsmodelstandardcategory.h b/src/core/feedsmodelstandardcategory.h new file mode 100644 index 000000000..6dfb83d6b --- /dev/null +++ b/src/core/feedsmodelstandardcategory.h @@ -0,0 +1,19 @@ +#ifndef FEEDSMODELSTANDARDCATEGORY_H +#define FEEDSMODELSTANDARDCATEGORY_H + +#include "core/feedsmodelcategory.h" + + +// Represents STANDARD category container. +// Standard category container can contain: +// a) other standard category containers, +// b) standard feeds, +// c) other containers and feeds (synchronized ones). +class FeedsModelStandardCategory : public FeedsModelCategory { + public: + // Constructors and destructors. + explicit FeedsModelStandardCategory(FeedsModelRootItem *parent_item); + virtual ~FeedsModelStandardCategory(); +}; + +#endif // FEEDSMODELSTANDARDCATEGORY_H diff --git a/src/core/feedsmodelstandardfeed.cpp b/src/core/feedsmodelstandardfeed.cpp new file mode 100644 index 000000000..d0e8180b2 --- /dev/null +++ b/src/core/feedsmodelstandardfeed.cpp @@ -0,0 +1,10 @@ +#include "feedsmodelstandardfeed.h" + + +FeedsModelStandardFeed::FeedsModelStandardFeed(FeedsModelRootItem *parent_item) + : FeedsModelFeed(parent_item) { +} + +FeedsModelStandardFeed::~FeedsModelStandardFeed() { + qDebug("Destroying FeedsModelStandardFeed instance."); +} diff --git a/src/core/feedsmodelstandardfeed.h b/src/core/feedsmodelstandardfeed.h new file mode 100644 index 000000000..75e265c7c --- /dev/null +++ b/src/core/feedsmodelstandardfeed.h @@ -0,0 +1,16 @@ +#ifndef FEEDSMODELSTANDARDFEED_H +#define FEEDSMODELSTANDARDFEED_H + +#include "core/feedsmodelfeed.h" + + +// Represents STANDARD RSS/RDF/ATOM feed with no +// online synchronization services (NO TT-RSS, NO FEEDLY). +class FeedsModelStandardFeed : public FeedsModelFeed { + public: + // Constructors and destructors. + explicit FeedsModelStandardFeed(FeedsModelRootItem *parent_item); + virtual ~FeedsModelStandardFeed(); +}; + +#endif // FEEDSMODELSTANDARDFEED_H