[virt-tools-list] [virt-viewer 5/8 v4] virt-viewer: Avoid simple_message_dialog() when errors can be propagated

Fabiano Fidêncio fidencio at redhat.com
Fri Mar 27 16:21:55 UTC 2015


Remove all the dialogs used to report errors on extract_connect_info()
and just propagate the errors we got from it.
The only exception is virt_viewer_domain_event(), that is a callback
that doesn't have GError as argument. In this specific case, we show the
error dialog instead of propagating it.

Related: rhbz#1085216
---
 src/virt-viewer.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/src/virt-viewer.c b/src/virt-viewer.c
index 5cef139..93449a6 100644
--- a/src/virt-viewer.c
+++ b/src/virt-viewer.c
@@ -414,9 +414,6 @@ virt_viewer_extract_connect_info(VirtViewer *self,
                     VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED,
                     _("Cannot determine the graphic type for the guest %s"), priv->domkey);
 
-        virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic type for the guest %s"),
-                                              priv->domkey);
-
         goto cleanup;
     }
 
@@ -456,9 +453,6 @@ virt_viewer_extract_connect_info(VirtViewer *self,
                     VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED,
                     _("Cannot determine the host for the guest %s"), priv->domkey);
 
-        virt_viewer_app_simple_message_dialog(app, _("Cannot determine the host for the guest %s"),
-                                              priv->domkey);
-
         goto cleanup;
     }
 
@@ -490,9 +484,6 @@ virt_viewer_extract_connect_info(VirtViewer *self,
         g_debug("graphics listen '%s' is not reachable from this machine",
                 ghost ? ghost : "");
 
-        virt_viewer_app_simple_message_dialog(app, _("Guest '%s' is not reachable"),
-                                              priv->domkey);
-
         goto cleanup;
     }
 
@@ -607,7 +598,12 @@ virt_viewer_domain_event(virConnectPtr conn G_GNUC_UNUSED,
         break;
 
     case VIR_DOMAIN_EVENT_STARTED:
-        virt_viewer_update_display(self, dom, NULL);
+        virt_viewer_update_display(self, dom, &error);
+        if (error) {
+            virt_viewer_app_simple_message_dialog(app, error->message);
+            g_clear_error(&error);
+        }
+
         virt_viewer_app_activate(app, &error);
         if (error) {
             /* we may want to consolidate error reporting in
-- 
2.3.3




More information about the virt-tools-list mailing list