Note: this commit breaks the plugin API (but is necessary so that in

future the ABI can stay stable when adding preferences).
Split up prefs into interface_prefs, toolbar_prefs, file_prefs,
search_prefs, tool_prefs, template_prefs, and add these to the
plugin API.
Move suppress_search_dialogs and search_use_current_word to
search_prefs, and rename accordingly.
Rename switch_msgwin_pages pref to switch_to_status.
Remove toolbar_ prefix for toolbar_prefs items.
Remove tool_ prefix for tool_prefs items.
Remove template_ prefix for template_prefs items.
Add Geany prefix for EditorPrefs.
Add Geany prefix for SearchPrefs.
Initialize search_prefs to zero in main.c.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2591 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Nick Treleaven 2008-05-16 12:08:39 +00:00
parent c3c4bc008d
commit 3a12da9daf
28 changed files with 567 additions and 487 deletions

View File

@ -1,3 +1,28 @@
2008-05-16 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/templates.c, src/build.c, src/utils.c, src/ui_utils.h,
src/templates.h, src/keybindings.c, src/printing.c, src/prefs.c,
src/dialogs.c, src/prefs.h, src/plugindata.h, src/treeviews.c,
src/msgwindow.c, src/callbacks.c, src/notebook.c, src/keyfile.c,
src/search.c, src/search.h, src/document.c, src/plugins.c,
src/document.h, src/main.c, src/editor.c, src/editor.h, src/ui_utils.c,
plugins/export.c, plugins/filebrowser.c:
Note: this commit breaks the plugin API (but is necessary so that in
future the ABI can stay stable when adding preferences).
Split up prefs into interface_prefs, toolbar_prefs, file_prefs,
search_prefs, tool_prefs, template_prefs, and add these to the
plugin API.
Move suppress_search_dialogs and search_use_current_word to
search_prefs, and rename accordingly.
Rename switch_msgwin_pages pref to switch_to_status.
Remove toolbar_ prefix for toolbar_prefs items.
Remove tool_ prefix for tool_prefs items.
Remove template_ prefix for template_prefs items.
Add Geany prefix for EditorPrefs.
Add Geany prefix for SearchPrefs.
Initialize search_prefs to zero in main.c.
2008-05-15 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* src/*.c src/*.h:

View File

@ -34,6 +34,7 @@
#include "document.h"
#include "prefs.h"
#include "utils.h"
#include "ui_utils.h"
#include "pluginmacros.h"
@ -575,7 +576,7 @@ static void write_html_file(gint idx, const gchar *filename, gboolean use_zoom)
}
/* read Geany's font and font size */
font_desc = pango_font_description_from_string(prefs->editor_font);
font_desc = pango_font_description_from_string(geany_data->interface_prefs->editor_font);
font_name = pango_font_description_get_family(font_desc);
/*font_size = pango_font_description_get_size(font_desc) / PANGO_SCALE;*/
/* take the zoom level also into account */

View File

@ -34,6 +34,7 @@
#include "utils.h"
#include "keybindings.h"
#include "project.h"
#include "ui_utils.h"
#include "plugindata.h"
#include "pluginmacros.h"
@ -712,7 +713,7 @@ static void prepare_file_view(void)
gtk_tree_view_set_enable_search(GTK_TREE_VIEW(file_view), TRUE);
gtk_tree_view_set_search_column(GTK_TREE_VIEW(file_view), FILEVIEW_COLUMN_NAME);
pfd = pango_font_description_from_string(prefs->tagbar_font);
pfd = pango_font_description_from_string(geany_data->interface_prefs->tagbar_font);
gtk_widget_modify_font(file_view, pfd);
pango_font_description_free(pfd);

View File

@ -192,7 +192,7 @@ static GPid build_view_tex_file(gint idx, gint mode)
locale_cmd_string = utils_get_locale_from_utf8(cmd_string);
/* get the terminal path */
locale_term_cmd = utils_get_locale_from_utf8(prefs.tools_term_cmd);
locale_term_cmd = utils_get_locale_from_utf8(tool_prefs.term_cmd);
/* split the term_cmd, so arguments will work too */
term_argv = g_strsplit(locale_term_cmd, " ", -1);
term_argv_len = g_strv_length(term_argv);
@ -209,7 +209,7 @@ static GPid build_view_tex_file(gint idx, gint mode)
{
ui_set_statusbar(TRUE,
_("Could not find terminal \"%s\" "
"(check path for Terminal tool setting in Preferences)"), prefs.tools_term_cmd);
"(check path for Terminal tool setting in Preferences)"), tool_prefs.term_cmd);
utils_free_pointers(executable, view_file, locale_filename, cmd_string, locale_cmd_string,
locale_term_cmd, NULL);
@ -317,7 +317,7 @@ static GPid build_make_file(gint idx, gint build_opts)
if (idx < 0 || doc_list[idx].file_name == NULL) return (GPid) 1;
cmdstr = g_string_new(prefs.tools_make_cmd);
cmdstr = g_string_new(tool_prefs.make_cmd);
g_string_append_c(cmdstr, ' ');
if (build_opts == GBO_MAKE_OBJECT)
@ -751,7 +751,7 @@ static GPid build_run_cmd(gint idx)
gchar **argv = NULL;
/* get the terminal path */
locale_term_cmd = utils_get_locale_from_utf8(prefs.tools_term_cmd);
locale_term_cmd = utils_get_locale_from_utf8(tool_prefs.term_cmd);
/* split the term_cmd, so arguments will work too */
term_argv = g_strsplit(locale_term_cmd, " ", -1);
term_argv_len = g_strv_length(term_argv);
@ -768,7 +768,7 @@ static GPid build_run_cmd(gint idx)
{
ui_set_statusbar(TRUE,
_("Could not find terminal \"%s\" "
"(check path for Terminal tool setting in Preferences)"), prefs.tools_term_cmd);
"(check path for Terminal tool setting in Preferences)"), tool_prefs.term_cmd);
run_info.pid = (GPid) 1;
goto free_strings;
}

View File

@ -485,7 +485,7 @@ on_images_and_text2_activate (GtkMenuItem *menuitem,
if (ignore_toolbar_toggle) return;
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), GTK_TOOLBAR_BOTH);
prefs.toolbar_icon_style = GTK_TOOLBAR_BOTH;
toolbar_prefs.icon_style = GTK_TOOLBAR_BOTH;
}
@ -496,7 +496,7 @@ on_images_only2_activate (GtkMenuItem *menuitem,
if (ignore_toolbar_toggle) return;
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), GTK_TOOLBAR_ICONS);
prefs.toolbar_icon_style = GTK_TOOLBAR_ICONS;
toolbar_prefs.icon_style = GTK_TOOLBAR_ICONS;
}
@ -507,7 +507,7 @@ on_text_only2_activate (GtkMenuItem *menuitem,
if (ignore_toolbar_toggle) return;
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), GTK_TOOLBAR_TEXT);
prefs.toolbar_icon_style = GTK_TOOLBAR_TEXT;
toolbar_prefs.icon_style = GTK_TOOLBAR_TEXT;
}
@ -623,7 +623,7 @@ on_toolbar_large_icons1_activate (GtkMenuItem *menuitem,
{
if (ignore_toolbar_toggle) return;
prefs.toolbar_icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR;
toolbar_prefs.icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR;
ui_update_toolbar_icons(GTK_ICON_SIZE_LARGE_TOOLBAR);
}
@ -634,7 +634,7 @@ on_toolbar_small_icons1_activate (GtkMenuItem *menuitem,
{
if (ignore_toolbar_toggle) return;
prefs.toolbar_icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
toolbar_prefs.icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
ui_update_toolbar_icons(GTK_ICON_SIZE_SMALL_TOOLBAR);
}
@ -829,7 +829,7 @@ toolbar_popup_menu (GtkWidget *widget,
ignore_toolbar_toggle = TRUE;
switch (prefs.toolbar_icon_style)
switch (toolbar_prefs.icon_style)
{
case 0: w = lookup_widget(ui_widgets.toolbar_menu, "images_only2"); break;
case 1: w = lookup_widget(ui_widgets.toolbar_menu, "text_only2"); break;
@ -837,7 +837,7 @@ toolbar_popup_menu (GtkWidget *widget,
}
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w), TRUE);
switch (prefs.toolbar_icon_size)
switch (toolbar_prefs.icon_size)
{
case GTK_ICON_SIZE_LARGE_TOOLBAR:
w = lookup_widget(ui_widgets.toolbar_menu, "large_icons1"); break;
@ -920,8 +920,8 @@ on_show_toolbar1_toggled (GtkCheckMenuItem *checkmenuitem,
{
if (app->ignore_callback) return;
prefs.toolbar_visible = (prefs.toolbar_visible) ? FALSE : TRUE;;
ui_widget_show_hide(GTK_WIDGET(app->toolbar), prefs.toolbar_visible);
toolbar_prefs.visible = (toolbar_prefs.visible) ? FALSE : TRUE;;
ui_widget_show_hide(GTK_WIDGET(app->toolbar), toolbar_prefs.visible);
}
@ -1357,7 +1357,7 @@ on_comments_changelog_activate (GtkMenuItem *menuitem,
sci_insert_text(doc_list[idx].sci, 0, text);
/* sets the cursor to the right position to type the changelog text,
* the template has 21 chars + length of name and email */
sci_goto_pos(doc_list[idx].sci, 21 + strlen(prefs.template_developer) + strlen(prefs.template_mail), TRUE);
sci_goto_pos(doc_list[idx].sci, 21 + strlen(template_prefs.developer) + strlen(template_prefs.mail), TRUE);
g_free(text);
}
@ -1600,10 +1600,10 @@ on_menu_show_sidebar1_toggled (GtkCheckMenuItem *checkmenuitem,
ui_prefs.sidebar_visible = ! ui_prefs.sidebar_visible;
if ((! prefs.sidebar_openfiles_visible && ! prefs.sidebar_symbol_visible))
if ((! interface_prefs.sidebar_openfiles_visible && ! interface_prefs.sidebar_symbol_visible))
{
prefs.sidebar_openfiles_visible = TRUE;
prefs.sidebar_symbol_visible = TRUE;
interface_prefs.sidebar_openfiles_visible = TRUE;
interface_prefs.sidebar_symbol_visible = TRUE;
}
ui_sidebar_show_hide();
@ -1940,7 +1940,7 @@ on_context_action1_activate (GtkMenuItem *menuitem,
}
else
{
command = g_strdup(prefs.context_action_cmd);
command = g_strdup(tool_prefs.context_action_cmd);
}
/* substitute the wildcard %s and run the command if it is non empty */
@ -1974,7 +1974,7 @@ on_menu_toggle_all_additional_widgets1_activate
if (hide_all == -1)
{
if (! gtk_check_menu_item_get_active(msgw) &&
! prefs.show_notebook_tabs &&
! interface_prefs.show_notebook_tabs &&
! gtk_check_menu_item_get_active(toolbari))
{
hide_all = TRUE;
@ -1990,8 +1990,8 @@ on_menu_toggle_all_additional_widgets1_activate
if (gtk_check_menu_item_get_active(msgw))
gtk_check_menu_item_set_active(msgw, ! gtk_check_menu_item_get_active(msgw));
prefs.show_notebook_tabs = FALSE;
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), prefs.show_notebook_tabs);
interface_prefs.show_notebook_tabs = FALSE;
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), interface_prefs.show_notebook_tabs);
ui_statusbar_showhide(FALSE);
@ -2004,8 +2004,8 @@ on_menu_toggle_all_additional_widgets1_activate
if (! gtk_check_menu_item_get_active(msgw))
gtk_check_menu_item_set_active(msgw, ! gtk_check_menu_item_get_active(msgw));
prefs.show_notebook_tabs = TRUE;
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), prefs.show_notebook_tabs);
interface_prefs.show_notebook_tabs = TRUE;
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), interface_prefs.show_notebook_tabs);
ui_statusbar_showhide(TRUE);

View File

@ -43,7 +43,6 @@
#include "dialogs.h"
#include "prefs.h"
#include "callbacks.h"
#include "document.h"
#include "filetypes.h"
@ -789,7 +788,7 @@ void dialogs_show_open_font()
"clicked", G_CALLBACK(on_font_apply_button_clicked), NULL);
gtk_font_selection_dialog_set_font_name(
GTK_FONT_SELECTION_DIALOG(ui_widgets.open_fontsel), prefs.editor_font);
GTK_FONT_SELECTION_DIALOG(ui_widgets.open_fontsel), interface_prefs.editor_font);
gtk_window_set_transient_for(GTK_WINDOW(ui_widgets.open_fontsel), GTK_WINDOW(app->window));
}
/* We make sure the dialog is visible. */

View File

