Fixed the issue where the album art did not fill up the window when toggling info

This commit is contained in:
GuardKenzie
2021-05-13 01:39:22 +00:00
parent 4b7caa6f03
commit 11128b7d06

View File

@ -113,24 +113,8 @@ def albumArtSize(album_space, window_width):
return image_width_px, image_width, image_height return image_width_px, image_width, image_height
def drawPlaylist(height, width):
"""
A function that checks if the playlist display should be drawn
based on the provided height and width
"""
return height / width < 1/3 and not DISABLEPLAYLIST
def albumArtWinWidth(height, width):
"""
A function that calculates the album art window height and
width based on the window height and width
"""
if drawPlaylist(height, width):
return height, round(width * 2/5)
else:
return height, width
class Player: class Player:
def __init__(self): def __init__(self):
@ -166,14 +150,14 @@ class Player:
self.screen_height, self.screen_width = maxyx self.screen_height, self.screen_width = maxyx
# Album art window # Album art window
self.art_window_height, self.art_window_width = albumArtWinWidth(*maxyx) self.art_window_height, self.art_window_width = self.albumArtWinWidth(*maxyx)
self.art_win = curses.newwin( self.art_win = curses.newwin(
self.art_window_height, self.art_window_width, self.art_window_height, self.art_window_width,
0, 0 0, 0
) )
# Playlist window # Playlist window
if drawPlaylist(*maxyx) and not self.album_art_only: if self.playlistFits(*maxyx) and not self.album_art_only:
self.draw_playlist = True self.draw_playlist = True
self.playlist_window_width = maxyx[1] - self.art_window_width - PLAYLISTMARGIN self.playlist_window_width = maxyx[1] - self.art_window_width - PLAYLISTMARGIN
self.playlist_window_height = maxyx[0] self.playlist_window_height = maxyx[0]
@ -216,6 +200,25 @@ class Player:
self.selected_song = 0 self.selected_song = 0
def playlistFits(self, height, width):
"""
A function that checks if the playlist display should be drawn
based on the provided height and width
"""
return height / width < 1/3 and not DISABLEPLAYLIST
def albumArtWinWidth(self, height, width):
"""
A function that calculates the album art window height and
width based on the window height and width
"""
if self.playlistFits(height, width) and not self.album_art_only:
return height, round(width * 2/5)
else:
return height, width
def fitText(self): def fitText(self):
""" """
A function that fits album name, artist name and song name A function that fits album name, artist name and song name
@ -259,10 +262,10 @@ class Player:
if (window_height, window_width) != (self.screen_height, self.screen_width) or force_update: if (window_height, window_width) != (self.screen_height, self.screen_width) or force_update:
self.draw_playlist = drawPlaylist(window_height, window_width) and not self.album_art_only self.draw_playlist = self.playlistFits(window_height, window_width) and not self.album_art_only
# Album art window # Album art window
self.art_window_height, self.art_window_width = albumArtWinWidth(window_height, window_width) self.art_window_height, self.art_window_width = self.albumArtWinWidth(window_height, window_width)
# Playlist window # Playlist window
if self.draw_playlist: if self.draw_playlist:
@ -416,10 +419,9 @@ class Player:
""" """
A function that toggles the display of track info A function that toggles the display of track info
""" """
self.album_art_only = not self.album_art_only self.album_art_only = not self.album_art_only
self.art_win.clear()
self.updateWindowSize(force_update=True) self.updateWindowSize(force_update=True)
self.art_win.clear()
self.art_win.refresh() self.art_win.refresh()
@ -755,9 +757,9 @@ class Player:
# Draw the window # Draw the window
if not self.album_art_only: if not self.album_art_only:
self.drawInfo() self.drawInfo()
self.drawPlaylist()
self.drawAlbumArt() self.drawAlbumArt()
self.drawPlaylist()
@ueberzug.Canvas() @ueberzug.Canvas()