From afb7053066f0c1737f77495ce0cc005f240bed28 Mon Sep 17 00:00:00 2001 From: Bhaskar Bhat Date: Fri, 25 Nov 2011 22:45:00 +0530 Subject: [PATCH 3/3] Improvement Version 3 --- src/gnome-cmd-options-dialog.cc | 351 ++++++++++++++++++++++++++++++++------- 1 files changed, 294 insertions(+), 57 deletions(-) diff --git a/src/gnome-cmd-options-dialog.cc b/src/gnome-cmd-options-dialog.cc index dd32e77..691213f 100644 --- a/src/gnome-cmd-options-dialog.cc +++ b/src/gnome-cmd-options-dialog.cc @@ -233,6 +233,84 @@ inline void store_general_options (GtkWidget *dialog, GnomeCmdData::Options &cfg * **********************************************************************/ +static void on_size_powered_radio_toggled (GtkRadioButton *radio, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (radio)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio))) + { + cfg->size_disp_mode = GNOME_CMD_SIZE_DISP_MODE_POWERED; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + + +static void on_size_locale_radio_toggled (GtkRadioButton *radio, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (radio)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio))) + { + cfg->size_disp_mode = GNOME_CMD_SIZE_DISP_MODE_LOCALE; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + + +static void on_size_grouped_radio_toggled (GtkRadioButton *radio, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (radio)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio))) + { + cfg->size_disp_mode = GNOME_CMD_SIZE_DISP_MODE_GROUPED; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + + +static void on_size_plain_radio_toggled (GtkRadioButton *radio, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (radio)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio))) + { + cfg->size_disp_mode = GNOME_CMD_SIZE_DISP_MODE_PLAIN; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + + +static void on_perm_text_radio_toggled (GtkRadioButton *radio, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (radio)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio))) + { + cfg->perm_disp_mode = GNOME_CMD_PERM_DISP_MODE_TEXT; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + + +static void on_perm_num_radio_toggled (GtkRadioButton *radio, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (radio)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio))) + { + cfg->perm_disp_mode = GNOME_CMD_PERM_DISP_MODE_NUMBER; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + + static void on_date_format_update (GtkEditable *editable, GtkWidget *options_dialog) { GtkWidget *format_entry = lookup_widget (options_dialog, "date_format_entry"); @@ -255,7 +333,7 @@ static void on_date_format_update (GtkEditable *editable, GtkWidget *options_dia inline GtkWidget *create_format_tab (GtkWidget *parent, GnomeCmdData::Options &cfg) { GtkWidget *frame, *hbox, *vbox, *cat, *cat_box, *table; - GtkWidget *radio, *label, *entry; + GtkWidget *sp_radio, *sl_radio, *sg_radio, *spl_radio, *pt_radio, *pn_radio, *label, *entry; frame = create_tabframe (parent); hbox = create_tabhbox (parent); @@ -269,26 +347,26 @@ inline GtkWidget *create_format_tab (GtkWidget *parent, GnomeCmdData::Options &c gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, TRUE, 0); // Translators: 'Powered' refers to the mode of file size display (here - display using units of data: kB, MB, GB, ...) - radio = create_radio (parent, NULL, _("Powered"), "size_powered_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + sp_radio = create_radio (parent, NULL, _("Powered"), "size_powered_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), sp_radio); if (cfg.size_disp_mode == GNOME_CMD_SIZE_DISP_MODE_POWERED) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sp_radio), TRUE); // Translators: '' refers to the mode of file size display (here - use current locale settings) - radio = create_radio (parent, get_radio_group (radio), _(""), "size_locale_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + sl_radio = create_radio (parent, get_radio_group (sp_radio), _(""), "size_locale_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), sl_radio); if (cfg.size_disp_mode == GNOME_CMD_SIZE_DISP_MODE_LOCALE) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sl_radio), TRUE); - radio = create_radio (parent, get_radio_group (radio), _("Grouped"), "size_grouped_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + sg_radio = create_radio (parent, get_radio_group (sl_radio), _("Grouped"), "size_grouped_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), sg_radio); if (cfg.size_disp_mode == GNOME_CMD_SIZE_DISP_MODE_GROUPED) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sg_radio), TRUE); - radio = create_radio (parent, get_radio_group (radio), _("Plain"), "size_plain_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + spl_radio = create_radio (parent, get_radio_group (sg_radio), _("Plain"), "size_plain_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), spl_radio); if (cfg.size_disp_mode == GNOME_CMD_SIZE_DISP_MODE_PLAIN) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (spl_radio), TRUE); // Permission display mode @@ -296,15 +374,15 @@ inline GtkWidget *create_format_tab (GtkWidget *parent, GnomeCmdData::Options &c cat = create_category (parent, cat_box, _("Permission display mode")); gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, TRUE, 0); - radio = create_radio (parent, NULL, _("Text (rw-r--r--)"), "perm_text_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + pt_radio = create_radio (parent, NULL, _("Text (rw-r--r--)"), "perm_text_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), pt_radio); if (cfg.perm_disp_mode == GNOME_CMD_PERM_DISP_MODE_TEXT) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pt_radio), TRUE); - radio = create_radio (parent, get_radio_group (radio), _("Number (644)"), "perm_num_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + pn_radio = create_radio (parent, get_radio_group (pt_radio), _("Number (644)"), "perm_num_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), pn_radio); if (cfg.perm_disp_mode == GNOME_CMD_PERM_DISP_MODE_NUMBER) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pn_radio), TRUE); // Date options @@ -332,6 +410,12 @@ inline GtkWidget *create_format_tab (GtkWidget *parent, GnomeCmdData::Options &c gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); table_add (table, label, 1, 2, GTK_FILL); + g_signal_connect (sp_radio, "toggled", G_CALLBACK (on_size_powered_radio_toggled), &cfg); + g_signal_connect (sl_radio, "toggled", G_CALLBACK (on_size_locale_radio_toggled), &cfg); + g_signal_connect (sg_radio, "toggled", G_CALLBACK (on_size_grouped_radio_toggled), &cfg); + g_signal_connect (spl_radio, "toggled", G_CALLBACK (on_size_plain_radio_toggled), &cfg); + g_signal_connect (pt_radio, "toggled", G_CALLBACK (on_perm_text_radio_toggled), &cfg); + g_signal_connect (pn_radio, "toggled", G_CALLBACK (on_perm_num_radio_toggled), &cfg); g_signal_connect (entry, "realize", G_CALLBACK (on_date_format_update), parent); g_signal_connect (entry, "changed", G_CALLBACK (on_date_format_update), parent); @@ -903,11 +987,59 @@ inline void store_layout_options (GtkWidget *dialog, GnomeCmdData::Options &cfg) * The Tabs tab * **********************************************************************/ +static void on_show_tab_toggled (GtkCheckButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_CHECK_BUTTON (btn)); + + cfg->always_show_tabs = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (btn)); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_icon_radio_toggled (GtkRadioButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (btn)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (btn))) + { + cfg->tab_lock_indicator = GnomeCmdData::TAB_LOCK_ICON; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + + +static void on_ast_radio_toggled (GtkRadioButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (btn)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (btn))) + { + cfg->tab_lock_indicator = GnomeCmdData::TAB_LOCK_ASTERISK; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + + +static void on_text_radio_toggled (GtkRadioButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_RADIO_BUTTON (btn)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (btn))) + { + cfg->tab_lock_indicator = GnomeCmdData::TAB_LOCK_STYLED_TEXT; + gnome_cmd_style_create (*cfg); + main_win->update_style (); + } +} + inline GtkWidget *create_tabs_tab (GtkWidget *parent, GnomeCmdData::Options &cfg) { GtkWidget *frame, *hbox, *vbox, *cat, *cat_box; - GtkWidget *radio, *check; + GtkWidget *icon_radio, *ast_radio, *text_radio, *check; frame = create_tabframe (parent); hbox = create_tabhbox (parent); @@ -930,20 +1062,25 @@ inline GtkWidget *create_tabs_tab (GtkWidget *parent, GnomeCmdData::Options &cfg cat = create_category (parent, cat_box, _("Tab lock indicator")); gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, TRUE, 0); - radio = create_radio (parent, NULL, _("Lock icon"), "tab_lock_icon_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + icon_radio = create_radio (parent, NULL, _("Lock icon"), "tab_lock_icon_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), icon_radio); if (cfg.tab_lock_indicator == GnomeCmdData::TAB_LOCK_ICON) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (icon_radio), TRUE); - radio = create_radio (parent, get_radio_group (radio), _("* (asterisk)"), "tab_lock_asterisk_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + ast_radio = create_radio (parent, get_radio_group (icon_radio), _("* (asterisk)"), "tab_lock_asterisk_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), ast_radio); if (cfg.tab_lock_indicator == GnomeCmdData::TAB_LOCK_ASTERISK) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ast_radio), TRUE); - radio = create_radio (parent, get_radio_group (radio), _("Styled text"), "tab_lock_style_radio"); - gtk_container_add (GTK_CONTAINER (cat_box), radio); + text_radio = create_radio (parent, get_radio_group (ast_radio), _("Styled text"), "tab_lock_style_radio"); + gtk_container_add (GTK_CONTAINER (cat_box), text_radio); if (cfg.tab_lock_indicator == GnomeCmdData::TAB_LOCK_STYLED_TEXT) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (text_radio), TRUE); + + g_signal_connect (check, "toggled", G_CALLBACK (on_show_tab_toggled), &cfg); + g_signal_connect (icon_radio, "toggled", G_CALLBACK (on_icon_radio_toggled), &cfg); + g_signal_connect (ast_radio, "toggled", G_CALLBACK (on_ast_radio_toggled), &cfg); + g_signal_connect (text_radio, "toggled", G_CALLBACK (on_text_radio_toggled), &cfg); return frame; } @@ -1087,6 +1224,86 @@ inline void store_confirmation_options (GtkWidget *dialog, GnomeCmdData::Options * **********************************************************************/ +static void on_unknown_check_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.file_types[GNOME_VFS_FILE_TYPE_UNKNOWN] = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_regular_check_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.file_types[GNOME_VFS_FILE_TYPE_REGULAR] = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_directory_check_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.file_types[GNOME_VFS_FILE_TYPE_DIRECTORY] = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_fifo_check_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.file_types[GNOME_VFS_FILE_TYPE_FIFO] = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_socket_check_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.file_types[GNOME_VFS_FILE_TYPE_SOCKET] = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_char_check_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.file_types[GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE] = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_block_check_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.file_types[GNOME_VFS_FILE_TYPE_BLOCK_DEVICE] = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_filter_hidden_files_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.hidden = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + static void on_filter_backup_files_toggled (GtkToggleButton *btn, GtkWidget *dialog) { GtkWidget *backup_pattern_entry = lookup_widget (dialog, "backup_pattern_entry"); @@ -1101,6 +1318,16 @@ static void on_filter_backup_files_toggled (GtkToggleButton *btn, GtkWidget *dia } +static void on_filter_symlinks_toggled (GtkToggleButton *btn, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_TOGGLE_BUTTON (btn)); + + cfg->filter.file_types[GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK] = gtk_toggle_button_get_active (btn); + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + inline GtkWidget *create_filter_tab (GtkWidget *parent, GnomeCmdData::Options &cfg) { GtkWidget *frame; @@ -1108,7 +1335,8 @@ inline GtkWidget *create_filter_tab (GtkWidget *parent, GnomeCmdData::Options &c GtkWidget *vbox; GtkWidget *cat; GtkWidget *cat_box; - GtkWidget *check, *backup_check; + GtkWidget *unknown_check, *regular_check, *directory_check, *fifo_check, *socket_check, *char_check, *block_check; + GtkWidget *hidden_check, *backup_check, *symlink_check; GtkWidget *entry; frame = create_tabframe (parent); @@ -1122,42 +1350,42 @@ inline GtkWidget *create_filter_tab (GtkWidget *parent, GnomeCmdData::Options &c cat = create_category (parent, cat_box, _("Filetypes to hide")); gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, FALSE, 0); - check = create_check (parent, _("Unknown"), "hide_unknown_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_UNKNOWN]); - check = create_check (parent, _("Regular files"), "hide_regular_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_REGULAR]); - check = create_check (parent, _("Directories"), "hide_directory_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_DIRECTORY]); - check = create_check (parent, _("Fifo files"), "hide_fifo_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_FIFO]); - check = create_check (parent, _("Socket files"), "hide_socket_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_SOCKET]); - check = create_check (parent, _("Character devices"), "hide_char_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE]); - check = create_check (parent, _("Block devices"), "hide_block_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_BLOCK_DEVICE]); + unknown_check = create_check (parent, _("Unknown"), "hide_unknown_check"); + gtk_container_add (GTK_CONTAINER (cat_box), unknown_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (unknown_check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_UNKNOWN]); + regular_check = create_check (parent, _("Regular files"), "hide_regular_check"); + gtk_container_add (GTK_CONTAINER (cat_box), regular_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (regular_check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_REGULAR]); + directory_check = create_check (parent, _("Directories"), "hide_directory_check"); + gtk_container_add (GTK_CONTAINER (cat_box), directory_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (directory_check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_DIRECTORY]); + fifo_check = create_check (parent, _("Fifo files"), "hide_fifo_check"); + gtk_container_add (GTK_CONTAINER (cat_box), fifo_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fifo_check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_FIFO]); + socket_check = create_check (parent, _("Socket files"), "hide_socket_check"); + gtk_container_add (GTK_CONTAINER (cat_box), socket_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (socket_check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_SOCKET]); + char_check = create_check (parent, _("Character devices"), "hide_char_check"); + gtk_container_add (GTK_CONTAINER (cat_box), char_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (char_check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE]); + block_check = create_check (parent, _("Block devices"), "hide_block_check"); + gtk_container_add (GTK_CONTAINER (cat_box), block_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (block_check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_BLOCK_DEVICE]); cat_box = create_vbox (parent, FALSE, 0); cat = create_category (parent, cat_box, _("Also hide")); gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, FALSE, 0); - check = create_check (parent, _("Hidden files"), "hide_hidden_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.hidden); + hidden_check = create_check (parent, _("Hidden files"), "hide_hidden_check"); + gtk_container_add (GTK_CONTAINER (cat_box), hidden_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (hidden_check), cfg.filter.hidden); backup_check = create_check (parent, _("Backup files"), "hide_backup_check"); gtk_container_add (GTK_CONTAINER (cat_box), backup_check); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (backup_check), cfg.filter.backup); - check = create_check (parent, _("Symlinks"), "hide_symlink_check"); - gtk_container_add (GTK_CONTAINER (cat_box), check); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK]); + symlink_check = create_check (parent, _("Symlinks"), "hide_symlink_check"); + gtk_container_add (GTK_CONTAINER (cat_box), symlink_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (symlink_check), cfg.filter.file_types[GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK]); cat_box = create_vbox (parent, FALSE, 0); @@ -1169,7 +1397,16 @@ inline GtkWidget *create_filter_tab (GtkWidget *parent, GnomeCmdData::Options &c gtk_widget_set_sensitive (entry, cfg.filter.backup); + g_signal_connect (unknown_check, "toggled", G_CALLBACK (on_unknown_check_toggled), &cfg); + g_signal_connect (regular_check, "toggled", G_CALLBACK (on_regular_check_toggled), &cfg); + g_signal_connect (directory_check, "toggled", G_CALLBACK (on_directory_check_toggled), &cfg); + g_signal_connect (fifo_check, "toggled", G_CALLBACK (on_fifo_check_toggled), &cfg); + g_signal_connect (socket_check, "toggled", G_CALLBACK (on_socket_check_toggled), &cfg); + g_signal_connect (char_check, "toggled", G_CALLBACK (on_char_check_toggled), &cfg); + g_signal_connect (block_check, "toggled", G_CALLBACK (on_block_check_toggled), &cfg); + g_signal_connect (hidden_check, "toggled", G_CALLBACK (on_filter_hidden_files_toggled), &cfg); g_signal_connect (backup_check, "toggled", G_CALLBACK (on_filter_backup_files_toggled), frame); + g_signal_connect (symlink_check, "toggled", G_CALLBACK (on_filter_symlinks_toggled), &cfg); return frame; } -- 1.7.7.3