Skip to content

Commit

Permalink
added mark filter to menu - now it is possible to assign hotkeys
Browse files Browse the repository at this point in the history
  • Loading branch information
nadvornik committed Jun 6, 2009
1 parent da1d8ad commit 8319631
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/layout.c
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,14 @@ void layout_selection_to_mark(LayoutWindow *lw, gint mark, SelectionToMarkMode m
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
Expand Down
2 changes: 2 additions & 0 deletions src/layout.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ void layout_select_invert(LayoutWindow *lw);
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);
Expand Down
15 changes: 14 additions & 1 deletion src/layout_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -895,6 +895,16 @@ static void layout_menu_sel_mark_minus_cb(GtkAction *action, gpointer data)
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);
}


/*
*-----------------------------------------------------------------------------
Expand Down Expand Up @@ -1618,6 +1628,7 @@ static void layout_actions_setup_marks(LayoutWindow *lw)
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'>"
Expand All @@ -1629,8 +1640,10 @@ static void layout_actions_setup_marks(LayoutWindow *lw)
" <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,
Expand Down
7 changes: 7 additions & 0 deletions src/view_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -711,6 +711,13 @@ static GtkWidget *vf_marks_filter_init(ViewFile *vf)
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;
Expand Down
1 change: 1 addition & 0 deletions src/view_file.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ void vf_marks_set(ViewFile *vf, gboolean enable);
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);
Expand Down

0 comments on commit 8319631

Please sign in to comment.