✨ feat(ui): add placeholder for player mini when no players are active
This commit is contained in:
3 files changed
+65
-20
No files matched your search
@@ -183,4 +183,4 @@ class DashboardWindow(Window):
|
||||
all_visible=True,
|
||||
)
|
||||
|
||||
self.hide()
|
||||
# self.hide()
|
||||
@@ -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:
|
||||
|
||||
Reference in new issue
Block a user