summaryrefslogtreecommitdiff
path: root/gedit/gedit-prefs-manager-app.c
diff options
context:
space:
mode:
authorPerberos <[email protected]>2011-11-07 19:52:18 -0300
committerPerberos <[email protected]>2011-11-07 19:52:18 -0300
commit5ded9cba8563f336939400303d6a841d5089b107 (patch)
treec5676588cff26ba37e12369fe4de24b54e9f6682 /gedit/gedit-prefs-manager-app.c
parentf00b3a11a199f9f85a4d46a600f9d14179b37dbf (diff)
downloadpluma-5ded9cba8563f336939400303d6a841d5089b107.tar.bz2
pluma-5ded9cba8563f336939400303d6a841d5089b107.tar.xz
renaming from gedit to pluma
Diffstat (limited to 'gedit/gedit-prefs-manager-app.c')
-rwxr-xr-xgedit/gedit-prefs-manager-app.c1620
1 files changed, 0 insertions, 1620 deletions
diff --git a/gedit/gedit-prefs-manager-app.c b/gedit/gedit-prefs-manager-app.c
deleted file mode 100755
index ce35db8d..00000000
--- a/gedit/gedit-prefs-manager-app.c
+++ /dev/null
@@ -1,1620 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * gedit-prefs-manager.c
- * This file is part of gedit
- *
- * Copyright (C) 2002-2005 Paolo Maggi
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the gedit Team, 2002-2003. See the AUTHORS file for a
- * list of people on the gedit Team.
- * See the ChangeLog files for a list of changes.
- *
- * $Id$
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string.h>
-
-#include "gedit-prefs-manager.h"
-#include "gedit-prefs-manager-private.h"
-#include "gedit-prefs-manager-app.h"
-#include "gedit-app.h"
-#include "gedit-debug.h"
-#include "gedit-view.h"
-#include "gedit-window.h"
-#include "gedit-window-private.h"
-#include "gedit-plugins-engine.h"
-#include "gedit-style-scheme-manager.h"
-#include "gedit-dirs.h"
-
-static void gedit_prefs_manager_editor_font_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_system_font_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_tabs_size_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_wrap_mode_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_line_numbers_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_auto_indent_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_undo_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_right_margin_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_smart_home_end_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_hl_current_line_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_bracket_matching_changed(MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_syntax_hl_enable_changed(MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_search_hl_enable_changed(MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_source_style_scheme_changed
- (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_max_recents_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_auto_save_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_active_plugins_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-static void gedit_prefs_manager_lockdown_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data);
-
-/* GUI state is serialized to a .desktop file, not in mateconf */
-
-#define GEDIT_STATE_DEFAULT_WINDOW_STATE 0
-#define GEDIT_STATE_DEFAULT_WINDOW_WIDTH 650
-#define GEDIT_STATE_DEFAULT_WINDOW_HEIGHT 500
-#define GEDIT_STATE_DEFAULT_SIDE_PANEL_SIZE 200
-#define GEDIT_STATE_DEFAULT_BOTTOM_PANEL_SIZE 140
-
-#define GEDIT_STATE_FILE_LOCATION "gedit-2"
-
-#define GEDIT_STATE_WINDOW_GROUP "window"
-#define GEDIT_STATE_WINDOW_STATE "state"
-#define GEDIT_STATE_WINDOW_HEIGHT "height"
-#define GEDIT_STATE_WINDOW_WIDTH "width"
-#define GEDIT_STATE_SIDE_PANEL_SIZE "side_panel_size"
-#define GEDIT_STATE_BOTTOM_PANEL_SIZE "bottom_panel_size"
-#define GEDIT_STATE_SIDE_PANEL_ACTIVE_PAGE "side_panel_active_page"
-#define GEDIT_STATE_BOTTOM_PANEL_ACTIVE_PAGE "bottom_panel_active_page"
-
-#define GEDIT_STATE_FILEFILTER_GROUP "filefilter"
-#define GEDIT_STATE_FILEFILTER_ID "id"
-
-static gint window_state = -1;
-static gint window_height = -1;
-static gint window_width = -1;
-static gint side_panel_size = -1;
-static gint bottom_panel_size = -1;
-static gint side_panel_active_page = -1;
-static gint bottom_panel_active_page = -1;
-static gint active_file_filter = -1;
-
-
-static gchar *
-get_state_filename (void)
-{
- gchar *config_dir;
- gchar *filename = NULL;
-
- config_dir = gedit_dirs_get_user_config_dir ();
-
- if (config_dir != NULL)
- {
- filename = g_build_filename (config_dir,
- GEDIT_STATE_FILE_LOCATION,
- NULL);
- g_free (config_dir);
- }
-
- return filename;
-}
-
-static GKeyFile *
-get_gedit_state_file (void)
-{
- static GKeyFile *state_file = NULL;
-
- if (state_file == NULL)
- {
- gchar *filename;
- GError *err = NULL;
-
- state_file = g_key_file_new ();
-
- filename = get_state_filename ();
-
- if (!g_key_file_load_from_file (state_file,
- filename,
- G_KEY_FILE_NONE,
- &err))
- {
- if (err->domain != G_FILE_ERROR ||
- err->code != G_FILE_ERROR_NOENT)
- {
- g_warning ("Could not load gedit state file: %s\n",
- err->message);
- }
-
- g_error_free (err);
- }
-
- g_free (filename);
- }
-
- return state_file;
-}
-
-static void
-gedit_state_get_int (const gchar *group,
- const gchar *key,
- gint defval,
- gint *result)
-{
- GKeyFile *state_file;
- gint res;
- GError *err = NULL;
-
- state_file = get_gedit_state_file ();
- res = g_key_file_get_integer (state_file,
- group,
- key,
- &err);
-
- if (err != NULL)
- {
- if ((err->domain != G_KEY_FILE_ERROR) ||
- ((err->code != G_KEY_FILE_ERROR_GROUP_NOT_FOUND &&
- err->code != G_KEY_FILE_ERROR_KEY_NOT_FOUND)))
- {
- g_warning ("Could not get state value %s::%s : %s\n",
- group,
- key,
- err->message);
- }
-
- *result = defval;
- g_error_free (err);
- }
- else
- {
- *result = res;
- }
-}
-
-static void
-gedit_state_set_int (const gchar *group,
- const gchar *key,
- gint value)
-{
- GKeyFile *state_file;
-
- state_file = get_gedit_state_file ();
- g_key_file_set_integer (state_file,
- group,
- key,
- value);
-}
-
-static gboolean
-gedit_state_file_sync (void)
-{
- GKeyFile *state_file;
- gchar *config_dir;
- gchar *filename = NULL;
- gchar *content = NULL;
- gsize length;
- gint res;
- GError *err = NULL;
- gboolean ret = FALSE;
-
- state_file = get_gedit_state_file ();
- g_return_val_if_fail (state_file != NULL, FALSE);
-
- config_dir = gedit_dirs_get_user_config_dir ();
- if (config_dir == NULL)
- {
- g_warning ("Could not get config directory\n");
- return ret;
- }
-
- res = g_mkdir_with_parents (config_dir, 0755);
- if (res < 0)
- {
- g_warning ("Could not create config directory\n");
- goto out;
- }
-
- content = g_key_file_to_data (state_file,
- &length,
- &err);
-
- if (err != NULL)
- {
- g_warning ("Could not get data from state file: %s\n",
- err->message);
- goto out;
- }
-
- if (content != NULL)
- {
- filename = get_state_filename ();
- if (!g_file_set_contents (filename,
- content,
- length,
- &err))
- {
- g_warning ("Could not write gedit state file: %s\n",
- err->message);
- goto out;
- }
- }
-
- ret = TRUE;
-
- out:
- if (err != NULL)
- g_error_free (err);
-
- g_free (config_dir);
- g_free (filename);
- g_free (content);
-
- return ret;
-}
-
-/* Window state */
-gint
-gedit_prefs_manager_get_window_state (void)
-{
- if (window_state == -1)
- {
- gedit_state_get_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_WINDOW_STATE,
- GEDIT_STATE_DEFAULT_WINDOW_STATE,
- &window_state);
- }
-
- return window_state;
-}
-
-void
-gedit_prefs_manager_set_window_state (gint ws)
-{
- g_return_if_fail (ws > -1);
-
- window_state = ws;
-
- gedit_state_set_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_WINDOW_STATE,
- ws);
-}
-
-gboolean
-gedit_prefs_manager_window_state_can_set (void)
-{
- return TRUE;
-}
-
-/* Window size */
-void
-gedit_prefs_manager_get_window_size (gint *width, gint *height)
-{
- g_return_if_fail (width != NULL && height != NULL);
-
- if (window_width == -1)
- {
- gedit_state_get_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_WINDOW_WIDTH,
- GEDIT_STATE_DEFAULT_WINDOW_WIDTH,
- &window_width);
- }
-
- if (window_height == -1)
- {
- gedit_state_get_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_WINDOW_HEIGHT,
- GEDIT_STATE_DEFAULT_WINDOW_HEIGHT,
- &window_height);
- }
-
- *width = window_width;
- *height = window_height;
-}
-
-void
-gedit_prefs_manager_get_default_window_size (gint *width, gint *height)
-{
- g_return_if_fail (width != NULL && height != NULL);
-
- *width = GEDIT_STATE_DEFAULT_WINDOW_WIDTH;
- *height = GEDIT_STATE_DEFAULT_WINDOW_HEIGHT;
-}
-
-void
-gedit_prefs_manager_set_window_size (gint width, gint height)
-{
- g_return_if_fail (width > -1 && height > -1);
-
- window_width = width;
- window_height = height;
-
- gedit_state_set_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_WINDOW_WIDTH,
- width);
- gedit_state_set_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_WINDOW_HEIGHT,
- height);
-}
-
-gboolean
-gedit_prefs_manager_window_size_can_set (void)
-{
- return TRUE;
-}
-
-/* Side panel */
-gint
-gedit_prefs_manager_get_side_panel_size (void)
-{
- if (side_panel_size == -1)
- {
- gedit_state_get_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_SIDE_PANEL_SIZE,
- GEDIT_STATE_DEFAULT_SIDE_PANEL_SIZE,
- &side_panel_size);
- }
-
- return side_panel_size;
-}
-
-gint
-gedit_prefs_manager_get_default_side_panel_size (void)
-{
- return GEDIT_STATE_DEFAULT_SIDE_PANEL_SIZE;
-}
-
-void
-gedit_prefs_manager_set_side_panel_size (gint ps)
-{
- g_return_if_fail (ps > -1);
-
- if (side_panel_size == ps)
- return;
-
- side_panel_size = ps;
- gedit_state_set_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_SIDE_PANEL_SIZE,
- ps);
-}
-
-gboolean
-gedit_prefs_manager_side_panel_size_can_set (void)
-{
- return TRUE;
-}
-
-gint
-gedit_prefs_manager_get_side_panel_active_page (void)
-{
- if (side_panel_active_page == -1)
- {
- gedit_state_get_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_SIDE_PANEL_ACTIVE_PAGE,
- 0,
- &side_panel_active_page);
- }
-
- return side_panel_active_page;
-}
-
-void
-gedit_prefs_manager_set_side_panel_active_page (gint id)
-{
- if (side_panel_active_page == id)
- return;
-
- side_panel_active_page = id;
- gedit_state_set_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_SIDE_PANEL_ACTIVE_PAGE,
- id);
-}
-
-gboolean
-gedit_prefs_manager_side_panel_active_page_can_set (void)
-{
- return TRUE;
-}
-
-/* Bottom panel */
-gint
-gedit_prefs_manager_get_bottom_panel_size (void)
-{
- if (bottom_panel_size == -1)
- {
- gedit_state_get_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_BOTTOM_PANEL_SIZE,
- GEDIT_STATE_DEFAULT_BOTTOM_PANEL_SIZE,
- &bottom_panel_size);
- }
-
- return bottom_panel_size;
-}
-
-gint
-gedit_prefs_manager_get_default_bottom_panel_size (void)
-{
- return GEDIT_STATE_DEFAULT_BOTTOM_PANEL_SIZE;
-}
-
-void
-gedit_prefs_manager_set_bottom_panel_size (gint ps)
-{
- g_return_if_fail (ps > -1);
-
- if (bottom_panel_size == ps)
- return;
-
- bottom_panel_size = ps;
- gedit_state_set_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_BOTTOM_PANEL_SIZE,
- ps);
-}
-
-gboolean
-gedit_prefs_manager_bottom_panel_size_can_set (void)
-{
- return TRUE;
-}
-
-gint
-gedit_prefs_manager_get_bottom_panel_active_page (void)
-{
- if (bottom_panel_active_page == -1)
- {
- gedit_state_get_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_BOTTOM_PANEL_ACTIVE_PAGE,
- 0,
- &bottom_panel_active_page);
- }
-
- return bottom_panel_active_page;
-}
-
-void
-gedit_prefs_manager_set_bottom_panel_active_page (gint id)
-{
- if (bottom_panel_active_page == id)
- return;
-
- bottom_panel_active_page = id;
- gedit_state_set_int (GEDIT_STATE_WINDOW_GROUP,
- GEDIT_STATE_BOTTOM_PANEL_ACTIVE_PAGE,
- id);
-}
-
-gboolean
-gedit_prefs_manager_bottom_panel_active_page_can_set (void)
-{
- return TRUE;
-}
-
-/* File filter */
-gint
-gedit_prefs_manager_get_active_file_filter (void)
-{
- if (active_file_filter == -1)
- {
- gedit_state_get_int (GEDIT_STATE_FILEFILTER_GROUP,
- GEDIT_STATE_FILEFILTER_ID,
- 0,
- &active_file_filter);
- }
-
- return active_file_filter;
-}
-
-void
-gedit_prefs_manager_set_active_file_filter (gint id)
-{
- g_return_if_fail (id >= 0);
-
- if (active_file_filter == id)
- return;
-
- active_file_filter = id;
- gedit_state_set_int (GEDIT_STATE_FILEFILTER_GROUP,
- GEDIT_STATE_FILEFILTER_ID,
- id);
-}
-
-gboolean
-gedit_prefs_manager_active_file_filter_can_set (void)
-{
- return TRUE;
-}
-
-/* Normal prefs are stored in MateConf */
-
-gboolean
-gedit_prefs_manager_app_init (void)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_val_if_fail (gedit_prefs_manager == NULL, FALSE);
-
- gedit_prefs_manager_init ();
-
- if (gedit_prefs_manager != NULL)
- {
- /* TODO: notify, add dirs */
- mateconf_client_add_dir (gedit_prefs_manager->mateconf_client,
- GPM_PREFS_DIR,
- MATECONF_CLIENT_PRELOAD_RECURSIVE,
- NULL);
-
- mateconf_client_add_dir (gedit_prefs_manager->mateconf_client,
- GPM_PLUGINS_DIR,
- MATECONF_CLIENT_PRELOAD_RECURSIVE,
- NULL);
-
- mateconf_client_add_dir (gedit_prefs_manager->mateconf_client,
- GPM_LOCKDOWN_DIR,
- MATECONF_CLIENT_PRELOAD_RECURSIVE,
- NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_FONT_DIR,
- gedit_prefs_manager_editor_font_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_SYSTEM_FONT,
- gedit_prefs_manager_system_font_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_TABS_DIR,
- gedit_prefs_manager_tabs_size_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_WRAP_MODE_DIR,
- gedit_prefs_manager_wrap_mode_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_LINE_NUMBERS_DIR,
- gedit_prefs_manager_line_numbers_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_AUTO_INDENT_DIR,
- gedit_prefs_manager_auto_indent_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_UNDO_DIR,
- gedit_prefs_manager_undo_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_RIGHT_MARGIN_DIR,
- gedit_prefs_manager_right_margin_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_SMART_HOME_END_DIR,
- gedit_prefs_manager_smart_home_end_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_CURRENT_LINE_DIR,
- gedit_prefs_manager_hl_current_line_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_BRACKET_MATCHING_DIR,
- gedit_prefs_manager_bracket_matching_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_SYNTAX_HL_ENABLE,
- gedit_prefs_manager_syntax_hl_enable_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_SEARCH_HIGHLIGHTING_ENABLE,
- gedit_prefs_manager_search_hl_enable_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_SOURCE_STYLE_DIR,
- gedit_prefs_manager_source_style_scheme_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_MAX_RECENTS,
- gedit_prefs_manager_max_recents_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_SAVE_DIR,
- gedit_prefs_manager_auto_save_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_ACTIVE_PLUGINS,
- gedit_prefs_manager_active_plugins_changed,
- NULL, NULL, NULL);
-
- mateconf_client_notify_add (gedit_prefs_manager->mateconf_client,
- GPM_LOCKDOWN_DIR,
- gedit_prefs_manager_lockdown_changed,
- NULL, NULL, NULL);
- }
-
- return gedit_prefs_manager != NULL;
-}
-
-/* This function must be called before exiting gedit */
-void
-gedit_prefs_manager_app_shutdown (void)
-{
- gedit_debug (DEBUG_PREFS);
-
- gedit_prefs_manager_shutdown ();
-
- gedit_state_file_sync ();
-}
-
-
-static void
-gedit_prefs_manager_editor_font_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- GList *views;
- GList *l;
- gchar *font = NULL;
- gboolean def = TRUE;
- gint ts;
-
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_USE_DEFAULT_FONT) == 0)
- {
- if (entry->value->type == MATECONF_VALUE_BOOL)
- def = mateconf_value_get_bool (entry->value);
- else
- def = GPM_DEFAULT_USE_DEFAULT_FONT;
-
- if (def)
- font = gedit_prefs_manager_get_system_font ();
- else
- font = gedit_prefs_manager_get_editor_font ();
- }
- else if (strcmp (entry->key, GPM_EDITOR_FONT) == 0)
- {
- if (entry->value->type == MATECONF_VALUE_STRING)
- font = g_strdup (mateconf_value_get_string (entry->value));
- else
- font = g_strdup (GPM_DEFAULT_EDITOR_FONT);
-
- def = gedit_prefs_manager_get_use_default_font ();
- }
- else
- return;
-
- g_return_if_fail (font != NULL);
-
- ts = gedit_prefs_manager_get_tabs_size ();
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- /* Note: we use def=FALSE to avoid GeditView to query mateconf */
- gedit_view_set_font (GEDIT_VIEW (l->data), FALSE, font);
- gtk_source_view_set_tab_width (GTK_SOURCE_VIEW (l->data), ts);
-
- l = l->next;
- }
-
- g_list_free (views);
- g_free (font);
-}
-
-static void
-gedit_prefs_manager_system_font_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- GList *views;
- GList *l;
- gchar *font;
- gint ts;
-
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_SYSTEM_FONT) != 0)
- return;
-
- if (!gedit_prefs_manager_get_use_default_font ())
- return;
-
- if (entry->value->type == MATECONF_VALUE_STRING)
- font = g_strdup (mateconf_value_get_string (entry->value));
- else
- font = g_strdup (GPM_DEFAULT_SYSTEM_FONT);
-
- ts = gedit_prefs_manager_get_tabs_size ();
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- /* Note: we use def=FALSE to avoid GeditView to query mateconf */
- gedit_view_set_font (GEDIT_VIEW (l->data), FALSE, font);
-
- gtk_source_view_set_tab_width (GTK_SOURCE_VIEW (l->data), ts);
- l = l->next;
- }
-
- g_list_free (views);
- g_free (font);
-}
-
-static void
-gedit_prefs_manager_tabs_size_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_TABS_SIZE) == 0)
- {
- gint tab_width;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_INT)
- tab_width = mateconf_value_get_int (entry->value);
- else
- tab_width = GPM_DEFAULT_TABS_SIZE;
-
- tab_width = CLAMP (tab_width, 1, 24);
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_source_view_set_tab_width (GTK_SOURCE_VIEW (l->data),
- tab_width);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
- else if (strcmp (entry->key, GPM_INSERT_SPACES) == 0)
- {
- gboolean enable;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- enable = mateconf_value_get_bool (entry->value);
- else
- enable = GPM_DEFAULT_INSERT_SPACES;
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_source_view_set_insert_spaces_instead_of_tabs (
- GTK_SOURCE_VIEW (l->data),
- enable);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
-}
-
-static GtkWrapMode
-get_wrap_mode_from_string (const gchar* str)
-{
- GtkWrapMode res;
-
- g_return_val_if_fail (str != NULL, GTK_WRAP_WORD);
-
- if (strcmp (str, "GTK_WRAP_NONE") == 0)
- res = GTK_WRAP_NONE;
- else
- {
- if (strcmp (str, "GTK_WRAP_CHAR") == 0)
- res = GTK_WRAP_CHAR;
- else
- res = GTK_WRAP_WORD;
- }
-
- return res;
-}
-
-static void
-gedit_prefs_manager_wrap_mode_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_WRAP_MODE) == 0)
- {
- GtkWrapMode wrap_mode;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_STRING)
- wrap_mode =
- get_wrap_mode_from_string (mateconf_value_get_string (entry->value));
- else
- wrap_mode = get_wrap_mode_from_string (GPM_DEFAULT_WRAP_MODE);
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (l->data),
- wrap_mode);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
-}
-
-static void
-gedit_prefs_manager_line_numbers_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_DISPLAY_LINE_NUMBERS) == 0)
- {
- gboolean dln;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- dln = mateconf_value_get_bool (entry->value);
- else
- dln = GPM_DEFAULT_DISPLAY_LINE_NUMBERS;
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_source_view_set_show_line_numbers (GTK_SOURCE_VIEW (l->data),
- dln);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
-}
-
-static void
-gedit_prefs_manager_hl_current_line_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_HIGHLIGHT_CURRENT_LINE) == 0)
- {
- gboolean hl;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- hl = mateconf_value_get_bool (entry->value);
- else
- hl = GPM_DEFAULT_HIGHLIGHT_CURRENT_LINE;
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_source_view_set_highlight_current_line (GTK_SOURCE_VIEW (l->data),
- hl);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
-}
-
-static void
-gedit_prefs_manager_bracket_matching_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_BRACKET_MATCHING) == 0)
- {
- gboolean enable;
- GList *docs;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- enable = mateconf_value_get_bool (entry->value);
- else
- enable = GPM_DEFAULT_BRACKET_MATCHING;
-
- docs = gedit_app_get_documents (gedit_app_get_default ());
- l = docs;
-
- while (l != NULL)
- {
- gtk_source_buffer_set_highlight_matching_brackets (GTK_SOURCE_BUFFER (l->data),
- enable);
-
- l = l->next;
- }
-
- g_list_free (docs);
- }
-}
-
-static void
-gedit_prefs_manager_auto_indent_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_AUTO_INDENT) == 0)
- {
- gboolean enable;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- enable = mateconf_value_get_bool (entry->value);
- else
- enable = GPM_DEFAULT_AUTO_INDENT;
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_source_view_set_auto_indent (GTK_SOURCE_VIEW (l->data),
- enable);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
-}
-
-static void
-gedit_prefs_manager_undo_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_UNDO_ACTIONS_LIMIT) == 0)
- {
- gint ul;
- GList *docs;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_INT)
- ul = mateconf_value_get_int (entry->value);
- else
- ul = GPM_DEFAULT_UNDO_ACTIONS_LIMIT;
-
- ul = CLAMP (ul, -1, 250);
-
- docs = gedit_app_get_documents (gedit_app_get_default ());
- l = docs;
-
- while (l != NULL)
- {
- gtk_source_buffer_set_max_undo_levels (GTK_SOURCE_BUFFER (l->data),
- ul);
-
- l = l->next;
- }
-
- g_list_free (docs);
- }
-}
-
-static void
-gedit_prefs_manager_right_margin_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_RIGHT_MARGIN_POSITION) == 0)
- {
- gint pos;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_INT)
- pos = mateconf_value_get_int (entry->value);
- else
- pos = GPM_DEFAULT_RIGHT_MARGIN_POSITION;
-
- pos = CLAMP (pos, 1, 160);
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_source_view_set_right_margin_position (GTK_SOURCE_VIEW (l->data),
- pos);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
- else if (strcmp (entry->key, GPM_DISPLAY_RIGHT_MARGIN) == 0)
- {
- gboolean display;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- display = mateconf_value_get_bool (entry->value);
- else
- display = GPM_DEFAULT_DISPLAY_RIGHT_MARGIN;
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_source_view_set_show_right_margin (GTK_SOURCE_VIEW (l->data),
- display);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
-}
-
-static GtkSourceSmartHomeEndType
-get_smart_home_end_from_string (const gchar *str)
-{
- GtkSourceSmartHomeEndType res;
-
- g_return_val_if_fail (str != NULL, GTK_SOURCE_SMART_HOME_END_AFTER);
-
- if (strcmp (str, "DISABLED") == 0)
- res = GTK_SOURCE_SMART_HOME_END_DISABLED;
- else if (strcmp (str, "BEFORE") == 0)
- res = GTK_SOURCE_SMART_HOME_END_BEFORE;
- else if (strcmp (str, "ALWAYS") == 0)
- res = GTK_SOURCE_SMART_HOME_END_ALWAYS;
- else
- res = GTK_SOURCE_SMART_HOME_END_AFTER;
-
- return res;
-}
-
-static void
-gedit_prefs_manager_smart_home_end_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_SMART_HOME_END) == 0)
- {
- GtkSourceSmartHomeEndType smart_he;
- GList *views;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_STRING)
- smart_he =
- get_smart_home_end_from_string (mateconf_value_get_string (entry->value));
- else
- smart_he = get_smart_home_end_from_string (GPM_DEFAULT_SMART_HOME_END);
-
- views = gedit_app_get_views (gedit_app_get_default ());
- l = views;
-
- while (l != NULL)
- {
- gtk_source_view_set_smart_home_end (GTK_SOURCE_VIEW (l->data),
- smart_he);
-
- l = l->next;
- }
-
- g_list_free (views);
- }
-}
-
-static void
-gedit_prefs_manager_syntax_hl_enable_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_SYNTAX_HL_ENABLE) == 0)
- {
- gboolean enable;
- GList *docs;
- GList *l;
- const GList *windows;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- enable = mateconf_value_get_bool (entry->value);
- else
- enable = GPM_DEFAULT_SYNTAX_HL_ENABLE;
-
- docs = gedit_app_get_documents (gedit_app_get_default ());
- l = docs;
-
- while (l != NULL)
- {
- g_return_if_fail (GTK_IS_SOURCE_BUFFER (l->data));
-
- gtk_source_buffer_set_highlight_syntax (GTK_SOURCE_BUFFER (l->data),
- enable);
-
- l = l->next;
- }
-
- g_list_free (docs);
-
- /* update the sensitivity of the Higlight Mode menu item */
- windows = gedit_app_get_windows (gedit_app_get_default ());
- while (windows != NULL)
- {
- GtkUIManager *ui;
- GtkAction *a;
-
- ui = gedit_window_get_ui_manager (GEDIT_WINDOW (windows->data));
-
- a = gtk_ui_manager_get_action (ui,
- "/MenuBar/ViewMenu/ViewHighlightModeMenu");
-
- gtk_action_set_sensitive (a, enable);
-
- windows = g_list_next (windows);
- }
- }
-}
-
-static void
-gedit_prefs_manager_search_hl_enable_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_SEARCH_HIGHLIGHTING_ENABLE) == 0)
- {
- gboolean enable;
- GList *docs;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- enable = mateconf_value_get_bool (entry->value);
- else
- enable = GPM_DEFAULT_SEARCH_HIGHLIGHTING_ENABLE;
-
- docs = gedit_app_get_documents (gedit_app_get_default ());
- l = docs;
-
- while (l != NULL)
- {
- g_return_if_fail (GEDIT_IS_DOCUMENT (l->data));
-
- gedit_document_set_enable_search_highlighting (GEDIT_DOCUMENT (l->data),
- enable);
-
- l = l->next;
- }
-
- g_list_free (docs);
- }
-}
-
-static void
-gedit_prefs_manager_source_style_scheme_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_SOURCE_STYLE_SCHEME) == 0)
- {
- static gchar *old_scheme = NULL;
- const gchar *scheme;
- GtkSourceStyleScheme *style;
- GList *docs;
- GList *l;
-
- if (entry->value->type == MATECONF_VALUE_STRING)
- scheme = mateconf_value_get_string (entry->value);
- else
- scheme = GPM_DEFAULT_SOURCE_STYLE_SCHEME;
-
- if (old_scheme != NULL && (strcmp (scheme, old_scheme) == 0))
- return;
-
- g_free (old_scheme);
- old_scheme = g_strdup (scheme);
-
- style = gtk_source_style_scheme_manager_get_scheme (
- gedit_get_style_scheme_manager (),
- scheme);
-
- if (style == NULL)
- {
- g_warning ("Default style scheme '%s' not found, falling back to 'classic'", scheme);
-
- style = gtk_source_style_scheme_manager_get_scheme (
- gedit_get_style_scheme_manager (),
- "classic");
-
- if (style == NULL)
- {
- g_warning ("Style scheme 'classic' cannot be found, check your GtkSourceView installation.");
- return;
- }
- }
-
- docs = gedit_app_get_documents (gedit_app_get_default ());
- for (l = docs; l != NULL; l = l->next)
- {
- g_return_if_fail (GTK_IS_SOURCE_BUFFER (l->data));
-
- gtk_source_buffer_set_style_scheme (GTK_SOURCE_BUFFER (l->data),
- style);
- }
-
- g_list_free (docs);
- }
-}
-
-static void
-gedit_prefs_manager_max_recents_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_MAX_RECENTS) == 0)
- {
- const GList *windows;
- gint max;
-
- if (entry->value->type == MATECONF_VALUE_INT)
- {
- max = mateconf_value_get_int (entry->value);
-
- if (max < 0)
- max = GPM_DEFAULT_MAX_RECENTS;
- }
- else
- max = GPM_DEFAULT_MAX_RECENTS;
-
- windows = gedit_app_get_windows (gedit_app_get_default ());
- while (windows != NULL)
- {
- GeditWindow *w = windows->data;
-
- gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (w->priv->toolbar_recent_menu),
- max);
-
- windows = g_list_next (windows);
- }
-
- /* FIXME: we have no way at the moment to trigger the
- * update of the inline recents in the File menu */
- }
-}
-
-static void
-gedit_prefs_manager_auto_save_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- GList *docs;
- GList *l;
-
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_AUTO_SAVE) == 0)
- {
- gboolean auto_save;
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- auto_save = mateconf_value_get_bool (entry->value);
- else
- auto_save = GPM_DEFAULT_AUTO_SAVE;
-
- docs = gedit_app_get_documents (gedit_app_get_default ());
- l = docs;
-
- while (l != NULL)
- {
- GeditDocument *doc = GEDIT_DOCUMENT (l->data);
- GeditTab *tab = gedit_tab_get_from_document (doc);
-
- gedit_tab_set_auto_save_enabled (tab, auto_save);
-
- l = l->next;
- }
-
- g_list_free (docs);
- }
- else if (strcmp (entry->key, GPM_AUTO_SAVE_INTERVAL) == 0)
- {
- gint auto_save_interval;
-
- if (entry->value->type == MATECONF_VALUE_INT)
- {
- auto_save_interval = mateconf_value_get_int (entry->value);
-
- if (auto_save_interval <= 0)
- auto_save_interval = GPM_DEFAULT_AUTO_SAVE_INTERVAL;
- }
- else
- auto_save_interval = GPM_DEFAULT_AUTO_SAVE_INTERVAL;
-
- docs = gedit_app_get_documents (gedit_app_get_default ());
- l = docs;
-
- while (l != NULL)
- {
- GeditDocument *doc = GEDIT_DOCUMENT (l->data);
- GeditTab *tab = gedit_tab_get_from_document (doc);
-
- gedit_tab_set_auto_save_interval (tab, auto_save_interval);
-
- l = l->next;
- }
-
- g_list_free (docs);
- }
-}
-
-static void
-gedit_prefs_manager_active_plugins_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (strcmp (entry->key, GPM_ACTIVE_PLUGINS) == 0)
- {
- if ((entry->value->type == MATECONF_VALUE_LIST) &&
- (mateconf_value_get_list_type (entry->value) == MATECONF_VALUE_STRING))
- {
- GeditPluginsEngine *engine;
-
- engine = gedit_plugins_engine_get_default ();
-
- gedit_plugins_engine_active_plugins_changed (engine);
- }
- }
-}
-
-static void
-gedit_prefs_manager_lockdown_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
-{
- GeditApp *app;
- gboolean locked;
-
- gedit_debug (DEBUG_PREFS);
-
- g_return_if_fail (entry->key != NULL);
- g_return_if_fail (entry->value != NULL);
-
- if (entry->value->type == MATECONF_VALUE_BOOL)
- locked = mateconf_value_get_bool (entry->value);
- else
- locked = FALSE;
-
- app = gedit_app_get_default ();
-
- if (strcmp (entry->key, GPM_LOCKDOWN_COMMAND_LINE) == 0)
- _gedit_app_set_lockdown_bit (app,
- GEDIT_LOCKDOWN_COMMAND_LINE,
- locked);
-
- else if (strcmp (entry->key, GPM_LOCKDOWN_PRINTING) == 0)
- _gedit_app_set_lockdown_bit (app,
- GEDIT_LOCKDOWN_PRINTING,
- locked);
-
- else if (strcmp (entry->key, GPM_LOCKDOWN_PRINT_SETUP) == 0)
- _gedit_app_set_lockdown_bit (app,
- GEDIT_LOCKDOWN_PRINT_SETUP,
- locked);
-
- else if (strcmp (entry->key, GPM_LOCKDOWN_SAVE_TO_DISK) == 0)
- _gedit_app_set_lockdown_bit (app,
- GEDIT_LOCKDOWN_SAVE_TO_DISK,
- locked);
-}