Added new Mac Control Panel option to control accessing the file_types parm in Browse and popup_get_file. Also removed the previous attempt to fix the Linux "jumping window" problem.
This commit is contained in:
parent
02fb5e7341
commit
6267f27f5b
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
version = __version__ = "4.60.0.2 Unreleased"
|
version = __version__ = "4.60.0.3 Unreleased"
|
||||||
|
|
||||||
_change_log = """
|
_change_log = """
|
||||||
Changelog since 4.60.0 released to PyPI on 8-May-2022
|
Changelog since 4.60.0 released to PyPI on 8-May-2022
|
||||||
|
@ -10,7 +10,11 @@ _change_log = """
|
||||||
Fills Mac, Windows and Linux with details
|
Fills Mac, Windows and Linux with details
|
||||||
4.60.0.2
|
4.60.0.2
|
||||||
Fix for the "jumping window problem on Linux". Major credit to Chr0nic for his amazing "stick with it" work on this problem!
|
Fix for the "jumping window problem on Linux". Major credit to Chr0nic for his amazing "stick with it" work on this problem!
|
||||||
|
4.60.0.3
|
||||||
|
Removed the previous fix attempt for jumping window on linux
|
||||||
|
Added ability for Mac users to specify file_type in Browse and popup_get_file
|
||||||
|
This feature must be ENABLED by the user in the Mac control panel that can be found in the PySimpleGUI Global Settings
|
||||||
|
The default is this feature is OFF
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = version.split()[0] # For PEP 396 and PEP 345
|
__version__ = version.split()[0] # For PEP 396 and PEP 345
|
||||||
|
@ -4784,7 +4788,10 @@ class Button(Element):
|
||||||
should_submit_window = False
|
should_submit_window = False
|
||||||
elif self.BType == BUTTON_TYPE_BROWSE_FILE:
|
elif self.BType == BUTTON_TYPE_BROWSE_FILE:
|
||||||
if running_mac():
|
if running_mac():
|
||||||
file_name = tk.filedialog.askopenfilename(initialdir=self.InitialFolder) # show the 'get file' dialog box
|
if _mac_allow_filetypes():
|
||||||
|
file_name = tk.filedialog.askopenfilename(initialdir=self.InitialFolder, filetypes=filetypes) # show the 'get file' dialog box
|
||||||
|
else:
|
||||||
|
file_name = tk.filedialog.askopenfilename(initialdir=self.InitialFolder) # show the 'get file' dialog box
|
||||||
else:
|
else:
|
||||||
file_name = tk.filedialog.askopenfilename(filetypes=filetypes, initialdir=self.InitialFolder, parent=self.ParentForm.TKroot) # show the 'get file' dialog box
|
file_name = tk.filedialog.askopenfilename(filetypes=filetypes, initialdir=self.InitialFolder, parent=self.ParentForm.TKroot) # show the 'get file' dialog box
|
||||||
|
|
||||||
|
@ -4800,7 +4807,10 @@ class Button(Element):
|
||||||
self.TKStringVar.set(color)
|
self.TKStringVar.set(color)
|
||||||
elif self.BType == BUTTON_TYPE_BROWSE_FILES:
|
elif self.BType == BUTTON_TYPE_BROWSE_FILES:
|
||||||
if running_mac():
|
if running_mac():
|
||||||
file_name = tk.filedialog.askopenfilenames(initialdir=self.InitialFolder)
|
if _mac_allow_filetypes():
|
||||||
|
file_name = tk.filedialog.askopenfilenames(filetypes=filetypes, initialdir=self.InitialFolder)
|
||||||
|
else:
|
||||||
|
file_name = tk.filedialog.askopenfilenames(initialdir=self.InitialFolder)
|
||||||
else:
|
else:
|
||||||
file_name = tk.filedialog.askopenfilenames(filetypes=filetypes, initialdir=self.InitialFolder, parent=self.ParentForm.TKroot)
|
file_name = tk.filedialog.askopenfilenames(filetypes=filetypes, initialdir=self.InitialFolder, parent=self.ParentForm.TKroot)
|
||||||
|
|
||||||
|
@ -4813,7 +4823,10 @@ class Button(Element):
|
||||||
elif self.BType == BUTTON_TYPE_SAVEAS_FILE:
|
elif self.BType == BUTTON_TYPE_SAVEAS_FILE:
|
||||||
# show the 'get file' dialog box
|
# show the 'get file' dialog box
|
||||||
if running_mac():
|
if running_mac():
|
||||||
file_name = tk.filedialog.asksaveasfilename(defaultextension=self.DefaultExtension, initialdir=self.InitialFolder)
|
if _mac_allow_filetypes():
|
||||||
|
file_name = tk.filedialog.asksaveasfilename(filetypes=filetypes, defaultextension=self.DefaultExtension, initialdir=self.InitialFolder)
|
||||||
|
else:
|
||||||
|
file_name = tk.filedialog.asksaveasfilename(defaultextension=self.DefaultExtension, initialdir=self.InitialFolder)
|
||||||
else:
|
else:
|
||||||
file_name = tk.filedialog.asksaveasfilename(filetypes=filetypes, defaultextension=self.DefaultExtension, initialdir=self.InitialFolder, parent=self.ParentForm.TKroot)
|
file_name = tk.filedialog.asksaveasfilename(filetypes=filetypes, defaultextension=self.DefaultExtension, initialdir=self.InitialFolder, parent=self.ParentForm.TKroot)
|
||||||
|
|
||||||
|
@ -16825,8 +16838,8 @@ def StartupTK(window):
|
||||||
(running_mac() and not window.NoTitleBar) or \
|
(running_mac() and not window.NoTitleBar) or \
|
||||||
(running_mac() and window.NoTitleBar and not _mac_should_apply_notitlebar_patch()):
|
(running_mac() and window.NoTitleBar and not _mac_should_apply_notitlebar_patch()):
|
||||||
|
|
||||||
if running_linux(): # a fix for the "jumping window" problem introduced by the Linux Windowing manager in 2022
|
# if running_linux(): # a fix for the "jumping window" problem introduced by the Linux Windowing manager in 2022
|
||||||
root.wait_visibility(root)
|
# root.wait_visibility(root)
|
||||||
root.attributes('-alpha', 0) # hide window while building it. makes for smoother 'paint'
|
root.attributes('-alpha', 0) # hide window while building it. makes for smoother 'paint'
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print('*** Exception setting alpha channel to zero while creating window ***', e)
|
print('*** Exception setting alpha channel to zero while creating window ***', e)
|
||||||
|
@ -20372,9 +20385,15 @@ def popup_get_file(message, title=None, default_path='', default_extension='', s
|
||||||
# for Macs, setting parent=None fixes a warning problem.
|
# for Macs, setting parent=None fixes a warning problem.
|
||||||
if save_as:
|
if save_as:
|
||||||
if running_mac():
|
if running_mac():
|
||||||
filename = tk.filedialog.asksaveasfilename(initialdir=initial_folder,
|
if _mac_allow_filetypes():
|
||||||
initialfile=default_path,
|
filename = tk.filedialog.asksaveasfilename(filetypes=file_types,
|
||||||
defaultextension=default_extension) # show the 'get file' dialog box
|
initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
|
defaultextension=default_extension) # show the 'get file' dialog box
|
||||||
|
else:
|
||||||
|
filename = tk.filedialog.asksaveasfilename(initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
|
defaultextension=default_extension) # show the 'get file' dialog box
|
||||||
else:
|
else:
|
||||||
filename = tk.filedialog.asksaveasfilename(filetypes=file_types,
|
filename = tk.filedialog.asksaveasfilename(filetypes=file_types,
|
||||||
initialdir=initial_folder,
|
initialdir=initial_folder,
|
||||||
|
@ -20383,20 +20402,32 @@ def popup_get_file(message, title=None, default_path='', default_extension='', s
|
||||||
defaultextension=default_extension) # show the 'get file' dialog box
|
defaultextension=default_extension) # show the 'get file' dialog box
|
||||||
elif multiple_files:
|
elif multiple_files:
|
||||||
if running_mac():
|
if running_mac():
|
||||||
filename = tk.filedialog.askopenfilenames(initialdir=initial_folder,
|
if _mac_allow_filetypes():
|
||||||
initialfile=default_path,
|
filename = tk.filedialog.askopenfilenames(filetypes=file_types,
|
||||||
defaultextension=default_extension) # show the 'get file' dialog box
|
initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
|
defaultextension=default_extension) # show the 'get file' dialog box
|
||||||
|
else:
|
||||||
|
filename = tk.filedialog.askopenfilenames(initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
|
defaultextension=default_extension) # show the 'get file' dialog box
|
||||||
else:
|
else:
|
||||||
filename = tk.filedialog.askopenfilenames(filetypes=file_types,
|
filename = tk.filedialog.askopenfilenames(filetypes=file_types,
|
||||||
initialdir=initial_folder,
|
initialdir=initial_folder,
|
||||||
initialfile=default_path,
|
initialfile=default_path,
|
||||||
parent=root,
|
parent=root,
|
||||||
defaultextension=default_extension) # show the 'get file' dialog box
|
defaultextension=default_extension) # show the 'get file' dialog box
|
||||||
else:
|
else:
|
||||||
if running_mac():
|
if running_mac():
|
||||||
filename = tk.filedialog.askopenfilename(initialdir=initial_folder,
|
if _mac_allow_filetypes():
|
||||||
initialfile=default_path,
|
filename = tk.filedialog.askopenfilename(filetypes=file_types,
|
||||||
defaultextension=default_extension) # show the 'get files' dialog box
|
initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
|
defaultextension=default_extension) # show the 'get files' dialog box
|
||||||
|
else:
|
||||||
|
filename = tk.filedialog.askopenfilename(initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
|
defaultextension=default_extension) # show the 'get files' dialog box
|
||||||
else:
|
else:
|
||||||
filename = tk.filedialog.askopenfilename(filetypes=file_types,
|
filename = tk.filedialog.askopenfilename(filetypes=file_types,
|
||||||
initialdir=initial_folder,
|
initialdir=initial_folder,
|
||||||
|
@ -22263,7 +22294,8 @@ available to make this process more atuomatic.
|
||||||
# Dictionary of Mac Patches. Used to find the key in the global settings and the default value
|
# Dictionary of Mac Patches. Used to find the key in the global settings and the default value
|
||||||
MAC_PATCH_DICT = {'Enable No Titlebar Patch' : ('-mac feature enable no titlebar patch-', False),
|
MAC_PATCH_DICT = {'Enable No Titlebar Patch' : ('-mac feature enable no titlebar patch-', False),
|
||||||
'Disable Modal Windows' : ('-mac feature disable modal windows-', True),
|
'Disable Modal Windows' : ('-mac feature disable modal windows-', True),
|
||||||
'Disable Grab Anywhere with Titlebar' : ('-mac feature disable grab anywhere with titlebar-', True)}
|
'Disable Grab Anywhere with Titlebar' : ('-mac feature disable grab anywhere with titlebar-', True),
|
||||||
|
'Enable file_types parm in BrowseFile(s) and popop_get_file (use with caution)' : ('-mac feature enable file_types-', False)}
|
||||||
|
|
||||||
def _read_mac_global_settings():
|
def _read_mac_global_settings():
|
||||||
"""
|
"""
|
||||||
|
@ -22304,6 +22336,22 @@ def _mac_should_apply_notitlebar_patch():
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def _mac_allow_filetypes():
|
||||||
|
"""
|
||||||
|
If running a Mac, then will return True if user has indicated so in the PySimpleGUI Global Settings Window
|
||||||
|
|
||||||
|
:return: True if should file_types parm to be used on the Mac
|
||||||
|
:rtype: (bool)
|
||||||
|
"""
|
||||||
|
|
||||||
|
if not running_mac():
|
||||||
|
return False
|
||||||
|
|
||||||
|
enable_filetypes = pysimplegui_user_settings.get('-mac feature enable file_types-', False)
|
||||||
|
|
||||||
|
return enable_filetypes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def main_mac_feature_control():
|
def main_mac_feature_control():
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue