static void table_add_line_custom(GtkWidget *table, gint x, gint y,
const gchar *text1, const gchar *text2,
- GtkWidget **label1, GtkWidget **label2)
+ GtkWidget **label1, GtkWidget **label2,
+ GtkWidget **button)
{
GtkWidget *label;
gchar *buf;
2, 2);
*label2 = label;
+ if (button)
+ {
+ *button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
+ gtk_table_attach(GTK_TABLE(table), *button,
+ x + 2, x + 3, y, y + 1,
+ GTK_FILL, GTK_FILL,
+ 2, 2);
+ }
+
g_free(buf);
}
static GtkWidget *table_add_line(GtkWidget *table, gint x, gint y,
const gchar *description, const gchar *text,
- GtkWidget **keyret)
+ GtkWidget **keyret)
{
GtkWidget *key;
GtkWidget *label;
- table_add_line_custom(table, x, y, description, text, &key, &label);
+ table_add_line_custom(table, x, y, description, text, &key, &label, NULL);
gtk_widget_show(key);
gtk_widget_show(label);
if (keyret) *keyret = key;
GtkWidget *custom_sep;
GtkWidget *custom_name[EXIF_BAR_CUSTOM_COUNT];
GtkWidget *custom_value[EXIF_BAR_CUSTOM_COUNT];
+ GtkWidget *custom_remove[EXIF_BAR_CUSTOM_COUNT];
FileData *fd;
name = list->data;
list = list->prev;
-
+
text = exif_get_data_as_text(exif, name);
utf8_text = utf8_validate_or_convert(text);
g_free(text);
gtk_widget_show(eb->custom_name[i]);
gtk_widget_show(eb->custom_value[i]);
+ gtk_widget_show(eb->custom_remove[i]);
+ g_object_set_data(G_OBJECT(eb->custom_remove[i]), "key", name);
i++;
}
while (i < EXIF_BAR_CUSTOM_COUNT)
{
+ g_object_set_data(G_OBJECT(eb->custom_remove[i]), "key", NULL);
gtk_widget_hide(eb->custom_name[i]);
gtk_widget_hide(eb->custom_value[i]);
+ gtk_widget_hide(eb->custom_remove[i]);
+
i++;
}
}
g_free(name);
}
+static void bar_exif_remove_advanced_cb(GtkWidget *widget, gpointer data)
+{
+ ExifBar *eb = data;
+ const gchar *key;
+
+ key = g_object_get_data(G_OBJECT(widget), "key");
+ if (!key) return;
+
+ history_list_item_change("exif_extras", key, NULL);
+
+ bar_exif_update(eb);
+}
+
static void bar_exif_add_column_check(GtkWidget *listview, const gchar *title, gint n)
{
GtkTreeViewColumn *column;
}
- table = gtk_table_new(2, exif_len + 1 + EXIF_BAR_CUSTOM_COUNT, FALSE);
+ table = gtk_table_new(3, exif_len + 1 + EXIF_BAR_CUSTOM_COUNT, FALSE);
eb->table = table;
for (i = 0; i < EXIF_BAR_CUSTOM_COUNT; i++)
{
table_add_line_custom(table, 0, exif_len + 1 + i,
- "", "", &eb->custom_name[i], &eb->custom_value[i]);
+ "", "", &eb->custom_name[i], &eb->custom_value[i],
+ &eb->custom_remove[i]);
+ g_signal_connect(G_OBJECT(eb->custom_remove[i]), "clicked",
+ G_CALLBACK(bar_exif_remove_advanced_cb), eb);
}
eb->scrolled = gtk_scrolled_window_new(NULL, NULL);