Skip to content

Commit

Permalink
Notify when no files are found
Browse files Browse the repository at this point in the history
Adds a toast that appears if no files are found in the inputted folder.

Closes #231
  • Loading branch information
ARAKHN1D committed Jul 2, 2024
1 parent e6900c9 commit ae73015
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 95 deletions.
194 changes: 99 additions & 95 deletions data/ui/window.ui
Original file line number Diff line number Diff line change
Expand Up @@ -5,133 +5,137 @@
<property name="default-width">650</property>
<property name="default-height">500</property>
<property name="content">
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar" id="headerbar">
<child>
<object class="GtkBox">
<object class="AdwToastOverlay" id="toast_overlay">
<property name="child">
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar" id="headerbar">
<child>
<object class="GtkButton" id="filechooser_button_headerbar">
<property name="icon-name">document-open-symbolic</property>
<property name="action-name">win.select-file</property>
<property name="tooltip-text" translatable="yes">Browse Files</property>
<object class="GtkBox">
<child>
<object class="GtkButton" id="filechooser_button_headerbar">
<property name="icon-name">document-open-symbolic</property>
<property name="action-name">win.select-file</property>
<property name="tooltip-text" translatable="yes">Browse Files</property>
</object>
</child>
<child>
<object class="GtkButton" id="clear_button_headerbar">
<property name="icon-name">view-refresh-symbolic</property>
<property name="action-name">win.clear-results</property>
<property name="tooltip-text" translatable="yes">Clear Results</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="clear_button_headerbar">
<property name="icon-name">view-refresh-symbolic</property>
<property name="action-name">win.clear-results</property>
<property name="tooltip-text" translatable="yes">Clear Results</property>
<child type="title">
<object class="AdwWindowTitle" id="window_title">
<property name="title" translatable="yes">Curtail</property>
</object>
</child>
<child type="end">
<object class="GtkMenuButton" id="menu_button">
<property name="icon-name">open-menu-symbolic</property>
<property name="primary">true</property>
<property name="tooltip-text" translatable="yes">Main Menu</property>
</object>
</child>
</object>
</child>
<child type="title">
<object class="AdwWindowTitle" id="window_title">
<property name="title" translatable="yes">Curtail</property>
</object>
</child>
<child type="end">
<object class="GtkMenuButton" id="menu_button">
<property name="icon-name">open-menu-symbolic</property>
<property name="primary">true</property>
<property name="tooltip-text" translatable="yes">Main Menu</property>
</object>
</child>
</object>
</child>
<property name="content">
<object class="GtkBox" id="mainbox">
<property name="orientation">vertical</property>
<child>
<object class="AdwBanner" id="warning_banner">
<property name="action-name">win.banner-change-mode</property>
<property name="button-label" translatable="yes">_Change Mode</property>
<property name="title" translatable="yes">Images will be overwritten, proceed carefully</property>
</object>
</child>
<child>
<object class="AdwStatusPage" id="homebox">
<property name="vexpand">true</property>
<property name="icon-name">com.github.huluti.Curtail</property>
<property name="title" translatable="no">Curtail</property>
<property name="description" translatable="yes">Drop images here to compress them</property>
<property name="content">
<object class="GtkBox" id="mainbox">
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">_Browse Files</property>
<property name="halign">center</property>
<property name="action-name">win.select-file</property>
<property name="margin-bottom">40</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
<object class="AdwBanner" id="warning_banner">
<property name="action-name">win.banner-change-mode</property>
<property name="button-label" translatable="yes">_Change Mode</property>
<property name="title" translatable="yes">Images will be overwritten, proceed carefully</property>
</object>
</child>
<child>
<object class="AdwStatusPage" id="homebox">
<property name="vexpand">true</property>
<property name="icon-name">com.github.huluti.Curtail</property>
<property name="title" translatable="no">Curtail</property>
<property name="description" translatable="yes">Drop images here to compress them</property>
<child>
<object class="GtkBox">
<property name="spacing">10</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="halign">end</property>
<property name="label" translatable="yes">Lossless</property>
<object class="GtkButton">
<property name="label" translatable="yes">_Browse Files</property>
<property name="halign">center</property>
<property name="action-name">win.select-file</property>
<property name="margin-bottom">40</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="GtkSwitch" id="toggle_lossy">
<object class="GtkBox">
<property name="spacing">10</property>
<property name="halign">center</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="label" translatable="yes">Lossy</property>
<child>
<object class="GtkLabel">
<property name="halign">end</property>
<property name="label" translatable="yes">Lossless</property>
</object>
</child>
<child>
<object class="GtkSwitch" id="toggle_lossy">
<property name="halign">center</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="label" translatable="yes">Lossy</property>
</object>
</child>
</object>
</child>
</object>
</child>
<style>
<class name="icon-dropshadow"/>
</style>
</object>
</child>
<style>
<class name="icon-dropshadow"/>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="resultbox">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="vexpand">true</property>
<property name="hscrollbar-policy">never</property>
<object class="GtkBox" id="resultbox">
<child>
<object class="AdwClamp">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="vexpand">true</property>
<property name="hscrollbar-policy">never</property>
<child>
<object class="GtkListBox" id="listbox">
<property name="hexpand">true</property>
<property name="valign">start</property>
<property name="selection-mode">none</property>
<style>
<class name="boxed-list"/>
</style>
<object class="AdwClamp">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<child>
<object class="GtkListBox" id="listbox">
<property name="hexpand">true</property>
<property name="valign">start</property>
<property name="selection-mode">none</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</property>
</object>
</property>
</object>
Expand Down
6 changes: 6 additions & 0 deletions src/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class CurtailWindow(Adw.ApplicationWindow):

headerbar = Gtk.Template.Child()
window_title = Gtk.Template.Child()
toast_overlay = Gtk.Template.Child()
filechooser_button_headerbar = Gtk.Template.Child()
clear_button_headerbar = Gtk.Template.Child()
menu_button = Gtk.Template.Child()
Expand Down Expand Up @@ -307,6 +308,11 @@ def create_new_filename(self, path):
def compress_filenames(self, filenames):
filenames = self.handle_filenames(filenames)

# No files found
if not filenames:
self.toast_overlay.add_toast(Adw.Toast(title="No files found"))
return

result_items = []
for filename in filenames:
error_message = False
Expand Down

0 comments on commit ae73015

Please sign in to comment.