# HG changeset patch # User nadvornik # Date 1246135637 0 # Node ID 8ebc26a4383f2f37a7f313fd3078a0a7a57e00f6 # Parent 0806ccdfe06bc22dc60cd503b03b157fbc081822 use radio buttons for file and dir mode in popup menu diff -r 0806ccdfe06b -r 8ebc26a4383f src/layout_util.c --- a/src/layout_util.c Sat Jun 27 20:12:56 2009 +0000 +++ b/src/layout_util.c Sat Jun 27 20:47:17 2009 +0000 @@ -611,7 +611,7 @@ LayoutWindow *lw = data; layout_exit_fullscreen(lw); - layout_views_set(lw, lw->options.dir_view_type, (gtk_radio_action_get_current_value(action) == 1) ? FILEVIEW_ICON : FILEVIEW_LIST); + layout_views_set(lw, lw->options.dir_view_type, (FileViewType) gtk_radio_action_get_current_value(action)); } static void layout_menu_view_dir_as_cb(GtkRadioAction *action, GtkRadioAction *current, gpointer data) @@ -1415,8 +1415,8 @@ }; static GtkRadioActionEntry menu_radio_entries[] = { - { "ViewList", NULL, N_("Image _List"), "L", N_("View Images as List"), 0 }, - { "ViewIcons", NULL, N_("I_cons"), "I", N_("View Images as Icons"), 1 } + { "ViewList", NULL, N_("Image _List"), "L", N_("View Images as List"), FILEVIEW_LIST }, + { "ViewIcons", NULL, N_("I_cons"), "I", N_("View Images as Icons"), FILEVIEW_ICON } }; static GtkRadioActionEntry menu_view_dir_radio_entries[] = { @@ -2284,7 +2284,7 @@ radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->split_mode); action = gtk_action_group_get_action(lw->action_group, "ViewIcons"); - gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->options.file_view_type); + radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->options.file_view_type); action = gtk_action_group_get_action(lw->action_group, "FloatTools"); gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->options.tools_float); diff -r 0806ccdfe06b -r 8ebc26a4383f src/view_dir.c --- a/src/view_dir.c Sat Jun 27 20:12:56 2009 +0000 +++ b/src/view_dir.c Sat Jun 27 20:47:17 2009 +0000 @@ -521,12 +521,11 @@ file_util_copy_path_to_clipboard(vd->click_fd); } -#define VIEW_DIR_AS_SUBMENU_KEY "view_dir_as_submenu" static void vd_pop_submenu_dir_view_as_cb(GtkWidget *widget, gpointer data) { ViewDir *vd = data; - DirViewType new_type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), VIEW_DIR_AS_SUBMENU_KEY)); + DirViewType new_type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "menu_item_radio_data")); layout_views_set(vd->layout, new_type, vd->layout->options.file_view_type); } @@ -674,13 +673,11 @@ menu_item_add_divider(menu); - item = menu_item_add_check(menu, _("View as _List"), vd->type == DIRVIEW_LIST, + item = menu_item_add_radio(menu, _("View as _List"), GINT_TO_POINTER(DIRVIEW_LIST), vd->type == DIRVIEW_LIST, G_CALLBACK(vd_pop_submenu_dir_view_as_cb), vd); - g_object_set_data(G_OBJECT(item), VIEW_DIR_AS_SUBMENU_KEY, GINT_TO_POINTER(DIRVIEW_LIST)); - item = menu_item_add_check(menu, _("View as _Tree"), vd->type == DIRVIEW_TREE, + item = menu_item_add_radio(menu, _("View as _Tree"), GINT_TO_POINTER(DIRVIEW_TREE), vd->type == DIRVIEW_TREE, G_CALLBACK(vd_pop_submenu_dir_view_as_cb), vd); - g_object_set_data(G_OBJECT(item), VIEW_DIR_AS_SUBMENU_KEY, GINT_TO_POINTER(DIRVIEW_TREE)); menu_item_add_divider(menu); diff -r 0806ccdfe06b -r 8ebc26a4383f src/view_file.c --- a/src/view_file.c Sat Jun 27 20:12:56 2009 +0000 +++ b/src/view_file.c Sat Jun 27 20:47:17 2009 +0000 @@ -467,18 +467,10 @@ static void vf_pop_menu_toggle_view_type_cb(GtkWidget *widget, gpointer data) { ViewFile *vf = data; - + FileViewType new_type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "menu_item_radio_data")); if (!vf->layout) return; - switch (vf->type) - { - case FILEVIEW_LIST: - layout_views_set(vf->layout, vf->layout->options.dir_view_type, FILEVIEW_ICON); - break; - case FILEVIEW_ICON: - layout_views_set(vf->layout, vf->layout->options.dir_view_type, FILEVIEW_LIST); - break; - } + layout_views_set(vf->layout, vf->layout->options.dir_view_type, new_type); } static void vf_pop_menu_refresh_cb(GtkWidget *widget, gpointer data) @@ -611,8 +603,11 @@ item = menu_item_add(menu, _("_Sort"), NULL, NULL); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); - menu_item_add_check(menu, _("View as _icons"), (vf->type == FILEVIEW_ICON), - G_CALLBACK(vf_pop_menu_toggle_view_type_cb), vf); + item = menu_item_add_radio(menu, _("View as _List"), GINT_TO_POINTER(FILEVIEW_LIST), vf->type == FILEVIEW_LIST, + G_CALLBACK(vf_pop_menu_toggle_view_type_cb), vf); + + item = menu_item_add_radio(menu, _("View as _Icons"), GINT_TO_POINTER(FILEVIEW_ICON), vf->type == FILEVIEW_ICON, + G_CALLBACK(vf_pop_menu_toggle_view_type_cb), vf); switch (vf->type) {