Revision: 1734
          http://geeqie.svn.sourceforge.net/geeqie/?rev=1734&view=rev
Author:   nadvornik
Date:     2009-06-06 22:51:55 +0000 (Sat, 06 Jun 2009)

Log Message:
-----------
added mark filter to menu - now it is possible to assign hotkeys

Modified Paths:
--------------
    trunk/src/layout.c
    trunk/src/layout.h
    trunk/src/layout_util.c
    trunk/src/view_file.c
    trunk/src/view_file.h

Modified: trunk/src/layout.c
===================================================================
--- trunk/src/layout.c  2009-06-06 19:39:46 UTC (rev 1733)
+++ trunk/src/layout.c  2009-06-06 22:51:55 UTC (rev 1734)
@@ -814,6 +814,14 @@
        layout_status_update_info(lw, NULL); /* osd in fullscreen mode */
 }
 
+void layout_mark_filter_toggle(LayoutWindow *lw, gint mark)
+{
+       if (!layout_valid(&lw)) return;
+
+       if (lw->vf) vf_mark_filter_toggle(lw->vf, mark);
+}
+
+
 /*
  *-----------------------------------------------------------------------------
  * access

Modified: trunk/src/layout.h
===================================================================
--- trunk/src/layout.h  2009-06-06 19:39:46 UTC (rev 1733)
+++ trunk/src/layout.h  2009-06-06 22:51:55 UTC (rev 1734)
@@ -70,6 +70,8 @@
 void layout_mark_to_selection(LayoutWindow *lw, gint mark, MarkToSelectionMode 
mode);
 void layout_selection_to_mark(LayoutWindow *lw, gint mark, SelectionToMarkMode 
mode);
 
+void layout_mark_filter_toggle(LayoutWindow *lw, gint mark);
+
 void layout_refresh(LayoutWindow *lw);
 
 void layout_thumb_set(LayoutWindow *lw, gboolean enable);

Modified: trunk/src/layout_util.c
===================================================================
--- trunk/src/layout_util.c     2009-06-06 19:39:46 UTC (rev 1733)
+++ trunk/src/layout_util.c     2009-06-06 22:51:55 UTC (rev 1734)
@@ -895,7 +895,17 @@
        layout_mark_to_selection(lw, mark, MTS_MODE_MINUS);
 }
 
+static void layout_menu_mark_filter_toggle_cb(GtkAction *action, gpointer data)
+{
+       LayoutWindow *lw = data;
+       gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), 
"mark_num"));
+       g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
+       layout_marks_set(lw, TRUE);
+       layout_mark_filter_toggle(lw, mark);
+}
+
+
 /*
  *-----------------------------------------------------------------------------
  * go menu
@@ -1618,6 +1628,7 @@
                layout_actions_setup_mark(lw, mark, "AddMark%d",        _("_Add 
mark %d"),                      NULL,           _("Add mark %d"), 
G_CALLBACK(layout_menu_sel_mark_or_cb));
                layout_actions_setup_mark(lw, mark, "IntMark%d",        
_("_Intersection with mark %d"),        NULL,           _("Intersection with 
mark %d"), G_CALLBACK(layout_menu_sel_mark_and_cb));
                layout_actions_setup_mark(lw, mark, "UnselMark%d",      
_("_Unselect mark %d"),                 NULL,           _("Unselect mark %d"), 
G_CALLBACK(layout_menu_sel_mark_minus_cb));
+               layout_actions_setup_mark(lw, mark, "FilterMark%d",     
_("_Filter mark %d"),                   NULL,           _("Filter mark %d"), 
G_CALLBACK(layout_menu_mark_filter_toggle_cb));
 
                g_string_append_printf(desc,
                                "      <menu action='Mark%d'>"
@@ -1629,8 +1640,10 @@
                                "        <menuitem action='AddMark%d'/>"
                                "        <menuitem action='IntMark%d'/>"
                                "        <menuitem action='UnselMark%d'/>"
+                               "        <separator/>"
+                               "        <menuitem action='FilterMark%d'/>"
                                "      </menu>",
-                               mark, mark, mark, mark, mark, mark, mark, mark);
+                               mark, mark, mark, mark, mark, mark, mark, mark, 
mark);
                }
 
        g_string_append(desc,

Modified: trunk/src/view_file.c
===================================================================
--- trunk/src/view_file.c       2009-06-06 19:39:46 UTC (rev 1733)
+++ trunk/src/view_file.c       2009-06-06 22:51:55 UTC (rev 1734)
@@ -711,6 +711,13 @@
        return frame;
 }
 
+void vf_mark_filter_toggle(ViewFile *vf, gint mark)
+{
+       gint n = mark - 1;
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(vf->filter_check[n]),
+                                    
!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(vf->filter_check[n])));
+}
+
 ViewFile *vf_new(FileViewType type, FileData *dir_fd)
 {
        ViewFile *vf;

Modified: trunk/src/view_file.h
===================================================================
--- trunk/src/view_file.h       2009-06-06 19:39:46 UTC (rev 1733)
+++ trunk/src/view_file.h       2009-06-06 22:51:55 UTC (rev 1734)
@@ -35,6 +35,7 @@
 void vf_sort_set(ViewFile *vf, SortType type, gboolean ascend);
 
 guint vf_marks_get_filter(ViewFile *vf);
+void vf_mark_filter_toggle(ViewFile *vf, gint mark);
 
 GList *vf_pop_menu_file_list(ViewFile *vf);
 GtkWidget *vf_pop_menu(ViewFile *vf);


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

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn

Reply via email to