SF.net SVN: geany: [1641] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Tue Jun 26 15:41:27 UTC 2007
Revision: 1641
http://svn.sourceforge.net/geany/?rev=1641&view=rev
Author: eht16
Date: 2007-06-26 08:41:27 -0700 (Tue, 26 Jun 2007)
Log Message:
-----------
Add option to set a default encoding when opening files and disable auto detection of the file encoding.
Modified Paths:
--------------
trunk/ChangeLog
trunk/geany.glade
trunk/src/document.c
trunk/src/editor.h
trunk/src/interface.c
trunk/src/keyfile.c
trunk/src/prefs.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-06-25 17:49:45 UTC (rev 1640)
+++ trunk/ChangeLog 2007-06-26 15:41:27 UTC (rev 1641)
@@ -1,3 +1,11 @@
+2007-06-26 Enrico Tröger <enrico.troeger at uvena.de>
+
+ * geany.glade, src/document.c, src/editor.h, src/interface.c,
+ src/keyfile.c, src/prefs.c:
+ Add option to set a default encoding when opening files and disable
+ auto detection of the file encoding.
+
+
2007-06-25 Enrico Tröger <enrico.troeger at uvena.de>
* src/main.c: Use setlocale to enable translation of strings before
Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade 2007-06-25 17:49:45 UTC (rev 1640)
+++ trunk/geany.glade 2007-06-26 15:41:27 UTC (rev 1641)
@@ -4970,16 +4970,41 @@
<child>
<widget class="GtkTable" id="table5">
<property name="visible">True</property>
- <property name="n_rows">2</property>
+ <property name="n_rows">4</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">3</property>
<property name="column_spacing">25</property>
<child>
- <widget class="GtkLabel" id="label116">
+ <widget class="GtkEventBox" id="eventbox1">
<property name="visible">True</property>
- <property name="label" translatable="yes">Tab Width:</property>
+ <property name="tooltip" translatable="yes">Sets the default encoding for newly created files.</property>
+ <property name="visible_window">True</property>
+ <property name="above_child">False</property>
+
+ <child>
+ <widget class="GtkComboBox" id="combo_new_encoding">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label153">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Default encoding (new files):</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4997,35 +5022,38 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkEventBox" id="eventbox1">
+ <widget class="GtkLabel" id="label116">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Sets the default encoding for newly created files.</property>
- <property name="visible_window">True</property>
- <property name="above_child">False</property>
-
- <child>
- <widget class="GtkComboBox" id="combo_encoding">
- <property name="visible">True</property>
- <property name="add_tearoffs">False</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
+ <property name="label" translatable="yes">Tab Width:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="x_options">fill</property>
- <property name="y_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
@@ -5045,23 +5073,22 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label153">
+ <widget class="GtkLabel" id="label_open_encoding">
<property name="visible">True</property>
- <property name="label" translatable="yes">Default encoding:</property>
+ <property name="label" translatable="yes">Default encoding (existing files):</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0.5</property>
+ <property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -5073,12 +5100,59 @@
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkCheckButton" id="check_open_encoding">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">This option disables the automatic detection of the file encoding when opening files and opens the file with the specified encoding (usually not needed).</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Use fixed encoding when opening files</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">False</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEventBox" id="eventbox3">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Sets the default encoding for opening existing files.</property>
+ <property name="visible_window">True</property>
+ <property name="above_child">False</property>
+
+ <child>
+ <widget class="GtkComboBox" id="combo_open_encoding">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2007-06-25 17:49:45 UTC (rev 1640)
+++ trunk/src/document.c 2007-06-26 15:41:27 UTC (rev 1641)
@@ -442,7 +442,7 @@
sci_set_undo_collection(doc_list[idx].sci, TRUE);
sci_empty_undo_buffer(doc_list[idx].sci);
- doc_list[idx].encoding = g_strdup(encodings[editor_prefs.default_encoding].charset);
+ doc_list[idx].encoding = g_strdup(encodings[editor_prefs.default_new_encoding].charset);
// store the opened encoding for undo/redo
store_saved_encoding(idx);
@@ -783,6 +783,10 @@
}
}
+ // if default encoding for opening files is set, use it if no forced encoding is set
+ if (editor_prefs.default_open_encoding >= 0 && forced_enc == NULL)
+ forced_enc = encodings[editor_prefs.default_open_encoding].charset;
+
if (! load_text_file(locale_filename, utf8_filename, &filedata, forced_enc))
{
g_free(utf8_filename);
Modified: trunk/src/editor.h
===================================================================
--- trunk/src/editor.h 2007-06-25 17:49:45 UTC (rev 1640)
+++ trunk/src/editor.h 2007-06-26 15:41:27 UTC (rev 1641)
@@ -61,7 +61,8 @@
gint tab_width;
gint caret_blink_time;
gboolean use_tabs;
- gint default_encoding;
+ gint default_new_encoding;
+ gint default_open_encoding;
gboolean new_line;
gboolean replace_tabs;
gboolean trail_space;
Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c 2007-06-25 17:49:45 UTC (rev 1640)
+++ trunk/src/interface.c 2007-06-26 15:41:27 UTC (rev 1641)
@@ -2535,12 +2535,16 @@
GtkWidget *alignment7;
GtkWidget *vbox8;
GtkWidget *table5;
+ GtkWidget *eventbox1;
+ GtkWidget *combo_new_encoding;
+ GtkWidget *label153;
GtkWidget *label116;
- GtkWidget *eventbox1;
- GtkWidget *combo_encoding;
GtkObject *spin_tab_width_adj;
GtkWidget *spin_tab_width;
- GtkWidget *label153;
+ GtkWidget *label_open_encoding;
+ GtkWidget *check_open_encoding;
+ GtkWidget *eventbox3;
+ GtkWidget *combo_open_encoding;
GtkWidget *label109;
GtkWidget *frame2;
GtkWidget *alignment3;
@@ -3301,19 +3305,12 @@
gtk_widget_show (vbox8);
gtk_container_add (GTK_CONTAINER (alignment7), vbox8);
- table5 = gtk_table_new (2, 2, FALSE);
+ table5 = gtk_table_new (4, 2, FALSE);
gtk_widget_show (table5);
gtk_box_pack_start (GTK_BOX (vbox8), table5, FALSE, TRUE, 0);
gtk_table_set_row_spacings (GTK_TABLE (table5), 3);
gtk_table_set_col_spacings (GTK_TABLE (table5), 25);
- label116 = gtk_label_new (_("Tab Width:"));
- gtk_widget_show (label116);
- gtk_table_attach (GTK_TABLE (table5), label116, 0, 1, 1, 2,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label116), 0, 0.5);
-
eventbox1 = gtk_event_box_new ();
gtk_widget_show (eventbox1);
gtk_table_attach (GTK_TABLE (table5), eventbox1, 1, 2, 0, 1,
@@ -3321,27 +3318,61 @@
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_tooltips_set_tip (tooltips, eventbox1, _("Sets the default encoding for newly created files."), NULL);
- combo_encoding = gtk_combo_box_new_text ();
- gtk_widget_show (combo_encoding);
- gtk_container_add (GTK_CONTAINER (eventbox1), combo_encoding);
+ combo_new_encoding = gtk_combo_box_new_text ();
+ gtk_widget_show (combo_new_encoding);
+ gtk_container_add (GTK_CONTAINER (eventbox1), combo_new_encoding);
+ label153 = gtk_label_new (_("Default encoding (new files):"));
+ gtk_widget_show (label153);
+ gtk_table_attach (GTK_TABLE (table5), label153, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (label153), 0, 0.5);
+
+ label116 = gtk_label_new (_("Tab Width:"));
+ gtk_widget_show (label116);
+ gtk_table_attach (GTK_TABLE (table5), label116, 0, 1, 3, 4,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (label116), 0, 0.5);
+
spin_tab_width_adj = gtk_adjustment_new (-1, 1, 99, 1, 10, 10);
spin_tab_width = gtk_spin_button_new (GTK_ADJUSTMENT (spin_tab_width_adj), 1, 0);
gtk_widget_show (spin_tab_width);
- gtk_table_attach (GTK_TABLE (table5), spin_tab_width, 1, 2, 1, 2,
- (GtkAttachOptions) (GTK_FILL),
+ gtk_table_attach (GTK_TABLE (table5), spin_tab_width, 1, 2, 3, 4,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, spin_tab_width, _("The width in chars, which one tab character will take"), NULL);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin_tab_width), TRUE);
gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (spin_tab_width), GTK_UPDATE_IF_VALID);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spin_tab_width), TRUE);
- label153 = gtk_label_new (_("Default encoding:"));
- gtk_widget_show (label153);
- gtk_table_attach (GTK_TABLE (table5), label153, 0, 1, 0, 1,
+ label_open_encoding = gtk_label_new (_("Default encoding (existing files):"));
+ gtk_widget_show (label_open_encoding);
+ gtk_table_attach (GTK_TABLE (table5), label_open_encoding, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (label_open_encoding), 0, 0.5);
+ check_open_encoding = gtk_check_button_new_with_mnemonic (_("Use fixed encoding when opening files"));
+ gtk_widget_show (check_open_encoding);
+ gtk_table_attach (GTK_TABLE (table5), check_open_encoding, 0, 2, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_tooltips_set_tip (tooltips, check_open_encoding, _("This option disables the automatic detection of the file encoding when opening files and opens the file with the specified encoding (usually not needed)."), NULL);
+ gtk_button_set_focus_on_click (GTK_BUTTON (check_open_encoding), FALSE);
+
+ eventbox3 = gtk_event_box_new ();
+ gtk_widget_show (eventbox3);
+ gtk_table_attach (GTK_TABLE (table5), eventbox3, 1, 2, 2, 3,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (GTK_FILL), 0, 0);
+ gtk_tooltips_set_tip (tooltips, eventbox3, _("Sets the default encoding for opening existing files."), NULL);
+
+ combo_open_encoding = gtk_combo_box_new_text ();
+ gtk_widget_show (combo_open_encoding);
+ gtk_container_add (GTK_CONTAINER (eventbox3), combo_open_encoding);
+
label109 = gtk_label_new (_("<b>New files</b>"));
gtk_widget_show (label109);
gtk_frame_set_label_widget (GTK_FRAME (frame6), label109);
@@ -4169,11 +4200,15 @@
GLADE_HOOKUP_OBJECT (prefs_dialog, alignment7, "alignment7");
GLADE_HOOKUP_OBJECT (prefs_dialog, vbox8, "vbox8");
GLADE_HOOKUP_OBJECT (prefs_dialog, table5, "table5");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, eventbox1, "eventbox1");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, combo_new_encoding, "combo_new_encoding");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, label153, "label153");
GLADE_HOOKUP_OBJECT (prefs_dialog, label116, "label116");
- GLADE_HOOKUP_OBJECT (prefs_dialog, eventbox1, "eventbox1");
- GLADE_HOOKUP_OBJECT (prefs_dialog, combo_encoding, "combo_encoding");
GLADE_HOOKUP_OBJECT (prefs_dialog, spin_tab_width, "spin_tab_width");
- GLADE_HOOKUP_OBJECT (prefs_dialog, label153, "label153");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, label_open_encoding, "label_open_encoding");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, check_open_encoding, "check_open_encoding");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, eventbox3, "eventbox3");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, combo_open_encoding, "combo_open_encoding");
GLADE_HOOKUP_OBJECT (prefs_dialog, label109, "label109");
GLADE_HOOKUP_OBJECT (prefs_dialog, frame2, "frame2");
GLADE_HOOKUP_OBJECT (prefs_dialog, alignment3, "alignment3");
Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c 2007-06-25 17:49:45 UTC (rev 1640)
+++ trunk/src/keyfile.c 2007-06-26 15:41:27 UTC (rev 1641)
@@ -268,7 +268,11 @@
g_key_file_set_boolean(config, PACKAGE, "pref_editor_replace_tabs", editor_prefs.replace_tabs);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_trail_space", editor_prefs.trail_space);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_disable_dnd", editor_prefs.disable_dnd);
- g_key_file_set_string(config, PACKAGE, "pref_editor_default_encoding", encodings[editor_prefs.default_encoding].charset);
+ g_key_file_set_string(config, PACKAGE, "pref_editor_default_new_encoding", encodings[editor_prefs.default_new_encoding].charset);
+ if (editor_prefs.default_open_encoding == -1)
+ g_key_file_set_string(config, PACKAGE, "pref_editor_default_open_encoding", "none");
+ else
+ g_key_file_set_string(config, PACKAGE, "pref_editor_default_open_encoding", encodings[editor_prefs.default_open_encoding].charset);
g_key_file_set_string(config, PACKAGE, "pref_template_developer", app->pref_template_developer);
g_key_file_set_string(config, PACKAGE, "pref_template_company", app->pref_template_company);
g_key_file_set_string(config, PACKAGE, "pref_template_mail", app->pref_template_mail);
@@ -443,20 +447,31 @@
editor_prefs.tab_width = utils_get_setting_integer(config, PACKAGE, "pref_editor_tab_width", 4);
editor_prefs.use_tabs = utils_get_setting_boolean(config, PACKAGE, "pref_editor_use_tabs", TRUE);
- // use current locale encoding as default for new files (should be in most cases UTF-8)
+ // use current locale encoding as default for new files (should be UTF-8 in most cases)
g_get_charset(&default_charset);
- tmp_string = utils_get_setting_string(config, PACKAGE, "pref_editor_default_encoding",
+ tmp_string = utils_get_setting_string(config, PACKAGE, "pref_editor_default_new_encoding",
default_charset);
if (tmp_string)
{
const GeanyEncoding *enc = encodings_get_from_charset(tmp_string);
if (enc != NULL)
- editor_prefs.default_encoding = enc->idx;
+ editor_prefs.default_new_encoding = enc->idx;
else
- editor_prefs.default_encoding = GEANY_ENCODING_UTF_8;
+ editor_prefs.default_new_encoding = GEANY_ENCODING_UTF_8;
g_free(tmp_string);
}
+ tmp_string = utils_get_setting_string(config, PACKAGE, "pref_editor_default_open_encoding", "none");
+ if (tmp_string)
+ {
+ const GeanyEncoding *enc = encodings_get_from_charset(tmp_string);
+ if (enc != NULL)
+ editor_prefs.default_open_encoding = enc->idx;
+ else
+ editor_prefs.default_open_encoding = -1;
+
+ g_free(tmp_string);
+ }
app->pref_main_confirm_exit = utils_get_setting_boolean(config, PACKAGE, "pref_main_confirm_exit", FALSE);
app->pref_main_suppress_search_dialogs = utils_get_setting_boolean(config, PACKAGE, "pref_main_suppress_search_dialogs", FALSE);
app->pref_main_load_session = utils_get_setting_boolean(config, PACKAGE, "pref_main_load_session", TRUE);
Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c 2007-06-25 17:49:45 UTC (rev 1640)
+++ trunk/src/prefs.c 2007-06-26 15:41:27 UTC (rev 1641)
@@ -70,6 +70,7 @@
static void on_show_notebook_tabs_toggled(GtkToggleButton *togglebutton, gpointer user_data);
static void on_use_folding_toggled(GtkToggleButton *togglebutton, gpointer user_data);
static void on_symbol_auto_completion_toggled(GtkToggleButton *togglebutton, gpointer user_data);
+static void on_open_encoding_toggled(GtkToggleButton *togglebutton, gpointer user_data);
void prefs_init_dialog(void)
@@ -231,10 +232,23 @@
widget = lookup_widget(app->prefs_dialog, "spin_tab_width");
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.tab_width);
- widget = lookup_widget(app->prefs_dialog, "combo_encoding");
+ widget = lookup_widget(app->prefs_dialog, "combo_new_encoding");
// luckily the index of the combo box items match the index of the encodings array
- gtk_combo_box_set_active(GTK_COMBO_BOX(widget), editor_prefs.default_encoding);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), editor_prefs.default_new_encoding);
+ widget = lookup_widget(app->prefs_dialog, "check_open_encoding");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
+ (editor_prefs.default_open_encoding >= 0) ? TRUE : FALSE);
+ on_open_encoding_toggled(GTK_TOGGLE_BUTTON(widget), NULL);
+
+ widget = lookup_widget(app->prefs_dialog, "combo_open_encoding");
+ if (editor_prefs.default_open_encoding >= 0)
+ {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), editor_prefs.default_open_encoding);
+ }
+ else
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), GEANY_ENCODING_UTF_8);
+
widget = lookup_widget(app->prefs_dialog, "check_trailing_spaces");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.trail_space);
@@ -561,9 +575,18 @@
widget = lookup_widget(app->prefs_dialog, "spin_tab_width");
editor_prefs.tab_width = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
- widget = lookup_widget(app->prefs_dialog, "combo_encoding");
- editor_prefs.default_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ widget = lookup_widget(app->prefs_dialog, "combo_new_encoding");
+ editor_prefs.default_new_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ widget = lookup_widget(app->prefs_dialog, "check_open_encoding");
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+ {
+ widget = lookup_widget(app->prefs_dialog, "combo_open_encoding");
+ editor_prefs.default_open_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ }
+ else
+ editor_prefs.default_open_encoding = -1;
+
widget = lookup_widget(app->prefs_dialog, "check_trailing_spaces");
editor_prefs.trail_space = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
@@ -1018,11 +1041,20 @@
}
+static void on_open_encoding_toggled(GtkToggleButton *togglebutton, gpointer user_data)
+{
+ gboolean sens = gtk_toggle_button_get_active(togglebutton);
+
+ gtk_widget_set_sensitive(lookup_widget(app->prefs_dialog, "eventbox3"), sens);
+ gtk_widget_set_sensitive(lookup_widget(app->prefs_dialog, "label_open_encoding"), sens);
+}
+
+
void prefs_show_dialog(void)
{
if (app->prefs_dialog == NULL)
{
- GtkWidget *combo;
+ GtkWidget *combo_new, *combo_open;
guint i;
gchar *encoding_string;
@@ -1031,12 +1063,15 @@
gtk_window_set_transient_for(GTK_WINDOW(app->prefs_dialog), GTK_WINDOW(app->window));
// init the default file encoding combo box
- combo = lookup_widget(app->prefs_dialog, "combo_encoding");
- gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo), 3);
+ combo_new = lookup_widget(app->prefs_dialog, "combo_new_encoding");
+ combo_open = lookup_widget(app->prefs_dialog, "combo_open_encoding");
+ gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo_new), 3);
+ gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo_open), 3);
for (i = 0; i < GEANY_ENCODINGS_MAX; i++)
{
encoding_string = encodings_to_string(&encodings[i]);
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo), encoding_string);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo_new), encoding_string);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo_open), encoding_string);
g_free(encoding_string);
}
@@ -1080,6 +1115,8 @@
"toggled", G_CALLBACK(on_use_folding_toggled), NULL);
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "check_symbol_auto_completion"),
"toggled", G_CALLBACK(on_symbol_auto_completion_toggled), NULL);
+ g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "check_open_encoding"),
+ "toggled", G_CALLBACK(on_open_encoding_toggled), NULL);
}
prefs_init_dialog();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list