8282EG_SWAP_EVENT_NAME : str = "--swap_event_name--"
8383
8484DEFAULT_PADX = 1 if utils .is_win () else 3
85+ FILES_DELIMITER = (
86+ "|" if utils .is_win () else ":"
87+ ) # delimiter for multiple files, used in popup_get_file with multiple_files=True
88+
8589
8690# --- window icon ---
8791DEFAULT_WINDOW_ICON = icon_default .ICON
9498 "y2" : 22 + 6 ,
9599} # for macOS titlebar
96100
97-
98101# ------------------------------------------------------------------------------
99102# Widget wrapper
100103# ------------------------------------------------------------------------------
@@ -4688,7 +4691,7 @@ def __init__(
46884691 save_as : bool = False ,
46894692 enable_events : bool = False , # enable changing events
46904693 # other
4691- files_delimiter : Optional [str ] = "|" ,
4694+ files_delimiter : Optional [str ] = FILES_DELIMITER ,
46924695 metadata : Union [dict [str , Any ], None ] = None ,
46934696 ** kw ,
46944697 ) -> None :
@@ -4752,33 +4755,23 @@ def show_dialog(self, *args) -> Union[Any, None]:
47524755 init_dir = self ._get_initial_directory ()
47534756
47544757 # popup
4755- result = dialogs .popup_get_file (
4758+ popup_result = dialogs .popup_get_file (
47564759 title = self .title ,
47574760 initial_folder = init_dir ,
47584761 save_as = self .save_as ,
47594762 file_types = self .file_types ,
47604763 multiple_files = self .multiple_files ,
47614764 files_delimiter = self .files_delimiter ,
47624765 )
4763- target_value = result
4764- if isinstance (target_value , (list , tuple )):
4765- delimiter = self .files_delimiter
4766- if delimiter is not None :
4767- target_value = delimiter .join (str (item ) for item in target_value )
4768- else :
4769- # Keep popup_get_file return value unchanged (tuple/list) while
4770- # updating target widgets/events with a readable string.
4771- fallback_delimiter = " "
4772- target_value = fallback_delimiter .join (str (item ) for item in target_value )
4766+ target_value = popup_result if popup_result is not None else ""
47734767 if (target is not None ) and (target_value is not None ) and (target_value != "" ):
47744768 target .update (target_value ) # type: ignore [call-arg]
47754769 if self .enable_events :
47764770 if (self .window is not None ) and (self .key is not None ):
47774771 self .window .dispatch_event (
47784772 self .key , {"event" : target_value , "event_type" : "change" }
47794773 )
4780-
4781- return result
4774+ return popup_result
47824775
47834776 def set_text (self , text : str ) -> None :
47844777 """Set the text of the button."""
@@ -4802,7 +4795,7 @@ def __init__(
48024795 target_key : Union [str , None ] = None ,
48034796 title : str = "" ,
48044797 file_types : Optional [FileTypeList ] = None ,
4805- files_delimiter : Optional [str ] = "|" ,
4798+ files_delimiter : Optional [str ] = FILES_DELIMITER ,
48064799 enable_events : bool = False , # enable changing events
48074800 # other
48084801 metadata : Union [dict [str , Any ], None ] = None ,
0 commit comments