From 91916f6199cf9e978deaaaf8f36490a74ffe8678 Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Sun, 11 Dec 2011 10:21:24 +0100 Subject: When in offline mode, show offline playlists first. --- libQtSpotify/qspotifyuser.cpp | 13 ++++++++++--- 1 file 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 QSpotifyUser::playlistsAsQObject() const { QList pls = playlists(); QList list; + QList 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 QSpotifyUser::playlists() const -- cgit v1.2.3