@ -51,7 +51,6 @@
#include <glib/gstdio.h>
#include "document.h"
#include "prefs.h"
#include "filetypes.h"
#include "support.h"
#include "sciwrappers.h"
@ -73,8 +72,11 @@
#include "highlighting.h"
#include "navqueue.h"
#include "win32.h"
#include "search.h"
GeanyFilePrefs file_prefs;
/* dynamic array of document elements to hold all information of the notebook tabs */
GArray *doc_array;
@ -457,7 +459,7 @@ static gint document_create(const gchar *utf8_filename)
document_apply_update_prefs(new_idx);
pfd = pango_font_description_from_string(prefs.editor_font);
pfd = pango_font_description_from_string(interface_prefs.editor_font);
fname = g_strdup_printf("!%s", pango_font_description_get_family(pfd));
editor_set_font(new_idx, fname, pango_font_description_get_size(pfd) / PANGO_SCALE);
pango_font_description_free(pfd);
@ -583,11 +585,11 @@ gint document_new_file(const gchar *filename, filetype *ft, const gchar *text)
else
sci_clear_all(doc_list[idx].sci);
sci_set_eol_mode(doc_list[idx].sci, prefs.default_eol_character);
sci_set_eol_mode(doc_list[idx].sci, file_prefs.default_eol_character);
/* convert the eol chars in the template text in case they are different from
* from prefs.default_eol */
* from file_prefs.default_eol */
if (text != NULL)
sci_convert_eols(doc_list[idx].sci, prefs.default_eol_character);
sci_convert_eols(doc_list[idx].sci, file_prefs.default_eol_character);
editor_set_use_tabs(idx, editor_prefs.use_tabs);
sci_set_undo_collection(doc_list[idx].sci, TRUE);
@ -596,7 +598,7 @@ gint document_new_file(const gchar *filename, filetype *ft, const gchar *text)
doc_list[idx].mtime = time(NULL);
doc_list[idx].changed = FALSE;
doc_list[idx].encoding = g_strdup(encodings[prefs.default_new_encoding].charset);
doc_list[idx].encoding = g_strdup(encodings[file_prefs.default_new_encoding].charset);
/* store the opened encoding for undo/redo */
store_saved_encoding(idx);
@ -1011,8 +1013,8 @@ gint document_open_file_full(gint idx, const gchar *filename, gint pos, gboolean
}
/* if default encoding for opening files is set, use it if no forced encoding is set */
if (prefs.default_open_encoding >= 0 && forced_enc == NULL)
forced_enc = encodings[prefs.default_open_encoding].charset;
if (file_prefs.default_open_encoding >= 0 && forced_enc == NULL)
forced_enc = encodings[file_prefs.default_open_encoding].charset;
if (! load_text_file(locale_filename, utf8_filename, &filedata, forced_enc))
{
@ -1413,11 +1415,11 @@ gboolean document_save_file(gint idx, gboolean force)
}
/* replaces tabs by spaces */
if (prefs.replace_tabs) editor_replace_tabs(idx);
if (file_prefs.replace_tabs) editor_replace_tabs(idx);
/* strip trailing spaces */
if (prefs.strip_trailing_spaces) editor_strip_trailing_spaces(idx);
if (file_prefs.strip_trailing_spaces) editor_strip_trailing_spaces(idx);
/* ensure the file has a newline at the end */
if (prefs.final_new_line) editor_ensure_final_newline(idx);
if (file_prefs.final_new_line) editor_ensure_final_newline(idx);
len = sci_get_length(doc_list[idx].sci) + 1;
if (doc_list[idx].has_bom && encodings_is_unicode_charset(doc_list[idx].encoding))
@ -1616,7 +1618,7 @@ gint document_find_text(gint idx, const gchar *text, gint flags, gboolean search
}
/* we searched only part of the document, so ask whether to wraparound. */
if (prefs.suppress_search_dialogs ||
if (search_prefs.suppress_dialogs ||
dialogs_show_question_full(parent, GTK_STOCK_FIND, GTK_STOCK_CANCEL,
_("Wrap search and find again?"), _("\"%s\" was not found."), text))
{

View File

@ -43,6 +43,24 @@
#endif
typedef struct GeanyFilePrefs
{
gint default_new_encoding;
gint default_open_encoding;
gboolean final_new_line;
gboolean strip_trailing_spaces;
gboolean replace_tabs;
gboolean tab_order_ltr;
gboolean show_tab_cross;
guint mru_length;
gint default_eol_character;
gint disk_check_timeout;
}
GeanyFilePrefs;
extern GeanyFilePrefs file_prefs;
typedef struct FileEncoding
{
gchar *encoding;

View File

@ -50,7 +50,7 @@
static gchar current_word[GEANY_MAX_WORD_LENGTH];
/* Initialised in keyfile.c. */
EditorPrefs editor_prefs;
GeanyEditorPrefs editor_prefs;
EditorInfo editor_info = {current_word, -1};

View File

@ -56,7 +56,7 @@ typedef enum
/* These are the default prefs when creating a new editor window.
* Some of these can be overridden per document.
* Remember to increment abi_version in plugindata.h when changing items. */
typedef struct EditorPrefs
typedef struct GeanyEditorPrefs
{
/* display */
gboolean show_white_space;
@ -94,9 +94,9 @@ typedef struct EditorPrefs
gboolean detect_tab_mode;
gint line_break_column;
gboolean auto_continue_multiline;
} EditorPrefs;
} GeanyEditorPrefs;
extern EditorPrefs editor_prefs;
extern GeanyEditorPrefs editor_prefs;
typedef struct

View File

@ -751,7 +751,7 @@ static gboolean check_fixed_kb(guint keyval, guint state)
if (keyval == GDK_0)
page = npages - 1;
/* invert the order if tabs are added on the other side */
if (swap_alt_tab_order && ! prefs.tab_order_ltr)
if (swap_alt_tab_order && ! file_prefs.tab_order_ltr)
page = (npages - 1) - page;
gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), page);
@ -1174,7 +1174,7 @@ static void cb_func_switch_scribble(G_GNUC_UNUSED guint key_id)
static void cb_func_switch_search_bar(G_GNUC_UNUSED guint key_id)
{
if (prefs.toolbar_visible && prefs.toolbar_show_search)
if (toolbar_prefs.visible && toolbar_prefs.show_search)
gtk_widget_grab_focus(lookup_widget(app->window, "entry1"));
}
@ -1239,10 +1239,10 @@ static void cb_func_move_tab(guint key_id)
break;
}
case GEANY_KEYS_NOTEBOOK_MOVETABFIRST:
gtk_notebook_reorder_child(nb, sci, (prefs.tab_order_ltr) ? 0 : -1);
gtk_notebook_reorder_child(nb, sci, (file_prefs.tab_order_ltr) ? 0 : -1);
break;
case GEANY_KEYS_NOTEBOOK_MOVETABLAST:
gtk_notebook_reorder_child(nb, sci, (prefs.tab_order_ltr) ? -1 : 0);
gtk_notebook_reorder_child(nb, sci, (file_prefs.tab_order_ltr) ? -1 : 0);
break;
}
return;

View File

