#include "aoview.h"
-static GtkTreeViewColumn *
-add_plain_text_column (GtkTreeView *view, const gchar *title, gint model_column, gint width)
-{
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
-
- renderer = gtk_cell_renderer_text_new ();
- g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_NONE, NULL);
- g_object_set(renderer, "width-chars", width, NULL);
- column = gtk_tree_view_column_new_with_attributes (title, renderer,
- "text", model_column,
- NULL);
- gtk_tree_view_column_set_resizable (column, FALSE);
- gtk_tree_view_append_column (view, column);
-
- return column;
-}
-
-
-
static void
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));
+}
+
+gboolean dialog_save_log;
+
static void
aoview_dev_selected(GtkTreeModel *model,
GtkTreePath *path,
gtk_tree_model_get(model, iter,
2, &string,
-1);
- aoview_monitor_connect(string);
+ if (dialog_save_log) {
+ dialog_save_log = FALSE;
+ if (!aoview_eeprom_save(string))
+ aoview_dev_open_failed(string);
+ } else {
+ if (!aoview_monitor_connect(string))
+ aoview_dev_open_failed(string);
+ }
}
static GtkWidget *dialog;
gtk_tree_selection_selected_foreach(tree_selection,
aoview_dev_selected,
data);
-
gtk_widget_hide(dialog);
}
aoview_monitor_disconnect();
}
+static void
+aoview_dev_savelog(GtkWidget *widget, gpointer data)
+{
+ dialog_save_log = TRUE;
+ gtk_widget_show(dialog);
+}
+
#define _(a) a
void
GtkWidget *connect_button;
GtkTreeSelection *dev_selection;
GtkWidget *ao_disconnect;
+ GtkWidget *ao_savelog;
dialog = glade_xml_get_widget(xml, "device_connect_dialog");
assert(dialog);
dev_list = GTK_TREE_VIEW(glade_xml_get_widget(xml, "dev_list"));
assert(dev_list);
- add_plain_text_column(dev_list, _("Product"), 0, 16);
- add_plain_text_column(dev_list, _("Serial"), 1, 8);
- add_plain_text_column(dev_list, _("Device"), 2, 13);
+ aoview_add_plain_text_column(dev_list, _("Product"), 0, 16);
+ aoview_add_plain_text_column(dev_list, _("Serial"), 1, 8);
+ aoview_add_plain_text_column(dev_list, _("Device"), 2, 13);
dev_selection = gtk_tree_view_get_selection(dev_list);
gtk_tree_selection_set_mode(dev_selection, GTK_SELECTION_SINGLE);
g_signal_connect(G_OBJECT(ao_disconnect), "activate",
G_CALLBACK(aoview_dev_disconnect),
ao_disconnect);
+
+ ao_savelog = glade_xml_get_widget(xml, "ao_savelog");
+ assert(ao_savelog);
+
+ g_signal_connect(G_OBJECT(ao_savelog), "activate",
+ G_CALLBACK(aoview_dev_savelog),
+ dialog);
+ dev_open_fail_dialog = GTK_MESSAGE_DIALOG(glade_xml_get_widget(xml, "dev_open_fail_dialog"));
+ assert(dev_open_fail_dialog);
}