Add an option to group the library by albumartist. Fixes issue #198
This commit is contained in:
parent
d0ddeb2956
commit
c576ca92e8
@ -27,10 +27,11 @@ GroupByDialog::GroupByDialog(QWidget *parent)
|
||||
mapping_.insert(Mapping(Library::GroupBy_None, 0));
|
||||
mapping_.insert(Mapping(Library::GroupBy_Album, 1));
|
||||
mapping_.insert(Mapping(Library::GroupBy_Artist, 2));
|
||||
mapping_.insert(Mapping(Library::GroupBy_Composer, 3));
|
||||
mapping_.insert(Mapping(Library::GroupBy_Genre, 4));
|
||||
mapping_.insert(Mapping(Library::GroupBy_Year, 5));
|
||||
mapping_.insert(Mapping(Library::GroupBy_YearAlbum, 6));
|
||||
mapping_.insert(Mapping(Library::GroupBy_AlbumArtist, 3));
|
||||
mapping_.insert(Mapping(Library::GroupBy_Composer, 4));
|
||||
mapping_.insert(Mapping(Library::GroupBy_Genre, 5));
|
||||
mapping_.insert(Mapping(Library::GroupBy_Year, 6));
|
||||
mapping_.insert(Mapping(Library::GroupBy_YearAlbum, 7));
|
||||
|
||||
connect(ui_.button_box->button(QDialogButtonBox::Reset), SIGNAL(clicked()),
|
||||
SLOT(Reset()));
|
||||
|
@ -54,6 +54,11 @@
|
||||
<string>Artist</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Albumartist</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Composer</string>
|
||||
@ -100,6 +105,11 @@
|
||||
<string>Artist</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Albumartist</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Composer</string>
|
||||
@ -146,6 +156,11 @@
|
||||
<string>Artist</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Albumartist</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Composer</string>
|
||||
|
@ -165,10 +165,11 @@ void Library::SongsDiscovered(const SongList& songs) {
|
||||
// item's key
|
||||
QString key;
|
||||
switch (type) {
|
||||
case GroupBy_Album: key = song.album(); break;
|
||||
case GroupBy_Artist: key = song.artist(); break;
|
||||
case GroupBy_Composer: key = song.composer(); break;
|
||||
case GroupBy_Genre: key = song.genre(); break;
|
||||
case GroupBy_Album: key = song.album(); break;
|
||||
case GroupBy_Artist: key = song.artist(); break;
|
||||
case GroupBy_Composer: key = song.composer(); break;
|
||||
case GroupBy_Genre: key = song.genre(); break;
|
||||
case GroupBy_AlbumArtist: key = song.albumartist(); break;
|
||||
case GroupBy_Year:
|
||||
key = QString::number(qMax(0, song.year())); break;
|
||||
case GroupBy_YearAlbum:
|
||||
@ -229,6 +230,7 @@ QString Library::DividerKey(GroupBy type, LibraryItem* item) const {
|
||||
case GroupBy_Artist:
|
||||
case GroupBy_Composer:
|
||||
case GroupBy_Genre:
|
||||
case GroupBy_AlbumArtist:
|
||||
if (item->sort_text[0].isDigit())
|
||||
return "0";
|
||||
if (item->sort_text[0] == ' ')
|
||||
@ -256,6 +258,7 @@ QString Library::DividerDisplayText(GroupBy type, const QString& key) const {
|
||||
case GroupBy_Artist:
|
||||
case GroupBy_Composer:
|
||||
case GroupBy_Genre:
|
||||
case GroupBy_AlbumArtist:
|
||||
if (key == "0")
|
||||
return "0-9";
|
||||
return key.toUpper();
|
||||
@ -498,6 +501,9 @@ void Library::InitQuery(GroupBy type, LibraryQuery* q) {
|
||||
case GroupBy_Genre:
|
||||
q->SetColumnSpec("DISTINCT genre");
|
||||
break;
|
||||
case GroupBy_AlbumArtist:
|
||||
q->SetColumnSpec("DISTINCT albumartist");
|
||||
break;
|
||||
case GroupBy_None:
|
||||
q->SetColumnSpec("ROWID, " + QString(Song::kColumnSpec));
|
||||
break;
|
||||
@ -534,6 +540,9 @@ void Library::FilterQuery(GroupBy type, LibraryItem* item, LibraryQuery* q) {
|
||||
case GroupBy_Genre:
|
||||
q->AddWhere("genre", item->key);
|
||||
break;
|
||||
case GroupBy_AlbumArtist:
|
||||
q->AddWhere("albumartist", item->key);
|
||||
break;
|
||||
case GroupBy_None:
|
||||
Q_ASSERT(0);
|
||||
break;
|
||||
@ -587,6 +596,7 @@ LibraryItem* Library::ItemFromQuery(GroupBy type,
|
||||
case GroupBy_Composer:
|
||||
case GroupBy_Genre:
|
||||
case GroupBy_Album:
|
||||
case GroupBy_AlbumArtist:
|
||||
item->key = q.Value(0).toString();
|
||||
item->display_text = TextOrUnknown(item->key);
|
||||
item->sort_text = SortText(item->key);
|
||||
@ -634,6 +644,7 @@ LibraryItem* Library::ItemFromSong(GroupBy type,
|
||||
case GroupBy_Composer: item->key = s.composer();
|
||||
case GroupBy_Genre: if (item->key.isNull()) item->key = s.genre();
|
||||
case GroupBy_Album: if (item->key.isNull()) item->key = s.album();
|
||||
case GroupBy_AlbumArtist: if (item->key.isNull()) item->key = s.albumartist();
|
||||
item->display_text = TextOrUnknown(item->key);
|
||||
item->sort_text = SortText(item->key);
|
||||
break;
|
||||
|
@ -58,6 +58,7 @@ class Library : public SimpleTreeModel<LibraryItem> {
|
||||
GroupBy_Year = 4,
|
||||
GroupBy_Composer = 5,
|
||||
GroupBy_Genre = 6,
|
||||
GroupBy_AlbumArtist = 7,
|
||||
};
|
||||
|
||||
struct Grouping {
|
||||
|
@ -884,6 +884,10 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Albumartist"
|
||||
msgstr "Umělec alba"
|
||||
|
||||
msgid "Year - Album"
|
||||
msgstr ""
|
||||
|
||||
|
@ -884,6 +884,10 @@ msgstr "Πρώτο επίπεδο"
|
||||
msgid "None"
|
||||
msgstr "Κανένα"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Albumartist"
|
||||
msgstr "Άλμπουμ καλλιτέχνη"
|
||||
|
||||
msgid "Year - Album"
|
||||
msgstr "Έτος - Άλμπουμ"
|
||||
|
||||
|
@ -893,6 +893,10 @@ msgstr "Primer nivel"
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Albumartist"
|
||||
msgstr "Álbum Artista"
|
||||
|
||||
msgid "Year - Album"
|
||||
msgstr "Año - Álbum"
|
||||
|
||||
|
@ -889,6 +889,10 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Albumartist"
|
||||
msgstr "Artiste de l'album"
|
||||
|
||||
msgid "Year - Album"
|
||||
msgstr ""
|
||||
|
||||
|
@ -881,6 +881,10 @@ msgstr "Pierwszy poziom"
|
||||
msgid "None"
|
||||
msgstr "Brak"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Albumartist"
|
||||
msgstr "Wszyscy wykonawcy"
|
||||
|
||||
msgid "Year - Album"
|
||||
msgstr "Rok - Album"
|
||||
|
||||
|
@ -880,6 +880,10 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Albumartist"
|
||||
msgstr "Исполнитель"
|
||||
|
||||
msgid "Year - Album"
|
||||
msgstr ""
|
||||
|
||||
|
@ -886,6 +886,10 @@ msgstr "Prvá úroveň"
|
||||
msgid "None"
|
||||
msgstr "Nijako"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Albumartist"
|
||||
msgstr "Interprét albumu"
|
||||
|
||||
msgid "Year - Album"
|
||||
msgstr "Rok - Album"
|
||||
|
||||
|
@ -870,6 +870,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "Albumartist"
|
||||
msgstr ""
|
||||
|
||||
msgid "Year - Album"
|
||||
msgstr ""
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user