Skip to content

Commit 04243ba

Browse files
committed
Config Window search is ready - cursor placement is a bit off
1 parent 8af7270 commit 04243ba

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

pyradio/config_window.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,10 @@ def selection(self, val):
316316
self.__selection = val
317317
#self.refresh_config_win()
318318

319+
def set_selection(self, sel):
320+
self.selection = sel
321+
self._put_cursor(0)
322+
319323
def init_config_win(self):
320324
self._win = None
321325
self.maxY, self.maxX = self.__parent.getmaxyx()

pyradio/radio.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -753,7 +753,6 @@ def __init__(self, pyradio_config,
753753
self.search_main_window_modes = (
754754
self.ws.SEARCH_NORMAL_MODE,
755755
self.ws.SEARCH_PLAYLIST_MODE,
756-
self.ws.CONFIG_SEARCH_MODE
757756
)
758757

759758
''' volume functions '''
@@ -5058,14 +5057,14 @@ def _apply_search_result(self, ret, reapply=False):
50585057
def _apply_main_windows(ret):
50595058
self.setStation(ret)
50605059
self._put_selection_in_the_middle(force=True)
5060+
logger.error(f'{self.ws.operation_mode = }')
50615061
if reapply:
50625062
if self.ws.operation_mode in \
50635063
[self._mode_to_search[x] for x in self._mode_to_search]:
50645064
_apply_main_windows(ret)
50655065
elif self.ws.operation_mode == self.ws.THEME_MODE:
50665066
self._theme_selector.set_theme(self._theme_selector._themes[ret])
5067-
elif self.ws.operation_mode in (self.ws.SELECT_PLAYLIST_MODE,
5068-
self.ws.PASTE_MODE):
5067+
elif self.ws.operation_mode in (self.ws.SELECT_PLAYLIST_MODE, self.ws.PASTE_MODE):
50695068
self._playlist_select_win.setPlaylistById(ret, adjust=True)
50705069
elif self.ws.operation_mode == self.ws.SELECT_STATION_MODE:
50715070
self._station_select_win.setPlaylistById(ret, adjust=True)
@@ -5075,14 +5074,15 @@ def _apply_main_windows(ret):
50755074
self._schedule_playlist_select_win.setPlaylistById(ret, adjust=True)
50765075
elif self.ws.operation_mode == self.ws.SCHEDULE_STATION_SEARCH_MODE:
50775076
self._schedule_station_select_win.setPlaylistById(ret, adjust=True)
5077+
elif self.ws.operation_mode in (self.ws.CONFIG_MODE, self.ws.CONFIG_SEARCH_MODE):
5078+
self._config_win.set_selection(ret)
50785079
self.refreshBody()
50795080
else:
50805081
if self.ws.operation_mode in self.search_main_window_modes:
50815082
_apply_main_windows(ret)
50825083
elif self.ws.previous_operation_mode == self.ws.THEME_MODE:
50835084
self._theme_selector.set_theme(self._theme_selector._themes[ret])
5084-
elif self.ws.previous_operation_mode in (self.ws.SELECT_PLAYLIST_MODE,
5085-
self.ws.PASTE_MODE):
5085+
elif self.ws.previous_operation_mode in (self.ws.SELECT_PLAYLIST_MODE, self.ws.PASTE_MODE):
50865086
self._playlist_select_win.setPlaylistById(ret, adjust=True)
50875087
elif self.ws.previous_operation_mode == self.ws.SELECT_STATION_MODE:
50885088
self._station_select_win.setPlaylistById(ret, adjust=True)
@@ -5092,6 +5092,8 @@ def _apply_main_windows(ret):
50925092
self._schedule_playlist_select_win.setPlaylistById(ret, adjust=True)
50935093
elif self.ws.operation_mode == self.ws.SCHEDULE_STATION_SEARCH_MODE:
50945094
self._schedule_station_select_win.setPlaylistById(ret, adjust=True)
5095+
elif self.ws.operation_mode in (self.ws.CONFIG_MODE, self.ws.CONFIG_SEARCH_MODE):
5096+
self._config_win.set_selection(ret)
50955097
self.ws.close_window()
50965098
self.refreshBody()
50975099

@@ -8816,7 +8818,11 @@ def keypress(self, char):
88168818
elif self.ws.operation_mode == self.ws.SCHEDULE_STATION_SELECT_MODE:
88178819
self._search_list = self._schedule_station_select_win._items
88188820
sel = self._schedule_station_select_win.selection + 1
8821+
elif self.ws.operation_mode == self.ws.CONFIG_MODE:
8822+
self._search_list = list(self._config_win._config_options.values())
8823+
sel = self._config_win.selection + 1
88198824

8825+
logger.error(f'{self._search_list = }')
88208826
if self.search.string:
88218827
if sel == len(self._search_list):
88228828
sel = 0
@@ -8864,6 +8870,9 @@ def keypress(self, char):
88648870
elif self.ws.operation_mode == self.ws.SCHEDULE_STATION_SELECT_MODE:
88658871
self._search_list = self._schedule_station_select_win._items
88668872
sel = self._schedule_station_select_win.selection + 1
8873+
elif self.ws.operation_mode == self.ws.CONFIG_MODE:
8874+
self._search_list = list(self._config_win._config_options.values())
8875+
sel = self._config_win.selection - 1
88678876

88688877
if self.search.string:
88698878
if sel < 0:
@@ -8886,6 +8895,7 @@ def keypress(self, char):
88868895
[self._search_modes[x] for x in self._search_modes]:
88878896
''' serve search results '''
88888897
ret = self.search.keypress(self.search._edit_win, char)
8898+
logger.error(f'{self.ws.operation_mode = }')
88898899
if ret == 0:
88908900
if self.ws.operation_mode in self.search_main_window_modes:
88918901
self._search_list = self.stations
@@ -8911,6 +8921,10 @@ def keypress(self, char):
89118921
elif self.ws.previous_operation_mode == self.ws.SCHEDULE_STATION_SELECT_MODE:
89128922
self._search_list = self._schedule_station_select_win._items
89138923
sel = self._schedule_station_select_win.selection + 1
8924+
elif self.ws.operation_mode in (self.ws.CONFIG_MODE, self.ws.CONFIG_SEARCH_MODE):
8925+
self._search_list = list(self._config_win._config_options.values())
8926+
sel = self._config_win.selection + 1
8927+
logger.error(f'{self._search_list = }')
89148928

89158929
''' perform search '''
89168930
if sel == len(self._search_list):

0 commit comments

Comments
 (0)