@ -58,6 +58,7 @@
#include "editor.h"
#include "printing.h"
#include "plugins.h"
#include "templates.h"
/* some default settings which are used at the very first start of Geany to fill
@ -90,10 +91,10 @@ static gint vpan_position;
static void save_recent_files(GKeyFile *config)
{
gchar **recent_files = g_new0(gchar*, prefs.mru_length + 1);
gchar **recent_files = g_new0(gchar*, file_prefs.mru_length + 1);
guint i;
for (i = 0; i < prefs.mru_length; i++)
for (i = 0; i < file_prefs.mru_length; i++)
{
if (! g_queue_is_empty(ui_prefs.recent_queue))
{
@ -108,9 +109,9 @@ static void save_recent_files(GKeyFile *config)
}
}
/* There is a bug in GTK 2.6 g_key_file_set_string_list, we must NULL terminate. */
recent_files[prefs.mru_length] = NULL;
recent_files[file_prefs.mru_length] = NULL;
g_key_file_set_string_list(config, "files", "recent_files",
(const gchar**)recent_files, prefs.mru_length);
(const gchar**)recent_files, file_prefs.mru_length);
g_strfreev(recent_files);
}
@ -191,27 +192,27 @@ static void save_dialog_prefs(GKeyFile *config)
g_key_file_set_boolean(config, PACKAGE, "pref_main_project_session", project_prefs.project_session);
g_key_file_set_boolean(config, PACKAGE, "pref_main_save_winpos", prefs.save_winpos);
g_key_file_set_boolean(config, PACKAGE, "pref_main_confirm_exit", prefs.confirm_exit);
g_key_file_set_boolean(config, PACKAGE, "pref_main_suppress_search_dialogs", prefs.suppress_search_dialogs);
g_key_file_set_boolean(config, PACKAGE, "pref_main_search_use_current_word", prefs.search_use_current_word);
g_key_file_set_boolean(config, PACKAGE, "pref_main_suppress_search_dialogs", search_prefs.suppress_dialogs);
g_key_file_set_boolean(config, PACKAGE, "pref_main_search_use_current_word", search_prefs.use_current_word);
g_key_file_set_boolean(config, PACKAGE, "pref_main_suppress_status_messages", prefs.suppress_status_messages);
g_key_file_set_boolean(config, PACKAGE, "switch_msgwin_pages", prefs.switch_msgwin_pages);
g_key_file_set_boolean(config, PACKAGE, "switch_msgwin_pages", prefs.switch_to_status);
g_key_file_set_boolean(config, PACKAGE, "beep_on_errors", prefs.beep_on_errors);
g_key_file_set_boolean(config, PACKAGE, "auto_focus", prefs.auto_focus);
g_key_file_set_string(config, PACKAGE, "default_open_path", prefs.default_open_path);
/* interface */
g_key_file_set_boolean(config, PACKAGE, "sidebar_symbol_visible", prefs.sidebar_symbol_visible);
g_key_file_set_boolean(config, PACKAGE, "sidebar_openfiles_visible", prefs.sidebar_openfiles_visible);
g_key_file_set_boolean(config, PACKAGE, "sidebar_openfiles_fullpath", prefs.sidebar_openfiles_fullpath);
g_key_file_set_string(config, PACKAGE, "editor_font", prefs.editor_font);
g_key_file_set_string(config, PACKAGE, "tagbar_font", prefs.tagbar_font);
g_key_file_set_string(config, PACKAGE, "msgwin_font", prefs.msgwin_font);
g_key_file_set_boolean(config, PACKAGE, "show_notebook_tabs", prefs.show_notebook_tabs);
g_key_file_set_boolean(config, PACKAGE, "show_tab_cross", prefs.show_tab_cross);
g_key_file_set_boolean(config, PACKAGE, "tab_order_ltr", prefs.tab_order_ltr);
g_key_file_set_integer(config, PACKAGE, "tab_pos_editor", prefs.tab_pos_editor);
g_key_file_set_integer(config, PACKAGE, "tab_pos_msgwin", prefs.tab_pos_msgwin);
g_key_file_set_integer(config, PACKAGE, "tab_pos_sidebar", prefs.tab_pos_sidebar);
g_key_file_set_boolean(config, PACKAGE, "sidebar_symbol_visible", interface_prefs.sidebar_symbol_visible);
g_key_file_set_boolean(config, PACKAGE, "sidebar_openfiles_visible", interface_prefs.sidebar_openfiles_visible);
g_key_file_set_boolean(config, PACKAGE, "sidebar_openfiles_fullpath", interface_prefs.sidebar_openfiles_fullpath);
g_key_file_set_string(config, PACKAGE, "editor_font", interface_prefs.editor_font);
g_key_file_set_string(config, PACKAGE, "tagbar_font", interface_prefs.tagbar_font);
g_key_file_set_string(config, PACKAGE, "msgwin_font", interface_prefs.msgwin_font);
g_key_file_set_boolean(config, PACKAGE, "show_notebook_tabs", interface_prefs.show_notebook_tabs);
g_key_file_set_boolean(config, PACKAGE, "show_tab_cross", file_prefs.show_tab_cross);
g_key_file_set_boolean(config, PACKAGE, "tab_order_ltr", file_prefs.tab_order_ltr);
g_key_file_set_integer(config, PACKAGE, "tab_pos_editor", interface_prefs.tab_pos_editor);
g_key_file_set_integer(config, PACKAGE, "tab_pos_msgwin", interface_prefs.tab_pos_msgwin);
g_key_file_set_integer(config, PACKAGE, "tab_pos_sidebar", interface_prefs.tab_pos_sidebar);
/* display */
g_key_file_set_boolean(config, PACKAGE, "show_indent_guide", editor_prefs.show_indent_guide);
@ -244,46 +245,46 @@ static void save_dialog_prefs(GKeyFile *config)
g_key_file_set_boolean(config, PACKAGE, "auto_continue_multiline", editor_prefs.auto_continue_multiline);
/* files */
g_key_file_set_string(config, PACKAGE, "pref_editor_default_new_encoding", encodings[prefs.default_new_encoding].charset);
if (prefs.default_open_encoding == -1)
g_key_file_set_string(config, PACKAGE, "pref_editor_default_new_encoding", encodings[file_prefs.default_new_encoding].charset);
if (file_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[prefs.default_open_encoding].charset);
g_key_file_set_integer(config, PACKAGE, "default_eol_character", prefs.default_eol_character);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_new_line", prefs.final_new_line);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_replace_tabs", prefs.replace_tabs);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_trail_space", prefs.strip_trailing_spaces);
g_key_file_set_integer(config, PACKAGE, "mru_length", prefs.mru_length);
g_key_file_set_string(config, PACKAGE, "pref_editor_default_open_encoding", encodings[file_prefs.default_open_encoding].charset);
g_key_file_set_integer(config, PACKAGE, "default_eol_character", file_prefs.default_eol_character);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_new_line", file_prefs.final_new_line);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_replace_tabs", file_prefs.replace_tabs);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_trail_space", file_prefs.strip_trailing_spaces);
g_key_file_set_integer(config, PACKAGE, "mru_length", file_prefs.mru_length);
g_key_file_set_integer(config, PACKAGE, "disk_check_timeout", file_prefs.disk_check_timeout);
/* toolbar */
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show", prefs.toolbar_visible);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_search", prefs.toolbar_show_search);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_goto", prefs.toolbar_show_goto);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_zoom", prefs.toolbar_show_zoom);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_indent", prefs.toolbar_show_indent);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_undo", prefs.toolbar_show_undo);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_navigation", prefs.toolbar_show_navigation);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_compile", prefs.toolbar_show_compile);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_colour", prefs.toolbar_show_colour);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_fileops", prefs.toolbar_show_fileops);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_quit", prefs.toolbar_show_quit);
g_key_file_set_integer(config, PACKAGE, "pref_toolbar_icon_style", prefs.toolbar_icon_style);
g_key_file_set_integer(config, PACKAGE, "pref_toolbar_icon_size", prefs.toolbar_icon_size);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show", toolbar_prefs.visible);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_search", toolbar_prefs.show_search);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_goto", toolbar_prefs.show_goto);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_zoom", toolbar_prefs.show_zoom);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_indent", toolbar_prefs.show_indent);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_undo", toolbar_prefs.show_undo);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_navigation", toolbar_prefs.show_navigation);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_compile", toolbar_prefs.show_compile);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_colour", toolbar_prefs.show_colour);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_fileops", toolbar_prefs.show_fileops);
g_key_file_set_boolean(config, PACKAGE, "pref_toolbar_show_quit", toolbar_prefs.show_quit);
g_key_file_set_integer(config, PACKAGE, "pref_toolbar_icon_style", toolbar_prefs.icon_style);
g_key_file_set_integer(config, PACKAGE, "pref_toolbar_icon_size", toolbar_prefs.icon_size);
/* templates */
g_key_file_set_string(config, PACKAGE, "pref_template_developer", prefs.template_developer);
g_key_file_set_string(config, PACKAGE, "pref_template_company", prefs.template_company);
g_key_file_set_string(config, PACKAGE, "pref_template_mail", prefs.template_mail);
g_key_file_set_string(config, PACKAGE, "pref_template_initial", prefs.template_initial);
g_key_file_set_string(config, PACKAGE, "pref_template_version", prefs.template_version);
g_key_file_set_string(config, PACKAGE, "pref_template_developer", template_prefs.developer);
g_key_file_set_string(config, PACKAGE, "pref_template_company", template_prefs.company);
g_key_file_set_string(config, PACKAGE, "pref_template_mail", template_prefs.mail);
g_key_file_set_string(config, PACKAGE, "pref_template_initial", template_prefs.initials);
g_key_file_set_string(config, PACKAGE, "pref_template_version", template_prefs.version);
/* tools settings */
g_key_file_set_string(config, "tools", "make_cmd", prefs.tools_make_cmd ? prefs.tools_make_cmd : "");
g_key_file_set_string(config, "tools", "term_cmd", prefs.tools_term_cmd ? prefs.tools_term_cmd : "");
g_key_file_set_string(config, "tools", "browser_cmd", prefs.tools_browser_cmd ? prefs.tools_browser_cmd : "");
g_key_file_set_string(config, "tools", "grep_cmd", prefs.tools_grep_cmd ? prefs.tools_grep_cmd : "");
g_key_file_set_string(config, PACKAGE, "context_action_cmd", prefs.context_action_cmd);
g_key_file_set_string(config, "tools", "make_cmd", tool_prefs.make_cmd ? tool_prefs.make_cmd : "");
g_key_file_set_string(config, "tools", "term_cmd", tool_prefs.term_cmd ? tool_prefs.term_cmd : "");
g_key_file_set_string(config, "tools", "browser_cmd", tool_prefs.browser_cmd ? tool_prefs.browser_cmd : "");
g_key_file_set_string(config, "tools", "grep_cmd", tool_prefs.grep_cmd ? tool_prefs.grep_cmd : "");
g_key_file_set_string(config, PACKAGE, "context_action_cmd", tool_prefs.context_action_cmd);
/* printing */
g_key_file_set_string(config, "printing", "print_cmd", printing_prefs.external_print_cmd ? printing_prefs.external_print_cmd : "");
@ -329,7 +330,7 @@ static void save_dialog_prefs(GKeyFile *config)
static void save_ui_prefs(GKeyFile *config)
{
g_key_file_set_boolean(config, PACKAGE, "sidebar_visible", ui_prefs.sidebar_visible);
g_key_file_set_boolean(config, PACKAGE, "statusbar_visible", prefs.statusbar_visible);
g_key_file_set_boolean(config, PACKAGE, "statusbar_visible", interface_prefs.statusbar_visible);
g_key_file_set_boolean(config, PACKAGE, "msgwindow_visible", ui_prefs.msgwindow_visible);
g_key_file_set_boolean(config, PACKAGE, "fullscreen", ui_prefs.fullscreen);
@ -391,7 +392,7 @@ static void save_hidden_prefs(GKeyFile *config)
write_hidden_pref_boolean(config, PACKAGE, "complete_snippets_whilst_editing", editor_prefs.complete_snippets_whilst_editing);
write_hidden_pref_boolean(config, PACKAGE, "scroll_stop_at_last_line", editor_prefs.scroll_stop_at_last_line);
#if GTK_CHECK_VERSION(2, 12, 0)
write_hidden_pref_boolean(config, PACKAGE, "show_symbol_list_expanders", prefs.show_symbol_list_expanders);
write_hidden_pref_boolean(config, PACKAGE, "show_symbol_list_expanders", interface_prefs.show_symbol_list_expanders);
#endif
}
@ -443,7 +444,7 @@ void configuration_load_session_files(GKeyFile *config)
recent_files = g_key_file_get_string_list(config, "files", "recent_files", &len, NULL);
if (recent_files != NULL)
{
for (i = 0; (i < len) && (i < prefs.mru_length); i++)
for (i = 0; (i < len) && (i < file_prefs.mru_length); i++)
{
gchar *filename = g_strdup(recent_files[i]);
g_queue_push_tail(ui_prefs.recent_queue, filename);
@ -489,33 +490,33 @@ static void load_dialog_prefs(GKeyFile *config)
/* general */
prefs.confirm_exit = utils_get_setting_boolean(config, PACKAGE, "pref_main_confirm_exit", FALSE);
prefs.suppress_search_dialogs = utils_get_setting_boolean(config, PACKAGE, "pref_main_suppress_search_dialogs", FALSE);
prefs.search_use_current_word = utils_get_setting_boolean(config, PACKAGE, "pref_main_search_use_current_word", TRUE);
search_prefs.suppress_dialogs = utils_get_setting_boolean(config, PACKAGE, "pref_main_suppress_search_dialogs", FALSE);
search_prefs.use_current_word = utils_get_setting_boolean(config, PACKAGE, "pref_main_search_use_current_word", TRUE);
prefs.suppress_status_messages = utils_get_setting_boolean(config, PACKAGE, "pref_main_suppress_status_messages", FALSE);
prefs.load_session = utils_get_setting_boolean(config, PACKAGE, "pref_main_load_session", TRUE);
project_prefs.project_session = utils_get_setting_boolean(config, PACKAGE, "pref_main_project_session", TRUE);
prefs.save_winpos = utils_get_setting_boolean(config, PACKAGE, "pref_main_save_winpos", TRUE);
prefs.beep_on_errors = utils_get_setting_boolean(config, PACKAGE, "beep_on_errors", TRUE);
prefs.switch_msgwin_pages = utils_get_setting_boolean(config, PACKAGE, "switch_msgwin_pages", FALSE);
prefs.switch_to_status = utils_get_setting_boolean(config, PACKAGE, "switch_msgwin_pages", FALSE);
prefs.auto_focus = utils_get_setting_boolean(config, PACKAGE, "auto_focus", FALSE);
prefs.default_open_path = utils_get_setting_string(config, PACKAGE, "default_open_path", "");
/* interface */
prefs.tab_pos_editor = utils_get_setting_integer(config, PACKAGE, "tab_pos_editor", GTK_POS_TOP);
prefs.tab_pos_msgwin = utils_get_setting_integer(config, PACKAGE, "tab_pos_msgwin",GTK_POS_LEFT);
prefs.tab_pos_sidebar = utils_get_setting_integer(config, PACKAGE, "tab_pos_sidebar", GTK_POS_TOP);
prefs.sidebar_symbol_visible = utils_get_setting_boolean(config, PACKAGE, "sidebar_symbol_visible", TRUE);
prefs.sidebar_openfiles_visible = utils_get_setting_boolean(config, PACKAGE, "sidebar_openfiles_visible", TRUE);
prefs.sidebar_openfiles_fullpath = utils_get_setting_boolean(config, PACKAGE, "sidebar_openfiles_fullpath", FALSE);
prefs.statusbar_visible = utils_get_setting_boolean(config, PACKAGE, "statusbar_visible", TRUE);
prefs.tab_order_ltr = utils_get_setting_boolean(config, PACKAGE, "tab_order_ltr", TRUE);
prefs.show_notebook_tabs = utils_get_setting_boolean(config, PACKAGE, "show_notebook_tabs", TRUE);
prefs.show_tab_cross = utils_get_setting_boolean(config, PACKAGE, "show_tab_cross", TRUE);
prefs.editor_font = utils_get_setting_string(config, PACKAGE, "editor_font", GEANY_DEFAULT_FONT_EDITOR);
prefs.tagbar_font = utils_get_setting_string(config, PACKAGE, "tagbar_font", GEANY_DEFAULT_FONT_SYMBOL_LIST);
prefs.msgwin_font = utils_get_setting_string(config, PACKAGE, "msgwin_font", GEANY_DEFAULT_FONT_MSG_WINDOW);
interface_prefs.tab_pos_editor = utils_get_setting_integer(config, PACKAGE, "tab_pos_editor", GTK_POS_TOP);
interface_prefs.tab_pos_msgwin = utils_get_setting_integer(config, PACKAGE, "tab_pos_msgwin",GTK_POS_LEFT);
interface_prefs.tab_pos_sidebar = utils_get_setting_integer(config, PACKAGE, "tab_pos_sidebar", GTK_POS_TOP);
interface_prefs.sidebar_symbol_visible = utils_get_setting_boolean(config, PACKAGE, "sidebar_symbol_visible", TRUE);
interface_prefs.sidebar_openfiles_visible = utils_get_setting_boolean(config, PACKAGE, "sidebar_openfiles_visible", TRUE);
interface_prefs.sidebar_openfiles_fullpath = utils_get_setting_boolean(config, PACKAGE, "sidebar_openfiles_fullpath", FALSE);
interface_prefs.statusbar_visible = utils_get_setting_boolean(config, PACKAGE, "statusbar_visible", TRUE);
file_prefs.tab_order_ltr = utils_get_setting_boolean(config, PACKAGE, "tab_order_ltr", TRUE);
interface_prefs.show_notebook_tabs = utils_get_setting_boolean(config, PACKAGE, "show_notebook_tabs", TRUE);
file_prefs.show_tab_cross = utils_get_setting_boolean(config, PACKAGE, "show_tab_cross", TRUE);
interface_prefs.editor_font = utils_get_setting_string(config, PACKAGE, "editor_font", GEANY_DEFAULT_FONT_EDITOR);
interface_prefs.tagbar_font = utils_get_setting_string(config, PACKAGE, "tagbar_font", GEANY_DEFAULT_FONT_SYMBOL_LIST);
interface_prefs.msgwin_font = utils_get_setting_string(config, PACKAGE, "msgwin_font", GEANY_DEFAULT_FONT_MSG_WINDOW);
#if GTK_CHECK_VERSION(2, 12, 0)
prefs.show_symbol_list_expanders = utils_get_setting_boolean(config, PACKAGE, "show_symbol_list_expanders", TRUE);
interface_prefs.show_symbol_list_expanders = utils_get_setting_boolean(config, PACKAGE, "show_symbol_list_expanders", TRUE);
#endif
/* display, editor */
@ -561,9 +562,9 @@ static void load_dialog_prefs(GKeyFile *config)
{
const GeanyEncoding *enc = encodings_get_from_charset(tmp_string);
if (enc != NULL)
prefs.default_new_encoding = enc->idx;
file_prefs.default_new_encoding = enc->idx;
else
prefs.default_new_encoding = GEANY_ENCODING_UTF_8;
file_prefs.default_new_encoding = GEANY_ENCODING_UTF_8;
g_free(tmp_string);
}
@ -573,39 +574,39 @@ static void load_dialog_prefs(GKeyFile *config)
{
const GeanyEncoding *enc = encodings_get_from_charset(tmp_string);
if (enc != NULL)
prefs.default_open_encoding = enc->idx;
file_prefs.default_open_encoding = enc->idx;
else
prefs.default_open_encoding = -1;
file_prefs.default_open_encoding = -1;
g_free(tmp_string);
}
prefs.default_eol_character = utils_get_setting_integer(config, PACKAGE, "default_eol_character", GEANY_DEFAULT_EOL_CHARACTER);
prefs.replace_tabs = utils_get_setting_boolean(config, PACKAGE, "pref_editor_replace_tabs", FALSE);
prefs.final_new_line = utils_get_setting_boolean(config, PACKAGE, "pref_editor_new_line", TRUE);
prefs.strip_trailing_spaces = utils_get_setting_boolean(config, PACKAGE, "pref_editor_trail_space", FALSE);
prefs.mru_length = utils_get_setting_integer(config, PACKAGE, "mru_length", GEANY_DEFAULT_MRU_LENGTH);
file_prefs.default_eol_character = utils_get_setting_integer(config, PACKAGE, "default_eol_character", GEANY_DEFAULT_EOL_CHARACTER);
file_prefs.replace_tabs = utils_get_setting_boolean(config, PACKAGE, "pref_editor_replace_tabs", FALSE);
file_prefs.final_new_line = utils_get_setting_boolean(config, PACKAGE, "pref_editor_new_line", TRUE);
file_prefs.strip_trailing_spaces = utils_get_setting_boolean(config, PACKAGE, "pref_editor_trail_space", FALSE);
file_prefs.mru_length = utils_get_setting_integer(config, PACKAGE, "mru_length", GEANY_DEFAULT_MRU_LENGTH);
file_prefs.disk_check_timeout = utils_get_setting_integer(config, PACKAGE,
"disk_check_timeout", GEANY_DISK_CHECK_TIMEOUT);
/* toolbar */
prefs.toolbar_visible = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show", TRUE);
prefs.toolbar_show_search = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_search", TRUE);
prefs.toolbar_show_goto = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_goto", TRUE);
prefs.toolbar_show_zoom = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_zoom", FALSE);
prefs.toolbar_show_indent = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_indent", FALSE);
prefs.toolbar_show_compile = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_compile", TRUE);
prefs.toolbar_show_undo = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_undo", FALSE);
prefs.toolbar_show_navigation = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_navigation", TRUE);
prefs.toolbar_show_colour = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_colour", TRUE);
prefs.toolbar_show_fileops = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_fileops", TRUE);
prefs.toolbar_show_quit = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_quit", TRUE);
toolbar_prefs.visible = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show", TRUE);
toolbar_prefs.show_search = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_search", TRUE);
toolbar_prefs.show_goto = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_goto", TRUE);
toolbar_prefs.show_zoom = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_zoom", FALSE);
toolbar_prefs.show_indent = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_indent", FALSE);
toolbar_prefs.show_compile = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_compile", TRUE);
toolbar_prefs.show_undo = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_undo", FALSE);
toolbar_prefs.show_navigation = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_navigation", TRUE);
toolbar_prefs.show_colour = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_colour", TRUE);
toolbar_prefs.show_fileops = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_fileops", TRUE);
toolbar_prefs.show_quit = utils_get_setting_boolean(config, PACKAGE, "pref_toolbar_show_quit", TRUE);
{
GtkIconSize tb_iconsize;
GtkToolbarStyle tb_style;
GEANY_GET_SETTING("gtk-toolbar-style", tb_style, GTK_TOOLBAR_ICONS);
GEANY_GET_SETTING("gtk-toolbar-icon-size", tb_iconsize, GTK_ICON_SIZE_LARGE_TOOLBAR);
prefs.toolbar_icon_style = utils_get_setting_integer(config, PACKAGE, "pref_toolbar_icon_style", tb_style);
prefs.toolbar_icon_size = utils_get_setting_integer(config, PACKAGE, "pref_toolbar_icon_size", tb_iconsize);
toolbar_prefs.icon_style = utils_get_setting_integer(config, PACKAGE, "pref_toolbar_icon_style", tb_style);
toolbar_prefs.icon_size = utils_get_setting_integer(config, PACKAGE, "pref_toolbar_icon_size", tb_iconsize);
}
/* VTE */
@ -647,27 +648,27 @@ static void load_dialog_prefs(GKeyFile *config)
}
#endif
/* templates */
prefs.template_developer = utils_get_setting_string(config, PACKAGE, "pref_template_developer", g_get_real_name());
prefs.template_company = utils_get_setting_string(config, PACKAGE, "pref_template_company", "");
tmp_string = utils_get_initials(prefs.template_developer);
prefs.template_initial = utils_get_setting_string(config, PACKAGE, "pref_template_initial", tmp_string);
template_prefs.developer = utils_get_setting_string(config, PACKAGE, "pref_template_developer", g_get_real_name());
template_prefs.company = utils_get_setting_string(config, PACKAGE, "pref_template_company", "");
tmp_string = utils_get_initials(template_prefs.developer);
template_prefs.initials = utils_get_setting_string(config, PACKAGE, "pref_template_initial", tmp_string);
g_free(tmp_string);
prefs.template_version = utils_get_setting_string(config, PACKAGE, "pref_template_version", "1.0");
template_prefs.version = utils_get_setting_string(config, PACKAGE, "pref_template_version", "1.0");
tmp_string2 = utils_get_hostname();
tmp_string = g_strdup_printf("%s@%s", g_get_user_name(), tmp_string2);
prefs.template_mail = utils_get_setting_string(config, PACKAGE, "pref_template_mail", tmp_string);
template_prefs.mail = utils_get_setting_string(config, PACKAGE, "pref_template_mail", tmp_string);
g_free(tmp_string);
g_free(tmp_string2);
/* tools */
prefs.tools_make_cmd = utils_get_setting_string(config, "tools", "make_cmd", GEANY_DEFAULT_TOOLS_MAKE);
prefs.tools_term_cmd = utils_get_setting_string(config, "tools", "term_cmd", GEANY_DEFAULT_TOOLS_TERMINAL);
prefs.tools_browser_cmd = utils_get_setting_string(config, "tools", "browser_cmd", GEANY_DEFAULT_TOOLS_BROWSER);
prefs.tools_grep_cmd = utils_get_setting_string(config, "tools", "grep_cmd", GEANY_DEFAULT_TOOLS_GREP);
tool_prefs.make_cmd = utils_get_setting_string(config, "tools", "make_cmd", GEANY_DEFAULT_TOOLS_MAKE);
tool_prefs.term_cmd = utils_get_setting_string(config, "tools", "term_cmd", GEANY_DEFAULT_TOOLS_TERMINAL);
tool_prefs.browser_cmd = utils_get_setting_string(config, "tools", "browser_cmd", GEANY_DEFAULT_TOOLS_BROWSER);
tool_prefs.grep_cmd = utils_get_setting_string(config, "tools", "grep_cmd", GEANY_DEFAULT_TOOLS_GREP);
prefs.context_action_cmd = utils_get_setting_string(config, PACKAGE, "context_action_cmd", "");
tool_prefs.context_action_cmd = utils_get_setting_string(config, PACKAGE, "context_action_cmd", "");
/* printing */
tmp_string2 = g_find_program_in_path(GEANY_DEFAULT_TOOLS_PRINTCMD);
@ -875,7 +876,7 @@ void configuration_open_files(void)
document_delay_colourise();
i = prefs.tab_order_ltr ? 0 : (session_files->len - 1);
i = file_prefs.tab_order_ltr ? 0 : (session_files->len - 1);
while (TRUE)
{
gchar **tmp = g_ptr_array_index(session_files, i);
@ -887,7 +888,7 @@ void configuration_open_files(void)
}
g_strfreev(tmp);
if (prefs.tab_order_ltr)
if (file_prefs.tab_order_ltr)
{
i++;
if (i >= (gint)session_files->len) break;

View File

@ -169,7 +169,7 @@ static void apply_settings(void)
ui_update_fold_items();
/* toolbar, message window and sidebar are by default visible, so don't change it if it is true */
if (! prefs.toolbar_visible)
if (! toolbar_prefs.visible)
{
app->ignore_callback = TRUE;
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(lookup_widget(app->window, "menu_show_toolbar1")), FALSE);
@ -191,7 +191,7 @@ static void apply_settings(void)
}
ui_sidebar_show_hide();
/* sets the icon style of the toolbar */
switch (prefs.toolbar_icon_style)
switch (toolbar_prefs.icon_style)
{
case GTK_TOOLBAR_BOTH:
{
@ -212,15 +212,15 @@ static void apply_settings(void)
break;
}
}
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), prefs.toolbar_icon_style);
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), toolbar_prefs.icon_style);
/* sets the icon size of the toolbar, use user preferences (.gtkrc) if not set */
if (prefs.toolbar_icon_size == GTK_ICON_SIZE_SMALL_TOOLBAR ||
prefs.toolbar_icon_size == GTK_ICON_SIZE_LARGE_TOOLBAR)
if (toolbar_prefs.icon_size == GTK_ICON_SIZE_SMALL_TOOLBAR ||
toolbar_prefs.icon_size == GTK_ICON_SIZE_LARGE_TOOLBAR)
{
gtk_toolbar_set_icon_size(GTK_TOOLBAR(app->toolbar), prefs.toolbar_icon_size);
gtk_toolbar_set_icon_size(GTK_TOOLBAR(app->toolbar), toolbar_prefs.icon_size);
}
ui_update_toolbar_icons(prefs.toolbar_icon_size);
ui_update_toolbar_icons(toolbar_prefs.icon_size);
/* line number and markers margin are by default enabled */
if (! editor_prefs.show_markers_margin)
@ -244,7 +244,7 @@ static void apply_settings(void)
}
/* hide statusbar if desired */
if (! prefs.statusbar_visible)
if (! interface_prefs.statusbar_visible)
{
gtk_widget_hide(app->statusbar);
}
@ -262,14 +262,14 @@ static void apply_settings(void)
lookup_widget(app->window, "menutoolbutton1")), ui_widgets.new_file_menu);
/* set the tab placements of the notebooks */
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->notebook), prefs.tab_pos_editor);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(msgwindow.notebook), prefs.tab_pos_msgwin);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->treeview_notebook), prefs.tab_pos_sidebar);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->notebook), interface_prefs.tab_pos_editor);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(msgwindow.notebook), interface_prefs.tab_pos_msgwin);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->treeview_notebook), interface_prefs.tab_pos_sidebar);
ui_update_toolbar_items();
/* whether to show notebook tabs or not */
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), prefs.show_notebook_tabs);
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), interface_prefs.show_notebook_tabs);
}
@ -285,7 +285,7 @@ static void main_init(void)
ui_widgets.prefs_dialog = NULL;
tv.default_tag_tree = NULL;
main_status.main_window_realized= FALSE;
prefs.tab_order_ltr = FALSE;
file_prefs.tab_order_ltr = FALSE;
main_status.quitting = FALSE;
app->ignore_callback = FALSE;
app->tm_workspace = tm_get_workspace();
@ -758,6 +758,13 @@ gint main(gint argc, gchar **argv)
app = g_new0(GeanyApp, 1);
memset(&main_status, 0, sizeof(GeanyStatus));
memset(&prefs, 0, sizeof(GeanyPrefs));
memset(&interface_prefs, 0, sizeof(GeanyInterfacePrefs));
memset(&toolbar_prefs, 0, sizeof(GeanyToolbarPrefs));
memset(&editor_prefs, 0, sizeof(GeanyEditorPrefs));
memset(&file_prefs, 0, sizeof(GeanyFilePrefs));
memset(&search_prefs, 0, sizeof(GeanySearchPrefs));
memset(&tool_prefs, 0, sizeof(GeanyToolPrefs));
memset(&template_prefs, 0, sizeof(GeanyTemplatePrefs));
memset(&ui_prefs, 0, sizeof(UIPrefs));
memset(&ui_widgets, 0, sizeof(UIWidgets));
@ -957,20 +964,20 @@ void main_quit()
g_free(app->docdir);
g_free(prefs.default_open_path);
g_free(ui_prefs.custom_date_format);
g_free(prefs.editor_font);
g_free(prefs.tagbar_font);
g_free(prefs.msgwin_font);
g_free(interface_prefs.editor_font);
g_free(interface_prefs.tagbar_font);
g_free(interface_prefs.msgwin_font);
g_free(editor_prefs.long_line_color);
g_free(prefs.context_action_cmd);
g_free(prefs.template_developer);
g_free(prefs.template_company);
g_free(prefs.template_mail);
g_free(prefs.template_initial);
g_free(prefs.template_version);
g_free(prefs.tools_make_cmd);
g_free(prefs.tools_term_cmd);
g_free(prefs.tools_browser_cmd);
g_free(prefs.tools_grep_cmd);
g_free(tool_prefs.context_action_cmd);
g_free(template_prefs.developer);
g_free(template_prefs.company);
g_free(template_prefs.mail);
g_free(template_prefs.initials);
g_free(template_prefs.version);
g_free(tool_prefs.make_cmd);
g_free(tool_prefs.term_cmd);
g_free(tool_prefs.browser_cmd);
g_free(tool_prefs.grep_cmd);
g_free(printing_prefs.external_print_cmd);
g_free(printing_prefs.page_header_datefmt);
g_strfreev(ui_prefs.custom_commands);

