Revision: 1662
          http://geeqie.svn.sourceforge.net/geeqie/?rev=1662&view=rev
Author:   nadvornik
Date:     2009-04-25 20:55:11 +0000 (Sat, 25 Apr 2009)

Log Message:
-----------
added more info to the details dialog

Modified Paths:
--------------
    trunk/src/utilops.c

Modified: trunk/src/utilops.c
===================================================================
--- trunk/src/utilops.c 2009-04-24 23:26:49 UTC (rev 1661)
+++ trunk/src/utilops.c 2009-04-25 20:55:11 UTC (rev 1662)
@@ -1749,17 +1749,54 @@
        file_util_details_dialog_exclude(gd, data, TRUE);
 }
 
+static gchar *file_util_details_get_message(UtilityData *ud, FileData *fd, 
const gchar **stock_id)
+{
+       GString *message = g_string_new("");
+       gint error;
+       g_string_append_printf(message, _("File: '%s'\n"), fd->path);
+       
+       if (ud->with_sidecars && fd->sidecar_files)
+               {
+               GList *work = fd->sidecar_files;
+               g_string_append(message, _("with sidecar files:\n"));
+               
+               while (work)
+                       {
+                       FileData *sfd = work->data;
+                       work =work->next;
+                       g_string_append_printf(message, _(" '%s'\n"), 
sfd->path);
+                       }
+               }
+       
+       g_string_append(message, _("\nStatus: "));
+       
+       error = ud->with_sidecars ? file_data_sc_verify_ci(fd) : 
file_data_verify_ci(fd);
+
+       if (error)
+               {
+               gchar *err_msg = file_data_get_error_string(error);
+               g_string_append(message, err_msg);
+               if (stock_id) *stock_id = (error & CHANGE_ERROR_MASK) ? 
GTK_STOCK_DIALOG_ERROR : GTK_STOCK_DIALOG_WARNING;
+               }
+       else
+               {
+               g_string_append(message, _("no problem detected"));
+               if (stock_id) *stock_id = GTK_STOCK_DIALOG_INFO;
+               }
+
+       return g_string_free(message, FALSE);;
+}
+
 static void file_util_details_dialog(UtilityData *ud, FileData *fd)
 {
        GenericDialog *gd;
        GtkWidget *box;
        gchar *message;
-       gint error;
        const gchar *stock_id;
        
        gd = file_util_gen_dlg(_("File details"), "details", ud->gd->dialog, 
TRUE, NULL, ud);
-       generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, 
file_util_details_dialog_ok_cb, TRUE);
-       generic_dialog_add_button(gd, GTK_STOCK_CANCEL, _("Exclude file"), 
file_util_details_dialog_exclude_cb, FALSE);
+       generic_dialog_add_button(gd, GTK_STOCK_CLOSE, NULL, 
file_util_details_dialog_ok_cb, TRUE);
+       generic_dialog_add_button(gd, GTK_STOCK_REMOVE, _("Exclude file"), 
file_util_details_dialog_exclude_cb, FALSE);
 
        g_object_set_data(G_OBJECT(gd->dialog), "file_data", fd);
 
@@ -1771,19 +1808,8 @@
                         G_CALLBACK(file_util_details_dialog_close_cb), 
gd->dialog);
 
 
-       error = ud->with_sidecars ? file_data_sc_verify_ci(fd) : 
file_data_verify_ci(fd);
+       message = file_util_details_get_message(ud, fd, &stock_id);
 
-       if (error)
-               {
-               message = file_data_get_error_string(error);
-               stock_id = (error & CHANGE_ERROR_MASK) ? GTK_STOCK_DIALOG_ERROR 
: GTK_STOCK_DIALOG_WARNING;
-               }
-       else
-               {
-               message = g_strdup(_("No problem detected"));
-               stock_id = GTK_STOCK_APPLY;
-               }
-
        box = generic_dialog_add_message(gd, stock_id, _("File details"), 
message);
 
        generic_dialog_add_image(gd, box, fd, NULL, NULL, NULL, FALSE);
@@ -1798,10 +1824,13 @@
        GenericDialog *gd;
        GtkWidget *box;
        GtkWidget *table;
+       GtkWidget *frame;
        GList *keys = NULL;
        GList *work;
-       gchar *message = g_strdup_printf(_("This is a list of modified metadata 
tags that will be written for file '%s'"), fd->name);
+       gchar *message1;
+       gchar *message2;
        gint i;
+       const gchar *stock_id;
        
        if (fd && fd->modified_xmp)
                {
@@ -1812,8 +1841,8 @@
        
        
        gd = file_util_gen_dlg(_("Overview of changed metadata"), "details", 
ud->gd->dialog, TRUE, NULL, ud);
-       generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, 
file_util_details_dialog_ok_cb, TRUE);
-       generic_dialog_add_button(gd, GTK_STOCK_CANCEL, _("Exclude file"), 
file_util_details_dialog_exclude_cb, FALSE);
+       generic_dialog_add_button(gd, GTK_STOCK_CLOSE, NULL, 
file_util_details_dialog_ok_cb, TRUE);
+       generic_dialog_add_button(gd, GTK_STOCK_REMOVE, _("Exclude file"), 
file_util_details_dialog_exclude_cb, FALSE);
        generic_dialog_add_button(gd, GTK_STOCK_REVERT_TO_SAVED, _("Discard 
changes"), file_util_details_dialog_discard_cb, FALSE);
 
        g_object_set_data(G_OBJECT(gd->dialog), "file_data", fd);
@@ -1825,13 +1854,23 @@
        g_signal_connect(G_OBJECT(ud->gd->dialog), "destroy",
                         G_CALLBACK(file_util_details_dialog_close_cb), 
gd->dialog);
 
+       message1 = file_util_details_get_message(ud, fd, &stock_id);
 
+       if (fd->change && fd->change->dest)
+               {
+               message2 = g_strdup_printf(_("The following metadata tags will 
be written to '%s'."), fd->change->dest);
+               }
+       else
+               {
+               message2 = g_strdup_printf(_("The following metadata tags will 
be written to the image file itself."));
+               }
 
-       box = generic_dialog_add_message(gd, GTK_STOCK_DIALOG_INFO, _("Overview 
of changed metadata"), message);
+       box = generic_dialog_add_message(gd, stock_id, _("Overview of changed 
metadata"), message1);
 
-       box = pref_group_new(box, TRUE, NULL, GTK_ORIENTATION_HORIZONTAL);
+       box = pref_group_new(box, TRUE, message2, GTK_ORIENTATION_HORIZONTAL);
 
-       table = pref_table_new(box, 2, g_list_length(keys), FALSE, TRUE);
+       frame = pref_frame_new(box, TRUE, NULL, GTK_ORIENTATION_HORIZONTAL, 2);
+       table = pref_table_new(frame, 2, g_list_length(keys), FALSE, TRUE);
 
        work = keys;
        i = 0;
@@ -1855,6 +1894,7 @@
                gtk_widget_show(label);
 
                label = gtk_label_new(value);
+               
                gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
                gtk_table_attach(GTK_TABLE(table), label,
                                 1, 2, i, i + 1,
@@ -1873,7 +1913,8 @@
        gtk_widget_show(gd->dialog);
        
        g_list_free(keys);
-       g_free(message);
+       g_free(message1);
+       g_free(message2);
 }
 
 static void file_util_delete_full(FileData *source_fd, GList *source_list, 
GtkWidget *parent, UtilityPhase phase)


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn

Reply via email to