@@ -1529,6 +1529,9 @@ def read_config(self):
1529
1529
except :
1530
1530
if logger .isEnabledFor (logging .ERROR ):
1531
1531
logger .error ('RadioBrowser: error inserting serch item id {}' .format (n ))
1532
+ if 'limit' in self .terms [- 1 ]['post_data' ].keys ():
1533
+ if self .terms [- 1 ]['post_data' ]['limit' ] == str (self .limit ):
1534
+ self .terms [- 1 ]['post_data' ].pop ('limit' )
1532
1535
else :
1533
1536
if logger .isEnabledFor (logging .DEBUG ):
1534
1537
logger .debug ('RadioBrowser: no search terms found, reverting to defaults' )
@@ -2289,6 +2292,8 @@ class RadioBrowserSearchWindow(object):
2289
2292
2290
2293
_global_functions = {}
2291
2294
2295
+ _backslash_pressed = False
2296
+
2292
2297
def __init__ (self ,
2293
2298
parent ,
2294
2299
config ,
@@ -2502,6 +2507,8 @@ def _widgets_to_search_term(self):
2502
2507
''' get limit (term)'''
2503
2508
if self ._widgets [- self .NUMBER_OF_WIDGETS_AFTER_SEARCH_SECTION ].value != self ._default_limit :
2504
2509
ret ['post_data' ]['limit' ] = str (self ._widgets [- self .NUMBER_OF_WIDGETS_AFTER_SEARCH_SECTION ].value )
2510
+ # else:
2511
+ # ret['post_data']['limit'] = str(self._default_limit)
2505
2512
2506
2513
''' get order '''
2507
2514
self ._order_to_term (ret )
@@ -2917,28 +2924,28 @@ def _get_search_term_index(self, new_search_term):
2917
2924
''' search for a search term in history
2918
2925
2919
2926
if found return True, index
2920
- if not found return False, len(self._history) - 1
2921
- and append the search term in the history
2927
+ if not found return False, len(self._history) - 1
2928
+ and append the search term in the history
2922
2929
'''
2923
2930
found = False
2924
2931
for a_search_term_index , a_search_term in enumerate (self ._history ):
2925
2932
if new_search_term == a_search_term :
2926
2933
# self._history_id = self._selected_history_id
2927
- index = a_search_term_index
2934
+ ret_index = a_search_term_index
2928
2935
found = True
2929
2936
if logger .isEnabledFor (logging .DEBUG ):
2930
- logger .debug ('New search term already in history, id = {}' .format (self . _selected_history_id ))
2937
+ logger .debug ('New search term already in history, id = {}' .format (ret_index ))
2931
2938
break
2932
2939
2933
2940
if not found :
2934
2941
if logger .isEnabledFor (logging .DEBUG ):
2935
2942
logger .debug ('Adding new search term to history, id = {}' .format (len (self ._history )))
2936
2943
self ._history .append (new_search_term )
2937
2944
# self._history_id = self._selected_history_id = len(self._history) - 1
2938
- index = len (self ._history ) - 1
2945
+ ret_index = len (self ._history ) - 1
2939
2946
self ._cnf .dirty = True
2940
2947
2941
- return found , index
2948
+ return found , ret_index
2942
2949
2943
2950
def _goto_first_history_item (self ):
2944
2951
self ._handle_new_or_existing_search_term ()
@@ -2971,6 +2978,7 @@ def _jump_history_down(self):
2971
2978
def _ctrl_n (self ):
2972
2979
''' ^N - Next history item '''
2973
2980
cur_history_id = self ._selected_history_id
2981
+ logger .error ('cur_history_id = {}' .format (cur_history_id ))
2974
2982
self ._handle_new_or_existing_search_term ()
2975
2983
if abs (self ._selected_history_id - cur_history_id ) > 1 :
2976
2984
self ._selected_history_id = cur_history_id
@@ -3055,29 +3063,36 @@ def keypress(self, char):
3055
3063
return - 1
3056
3064
3057
3065
if self ._too_small :
3066
+ self ._backslash_pressed = False
3058
3067
return 1
3059
3068
3060
3069
class_name = type (self ._widgets [self ._focus ]).__name__
3061
3070
3062
3071
if char == ord ('0' ) and \
3063
3072
type (self ._widgets [self ._focus ]).__name__ != 'SimpleCursesLineEdit' :
3064
3073
self ._goto_first_history_item ()
3074
+ self ._backslash_pressed = False
3065
3075
3066
3076
elif char == ord ('$' ) and \
3067
3077
type (self ._widgets [self ._focus ]).__name__ != 'SimpleCursesLineEdit' :
3068
3078
self ._goto_last_history_item ()
3079
+ self ._backslash_pressed = False
3069
3080
3070
3081
elif char in (curses .KEY_PPAGE , ) and self ._focus != len (self ._widgets ) - 3 :
3071
3082
self ._jump_history_up ()
3083
+ self ._backslash_pressed = False
3072
3084
3073
3085
elif char in (curses .KEY_NPAGE , ) and self ._focus != len (self ._widgets ) - 3 :
3074
3086
self ._jump_history_down ()
3087
+ self ._backslash_pressed = False
3075
3088
3076
3089
elif char in (ord ('\t ' ), 9 ):
3077
3090
self ._focus_next ()
3091
+ self ._backslash_pressed = False
3078
3092
3079
3093
elif char in (curses .KEY_BTAB , ):
3080
3094
self ._focus_previous ()
3095
+ self ._backslash_pressed = False
3081
3096
3082
3097
elif char in (ord (' ' ), curses .KEY_ENTER , ord ('\n ' ),
3083
3098
ord ('\r ' )) and self ._focus == len (self ._widgets ) - 1 :
@@ -3087,39 +3102,47 @@ def keypress(self, char):
3087
3102
elif char in (ord (' ' ), curses .KEY_ENTER , ord ('\n ' ),
3088
3103
ord ('\r ' )) and self ._focus == len (self ._widgets ) - 2 :
3089
3104
''' enter on ok button '''
3105
+ self ._backslash_pressed = False
3090
3106
ret = self ._handle_new_or_existing_search_term ()
3091
3107
return 0 if ret == 1 else ret
3092
3108
3093
3109
elif char in (curses .ascii .SO , ):
3094
3110
''' ^N - Next history item '''
3095
3111
self ._ctrl_n ()
3112
+ self ._backslash_pressed = False
3096
3113
3097
3114
elif char in (curses .ascii .DLE , ):
3098
3115
''' ^P - Previous history item '''
3099
3116
self ._ctrl_p ()
3117
+ self ._backslash_pressed = False
3100
3118
3101
3119
# elif char in (curses.ascii.ETB, ):
3102
3120
elif char in (curses .ascii .ENQ , ):
3103
3121
''' ^E - Save search history '''
3122
+ self ._backslash_pressed = False
3104
3123
self ._handle_new_or_existing_search_term ()
3105
3124
''' Save search history '''
3106
3125
return 5
3107
3126
3108
3127
elif char in (curses .ascii .EM , ):
3109
3128
''' ^Y - Add history item '''
3110
3129
self ._handle_new_or_existing_search_term ()
3130
+ self ._backslash_pressed = False
3111
3131
3112
3132
elif char in (curses .ascii .CAN , ):
3113
3133
''' ^X - Delete history item '''
3114
3134
self ._ctrl_x ()
3135
+ self ._backslash_pressed = False
3115
3136
3116
3137
elif char in (curses .ascii .STX , ):
3117
3138
''' ^B - Set default item '''
3118
3139
self ._ctrl_b ()
3140
+ self ._backslash_pressed = False
3119
3141
3120
3142
elif char in (curses .ascii .ACK , ):
3121
3143
''' ^F - Go to template (item 0) '''
3122
3144
self ._ctrl_f ()
3145
+ self ._backslash_pressed = False
3123
3146
3124
3147
else :
3125
3148
if class_name == 'SimpleCursesWidgetColumns' :
@@ -3130,8 +3153,10 @@ def keypress(self, char):
3130
3153
elif ret == 2 :
3131
3154
# cursor moved
3132
3155
self ._win .refresh ()
3156
+ self ._backslash_pressed = False
3133
3157
3134
3158
elif self ._focus in self ._checkbox_to_enable_widgets :
3159
+ self ._backslash_pressed = False
3135
3160
ret = self ._widgets [self ._focus ].keypress (char )
3136
3161
if not ret :
3137
3162
tp = list (self ._checkbox_to_enable_widgets )
@@ -3143,17 +3168,37 @@ def keypress(self, char):
3143
3168
return 1
3144
3169
3145
3170
elif class_name == 'SimpleCursesCheckBox' :
3171
+ self ._backslash_pressed = False
3146
3172
ret = self ._widgets [self ._focus ].keypress (char )
3147
3173
if not ret :
3148
3174
return 1
3149
3175
3150
3176
elif class_name == 'SimpleCursesCounter' :
3177
+ self ._backslash_pressed = False
3151
3178
ret = self ._widgets [self ._focus ].keypress (char )
3152
3179
if ret == 0 :
3153
3180
self ._win .refresh ()
3154
3181
return 1
3155
3182
3156
3183
elif class_name == 'SimpleCursesLineEdit' :
3184
+ if char == ord ('\\ ' ):
3185
+ self ._backslash_pressed = True
3186
+ # return 1
3187
+
3188
+ if self ._backslash_pressed :
3189
+ if char in self ._global_functions .keys ():
3190
+ self ._backslash_pressed = False
3191
+ self ._global_functions [char ]()
3192
+ return 1
3193
+ elif char == ord ('0' ):
3194
+ self ._backslash_pressed = False
3195
+ self ._goto_first_history_item ()
3196
+ return 1
3197
+ elif char == ord ('$' ):
3198
+ self ._backslash_pressed = False
3199
+ self ._goto_last_history_item ()
3200
+ return 1
3201
+
3157
3202
ret = self ._widgets [self ._focus ].keypress (self ._win , char )
3158
3203
if ret == - 1 :
3159
3204
# Cancel
@@ -3164,6 +3209,7 @@ def keypress(self, char):
3164
3209
elif ret < 2 :
3165
3210
return 1
3166
3211
3212
+ self ._backslash_pressed = False
3167
3213
if char in (ord ('s' ), ):
3168
3214
''' prerform search '''
3169
3215
ret = self ._handle_new_or_existing_search_term ()
@@ -3243,7 +3289,7 @@ def keypress(self, char):
3243
3289
return 1
3244
3290
3245
3291
def _handle_new_or_existing_search_term (self ):
3246
- ''' read alla widgets and create a search term
3292
+ ''' read all widgets and create a search term
3247
3293
if it does not exist add it to history
3248
3294
'''
3249
3295
test_search_term = self ._widgets_to_search_term ()
0 commit comments