Skip to content

Commit

Permalink
add signal playlist.on_play_model_handling
Browse files Browse the repository at this point in the history
  • Loading branch information
cosven committed Dec 10, 2023
1 parent 1c575b2 commit 99ede5f
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
14 changes: 12 additions & 2 deletions feeluown/gui/components/line_song.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
from typing import TYPE_CHECKING

from PyQt5.QtCore import QTimer, QRect, Qt
from PyQt5.QtGui import QFontMetrics, QPainter, QPalette
from PyQt5.QtWidgets import QApplication, QLabel, QSizePolicy, QMenu

from feeluown.gui.components import SongMenuInitializer

if TYPE_CHECKING:
from feeluown.app.gui_app import GuiApp


class LineSongLabel(QLabel):
"""Show song info in one line (with limited width)."""

default_text = '...'

def __init__(self, app, parent=None):
def __init__(self, app: 'GuiApp', parent=None):
super().__init__(text=self.default_text, parent=parent)
self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)

Expand All @@ -28,10 +33,12 @@ def __init__(self, app, parent=None):

self._app.player.metadata_changed.connect(
self.on_metadata_changed, aioqueue=True)
self._app.playlist.play_model_handling.connect(
self.on_play_model_handling, aioqueue=True)

def on_metadata_changed(self, metadata):
if not metadata:
self.setText('')
self.setText('...')
return

# Set main text.
Expand All @@ -43,6 +50,9 @@ def on_metadata_changed(self, metadata):
text += f" - {','.join(artists)}"
self.setText(text)

def on_play_model_handling(self):
self.setText('正在加载歌曲...')

def change_text_position(self):
if not self.parent().isVisible(): # type: ignore
self._timer.stop()
Expand Down
6 changes: 5 additions & 1 deletion feeluown/gui/uimain/player_bar.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import logging
from typing import TYPE_CHECKING

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QFrame, QHBoxLayout, QVBoxLayout, QPushButton, QSizePolicy
Expand All @@ -15,12 +16,15 @@
)
from feeluown.gui.helpers import IS_MACOS

if TYPE_CHECKING:
from feeluown.app.gui_app import GuiApp

logger = logging.getLogger(__name__)


class PlayerControlPanel(QFrame):

def __init__(self, app, parent=None):
def __init__(self, app: 'GuiApp', parent=None):
super().__init__(parent)
self._app = app

Expand Down
4 changes: 4 additions & 0 deletions feeluown/player/playlist.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ def __init__(self, app: 'App', songs=None, playback_mode=PlaybackMode.loop,
# The *songs_removed* and *songs_added* signal.
self.songs_removed = Signal() # (index, count)
self.songs_added = Signal() # (index, count)
# .. versionadded:: 3.9.0
# The *play_model_handling* signal.
self.play_model_handling = Signal()

self._app.player.media_finished.connect(self._on_media_finished)

Expand Down Expand Up @@ -684,6 +687,7 @@ def play_model(self, model):
"""
# Stop the player so that user know the action is working.
self._app.player.stop()
self.play_model_handling.emit()
task = self.set_current_model(model)
if task is not None:
def cb(future):
Expand Down

0 comments on commit 99ede5f

Please sign in to comment.