1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:04:59 +00:00

SoundPlayer: Use an enum for PlaylistModel columns

Also correct some const-positioning.
This commit is contained in:
Sam Atkins 2023-07-19 14:21:42 +01:00 committed by Sam Atkins
parent 32e5593ca9
commit fae350be3f
2 changed files with 26 additions and 16 deletions

View file

@ -29,23 +29,23 @@ PlaylistWidget::PlaylistWidget()
};
}
GUI::Variant PlaylistModel::data(const GUI::ModelIndex& index, GUI::ModelRole role) const
GUI::Variant PlaylistModel::data(GUI::ModelIndex const& index, GUI::ModelRole role) const
{
if (role == GUI::ModelRole::TextAlignment)
return "CenterLeft";
if (role == GUI::ModelRole::Display) {
switch (index.column()) {
case 0:
case Column::Title:
return m_playlist_items[index.row()].extended_info->track_display_title.value_or(LexicalPath::title(m_playlist_items[index.row()].path));
case 1:
case Column::Duration:
return human_readable_digital_time(m_playlist_items[index.row()].extended_info->track_length_in_seconds.value_or(0));
case 2:
case Column::Group:
return m_playlist_items[index.row()].extended_info->group_name.value_or("");
case 3:
case Column::Album:
return m_playlist_items[index.row()].extended_info->album_title.value_or("");
case 4:
case Column::Artist:
return m_playlist_items[index.row()].extended_info->album_artist.value_or("");
case 5:
case Column::Filesize:
return human_readable_size(m_playlist_items[index.row()].extended_info->file_size_in_bytes.value_or(0));
}
}
@ -60,17 +60,17 @@ GUI::Variant PlaylistModel::data(const GUI::ModelIndex& index, GUI::ModelRole ro
ErrorOr<String> PlaylistModel::column_name(int column) const
{
switch (column) {
case 0:
case Column::Title:
return "Title"_short_string;
case 1:
case Column::Duration:
return TRY("Duration"_string);
case 2:
case Column::Group:
return "Group"_short_string;
case 3:
case Column::Album:
return "Album"_short_string;
case 4:
case Column::Artist:
return "Artist"_short_string;
case 5:
case Column::Filesize:
return TRY("Filesize"_string);
}
VERIFY_NOT_REACHED();

View file

@ -19,11 +19,21 @@ enum class PlaylistModelCustomRole {
class PlaylistModel : public GUI::Model {
public:
enum Column {
Title,
Duration,
Group,
Album,
Artist,
Filesize,
__Count
};
~PlaylistModel() override = default;
int row_count(const GUI::ModelIndex&) const override { return m_playlist_items.size(); }
int column_count(const GUI::ModelIndex&) const override { return 6; }
GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override;
int row_count(GUI::ModelIndex const&) const override { return m_playlist_items.size(); }
int column_count(GUI::ModelIndex const&) const override { return 6; }
GUI::Variant data(GUI::ModelIndex const&, GUI::ModelRole) const override;
ErrorOr<String> column_name(int column) const override;
Vector<M3UEntry>& items() { return m_playlist_items; }