本文整理汇总了C++中Playlist::mediaPlaylist方法的典型用法代码示例。如果您正苦于以下问题:C++ Playlist::mediaPlaylist方法的具体用法?C++ Playlist::mediaPlaylist怎么用?C++ Playlist::mediaPlaylist使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Playlist
的用法示例。
在下文中一共展示了Playlist::mediaPlaylist方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addPlaylist
/** Add a new playlist tab. */
Playlist* TabPlaylist::addPlaylist()
{
QString newPlaylistName = tr("Playlist %1").arg(count() + 1);
QByteArray ba;
if (playlists().isEmpty()) {
ba = SettingsPrivate::instance()->lastActivePlaylistGeometry();
} else {
ba = currentPlayList()->horizontalHeader()->saveState();
}
// Then append a new empty playlist to the others
Playlist *p = new Playlist(_mediaPlayer, this);
p->installEventFilter(this);
if (!ba.isEmpty()) {
p->horizontalHeader()->restoreState(ba);
}
// Always create an icon in Disabled mode. It will be enabled when one will provide some tracks
int i = addTab(p, newPlaylistName);
this->setTabIcon(i, this->defaultIcon(QIcon::Disabled));
connect(p->mediaPlaylist(), &QMediaPlaylist::mediaRemoved, this, [=](int start, int) {
if (_mediaPlayer.data()->playlist() == p->mediaPlaylist() && p->mediaPlaylist()->currentIndex() == start) {
_mediaPlayer.data()->stop();
}
});
// Forward from inner class to MainWindow the signals
connect(p, &Playlist::aboutToSendToTagEditor, this, &TabPlaylist::aboutToSendToTagEditor);
connect(p, &Playlist::selectionChanged, this, &TabPlaylist::selectionChanged);
// Check if tab icon should indicate that playlist has changed or not
connect(p, &Playlist::contentHasChanged, this, [=]() {
int playlistTabIndex = -1;
for (int i = 0; i < playlists().count(); i++) {
if (p == playlist(i)) {
playlistTabIndex = i;
break;
}
}
if (playlistTabIndex != -1) {
if (p->hash() != p->generateNewHash()) {
this->setTabIcon(playlistTabIndex, this->defaultIcon(QIcon::Normal));
}
}
});
// Select the new empty playlist
setCurrentIndex(i);
uint hash = qHash(p);
this->tabBar()->setTabData(i, hash);
emit playlistCreated();
return p;
}
示例2: populatePreviewFromUnsaved
void PlaylistDialog::populatePreviewFromUnsaved(const QItemSelection &, const QItemSelection &)
{
static const int MAX_TRACKS_PREVIEW_AREA = 30;
bool b = unsavedPlaylists->selectionModel()->selectedIndexes().size() == 1;
this->clearPreview(b);
if (b) {
QStandardItem *item = _unsavedPlaylistModel->itemFromIndex(unsavedPlaylists->selectionModel()->selectedIndexes().first());
Playlist *p = _unsaved.value(item);
int max = qMin(p->mediaPlaylist()->mediaCount(), MAX_TRACKS_PREVIEW_AREA);
for (int idxTrack = 0; idxTrack < max; idxTrack++) {
QString title = p->model()->index(idxTrack, Playlist::COL_TITLE).data().toString();
QString artist = p->model()->index(idxTrack, Playlist::COL_ARTIST).data().toString();
QString album = p->model()->index(idxTrack, Playlist::COL_ALBUM).data().toString();
QTreeWidgetItem *item = new QTreeWidgetItem;
item->setText(0, QString("%1 (%2 - %3)").arg(title, artist, album));
previewPlaylist->addTopLevelItem(item);
}
if (p->mediaPlaylist()->mediaCount() > MAX_TRACKS_PREVIEW_AREA) {
QTreeWidgetItem *item = new QTreeWidgetItem;
item->setText(0, tr("And more tracks..."));
previewPlaylist->addTopLevelItem(item);
}
}
}
示例3: open
/** Redefined: clean preview area, populate once again lists. */
void PlaylistDialog::open()
{
SettingsPrivate *settings = SettingsPrivate::instance();
if (settings->value("PlaylistDialogGeometry").isValid()) {
this->restoreGeometry(settings->value("PlaylistDialogGeometry").toByteArray());
}
this->clearPreview(false);
for (int i = 0; i < _playlists.count(); i++) {
Playlist *p = _playlists.at(i);
if (p && p->id() == 0 && !p->mediaPlaylist()->isEmpty()) {
QStandardItem *item = new QStandardItem(p->title());
_unsavedPlaylistModel->appendRow(item);
_unsaved.insert(item, p);
}
}
this->updatePlaylists();
QDialog::open();
this->activateWindow();
}