summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Soriano <csoriano@gnome.org>2015-12-17 17:27:24 +0100
committerCarlos Soriano <csoriano@gnome.org>2015-12-17 17:27:24 +0100
commit81365bd838a19c08ca8645afc24c101908c63785 (patch)
tree981dd7c182755dbcf738c98889e0ae1981c178ab
parentf24fd6934d03361899e2626c6dbd8bc01eb252c7 (diff)
downloadnautilus-81365bd838a19c08ca8645afc24c101908c63785.tar.gz
preferences: rename from file_management
I always spend some time searching for the files that are the preferences dialog. Just rename it as it makes more sense to name it preferences.
-rw-r--r--src/Makefile.am4
-rw-r--r--src/nautilus-application.c4
-rw-r--r--src/nautilus-file-management-properties.c668
-rw-r--r--src/nautilus-preferences-dialog.c551
-rw-r--r--src/nautilus-preferences-dialog.h (renamed from src/nautilus-file-management-properties.h)11
-rw-r--r--src/resources/nautilus.gresource.xml2
-rw-r--r--src/resources/ui/nautilus-preferences-dialog.ui1197
7 files changed, 1759 insertions, 678 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 81516417a..445720bf7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -156,8 +156,8 @@ nautilus_SOURCES = \
nautilus-desktop-window.h \
nautilus-error-reporting.c \
nautilus-error-reporting.h \
- nautilus-file-management-properties.c \
- nautilus-file-management-properties.h \
+ nautilus-preferences-dialog.c \
+ nautilus-preferences-dialog.h \
nautilus-files-view.c \
nautilus-files-view.h \
nautilus-files-view-dnd.c \
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index 6132066ba..f1e017c8d 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -39,7 +39,7 @@
#include "nautilus-shell-search-provider.h"
#include "nautilus-window.h"
#include "nautilus-window-slot.h"
-#include "nautilus-file-management-properties.h"
+#include "nautilus-preferences-dialog.h"
#include <libnautilus-private/nautilus-directory-private.h>
#include <libnautilus-private/nautilus-file-utilities.h>
@@ -696,7 +696,7 @@ action_preferences (GSimpleAction *action,
gpointer user_data)
{
GtkApplication *application = user_data;
- nautilus_file_management_properties_dialog_show (gtk_application_get_active_window (application));
+ nautilus_preferences_dialog_show (gtk_application_get_active_window (application));
}
static void
diff --git a/src/nautilus-file-management-properties.c b/src/nautilus-file-management-properties.c
deleted file mode 100644
index e9abf0ac8..000000000
--- a/src/nautilus-file-management-properties.c
+++ /dev/null
@@ -1,668 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-
-/* nautilus-file-management-properties.c - Functions to create and show the nautilus preference dialog.
-
- Copyright (C) 2002 Jan Arne Petersen
-
- 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>
-
-#include "nautilus-file-management-properties.h"
-
-#include <string.h>
-#include <time.h>
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-
-#include <glib/gi18n.h>
-
-#include <eel/eel-glib-extensions.h>
-
-#include <libnautilus-private/nautilus-column-chooser.h>
-#include <libnautilus-private/nautilus-column-utilities.h>
-#include <libnautilus-private/nautilus-global-preferences.h>
-#include <libnautilus-private/nautilus-module.h>
-
-/* string enum preferences */
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_DEFAULT_VIEW_WIDGET "default_view_combobox"
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SORT_ORDER_WIDGET "sort_order_combobox"
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_FILES_WIDGET "preview_image_combobox"
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_FOLDER_WIDGET "preview_folder_combobox"
-
-/* bool preferences */
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_FOLDERS_FIRST_WIDGET "sort_folders_first_checkbutton"
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_LIST_VIEW_USE_TREE_WIDGET "use_tree_view_checkbutton"
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_CONFIRM_WIDGET "trash_confirm_checkbutton"
-
-/* int enums */
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_THUMBNAIL_LIMIT_WIDGET "preview_image_size_combobox"
-
-static const char * const sort_order_values[] = {
- "name",
- "size",
- "type",
- "mtime",
- "atime",
- "trash-time",
- NULL
-};
-
-static const char * const preview_values[] = {
- "always",
- "local-only",
- "never",
- 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 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 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_dialog = NULL;
-
-static void
-nautilus_file_management_properties_size_group_create (GtkBuilder *builder,
- char *prefix,
- int items)
-{
- GtkSizeGroup *size_group;
- int i;
- char *item_name;
- GtkWidget *widget;
-
- size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
-
- for (i = 0; i < items; i++) {
- item_name = g_strdup_printf ("%s_%d", prefix, i);
- widget = GTK_WIDGET (gtk_builder_get_object (builder, item_name));
- gtk_size_group_add_widget (size_group, widget);
- g_free (item_name);
- }
- g_object_unref (G_OBJECT (size_group));
-}
-
-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);
-}
-
-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;
-
- 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"));
-
- for (l = columns; l != NULL; l = l->next) {
- NautilusColumn *column;
- char *name;
- char *label;
-
- column = NAUTILUS_COLUMN (l->data);
-
- 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;
- }
-
- 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);
-}
-
-static void
-icon_captions_changed_callback (GtkComboBox *combo_box,
- gpointer user_data)
-{
- GPtrArray *captions;
- GtkBuilder *builder;
- int i;
-
- builder = GTK_BUILDER (user_data);
-
- captions = g_ptr_array_new ();
-
- 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));
-
- 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);
-
- 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;
-
- 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);
-
- 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;
- }
- }
-
- 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;
-
- if (captions[j]) {
- data = captions[j];
- ++j;
- } else {
- data = "none";
- }
-
- update_caption_combo_box (builder,
- icon_captions_components[i],
- data);
- }
-
- g_strfreev (captions);
-}
-
-static void
-nautilus_file_management_properties_dialog_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);
-
- columns = nautilus_get_common_columns ();
-
- 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]));
-
- 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);
- }
-
- nautilus_column_list_free (columns);
-
- update_icon_captions_from_settings (builder);
-}
-
-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);
-
- nautilus_column_chooser_set_settings (NAUTILUS_COLUMN_CHOOSER (chooser),
- visible_columns,
- 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);
-}
-
-static void
-nautilus_file_management_properties_dialog_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);
-
- set_columns_from_settings (NAUTILUS_COLUMN_CHOOSER (chooser));
-
- 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);
-}
-
-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 gboolean
-enum_get_mapping (GValue *value,
- GVariant *variant,
- gpointer user_data)
-{
- const char **enum_values = user_data;
- const char *str;
- int i;
-
- str = g_variant_get_string (variant, NULL);
- for (i = 0; enum_values[i] != NULL; i++) {
- if (strcmp (enum_values[i], str) == 0) {
- g_value_set_int (value, i);
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-static GVariant *
-enum_set_mapping (const GValue *value,
- const GVariantType *expected_type,
- gpointer user_data)
-{
- const char **enum_values = user_data;
-
- return g_variant_new_string (enum_values[g_value_get_int (value)]);
-}
-
-static void
-bind_builder_enum (GtkBuilder *builder,
- GSettings *settings,
- const char *widget_name,
- const char *prefs,
- const char **enum_values)
-{
- g_settings_bind_with_mapping (settings, prefs,
- gtk_builder_get_object (builder, widget_name),
- "active", G_SETTINGS_BIND_DEFAULT,
- enum_get_mapping,
- enum_set_mapping,
- enum_values, NULL);
-}
-
-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;
- }
- }
-
- return FALSE;
-}
-
-static GVariant *
-uint_enum_set_mapping (const GValue *value,
- const GVariantType *expected_type,
- gpointer user_data)
-{
- UIntEnumBinding *binding = user_data;
-
- 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 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);
- }
-
- return retval;
-}
-
-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);
-
- if (g_strcmp0 (value, widget_value) == 0) {
- g_value_set_boolean (gvalue, TRUE);
- } else {
- g_value_set_boolean (gvalue, FALSE);
- }
-
- 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
-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_file_management_properties_dialog_setup (GtkBuilder *builder, GtkWindow *window)
-{
- GtkWidget *dialog;
-
- /* setup UI */
- nautilus_file_management_properties_size_group_create (builder,
- "captions_label",
- 3);
- nautilus_file_management_properties_size_group_create (builder,
- "preview_label",
- 3);
-
- /* setup preferences */
- bind_builder_bool (builder, nautilus_preferences,
- NAUTILUS_FILE_MANAGEMENT_PROPERTIES_FOLDERS_FIRST_WIDGET,
- NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST);
- g_signal_connect (gtk_builder_get_object (builder, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_FOLDERS_FIRST_WIDGET),
- "notify::active",
- G_CALLBACK (set_gtk_filechooser_sort_first), NULL);
-
- bind_builder_bool (builder, nautilus_preferences,
- NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_CONFIRM_WIDGET,
- NAUTILUS_PREFERENCES_CONFIRM_TRASH);
- bind_builder_bool (builder, nautilus_list_view_preferences,
- NAUTILUS_FILE_MANAGEMENT_PROPERTIES_LIST_VIEW_USE_TREE_WIDGET,
- NAUTILUS_PREFERENCES_LIST_VIEW_USE_TREE);
-
- bind_builder_enum (builder, nautilus_preferences,
- NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SORT_ORDER_WIDGET,
- NAUTILUS_PREFERENCES_DEFAULT_SORT_ORDER,
- (const char **) sort_order_values);
- bind_builder_enum (builder, nautilus_preferences,
- NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_FILES_WIDGET,
- NAUTILUS_PREFERENCES_SHOW_FILE_THUMBNAILS,
- (const char **) preview_values);
- bind_builder_enum (builder, nautilus_preferences,
- NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_FOLDER_WIDGET,
- NAUTILUS_PREFERENCES_SHOW_DIRECTORY_ITEM_COUNTS,
- (const char **) preview_values);
-
- 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_uint_enum (builder, nautilus_preferences,
- NAUTILUS_FILE_MANAGEMENT_PROPERTIES_THUMBNAIL_LIMIT_WIDGET,
- NAUTILUS_PREFERENCES_FILE_THUMBNAIL_LIMIT,
- thumbnail_limit_values,
- G_N_ELEMENTS (thumbnail_limit_values));
-
- nautilus_file_management_properties_dialog_setup_icon_caption_page (builder);
- nautilus_file_management_properties_dialog_setup_list_column_page (builder);
-
- /* UI callbacks */
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "file_management_dialog"));
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_widget_destroy),
- NULL);
-
- gtk_window_set_icon_name (GTK_WINDOW (dialog), "system-file-manager");
-
- if (window) {
- gtk_window_set_screen (GTK_WINDOW (dialog), gtk_window_get_screen(window));
- }
-
- preferences_dialog = dialog;
- g_object_add_weak_pointer (G_OBJECT (dialog), (gpointer *) &preferences_dialog);
- gtk_window_set_transient_for (GTK_WINDOW (dialog), window);
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
- gtk_widget_show (dialog);
-}
-
-void
-nautilus_file_management_properties_dialog_show (GtkWindow *window)
-{
- GtkBuilder *builder;
-
- if (preferences_dialog != NULL) {
- gtk_window_present (GTK_WINDOW (preferences_dialog));
- return;
- }
-
- builder = gtk_builder_new ();
-
- gtk_builder_add_from_resource (builder,
- "/org/gnome/nautilus/ui/nautilus-file-management-properties.ui",
- NULL);
-
- nautilus_file_management_properties_dialog_setup (builder, window);
-
- g_object_unref (builder);
-}
diff --git a/src/nautilus-preferences-dialog.c b/src/nautilus-preferences-dialog.c
new file mode 100644
index 000000000..24c22e4ce
--- /dev/null
+++ b/src/nautilus-preferences-dialog.c
@@ -0,0 +1,551 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+
+/* nautilus-preferences-dialog.c - Functions to create and show the nautilus
+ preference dialog.
+
+ Copyright (C) 2002 Jan Arne Petersen
+
+ 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>
+
+#include "nautilus-preferences-dialog.h"
+
+#include <string.h>
+#include <time.h>
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+
+#include <glib/gi18n.h>
+
+#include <eel/eel-glib-extensions.h>
+
+#include <libnautilus-private/nautilus-column-chooser.h>
+#include <libnautilus-private/nautilus-column-utilities.h>
+#include <libnautilus-private/nautilus-global-preferences.h>
+#include <libnautilus-private/nautilus-module.h>
+
+/* string enum preferences */
+#define NAUTILUS_PREFERENCES_DIALOG_DEFAULT_VIEW_WIDGET "default_view_combobox"
+#define NAUTILUS_PREFERENCES_DIALOG_SORT_ORDER_WIDGET "sort_order_combobox"
+#define NAUTILUS_PREFERENCES_DIALOG_PREVIEW_FILES_WIDGET \
+ "preview_image_combobox"
+#define NAUTILUS_PREFERENCES_DIALOG_PREVIEW_FOLDER_WIDGET \
+ "preview_folder_combobox"
+
+/* bool preferences */
+#define NAUTILUS_PREFERENCES_DIALOG_FOLDERS_FIRST_WIDGET \
+ "sort_folders_first_checkbutton"
+#define NAUTILUS_PREFERENCES_DIALOG_LIST_VIEW_USE_TREE_WIDGET \
+ "use_tree_view_checkbutton"
+#define NAUTILUS_PREFERENCES_DIALOG_TRASH_CONFIRM_WIDGET \
+ "trash_confirm_checkbutton"
+
+/* int enums */
+#define NAUTILUS_PREFERENCES_DIALOG_THUMBNAIL_LIMIT_WIDGET \
+ "preview_image_size_combobox"
+
+static const char *const sort_order_values[] = {
+ "name", "size", "type", "mtime", "atime", "trash-time", NULL};
+
+static const char *const preview_values[] = {"always", "local-only", "never",
+ 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 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 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_dialog = NULL;
+
+static void nautilus_preferences_dialog_size_group_create(GtkBuilder *builder,
+ char *prefix,
+ int items) {
+ GtkSizeGroup *size_group;
+ int i;
+ char *item_name;
+ GtkWidget *widget;
+
+ size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+
+ for (i = 0; i < items; i++) {
+ item_name = g_strdup_printf("%s_%d", prefix, i);
+ widget = GTK_WIDGET(gtk_builder_get_object(builder, item_name));
+ gtk_size_group_add_widget(size_group, widget);
+ g_free(item_name);
+ }
+ g_object_unref(G_OBJECT(size_group));
+}
+
+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);
+}
+
+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;
+
+ 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"));
+
+ for (l = columns; l != NULL; l = l->next) {
+ NautilusColumn *column;
+ char *name;
+ char *label;
+
+ column = NAUTILUS_COLUMN(l->data);
+
+ 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;
+ }
+
+ 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);
+}
+
+static void icon_captions_changed_callback(GtkComboBox *combo_box,
+ gpointer user_data) {
+ GPtrArray *captions;
+ GtkBuilder *builder;
+ int i;
+
+ builder = GTK_BUILDER(user_data);
+
+ captions = g_ptr_array_new();
+
+ 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));
+
+ 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);
+
+ 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;
+
+ 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);
+
+ 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;
+ }
+ }
+
+ 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;
+
+ if (captions[j]) {
+ data = captions[j];
+ ++j;
+ } else {
+ data = "none";
+ }
+
+ update_caption_combo_box(builder, icon_captions_components[i], data);
+ }
+
+ g_strfreev(captions);
+}
+
+static void
+nautilus_preferences_dialog_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);
+
+ columns = nautilus_get_common_columns();
+
+ 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]));
+
+ 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);
+ }
+
+ nautilus_column_list_free(columns);
+
+ update_icon_captions_from_settings(builder);
+}
+
+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);
+
+ nautilus_column_chooser_set_settings(NAUTILUS_COLUMN_CHOOSER(chooser),
+ visible_columns, 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);
+}
+
+static void
+nautilus_preferences_dialog_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);
+
+ set_columns_from_settings(NAUTILUS_COLUMN_CHOOSER(chooser));
+
+ 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);
+}
+
+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 gboolean enum_get_mapping(GValue *value, GVariant *variant,
+ gpointer user_data) {
+ const char **enum_values = user_data;
+ const char *str;
+ int i;
+
+ str = g_variant_get_string(variant, NULL);
+ for (i = 0; enum_values[i] != NULL; i++) {
+ if (strcmp(enum_values[i], str) == 0) {
+ g_value_set_int(value, i);
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static GVariant *enum_set_mapping(const GValue *value,
+ const GVariantType *expected_type,
+ gpointer user_data) {
+ const char **enum_values = user_data;
+
+ return g_variant_new_string(enum_values[g_value_get_int(value)]);
+}
+
+static void bind_builder_enum(GtkBuilder *builder, GSettings *settings,
+ const char *widget_name, const char *prefs,
+ const char **enum_values) {
+ g_settings_bind_with_mapping(
+ settings, prefs, gtk_builder_get_object(builder, widget_name), "active",
+ G_SETTINGS_BIND_DEFAULT, enum_get_mapping, enum_set_mapping, enum_values,
+ NULL);
+}
+
+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;
+ }
+ }
+
+ return FALSE;
+}
+
+static GVariant *uint_enum_set_mapping(const GValue *value,
+ const GVariantType *expected_type,
+ gpointer user_data) {
+ UIntEnumBinding *binding = user_data;
+
+ 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 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);
+ }
+
+ return retval;
+}
+
+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);
+
+ if (g_strcmp0(value, widget_value) == 0) {
+ g_value_set_boolean(gvalue, TRUE);
+ } else {
+ g_value_set_boolean(gvalue, FALSE);
+ }
+
+ 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 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_dialog_setup(GtkBuilder *builder,
+ GtkWindow *window) {
+ GtkWidget *dialog;
+
+ /* setup UI */
+ nautilus_preferences_dialog_size_group_create(builder, "captions_label", 3);
+ nautilus_preferences_dialog_size_group_create(builder, "preview_label", 3);
+
+ /* 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_list_view_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_LIST_VIEW_USE_TREE_WIDGET,
+ NAUTILUS_PREFERENCES_LIST_VIEW_USE_TREE);
+
+ bind_builder_enum(builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_SORT_ORDER_WIDGET,
+ NAUTILUS_PREFERENCES_DEFAULT_SORT_ORDER,
+ (const char **)sort_order_values);
+ bind_builder_enum(builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_PREVIEW_FILES_WIDGET,
+ NAUTILUS_PREFERENCES_SHOW_FILE_THUMBNAILS,
+ (const char **)preview_values);
+ bind_builder_enum(builder, nautilus_preferences,
+ NAUTILUS_PREFERENCES_DIALOG_PREVIEW_FOLDER_WIDGET,
+ NAUTILUS_PREFERENCES_SHOW_DIRECTORY_ITEM_COUNTS,
+ (const char **)preview_values);
+
+ 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_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_dialog_setup_icon_caption_page(builder);
+ nautilus_preferences_dialog_setup_list_column_page(builder);
+
+ /* UI callbacks */
+ dialog = GTK_WIDGET(gtk_builder_get_object(builder, "preferences_dialog"));
+ g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL);
+
+ gtk_window_set_icon_name(GTK_WINDOW(dialog), "system-file-manager");
+
+ if (window) {
+ gtk_window_set_screen(GTK_WINDOW(dialog), gtk_window_get_screen(window));
+ }
+
+ preferences_dialog = dialog;
+ g_object_add_weak_pointer(G_OBJECT(dialog), (gpointer *)&preferences_dialog);
+ gtk_window_set_transient_for(GTK_WINDOW(dialog), window);
+ gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
+
+ gtk_widget_show(dialog);
+}
+
+void nautilus_preferences_dialog_show(GtkWindow *window) {
+ GtkBuilder *builder;
+
+ if (preferences_dialog != NULL) {
+ gtk_window_present(GTK_WINDOW(preferences_dialog));
+ return;
+ }
+
+ builder = gtk_builder_new();
+
+ gtk_builder_add_from_resource(
+ builder, "/org/gnome/nautilus/ui/nautilus-preferences-dialog.ui", NULL);
+
+ nautilus_preferences_dialog_setup(builder, window);
+
+ g_object_unref(builder);
+}
diff --git a/src/nautilus-file-management-properties.h b/src/nautilus-preferences-dialog.h
index c41797124..06cef95f1 100644
--- a/src/nautilus-file-management-properties.h
+++ b/src/nautilus-preferences-dialog.h
@@ -1,6 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* nautilus-file-management-properties.h - Function to show the nautilus preference dialog.
+/* nautilus-preferences-dialog.h - Function to show the nautilus preference
+ dialog.
Copyright (C) 2002 Jan Arne Petersen
@@ -21,16 +22,16 @@
Authors: Jan Arne Petersen <jpetersen@uni-bonn.de>
*/
-#ifndef NAUTILUS_FILE_MANAGEMENT_PROPERTIES_H
-#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_H
+#ifndef NAUTILUS_PREFERENCES_DIALOG_H
+#define NAUTILUS_PREFERENCES_DIALOG_H
#include <glib-object.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS
-void nautilus_file_management_properties_dialog_show (GtkWindow *window);
+void nautilus_preferences_dialog_show(GtkWindow *window);
G_END_DECLS
-#endif /* NAUTILUS_FILE_MANAGEMENT_PROPERTIES_H */
+#endif /* NAUTILUS_PREFERENCES_DIALOG_H */
diff --git a/src/resources/nautilus.gresource.xml b/src/resources/nautilus.gresource.xml
index 8eaef061e..460e40d88 100644
--- a/src/resources/nautilus.gresource.xml
+++ b/src/resources/nautilus.gresource.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/nautilus">
- <file compressed="true">ui/nautilus-file-management-properties.ui</file>
+ <file compressed="true">ui/nautilus-preferences-dialog.ui</file>
<file>gtk/menus.ui</file>
<file>ui/nautilus-pathbar-context-menu.ui</file>
<file>ui/nautilus-toolbar.ui</file>
diff --git a/src/resources/ui/nautilus-preferences-dialog.ui b/src/resources/ui/nautilus-preferences-dialog.ui
new file mode 100644
index 000000000..b7b88a362
--- /dev/null
+++ b/src/resources/ui/nautilus-preferences-dialog.ui
@@ -0,0 +1,1197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkDialog" id="preferences_dialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">0</property>
+ <property name="window_position">center</property>
+ <property name="type_hint">dialog</property>
+ <property name="title" translatable="yes">Files Preferences</property>
+ <property name="use_header_bar">1</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <property name="border_width">0</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
+ <property name="visible">False</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkNotebook" id="notebook1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="border_width">0</property>
+ <property name="show_border">False</property>
+ <child>
+ <object class="GtkBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Default View</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="vbox14">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkBox" id="hbox11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="views_label_1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Arrange items:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">sort_order_combobox</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="sort_order_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">model2</property>
+ <child>
+ <object class="GtkCellRendererText" id="renderer2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="sort_folders_first_checkbutton">
+ <property name="label" translatable="yes">Sort _folders before files</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Views</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkBox" id="vbox6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Behavior</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="vbox17">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkRadioButton" id="single_click_radiobutton">
+ <property name="label" translatable="yes">_Single click to open items</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="double_click_radiobutton">
+ <property name="label" translatable="yes">_Double click to open items</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">single_click_radiobutton</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">6</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Executable Text Files</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="vbox18">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkRadioButton" id="scripts_execute_radiobutton">
+ <property name="label" translatable="yes">_Run executable text files when they are opened</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="scripts_view_radiobutton">
+ <property name="label" translatable="yes">_View executable text files when they are opened</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">scripts_execute_radiobutton</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="scripts_confirm_radiobutton">
+ <property name="label" translatable="yes">_Ask each time</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">scripts_execute_radiobutton</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label14">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Trash</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="vbox19">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="trash_confirm_checkbutton">
+ <property name="label" translatable="yes">Ask before _emptying the Trash or deleting files</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_expand">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Behavior</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox26">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkBox" id="vbox27">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label28">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Icon Captions</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="vbox28">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label29">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="wrap">True</property>
+ <property name="max-width-chars">65</property>
+ <property name="label" translatable="yes">Choose the order of information to appear beneath icon names. More information will appear when zooming in closer.</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox28">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="captions_label_0">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="captions_0_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="entry_text_column">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox29">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="captions_label_1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="captions_1_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="entry_text_column">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox30">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="captions_label_2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="captions_2_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="entry_text_column">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">List View</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkCheckButton" id="use_tree_view_checkbutton">
+ <property name="label" translatable="yes">Navigate folders in a tree</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_expand">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label24">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Display</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox29">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkBox" id="vbox30">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkBox" id="list_columns_vbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label33">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="wrap">True</property>
+ <property name="max-width-chars">65</property>
+ <property name="label" translatable="yes">Choose the order of information to appear in the list view.</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ <property name="tab_expand">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label30">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">List Columns</property>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox9">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkBox" id="vbox11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label18">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Files</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="vbox21">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkBox" id="hbox20">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="preview_label_0">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Show _thumbnails:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">preview_image_combobox</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="preview_image_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">model7</property>
+ <child>
+ <object class="GtkCellRendererText" id="renderer7"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox21">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="preview_label_1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Only for files smaller than:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">preview_image_size_combobox</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="preview_image_size_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">model8</property>
+ <child>
+ <object class="GtkCellRendererText" id="renderer8"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox13">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label22">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Folders</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment13">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="vbox23">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkBox" id="hbox23">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="preview_label_2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Count _number of items:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">preview_folder_combobox</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="preview_folder_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">model10</property>
+ <child>
+ <object class="GtkCellRendererText" id="renderer10"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab_expand">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Preview</property>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <object class="GtkListStore" id="model1">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Icon View</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">List View</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="model10">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Always</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Local Files Only</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Never</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="model2">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">By Name</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">By Size</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">By Type</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">By Modification Date</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">By Access Date</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">By Trashed Date</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="model3">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Small</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Standard</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Large</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="list_view_zoom_levels">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Small</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Standard</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Large</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="icon_view_zoom_levels">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Always</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Local Files Only</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Never</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="model7">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Always</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Local Files Only</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Never</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="model8">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">100 KB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">500 KB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1 MB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">3 MB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">5 MB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">10 MB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">100 MB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1 GB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">2 GB</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">4 GB</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="model9">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Always</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Local Files Only</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Never</col>
+ </row>
+ </data>
+ </object>
+</interface>