Merge pull request #4400 from PySimpleGUI/Dev-latest
Focus the filter input field when starting. Shows python interpreter …
This commit is contained in:
		
						commit
						9672e577e5
					
				
					 1 changed files with 32 additions and 7 deletions
				
			
		|  | @ -381,7 +381,7 @@ def settings_window(): | ||||||
|                [sg.T('Theme', font='_ 16')], |                [sg.T('Theme', font='_ 16')], | ||||||
|               [sg.T('Leave blank to use global default'), sg.T(global_theme)], |               [sg.T('Leave blank to use global default'), sg.T(global_theme)], | ||||||
|               [sg.Combo(['']+sg.theme_list(),sg.user_settings_get_entry('-theme-', ''), readonly=True,  k='-THEME-')], |               [sg.Combo(['']+sg.theme_list(),sg.user_settings_get_entry('-theme-', ''), readonly=True,  k='-THEME-')], | ||||||
|               [sg.T('Double-click a File Will:'), sg.R('Run', 2, sg.user_settings_get_entry('-dclick runs-', False), k='-DCLICK RUNS-'), sg.R('Edit', 2,  sg.user_settings_get_entry('-dclick edits-', False), k='-DCLICK EDITS-'), sg.R('Nohthing', 2,  sg.user_settings_get_entry('-dclick none-', False), k='-DCLICK NONE-')], |               [sg.T('Double-click a File Will:'), sg.R('Run', 2, sg.user_settings_get_entry('-dclick runs-', False), k='-DCLICK RUNS-'), sg.R('Edit', 2,  sg.user_settings_get_entry('-dclick edits-', False), k='-DCLICK EDITS-'), sg.R('Nothing', 2,  sg.user_settings_get_entry('-dclick none-', False), k='-DCLICK NONE-')], | ||||||
|               [sg.CB('Use Advanced Interface', default=advanced_mode() ,k='-ADVANCED MODE-')], |               [sg.CB('Use Advanced Interface', default=advanced_mode() ,k='-ADVANCED MODE-')], | ||||||
|               [sg.B('Ok', bind_return_key=True), sg.B('Cancel')], |               [sg.B('Ok', bind_return_key=True), sg.B('Cancel')], | ||||||
|               ] |               ] | ||||||
|  | @ -436,7 +436,7 @@ def make_window(): | ||||||
| 
 | 
 | ||||||
|     left_col = sg.Column([ |     left_col = sg.Column([ | ||||||
|         [sg.Listbox(values=get_file_list(), select_mode=sg.SELECT_MODE_EXTENDED, size=(50,20), bind_return_key=True, key='-DEMO LIST-')], |         [sg.Listbox(values=get_file_list(), select_mode=sg.SELECT_MODE_EXTENDED, size=(50,20), bind_return_key=True, key='-DEMO LIST-')], | ||||||
|         [sg.Text('Filter (F1):', tooltip=filter_tooltip), sg.Input(size=(25, 1), enable_events=True, key='-FILTER-', tooltip=filter_tooltip), |         [sg.Text('Filter (F1):', tooltip=filter_tooltip), sg.Input(size=(25, 1), focus=True, enable_events=True, key='-FILTER-', tooltip=filter_tooltip), | ||||||
|          sg.T(size=(15,1), k='-FILTER NUMBER-')], |          sg.T(size=(15,1), k='-FILTER NUMBER-')], | ||||||
|         [sg.Button('Run'), sg.B('Edit'), sg.B('Clear'), sg.B('Open Folder')], |         [sg.Button('Run'), sg.B('Edit'), sg.B('Clear'), sg.B('Open Folder')], | ||||||
|         [sg.Text('Find (F2):', tooltip=find_tooltip), sg.Input(size=(25, 1), enable_events=True, key='-FIND-', tooltip=find_tooltip), |         [sg.Text('Find (F2):', tooltip=find_tooltip), sg.Input(size=(25, 1), enable_events=True, key='-FIND-', tooltip=find_tooltip), | ||||||
|  | @ -447,10 +447,11 @@ def make_window(): | ||||||
|         [sg.Text('Find (F3):', tooltip=find_re_tooltip), sg.Input(size=(25, 1),key='-FIND RE-', tooltip=find_re_tooltip),sg.B('Find RE')]], k='-RE COL-')) |         [sg.Text('Find (F3):', tooltip=find_re_tooltip), sg.Input(size=(25, 1),key='-FIND RE-', tooltip=find_re_tooltip),sg.B('Find RE')]], k='-RE COL-')) | ||||||
| 
 | 
 | ||||||
