On Thu, 2016-10-27 at 14:37 -0500, Jonathon Jongsma wrote: > --- > Here's a possible alternative solution. I chose not to 'continue' in > the case > of a NULL filename since you might end up with a message like: > > An error caused the following file transfers to fail: yeah, it is the reason I mentioned that it is needed to check the length of the gstring ack Pavel > > > And then no files listed. I think that's a bit odd. So instead I > just printed > the file transfer task ID. An alternative might be to just show > something like > "(unnamed file)". > > > src/virt-viewer-file-transfer-dialog.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/src/virt-viewer-file-transfer-dialog.c b/src/virt- > viewer-file-transfer-dialog.c > index 6f28f37..4750441 100644 > --- a/src/virt-viewer-file-transfer-dialog.c > +++ b/src/virt-viewer-file-transfer-dialog.c > @@ -178,10 +178,18 @@ static gboolean hide_transfer_dialog(gpointer > data) > if (self->priv->failed) { > GSList *sl; > GString *msg = g_string_new(""); > + GtkWidget *dialog; > > for (sl = self->priv->failed; sl != NULL; sl = > g_slist_next(sl)) { > SpiceFileTransferTask *failed_task = sl->data; > gchar *filename = > spice_file_transfer_task_get_filename(failed_task); > + if (filename == NULL) { > + guint id; > + > + g_object_get(failed_task, "id", &id, NULL); > + g_warning("Unable to get filename of failed > transfer"); > + filename = g_strdup_printf("(task #%u)", id); > + } > > g_string_append_printf(msg, "\n%s", filename); > g_free(filename); > @@ -189,10 +197,10 @@ static gboolean hide_transfer_dialog(gpointer > data) > g_slist_free_full(self->priv->failed, g_object_unref); > self->priv->failed = NULL; > > - GtkWidget *dialog = > gtk_message_dialog_new(GTK_WINDOW(self), 0, GTK_MESSAGE_ERROR, > - GTK_BUTTONS_OK, > - _("An error > caused following file transfers to fail:\n%s"), > - msg->str); > + dialog = gtk_message_dialog_new(GTK_WINDOW(self), 0, > GTK_MESSAGE_ERROR, > + GTK_BUTTONS_OK, > + _("An error caused the > following file transfers to fail:%s"), > + msg->str); > g_string_free(msg, TRUE); > g_signal_connect(dialog, "response", > G_CALLBACK(error_dialog_response), NULL); > gtk_widget_show(dialog); _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list