summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-global-preferences.h
diff options
context:
space:
mode:
authorRamiro Estrugo <ramiro@src.gnome.org>2000-06-02 16:41:42 +0000
committerRamiro Estrugo <ramiro@src.gnome.org>2000-06-02 16:41:42 +0000
commit8e29ec7fafaa139702cc12cbe223c22cf791b24a (patch)
tree5d410dc935662537a8a02a74eb158804977f52f9 /libnautilus-private/nautilus-global-preferences.h
parent92d5f261e6ce234bce7671e7b1b5d1de014233c6 (diff)
downloadnautilus-8e29ec7fafaa139702cc12cbe223c22cf791b24a.tar.gz
Task 518. Support for changing preferecens individually
within each confgurable user level. * libnautilus-extensions/nautilus-global-preferences.h: Change all preferences strings to not include the "/nautilus" prefix. The prefix is not automatically computed by the prefences api taking into account the user level. Add (nautilus_global_preferences_dialog_update) to rebuild the preferences dialog when the user level changes. * libnautilus-extensions/nautilus-global-preferences.c: (global_preferences_get_dialog), (global_preferences_register_sidebar_panels_preferences_for_ui), (global_preferences_register_with_defaults), (global_preferences_register_boolean_with_defaults), (global_preferences_register_string_with_defaults), (global_preferences_register_enum_with_defaults), (global_preferences_register_for_ui), (global_preferences_initialize_if_needed), (nautilus_global_preferences_show_dialog), (nautilus_global_preferences_hide_dialog), (nautilus_global_preferences_set_dialog_title), (nautilus_global_preferences_dialog_update), (nautilus_global_preferences_shutdown): remove the user level tracking hack. We now set default values for each of the user levels. * libnautilus-extensions/nautilus-icon-container.c: (nautilus_icon_container_initialize): Simplified preference callback api by having a single add_callback function. Use it here. * libnautilus-extensions/nautilus-list.c: (nautilus_list_initialize): Simplified preference callback api by having a single add_callback function. Use it here. * src/file-manager/fm-directory-view.c: (fm_directory_view_initialize): Simplified preference callback api by having a single add_callback function. Use it here. * nautilus-widgets/nautilus-preference.c: (preference_initialize_if_needed), (preference_hash_node_alloc), (preference_hash_node_free_func), (preference_hash_node_free), (preference_register), (preference_hash_node_lookup), (preference_hash_node_lookup_with_registration), (nautilus_preference_shutdown), (nautilus_preference_find_by_name), (nautilus_preference_set_info_by_name), (nautilus_preference_enum_add_entry_by_name): * nautilus-widgets/nautilus-preference.h: Move the preference description hash table here from nautilus-preferences. These are preferences that are expected to have nice defaults as well as descriptions and possibly extra data for the preferences widgets to use (like enumeration values) I moved the tabulation and hashing stuff intactly even though it contains many turds. I plan to fix these soon. * nautilus-widgets/nautilus-preferences-group.c: (nautilus_preferences_group_add_item): * nautilus-widgets/nautilus-preferences-item.c: (preferences_item_construct), (enum_radio_group_changed_callback): Update for the above. * nautilus-widgets/nautilus-preferences.c: (preferences_hash_node_alloc), (preferences_hash_node_free), (preferences_hash_node_add_callback), (preferences_hash_node_remove_callback), (preferences_hash_node_check_changes_func), (preferneces_callback_node_invoke_func), (preferences_register), (preferences_hash_node_lookup_with_registration), (preferences_gconf_callback), (user_level_changed_callback), (preferences_initialize_if_needed), (nautilus_preferences_add_callback), (nautilus_preferences_set_boolean), (nautilus_preferences_get_boolean), (nautilus_preferences_set_enum), (nautilus_preferences_get_enum), (nautilus_preferences_set), (nautilus_preferences_get), (nautilus_preferences_shutdown): * nautilus-widgets/nautilus-preferences.h: Move the tabulation of nice preferences to nautilus-preference. Install one gconf notification for each user level. Remove all the extra unused registration parameters. Use generated keys that take into account the current user level to communicato with GConf. Keep track of user level changes so that we can compare preferences between user levels and fire callbacks accordingly. This simplifies the lifes of preferences callers as they can continue to install one simple callback as before. They will get notified when a preference changes for whatever reason. That could be the user manaually tweaking it, or a sweeping user level change. Again, i tried to keep as much of the original hashing logic intact. It needs cleaning up as well. * nautilus-widgets/nautilus-user-level-manager.c: (nautilus_user_level_manager_set_default_value_if_needed), (nautilus_user_level_manager_compare_preference_between_user_levels ): * nautilus-widgets/nautilus-user-level-manager.h: Add a public function to determine whether a preference is the same between 2 user levels. * nautilus-widgets/test-nautilus-preferences.c: (register_global_preferences): Update to reflect api changes. * src/nautilus-window-menus.c: (nautilus_window_initialize_menus), (user_level_changed_callback), (get_customize_user_level_setttings_menu_string), (update_preferences_dialog_title): Update the preferences dialog whenever the user level changes. This is an easy way to have the dialog reflect reallity. It would be a lot nicer it the contents updated on the fly instead of rebuilding the whole thing. I can do that later.
Diffstat (limited to 'libnautilus-private/nautilus-global-preferences.h')
-rw-r--r--libnautilus-private/nautilus-global-preferences.h29
1 files changed, 15 insertions, 14 deletions
diff --git a/libnautilus-private/nautilus-global-preferences.h b/libnautilus-private/nautilus-global-preferences.h
index 1b6f462c3..d5c2ef746 100644
--- a/libnautilus-private/nautilus-global-preferences.h
+++ b/libnautilus-private/nautilus-global-preferences.h
@@ -31,39 +31,39 @@
BEGIN_GNOME_DECLS
/* Window options */
-#define NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW "/nautilus/preferences/window_always_new"
+#define NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW "preferences/window_always_new"
/* Show hidden files */
-#define NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES "/nautilus/preferences/show_hidden_files"
+#define NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES "preferences/show_hidden_files"
/* sidebar width */
-#define NAUTILUS_PREFERENCES_SIDEBAR_WIDTH "/nautilus/preferences/sidebar_width"
+#define NAUTILUS_PREFERENCES_SIDEBAR_WIDTH "preferences/sidebar_width"
/* Home URI */
-#define NAUTILUS_PREFERENCES_HOME_URI "/nautilus/preferences/home_uri"
+#define NAUTILUS_PREFERENCES_HOME_URI "preferences/home_uri"
/* adding/removing from property browser */
-#define NAUTILUS_PREFERENCES_CAN_ADD_CONTENT "/nautilus/preferences/can_add_content"
+#define NAUTILUS_PREFERENCES_CAN_ADD_CONTENT "preferences/can_add_content"
/* Preferences not (currently?) displayed in dialog */
-#define NAUTILUS_PREFERENCES_ICON_VIEW_TEXT_ATTRIBUTE_NAMES "/nautilus/icon_view/text_attribute_names"
-#define NAUTILUS_PREFERENCES_SHOW_REAL_FILE_NAME "/nautilus/preferences/show_real_file_name"
+#define NAUTILUS_PREFERENCES_ICON_VIEW_TEXT_ATTRIBUTE_NAMES "icon_view/text_attribute_names"
+#define NAUTILUS_PREFERENCES_SHOW_REAL_FILE_NAME "preferences/show_real_file_name"
/* Single/Double click preference */
-#define NAUTILUS_PREFERENCES_CLICK_POLICY "/nautilus/preferences/click_policy"
+#define NAUTILUS_PREFERENCES_CLICK_POLICY "preferences/click_policy"
/* use anti-aliased canvas */
-#define NAUTILUS_PREFERENCES_ANTI_ALIASED_CANVAS "/nautilus/preferences/anti_aliased_canvas"
+#define NAUTILUS_PREFERENCES_ANTI_ALIASED_CANVAS "preferences/anti_aliased_canvas"
/* Sidebar panels */
-#define NAUTILUS_PREFERENCES_SIDEBAR_PANELS_NAMESPACE "/nautilus/sidebar-panels"
+#define NAUTILUS_PREFERENCES_SIDEBAR_PANELS_NAMESPACE "sidebar-panels"
/* Directory view */
-#define NAUTILUS_PREFERENCES_DIRECTORY_VIEW_FONT_FAMILY "/nautilus/directory-view/font_family"
+#define NAUTILUS_PREFERENCES_DIRECTORY_VIEW_FONT_FAMILY "directory-view/font_family"
/* themes */
-#define NAUTILUS_PREFERENCES_EAZEL_TOOLBAR_ICONS "/nautilus/preferences/eazel_toolbar_icons"
-#define NAUTILUS_PREFERENCES_ICON_THEME "/nautilus/preferences/icon_theme"
+#define NAUTILUS_PREFERENCES_EAZEL_TOOLBAR_ICONS "preferences/eazel_toolbar_icons"
+#define NAUTILUS_PREFERENCES_ICON_THEME "preferences/icon_theme"
enum
{
@@ -71,12 +71,13 @@ enum
NAUTILUS_CLICK_POLICY_DOUBLE
};
-#define NAUTILUS_PREFERENCES_SHOW_TEXT_IN_REMOTE_ICONS "/nautilus/preferences/remote_icon_text"
+#define NAUTILUS_PREFERENCES_SHOW_TEXT_IN_REMOTE_ICONS "preferences/remote_icon_text"
void nautilus_global_preferences_shutdown (void);
void nautilus_global_preferences_show_dialog (void);
void nautilus_global_preferences_hide_dialog (void);
void nautilus_global_preferences_set_dialog_title (const char *title);
+void nautilus_global_preferences_dialog_update (void);
/* Sidebar */
GList *nautilus_global_preferences_get_enabled_sidebar_panel_view_identifiers (void);