Add sort tags to context view
This commit is contained in:
@@ -64,15 +64,21 @@ ContextSettingsPage::ContextSettingsPage(SettingsDialog *dialog, QWidget *parent
|
||||
// Create and populate the helper menus
|
||||
QMenu *menu = new QMenu(this);
|
||||
menu->addAction(ui_->action_title);
|
||||
menu->addAction(ui_->action_titlesort);
|
||||
menu->addAction(ui_->action_album);
|
||||
menu->addAction(ui_->action_albumsort);
|
||||
menu->addAction(ui_->action_artist);
|
||||
menu->addAction(ui_->action_artistsort);
|
||||
menu->addAction(ui_->action_albumartist);
|
||||
menu->addAction(ui_->action_albumartistsort);
|
||||
menu->addAction(ui_->action_track);
|
||||
menu->addAction(ui_->action_disc);
|
||||
menu->addAction(ui_->action_year);
|
||||
menu->addAction(ui_->action_originalyear);
|
||||
menu->addAction(ui_->action_composer);
|
||||
menu->addAction(ui_->action_composersort);
|
||||
menu->addAction(ui_->action_performer);
|
||||
menu->addAction(ui_->action_performersort);
|
||||
menu->addAction(ui_->action_grouping);
|
||||
menu->addAction(ui_->action_filename);
|
||||
menu->addAction(ui_->action_url);
|
||||
|
||||
@@ -486,6 +486,54 @@
|
||||
<string>Add song original year tag</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_artistsort">
|
||||
<property name="text">
|
||||
<string>%artistsort%</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add song artistsort tag</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_albumartistsort">
|
||||
<property name="text">
|
||||
<string>%albumartistsort%</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add song albumartistsort tag</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_titlesort">
|
||||
<property name="text">
|
||||
<string>%titlesort%</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add song titlesort tag</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_composersort">
|
||||
<property name="text">
|
||||
<string>%composersort%</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add song composersort tag</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_performersort">
|
||||
<property name="text">
|
||||
<string>%performersort%</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add song performersort tag</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_albumsort">
|
||||
<property name="text">
|
||||
<string>%albumsort%</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add song albumsort tag</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
@@ -142,15 +142,27 @@ QString ReplaceVariable(const QString &variable, const Song &song, const QString
|
||||
if (variable == "%title%"_L1) {
|
||||
value = song.PrettyTitle();
|
||||
}
|
||||
else if (variable == "%titlesort%"_L1) {
|
||||
value = song.titlesort();
|
||||
}
|
||||
else if (variable == "%album%"_L1) {
|
||||
value = song.album();
|
||||
}
|
||||
else if (variable == "%albumsort%"_L1) {
|
||||
value = song.albumsort();
|
||||
}
|
||||
else if (variable == "%artist%"_L1) {
|
||||
value = song.artist();
|
||||
}
|
||||
else if (variable == "%artistsort%"_L1) {
|
||||
value = song.artistsort();
|
||||
}
|
||||
else if (variable == "%albumartist%"_L1) {
|
||||
value = song.effective_albumartist();
|
||||
}
|
||||
else if (variable == "%albumartistsort%"_L1) {
|
||||
value = song.albumartistsort();
|
||||
}
|
||||
else if (variable == "%track%"_L1) {
|
||||
value.setNum(song.track());
|
||||
}
|
||||
@@ -169,9 +181,15 @@ QString ReplaceVariable(const QString &variable, const Song &song, const QString
|
||||
else if (variable == "%composer%"_L1) {
|
||||
value = song.composer();
|
||||
}
|
||||
else if (variable == "%composersort%"_L1) {
|
||||
value = song.composersort();
|
||||
}
|
||||
else if (variable == "%performer%"_L1) {
|
||||
value = song.performer();
|
||||
}
|
||||
else if (variable == "%performersort%"_L1) {
|
||||
value = song.performersort();
|
||||
}
|
||||
else if (variable == "%grouping%"_L1) {
|
||||
value = song.grouping();
|
||||
}
|
||||
|
||||
@@ -186,16 +186,22 @@ TEST(UtilitiesTest, ReplaceVariable) {
|
||||
|
||||
Song song;
|
||||
song.set_title(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_titlesort(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_album(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_albumsort(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_artist(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_artistsort(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_albumartist(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_albumartistsort(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_track(5);
|
||||
song.set_disc(2);
|
||||
song.set_year(1999);
|
||||
song.set_originalyear(2000);
|
||||
song.set_genre(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_composer(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_composersort(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_performer(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_performersort(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_grouping(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_length_nanosec(900000000000);
|
||||
song.set_url(QUrl(u"file:///home/jonas/Music/test_song.flac"_s));
|
||||
@@ -204,16 +210,22 @@ TEST(UtilitiesTest, ReplaceVariable) {
|
||||
song.set_rating(1.0);
|
||||
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%title%"_s, song, ""_L1), song.title());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%titlesort%"_s, song, ""_L1), song.titlesort());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%album%"_s, song, ""_L1), song.album());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%albumsort%"_s, song, ""_L1), song.albumsort());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%artist%"_s, song, ""_L1), song.artist());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%artistsort%"_s, song, ""_L1), song.artistsort());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%albumartist%"_s, song, ""_L1), song.effective_albumartist());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%albumartistsort%"_s, song, ""_L1), song.albumartistsort());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%track%"_s, song, ""_L1), QString::number(song.track()));
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%disc%"_s, song, ""_L1), QString::number(song.disc()));
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%year%"_s, song, ""_L1), QString::number(song.year()));
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%originalyear%"_s, song, ""_L1), QString::number(song.originalyear()));
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%genre%"_s, song, ""_L1), song.genre());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%composer%"_s, song, ""_L1), song.composer());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%composersort%"_s, song, ""_L1), song.composersort());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%performer%"_s, song, ""_L1), song.performer());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%performersort%"_s, song, ""_L1), song.performersort());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%grouping%"_s, song, ""_L1), song.grouping());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%length%"_s, song, ""_L1), song.PrettyLength());
|
||||
ASSERT_EQ(Utilities::ReplaceVariable(u"%filename%"_s, song, ""_L1), song.basefilename());
|
||||
@@ -230,7 +242,9 @@ TEST(UtilitiesTest, ReplaceMessage) {
|
||||
song.set_title(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_album(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_artist(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_artistsort(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_albumartist(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_albumartistsort(Utilities::GetRandomStringWithChars(8));
|
||||
song.set_track(5);
|
||||
song.set_disc(2);
|
||||
song.set_year(1999);
|
||||
@@ -246,6 +260,7 @@ TEST(UtilitiesTest, ReplaceMessage) {
|
||||
song.set_rating(1.0);
|
||||
|
||||
ASSERT_EQ(Utilities::ReplaceMessage(u"%title% - %artist%"_s, song, ""_L1), song.title() + u" - "_s + song.artist());
|
||||
ASSERT_EQ(Utilities::ReplaceMessage(u"%artistsort% - %albumartistsort%"_s, song, ""_L1), song.artistsort() + u" - "_s + song.albumartistsort());
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user