View File

@ -117,7 +117,7 @@ static void prepare_status_tree_view(void)
gtk_tree_view_set_enable_search(GTK_TREE_VIEW(msgwindow.tree_status), FALSE);
pfd = pango_font_description_from_string(prefs.msgwin_font);
pfd = pango_font_description_from_string(interface_prefs.msgwin_font);
gtk_widget_modify_font(msgwindow.tree_status, pfd);
pango_font_description_free(pfd);
@ -147,7 +147,7 @@ static void prepare_msg_tree_view(void)
gtk_tree_view_set_enable_search(GTK_TREE_VIEW(msgwindow.tree_msg), FALSE);
pfd = pango_font_description_from_string(prefs.msgwin_font);
pfd = pango_font_description_from_string(interface_prefs.msgwin_font);
gtk_widget_modify_font(msgwindow.tree_msg, pfd);
pango_font_description_free(pfd);
@ -180,7 +180,7 @@ static void prepare_compiler_tree_view(void)
gtk_tree_view_set_enable_search(GTK_TREE_VIEW(msgwindow.tree_compiler), FALSE);
pfd = pango_font_description_from_string(prefs.msgwin_font);
pfd = pango_font_description_from_string(interface_prefs.msgwin_font);
gtk_widget_modify_font(msgwindow.tree_compiler, pfd);
pango_font_description_free(pfd);
@ -353,7 +353,7 @@ void msgwin_status_add(const gchar *format, ...)
GtkTreePath *path = gtk_tree_model_get_path(gtk_tree_view_get_model(GTK_TREE_VIEW(msgwindow.tree_status)), &iter);
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(msgwindow.tree_status), path, NULL, FALSE, 0.0, 0.0);
if (prefs.switch_msgwin_pages) gtk_notebook_set_current_page(GTK_NOTEBOOK(msgwindow.notebook), MSG_STATUS);
if (prefs.switch_to_status) gtk_notebook_set_current_page(GTK_NOTEBOOK(msgwindow.notebook), MSG_STATUS);
gtk_tree_path_free(path);
}
}