|     right_col = [ |     right_col = [ | ||||||
|         [sg.Multiline(size=(70, 21), write_only=True, key=ML_KEY, reroute_stdout=True, echo_stdout_stderr=True)], |         [sg.Multiline(size=(70, 21), write_only=True, key=ML_KEY, reroute_stdout=True, echo_stdout_stderr=True, reroute_cprint=True)], | ||||||
|         [sg.Button('Edit Me (this program)'), sg.B('Settings'), sg.Button('Exit')], |         [sg.Button('Edit Me (this program)'), sg.B('Settings'), sg.Button('Exit')], | ||||||
|         [sg.T('PySimpleGUI ver ' + sg.version.split(' ')[0] + '  tkinter ver ' + sg.tclversion_detailed, font='Default 8', pad=(0,0))], |         [sg.T('PySimpleGUI ver ' + sg.version.split(' ')[0] + '  tkinter ver ' + sg.tclversion_detailed, font='Default 8', pad=(0,0))], | ||||||
|         [sg.T('Python ver ' + sys.version, font='Default 8', pad=(0,0))], |         [sg.T('Python ver ' + sys.version, font='Default 8', pad=(0,0))], | ||||||
|  |         [sg.T('Interpreter ' + execute_py_get_interpreter(), font='Default 8', pad=(0,0))], | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
|     options_at_bottom = sg.pin(sg.Column([[sg.CB('Verbose', enable_events=True, k='-VERBOSE-'), |     options_at_bottom = sg.pin(sg.Column([[sg.CB('Verbose', enable_events=True, k='-VERBOSE-'), | ||||||
|  | @ -466,13 +467,17 @@ def make_window(): | ||||||
| 
 | 
 | ||||||
|     layout = [[sg.Text('PySimpleGUI Demo Program & Project Browser', font='Any 20')], |     layout = [[sg.Text('PySimpleGUI Demo Program & Project Browser', font='Any 20')], | ||||||
|               [choose_folder_at_top], |               [choose_folder_at_top], | ||||||
|                   [sg.Column([[left_col],[ lef_col_find_re]], element_justification='l',  expand_x=True, expand_y=True), sg.Column(right_col, element_justification='c', expand_x=True, expand_y=True) ], |               # [sg.Column([[left_col],[ lef_col_find_re]], element_justification='l',  expand_x=True, expand_y=True), sg.Column(right_col, element_justification='c', expand_x=True, expand_y=True)], | ||||||
|  |               [sg.Pane([sg.Column([[left_col],[ lef_col_find_re]], element_justification='l',  expand_x=True, expand_y=True), sg.Column(right_col, element_justification='c', expand_x=True, expand_y=True) ], orientation='h', relief=sg.RELIEF_SUNKEN, k='-PANE-')], | ||||||
|               [options_at_bottom]] |               [options_at_bottom]] | ||||||
| 
 | 
 | ||||||
|     # --------------------------------- Create Window --------------------------------- |     # --------------------------------- Create Window --------------------------------- | ||||||
|     window = sg.Window('PSG Demo & Project Browser', layout, finalize=True, icon=icon, resizable=True) |     window = sg.Window('PSG Demo & Project Browser', layout, finalize=True, icon=icon, resizable=True, use_default_focus=False) | ||||||
|  |     window.set_min_size(window.size) | ||||||
|  | 
 | ||||||
|     window['-DEMO LIST-'].expand(True, True, True) |     window['-DEMO LIST-'].expand(True, True, True) | ||||||
|     window[ML_KEY].expand(True, True, True) |     window[ML_KEY].expand(True, True, True) | ||||||
|  |     window['-PANE-'].expand(True, True, True) | ||||||
| 
 | 
 | ||||||
|     window.bind('<F1>', '-FOCUS FILTER-') |     window.bind('<F1>', '-FOCUS FILTER-') | ||||||
|     window.bind('<F2>', '-FOCUS FIND-') |     window.bind('<F2>', '-FOCUS FIND-') | ||||||
|  | @ -482,7 +487,7 @@ def make_window(): | ||||||
|         window['-RE COL-'].update(visible=False) |         window['-RE COL-'].update(visible=False) | ||||||
|         window['-OPTIONS BOTTOM-'].update(visible=False) |         window['-OPTIONS BOTTOM-'].update(visible=False) | ||||||
| 
 | 
 | ||||||
|     sg.cprint_set_output_destination(window, ML_KEY) |     # sg.cprint_set_output_destination(window, ML_KEY) | ||||||
|     return window |     return window | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -502,6 +507,7 @@ def main(): | ||||||
|     file_list = get_file_list() |     file_list = get_file_list() | ||||||
|     window = make_window() |     window = make_window() | ||||||
|     window['-FILTER NUMBER-'].update(f'{len(file_list)} files') |     window['-FILTER NUMBER-'].update(f'{len(file_list)} files') | ||||||
|  | 
 | ||||||
|     counter = 0 |     counter = 0 | ||||||
|     while True: |     while True: | ||||||
|         event, values = window.read() |         event, values = window.read() | ||||||
|  | @ -522,7 +528,7 @@ def main(): | ||||||
|                 else: |                 else: | ||||||
|                     full_filename, line = get_file_list_dict()[file], 1 |                     full_filename, line = get_file_list_dict()[file], 1 | ||||||
|                 if line is not None: |                 if line is not None: | ||||||
|                     sg.cprint(f'Editing using {editor_program}', text_color='white', background_color='red', end='') |                     sg.cprint(f'Editing using {editor_program}', c='white on red', end='') | ||||||
|                     sg.cprint('') |                     sg.cprint('') | ||||||
|                     sg.cprint(f'{full_filename}', c='white on purple') |                     sg.cprint(f'{full_filename}', c='white on purple') | ||||||
|                     # if line != 1: |                     # if line != 1: | ||||||
|  | @ -790,12 +796,31 @@ def execute_command_subprocess_with_pipe_output(command, *args, wait=False, cwd= | ||||||
|     return sp |     return sp | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def execute_py_get_interpreter(): | ||||||
|  |     """ | ||||||
|  |     Returns the command that was specified in the global options that will be used to execute Python files | ||||||
|  |     when the execute_py_file function is called. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     :return: Full path to python interpreter or '' if nothing entered | ||||||
|  |     :rtype: (str) | ||||||
|  |     """ | ||||||
|  | 
 | ||||||
|  |     return sg.pysimplegui_user_settings.get('-python command-', '') | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| # Normally you want to use the PySimpleGUI version of these functions | # Normally you want to use the PySimpleGUI version of these functions | ||||||
| try: | try: | ||||||
|     execute_py_file = sg.execute_py_file |     execute_py_file = sg.execute_py_file | ||||||
| except: | except: | ||||||
|     execute_py_file = execute_py_file_with_pipe_output |     execute_py_file = execute_py_file_with_pipe_output | ||||||
| 
 | 
 | ||||||
|  | try: | ||||||
|  |     execute_py_get_interpreter = sg.execute_py_get_interpreter | ||||||
|  | except: | ||||||
|  |     execute_py_get_interpreter = execute_py_get_interpreter | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| try: | try: | ||||||
|     execute_command_subprocess = sg.execute_command_subprocess |     execute_command_subprocess = sg.execute_command_subprocess | ||||||
| except: | except: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue