Skip to content

Commit 49d7e69

Browse files
committed
- Localized window: fixing letters and buttons placement
- Fixing a bug which would fail to read profiles when saving the volume
1 parent 48a1615 commit 49d7e69

File tree

5 files changed

+37
-13
lines changed

5 files changed

+37
-13
lines changed

pyradio/common.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -976,10 +976,11 @@ def save_volume(self, player_name, profile_name, volume):
976976
return self.append_to_config(player_name, profile_name, 'volume=' + str(volume))
977977

978978
else:
979-
config_string = self._read_a_config_file(config_file)
979+
config_list = self._read_a_config_file(config_file)
980+
config_string = ''.join(config_list)
980981
# logger.error(f'{config_file = }')
981-
# logger.error(f'before remove {config_string = }')
982-
if '[' + profile_name + ']' in config_string:
982+
# logger.error(f'before remove {config_list = }')
983+
if any(line.strip() == '[' + profile_name + ']' for line in config_list):
983984
if logger.isEnabledFor(logging.DEBUG):
984985
logger.debug('[{}] profile found!\n\n'.format(profile_name))
985986
config_list = remove_consecutive_empty_lines(config_string.split('\n'))

pyradio/config_window.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4674,7 +4674,8 @@ def show(self, parent=None, reset=False):
46744674
color_focused=curses.color_pair(9),
46754675
color=curses.color_pair(4),
46764676
bracket_color=curses.color_pair(5),
4677-
parent=self._win
4677+
parent=self._win,
4678+
pad=2
46784679
)
46794680
self._h_buttons.calculate_buttons_position()
46804681
self._widgets[2], self._widgets[3] = self._h_buttons.buttons
@@ -4684,8 +4685,8 @@ def show(self, parent=None, reset=False):
46844685
self._b_ok.focused = self._b_cancel.focused = False
46854686
else:
46864687
self._h_buttons.calculate_buttons_position(parent=self._win)
4687-
46884688
self._win.refresh()
4689+
46894690
for i in range(len(self._widgets)):
46904691
try:
46914692
self._widgets[i].show(parent=self._parent)
@@ -4697,6 +4698,20 @@ def show(self, parent=None, reset=False):
46974698
pass
46984699
except AttributeError:
46994700
pass
4701+
# if parent_Y - (self._widgets[-1].Y + 1) > 5:
4702+
# logger.error('I can print help')
4703+
# Y = self._widgets[-1].Y + 2
4704+
# X = self._widgets[1].left_pad + 2
4705+
# self._win.addstr(Y, X, self._widgets[1].active_width * '─', curses.color_pair(12))
4706+
# self._win.addstr(Y, self._widgets[1].left_pad + int((self._widgets[1].active_width - len(' Help '))/2), ' Help ', curses.color_pair(4))
4707+
# Y += 1
4708+
# self._win.addstr(Y, X, 'asdasd ads asd as', curses.color_pair(5))
4709+
# self._win.refresh()
4710+
# for i in range(len(self._widgets)):
4711+
# try:
4712+
# self._widgets[i].show()
4713+
# except:
4714+
# pass
47004715

47014716
def _update_focus(self):
47024717
for i in range(len(self._widgets)):
@@ -4852,8 +4867,6 @@ def keypress(self, char):
48524867
if self.editing:
48534868
letter = get_kb_letter()
48544869
if letter:
4855-
if logger.isEnabledFor(logging.DEBUG):
4856-
logger.debug('setting letter "{}": "{}"'.format(self._widgets[1].selected_letter, letter))
48574870
self._widgets[1].set_letter(letter)
48584871
# self._files[self._widgets[0].selection][-1] = self._widgets[1].letters_dict
48594872
self._set_ok_enabled()

pyradio/keyboard.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,14 @@ def selection(self):
993993
def selection(self, value):
994994
self._selection = value
995995

996+
@property
997+
def left_pad(self):
998+
return self._left_pad
999+
1000+
@property
1001+
def active_width(self):
1002+
return self._num_letters_per_line * self._letter_width
1003+
9961004
def _show_editing(self):
9971005
if self.editing:
9981006
self._win.addstr(

pyradio/radio.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2305,8 +2305,8 @@ def run(self):
23052305
if letter:
23062306
# set_kb_letter(letter) # Save the decoded letter
23072307
# Call keypress for single-byte shortcuts
2308-
if logger.isEnabledFor(logging.DEBUG):
2309-
logger.debug('I have a letter!')
2308+
# if logger.isEnabledFor(logging.DEBUG):
2309+
# logger.debug('I have a letter!')
23102310
if len(input_queue) == 0: # Single-byte input
23112311
ret = self.keypress(c) # Handle shortcut
23122312
if ret == -1:
@@ -2315,8 +2315,8 @@ def run(self):
23152315
# Set remaining_keys based on input_queue length for multi-byte input
23162316
remaining_keys = len(input_queue)
23172317
else:
2318-
if logger.isEnabledFor(logging.DEBUG):
2319-
logger.debug('I do NOT have a letter!')
2318+
# if logger.isEnabledFor(logging.DEBUG):
2319+
# logger.debug('I do NOT have a letter!')
23202320
# Single-byte character or invalid input
23212321
ret = self.keypress(c) # Handle shortcut
23222322
if ret == -1:

pyradio/simple_curses_widgets.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3468,7 +3468,8 @@ def __init__(self, Y, captions,
34683468
bracket_color, constant_width=0,
34693469
parent = None,
34703470
focused=0,
3471-
left_or_right_margin = 2):
3471+
left_or_right_margin = 2,
3472+
pad = 0):
34723473
'''Initialize the wizard.
34733474
34743475
Parameters
@@ -3499,6 +3500,7 @@ def __init__(self, Y, captions,
34993500
'''
35003501

35013502
self._buttons = []
3503+
self._pad = pad
35023504
for n in captions:
35033505
self._buttons.append(SimpleCursesPushButton(
35043506
Y=Y, X=0,
@@ -3556,7 +3558,7 @@ def show(self, parent=None, orientation='center', show=True):
35563558
X = self._X
35573559
Y = self._Y + offY
35583560
for n in self._buttons:
3559-
n.mvwin(Y, X, show)
3561+
n.mvwin(Y, X + self._pad, show)
35603562
X += n.width + 2
35613563

35623564
def calculate_buttons_position(self, parent=None, orientation='center'):

0 commit comments

Comments
 (0)