[gnome-boxes/preferences-snapshots-display-errors-in-toasts: 3/3] preferences, snapshots: Display error messages on Toasts




commit a6a1950b5e4a86e73bd1b3a7cda560262caff958
Author: Felipe Borges <felipeborges gnome org>
Date:   Thu Jan 20 17:56:06 2022 +0100

    preferences, snapshots: Display error messages on Toasts

 src/preferences/snapshot-list-row.vala | 24 ++++++++++++++++++------
 src/preferences/snapshots-page.vala    | 10 ++--------
 2 files changed, 20 insertions(+), 14 deletions(-)
---
diff --git a/src/preferences/snapshot-list-row.vala b/src/preferences/snapshot-list-row.vala
index 46efa675..40fdb332 100644
--- a/src/preferences/snapshot-list-row.vala
+++ b/src/preferences/snapshot-list-row.vala
@@ -2,7 +2,7 @@
 
 [GtkTemplate (ui = "/org/gnome/Boxes/ui/preferences/snapshot-list-row.ui")]
 private class Boxes.SnapshotListRow : Hdy.ActionRow {
-    public signal void deletion_requested (Boxes.PreferencesToast toast);
+    public signal void display_toast (Boxes.PreferencesToast toast);
     public signal void is_current ();
 
     public GVir.DomainSnapshot snapshot;
@@ -44,6 +44,10 @@ public SnapshotListRow (GVir.DomainSnapshot snapshot,
             setup_labels (snapshot.get_config (0));
         } catch (GLib.Error e) {
             critical (e.message);
+
+            display_toast (new Boxes.PreferencesToast () {
+                message = e.message
+            });
         }
     }
 
@@ -69,7 +73,12 @@ private void on_save_name_button_clicked () {
             setup_labels (config, name);
             mode_stack.visible_child = show_name_box;
         } catch (GLib.Error e) {
-            warning ("Failed to change name of snapshot to %s: %s", name, e.message);
+            warning ("Failed to rename snapshot to %s: %s", name, e.message);
+
+            display_toast (new Boxes.PreferencesToast () {
+                // Translators: %s is the reason why Boxes failed to rename the snapshot.
+                message = _("Failed to rename snapshot: %s").printf (e.message)
+            });
         }
     }
 
@@ -105,7 +114,11 @@ private void on_revert_button_clicked () {
                 is_current ();
             } catch (GLib.Error e) {
                 warning (e.message);
-                machine.window.notificationbar.display_error (_("Failed to apply snapshot"));
+
+                display_toast (new Boxes.PreferencesToast () {
+                    // Translators: %s is the reason why Boxes failed to apply the snapshot.
+                    message = _("Failed to revert to snapshot: %s").printf (e.message)
+                });
             }
             activity_message = null;
         });
@@ -145,13 +158,12 @@ private void on_delete_button_clicked () {
             row = null;
         };
 
-        var toast = new Boxes.PreferencesToast () {
+        display_toast (new Boxes.PreferencesToast () {
             message = message,
             action = _("Undo"),
             undo_func = (owned) undo,
             dismiss_func = (owned) really_remove,
-        };
-        deletion_requested (toast);
+        });
     }
 
     [GtkCallback]
diff --git a/src/preferences/snapshots-page.vala b/src/preferences/snapshots-page.vala
index 67804b3f..0ba2c8e9 100644
--- a/src/preferences/snapshots-page.vala
+++ b/src/preferences/snapshots-page.vala
@@ -87,7 +87,7 @@ private async void fetch_snapshots () {
     private SnapshotListRow create_snapshot_row (GVir.DomainSnapshot snapshot) {
         var row = new SnapshotListRow (snapshot, machine);
         row.notify["activity-message"].connect (row_activity_changed);
-        row.deletion_requested.connect (on_row_deleted);
+        row.display_toast.connect (display_toast);
         row.is_current.connect (select_row);
 
         try {
@@ -118,13 +118,7 @@ private void select_row (SnapshotListRow selected_row) {
         listbox.select_row (selected_row);
     }
 
-
-    private void on_row_deleted (Boxes.PreferencesToast new_toast) {
-        if (toast != null) {
-            toast.dismiss ();
-            toast = null;
-        }
-
+    private void display_toast (Boxes.PreferencesToast new_toast) {
         toast = new_toast;
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]