summaryrefslogtreecommitdiff
path: root/src/nautilus-preferences-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-preferences-window.c')
-rw-r--r--src/nautilus-preferences-window.c792
1 files changed, 431 insertions, 361 deletions
diff --git a/src/nautilus-preferences-window.c b/src/nautilus-preferences-window.c
index 875b23397..2df9e4afe 100644
--- a/src/nautilus-preferences-window.c
+++ b/src/nautilus-preferences-window.c
@@ -1,26 +1,25 @@
-
/* nautilus-preferences-window.c - Functions to create and show the nautilus
- preference window.
-
- Copyright (C) 2002 Jan Arne Petersen
- Copyright (C) 2016 Carlos Soriano <csoriano@gnome.com>
-
- The Gnome Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>.
-
- Authors: Jan Arne Petersen <jpetersen@uni-bonn.de>
-*/
+ * preference window.
+ *
+ * Copyright (C) 2002 Jan Arne Petersen
+ * Copyright (C) 2016 Carlos Soriano <csoriano@gnome.com>
+ *
+ * The Gnome Library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * The Gnome Library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with the Gnome Library; see the file COPYING.LIB. If not,
+ * see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Jan Arne Petersen <jpetersen@uni-bonn.de>
+ */
#include <config.h>
@@ -43,466 +42,537 @@
/* string enum preferences */
#define NAUTILUS_PREFERENCES_DIALOG_DEFAULT_VIEW_WIDGET "default_view_combobox"
#define NAUTILUS_PREFERENCES_DIALOG_PREVIEW_FILES_WIDGET \
- "preview_image_combobox"
+ "preview_image_combobox"
#define NAUTILUS_PREFERENCES_DIALOG_PREVIEW_FOLDER_WIDGET \
- "preview_folder_combobox"
+ "preview_folder_combobox"
/* bool preferences */
#define NAUTILUS_PREFERENCES_DIALOG_FOLDERS_FIRST_WIDGET \
- "sort_folders_first_checkbutton"
+ "sort_folders_first_checkbutton"
#define NAUTILUS_PREFERENCES_DIALOG_DELETE_PERMANENTLY_WIDGET \
- "show_delete_permanently_checkbutton"
+ "show_delete_permanently_checkbutton"
#define NAUTILUS_PREFERENCES_DIALOG_CREATE_LINK_WIDGET \
- "show_create_link_checkbutton"
+ "show_create_link_checkbutton"
#define NAUTILUS_PREFERENCES_DIALOG_LIST_VIEW_USE_TREE_WIDGET \
- "use_tree_view_checkbutton"
+ "use_tree_view_checkbutton"
#define NAUTILUS_PREFERENCES_DIALOG_TRASH_CONFIRM_WIDGET \
- "trash_confirm_checkbutton"
+ "trash_confirm_checkbutton"
#define NAUTILUS_PREFERENCES_DIALOG_AUTOMATIC_DECOMPRESSION_WIDGET \
- "automatic_decompression_checkbutton"
+ "automatic_decompression_checkbutton"
/* int enums */
#define NAUTILUS_PREFERENCES_DIALOG_THUMBNAIL_LIMIT_WIDGET \
- "preview_image_size_combobox"
+ "preview_image_size_combobox"
-static const char *const speed_tradeoff_values[] = {"local-only", "always", "never",
- NULL};
+static const char * const speed_tradeoff_values[] =
+{
+ "local-only", "always", "never",
+ NULL
+};
-static const char *const click_behavior_components[] = {
- "single_click_radiobutton", "double_click_radiobutton", NULL};
+static const char * const click_behavior_components[] =
+{
+ "single_click_radiobutton", "double_click_radiobutton", NULL
+};
-static const char *const click_behavior_values[] = {"single", "double", NULL};
+static const char * const click_behavior_values[] = {"single", "double", NULL};
-static const char *const executable_text_components[] = {
+static const char * const executable_text_components[] =
+{
"scripts_execute_radiobutton", "scripts_view_radiobutton",
- "scripts_confirm_radiobutton", NULL};
-
-static const char *const executable_text_values[] = {"launch", "display", "ask",
- NULL};
-
-static const char *const recursive_search_components[] = {
- "search_recursive_only_this_computer_radiobutton", "search_recursive_all_locations_radiobutton", "search_recursive_never_radiobutton", NULL};
-
-static const char *const thumbnails_components[] = {
- "thumbnails_only_this_computer_radiobutton", "thumbnails_all_files_radiobutton", "thumbnails_never_radiobutton", NULL};
-
-static const char *const count_components[] = {
- "count_only_this_computer_radiobutton", "count_all_files_radiobutton", "count_never_radiobutton", NULL};
-
-static const guint64 thumbnail_limit_values[] = {
- 102400, 512000, 1048576, 3145728, 5242880,
- 10485760, 104857600, 1073741824, 2147483648U, 4294967295U};
-
-static const char *const icon_captions_components[] = {
- "captions_0_combobox", "captions_1_combobox", "captions_2_combobox", NULL};
+ "scripts_confirm_radiobutton", NULL
+};
+
+static const char * const executable_text_values[] =
+{
+ "launch", "display", "ask",
+ NULL
+};
+
+static const char * const recursive_search_components[] =
+{
+ "search_recursive_only_this_computer_radiobutton", "search_recursive_all_locations_radiobutton", "search_recursive_never_radiobutton", NULL
+};
+
+static const char * const thumbnails_components[] =
+{
+ "thumbnails_only_this_computer_radiobutton", "thumbnails_all_files_radiobutton", "thumbnails_never_radiobutton", NULL
+};
+
+static const char * const count_components[] =
+{
+ "count_only_this_computer_radiobutton", "count_all_files_radiobutton", "count_never_radiobutton", NULL
+};
+
+static const guint64 thumbnail_limit_values[] =
+{
+ 102400, 512000, 1048576, 3145728, 5242880,
+ 10485760, 104857600, 1073741824, 2147483648U, 4294967295U
+};
+
+static const char * const icon_captions_components[] =
+{
+ "captions_0_combobox", "captions_1_combobox", "captions_2_combobox", NULL
+};
static GtkWidget *preferences_window = NULL;
static void columns_changed_callback(NautilusColumnChooser *chooser,
- gpointer callback_data) {
- char **visible_columns;
- char **column_order;
-
- nautilus_column_chooser_get_settings(NAUTILUS_COLUMN_CHOOSER(chooser),
- &visible_columns, &column_order);
-
- g_settings_set_strv(nautilus_list_view_preferences,
- NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS,
- (const char *const *)visible_columns);
- g_settings_set_strv(nautilus_list_view_preferences,
- NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER,
- (const char *const *)column_order);
-
- g_strfreev(visible_columns);
- g_strfreev(column_order);
+ gpointer callback_data)
+{
+ char **visible_columns;
+ char **column_order;
+
+ nautilus_column_chooser_get_settings (NAUTILUS_COLUMN_CHOOSER (chooser),
+ &visible_columns, &column_order);
+
+ g_settings_set_strv (nautilus_list_view_preferences,
+ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS,
+ (const char * const *) visible_columns);
+ g_settings_set_strv (nautilus_list_view_preferences,
+ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER,
+ (const char * const *) column_order);
+
+ g_strfreev (visible_columns);
+ g_strfreev (column_order);
}
-static void free_column_names_array(GPtrArray *column_names) {
- g_ptr_array_foreach(column_names, (GFunc)g_free, NULL);
- g_ptr_array_free(column_names, TRUE);
+static void free_column_names_array(GPtrArray *column_names)
+{
+ g_ptr_array_foreach (column_names, (GFunc) g_free, NULL);
+ g_ptr_array_free (column_names, TRUE);
}
static void create_icon_caption_combo_box_items(GtkComboBoxText *combo_box,
- GList *columns) {
- GList *l;
- GPtrArray *column_names;
+ GList *columns)
+{
+ GList *l;
+ GPtrArray *column_names;
- column_names = g_ptr_array_new();
+ column_names = g_ptr_array_new ();
- /* Translators: this is referred to captions under icons. */
- gtk_combo_box_text_append_text(combo_box, _("None"));
- g_ptr_array_add(column_names, g_strdup("none"));
+ /* Translators: this is referred to captions under icons. */
+ gtk_combo_box_text_append_text (combo_box, _("None"));
+ g_ptr_array_add (column_names, g_strdup ("none"));
- for (l = columns; l != NULL; l = l->next) {
- NautilusColumn *column;
- char *name;
- char *label;
+ for (l = columns; l != NULL; l = l->next)
+ {
+ NautilusColumn *column;
+ char *name;
+ char *label;
- column = NAUTILUS_COLUMN(l->data);
+ column = NAUTILUS_COLUMN (l->data);
- g_object_get(G_OBJECT(column), "name", &name, "label", &label, NULL);
+ g_object_get (G_OBJECT (column), "name", &name, "label", &label, NULL);
- /* Don't show name here, it doesn't make sense */
- if (!strcmp(name, "name")) {
- g_free(name);
- g_free(label);
- continue;
- }
+ /* Don't show name here, it doesn't make sense */
+ if (!strcmp (name, "name"))
+ {
+ g_free (name);
+ g_free (label);
+ continue;
+ }
- gtk_combo_box_text_append_text(combo_box, label);
- g_ptr_array_add(column_names, name);
+ gtk_combo_box_text_append_text (combo_box, label);
+ g_ptr_array_add (column_names, name);
- g_free(label);
- }
- g_object_set_data_full(G_OBJECT(combo_box), "column_names", column_names,
- (GDestroyNotify)free_column_names_array);
+ g_free (label);
+ }
+ g_object_set_data_full (G_OBJECT (combo_box), "column_names", column_names,
+ (GDestroyNotify) free_column_names_array);
}
static void icon_captions_changed_callback(GtkComboBox *combo_box,
- gpointer user_data) {
- GPtrArray *captions;
- GtkBuilder *builder;
- int i;
+ gpointer user_data)
+{
+ GPtrArray *captions;
+ GtkBuilder *builder;
+ int i;
- builder = GTK_BUILDER(user_data);
+ builder = GTK_BUILDER (user_data);
- captions = g_ptr_array_new();
+ captions = g_ptr_array_new ();
- for (i = 0; icon_captions_components[i] != NULL; i++) {
- GtkWidget *combo_box;
- int active;
- GPtrArray *column_names;
- char *name;
+ for (i = 0; icon_captions_components[i] != NULL; i++)
+ {
+ GtkWidget *combo_box;
+ int active;
+ GPtrArray *column_names;
+ char *name;
- combo_box = GTK_WIDGET(
- gtk_builder_get_object(builder, icon_captions_components[i]));
- active = gtk_combo_box_get_active(GTK_COMBO_BOX(combo_box));
+ combo_box = GTK_WIDGET (
+ gtk_builder_get_object (builder, icon_captions_components[i]));
+ active = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
- column_names = g_object_get_data(G_OBJECT(combo_box), "column_names");
+ column_names = g_object_get_data (G_OBJECT (combo_box), "column_names");
- name = g_ptr_array_index(column_names, active);
- g_ptr_array_add(captions, name);
- }
- g_ptr_array_add(captions, NULL);
+ name = g_ptr_array_index (column_names, active);
+ g_ptr_array_add (captions, name);
+ }
+ g_ptr_array_add (captions, NULL);
- g_settings_set_strv(nautilus_icon_view_preferences,
- NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
- (const char **)captions->pdata);
- g_ptr_array_free(captions, TRUE);
+ g_settings_set_strv (nautilus_icon_view_preferences,
+ NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
+ (const char **) captions->pdata);
+ g_ptr_array_free (captions, TRUE);
}
static void update_caption_combo_box(GtkBuilder *builder,
const char *combo_box_name,
- const char *name) {
- GtkWidget *combo_box;
- int i;
- GPtrArray *column_names;
+ const char *name)
+{
+ GtkWidget *combo_box;
+ int i;
+ GPtrArray *column_names;
- combo_box = GTK_WIDGET(gtk_builder_get_object(builder, combo_box_name));
+ combo_box = GTK_WIDGET (gtk_builder_get_object (builder, combo_box_name));
- g_signal_handlers_block_by_func(
- combo_box, G_CALLBACK(icon_captions_changed_callback), builder);
+ g_signal_handlers_block_by_func (
+ combo_box, G_CALLBACK (icon_captions_changed_callback), builder);
- column_names = g_object_get_data(G_OBJECT(combo_box), "column_names");
+ column_names = g_object_get_data (G_OBJECT (combo_box), "column_names");
- for (i = 0; i < column_names->len; ++i) {
- if (!strcmp(name, g_ptr_array_index(column_names, i))) {
- gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box), i);
- break;
+ for (i = 0; i < column_names->len; ++i)
+ {
+ if (!strcmp (name, g_ptr_array_index (column_names, i)))
+ {
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), i);
+ break;
+ }
}
- }
- g_signal_handlers_unblock_by_func(
- combo_box, G_CALLBACK(icon_captions_changed_callback), builder);
+ g_signal_handlers_unblock_by_func (
+ combo_box, G_CALLBACK (icon_captions_changed_callback), builder);
}
-static void update_icon_captions_from_settings(GtkBuilder *builder) {
- char **captions;
- int i, j;
-
- captions = g_settings_get_strv(nautilus_icon_view_preferences,
- NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS);
- if (captions == NULL)
- return;
-
- for (i = 0, j = 0; icon_captions_components[i] != NULL; i++) {
- char *data;
+static void update_icon_captions_from_settings(GtkBuilder *builder)
+{
+ char **captions;
+ int i, j;
- if (captions[j]) {
- data = captions[j];
- ++j;
- } else {
- data = "none";
+ captions = g_settings_get_strv (nautilus_icon_view_preferences,
+ NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS);
+ if (captions == NULL)
+ {
+ return;
}
- update_caption_combo_box(builder, icon_captions_components[i], data);
- }
+ for (i = 0, j = 0; icon_captions_components[i] != NULL; i++)
+ {
+ char *data;
+
+ if (captions[j])
+ {
+ data = captions[j];
+ ++j;
+ }
+ else
+ {
+ data = "none";
+ }
+
+ update_caption_combo_box (builder, icon_captions_components[i], data);
+ }
- g_strfreev(captions);
+ g_strfreev (captions);
}
static void
-nautilus_preferences_window_setup_icon_caption_page(GtkBuilder *builder) {
- GList *columns;
- int i;
- gboolean writable;
+nautilus_preferences_window_setup_icon_caption_page (GtkBuilder *builder)
+{
+ GList *columns;
+ int i;
+ gboolean writable;
- writable = g_settings_is_writable(nautilus_icon_view_preferences,
- NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS);
+ writable = g_settings_is_writable (nautilus_icon_view_preferences,
+ NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS);
- columns = nautilus_get_common_columns();
+ columns = nautilus_get_common_columns ();
- for (i = 0; icon_captions_components[i] != NULL; i++) {
- GtkWidget *combo_box;
+ for (i = 0; icon_captions_components[i] != NULL; i++)
+ {
+ GtkWidget *combo_box;
- combo_box = GTK_WIDGET(
- gtk_builder_get_object(builder, icon_captions_components[i]));
+ combo_box = GTK_WIDGET (
+ gtk_builder_get_object (builder, icon_captions_components[i]));
- create_icon_caption_combo_box_items(GTK_COMBO_BOX_TEXT(combo_box), columns);
- gtk_widget_set_sensitive(combo_box, writable);
+ create_icon_caption_combo_box_items (GTK_COMBO_BOX_TEXT (combo_box), columns);
+ gtk_widget_set_sensitive (combo_box, writable);
- g_signal_connect_data(
- combo_box, "changed", G_CALLBACK(icon_captions_changed_callback),
- g_object_ref(builder), (GClosureNotify)g_object_unref, 0);
- }
+ g_signal_connect_data (
+ combo_box, "changed", G_CALLBACK (icon_captions_changed_callback),
+ g_object_ref (builder), (GClosureNotify) g_object_unref, 0);
+ }
- nautilus_column_list_free(columns);
+ nautilus_column_list_free (columns);
- update_icon_captions_from_settings(builder);
+ update_icon_captions_from_settings (builder);
}
-static void set_columns_from_settings(NautilusColumnChooser *chooser) {
- char **visible_columns;
- char **column_order;
+static void set_columns_from_settings(NautilusColumnChooser *chooser)
+{
+ char **visible_columns;
+ char **column_order;
- visible_columns = g_settings_get_strv(
- nautilus_list_view_preferences,
- NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
- column_order =
- g_settings_get_strv(nautilus_list_view_preferences,
- NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER);
+ visible_columns = g_settings_get_strv (
+ nautilus_list_view_preferences,
+ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
+ column_order =
+ g_settings_get_strv (nautilus_list_view_preferences,
+ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER);
- nautilus_column_chooser_set_settings(NAUTILUS_COLUMN_CHOOSER(chooser),
- visible_columns, column_order);
+ nautilus_column_chooser_set_settings (NAUTILUS_COLUMN_CHOOSER (chooser),
+ visible_columns, column_order);
- g_strfreev(visible_columns);
- g_strfreev(column_order);
+ g_strfreev (visible_columns);
+ g_strfreev (column_order);
}
static void use_default_callback(NautilusColumnChooser *chooser,
- gpointer user_data) {
- g_settings_reset(nautilus_list_view_preferences,
- NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
- g_settings_reset(nautilus_list_view_preferences,
- NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER);
- set_columns_from_settings(chooser);
+ gpointer user_data)
+{
+ g_settings_reset (nautilus_list_view_preferences,
+ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
+ g_settings_reset (nautilus_list_view_preferences,
+ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER);
+ set_columns_from_settings (chooser);
}
static void
-nautilus_preferences_window_setup_list_column_page(GtkBuilder *builder) {
- GtkWidget *chooser;
- GtkWidget *box;
+nautilus_preferences_window_setup_list_column_page (GtkBuilder *builder)
+{
+ GtkWidget *chooser;
+ GtkWidget *box;
- chooser = nautilus_column_chooser_new(NULL);
- g_signal_connect(chooser, "changed", G_CALLBACK(columns_changed_callback),
- chooser);
- g_signal_connect(chooser, "use-default", G_CALLBACK(use_default_callback),
- chooser);
+ chooser = nautilus_column_chooser_new (NULL);
+ g_signal_connect (chooser, "changed", G_CALLBACK (columns_changed_callback),
+ chooser);
+ g_signal_connect (chooser, "use-default", G_CALLBACK (use_default_callback),
+ chooser);
- set_columns_from_settings(NAUTILUS_COLUMN_CHOOSER(chooser));
+ set_columns_from_settings (NAUTILUS_COLUMN_CHOOSER (chooser));
- gtk_widget_show(chooser);
- box = GTK_WIDGET(gtk_builder_get_object(builder, "list_columns_vbox"));
+ gtk_widget_show (chooser);
+ box = GTK_WIDGET (gtk_builder_get_object (builder, "list_columns_vbox"));
- gtk_box_pack_start(GTK_BOX(box), chooser, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (box), chooser, TRUE, TRUE, 0);
}
-static void bind_builder_bool(GtkBuilder *builder, GSettings *settings,
- const char *widget_name, const char *prefs) {
- g_settings_bind(settings, prefs, gtk_builder_get_object(builder, widget_name),
- "active", G_SETTINGS_BIND_DEFAULT);
+static void bind_builder_bool(GtkBuilder *builder,
+ GSettings *settings,
+ const char *widget_name,
+ const char *prefs)
+{
+ g_settings_bind (settings, prefs, gtk_builder_get_object (builder, widget_name),
+ "active", G_SETTINGS_BIND_DEFAULT);
}
-typedef struct {
- const guint64 *values;
- int n_values;
+typedef struct
+{
+ const guint64 *values;
+ int n_values;
} UIntEnumBinding;
-static gboolean uint_enum_get_mapping(GValue *value, GVariant *variant,
- gpointer user_data) {
- UIntEnumBinding *binding = user_data;
- guint64 v;
- int i;
-
- v = g_variant_get_uint64(variant);
- for (i = 0; i < binding->n_values; i++) {
- if (binding->values[i] >= v) {
- g_value_set_int(value, i);
- return TRUE;
+static gboolean uint_enum_get_mapping(GValue *value,
+ GVariant *variant,
+ gpointer user_data)
+{
+ UIntEnumBinding *binding = user_data;
+ guint64 v;
+ int i;
+
+ v = g_variant_get_uint64 (variant);
+ for (i = 0; i < binding->n_values; i++)
+ {
+ if (binding->values[i] >= v)
+ {
+ g_value_set_int (value, i);
+ return TRUE;
+ }
}
- }
- return FALSE;
+ return FALSE;
}
-static GVariant *uint_enum_set_mapping(const GValue *value,
+static GVariant *uint_enum_set_mapping(const GValue *value,
const GVariantType *expected_type,
- gpointer user_data) {
- UIntEnumBinding *binding = user_data;
+ gpointer user_data)
+{
+ UIntEnumBinding *binding = user_data;
- return g_variant_new_uint64(binding->values[g_value_get_int(value)]);
+ return g_variant_new_uint64 (binding->values[g_value_get_int (value)]);
}
-static void bind_builder_uint_enum(GtkBuilder *builder, GSettings *settings,
- const char *widget_name, const char *prefs,
- const guint64 *values, int n_values) {
- UIntEnumBinding *binding;
-
- binding = g_new(UIntEnumBinding, 1);
- binding->values = values;
- binding->n_values = n_values;
-
- g_settings_bind_with_mapping(
- settings, prefs, gtk_builder_get_object(builder, widget_name), "active",
- G_SETTINGS_BIND_DEFAULT, uint_enum_get_mapping, uint_enum_set_mapping,
- binding, g_free);
+static void bind_builder_uint_enum(GtkBuilder *builder,
+ GSettings *settings,
+ const char *widget_name,
+ const char *prefs,
+ const guint64 *values,
+ int n_values)
+{
+ UIntEnumBinding *binding;
+
+ binding = g_new (UIntEnumBinding, 1);
+ binding->values = values;
+ binding->n_values = n_values;
+
+ g_settings_bind_with_mapping (
+ settings, prefs, gtk_builder_get_object (builder, widget_name), "active",
+ G_SETTINGS_BIND_DEFAULT, uint_enum_get_mapping, uint_enum_set_mapping,
+ binding, g_free);
}
-static GVariant *radio_mapping_set(const GValue *gvalue,
+static GVariant *radio_mapping_set(const GValue *gvalue,
const GVariantType *expected_type,
- gpointer user_data) {
- const gchar *widget_value = user_data;
- GVariant *retval = NULL;
-
- if (g_value_get_boolean(gvalue)) {
- retval = g_variant_new_string(widget_value);
- }
+ gpointer user_data)
+{
+ const gchar *widget_value = user_data;
+ GVariant *retval = NULL;
+
+ if (g_value_get_boolean (gvalue))
+ {
+ retval = g_variant_new_string (widget_value);
+ }
- return retval;
+ return retval;
}
-static gboolean radio_mapping_get(GValue *gvalue, GVariant *variant,
- gpointer user_data) {
- const gchar *widget_value = user_data;
- const gchar *value;
+static gboolean radio_mapping_get(GValue *gvalue,
+ GVariant *variant,
+ gpointer user_data)
+{
+ const gchar *widget_value = user_data;
+ const gchar *value;
- value = g_variant_get_string(variant, NULL);
+ value = g_variant_get_string (variant, NULL);
- if (g_strcmp0(value, widget_value) == 0) {
- g_value_set_boolean(gvalue, TRUE);
- } else {
- g_value_set_boolean(gvalue, FALSE);
- }
+ if (g_strcmp0 (value, widget_value) == 0)
+ {
+ g_value_set_boolean (gvalue, TRUE);
+ }
+ else
+ {
+ g_value_set_boolean (gvalue, FALSE);
+ }
- return TRUE;
+ return TRUE;
}
-static void bind_builder_radio(GtkBuilder *builder, GSettings *settings,
- const char **widget_names, const char *prefs,
- const char **values) {
- GtkWidget *button;
- int i;
-
- for (i = 0; widget_names[i] != NULL; i++) {
- button = GTK_WIDGET(gtk_builder_get_object(builder, widget_names[i]));
-
- g_settings_bind_with_mapping(settings, prefs, button, "active",
- G_SETTINGS_BIND_DEFAULT, radio_mapping_get,
- radio_mapping_set, (gpointer)values[i], NULL);
- }
+static void bind_builder_radio(GtkBuilder *builder,
+ GSettings *settings,
+ const char **widget_names,
+ const char *prefs,
+ const char **values)
+{
+ GtkWidget *button;
+ int i;
+
+ for (i = 0; widget_names[i] != NULL; i++)
+ {
+ button = GTK_WIDGET (gtk_builder_get_object (builder, widget_names[i]));
+
+ g_settings_bind_with_mapping (settings, prefs, button, "active",
+ G_SETTINGS_BIND_DEFAULT, radio_mapping_get,
+ radio_mapping_set, (gpointer) values[i], NULL);
+ }
}
-static void set_gtk_filechooser_sort_first(GObject *object, GParamSpec *pspec) {
- g_settings_set_boolean(
- gtk_filechooser_preferences, NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST,
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(object)));
+static void set_gtk_filechooser_sort_first(GObject *object,
+ GParamSpec *pspec)
+{
+ g_settings_set_boolean (
+ gtk_filechooser_preferences, NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST,
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (object)));
}
static void nautilus_preferences_window_setup(GtkBuilder *builder,
- GtkWindow *parent_window) {
- GtkWidget *window;
-
- /* setup preferences */
- bind_builder_bool(builder, nautilus_preferences,
- NAUTILUS_PREFERENCES_DIALOG_FOLDERS_FIRST_WIDGET,
- NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST);
- g_signal_connect(
- gtk_builder_get_object(builder,
- NAUTILUS_PREFERENCES_DIALOG_FOLDERS_FIRST_WIDGET),
- "notify::active", G_CALLBACK(set_gtk_filechooser_sort_first), NULL);
-
- bind_builder_bool(builder, nautilus_preferences,
- NAUTILUS_PREFERENCES_DIALOG_TRASH_CONFIRM_WIDGET,
- NAUTILUS_PREFERENCES_CONFIRM_TRASH);
- bind_builder_bool (builder, nautilus_preferences,
- NAUTILUS_PREFERENCES_DIALOG_AUTOMATIC_DECOMPRESSION_WIDGET,
- NAUTILUS_PREFERENCES_AUTOMATIC_DECOMPRESSION);
- bind_builder_bool(builder, nautilus_list_view_preferences,
- NAUTILUS_PREFERENCES_DIALOG_LIST_VIEW_USE_TREE_WIDGET,
- NAUTILUS_PREFERENCES_LIST_VIEW_USE_TREE);
- bind_builder_bool(builder, nautilus_preferences,
- NAUTILUS_PREFERENCES_DIALOG_CREATE_LINK_WIDGET,
- NAUTILUS_PREFERENCES_SHOW_CREATE_LINK);
- bind_builder_bool(builder, nautilus_preferences,
- NAUTILUS_PREFERENCES_DIALOG_DELETE_PERMANENTLY_WIDGET,
- NAUTILUS_PREFERENCES_SHOW_DELETE_PERMANENTLY);
-
- bind_builder_radio(
- builder, nautilus_preferences, (const char **)click_behavior_components,
- NAUTILUS_PREFERENCES_CLICK_POLICY, (const char **)click_behavior_values);
- bind_builder_radio(builder, nautilus_preferences,
- (const char **)executable_text_components,
- NAUTILUS_PREFERENCES_EXECUTABLE_TEXT_ACTIVATION,
- (const char **)executable_text_values);
- bind_builder_radio(builder, nautilus_preferences,
- (const char **)recursive_search_components,
- NAUTILUS_PREFERENCES_RECURSIVE_SEARCH,
- (const char **)speed_tradeoff_values);
- bind_builder_radio(builder, nautilus_preferences,
- (const char **)thumbnails_components,
- NAUTILUS_PREFERENCES_SHOW_FILE_THUMBNAILS,
- (const char **)speed_tradeoff_values);
- bind_builder_radio(builder, nautilus_preferences,
- (const char **)count_components,
- NAUTILUS_PREFERENCES_SHOW_DIRECTORY_ITEM_COUNTS,
- (const char **)speed_tradeoff_values);
-
- bind_builder_uint_enum(builder, nautilus_preferences,
- NAUTILUS_PREFERENCES_DIALOG_THUMBNAIL_LIMIT_WIDGET,
- NAUTILUS_PREFERENCES_FILE_THUMBNAIL_LIMIT,
- thumbnail_limit_values,
- G_N_ELEMENTS(thumbnail_limit_values));
-
- nautilus_preferences_window_setup_icon_caption_page(builder);
- nautilus_preferences_window_setup_list_column_page(builder);
-
- /* UI callbacks */
- window = GTK_WIDGET(gtk_builder_get_object(builder, "preferences_window"));
- preferences_window = window;
-
- gtk_window_set_icon_name(GTK_WINDOW(preferences_window), "system-file-manager");
-
- g_object_add_weak_pointer(G_OBJECT(window), (gpointer *)&preferences_window);
-
- gtk_window_set_transient_for(GTK_WINDOW(preferences_window), parent_window);
-
- gtk_widget_show(preferences_window);
+ GtkWindow *parent_window)
+{
+ GtkWidget *window;
+
+ /* setup preferences */
+ bind_builder_bool (builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_FOLDERS_FIRST_WIDGET,
+ NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST);
+ g_signal_connect (
+ gtk_builder_get_object (builder,
+ NAUTILUS_PREFERENCES_DIALOG_FOLDERS_FIRST_WIDGET),
+ "notify::active", G_CALLBACK (set_gtk_filechooser_sort_first), NULL);
+
+ bind_builder_bool (builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_TRASH_CONFIRM_WIDGET,
+ NAUTILUS_PREFERENCES_CONFIRM_TRASH);
+ bind_builder_bool (builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_AUTOMATIC_DECOMPRESSION_WIDGET,
+ NAUTILUS_PREFERENCES_AUTOMATIC_DECOMPRESSION);
+ bind_builder_bool (builder, nautilus_list_view_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_LIST_VIEW_USE_TREE_WIDGET,
+ NAUTILUS_PREFERENCES_LIST_VIEW_USE_TREE);
+ bind_builder_bool (builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_CREATE_LINK_WIDGET,
+ NAUTILUS_PREFERENCES_SHOW_CREATE_LINK);
+ bind_builder_bool (builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_DELETE_PERMANENTLY_WIDGET,
+ NAUTILUS_PREFERENCES_SHOW_DELETE_PERMANENTLY);
+
+ bind_builder_radio (
+ builder, nautilus_preferences, (const char **) click_behavior_components,
+ NAUTILUS_PREFERENCES_CLICK_POLICY, (const char **) click_behavior_values);
+ bind_builder_radio (builder, nautilus_preferences,
+ (const char **) executable_text_components,
+ NAUTILUS_PREFERENCES_EXECUTABLE_TEXT_ACTIVATION,
+ (const char **) executable_text_values);
+ bind_builder_radio (builder, nautilus_preferences,
+ (const char **) recursive_search_components,
+ NAUTILUS_PREFERENCES_RECURSIVE_SEARCH,
+ (const char **) speed_tradeoff_values);
+ bind_builder_radio (builder, nautilus_preferences,
+ (const char **) thumbnails_components,
+ NAUTILUS_PREFERENCES_SHOW_FILE_THUMBNAILS,
+ (const char **) speed_tradeoff_values);
+ bind_builder_radio (builder, nautilus_preferences,
+ (const char **) count_components,
+ NAUTILUS_PREFERENCES_SHOW_DIRECTORY_ITEM_COUNTS,
+ (const char **) speed_tradeoff_values);
+
+ bind_builder_uint_enum (builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_THUMBNAIL_LIMIT_WIDGET,
+ NAUTILUS_PREFERENCES_FILE_THUMBNAIL_LIMIT,
+ thumbnail_limit_values,
+ G_N_ELEMENTS (thumbnail_limit_values));
+
+ nautilus_preferences_window_setup_icon_caption_page (builder);
+ nautilus_preferences_window_setup_list_column_page (builder);
+
+ /* UI callbacks */
+ window = GTK_WIDGET (gtk_builder_get_object (builder, "preferences_window"));
+ preferences_window = window;
+
+ gtk_window_set_icon_name (GTK_WINDOW (preferences_window), "system-file-manager");
+
+ g_object_add_weak_pointer (G_OBJECT (window), (gpointer *) &preferences_window);
+
+ gtk_window_set_transient_for (GTK_WINDOW (preferences_window), parent_window);
+
+ gtk_widget_show (preferences_window);
}
-void nautilus_preferences_window_show(GtkWindow *window) {
- GtkBuilder *builder;
+void nautilus_preferences_window_show(GtkWindow *window)
+{
+ GtkBuilder *builder;
- if (preferences_window != NULL) {
- gtk_window_present(GTK_WINDOW(preferences_window));
- return;
- }
+ if (preferences_window != NULL)
+ {
+ gtk_window_present (GTK_WINDOW (preferences_window));
+ return;
+ }
- builder = gtk_builder_new();
+ builder = gtk_builder_new ();
- gtk_builder_add_from_resource(
- builder, "/org/gnome/nautilus/ui/nautilus-preferences-window.ui", NULL);
+ gtk_builder_add_from_resource (
+ builder, "/org/gnome/nautilus/ui/nautilus-preferences-window.ui", NULL);
- nautilus_preferences_window_setup(builder, window);
+ nautilus_preferences_window_setup (builder, window);
- g_object_unref(builder);
+ g_object_unref (builder);
}