diff options
author | Carlos Soriano <csoriano@gnome.org> | 2015-12-17 17:27:24 +0100 |
---|---|---|
committer | Carlos Soriano <csoriano@gnome.org> | 2015-12-17 17:27:24 +0100 |
commit | 81365bd838a19c08ca8645afc24c101908c63785 (patch) | |
tree | 981dd7c182755dbcf738c98889e0ae1981c178ab | |
parent | f24fd6934d03361899e2626c6dbd8bc01eb252c7 (diff) | |
download | nautilus-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.am | 4 | ||||
-rw-r--r-- | src/nautilus-application.c | 4 | ||||
-rw-r--r-- | src/nautilus-file-management-properties.c | 668 | ||||
-rw-r--r-- | src/nautilus-preferences-dialog.c | 551 | ||||
-rw-r--r-- | src/nautilus-preferences-dialog.h (renamed from src/nautilus-file-management-properties.h) | 11 | ||||
-rw-r--r-- | src/resources/nautilus.gresource.xml | 2 | ||||
-rw-r--r-- | src/resources/ui/nautilus-preferences-dialog.ui | 1197 |
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> |