aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornathansmithsmith <nathansmith7@mailfence.com>2023-11-09 16:02:08 +0000
committernathansmithsmith <nathansmith7@mailfence.com>2023-11-09 16:02:08 +0000
commitd20bb5f9f7f460cf0db3674d6cc2a279d1ee3499 (patch)
tree2ef79ac157654e64f352e756599e8c21ce40b9df
parent9f241ede922974ced92d79da5d3996d921becd3c (diff)
downloadyouload-d20bb5f9f7f460cf0db3674d6cc2a279d1ee3499.tar.gz
youload-d20bb5f9f7f460cf0db3674d6cc2a279d1ee3499.tar.bz2
youload-d20bb5f9f7f460cf0db3674d6cc2a279d1ee3499.zip
Started file chooser
-rw-r--r--src/main.py3
-rw-r--r--src/model/youload_app.py (renamed from src/youload_app.py)24
-rw-r--r--src/model/youload_file_chooser.py30
-rw-r--r--src/youload_cli.py1
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()
+