When adding tracks from folders view, only add playlists if these have been explicitly selected.

This commit is contained in:
Craig Drummond
2016-06-09 22:46:42 +01:00
committed by Craig Drummond
parent 613e8fe9a3
commit cfba8f3e18
5 changed files with 11 additions and 7 deletions

View File

@@ -8,6 +8,8 @@
details.
4. Add filename / path to list of dynamic rule properties.
5. Flat current track highlight.
6. When adding tracks from folders view, only add playlists if these have been
explicitly selected.
2.0.1
-----

View File

@@ -183,7 +183,7 @@ void FolderPage::addSelectionToPlaylist(const QString &name, int action, quint8
foreach (const QModelIndex &idx, selected) {
if (static_cast<BrowseModel::Item *>(idx.internalPointer())->isFolder()) {
files+=static_cast<BrowseModel::FolderItem *>(idx.internalPointer())->allEntries();
files+=static_cast<BrowseModel::FolderItem *>(idx.internalPointer())->allEntries(false);
} else {
files.append(static_cast<BrowseModel::TrackItem *>(idx.internalPointer())->getSong().file);
}

View File

@@ -40,7 +40,7 @@ void BrowseModel::FolderItem::add(Item *i)
children.append(i);
}
QStringList BrowseModel::FolderItem::allEntries() const
QStringList BrowseModel::FolderItem::allEntries(bool allowPlaylists) const
{
QStringList entries;
if (children.isEmpty()) {
@@ -48,8 +48,8 @@ QStringList BrowseModel::FolderItem::allEntries() const
} else {
foreach (Item *i, children) {
if (i->isFolder()) {
entries+=static_cast<FolderItem *>(i)->allEntries();
} else {
entries+=static_cast<FolderItem *>(i)->allEntries(allowPlaylists);
} else if (allowPlaylists || Song::Playlist!=static_cast<TrackItem *>(i)->getSong().type) {
entries+=static_cast<TrackItem *>(i)->getSong().file;
}
}
@@ -246,7 +246,7 @@ QMimeData * BrowseModel::mimeData(const QModelIndexList &indexes) const
Item *item=toItem(idx);
if (item) {
if (item->isFolder()) {
files+=static_cast<FolderItem *>(item)->allEntries();
files+=static_cast<FolderItem *>(item)->allEntries(false);
} else {
files.append(static_cast<TrackItem *>(item)->getSong().file);
}

View File

@@ -92,7 +92,7 @@ public:
const QString & getPath() const { return path; }
bool isFetching() const { return fetching; }
void setFetching(bool f) { fetching=f; }
QStringList allEntries() const;
QStringList allEntries(bool allowPlaylists) const;
private:
QString name;

View File

@@ -1991,7 +1991,9 @@ QStringList MPDConnection::getAllFiles(const QString &dir)
QList<Song> songs;
MPDParseUtils::parseDirItems(response.data, details.dir, ver, songs, dir, subDirs, MPDParseUtils::Loc_Browse);
foreach (const Song &song, songs) {
files.append(song.file);
if (Song::Playlist!=song.type) {
files.append(song.file);
}
}
foreach (const QString &sub, subDirs) {
files+=getAllFiles(sub);