View File

@ -27,7 +27,6 @@
#include "geany.h"
#include "notebook.h"
#include "prefs.h"
#include "document.h"
#include "ui_utils.h"
#include "treeviews.h"
@ -339,7 +338,7 @@ gint notebook_new_tab(gint doc_idx)
gtk_container_add(GTK_CONTAINER(ebox), this->tab_label);
gtk_box_pack_start(GTK_BOX(hbox), ebox, FALSE, FALSE, 0);
if (prefs.show_tab_cross)
if (file_prefs.show_tab_cross)
{
GtkWidget *image, *btn, *align;
GtkRcStyle *rcstyle;
@ -376,7 +375,7 @@ gint notebook_new_tab(gint doc_idx)
this->tabmenu_label = gtk_label_new(title);
gtk_misc_set_alignment(GTK_MISC(this->tabmenu_label), 0.0, 0);
if (prefs.tab_order_ltr)
if (file_prefs.tab_order_ltr)
tabnum = gtk_notebook_append_page_menu(GTK_NOTEBOOK(app->notebook), page,
hbox, this->tabmenu_label);
else
@ -412,7 +411,7 @@ void notebook_remove_page(gint page_num)
gint curpage = gtk_notebook_get_current_page(GTK_NOTEBOOK(app->notebook));
/* Focus the next page, not the previous */
if (curpage == page_num && prefs.tab_order_ltr)
if (curpage == page_num && file_prefs.tab_order_ltr)
{
gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), curpage + 1);
}

View File

@ -35,12 +35,12 @@
/* The API version should be incremented whenever any plugin data types below are
* modified or appended to. */
static const gint api_version = 58;
static const gint api_version = 59;
/* The ABI version should be incremented whenever existing fields in the plugin
* data types below have to be changed or reordered. It should stay the same if fields
* are only appended, as this doesn't affect existing fields. */
static const gint abi_version = 28;
static const gint abi_version = 29;
/** Check the plugin can be loaded by Geany.
* This performs runtime checks that try to ensure:
@ -157,8 +157,14 @@ typedef struct GeanyData
GtkWidget *tools_menu; /**< Most plugins should add menu items to the Tools menu only */
GArray *doc_array; /**< Dynamic array of document structs */
GPtrArray *filetypes_array; /**< Dynamic array of filetype pointers */
struct GeanyPrefs *prefs; /* Note: this will be split up in future versions */
struct EditorPrefs *editor_prefs; /**< Editor settings */
struct GeanyPrefs *prefs; /**< General settings */
struct GeanyInterfacePrefs *interface_prefs; /**< Interface settings */
struct GeanyToolbarPrefs *toolbar_prefs; /**< Toolbar settings */
struct GeanyEditorPrefs *editor_prefs; /**< Editor settings */
struct GeanyFilePrefs *file_prefs; /**< File-related settings */
struct GeanySearchPrefs *search_prefs; /**< Search-related settings */
struct GeanyToolPrefs *tool_prefs; /**< Tool settings */
struct GeanyTemplatePrefs *template_prefs; /**< Template settings */
struct BuildInfo *build_info; /**< Current build information */
struct DocumentFuncs *documents; /**< See document.h */

View File

@ -252,6 +252,12 @@ static GeanyData geany_data = {
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
&doc_funcs,
&sci_funcs,
@ -280,7 +286,13 @@ geany_data_init(void)
geany_data.doc_array = doc_array;
geany_data.filetypes_array = filetypes_array;
geany_data.prefs = &prefs;
geany_data.interface_prefs = &interface_prefs;
geany_data.toolbar_prefs = &toolbar_prefs;
geany_data.editor_prefs = &editor_prefs;
geany_data.file_prefs = &file_prefs;
geany_data.search_prefs = &search_prefs;
geany_data.tool_prefs = &tool_prefs;
geany_data.template_prefs = &template_prefs;
geany_data.build_info = &build_info;
}

View File

