+ if (_state == STATE_PLAYLIST_TRACK) {
+ _lib->saveCurrentPlaylist(_current_playlist);
+ emit refreshPlayer();
+ _current_playlist = _lib->getCurrentPlaylist();
+ return;
+ }
+
+ if (_state == STATE_NONE) return;
+ QModelIndexList selected = ui->listView->selectionModel()->selectedIndexes();
+ ui->listView->selectionModel()->clearSelection();
+ Playlist cur;
+ QRegExp regexp("\\[\\d+\\]\\ (.*)");
+ switch (_state) {
+ case STATE_ARTIST:
+ foreach (QModelIndex id, selected) {
+ _add_artist(&cur, id.data().toString());
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ case STATE_ALBUM:
+ foreach (QModelIndex id, selected) {
+ if (regexp.indexIn(id.data().toString()) != -1) {
+ _add_album(&cur, _current_artist, regexp.cap(1).trimmed());
+ }
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ case STATE_TRACK:
+ foreach (QModelIndex id, selected) {
+ _add_track(&cur, _current_tracks.at(id.row()));
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ case STATE_PLAYLIST:
+ foreach (QModelIndex id, selected) {
+ _add_playlist(&cur, id.data().toString());
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ case STATE_DYNAMIC:
+
+ break;
+ case STATE_SEARCH:
+ foreach (QModelIndex id, selected) {
+ _add_track(&cur, _current_tracks.at(id.row()));
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ default:
+ return;
+ }