gtk_widget_show(ee->box);
ee->title_label = gtk_label_new(NULL);
+#if GTK_CHECK_VERSION(3,16,0)
+ gtk_label_set_xalign(GTK_LABEL(ee->title_label), horizontal ? 1.0 : 0.0);
+ gtk_label_set_yalign(GTK_LABEL(ee->title_label), 0.5);
+#else
gtk_misc_set_alignment(GTK_MISC(ee->title_label), horizontal ? 1.0 : 0.0, 0.5);
+#endif
gtk_size_group_add_widget(ped->size_group, ee->title_label);
gtk_box_pack_start(GTK_BOX(ee->box), ee->title_label, FALSE, TRUE, 0);
gtk_widget_show(ee->title_label);
// gtk_label_set_width_chars(GTK_LABEL(ee->value_widget), 20);
gtk_label_set_ellipsize(GTK_LABEL(ee->value_widget), PANGO_ELLIPSIZE_END);
// gtk_widget_set_size_request(ee->value_widget, 100, -1);
+#if GTK_CHECK_VERSION(3,16,0)
+ gtk_label_set_xalign(GTK_LABEL(ee->value_widget), 0.0);
+ gtk_label_set_yalign(GTK_LABEL(ee->value_widget), 0.5);
+#else
gtk_misc_set_alignment(GTK_MISC(ee->value_widget), 0.0, 0.5);
+#endif
}
gtk_box_pack_start(GTK_BOX(ee->box), ee->value_widget, TRUE, TRUE, 1);
{
gchar *text;
ExifEntry *ee = g_object_get_data(G_OBJECT(entry), "entry_data");
+ gshort rating;
if (!ee) return;
- text = metadata_read_string(ped->fd, ee->key, ee->editable ? METADATA_PLAIN : METADATA_FORMATTED);
+ if (g_strcmp0(ee->key, "Xmp.xmp.Rating") == 0)
+ {
+ rating = metadata_read_int(ee->ped->fd, ee->key, 0);
+ text = g_strdup_printf("%d", rating);
+ }
+ else
+ {
+ text = metadata_read_string(ped->fd, ee->key, ee->editable ? METADATA_PLAIN : METADATA_FORMATTED);
+ }
if (!ped->show_all && ee->if_set && !ee->editable && (!text || !*text))
{
break;
default:
- /* FIXME: this needs a check for valid exif keys */
+ /** @FIXME this needs a check for valid exif keys */
new_entry = bar_pane_exif_add_entry(ped, (gchar *)gtk_selection_data_get_data(selection_data), NULL, TRUE, FALSE);
break;
}
write_char_option(outstr, indent, "id", ped->pane.id);
write_char_option(outstr, indent, "title", gtk_label_get_text(GTK_LABEL(ped->pane.title)));
WRITE_BOOL(ped->pane, expanded);
+ WRITE_BOOL(*ped, show_all);
WRITE_STRING(">");
indent++;
lw = work_windows->data;
bar = lw->bar;
pane = bar_find_pane_by_id(bar, PANE_EXIF, "exif");
- ped = g_object_get_data(G_OBJECT(pane), "pane_data");
-
- list = gtk_container_get_children(GTK_CONTAINER(ped->vbox));
- while (list)
+ if (pane)
{
- entry = list->data;
- list = list->next;
- ee = g_object_get_data(G_OBJECT(entry), "entry_data");
- exif_list = g_list_append(exif_list, g_strdup(ee->title));
- exif_list = g_list_append(exif_list, g_strdup(ee->key));
- }
+ ped = g_object_get_data(G_OBJECT(pane), "pane_data");
- g_list_free(list);
+ list = gtk_container_get_children(GTK_CONTAINER(ped->vbox));
+ while (list)
+ {
+ entry = list->data;
+ list = list->next;
+ ee = g_object_get_data(G_OBJECT(entry), "entry_data");
+ exif_list = g_list_append(exif_list, g_strdup(ee->title));
+ exif_list = g_list_append(exif_list, g_strdup(ee->key));
+ }
+ g_list_free(list);
+ }
return exif_list;
}
#endif
}
-static GtkWidget *bar_pane_exif_new(const gchar *id, const gchar *title, gboolean expanded)
+static GtkWidget *bar_pane_exif_new(const gchar *id, const gchar *title, gboolean expanded, gboolean show_all)
{
PaneExifData *ped;
ped->pane.id = g_strdup(id);
ped->pane.expanded = expanded;
ped->pane.type = PANE_EXIF;
+ ped->show_all = show_all;
ped->size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
ped->widget = gtk_event_box_new();
gchar *title = NULL;
gchar *id = g_strdup("exif");
gboolean expanded = TRUE;
+ gboolean show_all = FALSE;
GtkWidget *ret;
while (*attribute_names)
if (READ_CHAR_FULL("id", id)) continue;
if (READ_CHAR_FULL("title", title)) continue;
if (READ_BOOL_FULL("expanded", expanded)) continue;
+ if (READ_BOOL_FULL("show_all", show_all)) continue;
log_printf("unknown attribute %s = %s\n", option, value);
}
bar_pane_translate_title(PANE_EXIF, id, &title);
- ret = bar_pane_exif_new(id, title, expanded);
+ ret = bar_pane_exif_new(id, title, expanded, show_all);
g_free(title);
g_free(id);
return ret;
if (READ_CHAR_FULL("title", title)) continue;
if (READ_BOOL_FULL("expanded", ped->pane.expanded)) continue;
+ if (READ_BOOL_FULL("show_all", ped->show_all)) continue;
if (READ_CHAR_FULL("id", ped->pane.id)) continue;