Revision: 1695
          http://geeqie.svn.sourceforge.net/geeqie/?rev=1695&view=rev
Author:   nadvornik
Date:     2009-05-09 19:45:24 +0000 (Sat, 09 May 2009)

Log Message:
-----------
expose the file grouping flag to the user

Modified Paths:
--------------
    trunk/src/filedata.c
    trunk/src/filedata.h
    trunk/src/layout_util.c
    trunk/src/view_file.c
    trunk/src/view_file_icon.c
    trunk/src/view_file_list.c

Modified: trunk/src/filedata.c
===================================================================
--- trunk/src/filedata.c        2009-05-09 19:25:51 UTC (rev 1694)
+++ trunk/src/filedata.c        2009-05-09 19:45:24 UTC (rev 1695)
@@ -670,6 +670,7 @@
 void file_data_disable_grouping(FileData *fd, gboolean disable)
 {
        if (!fd->disable_grouping == !disable) return;
+       
        fd->disable_grouping = !!disable;
        
        if (disable)
@@ -678,7 +679,6 @@
                        {
                        FileData *parent = file_data_ref(fd->parent);
                        file_data_disconnect_sidecar_file(parent, fd);
-                       file_data_send_notification(fd, NOTIFY_GROUPING);
                        file_data_send_notification(parent, NOTIFY_GROUPING);
                        file_data_unref(parent);
                        }
@@ -693,18 +693,37 @@
                                file_data_disconnect_sidecar_file(fd, sfd);
                                file_data_send_notification(sfd, 
NOTIFY_GROUPING);
                                }
-                       file_data_send_notification(fd, NOTIFY_GROUPING);
                        file_data_check_sidecars((FileData 
*)sidecar_files->data, FALSE); /* this will group the sidecars back together */
                        filelist_free(sidecar_files);
                        }
+               else
+                       {
+                       file_data_increment_version(fd); /* the functions 
called in the cases above increments the version too */
+                       }
                }
        else
                {
+               file_data_increment_version(fd);
                file_data_check_sidecars(fd, FALSE);
-               file_data_send_notification(fd, NOTIFY_GROUPING);
                }
+       file_data_send_notification(fd, NOTIFY_GROUPING);
 }
 
+void file_data_disable_grouping_list(GList *fd_list, gboolean disable)
+{
+       GList *work;
+       
+       work = fd_list;
+       while (work)
+               {
+               FileData *fd = work->data;
+               
+               file_data_disable_grouping(fd, disable);
+               work = work->next;
+               }
+}
+
+
 /* compare name without extension */
 gint file_data_compare_name_without_ext(FileData *fd1, FileData *fd2)
 {

Modified: trunk/src/filedata.h
===================================================================
--- trunk/src/filedata.h        2009-05-09 19:25:51 UTC (rev 1694)
+++ trunk/src/filedata.h        2009-05-09 19:45:24 UTC (rev 1695)
@@ -43,6 +43,7 @@
 void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd);
 
 void file_data_disable_grouping(FileData *fd, gboolean disable);
+void file_data_disable_grouping_list(GList *fd_list, gboolean disable);
 
 gint filelist_sort_compare_filedata(FileData *fa, FileData *fb);
 gint filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType 
method, gboolean ascend);

Modified: trunk/src/layout_util.c
===================================================================
--- trunk/src/layout_util.c     2009-05-09 19:25:51 UTC (rev 1694)
+++ trunk/src/layout_util.c     2009-05-09 19:45:24 UTC (rev 1695)
@@ -301,6 +301,20 @@
        file_util_delete(NULL, layout_selection_list(lw), layout_window(lw));
 }
 
