@@ -674,9 +674,9 @@ def refresh_win(self, set_encoding=True):
674674 curses .color_pair (4 ))
675675 for i in range (1 , self .maxX - 1 ):
676676 try :
677- self ._win .addch (self .maxY - 4 , i , '─' , curses .color_pair (3 ))
677+ self ._win .addch (self .maxY - 4 , i , '─' , curses .color_pair (3 ))
678678 except :
679- self ._win .addstr (self .maxY - 4 , i , u'─' .encode ('utf-8' ), curses .color_pair (3 ))
679+ self ._win .addstr (self .maxY - 4 , i , u'─' .encode ('utf-8' ), curses .color_pair (3 ))
680680 try :
681681 self ._win .addch (self .maxY - 4 , 0 , '├' , curses .color_pair (3 ))
682682 self ._win .addch (self .maxY - 4 , self .maxX - 1 , '┤' , curses .color_pair (3 ))
@@ -981,6 +981,7 @@ def __init__(self, parent, config_path, default_playlist, include_registers=Fals
981981 #self._include_registers = True
982982 if self ._include_registers :
983983 self ._title = ' Paste: Select target '
984+ self ._playlist_in_editor = self ._selected_playlist
984985 self .init_window ()
985986
986987 def __del__ (self ):
@@ -992,10 +993,6 @@ def init_window(self):
992993 self .maxY = self ._num_of_items + 2
993994 if self .maxY > self ._parent_maxY - 2 :
994995 self .maxY = self ._parent_maxY - 2
995- #elif self.maxY < 12:
996- # self.maxY = 12
997- #if self.maxY < 7:
998- # self.maxY = 7
999996 self ._calculate_width ()
1000997 self ._win = None
1001998 Y = int ((self ._parent_maxY - self .maxY ) / 2 ) + self ._parent_Y
@@ -1007,7 +1004,6 @@ def refresh_and_resize(self, parent_maxYX):
10071004 self ._parent_maxX = parent_maxYX [1 ]
10081005 self .init_window ()
10091006 self .refresh_win (resizing = True )
1010- self ._resize ()
10111007
10121008 def _calculate_width (self ):
10131009 self .maxX = self ._max_len + 5 + len (str (self ._num_of_items ))
@@ -1018,15 +1014,16 @@ def _calculate_width(self):
10181014 self .maxX = self ._parent_maxX - 4
10191015
10201016 def refresh_win (self , resizing = False ):
1021- """ set_encoding is False when resizing """
1022- #self.init_window(set_encoding)
10231017 self ._win .bkgdset (' ' , curses .color_pair (3 ))
10241018 self ._win .erase ()
10251019 self ._win .box ()
1026- self ._win .addstr (0 ,
1027- int ((self .maxX - len (self ._title )) / 2 ),
1020+ self ._win .addstr (
1021+ 0 , int ((self .maxX - len (self ._title )) / 2 ),
10281022 self ._title ,
1029- curses .color_pair (4 ))
1023+ curses .color_pair (4 )
1024+ )
1025+ if resizing :
1026+ self ._resize ()
10301027 self .refresh_selection (resizing )
10311028
10321029 def refresh_selection (self , resizing = False ):
@@ -1036,13 +1033,13 @@ def refresh_selection(self, resizing=False):
10361033 #logger.error('de i = {0}, startPos = {1}'.format(i, self.startPos))
10371034 if i + self .startPos < self ._num_of_items :
10381035 line , pad = self ._format_line (i , pad )
1039- col = self ._get_color (i )
1040- self ._win .hline (i + 1 , 1 , ' ' , self .maxX - 2 , col )
1041- self ._win .addstr (i + 1 , 1 , line [:self .maxX - 3 ], col )
1036+ colour = self ._get_color (i )
1037+ self ._win .hline (i + 1 , 1 , ' ' , self .maxX - 2 , colour )
1038+ self ._win .addstr (i + 1 , 1 , line [:self .maxX - 3 ], colour )
10421039 else :
10431040 break
1041+ self ._win .refresh ()
10441042 if not resizing :
1045- self ._win .refresh ()
10461043 if self ._select_playlist_error > - 2 :
10471044 self .print_select_playlist_error ()
10481045
@@ -1051,13 +1048,12 @@ def _resize(self):
10511048 self .startPos = 0
10521049 else :
10531050 self ._fix_startPos ()
1054- self .refresh_selection ()
10551051
10561052 def _get_color (self , i ):
10571053 col = curses .color_pair (5 )
10581054 if self ._items [i + self .startPos ] == self ._orig_playlist :
10591055 if i + self .startPos == self ._selected_playlist_id :
1060- col = curses .color_pair (9 )
1056+ col = curses .color_pair (9 )
10611057 else :
10621058 col = curses .color_pair (4 )
10631059 elif i + self .startPos == self ._selected_playlist_id :
@@ -1066,12 +1062,13 @@ def _get_color(self, i):
10661062
10671063 def _format_line (self , i , pad ):
10681064 """ PyRadioSelectPlaylist format line """
1069- line = '{0}. {1}' .format (str (i + self .startPos + 1 ).rjust (pad ),
1070- self ._items [i + self .startPos ])
1065+ line = '{0}. {1}' .format (
1066+ str (i + self .startPos + 1 ).rjust (pad ),
1067+ self ._items [i + self .startPos ]
1068+ )
10711069 return line , pad
10721070
10731071 def _read_items (self ):
1074- to_del = - 1
10751072 self ._items = []
10761073 self ._items = glob .glob (path .join (self ._config_path , '*.csv' ))
10771074 if len (self ._items ) > 0 :
@@ -1088,20 +1085,22 @@ def _read_items(self):
10881085 return 0 , - 1
10891086 for i , an_item in enumerate (self ._items ):
10901087 if self ._include_registers :
1091- self ._items [i ] = an_item .replace (self ._registers_path + sep , '' ).replace ('.csv' , '' ).replace ('register_' , 'Register: ' )
1088+ self ._items [i ] = an_item .replace (self ._registers_path + sep , '' ).replace ('.csv' , '' ).replace ('register_' , 'Register: ' )
10921089 self ._items [i ] = self ._items [i ].replace (self ._config_path + sep , '' )
1093- if self ._items [i ] == self ._selected_playlist :
1094- to_del = i
10951090 else :
10961091 self ._items [i ] = an_item .replace (self ._config_path + sep , '' ).replace ('.csv' , '' )
1097- """ get already loaded playlist id """
1098- if not self ._include_registers :
1092+ if self ._include_registers :
1093+ """ Remove playlist in editor """
1094+ try :
1095+ self ._items .remove (self ._playlist_in_editor )
1096+ except ValueError :
1097+ pass
1098+ else :
1099+ """ get already loaded playlist id """
10991100 for i , a_playlist in enumerate (self ._items ):
11001101 if a_playlist == self ._selected_playlist :
11011102 self ._selected_playlist_id = i
11021103 break
1103- if to_del >= 0 :
1104- del self ._items [to_del ]
11051104 self ._max_len = cjklen (max (self ._items , key = cjklen ))
11061105 self ._num_of_items = len (self ._items )
11071106
@@ -1144,7 +1143,7 @@ def _get_result(self):
11441143 ret = self ._items [self ._selected_playlist_id ].replace ('Register: ' , 'register_' )
11451144 ret = path .join (self ._config_path , '.registers' , ret + '.csv' )
11461145 else :
1147- ret = path .join (self ._config_path , self ._items [self ._selected_playlist_id ], ret + '.csv' )
1146+ ret = path .join (self ._config_path , self ._items [self ._selected_playlist_id ] + '.csv' )
11481147 if platform == 'win32' :
11491148 ret .replace ('.registers' , '_registers' )
11501149 return 0 , ret
@@ -1215,6 +1214,14 @@ def _fix_startPos(self):
12151214 self .startPos = self ._selected_playlist_id - int ((self .maxY - 2 ) / 2 )
12161215
12171216 def keypress (self , char ):
1217+ """ Return restlt from playlist selection window
1218+
1219+ Results are:
1220+ -1, '' - Continue in window
1221+ 0, station title - selected station title (for config window)
1222+ 0, station path - selected station path (for paste window)
1223+ 1, '' - Cancel
1224+ """
12181225 if self ._select_playlist_error == - 1 or \
12191226 self ._select_playlist_error == 0 :
12201227 self ._error_win = None
0 commit comments