mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
added playlist length information
This commit is contained in:
parent
36b023f04c
commit
75d8ff21c6
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
import gi #python-gobject dev-python/pygobject:3[${PYTHON_USEDEP}]
|
import gi #python-gobject dev-python/pygobject:3[${PYTHON_USEDEP}]
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
from gi.repository import Gtk, Gio, Gdk, GdkPixbuf, GObject, GLib
|
from gi.repository import Gtk, Gio, Gdk, GdkPixbuf, Pango, GObject, GLib
|
||||||
from mpd import MPDClient
|
from mpd import MPDClient
|
||||||
import requests #dev-python/requests
|
import requests #dev-python/requests
|
||||||
from bs4 import BeautifulSoup, Comment #, NavigableString #dev-python/beautifulsoup
|
from bs4 import BeautifulSoup, Comment #, NavigableString #dev-python/beautifulsoup
|
||||||
@ -366,6 +366,16 @@ class TrackView(Gtk.Box):
|
|||||||
#audio infos
|
#audio infos
|
||||||
audio=AudioType(self.client)
|
audio=AudioType(self.client)
|
||||||
|
|
||||||
|
#playlist info
|
||||||
|
self.playlist_info=Gtk.Label()
|
||||||
|
self.playlist_info.set_xalign(0)
|
||||||
|
self.playlist_info.set_ellipsize(Pango.EllipsizeMode.END)
|
||||||
|
|
||||||
|
#status bar
|
||||||
|
status_bar=Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=10)
|
||||||
|
status_bar.pack_start(self.playlist_info, True, True, 0)
|
||||||
|
status_bar.pack_end(audio, False, False, 0)
|
||||||
|
|
||||||
#timeouts
|
#timeouts
|
||||||
GLib.timeout_add(1000, self.update_cover)
|
GLib.timeout_add(1000, self.update_cover)
|
||||||
GLib.timeout_add(100, self.refresh)
|
GLib.timeout_add(100, self.refresh)
|
||||||
@ -380,7 +390,7 @@ class TrackView(Gtk.Box):
|
|||||||
#packing
|
#packing
|
||||||
self.pack_start(self.cover, False, False, 0)
|
self.pack_start(self.cover, False, False, 0)
|
||||||
self.pack_start(scroll, True, True, 0)
|
self.pack_start(scroll, True, True, 0)
|
||||||
self.pack_end(audio, False, False, 0)
|
self.pack_end(status_bar, False, False, 0)
|
||||||
|
|
||||||
def update_cover(self):
|
def update_cover(self):
|
||||||
try:
|
try:
|
||||||
@ -430,9 +440,11 @@ class TrackView(Gtk.Box):
|
|||||||
self.selection.handler_block(self.title_change)
|
self.selection.handler_block(self.title_change)
|
||||||
if self.client.connected():
|
if self.client.connected():
|
||||||
if self.client.playlist() != self.playlist:
|
if self.client.playlist() != self.playlist:
|
||||||
|
self.playlist_info.set_text("")
|
||||||
self.store.clear()
|
self.store.clear()
|
||||||
songs=self.client.playlistinfo()
|
songs=self.client.playlistinfo()
|
||||||
if not songs == []:
|
if not songs == []:
|
||||||
|
whole_length=float(0)
|
||||||
for song in songs:
|
for song in songs:
|
||||||
try:
|
try:
|
||||||
title=song["title"]
|
title=song["title"]
|
||||||
@ -454,8 +466,11 @@ class TrackView(Gtk.Box):
|
|||||||
dura=float(song["duration"])
|
dura=float(song["duration"])
|
||||||
except:
|
except:
|
||||||
dura=0.0
|
dura=0.0
|
||||||
|
whole_length=whole_length+dura
|
||||||
duration=str(datetime.timedelta(seconds=int(dura )))
|
duration=str(datetime.timedelta(seconds=int(dura )))
|
||||||
self.store.append([track, title, artist, album, duration, song["file"].replace("&", "")])
|
self.store.append([track, title, artist, album, duration, song["file"].replace("&", "")])
|
||||||
|
whole_length_human_readable=str(datetime.timedelta(seconds=int(whole_length)))
|
||||||
|
self.playlist_info.set_text(_("%(total_tracks)i titles (%(total_length)s)") % {"total_tracks": len(songs), "total_length": whole_length_human_readable})
|
||||||
self.playlist=self.client.playlist()
|
self.playlist=self.client.playlist()
|
||||||
else:
|
else:
|
||||||
if not self.song_to_delete == "":
|
if not self.song_to_delete == "":
|
||||||
@ -473,6 +488,7 @@ class TrackView(Gtk.Box):
|
|||||||
except:
|
except:
|
||||||
self.selection.unselect_all()
|
self.selection.unselect_all()
|
||||||
else:
|
else:
|
||||||
|
self.playlist_info.set_text("")
|
||||||
self.store.clear()
|
self.store.clear()
|
||||||
self.playlist=[]
|
self.playlist=[]
|
||||||
self.selection.handler_unblock(self.title_change)
|
self.selection.handler_unblock(self.title_change)
|
||||||
@ -1135,6 +1151,7 @@ class AudioType(Gtk.EventBox):
|
|||||||
#widgets
|
#widgets
|
||||||
self.label=Gtk.Label()
|
self.label=Gtk.Label()
|
||||||
self.label.set_xalign(1)
|
self.label.set_xalign(1)
|
||||||
|
self.label.set_ellipsize(Pango.EllipsizeMode.END)
|
||||||
self.popover=Gtk.Popover()
|
self.popover=Gtk.Popover()
|
||||||
|
|
||||||
#Store
|
#Store
|
||||||
|
Loading…
Reference in New Issue
Block a user