From f2308beb18d279ed107e2407c978d4cbd2f72385 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Wed, 6 Apr 2011 12:51:16 +0200 Subject: [PATCH] * Split up PlItem into Track- and TreeModelItem. --- src/libtomahawk/CMakeLists.txt | 2 ++ src/libtomahawk/playlist/collectionmodel.cpp | 30 +++++++++---------- src/libtomahawk/playlist/collectionmodel.h | 8 ++--- .../playlist/collectionproxymodel.cpp | 5 ---- src/libtomahawk/playlist/trackmodel.cpp | 15 ---------- src/libtomahawk/playlist/trackmodelitem.cpp | 25 +++++----------- src/libtomahawk/playlist/trackmodelitem.h | 3 -- 7 files changed, 28 insertions(+), 60 deletions(-) diff --git a/src/libtomahawk/CMakeLists.txt b/src/libtomahawk/CMakeLists.txt index cdc92f878..b5c91ac14 100644 --- a/src/libtomahawk/CMakeLists.txt +++ b/src/libtomahawk/CMakeLists.txt @@ -90,6 +90,7 @@ set( libSources playlist/trackproxymodel.cpp playlist/trackview.cpp playlist/trackheader.cpp + playlist/treemodelitem.cpp playlist/albumitem.cpp playlist/albummodel.cpp playlist/albumproxymodel.cpp @@ -245,6 +246,7 @@ set( libHeaders playlist/trackproxymodel.h playlist/trackview.h playlist/trackheader.h + playlist/treemodelitem.h playlist/albumitem.h playlist/albummodel.h playlist/albumproxymodel.h diff --git a/src/libtomahawk/playlist/collectionmodel.cpp b/src/libtomahawk/playlist/collectionmodel.cpp index ec8808764..ded4d0bde 100644 --- a/src/libtomahawk/playlist/collectionmodel.cpp +++ b/src/libtomahawk/playlist/collectionmodel.cpp @@ -49,8 +49,8 @@ CollectionModel::index( int row, int column, const QModelIndex& parent ) const if ( !m_rootItem || row < 0 || column < 0 ) return QModelIndex(); - TrackModelItem* parentItem = itemFromIndex( parent ); - TrackModelItem* childItem = parentItem->children.value( row ); + TreeModelItem* parentItem = itemFromIndex( parent ); + TreeModelItem* childItem = parentItem->children.value( row ); if ( !childItem ) return QModelIndex(); @@ -64,7 +64,7 @@ CollectionModel::rowCount( const QModelIndex& parent ) const if ( parent.column() > 0 ) return 0; - TrackModelItem* parentItem = itemFromIndex( parent ); + TreeModelItem* parentItem = itemFromIndex( parent ); if ( !parentItem ) return 0; @@ -83,15 +83,15 @@ CollectionModel::columnCount( const QModelIndex& parent ) const QModelIndex CollectionModel::parent( const QModelIndex& child ) const { - TrackModelItem* entry = itemFromIndex( child ); + TreeModelItem* entry = itemFromIndex( child ); if ( !entry ) return QModelIndex(); - TrackModelItem* parentEntry = entry->parent; + TreeModelItem* parentEntry = entry->parent; if ( !parentEntry ) return QModelIndex(); - TrackModelItem* grandparentEntry = parentEntry->parent; + TreeModelItem* grandparentEntry = parentEntry->parent; if ( !grandparentEntry ) return QModelIndex(); @@ -106,7 +106,7 @@ CollectionModel::data( const QModelIndex& index, int role ) const if ( role != Qt::DisplayRole ) return QVariant(); - TrackModelItem* entry = itemFromIndex( index ); + TreeModelItem* entry = itemFromIndex( index ); if ( !entry ) return QVariant(); @@ -199,7 +199,7 @@ CollectionModel::removeCollection( const collection_ptr& collection ) disconnect( collection.data(), SIGNAL( tracksFinished( Tomahawk::collection_ptr ) ), this, SLOT( onTracksAddingFinished( Tomahawk::collection_ptr ) ) ); - QList plitems = m_collectionIndex.values( collection ); + QList plitems = m_collectionIndex.values( collection ); m_collectionIndex.remove( collection ); } @@ -210,17 +210,17 @@ CollectionModel::onTracksAdded( const QList& tracks, const { // int c = rowCount( QModelIndex() ); - TrackModelItem* plitem; + TreeModelItem* plitem; foreach( const Tomahawk::query_ptr& query, tracks ) { - TrackModelItem* parent = m_rootItem; + TreeModelItem* parent = m_rootItem; if ( parent->hash.contains( query->artist() ) ) { parent = parent->hash.value( query->artist() ); } else { - parent = new TrackModelItem( query->artist(), m_rootItem ); + parent = new TreeModelItem( query->artist(), m_rootItem ); m_rootItem->hash.insert( query->artist(), parent ); } @@ -232,14 +232,14 @@ CollectionModel::onTracksAdded( const QList& tracks, const } else { - TrackModelItem* subitem = new TrackModelItem( query->album(), parent ); + TreeModelItem* subitem = new TreeModelItem( query->album(), parent ); parent->hash.insert( query->album(), subitem ); parent->childCount++; subitem->childCount++; parent = subitem; } - plitem = new TrackModelItem( query, parent ); + plitem = new TreeModelItem( query, parent ); m_collectionIndex.insertMulti( collection, plitem ); } @@ -275,11 +275,11 @@ CollectionModel::onSourceOffline( Tomahawk::source_ptr src ) } -TrackModelItem* +TreeModelItem* CollectionModel::itemFromIndex( const QModelIndex& index ) const { if ( index.isValid() ) - return static_cast( index.internalPointer() ); + return static_cast( index.internalPointer() ); else { return m_rootItem; diff --git a/src/libtomahawk/playlist/collectionmodel.h b/src/libtomahawk/playlist/collectionmodel.h index 2ba760743..32d0e611b 100644 --- a/src/libtomahawk/playlist/collectionmodel.h +++ b/src/libtomahawk/playlist/collectionmodel.h @@ -23,7 +23,7 @@ #include #include -#include "trackmodelitem.h" +#include "treemodelitem.h" #include "collection.h" #include "query.h" #include "typedefs.h" @@ -62,7 +62,7 @@ public: virtual void setRepeatMode( PlaylistInterface::RepeatMode /*mode*/ ) {} virtual void setShuffled( bool /*shuffled*/ ) {} - TrackModelItem* itemFromIndex( const QModelIndex& index ) const; + TreeModelItem* itemFromIndex( const QModelIndex& index ) const; signals: void repeatModeChanged( PlaylistInterface::RepeatMode mode ); @@ -79,8 +79,8 @@ private slots: void onSourceOffline( Tomahawk::source_ptr src ); private: - TrackModelItem* m_rootItem; - QMap< Tomahawk::collection_ptr, TrackModelItem* > m_collectionIndex; + TreeModelItem* m_rootItem; + QMap< Tomahawk::collection_ptr, TreeModelItem* > m_collectionIndex; }; #endif // COLLECTIONMODEL_H diff --git a/src/libtomahawk/playlist/collectionproxymodel.cpp b/src/libtomahawk/playlist/collectionproxymodel.cpp index f6c5dd7b5..668b3266f 100644 --- a/src/libtomahawk/playlist/collectionproxymodel.cpp +++ b/src/libtomahawk/playlist/collectionproxymodel.cpp @@ -46,11 +46,6 @@ CollectionProxyModel::lessThan( const QModelIndex& left, const QModelIndex& righ const Tomahawk::query_ptr& q1 = p1->query(); const Tomahawk::query_ptr& q2 = p2->query(); - if ( q1.isNull() || q2.isNull() ) - { - return QString::localeAwareCompare( p1->caption, p2->caption ) < 0; - } - QString artist1 = q1->artist(); QString artist2 = q2->artist(); QString album1 = q1->album(); diff --git a/src/libtomahawk/playlist/trackmodel.cpp b/src/libtomahawk/playlist/trackmodel.cpp index 0249aa1d1..51ae0590a 100644 --- a/src/libtomahawk/playlist/trackmodel.cpp +++ b/src/libtomahawk/playlist/trackmodel.cpp @@ -127,21 +127,6 @@ TrackModel::data( const QModelIndex& index, int role ) const return QVariant(); const query_ptr& query = entry->query(); - if ( query.isNull() ) - { - if ( !index.column() ) - { - return entry->caption.isEmpty() ? "Unknown" : entry->caption; - } - - if ( index.column() == 1 ) - { - return entry->childCount; - } - - return QVariant( "" ); - } - if ( !query->numResults() ) { switch( index.column() ) diff --git a/src/libtomahawk/playlist/trackmodelitem.cpp b/src/libtomahawk/playlist/trackmodelitem.cpp index e88659601..b421bb3f8 100644 --- a/src/libtomahawk/playlist/trackmodelitem.cpp +++ b/src/libtomahawk/playlist/trackmodelitem.cpp @@ -56,22 +56,6 @@ TrackModelItem::TrackModelItem( TrackModelItem* parent, QAbstractItemModel* mode } -TrackModelItem::TrackModelItem( const QString& caption, TrackModelItem* parent ) -{ - this->parent = parent; - this->caption = caption; - this->model = parent->model; - childCount = 0; - m_isPlaying = false; - toberemoved = false; - - if ( parent ) - { - parent->children.append( this ); - } -} - - TrackModelItem::TrackModelItem( const Tomahawk::query_ptr& query, TrackModelItem* parent, int row ) : QObject( parent ) { @@ -86,16 +70,21 @@ TrackModelItem::TrackModelItem( const Tomahawk::plentry_ptr& entry, TrackModelIt setupItem( entry->query(), parent, row ); } + const Tomahawk::plentry_ptr& TrackModelItem::entry() const { return m_entry; } + const Tomahawk::query_ptr& TrackModelItem::query() const { - if ( !m_entry.isNull() ) return m_entry->query(); else return m_query; + if ( !m_entry.isNull() ) + return m_entry->query(); + else + return m_query; } @@ -123,7 +112,7 @@ TrackModelItem::setupItem( const Tomahawk::query_ptr& query, TrackModelItem* par m_query = query; if ( query->numResults() ) { - emit dataChanged(); +// emit dataChanged(); } else { diff --git a/src/libtomahawk/playlist/trackmodelitem.h b/src/libtomahawk/playlist/trackmodelitem.h index 70b93923c..3d0118c6c 100644 --- a/src/libtomahawk/playlist/trackmodelitem.h +++ b/src/libtomahawk/playlist/trackmodelitem.h @@ -37,7 +37,6 @@ public: virtual ~TrackModelItem(); explicit TrackModelItem( TrackModelItem* parent = 0, QAbstractItemModel* model = 0 ); - explicit TrackModelItem( const QString& caption, TrackModelItem* parent = 0 ); explicit TrackModelItem( const Tomahawk::query_ptr& query, TrackModelItem* parent = 0, int row = -1 ); explicit TrackModelItem( const Tomahawk::plentry_ptr& entry, TrackModelItem* parent = 0, int row = -1 ); @@ -49,8 +48,6 @@ public: TrackModelItem* parent; QVector children; - QHash hash; - QString caption; int childCount; QPersistentModelIndex index; QAbstractItemModel* model;