✨ feat(ui): add placeholder for player mini when no players are active

This commit is contained in:
sankalp committed 2025-07-26 22:45:14 +05:45
1 parent 943fe24a55
commit c4be327948
3 files changed
+65 -20

No files matched your search

+1 -1
View File
@@ -183,4 +183,4 @@ class DashboardWindow(Window):
all_visible=True,
)
self.hide()
# self.hide()
+49 -4
View File
@@ -96,7 +96,7 @@ class PlayerMini(Box):
self.album_cover = Box(style_classes="album-image")
self.album_cover.set_style(
f"background-image:url('{data.HOME_DIR}/.current_wall')"
f"background-image:url('{data.HOME_DIR}/.current.wall')"
)
self.children = [
@@ -188,7 +188,7 @@ class PlayerMini(Box):
def on_metadata(self, sender, metadata, player):
keys = metadata.keys()
if "xesam:artist" in keys and "xesam:title" in keys:
# _max_chars = 20 if not info.VERTICAL else 30
# _max_chars = 20 if not data.VERTICAL else 30
song_title = metadata["xesam:title"]
# if len(song_title) > _max_chars:
# song_title = song_title[: _max_chars - 1] + "…"
@@ -290,6 +290,45 @@ class PlayerMini(Box):
shuffle_button.get_child().set_style("color: var(--outline)")
class PlacheholderMini(Box):
def __init__(self, **kwargs):
super().__init__(style_classes="player-mini", **kwargs)
self.set_style(f"background-image:url('{data.HOME_DIR}/.current.wall')")
self.album_cover = Box(style_classes="album-image")
self.album_cover.set_style(
f"background-image:url('{data.HOME_DIR}/.current.wall')"
)
self.player_name = Label(
style_classes=["player-icon", "mini"], markup=icons.disc
)
self.children = [
self.album_cover,
Box(
name="source",
style_classes="mini",
v_align="end",
children=self.player_name,
),
Box(
orientation="v",
v_expand=True,
h_expand=True,
style="padding-left:10px;",
v_align="center",
children=[
CenterBox(
name="details",
center_children=Label(
label="Nothing Playing", style="color:black;"
),
)
],
),
]
class PlayerContainerMini(Box):
def __init__(self, **kwargs):
super().__init__(name="player-container", style_classes="mini", **kwargs)
@@ -297,11 +336,12 @@ class PlayerContainerMini(Box):
self.manager = PlayerManager()
self.manager.connect("new-player", self.new_player)
self.manager.connect("player-vanish", self.on_player_vanish)
self.placeholder = PlacheholderMini()
self.stack = Stack(
# name="player-container",
transition_type="crossfade",
transition_duration=100,
children=[],
children=[self.placeholder],
)
self.player_stack = Stack(
@@ -351,8 +391,10 @@ class PlayerContainerMini(Box):
new_player.wiggly_bar.queue_draw()
new_player.set_name(player.props.player_name)
self.players.append(new_player)
print("stacking dis bitvch")
print("stacking mini", player.props.player_name)
self.stack.add_named(new_player, player.props.player_name)
if len(self.players) == 1:
self.stack.remove(self.placeholder)
self.player_switch_container.add_center(
Button(
@@ -381,6 +423,9 @@ class PlayerContainerMini(Box):
self.update_player_list()
break
if len(self.players) == 0:
self.stack.add_named(self.placeholder, "placeholder")
def update_player_list(self):
curr = self.stack.get_visible_child()
for btn in self.player_switch_container.center_children: