diff options
author | nathansmithsmith <nathansmith7@mailfence.com> | 2023-11-09 16:02:08 +0000 |
---|---|---|
committer | nathansmithsmith <nathansmith7@mailfence.com> | 2023-11-09 16:02:08 +0000 |
commit | d20bb5f9f7f460cf0db3674d6cc2a279d1ee3499 (patch) | |
tree | 2ef79ac157654e64f352e756599e8c21ce40b9df /src | |
parent | 9f241ede922974ced92d79da5d3996d921becd3c (diff) | |
download | youload-d20bb5f9f7f460cf0db3674d6cc2a279d1ee3499.tar.gz youload-d20bb5f9f7f460cf0db3674d6cc2a279d1ee3499.tar.bz2 youload-d20bb5f9f7f460cf0db3674d6cc2a279d1ee3499.zip |
Started file chooser
Diffstat (limited to 'src')
-rw-r--r-- | src/main.py | 3 | ||||
-rw-r--r-- | src/model/youload_app.py (renamed from src/youload_app.py) | 24 | ||||
-rw-r--r-- | src/model/youload_file_chooser.py | 30 | ||||
-rw-r--r-- | src/youload_cli.py | 1 |
4 files changed, 53 insertions, 5 deletions
diff --git a/src/main.py b/src/main.py index ab747b0..b3a5503 100644 --- a/src/main.py +++ b/src/main.py @@ -1,6 +1,7 @@ -from youload_app import YouloadApp +from model.youload_app import YouloadApp if __name__ == "__main__": app = YouloadApp() run = app.run() print(run) + diff --git a/src/youload_app.py b/src/model/youload_app.py index e284116..9e4d757 100644 --- a/src/youload_app.py +++ b/src/model/youload_app.py @@ -14,6 +14,7 @@ import threading import pytube from youload_playlist import YouLoadPlayList +from model.youload_file_chooser import YouloadFileChooser class YouloadApp(App): def build(self): @@ -25,11 +26,11 @@ class YouloadApp(App): self.should_stop_download = False # Url input. - url_input = TextInput(text=self.url, multiline=False, size_hint=(0.75, 1.0)) + url_input = TextInput(text=self.url, multiline=False, size_hint=(0.8, 1.0)) url_input.bind(text=self.uid_url_input) # Submit button. - self.submit = Button(text="Download", size_hint=(0.25, 1.0)) + self.submit = Button(text="Download", size_hint=(0.2, 1.0)) self.submit.bind(on_press=self.submit_cb) # Url and submit layout. @@ -38,11 +39,16 @@ class YouloadApp(App): url_and_submit.add_widget(self.submit) # Download status. - self.download_status = Label(text="Nothing downloading") + self.download_status = Label(text="Nothing downloading", size_hint=(0.8, 1.0)) + + # choose folder button. + self.choose_folder_button = Button(text="Choose folder", size_hint=(0.2, 1.0)) + self.choose_folder_button.bind(on_press=self.choose_folder_cb) # Info line. info_line = BoxLayout(size_hint=(1.0, 0.1)) info_line.add_widget(self.download_status) + info_line.add_widget(self.choose_folder_button) # Info display. self.downloads_display = Label(text="", size_hint=(1.0, 0.8)) @@ -52,7 +58,14 @@ class YouloadApp(App): layout.add_widget(info_line) layout.add_widget(self.downloads_display) - return layout + # File chooser. + self.file_chooser = YouloadFileChooser() + + # Screen layout. + self.screen_layout = FloatLayout() + self.screen_layout.add_widget(layout) + + return self.screen_layout def uid_url_input(self, instance, value): self.url = value @@ -101,6 +114,9 @@ class YouloadApp(App): self.should_stop_download = False download_thread.start() + def choose_folder_cb(self, instance): + self.screen_layout.add_widget(self.file_chooser) + def on_stop(self): self.stop_download() diff --git a/src/model/youload_file_chooser.py b/src/model/youload_file_chooser.py new file mode 100644 index 0000000..80bded2 --- /dev/null +++ b/src/model/youload_file_chooser.py @@ -0,0 +1,30 @@ +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 pathlib import Path + +class YouloadFileChooser(Popup): + + def __init__(self, **kwargs): + super(YouloadFileChooser, self).__init__(**kwargs) + + layout = BoxLayout(orientation='vertical') + + self.title = "Find folder" + + # Close button. + close_button = Button(text="Close", size_hint=(1.0, 0.1)) + close_button.bind(on_press=self.close_button_cb) + + # File chooser. + self.file_chooser = FileChooserListView(size_hint=(1.0, 0.8)) + self.file_chooser.rootpath = str(Path.home()) + + layout.add_widget(close_button) + layout.add_widget(self.file_chooser) + self.add_widget(layout) + + def close_button_cb(self, instance): + self.parent.remove_widget(self) + diff --git a/src/youload_cli.py b/src/youload_cli.py index 7429b48..da14dc8 100644 --- a/src/youload_cli.py +++ b/src/youload_cli.py @@ -25,3 +25,4 @@ def main() -> None: if __name__ == "__main__": main() + |