示例#1
0
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()));
}
示例#2
0
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()));
}
示例#4
0
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));
        }
    }
}