+static void layout_menu_disable_grouping_cb(GtkAction *action, gpointer data)
+{
+       LayoutWindow *lw = data;
+
+       file_data_disable_grouping_list(layout_selection_list(lw), TRUE);
+}
+
+static void layout_menu_enable_grouping_cb(GtkAction *action, gpointer data)
+{
+       LayoutWindow *lw = data;
+
+       file_data_disable_grouping_list(layout_selection_list(lw), FALSE);
+}
+
 static void layout_menu_close_cb(GtkAction *action, gpointer data)
 {
        LayoutWindow *lw = data;
@@ -1236,6 +1250,8 @@
   { "Delete",          GTK_STOCK_DELETE,       N_("_Delete..."),               
        "<control>D",           N_("Delete..."),                        
CB(layout_menu_delete_cb) },
   { "DeleteAlt1",      GTK_STOCK_DELETE,       N_("_Delete..."),               
        "Delete",               N_("Delete..."),                        
CB(layout_menu_delete_cb) },
   { "DeleteAlt2",      GTK_STOCK_DELETE,       N_("_Delete..."),               
        "KP_Delete",            N_("Delete..."),                        
CB(layout_menu_delete_cb) },
+  { "EnableGrouping",  NULL,                   N_("Enable file _grouping"),    
        NULL,                   N_("Enable file grouping"),             
CB(layout_menu_enable_grouping_cb) },
+  { "DisableGrouping", NULL,                   N_("Disable file groupi_ng"),   
        NULL,                   N_("Disable file grouping"),            
CB(layout_menu_disable_grouping_cb) },
   { "CopyPath",                NULL,                   N_("_Copy path to 
clipboard"),          NULL,                   N_("Copy path to clipboard"),     
      CB(layout_menu_copy_path_cb) },
   { "CloseWindow",     GTK_STOCK_CLOSE,        N_("C_lose window"),            
        "<control>W",           N_("Close window"),                     
CB(layout_menu_close_cb) },
   { "Quit",            GTK_STOCK_QUIT,         N_("_Quit"),                    
        "<control>Q",           N_("Quit"),                             
CB(layout_menu_exit_cb) },

Modified: trunk/src/view_file.c
===================================================================
--- trunk/src/view_file.c       2009-05-09 19:25:51 UTC (rev 1694)
+++ trunk/src/view_file.c       2009-05-09 19:45:24 UTC (rev 1695)
@@ -374,6 +374,20 @@
        file_util_copy_path_list_to_clipboard(vf_pop_menu_file_list(vf));
 }
 
+static void vf_pop_menu_enable_grouping_cb(GtkWidget *widget, gpointer data)
+{
+       ViewFile *vf = data;
+
+       file_data_disable_grouping_list(vf_pop_menu_file_list(vf), FALSE);
+}
+
+static void vf_pop_menu_disable_grouping_cb(GtkWidget *widget, gpointer data)
+{
+       ViewFile *vf = data;
+
+       file_data_disable_grouping_list(vf_pop_menu_file_list(vf), TRUE);
+}
+
 static void vf_pop_menu_sort_cb(GtkWidget *widget, gpointer data)
 {
        ViewFile *vf;
@@ -583,6 +597,11 @@
        menu_item_add_sensitive(menu, _("_Copy path"), active,
                                G_CALLBACK(vf_pop_menu_copy_path_cb), vf);
 
+       menu_item_add_sensitive(menu, _("Enable file _grouping"), active,
+                               G_CALLBACK(vf_pop_menu_enable_grouping_cb), vf);
+       menu_item_add_sensitive(menu, _("Disable file groupi_ng"), active,
+                               G_CALLBACK(vf_pop_menu_disable_grouping_cb), 
vf);
+
        menu_item_add_divider(menu);
 
        submenu = submenu_add_sort(NULL, G_CALLBACK(vf_pop_menu_sort_cb), vf,

Modified: trunk/src/view_file_icon.c
===================================================================
--- trunk/src/view_file_icon.c  2009-05-09 19:25:51 UTC (rev 1694)
+++ trunk/src/view_file_icon.c  2009-05-09 19:45:24 UTC (rev 1695)
@@ -2356,7 +2356,8 @@
                                }
                        else
                                {
-                               name_sidecars = g_strdup_printf("%s%s", link, 
id->fd->name);
+                               gchar *disabled_grouping = 
id->fd->disable_grouping ? _(" [NO GROUPING]") : "";
+                               name_sidecars = g_strdup_printf("%s%s%s", link, 
id->fd->name, disabled_grouping);
                                }
 
                        g_object_set(cell,      "pixbuf", id->fd->thumb_pixbuf,

Modified: trunk/src/view_file_list.c
===================================================================
--- trunk/src/view_file_list.c  2009-05-09 19:25:51 UTC (rev 1694)
+++ trunk/src/view_file_list.c  2009-05-09 19:45:24 UTC (rev 1695)
@@ -799,7 +799,8 @@
                }
        else
                {
-               name_sidecars = g_strdup_printf("%s%s", link, fd->name);
+               gchar *disabled_grouping = fd->disable_grouping ? _(" [NO 
GROUPING]") : "";
+               name_sidecars = g_strdup_printf("%s%s%s", link, fd->name, 
disabled_grouping);
                }
        size = text_from_size(fd->size);
        


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

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn

Reply via email to