Skip to content

Commit

Permalink
Merge pull request #590 from kivy/matham-patch-1
Browse files Browse the repository at this point in the history
Some APIs are only available for open panels.
  • Loading branch information
matham authored Nov 4, 2020
2 parents e8ea752 + 90c210c commit a8ede9d
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions plyer/platforms/macosx/filechooser.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,23 +55,25 @@ def _handle_selection(selection):

def run(self):
panel = None
if self.mode in ("open", "dir"):
if self.mode in ("open", "dir", "dir_and_files"):
panel = NSOpenPanel.openPanel()
else:

panel.setCanChooseDirectories_(self.mode != "open")
panel.setCanChooseFiles_(self.mode != "dir")

if self.multiple:
panel.setAllowsMultipleSelection_(True)
elif self.mode == "save":
panel = NSSavePanel.savePanel()
else:
assert False, self.mode

panel.setCanCreateDirectories_(True)

panel.setCanChooseDirectories_(self.mode == "dir")
panel.setCanChooseFiles_(self.mode != "dir")
panel.setShowsHiddenFiles_(self.show_hidden)

if self.title:
panel.setTitle_(objc_str(self.title))

if self.mode != "save" and self.multiple:
panel.setAllowsMultipleSelection_(True)

# Mac OS X does not support wildcards unlike the other platforms.
# This tries to convert wildcards to "extensions" when possible,
# ans sets the panel to also allow other file types, just to be safe.
Expand All @@ -88,6 +90,7 @@ def run(self):
filthies.append(objc_str(pystr))

ftypes_arr = objc_arr(*filthies)
# todo: switch to allowedContentTypes
panel.setAllowedFileTypes_(ftypes_arr)
panel.setAllowsOtherFileTypes_(not self.use_extensions)

Expand Down

0 comments on commit a8ede9d

Please sign in to comment.