From 38daa23be2f9e8b996b4c9941bd086fe549e86ea Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sun, 26 Aug 2012 20:15:55 +0300 Subject: [PATCH] TorrentContentModel code clean up --- src/torrentcontentmodel.cpp | 9 +++++---- src/torrentcontentmodel.h | 4 +++- src/torrentcontentmodelfile.cpp | 7 +++++++ src/torrentcontentmodelfile.h | 1 + src/torrentcontentmodelfolder.cpp | 5 ++++- src/torrentcontentmodelitem.cpp | 9 --------- src/torrentcontentmodelitem.h | 1 - 7 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/torrentcontentmodel.cpp b/src/torrentcontentmodel.cpp index cd83de797..820dcd3f0 100644 --- a/src/torrentcontentmodel.cpp +++ b/src/torrentcontentmodel.cpp @@ -80,7 +80,7 @@ std::vector TorrentContentModel::getFilesPriorities() const { std::vector prio; prio.reserve(m_filesIndex.size()); - foreach (const TorrentContentModelItem* file, m_filesIndex) { + foreach (const TorrentContentModelFile* file, m_filesIndex) { prio.push_back(file->priority()); } return prio; @@ -88,7 +88,7 @@ std::vector TorrentContentModel::getFilesPriorities() const bool TorrentContentModel::allFiltered() const { - foreach (const TorrentContentModelItem* fileItem, m_filesIndex) { + foreach (const TorrentContentModelFile* fileItem, m_filesIndex) { if (fileItem->priority() != prio::IGNORED) return false; } @@ -125,7 +125,8 @@ bool TorrentContentModel::setData(const QModelIndex& index, const QVariant& valu } if (role == Qt::EditRole) { - TorrentContentModelItem *item = static_cast(index.internalPointer()); + Q_ASSERT(index.isValid()); + TorrentContentModelItem* item = static_cast(index.internalPointer()); switch(index.column()) { case TorrentContentModelItem::COL_NAME: item->setName(value.toString()); @@ -155,7 +156,7 @@ int TorrentContentModel::getFileIndex(const QModelIndex& index) return item->fileIndex(); } -QVariant TorrentContentModel::data(const QModelIndex &index, int role) const +QVariant TorrentContentModel::data(const QModelIndex& index, int role) const { if (!index.isValid()) return QVariant(); diff --git a/src/torrentcontentmodel.h b/src/torrentcontentmodel.h index ff9199679..63b270ef9 100644 --- a/src/torrentcontentmodel.h +++ b/src/torrentcontentmodel.h @@ -38,6 +38,8 @@ #include #include "torrentcontentmodelitem.h" +class TorrentContentModelFile; + class TorrentContentModel: public QAbstractItemModel { Q_OBJECT @@ -71,7 +73,7 @@ public slots: private: TorrentContentModelFolder* m_rootItem; - QVector m_filesIndex; + QVector m_filesIndex; }; #endif // TORRENTCONTENTMODEL_H diff --git a/src/torrentcontentmodelfile.cpp b/src/torrentcontentmodelfile.cpp index 29b2320be..23216f4bb 100644 --- a/src/torrentcontentmodelfile.cpp +++ b/src/torrentcontentmodelfile.cpp @@ -80,3 +80,10 @@ void TorrentContentModelFile::setPriority(int new_prio, bool update_parent) m_parentItem->updatePriority(); } } + +void TorrentContentModelFile::setProgress(qulonglong done) +{ + m_totalDone = done; + Q_ASSERT(m_totalDone <= m_size); + m_parentItem->updateProgress(); +} diff --git a/src/torrentcontentmodelfile.h b/src/torrentcontentmodelfile.h index 5ad77b55c..95329a4b4 100644 --- a/src/torrentcontentmodelfile.h +++ b/src/torrentcontentmodelfile.h @@ -43,6 +43,7 @@ public: int fileIndex() const; void setPriority(int new_prio, bool update_parent = true); + void setProgress(qulonglong done); ItemType itemType() const { return FileType; } private: diff --git a/src/torrentcontentmodelfolder.cpp b/src/torrentcontentmodelfolder.cpp index 0e292fc36..6ba6bb0f9 100644 --- a/src/torrentcontentmodelfolder.cpp +++ b/src/torrentcontentmodelfolder.cpp @@ -157,7 +157,10 @@ void TorrentContentModelFolder::updateProgress() } Q_ASSERT(total_done <= m_size); - setProgress(total_done); + if (total_done != m_totalDone) { + m_totalDone = total_done; + m_parentItem->updateProgress(); + } } void TorrentContentModelFolder::updateSize() diff --git a/src/torrentcontentmodelitem.cpp b/src/torrentcontentmodelitem.cpp index e9fdbc71f..742aeb867 100644 --- a/src/torrentcontentmodelitem.cpp +++ b/src/torrentcontentmodelitem.cpp @@ -63,15 +63,6 @@ qulonglong TorrentContentModelItem::size() const return m_size; } -void TorrentContentModelItem::setProgress(qulonglong done) -{ - Q_ASSERT(!isRootItem()); - - m_totalDone = done; - Q_ASSERT(m_totalDone <= m_size); - m_parentItem->updateProgress(); -} - qulonglong TorrentContentModelItem::totalDone() const { Q_ASSERT(!isRootItem()); diff --git a/src/torrentcontentmodelitem.h b/src/torrentcontentmodelitem.h index 72f285940..2e74c0670 100644 --- a/src/torrentcontentmodelitem.h +++ b/src/torrentcontentmodelitem.h @@ -59,7 +59,6 @@ public: qulonglong size() const; qulonglong totalDone() const; - void setProgress(qulonglong done); float progress() const; int priority() const;