MenuBar::MenuBar() { init(); connect(newPlaylist, SIGNAL(triggered()), this, SLOT(createNewPlaylist())); connect(openFile, SIGNAL(triggered()), this, SLOT(open())); connect(delPlaylist, SIGNAL(triggered()), this, SLOT(deletePlaylist())); connect(close, SIGNAL(triggered()), this, SLOT(quit())); connect(optionsAction, SIGNAL(triggered()), this, SLOT(showOptions())); connect(playlistEditAction, SIGNAL(triggered()), this, SLOT(showPlaylistEditor())); connect(about, SIGNAL(triggered()), this, SLOT(aboutDialog())); }
void PlayerTest::enqueueDeletedPlaylist() { auto p1 = newPlaylist(generateTracks(3)); auto p2 = newPlaylist(generateTracks(3, 3)); player_->play(); verify("0"); enqueue(p2, 1); deletePlaylist(1); player_->next(); verify("1"); // Delete playlist after buffering p2 = newPlaylist(generateTracks(3, 3)); enqueue(p2, 1); audio_->triggerAboutToFinish(); deletePlaylist(1); audio_->triggerCurrentSourceChanged(); verify("4"); player_->next(); verify("2"); // Delete playlist before buffering player_->prev(); verify("1"); p2 = newPlaylist(generateTracks(3, 3)); enqueue(p2, 1); deletePlaylist(1); audio_->triggerAboutToFinish(); audio_->triggerCurrentSourceChanged(); verify("2"); // Delete same playlist before buffering player_->prev(); verify("1"); enqueue(p1, 0); deletePlaylist(0); audio_->triggerAboutToFinish(); audio_->triggerCurrentSourceChanged(); verify(""); }
SinglePlaylistView::SinglePlaylistView(QWidget *parent, MafwRegistryAdapter *mafwRegistry) : BrowserWindow(parent, mafwRegistry), mafwRegistry(mafwRegistry), mafwRenderer(mafwRegistry->renderer()), mafwTrackerSource(mafwRegistry->source(MafwRegistryAdapter::Tracker)), playlist(mafwRegistry->playlist()) { browsePlaylistId = MAFW_SOURCE_INVALID_BROWSE_ID; setAttribute(Qt::WA_Maemo5ShowProgressIndicator, true); permanentDelete = QSettings().value("main/permanentDelete").toBool(); ui->objectList->setItemDelegate(new SongListItemDelegate(ui->objectList)); ui->objectList->setItemDelegateForRow(0, new ShuffleButtonDelegate(ui->objectList)); objectProxyModel->setFilterRole(UserRoleFilterString); ui->objectList->setDragDropMode(QAbstractItemView::InternalMove); ui->objectList->viewport()->setAcceptDrops(true); ui->objectList->setAutoScrollMargin(70); QApplication::setStartDragDistance(20); ui->objectList->setDragEnabled(false); playlistModified = false; pendingActivation = Nothing; clickedIndex = QModelIndex(); clickTimer = new QTimer(this); clickTimer->setInterval(QApplication::doubleClickInterval()); clickTimer->setSingleShot(true); ui->windowMenu->addAction(tr("Add to now playing"), this, SLOT(addAllToNowPlaying())); ui->windowMenu->addAction(tr("Add to a playlist" ), this, SLOT(addAllToPlaylist())); ui->windowMenu->addAction(tr("Delete playlist" ), this, SLOT(deletePlaylist())); connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Enter), this), SIGNAL(activated()), this, SLOT(onContextMenuRequested())); connect(ui->objectList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onContextMenuRequested(QPoint))); connect(ui->searchEdit, SIGNAL(textChanged(QString)), this, SLOT(updateSongCount())); connect(clickTimer, SIGNAL(timeout()), this, SLOT(forgetClick())); }
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)); } } }