aboutsummaryrefslogtreecommitdiffstats
path: root/src/view/file_chooser.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/file_chooser.py')
-rw-r--r--src/view/file_chooser.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/view/file_chooser.py b/src/view/file_chooser.py
new file mode 100644
index 0000000..dfba199
--- /dev/null
+++ b/src/view/file_chooser.py
@@ -0,0 +1,51 @@
+from kivy.uix.popup import Popup
+from kivy.uix.button import Button
+from kivy.uix.boxlayout import BoxLayout
+from kivy.uix.filechooser import FileChooserListView
+from kivy.uix.textinput import TextInput
+from pathlib import Path
+import os
+
+class YouloadFileChooser(Popup):
+
+ def __init__(self, **kwargs):
+ super(YouloadFileChooser, self).__init__(**kwargs)
+
+ layout = BoxLayout(orientation='vertical')
+
+ self.title = "Find folder"
+
+ # Path input.
+ self.path_input = TextInput(text=str(Path.home()), multiline=False, size_hint=(0.9, 1.0))
+ self.path_input.bind(text=self.uid_path_input)
+
+ # Close button.
+ close_button = Button(text="Close", size_hint=(0.1, 1.0))
+ close_button.bind(on_press=self.close_button_cb)
+
+ top_bar_layout = BoxLayout(size_hint=(1.0, 0.1))
+ top_bar_layout.add_widget(self.path_input)
+ top_bar_layout.add_widget(close_button)
+
+ # File chooser.
+ self.file_chooser = FileChooserListView(size_hint=(1.0, 0.9))
+ self.file_chooser.path = str(Path.home())
+
+ layout.add_widget(top_bar_layout)
+ layout.add_widget(self.file_chooser)
+ self.content = layout
+
+ def set_app(self, app):
+ self.app = app
+
+ def close_button_cb(self, instance):
+ self.app.folder_display.text = self.get_folder()
+ self.dismiss()
+
+ def uid_path_input(self, instance, value):
+ if os.path.exists(value):
+ self.file_chooser.path = value
+
+ def get_folder(self):
+ return self.file_chooser.path
+