From 58f60d4213cf88084d98109358cfca4a97aa08c5 Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 8 Dec 2018 12:26:57 -0800 Subject: [PATCH] Applying #317 .patch - HenrykHaniewicz --- gooey/gui/components/widgets/choosers.py | 5 +++++ gooey/gui/components/widgets/core/__init__.py | 2 +- gooey/gui/components/widgets/core/chooser.py | 12 ++++++++++++ gooey/languages/english.json | 4 +++- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gooey/gui/components/widgets/choosers.py b/gooey/gui/components/widgets/choosers.py index a3f865b..af18863 100644 --- a/gooey/gui/components/widgets/choosers.py +++ b/gooey/gui/components/widgets/choosers.py @@ -6,6 +6,7 @@ __ALL__ = [ 'FileChooser', 'FileSaver', 'DirChooser', + 'MultiDirChooser', 'DateChooser' ] @@ -28,6 +29,10 @@ class DirChooser(BaseChooser): # todo: allow wildcard widget_class = core.DirChooser +class MultiDirChooser(BaseChooser): + # todo: allow wildcard + widget_class = core.MultiDirChooser + class DateChooser(BaseChooser): # todo: allow wildcard diff --git a/gooey/gui/components/widgets/core/__init__.py b/gooey/gui/components/widgets/core/__init__.py index d8c3758..e0b9584 100644 --- a/gooey/gui/components/widgets/core/__init__.py +++ b/gooey/gui/components/widgets/core/__init__.py @@ -1,2 +1,2 @@ -from . chooser import Chooser, FileChooser, FileSaver, DirChooser, DateChooser, MultiFileChooser +from . chooser import Chooser, FileChooser, FileSaver, DirChooser, DateChooser, MultiFileChooser, MultiDirChooser from . text_input import PasswordInput, MultilineTextInput, TextInput diff --git a/gooey/gui/components/widgets/core/chooser.py b/gooey/gui/components/widgets/core/chooser.py index 9448226..b64c7f5 100644 --- a/gooey/gui/components/widgets/core/chooser.py +++ b/gooey/gui/components/widgets/core/chooser.py @@ -1,4 +1,5 @@ import wx +import wx.lib.agw.multidirdialog as MDD import os from gooey.gui.components.widgets.core.text_input import TextInput @@ -89,6 +90,17 @@ class DirChooser(Chooser): """ Retrieve a path to the supplied directory """ def getDialog(self): return wx.DirDialog(self, message=_('choose_folder')) + +class MultiDirChooser(Chooser): + """ Retrieve an multiple directories from the system """ + def getDialog(self): + return MDD.MultiDirDialog(self, + message=_('choose_folders_msg'), + title=_('choose_folders_title'), + defaultPath=os.getcwd(), + agwStyle=MDD.DD_MULTIPLE | MDD.DD_DIR_MUST_EXIST) + def getResult(self, dialog): + return os.pathsep.join(dialog.GetPaths()) class DateChooser(Chooser): diff --git a/gooey/languages/english.json b/gooey/languages/english.json index 5133725..de44cbf 100644 --- a/gooey/languages/english.json +++ b/gooey/languages/english.json @@ -5,7 +5,9 @@ "choose_date": "Choose Date", "choose_file": "Choose File", "choose_folder": "Choose Folder", - "choose_one": "Choose One", + "choose_folders_msg": "Choose one or more folders:", + "choose_folders_title": "Browse For Folders", + "choose one": "Choose One", "close": "Close", "close_program": "Close program?", "edit": "Edit",