@ -49,6 +49,8 @@
#include "treeviews.h"
#include "printing.h"
#include "geanywraplabel.h"
#include "templates.h"
#include "search.h"
#ifdef HAVE_VTE
# include "vte.h"
@ -60,8 +62,8 @@
GeanyPrefs prefs;
GeanyToolPrefs tool_prefs;
GeanyFilePrefs file_prefs;
static gchar *dialog_key_name;
static GtkTreeIter g_iter;
@ -186,7 +188,7 @@ void prefs_init_dialog(void)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.beep_on_errors);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_switch_pages");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.switch_msgwin_pages);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.switch_to_status);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_suppress_status_msgs");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.suppress_status_messages);
@ -195,13 +197,13 @@ void prefs_init_dialog(void)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.auto_focus);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_ask_suppress_search_dialogs");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.suppress_search_dialogs);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), search_prefs.suppress_dialogs);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_search_use_current_word");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.search_use_current_word);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), search_prefs.use_current_word);
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_contextaction");
gtk_entry_set_text(GTK_ENTRY(widget), prefs.context_action_cmd);
gtk_entry_set_text(GTK_ENTRY(widget), tool_prefs.context_action_cmd);
widget = lookup_widget(ui_widgets.prefs_dialog, "startup_path_entry");
gtk_entry_set_text(GTK_ENTRY(widget), prefs.default_open_path);
@ -211,23 +213,23 @@ void prefs_init_dialog(void)
/* Interface settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_symbol");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.sidebar_symbol_visible);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), interface_prefs.sidebar_symbol_visible);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.sidebar_openfiles_visible);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), interface_prefs.sidebar_openfiles_visible);
on_openfiles_visible_toggled(GTK_TOGGLE_BUTTON(widget), NULL);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles_fullpath");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.sidebar_openfiles_fullpath);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), interface_prefs.sidebar_openfiles_fullpath);
widget = lookup_widget(ui_widgets.prefs_dialog, "tagbar_font");
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), prefs.tagbar_font);
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), interface_prefs.tagbar_font);
widget = lookup_widget(ui_widgets.prefs_dialog, "msgwin_font");
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), prefs.msgwin_font);
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), interface_prefs.msgwin_font);
widget = lookup_widget(ui_widgets.prefs_dialog, "editor_font");
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), prefs.editor_font);
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), interface_prefs.editor_font);
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_long_line");
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.long_line_column);
@ -247,63 +249,63 @@ void prefs_init_dialog(void)
g_free(color);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_show_notebook_tabs");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.show_notebook_tabs);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), interface_prefs.show_notebook_tabs);
/* disable following setting if notebook tabs are hidden */
on_show_notebook_tabs_toggled(GTK_TOGGLE_BUTTON(
lookup_widget(ui_widgets.prefs_dialog, "check_show_notebook_tabs")), NULL);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_show_tab_cross");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.show_tab_cross);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), file_prefs.show_tab_cross);
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_editor");
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.tab_pos_editor);
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), interface_prefs.tab_pos_editor);
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_msgwin");
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.tab_pos_msgwin);
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), interface_prefs.tab_pos_msgwin);
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_sidebar");
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.tab_pos_sidebar);
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), interface_prefs.tab_pos_sidebar);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_statusbar_visible");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.statusbar_visible);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), interface_prefs.statusbar_visible);
/* Toolbar settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_show");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_visible);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.visible);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_search");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_search);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_search);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_goto");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_goto);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_goto);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_compile");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_compile);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_compile);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_zoom");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_zoom);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_zoom);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_indent");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_indent);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_indent);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_undo");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_undo);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_undo);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_navigation");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_navigation);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_navigation);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_colour");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_colour);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_colour);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_fileops");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_fileops);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_fileops);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_quit");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.toolbar_show_quit);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), toolbar_prefs.show_quit);
switch (prefs.toolbar_icon_style)
switch (toolbar_prefs.icon_style)
{
case 0: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_image"); break;
case 1: widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_text"); break;
@ -312,7 +314,7 @@ void prefs_init_dialog(void)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
switch (prefs.toolbar_icon_size)
switch (toolbar_prefs.icon_size)
{
case GTK_ICON_SIZE_LARGE_TOOLBAR:
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_large"); break;
@ -325,14 +327,14 @@ void prefs_init_dialog(void)
/* Files settings */
if (prefs.tab_order_ltr)
if (file_prefs.tab_order_ltr)
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_tab_right");
else
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_tab_left");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_mru");
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), prefs.mru_length);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), file_prefs.mru_length);
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_disk_check");
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), file_prefs.disk_check_timeout);
@ -340,41 +342,41 @@ void prefs_init_dialog(void)
widget = lookup_widget(ui_widgets.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), prefs.default_new_encoding);
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), file_prefs.default_new_encoding);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_open_encoding");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
(prefs.default_open_encoding >= 0) ? TRUE : FALSE);
(file_prefs.default_open_encoding >= 0) ? TRUE : FALSE);
on_open_encoding_toggled(GTK_TOGGLE_BUTTON(widget), NULL);
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_open_encoding");
if (prefs.default_open_encoding >= 0)
if (file_prefs.default_open_encoding >= 0)
{
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.default_open_encoding);
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), file_prefs.default_open_encoding);
}
else
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), GEANY_ENCODING_UTF_8);
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_eol");
if (prefs.default_eol_character >= 0 && prefs.default_eol_character < 3)
if (file_prefs.default_eol_character >= 0 && file_prefs.default_eol_character < 3)
{
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.default_eol_character);
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), file_prefs.default_eol_character);
}
else
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), GEANY_DEFAULT_EOL_CHARACTER);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_trailing_spaces");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.strip_trailing_spaces);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), file_prefs.strip_trailing_spaces);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_new_line");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.final_new_line);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), file_prefs.final_new_line);
/* Editor settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.tab_width);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_replace_tabs");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.replace_tabs);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), file_prefs.replace_tabs);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_indent");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.show_indent_guide);
@ -443,34 +445,34 @@ void prefs_init_dialog(void)
/* Tools Settings */
if (prefs.tools_make_cmd)
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_com_make")), prefs.tools_make_cmd);
if (tool_prefs.make_cmd)
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_com_make")), tool_prefs.make_cmd);
if (prefs.tools_term_cmd)
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_com_term")), prefs.tools_term_cmd);
if (tool_prefs.term_cmd)
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_com_term")), tool_prefs.term_cmd);
if (prefs.tools_browser_cmd)
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_browser")), prefs.tools_browser_cmd);
if (tool_prefs.browser_cmd)
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_browser")), tool_prefs.browser_cmd);
if (prefs.tools_grep_cmd)
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_grep")), prefs.tools_grep_cmd);
if (tool_prefs.grep_cmd)
gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_grep")), tool_prefs.grep_cmd);
/* Template settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_developer");
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_developer);
gtk_entry_set_text(GTK_ENTRY(widget), template_prefs.developer);
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_company");
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_company);
gtk_entry_set_text(GTK_ENTRY(widget), template_prefs.company);
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_mail");
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_mail);
gtk_entry_set_text(GTK_ENTRY(widget), template_prefs.mail);
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_initial");
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_initial);
gtk_entry_set_text(GTK_ENTRY(widget), template_prefs.initials);
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_version");
gtk_entry_set_text(GTK_ENTRY(widget), prefs.template_version);
gtk_entry_set_text(GTK_ENTRY(widget), template_prefs.version);
/* Keybindings */
@ -608,23 +610,23 @@ on_prefs_button_clicked(GtkDialog *dialog, gint response, gpointer user_data)
prefs.beep_on_errors = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_ask_suppress_search_dialogs");
prefs.suppress_search_dialogs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
search_prefs.suppress_dialogs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_switch_pages");
prefs.switch_msgwin_pages = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
prefs.switch_to_status = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_suppress_status_msgs");
prefs.suppress_status_messages = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_search_use_current_word");
prefs.search_use_current_word = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
search_prefs.use_current_word = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_auto_focus");
prefs.auto_focus = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_contextaction");
g_free(prefs.context_action_cmd);
prefs.context_action_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(tool_prefs.context_action_cmd);
tool_prefs.context_action_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
widget = lookup_widget(ui_widgets.prefs_dialog, "startup_path_entry");
g_free(prefs.default_open_path);
@ -635,13 +637,13 @@ on_prefs_button_clicked(GtkDialog *dialog, gint response, gpointer user_data)
/* Interface settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_symbol");
prefs.sidebar_symbol_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
interface_prefs.sidebar_symbol_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles");
prefs.sidebar_openfiles_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
interface_prefs.sidebar_openfiles_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_list_openfiles_fullpath");
prefs.sidebar_openfiles_fullpath = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
interface_prefs.sidebar_openfiles_fullpath = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_long_line_line");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) editor_prefs.long_line_type = 0;
@ -657,111 +659,111 @@ on_prefs_button_clicked(GtkDialog *dialog, gint response, gpointer user_data)
if (editor_prefs.long_line_column == 0) editor_prefs.long_line_type = 2;
widget = lookup_widget(ui_widgets.prefs_dialog, "check_show_notebook_tabs");
prefs.show_notebook_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
interface_prefs.show_notebook_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_show_tab_cross");
prefs.show_tab_cross = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
file_prefs.show_tab_cross = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_editor");
prefs.tab_pos_editor = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
interface_prefs.tab_pos_editor = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_msgwin");
prefs.tab_pos_msgwin = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
interface_prefs.tab_pos_msgwin = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_tab_sidebar");
prefs.tab_pos_sidebar = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
interface_prefs.tab_pos_sidebar = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_statusbar_visible");
prefs.statusbar_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
interface_prefs.statusbar_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
/* Toolbar settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_show");
prefs.toolbar_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_search");
prefs.toolbar_show_search = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_search = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_goto");
prefs.toolbar_show_goto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_goto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_zoom");
prefs.toolbar_show_zoom = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_zoom = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_indent");
prefs.toolbar_show_indent = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_indent = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_undo");
prefs.toolbar_show_undo = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_undo = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_navigation");
prefs.toolbar_show_navigation = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_navigation = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_compile");
prefs.toolbar_show_compile = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_compile = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_colour");
prefs.toolbar_show_colour = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_colour = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_fileops");
prefs.toolbar_show_fileops = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_fileops = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_toolbar_quit");
prefs.toolbar_show_quit = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
toolbar_prefs.show_quit = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_imagetext");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) prefs.toolbar_icon_style = 2;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) toolbar_prefs.icon_style = 2;
else
{
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_image");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
prefs.toolbar_icon_style = 0;
toolbar_prefs.icon_style = 0;
else
/* now only the text only radio remains, so set text only */
prefs.toolbar_icon_style = 1;
toolbar_prefs.icon_style = 1;
}
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_toolbar_large");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
prefs.toolbar_icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR;
toolbar_prefs.icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR;
else
prefs.toolbar_icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
toolbar_prefs.icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
/* Files settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "radio_tab_right");
prefs.tab_order_ltr = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
file_prefs.tab_order_ltr = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_mru");
prefs.mru_length = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
file_prefs.mru_length = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_disk_check");
file_prefs.disk_check_timeout = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_new_encoding");
prefs.default_new_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
file_prefs.default_new_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_open_encoding");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
{
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_open_encoding");
prefs.default_open_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
file_prefs.default_open_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
}
else
prefs.default_open_encoding = -1;
file_prefs.default_open_encoding = -1;
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_eol");
prefs.default_eol_character = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
file_prefs.default_eol_character = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_trailing_spaces");
prefs.strip_trailing_spaces = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
file_prefs.strip_trailing_spaces = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_new_line");
prefs.final_new_line = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
file_prefs.final_new_line = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(ui_widgets.prefs_dialog, "check_replace_tabs");
prefs.replace_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
file_prefs.replace_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
/* Editor settings */
@ -848,42 +850,42 @@ on_prefs_button_clicked(GtkDialog *dialog, gint response, gpointer user_data)
/* Tools Settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_com_make");
g_free(prefs.tools_make_cmd);
prefs.tools_make_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(tool_prefs.make_cmd);
tool_prefs.make_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_com_term");
g_free(prefs.tools_term_cmd);
prefs.tools_term_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(tool_prefs.term_cmd);
tool_prefs.term_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_browser");
g_free(prefs.tools_browser_cmd);
prefs.tools_browser_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(tool_prefs.browser_cmd);
tool_prefs.browser_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_grep");
g_free(prefs.tools_grep_cmd);
prefs.tools_grep_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(tool_prefs.grep_cmd);
tool_prefs.grep_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
/* Template settings */
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_developer");
g_free(prefs.template_developer);
prefs.template_developer = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(template_prefs.developer);
template_prefs.developer = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_company");
g_free(prefs.template_company);
prefs.template_company = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(template_prefs.company);
template_prefs.company = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_mail");
g_free(prefs.template_mail);
prefs.template_mail = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(template_prefs.mail);
template_prefs.mail = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_initial");
g_free(prefs.template_initial);
prefs.template_initial = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(template_prefs.initials);
template_prefs.initials = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
widget = lookup_widget(ui_widgets.prefs_dialog, "entry_template_version");
g_free(prefs.template_version);
prefs.template_version = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
g_free(template_prefs.version);
template_prefs.version = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
/* Keybindings */
@ -959,17 +961,17 @@ on_prefs_button_clicked(GtkDialog *dialog, gint response, gpointer user_data)
#endif
/* apply the changes made */
ui_statusbar_showhide(prefs.statusbar_visible);
ui_statusbar_showhide(interface_prefs.statusbar_visible);
treeviews_openfiles_update_all(); /* to update if full path setting has changed */
ui_update_toolbar_items();
ui_update_toolbar_icons(prefs.toolbar_icon_size);
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), prefs.toolbar_icon_style);
ui_update_toolbar_icons(toolbar_prefs.icon_size);
gtk_toolbar_set_style(GTK_TOOLBAR(app->toolbar), toolbar_prefs.icon_style);
ui_sidebar_show_hide();
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), prefs.show_notebook_tabs);
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->notebook), interface_prefs.show_notebook_tabs);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->notebook), prefs.tab_pos_editor);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(msgwindow.notebook), prefs.tab_pos_msgwin);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->treeview_notebook), prefs.tab_pos_sidebar);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->notebook), interface_prefs.tab_pos_editor);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(msgwindow.notebook), interface_prefs.tab_pos_msgwin);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->treeview_notebook), interface_prefs.tab_pos_sidebar);
/* re-colourise all open documents, if tab width or long line settings have changed */
for (i = 0; i < doc_array->len; i++)
@ -1036,29 +1038,29 @@ void on_prefs_font_choosed(GtkFontButton *widget, gpointer user_data)
{
case 1:
{
if (strcmp(fontbtn, prefs.tagbar_font) == 0) break;
g_free(prefs.tagbar_font);
prefs.tagbar_font = g_strdup(fontbtn);
if (strcmp(fontbtn, interface_prefs.tagbar_font) == 0) break;
g_free(interface_prefs.tagbar_font);
interface_prefs.tagbar_font = g_strdup(fontbtn);
for (i = 0; i < doc_array->len; i++)
{
if (doc_list[i].is_valid && GTK_IS_WIDGET(doc_list[i].tag_tree))
ui_widget_modify_font_from_string(doc_list[i].tag_tree,
prefs.tagbar_font);
interface_prefs.tagbar_font);
}
if (GTK_IS_WIDGET(tv.default_tag_tree))
ui_widget_modify_font_from_string(tv.default_tag_tree, prefs.tagbar_font);
ui_widget_modify_font_from_string(tv.default_tag_tree, interface_prefs.tagbar_font);
ui_widget_modify_font_from_string(lookup_widget(app->window, "entry1"),
prefs.tagbar_font);
interface_prefs.tagbar_font);
break;
}
case 2:
{
if (strcmp(fontbtn, prefs.msgwin_font) == 0) break;
g_free(prefs.msgwin_font);
prefs.msgwin_font = g_strdup(fontbtn);
ui_widget_modify_font_from_string(msgwindow.tree_compiler, prefs.msgwin_font);
ui_widget_modify_font_from_string(msgwindow.tree_msg, prefs.msgwin_font);
ui_widget_modify_font_from_string(msgwindow.tree_status, prefs.msgwin_font);
if (strcmp(fontbtn, interface_prefs.msgwin_font) == 0) break;
g_free(interface_prefs.msgwin_font);
interface_prefs.msgwin_font = g_strdup(fontbtn);
ui_widget_modify_font_from_string(msgwindow.tree_compiler, interface_prefs.msgwin_font);
ui_widget_modify_font_from_string(msgwindow.tree_msg, interface_prefs.msgwin_font);
ui_widget_modify_font_from_string(msgwindow.tree_status, interface_prefs.msgwin_font);
break;
}
case 3:

View File

@ -24,90 +24,36 @@
#ifndef GEANY_PREFS_H
#define GEANY_PREFS_H 1
/* Preferences dialog settings.
* (See also EditorPrefs in editor.h and PrintingPrefs in printing.h).
* Remember to increment abi_version in plugindata.h when changing items. */
/* General Preferences dialog settings.
* Remember to increment abi_version in plugindata.h if you have to change an item. */
typedef struct GeanyPrefs
{
/* general */
gboolean load_session;
gboolean load_plugins;
gboolean save_winpos;
gboolean confirm_exit;
gboolean beep_on_errors;
gboolean suppress_search_dialogs;
gboolean search_use_current_word;
gboolean suppress_status_messages;
gboolean switch_msgwin_pages;
gboolean switch_to_status;
gboolean auto_focus;
gchar *default_open_path;
/* interface */
gboolean sidebar_symbol_visible;
gboolean sidebar_openfiles_visible;
gboolean sidebar_openfiles_fullpath;
gchar *editor_font;
gchar *tagbar_font;
gchar *msgwin_font;
gboolean show_notebook_tabs;
gint tab_pos_editor;
gint tab_pos_msgwin;
gint tab_pos_sidebar;
gboolean statusbar_visible;
gboolean show_symbol_list_expanders;
/* toolbar */
gboolean toolbar_visible;
gboolean toolbar_show_search;
gboolean toolbar_show_goto;
gboolean toolbar_show_undo;
gboolean toolbar_show_navigation;
gboolean toolbar_show_compile;
gboolean toolbar_show_zoom;
gboolean toolbar_show_indent;
gboolean toolbar_show_colour;
gboolean toolbar_show_fileops;
gboolean toolbar_show_quit;
GtkIconSize toolbar_icon_size;
gint toolbar_icon_style;
/* files */
gint default_new_encoding;
gint default_open_encoding;
gboolean final_new_line;
gboolean strip_trailing_spaces;
gboolean replace_tabs;
gboolean tab_order_ltr;
gboolean show_tab_cross;
guint mru_length;
gint default_eol_character;
/* tools */
gchar *tools_browser_cmd;
gchar *tools_make_cmd;
gchar *tools_term_cmd;
gchar *tools_grep_cmd;
gchar *context_action_cmd;
/* templates */
gchar *template_developer;
gchar *template_company;
gchar *template_mail;
gchar *template_initial;
gchar *template_version;
}
GeanyPrefs;
extern GeanyPrefs prefs;
typedef struct GeanyFilePrefs
typedef struct GeanyToolPrefs
{
gint disk_check_timeout;
gchar *browser_cmd;
gchar *make_cmd;
gchar *term_cmd;
gchar *grep_cmd;
gchar *context_action_cmd;
}
GeanyFilePrefs;
GeanyToolPrefs;
extern GeanyFilePrefs file_prefs;
extern GeanyToolPrefs tool_prefs;
void prefs_init_dialog(void);

