void caja_global_preferences_init (void) { static gboolean initialized = FALSE; int i; if (initialized) { return; } initialized = TRUE; eel_preferences_init ("/apps/caja"); /* Install defaults */ global_preferences_install_defaults (); global_preferences_register_enumerations (); /* Add monitors for any other MateConf paths we have keys in */ for (i=0; EXTRA_MONITOR_PATHS[i] != NULL; i++) { eel_preferences_monitor_directory (EXTRA_MONITOR_PATHS[i]); } /* Set up storage for values accessed in this file */ eel_preferences_add_callback (CAJA_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER_OR_MANUAL_LAYOUT, default_icon_view_sort_order_or_manual_layout_changed_callback, NULL); /* Preload everything in a big batch */ eel_mateconf_preload_cache ("/apps/caja/preferences", MATECONF_CLIENT_PRELOAD_ONELEVEL); eel_mateconf_preload_cache ("/desktop/mate/file_views", MATECONF_CLIENT_PRELOAD_ONELEVEL); eel_mateconf_preload_cache ("/desktop/mate/background", MATECONF_CLIENT_PRELOAD_ONELEVEL); eel_mateconf_preload_cache ("/desktop/mate/lockdown", MATECONF_CLIENT_PRELOAD_ONELEVEL); /* These are always needed for the desktop */ eel_mateconf_preload_cache ("/apps/caja/desktop", MATECONF_CLIENT_PRELOAD_ONELEVEL); eel_mateconf_preload_cache ("/apps/caja/icon_view", MATECONF_CLIENT_PRELOAD_ONELEVEL); eel_mateconf_preload_cache ("/apps/caja/desktop-metadata", MATECONF_CLIENT_PRELOAD_RECURSIVE); }
static void caja_desktop_directory_init (CajaDesktopDirectory *desktop) { desktop->details = g_new0 (CajaDesktopDirectoryDetails, 1); desktop->details->callbacks = g_hash_table_new_full (merged_callback_hash, merged_callback_equal, NULL, (GDestroyNotify)merged_callback_destroy); desktop->details->monitors = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)merged_monitor_destroy); update_desktop_directory (CAJA_DESKTOP_DIRECTORY (desktop)); eel_preferences_add_callback (CAJA_PREFERENCES_DESKTOP_IS_HOME_DIR, desktop_directory_changed_callback, desktop); }
gboolean nautilus_is_desktop_directory (GFile *dir) { if (!desktop_dir_changed_callback_installed) { eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_IS_HOME_DIR, desktop_dir_changed_callback, NULL); desktop_dir_changed_callback_installed = TRUE; } if (desktop_dir == NULL) { update_desktop_dir (); } return g_file_equal (dir, desktop_dir); }
gboolean nautilus_is_desktop_directory_file (GFile *dir, const char *file) { if (!desktop_dir_changed_callback_installed) { eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_IS_HOME_DIR, desktop_dir_changed_callback, NULL); desktop_dir_changed_callback_installed = TRUE; } if (desktop_dir == NULL) { update_desktop_dir (); } return (g_file_equal (dir, desktop_dir_dir) && strcmp (file, desktop_dir_filename) == 0); }
static void nautilus_file_management_properties_dialog_setup (GladeXML *xml_dialog, GtkWindow *window) { GtkWidget *dialog; /* setup gconf stuff */ eel_gconf_monitor_add ("/apps/nautilus/icon_view"); eel_gconf_preload_cache ("/apps/nautilus/icon_view", GCONF_CLIENT_PRELOAD_ONELEVEL); eel_gconf_monitor_add ("/apps/nautilus/list_view"); eel_gconf_preload_cache ("/apps/nautilus/list_view", GCONF_CLIENT_PRELOAD_ONELEVEL); eel_gconf_monitor_add ("/apps/nautilus/preferences"); eel_gconf_preload_cache ("/apps/nautilus/preferences", GCONF_CLIENT_PRELOAD_ONELEVEL); eel_gconf_monitor_add ("/desktop/gnome/file_views"); eel_gconf_preload_cache ("/desktop/gnome/file_views", GCONF_CLIENT_PRELOAD_ONELEVEL); /* setup UI */ nautilus_file_management_properties_size_group_create (xml_dialog, "views_label", 4); nautilus_file_management_properties_size_group_create (xml_dialog, "captions_label", 3); nautilus_file_management_properties_size_group_create (xml_dialog, "preview_label", 5); create_date_format_menu (xml_dialog); /* setup preferences */ eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_COMPACT_LAYOUT_WIDGET, NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_TIGHTER_LAYOUT); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_LABELS_BESIDE_ICONS_WIDGET, NAUTILUS_PREFERENCES_ICON_VIEW_LABELS_BESIDE_ICONS); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_FOLDERS_FIRST_WIDGET, NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ALWAYS_USE_BROWSER_WIDGET, NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_MEDIA_AUTOMOUNT_OPEN, NAUTILUS_PREFERENCES_MEDIA_AUTOMOUNT_OPEN); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_MEDIA_AUTORUN_NEVER, NAUTILUS_PREFERENCES_MEDIA_AUTORUN_NEVER); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_CONFIRM_WIDGET, NAUTILUS_PREFERENCES_CONFIRM_TRASH); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_DELETE_WIDGET, NAUTILUS_PREFERENCES_ENABLE_DELETE); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SHOW_HIDDEN_WIDGET, NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES); eel_preferences_glade_connect_bool_slave (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SHOW_HIDDEN_WIDGET, NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES); eel_preferences_glade_connect_bool (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TREE_VIEW_FOLDERS_WIDGET, NAUTILUS_PREFERENCES_TREE_SHOW_ONLY_DIRECTORIES); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_DEFAULT_VIEW_WIDGET, NAUTILUS_PREFERENCES_DEFAULT_FOLDER_VIEWER, (const char **) default_view_values); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ICON_VIEW_ZOOM_WIDGET, NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL, (const char **) zoom_values); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_LIST_VIEW_ZOOM_WIDGET, NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL, (const char **) zoom_values); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SORT_ORDER_WIDGET, NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER, (const char **) sort_order_values); eel_preferences_glade_connect_string_enum_combo_box_slave (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SORT_ORDER_WIDGET, NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_ORDER); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_TEXT_WIDGET, NAUTILUS_PREFERENCES_SHOW_TEXT_IN_ICONS, (const char **) preview_values); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_IMAGE_WIDGET, NAUTILUS_PREFERENCES_SHOW_IMAGE_FILE_THUMBNAILS, (const char **) preview_values); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_SOUND_WIDGET, NAUTILUS_PREFERENCES_PREVIEW_SOUND, (const char **) preview_values); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_FOLDER_WIDGET, NAUTILUS_PREFERENCES_SHOW_DIRECTORY_ITEM_COUNTS, (const char **) preview_values); eel_preferences_glade_connect_string_enum_combo_box (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_DATE_FORMAT_WIDGET, NAUTILUS_PREFERENCES_DATE_FORMAT, (const char **) date_format_values); eel_preferences_glade_connect_string_enum_radio_button (xml_dialog, (const char **) click_behavior_components, NAUTILUS_PREFERENCES_CLICK_POLICY, (const char **) click_behavior_values); eel_preferences_glade_connect_string_enum_radio_button (xml_dialog, (const char **) executable_text_components, NAUTILUS_PREFERENCES_EXECUTABLE_TEXT_ACTIVATION, (const char **) executable_text_values); eel_preferences_glade_connect_int_enum (xml_dialog, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_THUMBNAIL_LIMIT_WIDGET, NAUTILUS_PREFERENCES_IMAGE_FILE_THUMBNAIL_LIMIT, (const int *) thumbnail_limit_values); nautilus_file_management_properties_dialog_setup_icon_caption_page (xml_dialog); nautilus_file_management_properties_dialog_setup_list_column_page (xml_dialog); nautilus_file_management_properties_dialog_setup_media_page (xml_dialog); eel_preferences_add_callback (NAUTILUS_PREFERENCES_MEDIA_AUTORUN_NEVER, (EelPreferencesCallback ) nautilus_file_management_properties_dialog_update_media_sensitivity, g_object_ref (xml_dialog)); /* UI callbacks */ dialog = glade_xml_get_widget (xml_dialog, "file_management_dialog"); g_signal_connect_data (G_OBJECT (dialog), "response", G_CALLBACK (nautilus_file_management_properties_dialog_response_cb), g_object_ref (xml_dialog), (GClosureNotify)g_object_unref, 0); gtk_window_set_icon_name (GTK_WINDOW (dialog), "file-manager"); if (window) { gtk_window_set_screen (GTK_WINDOW (dialog), gtk_window_get_screen(window)); } gtk_widget_show (dialog); }
/* key routine that hooks up a background and location */ void nautilus_connect_background_to_file_metadata (GtkWidget *widget, NautilusFile *file, GdkDragAction default_drag_action) { EelBackground *background; gpointer old_file; /* Get at the background object we'll be connecting. */ background = eel_get_widget_background (widget); /* Check if it is already connected. */ old_file = g_object_get_data (G_OBJECT (background), "eel_background_file"); if (old_file == file) { return; } /* Disconnect old signal handlers. */ if (old_file != NULL) { g_assert (NAUTILUS_IS_FILE (old_file)); g_signal_handlers_disconnect_by_func (background, G_CALLBACK (background_changed_callback), old_file); g_signal_handlers_disconnect_by_func (background, G_CALLBACK (background_destroyed_callback), old_file); g_signal_handlers_disconnect_by_func (background, G_CALLBACK (background_reset_callback), old_file); g_signal_handlers_disconnect_by_func (old_file, G_CALLBACK (saved_settings_changed_callback), background); nautilus_file_monitor_remove (old_file, background); eel_preferences_remove_callback (NAUTILUS_PREFERENCES_THEME, nautilus_file_background_theme_changed, background); eel_preferences_remove_callback (NAUTILUS_PREFERENCES_BACKGROUND_SET, nautilus_file_background_theme_changed, background); eel_preferences_remove_callback (NAUTILUS_PREFERENCES_BACKGROUND_COLOR, nautilus_file_background_theme_changed, background); eel_preferences_remove_callback (NAUTILUS_PREFERENCES_BACKGROUND_FILENAME, nautilus_file_background_theme_changed, background); } /* Attach the new directory. */ nautilus_file_ref (file); g_object_set_data_full (G_OBJECT (background), "eel_background_file", file, (GDestroyNotify) nautilus_file_unref); g_object_set_data (G_OBJECT (background), "default_drag_action", GINT_TO_POINTER (default_drag_action)); /* Connect new signal handlers. */ if (file != NULL) { g_signal_connect_object (background, "settings_changed", G_CALLBACK (background_changed_callback), file, 0); g_signal_connect_object (background, "destroy", G_CALLBACK (background_destroyed_callback), file, 0); g_signal_connect_object (background, "reset", G_CALLBACK (background_reset_callback), file, 0); g_signal_connect_object (file, "changed", G_CALLBACK (saved_settings_changed_callback), background, 0); /* arrange to receive file metadata */ nautilus_file_monitor_add (file, background, NAUTILUS_FILE_ATTRIBUTE_INFO); /* arrange for notification when the theme changes */ eel_preferences_add_callback (NAUTILUS_PREFERENCES_THEME, nautilus_file_background_theme_changed, background); eel_preferences_add_callback (NAUTILUS_PREFERENCES_BACKGROUND_SET, nautilus_file_background_theme_changed, background); eel_preferences_add_callback (NAUTILUS_PREFERENCES_BACKGROUND_COLOR, nautilus_file_background_theme_changed, background); eel_preferences_add_callback (NAUTILUS_PREFERENCES_BACKGROUND_FILENAME, nautilus_file_background_theme_changed, background); } /* Update the background based on the file metadata. */ initialize_background_from_settings (file, background); }
static void caja_history_sidebar_init (CajaHistorySidebar *sidebar) { GtkTreeView *tree_view; GtkTreeViewColumn *col; GtkCellRenderer *cell; GtkListStore *store; GtkTreeSelection *selection; tree_view = GTK_TREE_VIEW (gtk_tree_view_new ()); gtk_tree_view_set_headers_visible (tree_view, FALSE); gtk_widget_show (GTK_WIDGET (tree_view)); col = GTK_TREE_VIEW_COLUMN (gtk_tree_view_column_new ()); cell = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (col, cell, FALSE); gtk_tree_view_column_set_attributes (col, cell, "pixbuf", HISTORY_SIDEBAR_COLUMN_ICON, NULL); cell = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (col, cell, TRUE); gtk_tree_view_column_set_attributes (col, cell, "text", HISTORY_SIDEBAR_COLUMN_NAME, NULL); gtk_tree_view_column_set_fixed_width (col, CAJA_ICON_SIZE_SMALLER); gtk_tree_view_append_column (tree_view, col); store = gtk_list_store_new (HISTORY_SIDEBAR_COLUMN_COUNT, GDK_TYPE_PIXBUF, G_TYPE_STRING, CAJA_TYPE_BOOKMARK); gtk_tree_view_set_model (tree_view, GTK_TREE_MODEL (store)); g_object_unref (store); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sidebar), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_hadjustment (GTK_SCROLLED_WINDOW (sidebar), NULL); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (sidebar), NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sidebar), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER (sidebar), GTK_WIDGET (tree_view)); gtk_widget_show (GTK_WIDGET (sidebar)); sidebar->tree_view = tree_view; selection = gtk_tree_view_get_selection (tree_view); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); g_signal_connect_object (tree_view, "row_activated", G_CALLBACK (row_activated_callback), sidebar, 0); g_signal_connect_object (caja_signaller_get_current (), "history_list_changed", G_CALLBACK (history_changed_callback), sidebar, 0); g_signal_connect (tree_view, "button-press-event", G_CALLBACK (button_press_event_callback), sidebar); eel_preferences_add_callback (CAJA_PREFERENCES_CLICK_POLICY, click_policy_changed_callback, sidebar); update_click_policy (sidebar); }