Remove Playlist repeat option

This commit is contained in:
norepro 2025-11-27 21:03:57 -08:00
parent b559de8fc5
commit 42b1f6e5e8
4 changed files with 3 additions and 10 deletions

View file

@ -36,5 +36,4 @@ quit = Quit
# Controls
repeat-disabled = Repeat disabled
repeat-playlist = Repeat playlist
repeat-track = Repeat track

View file

@ -45,7 +45,6 @@ pub enum RepeatState {
#[default]
Disabled,
Track,
Playlist,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]

View file

@ -1316,7 +1316,7 @@ impl Application for App {
let repeat_state = &self.flags.config_state.player_state.repeat;
println!("end of stream, repeat={:?}", repeat_state);
if matches!(repeat_state, RepeatState::Playlist | RepeatState::Track) {
if matches!(repeat_state, RepeatState::Track) {
if let Some(video) = &mut self.video_opt {
// Workaround: Explicitly seeking to the start before `restart_stream`.
// This prevents its internal `pause(false)` from triggering a second EndOfStream message
@ -1658,21 +1658,18 @@ impl Application for App {
widget::button::icon(
widget::icon::from_name(match self.flags.config_state.player_state.repeat {
RepeatState::Disabled => "media-playlist-no-repeat-symbolic",
RepeatState::Playlist => "media-playlist-repeat-symbolic",
RepeatState::Track => "media-playlist-repeat-song-symbolic",
})
.size(16),
)
.on_press(Message::RepeatToggled(
match self.flags.config_state.player_state.repeat {
RepeatState::Disabled => RepeatState::Playlist,
RepeatState::Playlist => RepeatState::Track,
RepeatState::Disabled => RepeatState::Track,
RepeatState::Track => RepeatState::Disabled,
},
)),
match self.flags.config_state.player_state.repeat {
RepeatState::Disabled => fl!("repeat-disabled"),
RepeatState::Playlist => fl!("repeat-playlist"),
RepeatState::Track => fl!("repeat-track"),
},
widget::tooltip::Position::Top,

View file

@ -62,7 +62,6 @@ impl MprisState {
fn loop_status(&self) -> LoopStatus {
match self.repeat_state {
RepeatState::Disabled => LoopStatus::None,
RepeatState::Playlist => LoopStatus::Playlist,
RepeatState::Track => LoopStatus::Track,
}
}
@ -210,8 +209,7 @@ impl PlayerInterface for Player {
log::info!("SetLoopStatus({})", loop_status);
let repeat_state = match loop_status {
LoopStatus::None => RepeatState::Disabled,
LoopStatus::Playlist => RepeatState::Playlist,
LoopStatus::Track => RepeatState::Track,
LoopStatus::Track | LoopStatus::Playlist => RepeatState::Track,
};
self.message(Message::RepeatToggled(repeat_state)).await?;
Ok(())