diff --git a/src/recoder/app_state.py b/src/recoder/app_state.py index 80a86cf..4e507d1 100644 --- a/src/recoder/app_state.py +++ b/src/recoder/app_state.py @@ -41,7 +41,16 @@ class UIStateManager: if handler: handler() + def _update_title(self, folder_name=None): + w = self.window + base = "Recoder" + if folder_name: + w.folder_label.set_text(f"{base} — {folder_name}") + else: + w.folder_label.set_text(base) + def _handle_idle(self): + self._update_title(None) w = self.window w.clear_listbox() w.file_rows.clear() @@ -58,6 +67,7 @@ class UIStateManager: def _handle_files_loaded(self): w = self.window + self._update_title(w.current_folder_name) w.drop_hint.set_visible(False) w.progress_bar.set_visible(False) w.btn_transcode.set_visible(True) @@ -100,6 +110,7 @@ class UIStateManager: def _handle_error(self): w = self.window + self._update_title(w.current_folder_name) w.drop_hint.set_visible(False) w.progress_bar.set_visible(False) w.btn_transcode.set_visible(False) diff --git a/src/recoder/recoder_window.py b/src/recoder/recoder_window.py index 25b0d69..abcdd6b 100644 --- a/src/recoder/recoder_window.py +++ b/src/recoder/recoder_window.py @@ -27,11 +27,13 @@ class RecoderWindow(Adw.ApplicationWindow): btn_transcode = Gtk.Template.Child() btn_cancel = Gtk.Template.Child() progress_bar = Gtk.Template.Child() + folder_label = Gtk.Template.Child() def __init__(self, application): super().__init__(application=application) self.file_items_to_process = [] + self.current_folder_name = None self.transcoder = None self.file_rows = {} self.is_paused = False @@ -56,6 +58,19 @@ class RecoderWindow(Adw.ApplicationWindow): Notify.init("Recoder") def process_drop_value(self, value): + + # value could be a list of Gio.File or a single Gio.File + # Assuming it's a list: + folder_file = None + if isinstance(value, list) and len(value) > 0: + folder_file = value[0] + elif hasattr(value, 'get_path'): + folder_file = value + + if folder_file: + # Set the current folder name for UI + self.current_folder_name = folder_file.get_basename() + file_items = extract_video_files(value) if not file_items: return False diff --git a/src/resources/recoder_window.ui b/src/resources/recoder_window.ui index 0d60a61..114bde1 100644 --- a/src/resources/recoder_window.ui +++ b/src/resources/recoder_window.ui @@ -18,6 +18,13 @@ False + + + end + True + center + + Cancel