From aed48872a9a7c8a5bdbb39f99d12f233c85783a2 Mon Sep 17 00:00:00 2001 From: Bhaskar Bhat Date: Fri, 25 Nov 2011 12:23:34 +0530 Subject: [PATCH 1/3] Improvement Version 1 --- src/gnome-cmd-options-dialog.cc | 107 ++++++++++++++++++++++++++++++++------ src/gnome-cmd-user-actions.cc | 4 ++ 2 files changed, 94 insertions(+), 17 deletions(-) diff --git a/src/gnome-cmd-options-dialog.cc b/src/gnome-cmd-options-dialog.cc index 5d08016..aa70f8a 100644 --- a/src/gnome-cmd-options-dialog.cc +++ b/src/gnome-cmd-options-dialog.cc @@ -54,11 +54,21 @@ static void on_save_tabs_toggled (GtkToggleButton *togglebutton, GtkWidget *dial * The General tab * **********************************************************************/ +static void on_sort_type_toggled (GtkCheckButton *cbutton, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_CHECK_BUTTON (cbutton)); + + cfg->case_sens_sort = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cbutton)); + + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + inline GtkWidget *create_general_tab (GtkWidget *parent, GnomeCmdData::Options &cfg) { GtkWidget *frame, *hbox, *vbox, *cat, *cat_box; - GtkWidget *radio, *check; + GtkWidget *radio, *cs_check, *check; frame = create_tabframe (parent); hbox = create_tabhbox (parent); @@ -121,9 +131,9 @@ inline GtkWidget *create_general_tab (GtkWidget *parent, GnomeCmdData::Options & cat = create_category (parent, cat_box, _("Sorting options")); gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, TRUE, 0); - check = create_check (parent, _("Case sensitive"), "case_sens_check"); - gtk_box_pack_start (GTK_BOX (cat_box), check, FALSE, TRUE, 0); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.case_sens_sort); + cs_check = create_check (parent, _("Case sensitive"), "case_sens_check"); + gtk_box_pack_start (GTK_BOX (cat_box), cs_check, FALSE, TRUE, 0); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cs_check), cfg.case_sens_sort); // Quick search options @@ -175,7 +185,8 @@ inline GtkWidget *create_general_tab (GtkWidget *parent, GnomeCmdData::Options & gtk_box_pack_start (GTK_BOX (cat_box), check, FALSE, TRUE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.save_dir_history_on_exit); - + g_signal_connect (cs_check, "toggled", G_CALLBACK (on_sort_type_toggled), &cfg); + return frame; } @@ -308,8 +319,6 @@ inline GtkWidget *create_format_tab (GtkWidget *parent, GnomeCmdData::Options &c entry = create_entry (parent, "date_format_entry", utf8_date_format); g_free (utf8_date_format); gtk_widget_grab_focus (entry); - g_signal_connect (entry, "realize", G_CALLBACK (on_date_format_update), parent); - g_signal_connect (entry, "changed", G_CALLBACK (on_date_format_update), parent); table_add (table, entry, 1, 0, GTK_FILL); label = create_label (parent, _("Test result:")); @@ -323,6 +332,9 @@ 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 (entry, "realize", G_CALLBACK (on_date_format_update), parent); + g_signal_connect (entry, "changed", G_CALLBACK (on_date_format_update), parent); + return frame; } @@ -359,6 +371,41 @@ inline void store_format_options (GtkWidget *dialog, GnomeCmdData::Options &cfg) * The Layout tab * **********************************************************************/ +static void on_font_changed (GtkFontButton *fontbutton, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_IS_FONT_BUTTON (fontbutton)); + + const gchar* list_font = gtk_font_button_get_font_name (fontbutton); + cfg->set_list_font (list_font); + + gnome_cmd_style_create (*cfg); + main_win->update_style(); +} + + +static void on_row_height_changed (GtkSpinButton *rhbutton, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_IS_SPIN_BUTTON (rhbutton)); + + gint row_height = gtk_spin_button_get_value_as_int (rhbutton); + cfg->list_row_height = row_height; + + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + + +static void on_ext_display_mode_changed (GtkOptionMenu *optmenu, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_IS_OPTION_MENU (optmenu)); + + GnomeCmdExtDispMode mode = (GnomeCmdExtDispMode) gtk_option_menu_get_history (GTK_OPTION_MENU (optmenu)); + cfg->ext_disp_mode = mode; + + gnome_cmd_style_create (*cfg); + main_win->update_style (); +} + static void on_layout_mode_changed (GtkOptionMenu *optmenu, GtkWidget *dialog) { @@ -366,9 +413,13 @@ static void on_layout_mode_changed (GtkOptionMenu *optmenu, GtkWidget *dialog) GtkWidget *icon_frame = lookup_widget (GTK_WIDGET (dialog), "mime_icon_settings_frame"); GnomeCmdLayout mode = (GnomeCmdLayout) gtk_option_menu_get_history (GTK_OPTION_MENU (optmenu)); + gnome_cmd_data.options.layout = mode; if (icon_frame) gtk_widget_set_sensitive (icon_frame, mode == GNOME_CMD_LAYOUT_MIME_ICONS); + + gnome_cmd_style_create (gnome_cmd_data.options); + main_win->update_style (); } @@ -378,9 +429,25 @@ static void on_color_mode_changed (GtkOptionMenu *optmenu, GtkWidget *dialog) GtkWidget *btn = lookup_widget (GTK_WIDGET (dialog), "color_btn"); GnomeCmdColorMode mode = (GnomeCmdColorMode) gtk_option_menu_get_history (GTK_OPTION_MENU (optmenu)); + gnome_cmd_data.options.color_mode = mode; if (btn) gtk_widget_set_sensitive (btn, mode == GNOME_CMD_COLOR_CUSTOM); + + gnome_cmd_style_create (gnome_cmd_data.options); + main_win->update_style (); +} + + +static void on_icon_size_changed (GtkSpinButton *isbutton, GnomeCmdData::Options *cfg) +{ + g_return_if_fail (GTK_IS_SPIN_BUTTON (isbutton)); + + guint isize = gtk_spin_button_get_value_as_int (isbutton); + cfg->icon_size = isize; + + gnome_cmd_style_create (*cfg); + main_win->update_style (); } @@ -645,7 +712,7 @@ static void on_ls_colors_edit (GtkButton *btn, GtkWidget *parent) inline GtkWidget *create_layout_tab (GtkWidget *parent, GnomeCmdData::Options &cfg) { GtkWidget *frame, *hbox, *vbox, *cat; - GtkWidget *entry, *spin, *scale, *table, *label, *fpicker, *btn; + GtkWidget *entry, *rh_spin, *is_spin, *scale, *table, *label, *fpicker, *btn; GtkWidget *lm_optmenu, *cm_optmenu, *fe_optmenu, *check; const gchar *ext_modes[] = { _("With file name"), @@ -688,8 +755,8 @@ inline GtkWidget *create_layout_tab (GtkWidget *parent, GnomeCmdData::Options &c table_add (table, fpicker, 1, 0, GTK_FILL); gtk_font_button_set_font_name (GTK_FONT_BUTTON (fpicker), cfg.list_font); - spin = create_spin (parent, "row_height_spin", 8, 64, cfg.list_row_height); - table_add (table, spin, 1, 1, GTK_FILL); + rh_spin = create_spin (parent, "row_height_spin", 8, 64, cfg.list_row_height); + table_add (table, rh_spin, 1, 1, GTK_FILL); label = create_label (parent, _("Font:")); table_add (table, label, 0, 0, GTK_FILL); @@ -710,7 +777,6 @@ inline GtkWidget *create_layout_tab (GtkWidget *parent, GnomeCmdData::Options &c lm_optmenu = create_option_menu (parent, gfx_modes); g_object_set_data (G_OBJECT (parent), "lm_optmenu", lm_optmenu); - g_signal_connect (lm_optmenu, "changed", G_CALLBACK (on_layout_mode_changed), parent); table_add (table, lm_optmenu, 1, 3, (GtkAttachOptions) (GTK_FILL|GTK_EXPAND)); // Color scheme @@ -722,7 +788,6 @@ inline GtkWidget *create_layout_tab (GtkWidget *parent, GnomeCmdData::Options &c cm_optmenu = create_option_menu (parent, color_modes); g_object_set_data (G_OBJECT (parent), "cm_optmenu", cm_optmenu); - g_signal_connect (cm_optmenu, "changed", G_CALLBACK (on_color_mode_changed), parent); gtk_box_pack_start (GTK_BOX (hbox), cm_optmenu, TRUE, TRUE, 0); @@ -737,8 +802,6 @@ inline GtkWidget *create_layout_tab (GtkWidget *parent, GnomeCmdData::Options &c gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.use_ls_colors); hbox = create_hbox (parent, FALSE, 6); gtk_table_attach (GTK_TABLE (table), hbox, 0, 2, 5, 6, GTK_FILL, GTK_FILL, 0, 0); - - g_signal_connect (check, "toggled", G_CALLBACK (on_ls_colors_toggled), parent); gtk_box_pack_start (GTK_BOX (hbox), check, TRUE, TRUE, 0); btn = create_button_with_data (parent, _("Edit colors..."), GTK_SIGNAL_FUNC (on_ls_colors_edit), parent); @@ -751,10 +814,11 @@ inline GtkWidget *create_layout_tab (GtkWidget *parent, GnomeCmdData::Options &c table = create_table (parent, 4, 2); cat = create_category (parent, table, _("MIME icon settings")); g_object_set_data (G_OBJECT (parent), "mime_icon_settings_frame", cat); + gtk_widget_set_sensitive (cat, cfg.layout == GNOME_CMD_LAYOUT_MIME_ICONS); gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, FALSE, 0); - spin = create_spin (parent, "iconsize_spin", 8, 64, cfg.icon_size); - table_add (table, spin, 1, 0, (GtkAttachOptions) GTK_FILL); + is_spin = create_spin (parent, "iconsize_spin", 8, 64, cfg.icon_size); + table_add (table, is_spin, 1, 0, (GtkAttachOptions) GTK_FILL); scale = create_scale (parent, "iconquality_scale", cfg.icon_scale_quality, 0, 3); table_add (table, scale, 1, 1, (GtkAttachOptions) GTK_FILL); entry = create_file_entry (parent, "theme_icondir_entry", cfg.theme_icon_dir); @@ -776,6 +840,14 @@ inline GtkWidget *create_layout_tab (GtkWidget *parent, GnomeCmdData::Options &c gtk_option_menu_set_history (GTK_OPTION_MENU (lm_optmenu), (gint) cfg.layout); gtk_option_menu_set_history (GTK_OPTION_MENU (cm_optmenu), (gint) cfg.color_mode); + g_signal_connect (fpicker, "font-set", G_CALLBACK (on_font_changed), &cfg); + g_signal_connect (rh_spin, "value-changed", G_CALLBACK (on_row_height_changed), &cfg); + g_signal_connect (fe_optmenu, "changed", G_CALLBACK (on_ext_display_mode_changed), &cfg); + g_signal_connect (lm_optmenu, "changed", G_CALLBACK (on_layout_mode_changed), parent); + g_signal_connect (cm_optmenu, "changed", G_CALLBACK (on_color_mode_changed), parent); + g_signal_connect (check, "toggled", G_CALLBACK (on_ls_colors_toggled), parent); + g_signal_connect (is_spin, "value-changed", G_CALLBACK (on_icon_size_changed), &cfg); + return frame; } @@ -1379,7 +1451,6 @@ static GtkWidget *create_app_dialog (GnomeCmdApp *app, GtkSignalFunc on_ok, GtkS gtk_table_attach (GTK_TABLE (table), radio, 0, 2, 3, 4, GTK_FILL, (GtkAttachOptions) 0, 0, 0); if (!app) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); - g_signal_connect (radio, "toggled", G_CALLBACK (on_some_files_toggled), dialog); label = create_label (dialog, _("File patterns")); table_add (table, label, 0, 4, (GtkAttachOptions) 0); @@ -1393,6 +1464,8 @@ static GtkWidget *create_app_dialog (GnomeCmdApp *app, GtkSignalFunc on_ok, GtkS gnome_cmd_dialog_add_button (GNOME_CMD_DIALOG (dialog), GTK_STOCK_OK, GTK_SIGNAL_FUNC (on_ok), dialog); + g_signal_connect (radio, "toggled", G_CALLBACK (on_some_files_toggled), dialog); + gtk_widget_show (dialog); return dialog; diff --git a/src/gnome-cmd-user-actions.cc b/src/gnome-cmd-user-actions.cc index 28b32df..66d36ee 100644 --- a/src/gnome-cmd-user-actions.cc +++ b/src/gnome-cmd-user-actions.cc @@ -1797,6 +1797,10 @@ void options_edit (GtkMenuItem *menuitem, gpointer not_used) gnome_cmd_data.save(); } + else + { + //Revert back the changes done + } } -- 1.7.7.3