38
43
#include "keybindings.h"
39
44
#include "interface.h"
40
45
#include "encodings.h"
41
#include "callbacks.h"
49
#include "treeviews.h"
51
#include "geanywraplabel.h"
48
gchar *dialog_key_name;
49
static GtkListStore *store = NULL;
64
static gchar *dialog_key_name;
65
static GtkTreeIter g_iter;
66
static GtkTreeStore *store = NULL;
50
67
static GtkTreeView *tree = NULL;
51
GtkWidget *dialog_label;
68
static GtkWidget *dialog_label;
52
69
static gboolean edited = FALSE;
54
static gboolean on_prefs_tree_view_button_press_event(
71
static gboolean on_tree_view_button_press_event(
55
72
GtkWidget *widget, GdkEventButton *event, gpointer user_data);
56
73
static void on_cell_edited(GtkCellRendererText *cellrenderertext, gchar *path, gchar *new_text, gpointer user_data);
57
74
static gboolean on_keytype_dialog_response(GtkWidget *dialog, GdkEventKey *event, gpointer user_data);
58
75
static void on_dialog_response(GtkWidget *dialog, gint response, gpointer user_data);
59
static gboolean find_duplicate(guint idx, guint key, GdkModifierType mods, const gchar *action);
76
static gboolean find_duplicate(KeyBinding *search_kb,
77
guint key, GdkModifierType mods, const gchar *action);
78
static void on_toolbar_show_toggled(GtkToggleButton *togglebutton, gpointer user_data);
79
static void on_show_notebook_tabs_toggled(GtkToggleButton *togglebutton, gpointer user_data);
80
static void on_use_folding_toggled(GtkToggleButton *togglebutton, gpointer user_data);
81
static void on_open_encoding_toggled(GtkToggleButton *togglebutton, gpointer user_data);
82
static void on_openfiles_visible_toggled(GtkToggleButton *togglebutton, gpointer user_data);
83
static void on_prefs_print_radio_button_toggled(GtkToggleButton *togglebutton, gpointer user_data);
84
static void on_prefs_print_page_header_toggled(GtkToggleButton *togglebutton, gpointer user_data);
94
static void init_kb_tree(void)
96
GtkCellRenderer *renderer;
97
GtkTreeViewColumn *column;
99
tree = GTK_TREE_VIEW(lookup_widget(ui_widgets.prefs_dialog, "treeview7"));
100
/*g_object_set(tree, "vertical-separator", 6, NULL);*/
102
store = gtk_tree_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT);
103
gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store));
105
renderer = gtk_cell_renderer_text_new();
106
column = gtk_tree_view_column_new_with_attributes(_("Action"), renderer, "text", KB_TREE_ACTION, NULL);
107
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
109
renderer = gtk_cell_renderer_text_new();
110
g_object_set(renderer, "editable", TRUE, NULL);
111
column = gtk_tree_view_column_new_with_attributes(_("Shortcut"), renderer, "text", KB_TREE_SHORTCUT, NULL);
112
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
114
/* set policy settings for the scollwedwindow around the treeview again, because glade
115
* doesn't keep the settings */
116
gtk_scrolled_window_set_policy(
117
GTK_SCROLLED_WINDOW(lookup_widget(ui_widgets.prefs_dialog, "scrolledwindow8")),
118
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
120
g_signal_connect(G_OBJECT(renderer), "edited", G_CALLBACK(on_cell_edited), NULL);
121
g_signal_connect(G_OBJECT(tree), "button-press-event",
122
G_CALLBACK(on_tree_view_button_press_event), NULL);
123
g_signal_connect(G_OBJECT(lookup_widget(ui_widgets.prefs_dialog, "button2")), "clicked",
124
G_CALLBACK(on_tree_view_button_press_event), NULL);
128
static void init_keybindings(void)
130
GtkTreeIter parent, iter;
136
for (g = 0; g < keybinding_groups->len; g++)
138
KeyBindingGroup *group = g_ptr_array_index(keybinding_groups, g);
140
gtk_tree_store_append(store, &parent, NULL);
141
gtk_tree_store_set(store, &parent, KB_TREE_ACTION, group->label,
142
KB_TREE_INDEX, g, -1);
144
for (i = 0; i < group->count; i++)
146
KeyBinding *kb = &group->keys[i];
149
key_string = gtk_accelerator_name(kb->key, kb->mods);
150
gtk_tree_store_append(store, &iter, &parent);
151
gtk_tree_store_set(store, &iter, KB_TREE_ACTION, kb->label,
152
KB_TREE_SHORTCUT, key_string, KB_TREE_INDEX, i, -1);
156
gtk_tree_view_expand_all(GTK_TREE_VIEW(tree));
62
160
void prefs_init_dialog(void)
64
162
GtkWidget *widget;
71
widget = lookup_widget(app->prefs_dialog, "spin_mru");
72
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), app->mru_length);
74
widget = lookup_widget(app->prefs_dialog, "check_load_session");
75
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_main_load_session);
77
widget = lookup_widget(app->prefs_dialog, "check_save_win_pos");
78
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_main_save_winpos);
80
widget = lookup_widget(app->prefs_dialog, "check_beep");
81
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->beep_on_errors);
83
widget = lookup_widget(app->prefs_dialog, "check_switch_pages");
84
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->switch_msgwin_pages);
86
widget = lookup_widget(app->prefs_dialog, "check_ask_for_quit");
87
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_main_confirm_exit);
89
if (app->tab_order_ltr)
90
widget = lookup_widget(app->prefs_dialog, "radio_tab_right");
92
widget = lookup_widget(app->prefs_dialog, "radio_tab_left");
93
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
97
widget = lookup_widget(app->prefs_dialog, "check_list_symbol");
98
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->sidebar_symbol_visible);
100
widget = lookup_widget(app->prefs_dialog, "check_list_openfiles");
101
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->sidebar_openfiles_visible);
103
widget = lookup_widget(app->prefs_dialog, "tagbar_font");
104
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), app->tagbar_font);
106
widget = lookup_widget(app->prefs_dialog, "msgwin_font");
107
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), app->msgwin_font);
109
widget = lookup_widget(app->prefs_dialog, "editor_font");
110
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), app->editor_font);
112
widget = lookup_widget(app->prefs_dialog, "spin_long_line");
113
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), app->long_line_column);
115
switch (app->long_line_type)
165
/* General settings */
166
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_mru");
167
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), prefs.mru_length);
170
widget = lookup_widget(ui_widgets.prefs_dialog, "check_load_session");
171
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.load_session);
173
widget = lookup_widget(ui_widgets.prefs_dialog, "check_project_session");
174
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), project_prefs.project_session);
176
widget = lookup_widget(ui_widgets.prefs_dialog, "check_save_win_pos");
177
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.save_winpos);
179
widget = lookup_widget(ui_widgets.prefs_dialog, "check_plugins");
180
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.load_plugins);
182
widget = lookup_widget(ui_widgets.prefs_dialog, "check_ask_for_quit");
183
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.confirm_exit);
186
widget = lookup_widget(ui_widgets.prefs_dialog, "check_beep");
187
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.beep_on_errors);
189
widget = lookup_widget(ui_widgets.prefs_dialog, "check_switch_pages");
190
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.switch_msgwin_pages);
192
widget = lookup_widget(ui_widgets.prefs_dialog, "check_suppress_status_msgs");
193
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.suppress_status_messages);
195
widget = lookup_widget(ui_widgets.prefs_dialog, "check_auto_focus");
196
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.auto_focus);
198
widget = lookup_widget(ui_widgets.prefs_dialog, "check_ask_suppress_search_dialogs");
199
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.suppress_search_dialogs);
201
widget = lookup_widget(ui_widgets.prefs_dialog, "check_search_use_current_word");
202
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.search_use_current_word);
204
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_contextaction");
205
gtk_entry_set_text(GTK_ENTRY(widget), prefs.context_action_cmd);
207
widget = lookup_widget(ui_widgets.prefs_dialog, "startup_path_entry");
208
gtk_entry_set_text(GTK_ENTRY(widget), prefs.default_open_path);
210
project_setup_prefs(); /* project files path */
213
/* Interface settings */
214
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_symbol");
215
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.sidebar_symbol_visible);
217
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles");
218
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.sidebar_openfiles_visible);
219
on_openfiles_visible_toggled(GTK_TOGGLE_BUTTON(widget), NULL);
221
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles_fullpath");
222
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.sidebar_openfiles_fullpath);
224
widget = lookup_widget(ui_widgets.prefs_dialog, "tagbar_font");
225
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), prefs.tagbar_font);
227
widget = lookup_widget(ui_widgets.prefs_dialog, "msgwin_font");
228
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), prefs.msgwin_font);
230
widget = lookup_widget(ui_widgets.prefs_dialog, "editor_font");
231
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), prefs.editor_font);
233
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_long_line");
234
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.long_line_column);
236
switch (editor_prefs.long_line_type)
117
case 0: widget = lookup_widget(app->prefs_dialog, "radio_long_line_line"); break;
118
case 1: widget = lookup_widget(app->prefs_dialog, "radio_long_line_background"); break;
119
default: widget = lookup_widget(app->prefs_dialog, "radio_long_line_disabled"); break;
238
case 0: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_long_line_line"); break;
239
case 1: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_long_line_background"); break;
240
default: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_long_line_disabled"); break;
121
242
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
123
244
color = g_new0(GdkColor, 1);
124
gdk_color_parse(app->long_line_color, color);
125
widget = lookup_widget(app->prefs_dialog, "long_line_color");
245
gdk_color_parse(editor_prefs.long_line_color, color);
246
widget = lookup_widget(ui_widgets.prefs_dialog, "long_line_color");
126
247
gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), color);
129
widget = lookup_widget(app->prefs_dialog, "combo_tab_editor");
130
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), app->tab_pos_editor);
132
widget = lookup_widget(app->prefs_dialog, "combo_tab_msgwin");
133
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), app->tab_pos_msgwin);
135
widget = lookup_widget(app->prefs_dialog, "combo_tab_sidebar");
136
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), app->tab_pos_sidebar);
140
widget = lookup_widget(app->prefs_dialog, "check_toolbar_show");
141
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->toolbar_visible);
143
widget = lookup_widget(app->prefs_dialog, "check_toolbar_search");
144
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_toolbar_show_search);
146
widget = lookup_widget(app->prefs_dialog, "check_toolbar_goto");
147
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_toolbar_show_goto);
149
widget = lookup_widget(app->prefs_dialog, "check_toolbar_compile");
150
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_toolbar_show_compile);
152
widget = lookup_widget(app->prefs_dialog, "check_toolbar_zoom");
153
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_toolbar_show_zoom);
155
widget = lookup_widget(app->prefs_dialog, "check_toolbar_undo");
156
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_toolbar_show_undo);
158
widget = lookup_widget(app->prefs_dialog, "check_toolbar_colour");
159
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_toolbar_show_colour);
161
widget = lookup_widget(app->prefs_dialog, "check_toolbar_fileops");
162
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_toolbar_show_fileops);
165
switch (app->toolbar_icon_style)
250
widget = lookup_widget(ui_widgets.prefs_dialog, "check_show_notebook_tabs");
251
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.show_notebook_tabs);
252
/* disable following setting if notebook tabs are hidden */
253
on_show_notebook_tabs_toggled(GTK_TOGGLE_BUTTON(
254
lookup_widget(ui_widgets.prefs_dialog, "check_show_notebook_tabs")), NULL);
256
widget = lookup_widget(ui_widgets.prefs_dialog, "check_show_tab_cross");
257
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.show_tab_cross);
259
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_editor");
260
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.tab_pos_editor);
262
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_msgwin");
263
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.tab_pos_msgwin);
265
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_sidebar");
266
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.tab_pos_sidebar);
268
widget = lookup_widget(ui_widgets.prefs_dialog, "check_statusbar_visible");
269
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.statusbar_visible);
272
/* Toolbar settings */
273
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_show");
274
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_visible);
276
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_search");
277
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_search);
279
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_goto");
280
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_goto);
282
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_compile");
283
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_compile);
285
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_zoom");
286
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_zoom);
288
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_indent");
289
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_indent);
291
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_undo");
292
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_undo);
294
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_navigation");
295
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_navigation);
297
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_colour");
298
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_colour);
300
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_fileops");
301
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_fileops);
303
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_quit");
304
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_quit);
307
switch (prefs.toolbar_icon_style)
167
case 0: widget = lookup_widget(app->prefs_dialog, "radio_toolbar_image"); break;
168
case 1: widget = lookup_widget(app->prefs_dialog, "radio_toolbar_text"); break;
169
default: widget = lookup_widget(app->prefs_dialog, "radio_toolbar_imagetext"); break;
309
case 0: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_image"); break;
310
case 1: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_text"); break;
311
default: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_imagetext"); break;
171
313
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
174
switch (app->toolbar_icon_size)
316
switch (prefs.toolbar_icon_size)
176
318
case GTK_ICON_SIZE_LARGE_TOOLBAR:
177
widget = lookup_widget(app->prefs_dialog, "radio_toolbar_large"); break;
178
default: widget = lookup_widget(app->prefs_dialog, "radio_toolbar_small"); break;
180
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
181
// disable elements if toolbar is hidden
182
on_pref_toolbar_show_toggled(GTK_TOGGLE_BUTTON(
183
lookup_widget(app->prefs_dialog, "check_toolbar_show")), NULL);
187
widget = lookup_widget(app->prefs_dialog, "spin_tab_width");
188
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), app->pref_editor_tab_width);
190
widget = lookup_widget(app->prefs_dialog, "combo_encoding");
191
// luckily the index of the combo box items match the index of the encodings array
192
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), app->pref_editor_default_encoding);
194
widget = lookup_widget(app->prefs_dialog, "check_trailing_spaces");
195
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_trail_space);
197
widget = lookup_widget(app->prefs_dialog, "check_new_line");
198
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_new_line);
200
widget = lookup_widget(app->prefs_dialog, "check_replace_tabs");
201
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_replace_tabs);
203
widget = lookup_widget(app->prefs_dialog, "check_indent");
204
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_show_indent_guide);
206
widget = lookup_widget(app->prefs_dialog, "check_white_space");
207
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_show_white_space);
209
widget = lookup_widget(app->prefs_dialog, "check_line_end");
210
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_show_line_endings);
212
widget = lookup_widget(app->prefs_dialog, "check_auto_indent");
213
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_use_auto_indention);
215
widget = lookup_widget(app->prefs_dialog, "check_line_wrapping");
216
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_line_breaking);
218
widget = lookup_widget(app->prefs_dialog, "check_auto_complete");
219
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_auto_complete_constructs);
221
widget = lookup_widget(app->prefs_dialog, "check_xmltag");
222
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_auto_close_xml_tags);
224
widget = lookup_widget(app->prefs_dialog, "check_folding");
225
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_folding);
227
widget = lookup_widget(app->prefs_dialog, "check_indicators");
228
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_use_indicators);
230
widget = lookup_widget(app->prefs_dialog, "spin_autocheight");
231
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), app->autocompletion_max_height);
236
// hide related Make path setting
237
gtk_widget_set_sensitive(lookup_widget(app->prefs_dialog, "label11"), FALSE);
238
gtk_widget_set_sensitive(lookup_widget(app->prefs_dialog, "entry_com_make"), FALSE);
239
gtk_widget_set_sensitive(lookup_widget(app->prefs_dialog, "button_make"), FALSE);
241
if (app->tools_make_cmd)
242
gtk_entry_set_text(GTK_ENTRY(lookup_widget(app->prefs_dialog, "entry_com_make")), app->tools_make_cmd);
244
if (app->tools_term_cmd)
245
gtk_entry_set_text(GTK_ENTRY(lookup_widget(app->prefs_dialog, "entry_com_term")), app->tools_term_cmd);
247
if (app->tools_browser_cmd)
248
gtk_entry_set_text(GTK_ENTRY(lookup_widget(app->prefs_dialog, "entry_browser")), app->tools_browser_cmd);
250
if (app->tools_print_cmd)
251
gtk_entry_set_text(GTK_ENTRY(lookup_widget(app->prefs_dialog, "entry_print")), app->tools_print_cmd);
253
if (app->tools_grep_cmd)
254
gtk_entry_set_text(GTK_ENTRY(lookup_widget(app->prefs_dialog, "entry_grep")), app->tools_grep_cmd);
258
widget = lookup_widget(app->prefs_dialog, "entry_template_developer");
259
gtk_entry_set_text(GTK_ENTRY(widget), app->pref_template_developer);
261
widget = lookup_widget(app->prefs_dialog, "entry_template_company");
262
gtk_entry_set_text(GTK_ENTRY(widget), app->pref_template_company);
264
widget = lookup_widget(app->prefs_dialog, "entry_template_mail");
265
gtk_entry_set_text(GTK_ENTRY(widget), app->pref_template_mail);
267
widget = lookup_widget(app->prefs_dialog, "entry_template_initial");
268
gtk_entry_set_text(GTK_ENTRY(widget), app->pref_template_initial);
270
widget = lookup_widget(app->prefs_dialog, "entry_template_version");
271
gtk_entry_set_text(GTK_ENTRY(widget), app->pref_template_version);
277
GtkCellRenderer *renderer;
278
GtkTreeViewColumn *column;
280
tree = GTK_TREE_VIEW(lookup_widget(app->prefs_dialog, "treeview7"));
281
//g_object_set(tree, "vertical-separator", 6, NULL);
283
store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
284
gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store));
286
renderer = gtk_cell_renderer_text_new();
287
column = gtk_tree_view_column_new_with_attributes(_("Action"), renderer, "text", 0, NULL);
288
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
290
renderer = gtk_cell_renderer_text_new();
291
g_object_set(renderer, "editable", TRUE, NULL);
292
column = gtk_tree_view_column_new_with_attributes(_("Shortcut"), renderer, "text", 1, NULL);
293
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
295
// set policy settings for the scollwedwindow around the treeview again, because glade
296
// doesn't keep the settings
297
gtk_scrolled_window_set_policy(
298
GTK_SCROLLED_WINDOW(lookup_widget(app->prefs_dialog, "scrolledwindow8")),
299
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
301
g_signal_connect(G_OBJECT(renderer), "edited", G_CALLBACK(on_cell_edited), NULL);
302
g_signal_connect(G_OBJECT(tree), "button-press-event",
303
G_CALLBACK(on_prefs_tree_view_button_press_event), NULL);
304
g_signal_connect(G_OBJECT(lookup_widget(app->prefs_dialog, "button2")), "button-press-event",
305
G_CALLBACK(on_prefs_tree_view_button_press_event), NULL);
308
for (i = 0; i < GEANY_MAX_KEYS; i++)
310
key_string = gtk_accelerator_name(keys[i]->key, keys[i]->mods);
311
gtk_list_store_append(store, &iter);
312
gtk_list_store_set(store, &iter, 0, keys[i]->label, 1, key_string, -1);
319
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_large"); break;
320
default: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_small"); break;
322
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
323
/* disable elements if toolbar is hidden */
324
on_toolbar_show_toggled(GTK_TOGGLE_BUTTON(
325
lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_show")), NULL);
329
if (prefs.tab_order_ltr)
330
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_tab_right");
332
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_tab_left");
333
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
336
/* Editor settings */
337
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
338
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.tab_width);
340
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_new_encoding");
341
/* luckily the index of the combo box items match the index of the encodings array */
342
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.default_new_encoding);
344
widget = lookup_widget(ui_widgets.prefs_dialog, "check_open_encoding");
345
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
346
(prefs.default_open_encoding >= 0) ? TRUE : FALSE);
347
on_open_encoding_toggled(GTK_TOGGLE_BUTTON(widget), NULL);
349
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_open_encoding");
350
if (prefs.default_open_encoding >= 0)
352
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.default_open_encoding);
355
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), GEANY_ENCODING_UTF_8);
357
widget = lookup_widget(ui_widgets.prefs_dialog, "check_trailing_spaces");
358
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.strip_trailing_spaces);
360
widget = lookup_widget(ui_widgets.prefs_dialog, "check_new_line");
361
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.final_new_line);
363
widget = lookup_widget(ui_widgets.prefs_dialog, "check_replace_tabs");
364
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.replace_tabs);
366
widget = lookup_widget(ui_widgets.prefs_dialog, "check_indent");
367
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.show_indent_guide);
369
widget = lookup_widget(ui_widgets.prefs_dialog, "check_white_space");
370
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.show_white_space);
372
widget = lookup_widget(ui_widgets.prefs_dialog, "check_line_end");
373
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.show_line_endings);
375
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_auto_indent_mode");
376
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), editor_prefs.indent_mode);
378
widget = lookup_widget(ui_widgets.prefs_dialog, "check_detect_indent");
379
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.detect_tab_mode);
381
widget = lookup_widget(ui_widgets.prefs_dialog, "check_line_wrapping");
382
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.line_wrapping);
384
widget = lookup_widget(ui_widgets.prefs_dialog, "check_complete_snippets");
385
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.complete_snippets);
387
widget = lookup_widget(ui_widgets.prefs_dialog, "check_xmltag");
388
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.auto_close_xml_tags);
390
widget = lookup_widget(ui_widgets.prefs_dialog, "check_folding");
391
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.folding);
393
widget = lookup_widget(ui_widgets.prefs_dialog, "check_unfold_children");
394
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.unfold_all_children);
395
on_use_folding_toggled(GTK_TOGGLE_BUTTON(
396
lookup_widget(ui_widgets.prefs_dialog, "check_folding")), NULL);
398
widget = lookup_widget(ui_widgets.prefs_dialog, "check_disable_dnd");
399
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.disable_dnd);
401
widget = lookup_widget(ui_widgets.prefs_dialog, "check_smart_home");
402
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.smart_home_key);
404
widget = lookup_widget(ui_widgets.prefs_dialog, "check_newline_strip");
405
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.newline_strip);
407
if (editor_prefs.use_tabs)
408
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_indent_tabs");
410
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_indent_spaces");
411
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
413
widget = lookup_widget(ui_widgets.prefs_dialog, "check_indicators");
414
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.use_indicators);
416
widget = lookup_widget(ui_widgets.prefs_dialog, "check_symbol_auto_completion");
417
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.auto_complete_symbols);
419
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_symbollistheight");
420
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.symbolcompletion_max_height);
422
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_symbol_complete_chars");
423
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.symbolcompletion_min_chars);
427
if (prefs.tools_make_cmd)
428
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_com_make")), prefs.tools_make_cmd);
430
if (prefs.tools_term_cmd)
431
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_com_term")), prefs.tools_term_cmd);
433
if (prefs.tools_browser_cmd)
434
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_browser")), prefs.tools_browser_cmd);
436
if (prefs.tools_grep_cmd)
437
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_grep")), prefs.tools_grep_cmd);
440
/* Template settings */
441
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_developer");
442
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_developer);
444
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_company");
445
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_company);
447
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_mail");
448
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_mail);
450
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_initial");
451
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_initial);
453
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_version");
454
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_version);
462
GtkWidget *widget_gtk = lookup_widget(ui_widgets.prefs_dialog, "radio_print_gtk");
463
if (printing_prefs.use_gtk_printing)
466
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_print_external");
468
#if GTK_CHECK_VERSION(2, 10, 0)
469
if (gtk_check_version(2, 10, 0) != NULL)
472
gtk_widget_set_sensitive(widget_gtk, FALSE); /* disable the whole option block */
473
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_print_external");
475
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
477
on_prefs_print_radio_button_toggled(GTK_TOGGLE_BUTTON(widget_gtk), NULL);
479
if (printing_prefs.external_print_cmd)
481
GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_print_external_cmd")),
482
printing_prefs.external_print_cmd);
484
widget = lookup_widget(ui_widgets.prefs_dialog, "check_print_linenumbers");
485
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), printing_prefs.print_line_numbers);
487
widget = lookup_widget(ui_widgets.prefs_dialog, "check_print_pagenumbers");
488
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), printing_prefs.print_page_numbers);
490
widget = lookup_widget(ui_widgets.prefs_dialog, "check_print_pageheader");
491
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), printing_prefs.print_page_header);
492
on_prefs_print_page_header_toggled(GTK_TOGGLE_BUTTON(widget), NULL);
494
widget = lookup_widget(ui_widgets.prefs_dialog, "check_print_basename");
495
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), printing_prefs.page_header_basename);
497
if (printing_prefs.page_header_datefmt)
499
GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_print_dateformat")),
500
printing_prefs.page_header_datefmt);
504
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "check_plugins"), FALSE);
318
// make VTE switch visible only when VTE is compiled in, it is hidden by default
319
widget = lookup_widget(app->prefs_dialog, "check_vte");
508
/* make VTE switch visible only when VTE is compiled in, it is hidden by default */
509
widget = lookup_widget(ui_widgets.prefs_dialog, "check_vte");
320
510
gtk_widget_show(widget);
321
511
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vte_info.load_vte);
324
514
if (vte_info.have_vte)
326
widget = lookup_widget(app->prefs_dialog, "font_term");
516
widget = lookup_widget(ui_widgets.prefs_dialog, "font_term");
327
517
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), vc->font);
329
widget = lookup_widget(app->prefs_dialog, "color_fore");
519
widget = lookup_widget(ui_widgets.prefs_dialog, "color_fore");
330
520
gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), vc->colour_fore);
332
widget = lookup_widget(app->prefs_dialog, "color_back");
522
widget = lookup_widget(ui_widgets.prefs_dialog, "color_back");
333
523
gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), vc->colour_back);
335
widget = lookup_widget(app->prefs_dialog, "spin_scrollback");
525
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_scrollback");
336
526
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), vc->scrollback_lines);
338
widget = lookup_widget(app->prefs_dialog, "entry_emulation");
528
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_emulation");
339
529
gtk_entry_set_text(GTK_ENTRY(widget), vc->emulation);
341
widget = lookup_widget(app->prefs_dialog, "entry_shell");
531
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_shell");
342
532
gtk_entry_set_text(GTK_ENTRY(widget), vc->shell);
344
widget = lookup_widget(app->prefs_dialog, "check_scroll_key");
534
widget = lookup_widget(ui_widgets.prefs_dialog, "check_scroll_key");
345
535
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->scroll_on_key);
347
widget = lookup_widget(app->prefs_dialog, "check_scroll_out");
537
widget = lookup_widget(ui_widgets.prefs_dialog, "check_scroll_out");
348
538
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->scroll_on_out);
350
widget = lookup_widget(app->prefs_dialog, "check_ignore_menu_key");
540
widget = lookup_widget(ui_widgets.prefs_dialog, "check_enable_bash_keys");
541
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->enable_bash_keys);
543
widget = lookup_widget(ui_widgets.prefs_dialog, "check_ignore_menu_key");
351
544
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->ignore_menu_bar_accel);
353
widget = lookup_widget(app->prefs_dialog, "check_follow_path");
546
widget = lookup_widget(ui_widgets.prefs_dialog, "check_follow_path");
354
547
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->follow_path);
549
widget = lookup_widget(ui_widgets.prefs_dialog, "check_run_in_vte");
550
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->run_in_vte);
552
widget = lookup_widget(ui_widgets.prefs_dialog, "check_skip_script");
553
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->skip_run_script);
359
//gtk_notebook_set_tab_pos
364
void on_prefs_button_clicked(GtkDialog *dialog, gint response, gpointer user_data)
563
on_prefs_button_clicked(GtkDialog *dialog, gint response, gpointer user_data)
366
if (response == GTK_RESPONSE_OK)
565
if (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY)
368
567
GtkWidget *widget;
372
widget = lookup_widget(app->prefs_dialog, "spin_mru");
373
app->mru_length = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
375
widget = lookup_widget(app->prefs_dialog, "check_load_session");
376
app->pref_main_load_session = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
378
widget = lookup_widget(app->prefs_dialog, "check_save_win_pos");
379
app->pref_main_save_winpos = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
381
widget = lookup_widget(app->prefs_dialog, "check_beep");
382
app->beep_on_errors = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
384
widget = lookup_widget(app->prefs_dialog, "check_ask_for_quit");
385
app->pref_main_confirm_exit = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
387
widget = lookup_widget(app->prefs_dialog, "check_switch_pages");
388
app->switch_msgwin_pages = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
390
widget = lookup_widget(app->prefs_dialog, "radio_tab_right");
391
app->tab_order_ltr = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
394
// Interface settings
395
widget = lookup_widget(app->prefs_dialog, "check_list_symbol");
396
app->sidebar_symbol_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
398
widget = lookup_widget(app->prefs_dialog, "check_list_openfiles");
399
app->sidebar_openfiles_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
401
widget = lookup_widget(app->prefs_dialog, "radio_long_line_line");
402
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) app->long_line_type = 0;
570
/* General settings */
571
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_mru");
572
prefs.mru_length = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
575
widget = lookup_widget(ui_widgets.prefs_dialog, "check_load_session");
576
prefs.load_session = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
578
widget = lookup_widget(ui_widgets.prefs_dialog, "check_project_session");
579
project_prefs.project_session = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
581
widget = lookup_widget(ui_widgets.prefs_dialog, "check_save_win_pos");
582
prefs.save_winpos = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
584
widget = lookup_widget(ui_widgets.prefs_dialog, "check_plugins");
585
prefs.load_plugins = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
587
widget = lookup_widget(ui_widgets.prefs_dialog, "check_ask_for_quit");
588
prefs.confirm_exit = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
591
widget = lookup_widget(ui_widgets.prefs_dialog, "check_beep");
592
prefs.beep_on_errors = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
594
widget = lookup_widget(ui_widgets.prefs_dialog, "check_ask_suppress_search_dialogs");
595
prefs.suppress_search_dialogs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
597
widget = lookup_widget(ui_widgets.prefs_dialog, "check_switch_pages");
598
prefs.switch_msgwin_pages = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
600
widget = lookup_widget(ui_widgets.prefs_dialog, "check_suppress_status_msgs");
601
prefs.suppress_status_messages = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
603
widget = lookup_widget(ui_widgets.prefs_dialog, "check_search_use_current_word");
604
prefs.search_use_current_word = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
606
widget = lookup_widget(ui_widgets.prefs_dialog, "check_auto_focus");
607
prefs.auto_focus = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
609
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_contextaction");
610
g_free(prefs.context_action_cmd);
611
prefs.context_action_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
613
widget = lookup_widget(ui_widgets.prefs_dialog, "startup_path_entry");
614
g_free(prefs.default_open_path);
615
prefs.default_open_path = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
617
project_apply_prefs(); /* project file path */
620
/* Interface settings */
621
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_symbol");
622
prefs.sidebar_symbol_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
624
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles");
625
prefs.sidebar_openfiles_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
627
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles_fullpath");
628
prefs.sidebar_openfiles_fullpath = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
630
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_long_line_line");
631
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) editor_prefs.long_line_type = 0;
405
widget = lookup_widget(app->prefs_dialog, "radio_long_line_background");
406
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) app->long_line_type = 1;
634
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_long_line_background");
635
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) editor_prefs.long_line_type = 1;
408
{ // now only the disabled radio remains, so disable it
409
app->long_line_type = 2;
637
{ /* now only the disabled radio remains, so disable it */
638
editor_prefs.long_line_type = 2;
412
if (app->long_line_column == 0) app->long_line_type = 2;
414
widget = lookup_widget(app->prefs_dialog, "combo_tab_editor");
415
app->tab_pos_editor = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
417
widget = lookup_widget(app->prefs_dialog, "combo_tab_msgwin");
418
app->tab_pos_msgwin = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
420
widget = lookup_widget(app->prefs_dialog, "combo_tab_sidebar");
421
app->tab_pos_sidebar = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
425
widget = lookup_widget(app->prefs_dialog, "check_toolbar_show");
426
app->toolbar_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
428
widget = lookup_widget(app->prefs_dialog, "check_toolbar_search");
429
app->pref_toolbar_show_search = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
431
widget = lookup_widget(app->prefs_dialog, "check_toolbar_goto");
432
app->pref_toolbar_show_goto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
434
widget = lookup_widget(app->prefs_dialog, "check_toolbar_zoom");
435
app->pref_toolbar_show_zoom = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
437
widget = lookup_widget(app->prefs_dialog, "check_toolbar_undo");
438
app->pref_toolbar_show_undo = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
440
widget = lookup_widget(app->prefs_dialog, "check_toolbar_compile");
441
app->pref_toolbar_show_compile = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
443
widget = lookup_widget(app->prefs_dialog, "check_toolbar_colour");
444
app->pref_toolbar_show_colour = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
446
widget = lookup_widget(app->prefs_dialog, "check_toolbar_fileops");
447
app->pref_toolbar_show_fileops = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
449
widget = lookup_widget(app->prefs_dialog, "radio_toolbar_imagetext");
450
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) app->toolbar_icon_style = 2;
641
if (editor_prefs.long_line_column == 0) editor_prefs.long_line_type = 2;
643
widget = lookup_widget(ui_widgets.prefs_dialog, "check_show_notebook_tabs");
644
prefs.show_notebook_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
646
widget = lookup_widget(ui_widgets.prefs_dialog, "check_show_tab_cross");
647
prefs.show_tab_cross = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
649
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_editor");
650
prefs.tab_pos_editor = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
652
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_msgwin");
653
prefs.tab_pos_msgwin = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
655
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_sidebar");
656
prefs.tab_pos_sidebar = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
658
widget = lookup_widget(ui_widgets.prefs_dialog, "check_statusbar_visible");
659
prefs.statusbar_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
662
/* Toolbar settings */
663
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_show");
664
prefs.toolbar_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
666
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_search");
667
prefs.toolbar_show_search = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
669
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_goto");
670
prefs.toolbar_show_goto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
672
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_zoom");
673
prefs.toolbar_show_zoom = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
675
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_indent");
676
prefs.toolbar_show_indent = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
678
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_undo");
679
prefs.toolbar_show_undo = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
681
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_navigation");
682
prefs.toolbar_show_navigation = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
684
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_compile");
685
prefs.toolbar_show_compile = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
687
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_colour");
688
prefs.toolbar_show_colour = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
690
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_fileops");
691
prefs.toolbar_show_fileops = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
693
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_quit");
694
prefs.toolbar_show_quit = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
696
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_imagetext");
697
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) prefs.toolbar_icon_style = 2;
453
widget = lookup_widget(app->prefs_dialog, "radio_toolbar_image");
700
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_image");
454
701
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
455
app->toolbar_icon_style = 0;
702
prefs.toolbar_icon_style = 0;
457
// now only the text only radio remains, so set text only
458
app->toolbar_icon_style = 1;
462
widget = lookup_widget(app->prefs_dialog, "radio_toolbar_large");
463
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
464
app->toolbar_icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR;
466
app->toolbar_icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
470
widget = lookup_widget(app->prefs_dialog, "spin_tab_width");
471
app->pref_editor_tab_width = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
473
widget = lookup_widget(app->prefs_dialog, "combo_encoding");
474
app->pref_editor_default_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
476
widget = lookup_widget(app->prefs_dialog, "check_trailing_spaces");
477
app->pref_editor_trail_space = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
479
widget = lookup_widget(app->prefs_dialog, "check_new_line");
480
app->pref_editor_new_line = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
482
widget = lookup_widget(app->prefs_dialog, "check_replace_tabs");
483
app->pref_editor_replace_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
485
widget = lookup_widget(app->prefs_dialog, "spin_long_line");
486
app->long_line_column = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
488
widget = lookup_widget(app->prefs_dialog, "check_folding");
489
app->pref_editor_folding = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
704
/* now only the text only radio remains, so set text only */
705
prefs.toolbar_icon_style = 1;
709
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_large");
710
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
711
prefs.toolbar_icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR;
713
prefs.toolbar_icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
717
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_tab_right");
718
prefs.tab_order_ltr = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
721
/* Editor settings */
722
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
723
editor_prefs.tab_width = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
725
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_new_encoding");
726
prefs.default_new_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
728
widget = lookup_widget(ui_widgets.prefs_dialog, "check_open_encoding");
729
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
731
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_open_encoding");
732
prefs.default_open_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
735
prefs.default_open_encoding = -1;
737
widget = lookup_widget(ui_widgets.prefs_dialog, "check_trailing_spaces");
738
prefs.strip_trailing_spaces = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
740
widget = lookup_widget(ui_widgets.prefs_dialog, "check_new_line");
741
prefs.final_new_line = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
743
widget = lookup_widget(ui_widgets.prefs_dialog, "check_replace_tabs");
744
prefs.replace_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
746
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_long_line");
747
editor_prefs.long_line_column = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
749
widget = lookup_widget(ui_widgets.prefs_dialog, "check_folding");
750
editor_prefs.folding = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
490
751
ui_update_fold_items();
492
widget = lookup_widget(app->prefs_dialog, "check_indent");
493
app->pref_editor_show_indent_guide = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
495
widget = lookup_widget(app->prefs_dialog, "check_white_space");
496
app->pref_editor_show_white_space = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
498
widget = lookup_widget(app->prefs_dialog, "check_line_end");
499
app->pref_editor_show_line_endings = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
501
widget = lookup_widget(app->prefs_dialog, "check_auto_indent");
502
app->pref_editor_use_auto_indention = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
504
widget = lookup_widget(app->prefs_dialog, "check_line_wrapping");
505
app->pref_editor_line_breaking = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
507
widget = lookup_widget(app->prefs_dialog, "check_auto_complete");
508
app->pref_editor_auto_complete_constructs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
510
widget = lookup_widget(app->prefs_dialog, "check_xmltag");
511
app->pref_editor_auto_close_xml_tags = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
513
widget = lookup_widget(app->prefs_dialog, "check_indicators");
514
app->pref_editor_use_indicators = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
516
widget = lookup_widget(app->prefs_dialog, "spin_autocheight");
517
app->autocompletion_max_height = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
521
widget = lookup_widget(app->prefs_dialog, "entry_com_make");
522
g_free(app->tools_make_cmd);
523
app->tools_make_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
525
widget = lookup_widget(app->prefs_dialog, "entry_com_term");
526
g_free(app->tools_term_cmd);
527
app->tools_term_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
529
widget = lookup_widget(app->prefs_dialog, "entry_browser");
530
g_free(app->tools_browser_cmd);
531
app->tools_browser_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
533
widget = lookup_widget(app->prefs_dialog, "entry_print");
534
g_free(app->tools_print_cmd);
535
app->tools_print_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
537
widget = lookup_widget(app->prefs_dialog, "entry_grep");
538
g_free(app->tools_grep_cmd);
539
app->tools_grep_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
543
widget = lookup_widget(app->prefs_dialog, "entry_template_developer");
544
g_free(app->pref_template_developer);
545
app->pref_template_developer = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
547
widget = lookup_widget(app->prefs_dialog, "entry_template_company");
548
g_free(app->pref_template_company);
549
app->pref_template_company = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
551
widget = lookup_widget(app->prefs_dialog, "entry_template_mail");
552
g_free(app->pref_template_mail);
553
app->pref_template_mail = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
555
widget = lookup_widget(app->prefs_dialog, "entry_template_initial");
556
g_free(app->pref_template_initial);
557
app->pref_template_initial = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
559
widget = lookup_widget(app->prefs_dialog, "entry_template_version");
560
g_free(app->pref_template_version);
561
app->pref_template_version = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
753
widget = lookup_widget(ui_widgets.prefs_dialog, "check_unfold_children");
754
editor_prefs.unfold_all_children = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
756
widget = lookup_widget(ui_widgets.prefs_dialog, "check_indent");
757
editor_prefs.show_indent_guide = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
759
widget = lookup_widget(ui_widgets.prefs_dialog, "check_white_space");
760
editor_prefs.show_white_space = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
762
widget = lookup_widget(ui_widgets.prefs_dialog, "check_line_end");
763
editor_prefs.show_line_endings = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
765
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_auto_indent_mode");
766
editor_prefs.indent_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
768
widget = lookup_widget(ui_widgets.prefs_dialog, "check_line_wrapping");
769
editor_prefs.line_wrapping = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
771
widget = lookup_widget(ui_widgets.prefs_dialog, "check_complete_snippets");
772
editor_prefs.complete_snippets = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
774
widget = lookup_widget(ui_widgets.prefs_dialog, "check_xmltag");
775
editor_prefs.auto_close_xml_tags = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
777
widget = lookup_widget(ui_widgets.prefs_dialog, "check_indicators");
778
editor_prefs.use_indicators = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
780
widget = lookup_widget(ui_widgets.prefs_dialog, "check_disable_dnd");
781
editor_prefs.disable_dnd = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
783
widget = lookup_widget(ui_widgets.prefs_dialog, "check_smart_home");
784
editor_prefs.smart_home_key = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
786
widget = lookup_widget(ui_widgets.prefs_dialog, "check_newline_strip");
787
editor_prefs.newline_strip = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
789
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_indent_tabs");
791
gboolean use_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
793
/* override each document setting only if the default has changed */
794
if (editor_prefs.use_tabs != use_tabs)
796
editor_prefs.use_tabs = use_tabs;
797
for (i = 0; i < doc_array->len; i++)
799
if (doc_list[i].is_valid)
800
document_set_use_tabs(i, editor_prefs.use_tabs);
805
widget = lookup_widget(ui_widgets.prefs_dialog, "check_detect_indent");
806
editor_prefs.detect_tab_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
808
widget = lookup_widget(ui_widgets.prefs_dialog, "check_symbol_auto_completion");
809
editor_prefs.auto_complete_symbols = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
811
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_symbol_complete_chars");
812
editor_prefs.symbolcompletion_min_chars = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
814
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_symbollistheight");
815
editor_prefs.symbolcompletion_max_height = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
819
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_com_make");
820
g_free(prefs.tools_make_cmd);
821
prefs.tools_make_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
823
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_com_term");
824
g_free(prefs.tools_term_cmd);
825
prefs.tools_term_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
827
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_browser");
828
g_free(prefs.tools_browser_cmd);
829
prefs.tools_browser_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
831
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_grep");
832
g_free(prefs.tools_grep_cmd);
833
prefs.tools_grep_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
836
/* Template settings */
837
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_developer");
838
g_free(prefs.template_developer);
839
prefs.template_developer = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
841
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_company");
842
g_free(prefs.template_company);
843
prefs.template_company = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
845
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_mail");
846
g_free(prefs.template_mail);
847
prefs.template_mail = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
849
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_initial");
850
g_free(prefs.template_initial);
851
prefs.template_initial = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
853
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_version");
854
g_free(prefs.template_version);
855
prefs.template_version = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
565
859
if (edited) keybindings_write_to_file();
863
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_print_gtk");
864
printing_prefs.use_gtk_printing = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
866
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_print_external_cmd");
867
g_free(printing_prefs.external_print_cmd);
868
printing_prefs.external_print_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
870
widget = lookup_widget(ui_widgets.prefs_dialog, "check_print_linenumbers");
871
printing_prefs.print_line_numbers = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
873
widget = lookup_widget(ui_widgets.prefs_dialog, "check_print_pagenumbers");
874
printing_prefs.print_page_numbers = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
876
widget = lookup_widget(ui_widgets.prefs_dialog, "check_print_pageheader");
877
printing_prefs.print_page_header = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
879
widget = lookup_widget(ui_widgets.prefs_dialog, "check_print_basename");
880
printing_prefs.page_header_basename = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
882
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_print_dateformat");
883
g_free(printing_prefs.page_header_datefmt);
884
printing_prefs.page_header_datefmt = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
568
widget = lookup_widget(app->prefs_dialog, "check_vte");
888
widget = lookup_widget(ui_widgets.prefs_dialog, "check_vte");
569
889
vte_info.load_vte = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
572
892
if (vte_info.have_vte)
574
widget = lookup_widget(app->prefs_dialog, "spin_scrollback");
894
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_scrollback");
575
895
vc->scrollback_lines = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
577
widget = lookup_widget(app->prefs_dialog, "entry_emulation");
897
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_emulation");
578
898
g_free(vc->emulation);
579
899
vc->emulation = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
581
widget = lookup_widget(app->prefs_dialog, "entry_shell");
901
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_shell");
582
902
g_free(vc->shell);
583
903
vc->shell = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
585
widget = lookup_widget(app->prefs_dialog, "check_scroll_key");
905
widget = lookup_widget(ui_widgets.prefs_dialog, "check_scroll_key");
586
906
vc->scroll_on_key = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
588
widget = lookup_widget(app->prefs_dialog, "check_scroll_out");
908
widget = lookup_widget(ui_widgets.prefs_dialog, "check_scroll_out");
589
909
vc->scroll_on_out = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
591
widget = lookup_widget(app->prefs_dialog, "check_ignore_menu_key");
911
widget = lookup_widget(ui_widgets.prefs_dialog, "check_enable_bash_keys");
912
vc->enable_bash_keys = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
914
widget = lookup_widget(ui_widgets.prefs_dialog, "check_ignore_menu_key");
592
915
vc->ignore_menu_bar_accel = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
594
widget = lookup_widget(app->prefs_dialog, "check_follow_path");
917
widget = lookup_widget(ui_widgets.prefs_dialog, "check_follow_path");
595
918
vc->follow_path = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
920
widget = lookup_widget(ui_widgets.prefs_dialog, "check_run_in_vte");
921
vc->run_in_vte = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
923
widget = lookup_widget(ui_widgets.prefs_dialog, "check_skip_script");
924
vc->skip_run_script = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
597
926
vte_apply_user_settings();
601
// apply the changes made
930
/* apply the changes made */
931
ui_statusbar_showhide(prefs.statusbar_visible);
932
treeviews_openfiles_update_all(); /* to update if full path setting has changed */
602
933
ui_update_toolbar_items();
603
ui_update_toolbar_icons(app->toolbar_icon_size);
604
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), app->toolbar_icon_style);
605
ui_treeviews_show_hide(FALSE);
607
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->notebook), app->tab_pos_editor);
608
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(msgwindow.notebook), app->tab_pos_msgwin);
609
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->treeview_notebook), app->tab_pos_sidebar);
611
// re-colourise all open documents, if tab width or long line settings have changed
612
for (i = 0; i < GEANY_MAX_OPEN_FILES; i++)
934
ui_update_toolbar_icons(prefs.toolbar_icon_size);
935
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), prefs.toolbar_icon_style);
936
ui_sidebar_show_hide();
937
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), prefs.show_notebook_tabs);
939
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->notebook), prefs.tab_pos_editor);
940
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(msgwindow.notebook), prefs.tab_pos_msgwin);
941
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->treeview_notebook), prefs.tab_pos_sidebar);
943
/* re-colourise all open documents, if tab width or long line settings have changed */
944
for (i = 0; i < doc_array->len; i++)
614
946
if (doc_list[i].is_valid)
616
document_apply_update_prefs(doc_list[i].sci);
617
if (! app->pref_editor_folding) document_unfold_all(i);
948
document_apply_update_prefs(i);
949
if (! editor_prefs.folding)
950
document_unfold_all(i);
953
ui_document_show_hide(-1);
621
// store all settings
955
/* store all settings */
622
956
configuration_save();
624
gtk_list_store_clear(store);
625
gtk_widget_hide(GTK_WIDGET(dialog));
629
gboolean on_prefs_delete_event(GtkWidget *widget, GdkEvent *event, gpointer user_data)
631
gtk_widget_hide(widget);
959
if (response != GTK_RESPONSE_APPLY)
961
gtk_tree_store_clear(store);
962
gtk_widget_hide(GTK_WIDGET(dialog));
862
// test if the entered key combination is already used
863
static gboolean find_duplicate(guint idx, guint key, GdkModifierType mods, const gchar *action)
867
// allow duplicate if there is no key combination
1217
/* Look for a (1st-level) child of parent whose KB_TREE_INDEX matches i,
1218
* setting iter to point to the node if found.
1219
* If parent is NULL, look for a parent node whose KB_TREE_INDEX matches i. */
1220
static gboolean find_child_iter(GtkTreeIter *parent, guint i, GtkTreeIter *iter)
1222
GtkTreeModel *model = GTK_TREE_MODEL(store);
1225
/* get first child of parent */
1226
if (! gtk_tree_model_iter_children(model, iter, parent))
1229
while (TRUE) /* foreach child */
1231
gtk_tree_model_get(model, iter, KB_TREE_INDEX, &idx, -1);
1234
if (! gtk_tree_model_iter_next(model, iter))
1235
return FALSE; /* no more children */
1240
static void clear_tree_shortcut(gsize group_id, gsize keybinding_id)
1245
/* find parent kb group */
1246
if (! find_child_iter(NULL, group_id, &parent))
1249
/* find child kb node*/
1250
if (! find_child_iter(&parent, keybinding_id, &child))
1253
gtk_tree_store_set(store, &child, KB_TREE_SHORTCUT, NULL, -1); /* clear shortcut */
1257
/* test if the entered key combination is already used */
1258
static gboolean find_duplicate(KeyBinding *search_kb,
1259
guint key, GdkModifierType mods, const gchar *action)
1263
/* allow duplicate if there is no key combination */
868
1264
if (key == 0 && mods == 0) return FALSE;
870
for (i = 0; i < GEANY_MAX_KEYS; i++)
1266
for (g = 0; g < keybinding_groups->len; g++)
872
// search another item with the same key, but take not the key we are searching for(-> idx)
873
if (keys[i]->key == key && keys[i]->mods == mods
874
&& ! (keys[i]->key == keys[idx]->key && keys[i]->mods == keys[idx]->mods))
1268
KeyBindingGroup *group = g_ptr_array_index(keybinding_groups, g);
1270
for (i = 0; i < group->count; i++)
877
_("The combination '%s' is already used for \"%s\". Please choose another one."),
878
action, keys[i]->label);
1272
KeyBinding *keys = group->keys;
1273
KeyBinding *kb = &keys[i];
1275
/* search another item with the same key,
1276
* but don't search the key we're looking for keys[idx] */
1277
if (kb->key == key && kb->mods == mods
1278
&& ! (kb->key == search_kb->key && kb->mods == search_kb->mods))
1280
if (dialogs_show_question_full(app->window, _("_Override"), GTK_STOCK_CANCEL,
1281
_("Override that keybinding?"),
1282
_("The combination '%s' is already used for \"%s\"."),
1287
clear_tree_shortcut(g, i);
886
void on_pref_toolbar_show_toggled(GtkToggleButton *togglebutton, gpointer user_data)
888
gboolean sens = gtk_toggle_button_get_active(togglebutton);
890
gtk_widget_set_sensitive(lookup_widget(app->prefs_dialog, "frame11"), sens);
891
gtk_widget_set_sensitive(lookup_widget(app->prefs_dialog, "frame13"), sens);
895
void dialogs_show_prefs_dialog(void)
897
if (app->prefs_dialog == NULL)
1298
static void on_toolbar_show_toggled(GtkToggleButton *togglebutton, gpointer user_data)
1300
gboolean sens = gtk_toggle_button_get_active(togglebutton);
1302
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "frame11"), sens);
1303
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "frame13"), sens);
1307
static void on_show_notebook_tabs_toggled(GtkToggleButton *togglebutton, gpointer user_data)
1309
gboolean sens = gtk_toggle_button_get_active(togglebutton);
1311
/* tab placement only enabled when tabs are visible */
1312
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "combo_tab_editor"), sens);
1313
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "check_show_tab_cross"), sens);
1317
static void on_use_folding_toggled(GtkToggleButton *togglebutton, gpointer user_data)
1319
gboolean sens = gtk_toggle_button_get_active(togglebutton);
1321
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "check_unfold_children"), sens);
1325
static void on_open_encoding_toggled(GtkToggleButton *togglebutton, gpointer user_data)
1327
gboolean sens = gtk_toggle_button_get_active(togglebutton);
1329
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "eventbox3"), sens);
1330
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "label_open_encoding"), sens);
1334
static void on_openfiles_visible_toggled(GtkToggleButton *togglebutton, gpointer user_data)
1336
gboolean sens = gtk_toggle_button_get_active(togglebutton);
1338
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles_fullpath"), sens);
1342
static void on_prefs_print_radio_button_toggled(GtkToggleButton *togglebutton, gpointer user_data)
1344
gboolean sens = gtk_toggle_button_get_active(togglebutton);
1346
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "vbox29"), sens);
1347
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "hbox9"), ! sens);
1351
static void on_prefs_print_page_header_toggled(GtkToggleButton *togglebutton, gpointer user_data)
1353
gboolean sens = gtk_toggle_button_get_active(togglebutton);
1355
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "check_print_basename"), sens);
1356
gtk_widget_set_sensitive(lookup_widget(ui_widgets.prefs_dialog, "entry_print_dateformat"), sens);
1360
void prefs_show_dialog(void)
1362
if (ui_widgets.prefs_dialog == NULL)
1364
GtkWidget *combo_new, *combo_open;
901
1367
gchar *encoding_string;
903
app->prefs_dialog = create_prefs_dialog();
904
gtk_window_set_transient_for(GTK_WINDOW(app->prefs_dialog), GTK_WINDOW(app->window));
1369
ui_widgets.prefs_dialog = create_prefs_dialog();
1370
gtk_widget_set_name(ui_widgets.prefs_dialog, "GeanyPrefsDialog");
1371
gtk_window_set_transient_for(GTK_WINDOW(ui_widgets.prefs_dialog), GTK_WINDOW(app->window));
906
// init the default file encoding combo box
907
combo = lookup_widget(app->prefs_dialog, "combo_encoding");
908
gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo), 3);
1373
/* init the default file encoding combo box */
1374
combo_new = lookup_widget(ui_widgets.prefs_dialog, "combo_new_encoding");
1375
combo_open = lookup_widget(ui_widgets.prefs_dialog, "combo_open_encoding");
1376
gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo_new), 3);
1377
gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo_open), 3);
909
1378
for (i = 0; i < GEANY_ENCODINGS_MAX; i++)
911
1380
encoding_string = encodings_to_string(&encodings[i]);
912
gtk_combo_box_append_text(GTK_COMBO_BOX(combo), encoding_string);
1381
gtk_combo_box_append_text(GTK_COMBO_BOX(combo_new), encoding_string);
1382
gtk_combo_box_append_text(GTK_COMBO_BOX(combo_open), encoding_string);
913
1383
g_free(encoding_string);
1386
/* add manually GeanyWrapLabels because it can't be added with Glade
1388
label = geany_wrap_label_new(_("Enter tool paths below. Tools you do not need can be left blank."));
1389
gtk_widget_show(label);
1390
gtk_box_pack_start(GTK_BOX(lookup_widget(ui_widgets.prefs_dialog, "vbox33")),
1391
label, FALSE, TRUE, 5);
1392
/* page Templates */
1393
label = geany_wrap_label_new(_("Set the information to be used in templates. See the documentation for details."));
1394
gtk_widget_show(label);
1395
gtk_box_pack_start(GTK_BOX(lookup_widget(ui_widgets.prefs_dialog, "vbox31")),
1396
label, FALSE, TRUE, 5);
1397
label = geany_wrap_label_new(_("<i>Notice: For all changes you make here to take effect, you need to restart Geany.</i>"));
1398
gtk_widget_show(label);
1399
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
1400
gtk_box_pack_start(GTK_BOX(lookup_widget(ui_widgets.prefs_dialog, "vbox9")),
1401
label, FALSE, TRUE, 5);
1402
/* page Keybindings */
1403
label = geany_wrap_label_new(_("Here you can change keyboard shortcuts for various actions. Select one and press the Change button to enter a new shortcut, or double click on an action to edit the string representation of the shortcut directly."));
1404
gtk_widget_show(label);
1405
gtk_box_pack_start(GTK_BOX(lookup_widget(ui_widgets.prefs_dialog, "vbox32")),
1406
label, FALSE, TRUE, 5);
1408
label = geany_wrap_label_new(_("<i>Notice: Native GTK printing is only available if Geany was built against GTK 2.10 (or above) <b>and</b> Geany is running with GTK 2.10 (or above).</i>"));
1409
gtk_widget_show(label);
1410
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
1411
gtk_box_pack_start(GTK_BOX(lookup_widget(ui_widgets.prefs_dialog, "vbox27")),
1412
label, FALSE, TRUE, 5);
917
if (vte_info.have_vte)
919
GtkWidget *notebook, *vbox, *label, *alignment, *table;
920
GtkWidget *font_term, *color_fore, *color_back, *spin_scrollback, *entry_emulation;
921
GtkWidget *check_scroll_key, *check_scroll_out, *check_follow_path, *check_ignore_menu_key;
922
GtkWidget *entry_shell, *button_shell, *image_shell;
923
GtkTooltips *tooltips;
924
GtkObject *spin_scrollback_adj;
926
tooltips = GTK_TOOLTIPS(lookup_widget(app->prefs_dialog, "tooltips"));
927
notebook = lookup_widget(app->prefs_dialog, "notebook2");
928
vbox = gtk_vbox_new(FALSE, 0);
929
gtk_container_add(GTK_CONTAINER(notebook), vbox);
931
label = gtk_label_new(_("These are settings for the virtual terminal emulator widget (VTE). They only apply, if the VTE library could be loaded."));
932
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
933
gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_FILL);
934
gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
935
gtk_misc_set_alignment(GTK_MISC(label), 0.14, 0.19);
936
gtk_misc_set_padding(GTK_MISC(label), 0, 8);
938
alignment = gtk_alignment_new(0.5, 0.5, 1, 1);
939
gtk_box_pack_start(GTK_BOX(vbox), alignment, FALSE, FALSE, 0);
940
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 6);
942
table = gtk_table_new(10, 3, FALSE);
943
gtk_container_add(GTK_CONTAINER(alignment), table);
944
gtk_table_set_row_spacings(GTK_TABLE(table), 3);
945
gtk_table_set_col_spacings(GTK_TABLE(table), 10);
947
label = gtk_label_new(_("Terminal font"));
948
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
949
(GtkAttachOptions) (GTK_FILL),
950
(GtkAttachOptions) (0), 0, 0);
951
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
953
font_term = gtk_font_button_new();
954
gtk_table_attach(GTK_TABLE(table), font_term, 1, 2, 0, 1,
955
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
956
(GtkAttachOptions) (0), 0, 0);
957
gtk_tooltips_set_tip(tooltips, font_term, _("Sets the font for the terminal widget."), NULL);
959
label = gtk_label_new(_("Foreground color"));
960
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
961
(GtkAttachOptions) (GTK_FILL),
962
(GtkAttachOptions) (0), 0, 0);
963
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
965
label = gtk_label_new(_("Background color"));
966
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3,
967
(GtkAttachOptions) (GTK_FILL),
968
(GtkAttachOptions) (0), 0, 0);
969
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
971
color_fore = gtk_color_button_new();
972
gtk_table_attach(GTK_TABLE(table), color_fore, 1, 2, 1, 2,
973
(GtkAttachOptions) (GTK_FILL),
974
(GtkAttachOptions) (0), 0, 0);
975
gtk_tooltips_set_tip(tooltips, color_fore, _("Sets the foreground color of the text in the terminal widget."), NULL);
976
gtk_color_button_set_title(GTK_COLOR_BUTTON(color_fore), _("Color Chooser"));
978
color_back = gtk_color_button_new();
979
gtk_table_attach(GTK_TABLE(table), color_back, 1, 2, 2, 3,
980
(GtkAttachOptions) (GTK_FILL),
981
(GtkAttachOptions) (0), 0, 0);
982
gtk_tooltips_set_tip(tooltips, color_back, _("Sets the background color of the text in the terminal widget."), NULL);
983
gtk_color_button_set_title(GTK_COLOR_BUTTON(color_back), _("Color Chooser"));
985
label = gtk_label_new(_("Scrollback lines"));
986
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4,
987
(GtkAttachOptions) (GTK_FILL),
988
(GtkAttachOptions) (0), 0, 0);
989
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
991
spin_scrollback_adj = gtk_adjustment_new(500, 0, 5000, 1, 10, 10);
992
spin_scrollback = gtk_spin_button_new(GTK_ADJUSTMENT(spin_scrollback_adj), 1, 0);
993
gtk_table_attach(GTK_TABLE(table), spin_scrollback, 1, 2, 3, 4,
994
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
995
(GtkAttachOptions) (0), 0, 0);
996
gtk_tooltips_set_tip(tooltips, spin_scrollback, _("Specifies the history in lines, which you can scroll back in the terminal widget."), NULL);
997
gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(spin_scrollback), TRUE);
998
gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spin_scrollback), TRUE);
1000
label = gtk_label_new(_("Terminal emulation"));
1001
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 4, 5,
1002
(GtkAttachOptions) (GTK_FILL),
1003
(GtkAttachOptions) (0), 0, 0);
1004
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
1006
entry_emulation = gtk_entry_new();
1007
gtk_table_attach(GTK_TABLE(table), entry_emulation, 1, 2, 4, 5,
1008
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1009
(GtkAttachOptions) (0), 0, 0);
1010
gtk_tooltips_set_tip(tooltips, entry_emulation, _("Controls how the terminal emulator should behave. xterm is a good start."), NULL);
1012
label = gtk_label_new(_("Shell"));
1013
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 5, 6,
1014
(GtkAttachOptions) (GTK_FILL),
1015
(GtkAttachOptions) (0), 0, 0);
1016
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
1018
entry_shell = gtk_entry_new();
1019
gtk_table_attach(GTK_TABLE(table), entry_shell, 1, 2, 5, 6,
1020
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1021
(GtkAttachOptions) (0), 0, 0);
1022
gtk_tooltips_set_tip(tooltips, entry_shell, _("Sets the path to the shell which should be started inside the terminal emulation."), NULL);
1024
button_shell = gtk_button_new();
1025
gtk_widget_show(button_shell);
1026
gtk_table_attach(GTK_TABLE(table), button_shell, 2, 3, 5, 6,
1027
(GtkAttachOptions) (GTK_FILL),
1028
(GtkAttachOptions) (0), 0, 0);
1030
image_shell = gtk_image_new_from_stock("gtk-open", GTK_ICON_SIZE_BUTTON);
1031
gtk_widget_show(image_shell);
1032
gtk_container_add(GTK_CONTAINER(button_shell), image_shell);
1034
check_scroll_key = gtk_check_button_new_with_mnemonic(_("Scroll on keystroke"));
1035
gtk_table_attach(GTK_TABLE(table), check_scroll_key, 1, 2, 6, 7,
1036
(GtkAttachOptions) (GTK_FILL),
1037
(GtkAttachOptions) (0), 0, 0);
1038
gtk_tooltips_set_tip(tooltips, check_scroll_key, _("Whether to scroll to the bottom if a key was pressed."), NULL);
1039
gtk_button_set_focus_on_click(GTK_BUTTON(check_scroll_key), FALSE);
1041
check_scroll_out = gtk_check_button_new_with_mnemonic(_("Scroll on output"));
1042
gtk_table_attach(GTK_TABLE(table), check_scroll_out, 1, 2, 7, 8,
1043
(GtkAttachOptions) (GTK_FILL),
1044
(GtkAttachOptions) (0), 0, 0);
1045
gtk_tooltips_set_tip(tooltips, check_scroll_out, _("Whether to scroll to the bottom if an output was generated."), NULL);
1046
gtk_button_set_focus_on_click(GTK_BUTTON(check_scroll_out), FALSE);
1048
check_ignore_menu_key = gtk_check_button_new_with_mnemonic(_("Disable menu shortcut key (F10 by default)"));
1049
gtk_table_attach(GTK_TABLE(table), check_ignore_menu_key, 1, 2, 8, 9,
1050
(GtkAttachOptions) (GTK_FILL),
1051
(GtkAttachOptions) (0), 0, 0);
1052
gtk_tooltips_set_tip(tooltips, check_ignore_menu_key, _("This option disables the keybinding to popup the menu bar (default is F10). Disabling it can be useful if you use, for example, Midnight Commander within the VTE."), NULL);
1053
gtk_button_set_focus_on_click(GTK_BUTTON(check_ignore_menu_key), FALSE);
1055
check_follow_path = gtk_check_button_new_with_mnemonic(_("Follow the path of the current file"));
1056
gtk_table_attach(GTK_TABLE(table), check_follow_path, 1, 2, 9, 10,
1057
(GtkAttachOptions) (GTK_FILL),
1058
(GtkAttachOptions) (0), 0, 0);
1059
gtk_tooltips_set_tip(tooltips, check_follow_path, _("Whether to execute \"cd $path\" when you switch between opened files."), NULL);
1060
gtk_button_set_focus_on_click(GTK_BUTTON(check_follow_path), FALSE);
1062
label = gtk_label_new(_("Terminal"));
1063
gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook), gtk_notebook_get_nth_page(
1064
GTK_NOTEBOOK(notebook), 7), label);
1066
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "font_term",
1067
gtk_widget_ref(font_term), (GDestroyNotify) gtk_widget_unref);
1068
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "color_fore",
1069
gtk_widget_ref(color_fore), (GDestroyNotify) gtk_widget_unref);
1070
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "color_back",
1071
gtk_widget_ref(color_back), (GDestroyNotify) gtk_widget_unref);
1072
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "spin_scrollback",
1073
gtk_widget_ref(spin_scrollback), (GDestroyNotify) gtk_widget_unref);
1074
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "entry_emulation",
1075
gtk_widget_ref(entry_emulation), (GDestroyNotify) gtk_widget_unref);
1076
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "entry_shell",
1077
gtk_widget_ref(entry_shell), (GDestroyNotify) gtk_widget_unref);
1078
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "check_scroll_key",
1079
gtk_widget_ref(check_scroll_key), (GDestroyNotify) gtk_widget_unref);
1080
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "check_scroll_out",
1081
gtk_widget_ref(check_scroll_out), (GDestroyNotify) gtk_widget_unref);
1082
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "check_ignore_menu_key",
1083
gtk_widget_ref(check_ignore_menu_key), (GDestroyNotify) gtk_widget_unref);
1084
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "check_follow_path",
1085
gtk_widget_ref(check_follow_path), (GDestroyNotify) gtk_widget_unref);
1087
gtk_widget_show_all(vbox);
1089
g_signal_connect((gpointer) font_term, "font-set", G_CALLBACK(on_prefs_font_choosed),
1090
GINT_TO_POINTER(4));
1091
g_signal_connect((gpointer) color_fore, "color-set", G_CALLBACK(on_prefs_color_choosed),
1092
GINT_TO_POINTER(2));
1093
g_signal_connect((gpointer) color_back, "color-set", G_CALLBACK(on_prefs_color_choosed),
1094
GINT_TO_POINTER(3));
1095
g_signal_connect((gpointer) button_shell, "clicked",
1096
G_CALLBACK(on_pref_tools_button_clicked), entry_shell);
1416
vte_append_preferences_tab();
1099
g_signal_connect((gpointer) app->prefs_dialog, "response", G_CALLBACK(on_prefs_button_clicked), NULL);
1100
g_signal_connect((gpointer) app->prefs_dialog, "delete_event", G_CALLBACK(on_prefs_delete_event), NULL);
1101
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "tagbar_font"),
1419
ui_setup_open_button_callback(lookup_widget(ui_widgets.prefs_dialog, "startup_path_button"), NULL,
1420
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "startup_path_entry")));
1422
g_signal_connect((gpointer) ui_widgets.prefs_dialog, "response",
1423
G_CALLBACK(on_prefs_button_clicked), NULL);
1424
g_signal_connect((gpointer) ui_widgets.prefs_dialog, "delete_event",
1425
G_CALLBACK(gtk_widget_hide_on_delete), NULL);
1427
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "tagbar_font"),
1102
1428
"font-set", G_CALLBACK(on_prefs_font_choosed), GINT_TO_POINTER(1));
1103
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "msgwin_font"),
1429
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "msgwin_font"),
1104
1430
"font-set", G_CALLBACK(on_prefs_font_choosed), GINT_TO_POINTER(2));
1105
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "editor_font"),
1431
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "editor_font"),
1106
1432
"font-set", G_CALLBACK(on_prefs_font_choosed), GINT_TO_POINTER(3));
1107
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "long_line_color"),
1433
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "long_line_color"),
1108
1434
"color-set", G_CALLBACK(on_prefs_color_choosed), GINT_TO_POINTER(1));
1109
// file chooser buttons in the tools tab
1110
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "button_make"),
1111
"clicked", G_CALLBACK(on_pref_tools_button_clicked), lookup_widget(app->prefs_dialog, "entry_com_make"));
1112
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "button_term"),
1113
"clicked", G_CALLBACK(on_pref_tools_button_clicked), lookup_widget(app->prefs_dialog, "entry_com_term"));
1114
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "button_browser"),
1115
"clicked", G_CALLBACK(on_pref_tools_button_clicked), lookup_widget(app->prefs_dialog, "entry_browser"));
1116
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "button_print"),
1117
"clicked", G_CALLBACK(on_pref_tools_button_clicked), lookup_widget(app->prefs_dialog, "entry_print"));
1118
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "button_grep"),
1119
"clicked", G_CALLBACK(on_pref_tools_button_clicked), lookup_widget(app->prefs_dialog, "entry_grep"));
1121
g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "check_toolbar_show"),
1122
"toggled", G_CALLBACK(on_pref_toolbar_show_toggled), NULL);
1435
/* file chooser buttons in the tools tab */
1436
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "button_make"),
1437
"clicked", G_CALLBACK(on_prefs_tools_button_clicked), lookup_widget(ui_widgets.prefs_dialog, "entry_com_make"));
1438
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "button_term"),
1439
"clicked", G_CALLBACK(on_prefs_tools_button_clicked), lookup_widget(ui_widgets.prefs_dialog, "entry_com_term"));
1440
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "button_browser"),
1441
"clicked", G_CALLBACK(on_prefs_tools_button_clicked), lookup_widget(ui_widgets.prefs_dialog, "entry_browser"));
1442
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "button_grep"),
1443
"clicked", G_CALLBACK(on_prefs_tools_button_clicked), lookup_widget(ui_widgets.prefs_dialog, "entry_grep"));
1445
/* tools commands */
1446
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "button_contextaction"),
1447
"clicked", G_CALLBACK(on_prefs_tools_button_clicked), lookup_widget(ui_widgets.prefs_dialog, "entry_contextaction"));
1448
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "button_contextaction"),
1449
"clicked", G_CALLBACK(on_prefs_tools_button_clicked), lookup_widget(ui_widgets.prefs_dialog, "entry_contextaction"));
1452
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "button_print_external_cmd"),
1453
"clicked", G_CALLBACK(on_prefs_tools_button_clicked), lookup_widget(ui_widgets.prefs_dialog, "entry_print_external_cmd"));
1454
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "radio_print_gtk"),
1455
"toggled", G_CALLBACK(on_prefs_print_radio_button_toggled), NULL);
1456
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "check_print_pageheader"),
1457
"toggled", G_CALLBACK(on_prefs_print_page_header_toggled), NULL);
1459
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_show"),
1460
"toggled", G_CALLBACK(on_toolbar_show_toggled), NULL);
1461
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "check_show_notebook_tabs"),
1462
"toggled", G_CALLBACK(on_show_notebook_tabs_toggled), NULL);
1463
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "check_folding"),
1464
"toggled", G_CALLBACK(on_use_folding_toggled), NULL);
1465
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "check_open_encoding"),
1466
"toggled", G_CALLBACK(on_open_encoding_toggled), NULL);
1467
g_signal_connect((gpointer) lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles"),
1468
"toggled", G_CALLBACK(on_openfiles_visible_toggled), NULL);
1126
1471
prefs_init_dialog();
1127
gtk_widget_show(app->prefs_dialog);
1472
gtk_widget_show(ui_widgets.prefs_dialog);
1477
on_prefs_tools_button_clicked (GtkButton *button,
1481
win32_show_pref_file_dialog(item);
1484
gchar *filename, *tmp, **field;
1486
/* initialize the dialog */
1487
dialog = gtk_file_chooser_dialog_new(_("Open File"), GTK_WINDOW(ui_widgets.prefs_dialog),
1488
GTK_FILE_CHOOSER_ACTION_OPEN,
1489
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
1490
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
1491
/* cut the options from the command line */
1492
field = g_strsplit(gtk_entry_get_text(GTK_ENTRY(item)), " ", 2);
1495
filename = g_find_program_in_path(field[0]);
1498
gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(dialog), filename);
1504
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
1506
tmp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
1507
if (g_strv_length(field) > 1)
1508
filename = g_strconcat(tmp, " ", field[1], NULL);
1514
gtk_entry_set_text(GTK_ENTRY(item), filename);
1520
gtk_widget_destroy(dialog);