997 GtkTreeViewColumn *column;
998 GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
999 gtk_widget_set_vexpand(scroll,
TRUE);
1013 for(GList *list_iter = images; list_iter; list_iter = g_list_next(list_iter))
1017 char timestamp_db[64], timestamp_xmp[64];
1019 strftime(timestamp_db,
sizeof(timestamp_db),
1021 strftime(timestamp_xmp,
sizeof(timestamp_xmp),
1027 gtk_list_store_append(
store, &iter);
1048 GtkWidget *tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(
store));
1049 GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
1050 gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
1052 gui->
tree = GTK_TREE_VIEW(tree);
1054 GtkCellRenderer *renderer_text = gtk_cell_renderer_text_new();
1055 column = gtk_tree_view_column_new_with_attributes
1056 (_(
"path"), renderer_text,
"text",
1058 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
1059 gtk_tree_view_column_set_expand(column,
TRUE);
1060 gtk_tree_view_column_set_resizable(column,
TRUE);
1062 g_object_set(renderer_text,
"ellipsize", PANGO_ELLIPSIZE_MIDDLE, NULL);
1064 column = gtk_tree_view_column_new_with_attributes
1065 (_(
"XMP timestamp"), gtk_cell_renderer_text_new(),
"text",
1067 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
1069 column = gtk_tree_view_column_new_with_attributes
1070 (_(
"database timestamp"), gtk_cell_renderer_text_new(),
"text",
1072 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
1074 column = gtk_tree_view_column_new_with_attributes
1075 (_(
"newest"), gtk_cell_renderer_text_new(),
"text",
1077 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
1079 GtkCellRenderer *renderer_date = gtk_cell_renderer_text_new();
1080 column = gtk_tree_view_column_new_with_attributes
1081 (_(
"time difference"), renderer_date,
"text",
1083 g_object_set(renderer_date,
"xalign", 1., NULL);
1084 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
1087 gtk_container_add(GTK_CONTAINER(scroll), tree);
1088 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
1089 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1093 GtkWidget *dialog = gtk_dialog_new_with_buttons
1094 (_(
"updated XMP sidecar files found"), GTK_WINDOW(win),
1095 GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, _(
"_close"),
1096 GTK_RESPONSE_CLOSE, NULL);
1098#ifdef GDK_WINDOWING_QUARTZ
1102 gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(win));
1103 GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
1106 gtk_container_add(GTK_CONTAINER(content_area), content_box);
1109 gtk_box_pack_start(GTK_BOX(content_box), box,
FALSE,
FALSE, 0);
1110 GtkWidget *select_all = gtk_button_new_with_label(_(
"select all"));
1111 GtkWidget *select_none = gtk_button_new_with_label(_(
"select none"));
1112 GtkWidget *select_invert = gtk_button_new_with_label(_(
"invert selection"));
1113 gtk_box_pack_start(GTK_BOX(box), select_all,
FALSE,
FALSE, 0);
1114 gtk_box_pack_start(GTK_BOX(box), select_none,
FALSE,
FALSE, 0);
1115 gtk_box_pack_start(GTK_BOX(box), select_invert,
FALSE,
FALSE, 0);
1120 gtk_box_pack_start(GTK_BOX(content_box), scroll,
TRUE,
TRUE, 0);
1123 gtk_box_pack_start(GTK_BOX(content_box), box,
FALSE,
FALSE, 1);
1124 GtkWidget *label = gtk_label_new_with_mnemonic(_(
"on the selection:"));
1125 GtkWidget *reload_button = gtk_button_new_with_label(_(
"keep the XMP edit"));
1126 GtkWidget *overwrite_button = gtk_button_new_with_label(_(
"keep the database edit"));
1127 GtkWidget *newest_button = gtk_button_new_with_label(_(
"keep the newest edit"));
1128 GtkWidget *oldest_button = gtk_button_new_with_label(_(
"keep the oldest edit"));
1129 gtk_box_pack_start(GTK_BOX(box), label,
FALSE,
FALSE, 0);
1130 gtk_box_pack_start(GTK_BOX(box), reload_button,
FALSE,
FALSE, 0);
1131 gtk_box_pack_start(GTK_BOX(box), overwrite_button,
FALSE,
FALSE, 0);
1132 gtk_box_pack_start(GTK_BOX(box), newest_button,
FALSE,
FALSE, 0);
1133 gtk_box_pack_start(GTK_BOX(box), oldest_button,
FALSE,
FALSE, 0);
1140 gui->
spinner = gtk_spinner_new();
1144 scroll = gtk_scrolled_window_new(NULL, NULL);
1145 gui->
log = gtk_tree_view_new();
1146 gtk_box_pack_start(GTK_BOX(content_box), scroll,
TRUE,
TRUE, 0);
1148 gtk_container_add(GTK_CONTAINER(scroll), gui->
log);
1149 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
1150 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1152 gtk_tree_view_insert_column_with_attributes
1153 (GTK_TREE_VIEW(gui->
log), -1,
1154 _(
"synchronization log"), renderer_text,
1157 GtkListStore *store_log = gtk_list_store_new (1, G_TYPE_STRING);
1158 GtkTreeModel *model_log = GTK_TREE_MODEL(store_log);
1159 gtk_tree_view_set_model(GTK_TREE_VIEW(gui->
log), model_log);
1160 g_object_unref(model_log);
1162 gtk_widget_show_all(dialog);
1164 g_signal_connect(dialog,
"response",