PlaylistManager::PlaylistManager (QObject *parent) : QObject (parent) , Model_ (new PlaylistModel (this)) , StaticRoot_ (new QStandardItem (tr ("Static playlists"))) , Static_ (new StaticPlaylistManager (this)) { StaticRoot_->setEditable (false); Model_->appendRow (StaticRoot_); connect (Static_, SIGNAL (customPlaylistsChanged ()), this, SLOT (handleStaticPlaylistsChanged ())); QTimer::singleShot (100, this, SLOT (handleStaticPlaylistsChanged ())); auto dynamicRoot = new QStandardItem (tr ("Dynamic playlists")); dynamicRoot->setEditable (false); Model_->appendRow (dynamicRoot); const auto types = { PlaylistTypes::Random50, PlaylistTypes::LovedTracks, PlaylistTypes::BannedTracks }; const auto names = { tr ("50 random tracks"), tr ("Loved tracks"), tr ("Banned tracks") }; for (const auto& pair : Util::Views::Zip (types, names)) { auto item = new QStandardItem { pair.second }; item->setData (pair.first, Roles::PlaylistType); item->setEditable (false); dynamicRoot->appendRow (item); } }
void StaticPlaylistManager::DeleteCustomPlaylist (const QString& name) { if (PlaylistsDir_.remove (GetFileName (name))) emit customPlaylistsChanged (); }
void StaticPlaylistManager::SaveCustomPlaylist (QString name, const QList<Phonon::MediaSource>& sources) { WritePlaylist (PlaylistsDir_.filePath (GetFileName (name)), sources); emit customPlaylistsChanged (); }