When adding tracks from folders view, only add playlists if these have been explicitly selected.
This commit is contained in:
committed by
Craig Drummond
parent
613e8fe9a3
commit
cfba8f3e18
@@ -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
|
||||
-----
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user