summaryrefslogtreecommitdiff
path: root/aoview/aoview_dev_dialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'aoview/aoview_dev_dialog.c')
-rw-r--r--aoview/aoview_dev_dialog.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/aoview/aoview_dev_dialog.c b/aoview/aoview_dev_dialog.c
index 00947404..530187c1 100644
--- a/aoview/aoview_dev_dialog.c
+++ b/aoview/aoview_dev_dialog.c
@@ -45,6 +45,23 @@ aoview_dev_dialog_map(GtkWidget *widget, gpointer data)
gtk_tree_view_columns_autosize(dev_list);
}
+static GtkMessageDialog *dev_open_fail_dialog;
+
+static void
+aoview_dev_open_failed(char *name)
+{
+ char *utf8_file;
+ utf8_file = g_filename_to_utf8(name, -1, NULL, NULL, NULL);
+ if (!utf8_file)
+ utf8_file = name;
+ gtk_message_dialog_format_secondary_text(dev_open_fail_dialog,
+ "\"%s\"", utf8_file);
+ if (utf8_file != name)
+ g_free(utf8_file);
+ gtk_dialog_run(GTK_DIALOG(dev_open_fail_dialog));
+ gtk_widget_hide(GTK_WIDGET(dev_open_fail_dialog));
+}
+
static void
aoview_dev_selected(GtkTreeModel *model,
GtkTreePath *path,
@@ -55,7 +72,8 @@ aoview_dev_selected(GtkTreeModel *model,
gtk_tree_model_get(model, iter,
2, &string,
-1);
- aoview_monitor_connect(string);
+ if (!aoview_monitor_connect(string))
+ aoview_dev_open_failed(string);
}
static GtkWidget *dialog;
@@ -123,4 +141,7 @@ aoview_dev_dialog_init(GladeXML *xml)
g_signal_connect(G_OBJECT(ao_disconnect), "activate",
G_CALLBACK(aoview_dev_disconnect),
ao_disconnect);
+
+ dev_open_fail_dialog = GTK_MESSAGE_DIALOG(glade_xml_get_widget(xml, "dev_open_fail_dialog"));
+ assert(dev_open_fail_dialog);
}