[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/amarok/src
From: Nikolaj Hald Nielsen <nhnFreespirit () gmail ! com>
Date: 2007-03-04 13:58:09
Message-ID: 1173016689.519023.14149.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 639142 by nhnielsen:
Refactor generic stuff from MagnatuneContentItem into ServiceModelItemBase to make \
handeling of adding items to the playlist generic
M +1 -0 CMakeLists.txt
M +14 -10 servicebrowser/magnatunestore/magnatunecontentitem.cpp
M +8 -6 servicebrowser/magnatunestore/magnatunecontentitem.h
M +1 -1 servicebrowser/magnatunestore/magnatunecontentmodel.cpp
M +26 -0 servicebrowser/servicebase.cpp
M +6 -0 servicebrowser/servicebase.h
A servicebrowser/servicemodelitembase.cpp [License: no copyright]
A servicebrowser/servicemodelitembase.h [License: no copyright]
--- trunk/extragear/multimedia/amarok/src/CMakeLists.txt #639141:639142
@@ -137,6 +137,7 @@
set(libservicebrowser_SRCS
${CMAKE_SOURCE_DIR}/amarok/src/servicebrowser/servicebrowser.cpp
${CMAKE_SOURCE_DIR}/amarok/src/servicebrowser/servicebase.cpp
+ ${CMAKE_SOURCE_DIR}/amarok/src/servicebrowser/servicemodelitembase.cpp
${CMAKE_SOURCE_DIR}/amarok/src/servicebrowser/servicemodelbase.cpp)
set(libmagnatunestore_SRCS
--- trunk/extragear/multimedia/amarok/src/servicebrowser/magnatunestore/magnatunecontentitem.cpp \
#639141:639142 @@ -76,7 +76,7 @@
if ( !m_hasPopulatedChildItems )
populateChildItems();
- return m_childItems.value(row);
+ return dynamic_cast<MagnatuneContentItem*>( m_childItems.value( row ) );
}
@@ -84,7 +84,7 @@
{
if ( !m_hasPopulatedChildItems )
populateChildItems();
- return m_childItems.count();
+ ServiceModelItemBase::childCount();
}
int MagnatuneContentItem::columnCount() const
@@ -107,22 +107,17 @@
}
-MagnatuneContentItem *MagnatuneContentItem::parent()
- {
- return m_parent;
- }
-
int MagnatuneContentItem::row() const
{
if (m_parent){
if ( !m_hasPopulatedChildItems )
populateChildItems();
- return m_parent->GetChildItems().indexOf(const_cast<MagnatuneContentItem*>(this));
+ return m_parent->getChildItems().indexOf(const_cast<MagnatuneContentItem*>(this));
}
return 0;
}
-QList<MagnatuneContentItem*> MagnatuneContentItem::GetChildItems() const {
+QList<ServiceModelItemBase*> MagnatuneContentItem::GetChildItems() const {
if ( !m_hasPopulatedChildItems )
populateChildItems();
@@ -167,4 +162,13 @@
contentTypeUnion MagnatuneContentItem::getContentUnion ( ) { return m_content; }
-int MagnatuneContentItem::getType() { return m_type; }
\ No newline at end of file
+int MagnatuneContentItem::getType() { return m_type; }
+
+QString MagnatuneContentItem::getUrl() {
+
+ if ( m_type == MAGNATUNE_TRACK ) {
+ return m_content.trackValue->getHifiURL();
+ } else {
+ return QString();
+ }
+}
\ No newline at end of file
--- trunk/extragear/multimedia/amarok/src/servicebrowser/magnatunestore/magnatunecontentitem.h \
#639141:639142 @@ -21,6 +21,7 @@
#ifndef AMAROKMAGNATUENTREEITEM_H
#define AMAROKMAGNATUENTREEITEM_H
+#include "../servicemodelitembase.h"
#include "magnatunetypes.h"
#include <QList>
@@ -35,7 +36,7 @@
MagnatuneTrack * trackValue;
};
-class MagnatuneContentItem
+class MagnatuneContentItem : public ServiceModelItemBase
{
public:
MagnatuneContentItem( MagnatuneArtist content, QString genre, \
MagnatuneContentItem *parent ); @@ -52,15 +53,16 @@
int columnCount() const;
QVariant data(int column) const;
int row() const;
- MagnatuneContentItem * parent();
+ /*MagnatuneContentItem * parent();*/
int getType();
- QList<MagnatuneContentItem*> GetChildItems() const;
- bool hasChildren () const ;
+ QList<ServiceModelItemBase*> GetChildItems() const;
+ bool hasChildren () const;
contentTypeUnion getContentUnion ( );
+ QString getUrl();
private:
- mutable QList<MagnatuneContentItem*> m_childItems;
+ /*mutable QList<MagnatuneContentItem*> m_childItems;*/
contentTypeUnion m_content;
QString m_genre;
@@ -68,7 +70,7 @@
int m_type;
mutable bool m_hasPopulatedChildItems;
- MagnatuneContentItem *m_parent;
+ /*MagnatuneContentItem *m_parent;*/
void populateChildItems() const;
};
--- trunk/extragear/multimedia/amarok/src/servicebrowser/magnatunestore/magnatunecontentmodel.cpp \
#639141:639142 @@ -122,7 +122,7 @@
}
MagnatuneContentItem *childItem = \
static_cast<MagnatuneContentItem*>(index.internalPointer());
- MagnatuneContentItem *parentItem = childItem->parent();
+ MagnatuneContentItem *parentItem = \
static_cast<MagnatuneContentItem*>(childItem->parent() );
if (parentItem == m_rootContentItem)
//debug() << "MagnatuneContentModel::parent, root item... " << endl;
--- trunk/extragear/multimedia/amarok/src/servicebrowser/servicebase.cpp \
#639141:639142 @@ -21,6 +21,7 @@
#include "amarok.h"
#include "debug.h"
+#include "playlist.h"
#include <khbox.h>
@@ -150,8 +151,33 @@
emit( home() );
}
+void ServiceBase::itemActivated ( const QModelIndex & index ) {
+ if (!index.isValid())
+ return;
+ else {
+ ServiceModelItemBase * item = \
static_cast<ServiceModelItemBase*>(index.internalPointer()); + addToPlaylist( \
item ); + }
+ }
+void ServiceBase::addToPlaylist( ServiceModelItemBase * item ) {
+
+ if (! item->hasChildren() ) {
+ QString url = item->getUrl();
+ if ( !url.isEmpty() ) {
+ Playlist * playlist = Playlist::instance();
+ playlist->insertMedia( KUrl( url ) );
+ }
+ } else {
+ QList<ServiceModelItemBase*> childItems = item->getChildItems();
+ for (int i = 0; i < childItems.size(); ++i) {
+ addToPlaylist( childItems.at(i) );
+ }
+ }
+}
+
+
#include "servicebase.moc"
--- trunk/extragear/multimedia/amarok/src/servicebrowser/servicebase.h #639141:639142
@@ -22,6 +22,7 @@
#include "amarok.h"
+#include "servicemodelitembase.h"
#include <khtml_part.h>
//#include <klistwidget.h>
@@ -79,6 +80,9 @@
void homeButtonClicked();
+ void itemActivated ( const QModelIndex & index );
+
+
protected:
@@ -101,6 +105,8 @@
QString m_longDescription;
QIcon m_icon;
+ void addToPlaylist( ServiceModelItemBase * item );
+
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic