From de3c5e895a36a4e4e0ebb6b8a842fef798db642b Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Fri, 12 Sep 2025 21:44:55 -0500 Subject: [PATCH] Added label for file selected; add file selection filter to be image only --- src/widgets/controls/open_file_button.py | 6 ++-- src/widgets/file_label.py | 37 ++++++++++++++++++++++++ src/widgets/image_type_dialog.py | 7 ++++- 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 src/widgets/file_label.py diff --git a/src/widgets/controls/open_file_button.py b/src/widgets/controls/open_file_button.py index b3c6bbf..831d501 100644 --- a/src/widgets/controls/open_file_button.py +++ b/src/widgets/controls/open_file_button.py @@ -55,7 +55,10 @@ class OpenFileButton(Gtk.Button): ) ) + file_filter = Gtk.FileFilter() + file_filter.add_pixbuf_formats() chooser.set_select_multiple(False) + chooser.set_filter(file_filter) try: folder = widget.get_current_file().get_parent() if not start_dir else start_dir @@ -65,9 +68,8 @@ class OpenFileButton(Gtk.Button): response = chooser.run() if not response == Gtk.ResponseType.OK: - print("response") chooser.destroy() - return _gfiles + return "" filename = chooser.get_filename() if not filename: diff --git a/src/widgets/file_label.py b/src/widgets/file_label.py new file mode 100644 index 0000000..54dce87 --- /dev/null +++ b/src/widgets/file_label.py @@ -0,0 +1,37 @@ +# Python imports + +# Lib imports +import gi + +gi.require_version('Gtk', '3.0') + +from gi.repository import Gtk + +# Application imports + + +class FileLabel(Gtk.Label): + def __init__(self): + super(FileLabel, self).__init__() + + self._setup_styling() + self._setup_signals() + self._subscribe_to_events() + self._load_widgets() + + + def _setup_styling(self): + ... + + def _setup_signals(self): + ... + + def _subscribe_to_events(self): + event_system.subscribe("set-file-label", self._set_file_label) + + def _load_widgets(self): + ... + + def _set_file_label(self, fpath: str): + lbl_parts = fpath.split("/") + self.set_label(lbl_parts[-1]) diff --git a/src/widgets/image_type_dialog.py b/src/widgets/image_type_dialog.py index 83aa89b..e4f7954 100644 --- a/src/widgets/image_type_dialog.py +++ b/src/widgets/image_type_dialog.py @@ -13,6 +13,7 @@ from gi.repository import GdkPixbuf # Application imports from .controls.open_file_button import OpenFileButton +from .file_label import FileLabel from data.cbindings import pixbuf2cairo @@ -27,11 +28,12 @@ class ImageTypeDialog(Gtk.Dialog): self._subscribe_to_events() self._load_widgets() + self.show() + def _setup_styling(self): self.set_size_request(420, 320) - def _setup_signals(self): ... @@ -46,6 +48,7 @@ class ImageTypeDialog(Gtk.Dialog): size_w_lbl = Gtk.Label("Width:") size_h_lbl = Gtk.Label("Height:") open_file_btn = OpenFileButton() + file_lbl = FileLabel() self.size_w_btn = Gtk.SpinButton() self.size_h_btn = Gtk.SpinButton() @@ -88,6 +91,7 @@ class ImageTypeDialog(Gtk.Dialog): vbox.add(hbox1) vbox.add(hbox2) vbox.add(open_file_btn) + vbox.add(file_lbl) self.add_button("Continue", Gtk.ResponseType.OK) @@ -112,6 +116,7 @@ class ImageTypeDialog(Gtk.Dialog): def _open_files(self, widget, eve): self.img_path = event_system.emit_and_await("open-file") + event_system.emit("set-file-label", (self.img_path,)) def _pixels_to_cairo_surface(