summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@nokia.com>2011-12-11 10:21:24 +0100
committerYoann Lopes <yoann.lopes@nokia.com>2011-12-11 10:21:24 +0100
commit91916f6199cf9e978deaaaf8f36490a74ffe8678 (patch)
tree321a07633fc1ecfc11a494e33a41f18f8a7f780f
parentfe8df6ba387420ad51c6a0c837dd3c7c34dd4380 (diff)
When in offline mode, show offline playlists first.
-rw-r--r--libQtSpotify/qspotifyuser.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/libQtSpotify/qspotifyuser.cpp b/libQtSpotify/qspotifyuser.cpp
index 803350e..003cead 100644
--- a/libQtSpotify/qspotifyuser.cpp
+++ b/libQtSpotify/qspotifyuser.cpp
@@ -106,6 +106,7 @@ QSpotifyPlaylistContainer *QSpotifyUser::playlistContainer() const
m_playlistContainer = new QSpotifyPlaylistContainer(pc);
connect(m_playlistContainer, SIGNAL(playlistContainerDataChanged()), this, SIGNAL(playlistsChanged()));
connect(m_playlistContainer, SIGNAL(playlistsNameChanged()), this, SIGNAL(playlistsNameChanged()));
+ connect(QSpotifySession::instance(), SIGNAL(offlineModeChanged()), this, SIGNAL(playlistsChanged()));
}
return m_playlistContainer;
}
@@ -143,13 +144,19 @@ QList<QObject*> QSpotifyUser::playlistsAsQObject() const
{
QList<QSpotifyPlaylist*> pls = playlists();
QList<QObject*> list;
+ QList<QObject*> unavailableList;
list.append((QObject*)inbox());
list.append((QObject*)starredList());
for (int i = 0; i < pls.count(); ++i) {
- if (pls.at(i)->isLoaded() && sp_playlistcontainer_playlist_type(m_playlistContainer->m_container, i) == SP_PLAYLIST_TYPE_PLAYLIST)
- list.append((QObject*)(pls[i]));
+ QSpotifyPlaylist *playlist = pls.at(i);
+ if (playlist->isLoaded() && sp_playlistcontainer_playlist_type(m_playlistContainer->m_container, i) == SP_PLAYLIST_TYPE_PLAYLIST) {
+ if (!QSpotifySession::instance()->offlineMode() || playlist->availableOffline())
+ list.append((QObject*)(playlist));
+ else
+ unavailableList.append((QObject*)(playlist));
+ }
}
- return list;
+ return list + unavailableList;
}
QList<QSpotifyPlaylist *> QSpotifyUser::playlists() const