View File

@ -33,7 +33,6 @@
#include "geany.h"
#include "printing.h"
#include "prefs.h"
#include "document.h"
#include "sciwrappers.h"
#include "editor.h"
@ -415,7 +414,7 @@ static void begin_print(GtkPrintOperation *operation, GtkPrintContext *context,
if (dinfo == NULL)
return;
desc = pango_font_description_from_string(prefs.editor_font);
desc = pango_font_description_from_string(interface_prefs.editor_font);
/* init dinfo fields */
dinfo->lines = sci_get_line_count(doc_list[dinfo->idx].sci);

View File

@ -64,7 +64,8 @@ enum {
GeanySearchData search_data;
SearchPrefs search_prefs = {NULL};
GeanySearchPrefs search_prefs;
static struct
{
@ -290,7 +291,7 @@ void search_show_find_dialog(void)
g_return_if_fail(DOC_IDX_VALID(idx));
sel = editor_get_default_selection(idx, prefs.search_use_current_word, NULL);
sel = editor_get_default_selection(idx, search_prefs.use_current_word, NULL);
if (widgets.find_dialog == NULL)
{
@ -411,7 +412,7 @@ void search_show_replace_dialog(void)
if (idx == -1 || ! doc_list[idx].is_valid) return;
sel = editor_get_default_selection(idx, prefs.search_use_current_word, NULL);
sel = editor_get_default_selection(idx, search_prefs.use_current_word, NULL);
if (widgets.replace_dialog == NULL)
{
@ -710,13 +711,13 @@ void search_show_find_in_files_dialog(const gchar *dir)
G_CALLBACK(gtk_widget_hide_on_delete), NULL);
gtk_widget_show_all(widgets.find_in_files_dialog);
sel = editor_get_default_selection(idx, prefs.search_use_current_word, NULL);
sel = editor_get_default_selection(idx, search_prefs.use_current_word, NULL);
}
entry = GTK_BIN(combo)->child;
/* only set selection if the dialog is not already visible, or has just been created */
if (! sel && ! GTK_WIDGET_VISIBLE(widgets.find_in_files_dialog))
sel = editor_get_default_selection(idx, prefs.search_use_current_word, NULL);
sel = editor_get_default_selection(idx, search_prefs.use_current_word, NULL);
if (sel)
gtk_entry_set_text(GTK_ENTRY(entry), sel);
g_free(sel);
@ -882,7 +883,7 @@ on_find_dialog_response(GtkDialog *dialog, gint response, gpointer user_data)
document_find_text(idx, search_data.text, search_data.flags,
(response == GEANY_RESPONSE_FIND_PREVIOUS), TRUE, GTK_WIDGET(widgets.find_dialog));
check_close = FALSE;
if (prefs.suppress_search_dialogs)
if (search_prefs.suppress_dialogs)
check_close = TRUE;
break;
@ -1165,11 +1166,11 @@ search_find_in_files(const gchar *search_text, const gchar *dir, const gchar *op
if (! search_text || ! *search_text || ! dir) return TRUE;
command_grep = g_find_program_in_path(prefs.tools_grep_cmd);
command_grep = g_find_program_in_path(tool_prefs.grep_cmd);
if (command_grep == NULL)
{
ui_set_statusbar(TRUE, _("Cannot execute grep tool '%s';"
" check the path setting in Preferences."), prefs.tools_grep_cmd);
" check the path setting in Preferences."), tool_prefs.grep_cmd);
return FALSE;
}
@ -1186,7 +1187,7 @@ search_find_in_files(const gchar *search_text, const gchar *dir, const gchar *op
}
g_strfreev(opts_argv);
i++; /* correct for prefs.tools_grep_cmd */
i++; /* correct for tool_prefs.grep_cmd */
argv_prefix[i++] = g_strdup("--");
argv_prefix[i++] = g_strdup(search_text);
@ -1234,7 +1235,7 @@ search_find_in_files(const gchar *search_text, const gchar *dir, const gchar *op
g_child_watch_add(child_pid, search_close_pid, NULL);
str = g_strdup_printf(_("%s %s -- %s (in directory: %s)"),
prefs.tools_grep_cmd, opts, search_text, dir);
tool_prefs.grep_cmd, opts, search_text, dir);
utf8_str = utils_get_utf8_from_locale(str);
msgwin_msg_add(COLOR_BLUE, -1, -1, utf8_str);
utils_free_pointers(str, utf8_str, NULL);

View File

@ -26,7 +26,7 @@
#define GEANY_SEARCH_H 1
/* the flags given in the search dialog for "find next", also used by the search bar */
typedef struct
typedef struct GeanySearchData
{
gchar *text;
gint flags;
@ -34,17 +34,21 @@ typedef struct
/* set to TRUE when text was set by a search bar callback to keep track of
* search bar background colour */
gboolean search_bar;
} GeanySearchData;
}
GeanySearchData;
extern GeanySearchData search_data;
typedef struct
typedef struct GeanySearchPrefs
{
gchar *fif_extra_options;
} SearchPrefs;
gboolean suppress_dialogs;
gboolean use_current_word;
}
GeanySearchPrefs;
extern SearchPrefs search_prefs;
extern GeanySearchPrefs search_prefs;
void search_init(void);

View File

@ -32,7 +32,6 @@
#include "geany.h"
#include "templates.h"
#include "prefs.h"
#include "support.h"
#include "utils.h"
#include "document.h"
@ -44,6 +43,8 @@
#define TEMPLATE_DATETIME_FORMAT "%d.%m.%Y %H:%M:%S %Z"
GeanyTemplatePrefs template_prefs;
static GtkWidget *new_with_template_menu = NULL; /* File menu submenu */
@ -763,11 +764,11 @@ static gchar *templates_replace_all(gchar *text, const gchar *year, const gchar
{
text = utils_str_replace(text, "{year}", year);
text = utils_str_replace(text, "{date}", date);
text = utils_str_replace(text, "{version}", prefs.template_version);
text = utils_str_replace(text, "{initial}", prefs.template_initial);
text = utils_str_replace(text, "{developer}", prefs.template_developer);
text = utils_str_replace(text, "{mail}", prefs.template_mail);
text = utils_str_replace(text, "{company}", prefs.template_company);
text = utils_str_replace(text, "{version}", template_prefs.version);
text = utils_str_replace(text, "{initial}", template_prefs.initials);
text = utils_str_replace(text, "{developer}", template_prefs.developer);
text = utils_str_replace(text, "{mail}", template_prefs.mail);
text = utils_str_replace(text, "{company}", template_prefs.company);
text = utils_str_replace(text, "{untitled}", GEANY_STRING_UNTITLED);
text = utils_str_replace(text, "{geanyversion}", "Geany " VERSION);

View File

@ -34,6 +34,20 @@ enum
GEANY_MAX_TEMPLATES
};
typedef struct GeanyTemplatePrefs
{
gchar *developer;
gchar *company;
gchar *mail;
gchar *initials;
gchar *version;
}
GeanyTemplatePrefs;
extern GeanyTemplatePrefs template_prefs;
struct filetype;
void templates_init(void);

View File

@ -28,7 +28,6 @@
#include <string.h>
#include "geany.h"
#include "prefs.h"
#include "support.h"
#include "callbacks.h"
#include "treeviews.h"
@ -113,7 +112,7 @@ static void prepare_taglist(GtkWidget *tree, GtkTreeStore *store)
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE);
pfd = pango_font_description_from_string(prefs.tagbar_font);
pfd = pango_font_description_from_string(interface_prefs.tagbar_font);
gtk_widget_modify_font(tree, pfd);
pango_font_description_free(pfd);
@ -126,8 +125,8 @@ static void prepare_taglist(GtkWidget *tree, GtkTreeStore *store)
gtk_tree_view_set_enable_search(GTK_TREE_VIEW(tree), FALSE);
#if GTK_CHECK_VERSION(2, 12, 0)
gtk_tree_view_set_show_expanders(GTK_TREE_VIEW(tree), prefs.show_symbol_list_expanders);
if (! prefs.show_symbol_list_expanders)
gtk_tree_view_set_show_expanders(GTK_TREE_VIEW(tree), interface_prefs.show_symbol_list_expanders);
if (! interface_prefs.show_symbol_list_expanders)
gtk_tree_view_set_level_indentation(GTK_TREE_VIEW(tree), 10);
#endif
@ -274,7 +273,7 @@ static void prepare_openfiles(void)
sortable = GTK_TREE_SORTABLE(GTK_TREE_MODEL(store_openfiles));
gtk_tree_sortable_set_sort_column_id(sortable, 0, GTK_SORT_ASCENDING);
pfd = pango_font_description_from_string(prefs.tagbar_font);
pfd = pango_font_description_from_string(interface_prefs.tagbar_font);
gtk_widget_modify_font(tv.tree_openfiles, pfd);
pango_font_description_free(pfd);
@ -311,7 +310,7 @@ void treeviews_openfiles_update(gint idx)
gchar *basename;
GdkColor *color = document_get_status_color(idx);
if (prefs.sidebar_openfiles_fullpath)
if (interface_prefs.sidebar_openfiles_fullpath)
basename = DOC_FILENAME(idx);
else
basename = g_path_get_basename(DOC_FILENAME(idx));
@ -321,7 +320,7 @@ void treeviews_openfiles_update(gint idx)
#else
0, basename, 1, idx, 2, color, -1);
#endif
if (! prefs.sidebar_openfiles_fullpath)
if (! interface_prefs.sidebar_openfiles_fullpath)
g_free(basename);
}
@ -409,21 +408,21 @@ static void create_taglist_popup_menu(void)
static void on_openfiles_fullpath_activate(GtkCheckMenuItem *item, gpointer user_data)
{
prefs.sidebar_openfiles_fullpath = gtk_check_menu_item_get_active(item);
interface_prefs.sidebar_openfiles_fullpath = gtk_check_menu_item_get_active(item);
treeviews_openfiles_update_all();
}
static void on_list_document_activate(GtkCheckMenuItem *item, gpointer user_data)
{
prefs.sidebar_openfiles_visible = gtk_check_menu_item_get_active(item);
interface_prefs.sidebar_openfiles_visible = gtk_check_menu_item_get_active(item);
ui_sidebar_show_hide();
}
static void on_list_symbol_activate(GtkCheckMenuItem *item, gpointer user_data)
{
prefs.sidebar_symbol_visible = gtk_check_menu_item_get_active(item);
interface_prefs.sidebar_symbol_visible = gtk_check_menu_item_get_active(item);
ui_sidebar_show_hide();
}
@ -619,7 +618,7 @@ static void on_taglist_tree_popup_clicked(GtkMenuItem *menuitem, gpointer user_d
}
case SYMBOL_ACTION_HIDE:
{
prefs.sidebar_symbol_visible = FALSE;
interface_prefs.sidebar_symbol_visible = FALSE;
ui_sidebar_show_hide();
break;
}
@ -708,20 +707,20 @@ static gboolean on_treeviews_button_press_event(GtkWidget *widget, GdkEventButto
if (GPOINTER_TO_INT(user_data) == TREEVIEW_OPENFILES)
{
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.documents_show_documents),
prefs.sidebar_openfiles_visible);
interface_prefs.sidebar_openfiles_visible);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.documents_show_symbols),
prefs.sidebar_symbol_visible);
interface_prefs.sidebar_symbol_visible);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.documents_fullpath),
prefs.sidebar_openfiles_fullpath);
interface_prefs.sidebar_openfiles_fullpath);
gtk_menu_popup(GTK_MENU(tv.popup_openfiles), NULL, NULL, NULL, NULL,
event->button, event->time);
}
else if (GPOINTER_TO_INT(user_data) == TREEVIEW_SYMBOL)
{
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.symbols_show_documents),
prefs.sidebar_openfiles_visible);
interface_prefs.sidebar_openfiles_visible);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.symbols_show_symbols),
prefs.sidebar_symbol_visible);
interface_prefs.sidebar_symbol_visible);
gtk_menu_popup(GTK_MENU(tv.popup_taglist), NULL, NULL, NULL, NULL,
event->button, event->time);
return TRUE; /* prevent selection changed signal for symbol tags */

View File

