@@ -674,9 +674,9 @@ def refresh_win(self, set_encoding=True):
674
674
curses .color_pair (4 ))
675
675
for i in range (1 , self .maxX - 1 ):
676
676
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 ))
678
678
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 ))
680
680
try :
681
681
self ._win .addch (self .maxY - 4 , 0 , '├' , curses .color_pair (3 ))
682
682
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
981
981
#self._include_registers = True
982
982
if self ._include_registers :
983
983
self ._title = ' Paste: Select target '
984
+ self ._playlist_in_editor = self ._selected_playlist
984
985
self .init_window ()
985
986
986
987
def __del__ (self ):
@@ -992,10 +993,6 @@ def init_window(self):
992
993
self .maxY = self ._num_of_items + 2
993
994
if self .maxY > self ._parent_maxY - 2 :
994
995
self .maxY = self ._parent_maxY - 2
995
- #elif self.maxY < 12:
996
- # self.maxY = 12
997
- #if self.maxY < 7:
998
- # self.maxY = 7
999
996
self ._calculate_width ()
1000
997
self ._win = None
1001
998
Y = int ((self ._parent_maxY - self .maxY ) / 2 ) + self ._parent_Y
@@ -1007,7 +1004,6 @@ def refresh_and_resize(self, parent_maxYX):
1007
1004
self ._parent_maxX = parent_maxYX [1 ]
1008
1005
self .init_window ()
1009
1006
self .refresh_win (resizing = True )
1010
- self ._resize ()
1011
1007
1012
1008
def _calculate_width (self ):
1013
1009
self .maxX = self ._max_len + 5 + len (str (self ._num_of_items ))
@@ -1018,15 +1014,16 @@ def _calculate_width(self):
1018
1014
self .maxX = self ._parent_maxX - 4
1019
1015
1020
1016
def refresh_win (self , resizing = False ):
1021
- """ set_encoding is False when resizing """
1022
- #self.init_window(set_encoding)
1023
1017
self ._win .bkgdset (' ' , curses .color_pair (3 ))
1024
1018
self ._win .erase ()
1025
1019
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 ),
1028
1022
self ._title ,
1029
- curses .color_pair (4 ))
1023
+ curses .color_pair (4 )
1024
+ )
1025
+ if resizing :
1026
+ self ._resize ()
1030
1027
self .refresh_selection (resizing )
1031
1028
1032
1029
def refresh_selection (self , resizing = False ):
@@ -1036,13 +1033,13 @@ def refresh_selection(self, resizing=False):
1036
1033
#logger.error('de i = {0}, startPos = {1}'.format(i, self.startPos))
1037
1034
if i + self .startPos < self ._num_of_items :
1038
1035
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 )
1042
1039
else :
1043
1040
break
1041
+ self ._win .refresh ()
1044
1042
if not resizing :
1045
- self ._win .refresh ()
1046
1043
if self ._select_playlist_error > - 2 :
1047
1044
self .print_select_playlist_error ()
1048
1045
@@ -1051,13 +1048,12 @@ def _resize(self):
1051
1048
self .startPos = 0
1052
1049
else :
1053
1050
self ._fix_startPos ()
1054
- self .refresh_selection ()
1055
1051
1056
1052
def _get_color (self , i ):
1057
1053
col = curses .color_pair (5 )
1058
1054
if self ._items [i + self .startPos ] == self ._orig_playlist :
1059
1055
if i + self .startPos == self ._selected_playlist_id :
1060
- col = curses .color_pair (9 )
1056
+ col = curses .color_pair (9 )
1061
1057
else :
1062
1058
col = curses .color_pair (4 )
1063
1059
elif i + self .startPos == self ._selected_playlist_id :
@@ -1066,12 +1062,13 @@ def _get_color(self, i):
1066
1062
1067
1063
def _format_line (self , i , pad ):
1068
1064
""" 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
+ )
1071
1069
return line , pad
1072
1070
1073
1071
def _read_items (self ):
1074
- to_del = - 1
1075
1072
self ._items = []
1076
1073
self ._items = glob .glob (path .join (self ._config_path , '*.csv' ))
1077
1074
if len (self ._items ) > 0 :
@@ -1088,20 +1085,22 @@ def _read_items(self):
1088
1085
return 0 , - 1
1089
1086
for i , an_item in enumerate (self ._items ):
1090
1087
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: ' )
1092
1089
self ._items [i ] = self ._items [i ].replace (self ._config_path + sep , '' )
1093
- if self ._items [i ] == self ._selected_playlist :
1094
- to_del = i
1095
1090
else :
1096
1091
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 """
1099
1100
for i , a_playlist in enumerate (self ._items ):
1100
1101
if a_playlist == self ._selected_playlist :
1101
1102
self ._selected_playlist_id = i
1102
1103
break
1103
- if to_del >= 0 :
1104
- del self ._items [to_del ]
1105
1104
self ._max_len = cjklen (max (self ._items , key = cjklen ))
1106
1105
self ._num_of_items = len (self ._items )
1107
1106
@@ -1144,7 +1143,7 @@ def _get_result(self):
1144
1143
ret = self ._items [self ._selected_playlist_id ].replace ('Register: ' , 'register_' )
1145
1144
ret = path .join (self ._config_path , '.registers' , ret + '.csv' )
1146
1145
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' )
1148
1147
if platform == 'win32' :
1149
1148
ret .replace ('.registers' , '_registers' )
1150
1149
return 0 , ret
@@ -1215,6 +1214,14 @@ def _fix_startPos(self):
1215
1214
self .startPos = self ._selected_playlist_id - int ((self .maxY - 2 ) / 2 )
1216
1215
1217
1216
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
+ """
1218
1225
if self ._select_playlist_error == - 1 or \
1219
1226
self ._select_playlist_error == 0 :
1220
1227
self ._error_win = None
0 commit comments