diff --git a/src/core/change_view.py b/src/core/change_view.py index 5ab54f8..9ff5eb6 100644 --- a/src/core/change_view.py +++ b/src/core/change_view.py @@ -91,17 +91,20 @@ class ChangeView(Gtk.Box, CommonWidgetGeneratorMixin, CommonActionsMixin): return self._active_path def _set_active_path(self, _file): - if os.path.isdir(_file) : - self._from_changes.clear() - self._active_path = _file - for f in os.listdir(_file): - self._from_changes.append(f) + if not os.path.isdir(_file) : return - self._from_changes.sort(key=self._natural_keys) - self._to_changes = self._from_changes + event_system.emit("set-file-chooser-path", (_file,)) - event_system.emit("update-from") - event_system.emit("update-to") + self._active_path = _file + self._from_changes.clear() + for f in os.listdir(_file): + self._from_changes.append(f) + + self._from_changes.sort(key=self._natural_keys) + self._to_changes = self._from_changes + + event_system.emit("update-from") + event_system.emit("update-to") def get_from_list(self): return self._from_changes diff --git a/src/core/controller.py b/src/core/controller.py index 37f0ab6..8381a19 100644 --- a/src/core/controller.py +++ b/src/core/controller.py @@ -19,7 +19,6 @@ class Controller(Gtk.Box, CommonWidgetGeneratorMixin): def __init__(self, args, unknownargs): super(Controller, self).__init__() - # # Add header self.change_view = None self.copy_window = None self.store = None @@ -37,9 +36,12 @@ class Controller(Gtk.Box, CommonWidgetGeneratorMixin): for arg in unknownargs: if os.path.isdir(arg): event_system.emit("set-active-path", (arg,)) + self._set_file_chooser_path(arg) if args.path and os.path.isdir(args.path): event_system.emit("set-active-path", (args.path,)) + self._set_file_chooser_path(args.path) + def _setup_styling(self): @@ -55,6 +57,7 @@ class Controller(Gtk.Box, CommonWidgetGeneratorMixin): def _subscribe_to_events(self): event_system.subscribe("handle-gui-event", self._handle_gui_event) + event_system.subscribe("set-file-chooser-path", self._set_file_chooser_path) def _load_widgets(self): self.change_view = ChangeView() @@ -106,6 +109,9 @@ class Controller(Gtk.Box, CommonWidgetGeneratorMixin): self.add(run_button) + def _set_file_chooser_path(self, path): + self.get_children()[0].set_filename(path) + def update_dir_path(self, widget): path = widget.get_filename() event_system.emit("set-active-path", (path,)) diff --git a/src/mixins/CommonWidgetGeneratorMixin.py b/src/mixins/CommonWidgetGeneratorMixin.py index 756b764..99124de 100644 --- a/src/mixins/CommonWidgetGeneratorMixin.py +++ b/src/mixins/CommonWidgetGeneratorMixin.py @@ -69,9 +69,11 @@ class CommonWidgetGeneratorMixin: grid = Gtk.ListBox() viewport = Gtk.Viewport() - grid.show_all() + grid.set_selection_mode( Gtk.SelectionMode.NONE ) + scroll.set_size_request(360, 200) + viewport.add(grid) scroll.add(viewport) + grid.show_all() - scroll.set_size_request(360, 200) return scroll, grid