@ -47,6 +47,8 @@
#include "plugins.h"
GeanyInterfacePrefs interface_prefs;
GeanyToolbarPrefs toolbar_prefs;
UIPrefs ui_prefs;
UIWidgets ui_widgets;
@ -73,7 +75,7 @@ static void set_statusbar(const gchar *text, gboolean allow_override)
GTimeVal timeval;
const gint GEANY_STATUS_TIMEOUT = 1;
if (! prefs.statusbar_visible)
if (! interface_prefs.statusbar_visible)
return; /* just do nothing if statusbar is not visible */
g_get_current_time(&timeval);
@ -115,7 +117,7 @@ void ui_set_statusbar(gboolean log, const gchar *format, ...)
/* updates the status bar document statistics */
void ui_update_statusbar(gint idx, gint pos)
{
if (! prefs.statusbar_visible)
if (! interface_prefs.statusbar_visible)
return; /* just do nothing if statusbar is not visible */
if (idx == -1) idx = document_get_cur_idx();
@ -244,13 +246,13 @@ void ui_set_editor_font(const gchar *font_name)
g_return_if_fail(font_name != NULL);
/* do nothing if font has not changed */
if (prefs.editor_font != NULL)
if (strcmp(font_name, prefs.editor_font) == 0) return;
if (interface_prefs.editor_font != NULL)
if (strcmp(font_name, interface_prefs.editor_font) == 0) return;
g_free(prefs.editor_font);
prefs.editor_font = g_strdup(font_name);
g_free(interface_prefs.editor_font);
interface_prefs.editor_font = g_strdup(font_name);
font_desc = pango_font_description_from_string(prefs.editor_font);
font_desc = pango_font_description_from_string(interface_prefs.editor_font);
fname = g_strdup_printf("!%s", pango_font_description_get_family(font_desc));
size = pango_font_description_get_size(font_desc) / PANGO_SCALE;
@ -265,7 +267,7 @@ void ui_set_editor_font(const gchar *font_name)
}
pango_font_description_free(font_desc);
ui_set_statusbar(TRUE, _("Font updated (%s)."), prefs.editor_font);
ui_set_statusbar(TRUE, _("Font updated (%s)."), interface_prefs.editor_font);
g_free(fname);
}
@ -638,7 +640,7 @@ void ui_sidebar_show_hide(void)
/* check that there are no other notebook pages before hiding the sidebar completely
* other pages could be e.g. the file browser plugin */
if (! prefs.sidebar_openfiles_visible && ! prefs.sidebar_symbol_visible &&
if (! interface_prefs.sidebar_openfiles_visible && ! interface_prefs.sidebar_symbol_visible &&
gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->treeview_notebook)) <= 2)
{
ui_prefs.sidebar_visible = FALSE;
@ -655,9 +657,9 @@ void ui_sidebar_show_hide(void)
ui_widget_show_hide(app->treeview_notebook, ui_prefs.sidebar_visible);
ui_widget_show_hide(gtk_notebook_get_nth_page(
GTK_NOTEBOOK(app->treeview_notebook), 0), prefs.sidebar_symbol_visible);
GTK_NOTEBOOK(app->treeview_notebook), 0), interface_prefs.sidebar_symbol_visible);
ui_widget_show_hide(gtk_notebook_get_nth_page(
GTK_NOTEBOOK(app->treeview_notebook), 1), prefs.sidebar_openfiles_visible);
GTK_NOTEBOOK(app->treeview_notebook), 1), interface_prefs.sidebar_openfiles_visible);
}
@ -739,60 +741,60 @@ void ui_update_toolbar_items(void)
{
/* show toolbar */
GtkWidget *widget = lookup_widget(app->window, "menu_show_toolbar1");
if (prefs.toolbar_visible && ! gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
if (toolbar_prefs.visible && ! gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
{ /* will be changed by the toggled callback */
prefs.toolbar_visible = ! prefs.toolbar_visible;
toolbar_prefs.visible = ! toolbar_prefs.visible;
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), TRUE);
}
else if (! prefs.toolbar_visible && gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
else if (! toolbar_prefs.visible && gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
{ /* will be changed by the toggled callback */
prefs.toolbar_visible = ! prefs.toolbar_visible;
toolbar_prefs.visible = ! toolbar_prefs.visible;
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), FALSE);
}
/* fileops */
ui_widget_show_hide(lookup_widget(app->window, "menutoolbutton1"), prefs.toolbar_show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton9"), prefs.toolbar_show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton10"), prefs.toolbar_show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton22"), prefs.toolbar_show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton23"), prefs.toolbar_show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton15"), prefs.toolbar_show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem7"), prefs.toolbar_show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem2"), prefs.toolbar_show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "menutoolbutton1"), toolbar_prefs.show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton9"), toolbar_prefs.show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton10"), toolbar_prefs.show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton22"), toolbar_prefs.show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton23"), toolbar_prefs.show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton15"), toolbar_prefs.show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem7"), toolbar_prefs.show_fileops);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem2"), toolbar_prefs.show_fileops);
/* search */
ui_widget_show_hide(lookup_widget(app->window, "entry1"), prefs.toolbar_show_search);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton18"), prefs.toolbar_show_search);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem5"), prefs.toolbar_show_search);
ui_widget_show_hide(lookup_widget(app->window, "entry1"), toolbar_prefs.show_search);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton18"), toolbar_prefs.show_search);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem5"), toolbar_prefs.show_search);
/* goto line */
ui_widget_show_hide(lookup_widget(app->window, "entry_goto_line"), prefs.toolbar_show_goto);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton25"), prefs.toolbar_show_goto);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem8"), prefs.toolbar_show_goto);
ui_widget_show_hide(lookup_widget(app->window, "entry_goto_line"), toolbar_prefs.show_goto);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton25"), toolbar_prefs.show_goto);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem8"), toolbar_prefs.show_goto);
/* compile */
ui_widget_show_hide(lookup_widget(app->window, "toolbutton13"), prefs.toolbar_show_compile);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton26"), prefs.toolbar_show_compile);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem6"), prefs.toolbar_show_compile);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton13"), toolbar_prefs.show_compile);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton26"), toolbar_prefs.show_compile);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem6"), toolbar_prefs.show_compile);
/* colour */
ui_widget_show_hide(lookup_widget(app->window, "toolbutton24"), prefs.toolbar_show_colour);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem3"), prefs.toolbar_show_colour);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton24"), toolbar_prefs.show_colour);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem3"), toolbar_prefs.show_colour);
/* zoom */
ui_widget_show_hide(lookup_widget(app->window, "toolbutton20"), prefs.toolbar_show_zoom);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton21"), prefs.toolbar_show_zoom);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem4"), prefs.toolbar_show_zoom);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton20"), toolbar_prefs.show_zoom);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton21"), toolbar_prefs.show_zoom);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem4"), toolbar_prefs.show_zoom);
/* indent */
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_indent_dec"), prefs.toolbar_show_indent);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_indent_inc"), prefs.toolbar_show_indent);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem11"), prefs.toolbar_show_indent);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_indent_dec"), toolbar_prefs.show_indent);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_indent_inc"), toolbar_prefs.show_indent);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem11"), toolbar_prefs.show_indent);
/* undo */
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_undo"), prefs.toolbar_show_undo);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_redo"), prefs.toolbar_show_undo);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem9"), prefs.toolbar_show_undo);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_undo"), toolbar_prefs.show_undo);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_redo"), toolbar_prefs.show_undo);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem9"), toolbar_prefs.show_undo);
/* navigation */
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_back"), prefs.toolbar_show_navigation);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_forward"), prefs.toolbar_show_navigation);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem10"), prefs.toolbar_show_navigation);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_back"), toolbar_prefs.show_navigation);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton_forward"), toolbar_prefs.show_navigation);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem10"), toolbar_prefs.show_navigation);
/* quit */
ui_widget_show_hide(lookup_widget(app->window, "toolbutton19"), prefs.toolbar_show_quit);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem8"), prefs.toolbar_show_quit);
ui_widget_show_hide(lookup_widget(app->window, "toolbutton19"), toolbar_prefs.show_quit);
ui_widget_show_hide(lookup_widget(app->window, "separatortoolitem8"), toolbar_prefs.show_quit);
}
@ -805,7 +807,7 @@ GdkPixbuf *ui_new_pixbuf_from_inline(gint img, gboolean small_img)
case GEANY_IMAGE_LOGO: return gdk_pixbuf_new_from_inline(-1, aladin_inline, FALSE, NULL); break;
case GEANY_IMAGE_SAVE_ALL:
{
if ((prefs.toolbar_icon_size == GTK_ICON_SIZE_SMALL_TOOLBAR) || small_img)
if ((toolbar_prefs.icon_size == GTK_ICON_SIZE_SMALL_TOOLBAR) || small_img)
{
return gdk_pixbuf_scale_simple(gdk_pixbuf_new_from_inline(-1, save_all_inline, FALSE, NULL),
16, 16, GDK_INTERP_HYPER);
@ -818,7 +820,7 @@ GdkPixbuf *ui_new_pixbuf_from_inline(gint img, gboolean small_img)
}
case GEANY_IMAGE_NEW_ARROW:
{
if ((prefs.toolbar_icon_size == GTK_ICON_SIZE_SMALL_TOOLBAR) || small_img)
if ((toolbar_prefs.icon_size == GTK_ICON_SIZE_SMALL_TOOLBAR) || small_img)
{
return gdk_pixbuf_scale_simple(gdk_pixbuf_new_from_inline(-1, newfile_inline, FALSE, NULL),
16, 16, GDK_INTERP_HYPER);
@ -860,7 +862,7 @@ void ui_create_recent_menu(void)
lookup_widget(app->window, "toolbutton9")), ui_widgets.recent_files_toolbar);
}
for (i = 0; i < MIN(prefs.mru_length, g_queue_get_length(ui_prefs.recent_queue)); i++)
for (i = 0; i < MIN(file_prefs.mru_length, g_queue_get_length(ui_prefs.recent_queue)); i++)
{
filename = g_queue_peek_nth(ui_prefs.recent_queue, i);
/* create menu item for the recent files menu in the menu bar */
@ -908,7 +910,7 @@ void ui_add_recent_file(const gchar *utf8_filename)
}
#endif
g_queue_push_head(ui_prefs.recent_queue, g_strdup(utf8_filename));
if (g_queue_get_length(ui_prefs.recent_queue) > prefs.mru_length)
if (g_queue_get_length(ui_prefs.recent_queue) > file_prefs.mru_length)
{
g_free(g_queue_pop_tail(ui_prefs.recent_queue));
}
@ -1006,9 +1008,9 @@ static void update_recent_menu(void)
/* clean the MRU list before adding an item (menubar) */
children = gtk_container_get_children(GTK_CONTAINER(ui_widgets.recent_files_menubar));
if (g_list_length(children) > prefs.mru_length - 1)
if (g_list_length(children) > file_prefs.mru_length - 1)
{
item = g_list_nth(children, prefs.mru_length - 1);
item = g_list_nth(children, file_prefs.mru_length - 1);
while (item != NULL)
{
if (GTK_IS_MENU_ITEM(item->data)) gtk_widget_destroy(GTK_WIDGET(item->data));
@ -1018,9 +1020,9 @@ static void update_recent_menu(void)
/* clean the MRU list before adding an item (toolbar) */
children = gtk_container_get_children(GTK_CONTAINER(ui_widgets.recent_files_toolbar));
if (g_list_length(children) > prefs.mru_length - 1)
if (g_list_length(children) > file_prefs.mru_length - 1)
{
item = g_list_nth(children, prefs.mru_length - 1);
item = g_list_nth(children, file_prefs.mru_length - 1);
while (item != NULL)
{
if (GTK_IS_MENU_ITEM(item->data)) gtk_widget_destroy(GTK_WIDGET(item->data));

View File

@ -24,6 +24,47 @@
#ifndef GEANY_UI_UTILS_H
#define GEANY_UI_UTILS_H 1
typedef struct GeanyInterfacePrefs
{
gboolean sidebar_symbol_visible;
gboolean sidebar_openfiles_visible;
gboolean sidebar_openfiles_fullpath;
gchar *editor_font;
gchar *tagbar_font;
gchar *msgwin_font;
gboolean show_notebook_tabs;
gint tab_pos_editor;
gint tab_pos_msgwin;
gint tab_pos_sidebar;
gboolean statusbar_visible;
gboolean show_symbol_list_expanders;
}
GeanyInterfacePrefs;
extern GeanyInterfacePrefs interface_prefs;
typedef struct GeanyToolbarPrefs
{
gboolean visible;
gboolean show_search;
gboolean show_goto;
gboolean show_undo;
gboolean show_navigation;
gboolean show_compile;
gboolean show_zoom;
gboolean show_indent;
gboolean show_colour;
gboolean show_fileops;
gboolean show_quit;
GtkIconSize icon_size;
gint icon_style;
}
GeanyToolbarPrefs;
extern GeanyToolbarPrefs toolbar_prefs;
/* User Interface settings not shown in the Prefs dialog. */
typedef struct UIPrefs
{

View File

@ -64,7 +64,7 @@ void utils_start_browser(const gchar *uri)
#else
const gchar *argv[3];
argv[0] = prefs.tools_browser_cmd;
argv[0] = tool_prefs.browser_cmd;
argv[1] = uri;
argv[2] = NULL;