void menuPlaylist(struct playLists arrPlaylist[20], int someAlbum){ int red = FOREGROUND_RED | FOREGROUND_INTENSITY; int aqua = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY; char forChoice[5][20] = {"Look", "Rename", "Delete", "Cancel", "Create a new album"}; int lll = 0, pointCommand = 0; format(65, 0, aqua); printf("What to do?"); outCommand(0, 5, forChoice, 61); while(lll == 0){ switch(getch()){ case 72: pointCommand--; break; case 80: pointCommand++; break; case 13: lll = 1; break; case 27: return 1; } outCommand(pointCommand, 5, forChoice, 61); } switch(pointCommand%5){ case 0: choiceSong(arrPlaylist, someAlbum); break; case 1: renamePlaylist(arrPlaylist, someAlbum); break; case 2: delAlbum(arrPlaylist, someAlbum); break; case 3: choicePlaylists(arrPlaylist); break; case 4: addPlaylist(arrPlaylist); break; } }
void MainWindow::readSettings() { QSettings settings; readDockSettings(lyricsDock_, "lyrics"); readDockSettings(console_, "console"); restoreGeometry(settings.value("mainwindow/geometry").toByteArray()); restoreState(settings.value("mainwindow/state").toByteArray()); cursorFollowsPlayback_ = settings.value("mainwindow/cursorFollowsPlayback", cursorFollowsPlayback_).toBool(); cursorFollowsPlaybackAction->setChecked(cursorFollowsPlayback_); saveTabs_ = settings.value("mainwindow/saveTabs", saveTabs_).toBool(); if (!saveTabs_) on_newLibraryViewAction_triggered(); else { QList<QVariant> names = settings.value("mainwindow/tabsNames").toList(); QList<QVariant> data = settings.value("mainwindow/tabsData").toList(); if (names.size() != data.size()) qDebug() << "Tabs names and data have different sizes!"; else { for (int i = 0; i < data.size(); ++i) { QString tabName = names.at(i).toString(); if (!data.at(i).isValid()) { addPlaylist(player_.createPlaylist(true), tabName, false); } else { QByteArray tabData = data.at(i).toByteArray(); auto tab = addPlaylist(player_.createPlaylist(false), tabName, false); tab->deserialize(tabData); } } int lastTab = settings.value("mainwindow/lastPlayingTab", 0).toInt(); if (lastTab != -1) playlistTabs->setCurrentIndex(lastTab); } } int lastPlayingPosition = settings.value("mainwindow/lastPlayingPosition", -1).toInt(); if (lastPlayingPosition != -1 && getActivePlaylist()) { QModelIndex index = getActivePlaylist()->getUnfilteredPosition(lastPlayingPosition); player_.setLastPlayed(getActivePlaylistModel(), index); getActivePlaylist()->updateCursorAndScroll(index); } }
bool QSpotifyPlaylistContainer::event(QEvent *e) { if (e->type() == QEvent::User) { metadataUpdated(); e->accept(); return true; } else if (e->type() == QEvent::User + 1) { // PlaylistAdded event QSpotifyPlaylistAddedEvent *ev = static_cast<QSpotifyPlaylistAddedEvent *>(e); addPlaylist(ev->playlist(), ev->position()); emit dataChanged(); postUpdateEvent(); e->accept(); return true; } else if (e->type() == QEvent::User + 2) { // PlaylistRemoved event QSpotifyPlaylistRemovedEvent *ev = static_cast<QSpotifyPlaylistRemovedEvent *>(e); int i = ev->position(); if (i >= 0 && i < m_playlists.count()) { QSpotifyPlaylist *pl = m_playlists.takeAt(i); delete pl; emit dataChanged(); } postUpdateEvent(); e->accept(); return true; } else if (e->type() == QEvent::User + 3) { // PlaylistMoved event QSpotifyPlaylistMovedEvent *ev = static_cast<QSpotifyPlaylistMovedEvent *>(e); int i = ev->position(); int newpos = ev->newPosition(); if (i >= 0 && i < m_playlists.count()) { QSpotifyPlaylist *pl = m_playlists.takeAt(i); m_playlists.insert(newpos > i ? newpos - 1 : newpos, pl); emit dataChanged(); } postUpdateEvent(); e->accept(); return true; } else if (e->type() == QEvent::User + 4) { updatePlaylists(); m_updateEventPosted = false; e->accept(); return true; } return QSpotifyObject::event(e); }
bool QSpotifyPlaylistContainer::updateData() { bool updated = false; if (m_playlists.isEmpty()) { int count = sp_playlistcontainer_num_playlists(m_container); for (int i = 0; i < count; ++i) { addPlaylist(sp_playlistcontainer_playlist(m_container, i), i); if(sp_playlistcontainer_playlist_type(m_container, i) == SP_PLAYLIST_TYPE_PLACEHOLDER) sp_playlistcontainer_remove_playlist(m_container, i); } updated = true; updatePlaylists(); } return updated; }
void MainWindow::showPlaylistsContextMenu(QPoint point) { QTreeView *playlists = (QTreeView*)ui->tvPlaylists; if(playlists->indexAt(point).isValid()) { QStandardItemModel *model = (QStandardItemModel*)playlists->model(); QStandardItem *item = model->itemFromIndex(playlists->indexAt(point)); int data = item->data(DATA_KEY_PLAYLIST).toInt(); QList<QAction *> actions; QAction *action; switch(data) { case DATA_SEARCH: break; case DATA_EMPTY: action = new QAction(playlists); action->setText(tr("Add")); connect(action, SIGNAL(triggered()), this, SLOT(addPlaylist())); actions.append(action); break; case DATA_HISTORY: break; default: action = new QAction(playlists); action->setText(tr("Delete")); connect(action, SIGNAL(triggered()), this, SLOT(deletePlaylist())); actions.append(action); break; } if(actions.count() > 0) { point.setX(point.x()-10); point.setY(point.y()+30); QMenu::exec(actions, playlists->mapToGlobal(point)); } } }
Playlist::Playlist(const QByteArray& playlist) { addPlaylist(playlist); }
void MainWindow::on_newPlaylistAction_triggered() { addPlaylist(player_.createPlaylist(false)); }
void MainWindow::on_newLibraryViewAction_triggered() { addPlaylist(player_.createPlaylist(true), "All"); }