diff options
author | Ramiro Estrugo <ramiro@src.gnome.org> | 2000-04-19 02:48:42 +0000 |
---|---|---|
committer | Ramiro Estrugo <ramiro@src.gnome.org> | 2000-04-19 02:48:42 +0000 |
commit | efe511715719298649f6aa5fdb2b630158e48500 (patch) | |
tree | b6286f157308ec3dc8ad3fd36b0a9835b45f908d | |
parent | 470022d345edbcdba532b0ba1eb2a8792170be46 (diff) | |
download | nautilus-efe511715719298649f6aa5fdb2b630158e48500.tar.gz |
If the stored default value is null, is the given on. Do this only for
* nautilus-widgets/nautilus-preferences.c:
(nautilus_preferences_get): If the stored default value is null,
is the given on. Do this only for strings, since integral types
can legally have a value of zero.
* nautilus-widgets/nautilus-preferences-item.c:
(preferences_item_create_enum), (enum_radio_group_changed_cb):
Deal with the enumeration values. Before it was assuming it
started at ZERO.
* libnautilus-extensions/nautilus-global-preferences.c:
NAUTILUS_USER_LEVEL_*: Make this enum begin with a non zero
value. The zero value can be misintepreted by preferences as a
default leading to confusion.
(user_level_changed_callback): Add a default case just in case!
(nautilus_global_preferences_startup): Invoke
user_level_changed_callback once to make sure stuff is properly
setup.
-rw-r--r-- | ChangeLog | 23 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-global-preferences.c | 9 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-preferences-item.c | 18 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-preferences.c | 7 | ||||
-rw-r--r-- | libnautilus-private/nautilus-global-preferences.c | 9 | ||||
-rw-r--r-- | libnautilus-private/nautilus-preferences-item.c | 18 | ||||
-rw-r--r-- | libnautilus-private/nautilus-preferences.c | 7 | ||||
-rw-r--r-- | nautilus-widgets/nautilus-preferences-item.c | 18 | ||||
-rw-r--r-- | nautilus-widgets/nautilus-preferences.c | 7 |
9 files changed, 90 insertions, 26 deletions
@@ -1,3 +1,26 @@ +2000-04-18 Ramiro Estrugo <ramiro@eazel.com> + + * nautilus-widgets/nautilus-preferences.c: + (nautilus_preferences_get): If the stored default value is null, + is the given on. Do this only for strings, since integral types + can legally have a value of zero. + + * nautilus-widgets/nautilus-preferences-item.c: + (preferences_item_create_enum), (enum_radio_group_changed_cb): + Deal with the enumeration values. Before it was assuming it + started at ZERO. + + * libnautilus-extensions/nautilus-global-preferences.c: + NAUTILUS_USER_LEVEL_*: Make this enum begin with a non zero + value. The zero value can be misintepreted by preferences as a + default leading to confusion. + + (user_level_changed_callback): Add a default case just in case! + + (nautilus_global_preferences_startup): Invoke + user_level_changed_callback once to make sure stuff is properly + setup. + 2000-04-18 Pavel Cisler <pavel@eazel.com> * src/file-manager/dfos-xfer.c: diff --git a/libnautilus-extensions/nautilus-global-preferences.c b/libnautilus-extensions/nautilus-global-preferences.c index 3d12b3c97..9ec19edb9 100644 --- a/libnautilus-extensions/nautilus-global-preferences.c +++ b/libnautilus-extensions/nautilus-global-preferences.c @@ -39,7 +39,8 @@ enum { - NAUTILUS_USER_LEVEL_NOVICE, + /* Start at something other than zero - which is reserved as the unspecified default value. */ + NAUTILUS_USER_LEVEL_NOVICE = 100, NAUTILUS_USER_LEVEL_INTERMEDIATE, NAUTILUS_USER_LEVEL_HACKER }; @@ -388,6 +389,7 @@ user_level_changed_callback (NautilusPreferences *preferences, break; case NAUTILUS_USER_LEVEL_HACKER: + default: g_string_append (home_uri_string, g_get_home_dir ()); show_hidden_files = TRUE; break; @@ -449,5 +451,10 @@ nautilus_global_preferences_startup (void) NAUTILUS_PREFERENCES_USER_LEVEL, user_level_changed_callback, NULL); + + /* Invoke the callback once to make sure stuff is properly setup */ + user_level_changed_callback (preferences, + NAUTILUS_PREFERENCES_USER_LEVEL, + NULL); } diff --git a/libnautilus-extensions/nautilus-preferences-item.c b/libnautilus-extensions/nautilus-preferences-item.c index 8f5803b28..4220d8e8d 100644 --- a/libnautilus-extensions/nautilus-preferences-item.c +++ b/libnautilus-extensions/nautilus-preferences-item.c @@ -126,10 +126,10 @@ nautilus_preferences_item_initialize (NautilusPreferencesItem *item) { item->details = g_new (NautilusPreferencesItemDetails, 1); + item->details->preferences = NULL; item->details->preference_name = NULL; item->details->item_type = PREFERENCES_ITEM_UNDEFINED_ITEM; item->details->child = NULL; - item->details->preferences = NULL; } /* GtkObjectClass methods */ @@ -315,7 +315,8 @@ preferences_item_create_enum (NautilusPreferencesItem *item, g_free (description); - if (i == value) { + if (value == nautilus_preference_enum_get_nth_entry_value (preference, i)) { + nautilus_radio_button_group_set_active_index (NAUTILUS_RADIO_BUTTON_GROUP (item->details->child), i); } } @@ -383,17 +384,22 @@ nautilus_preferences_item_new (const NautilusPreferences *preferences, static void enum_radio_group_changed_cb (GtkWidget *buttons, GtkWidget * button, gpointer user_data) { - NautilusPreferencesItem * item = (NautilusPreferencesItem *) user_data; - - gint i; + NautilusPreferencesItem *item = (NautilusPreferencesItem *) user_data; + const NautilusPreference *preference; + gint i; g_assert (item != NULL); + g_assert (item->details->preference_name != NULL); + g_assert (item->details->preferences != NULL); + + preference = nautilus_preferences_get_preference (item->details->preferences, + item->details->preference_name); i = nautilus_radio_button_group_get_active_index (NAUTILUS_RADIO_BUTTON_GROUP (buttons)); nautilus_preferences_set_enum (NAUTILUS_PREFERENCES (item->details->preferences), item->details->preference_name, - i); + nautilus_preference_enum_get_nth_entry_value (preference, i)); } static void diff --git a/libnautilus-extensions/nautilus-preferences.c b/libnautilus-extensions/nautilus-preferences.c index c18cb79e8..9054c54a2 100644 --- a/libnautilus-extensions/nautilus-preferences.c +++ b/libnautilus-extensions/nautilus-preferences.c @@ -525,8 +525,7 @@ preference_get (const NautilusPreferences *preferences, g_assert (pref_hash_node != NULL); - /* If the stored default_value is NULL, then used the provided one */ - *value_out = (pref_hash_node->value ? pref_hash_node->value : default_value); + *value_out = pref_hash_node->value; } /* @@ -987,6 +986,10 @@ nautilus_preferences_get (const NautilusPreferences *preferences, (gconstpointer) default_value, &value); + /* If the stored default_value is NULL, then used the provided one */ + if (!value) + value = default_value; + return g_strdup (value); } diff --git a/libnautilus-private/nautilus-global-preferences.c b/libnautilus-private/nautilus-global-preferences.c index 3d12b3c97..9ec19edb9 100644 --- a/libnautilus-private/nautilus-global-preferences.c +++ b/libnautilus-private/nautilus-global-preferences.c @@ -39,7 +39,8 @@ enum { - NAUTILUS_USER_LEVEL_NOVICE, + /* Start at something other than zero - which is reserved as the unspecified default value. */ + NAUTILUS_USER_LEVEL_NOVICE = 100, NAUTILUS_USER_LEVEL_INTERMEDIATE, NAUTILUS_USER_LEVEL_HACKER }; @@ -388,6 +389,7 @@ user_level_changed_callback (NautilusPreferences *preferences, break; case NAUTILUS_USER_LEVEL_HACKER: + default: g_string_append (home_uri_string, g_get_home_dir ()); show_hidden_files = TRUE; break; @@ -449,5 +451,10 @@ nautilus_global_preferences_startup (void) NAUTILUS_PREFERENCES_USER_LEVEL, user_level_changed_callback, NULL); + + /* Invoke the callback once to make sure stuff is properly setup */ + user_level_changed_callback (preferences, + NAUTILUS_PREFERENCES_USER_LEVEL, + NULL); } diff --git a/libnautilus-private/nautilus-preferences-item.c b/libnautilus-private/nautilus-preferences-item.c index 8f5803b28..4220d8e8d 100644 --- a/libnautilus-private/nautilus-preferences-item.c +++ b/libnautilus-private/nautilus-preferences-item.c @@ -126,10 +126,10 @@ nautilus_preferences_item_initialize (NautilusPreferencesItem *item) { item->details = g_new (NautilusPreferencesItemDetails, 1); + item->details->preferences = NULL; item->details->preference_name = NULL; item->details->item_type = PREFERENCES_ITEM_UNDEFINED_ITEM; item->details->child = NULL; - item->details->preferences = NULL; } /* GtkObjectClass methods */ @@ -315,7 +315,8 @@ preferences_item_create_enum (NautilusPreferencesItem *item, g_free (description); - if (i == value) { + if (value == nautilus_preference_enum_get_nth_entry_value (preference, i)) { + nautilus_radio_button_group_set_active_index (NAUTILUS_RADIO_BUTTON_GROUP (item->details->child), i); } } @@ -383,17 +384,22 @@ nautilus_preferences_item_new (const NautilusPreferences *preferences, static void enum_radio_group_changed_cb (GtkWidget *buttons, GtkWidget * button, gpointer user_data) { - NautilusPreferencesItem * item = (NautilusPreferencesItem *) user_data; - - gint i; + NautilusPreferencesItem *item = (NautilusPreferencesItem *) user_data; + const NautilusPreference *preference; + gint i; g_assert (item != NULL); + g_assert (item->details->preference_name != NULL); + g_assert (item->details->preferences != NULL); + + preference = nautilus_preferences_get_preference (item->details->preferences, + item->details->preference_name); i = nautilus_radio_button_group_get_active_index (NAUTILUS_RADIO_BUTTON_GROUP (buttons)); nautilus_preferences_set_enum (NAUTILUS_PREFERENCES (item->details->preferences), item->details->preference_name, - i); + nautilus_preference_enum_get_nth_entry_value (preference, i)); } static void diff --git a/libnautilus-private/nautilus-preferences.c b/libnautilus-private/nautilus-preferences.c index c18cb79e8..9054c54a2 100644 --- a/libnautilus-private/nautilus-preferences.c +++ b/libnautilus-private/nautilus-preferences.c @@ -525,8 +525,7 @@ preference_get (const NautilusPreferences *preferences, g_assert (pref_hash_node != NULL); - /* If the stored default_value is NULL, then used the provided one */ - *value_out = (pref_hash_node->value ? pref_hash_node->value : default_value); + *value_out = pref_hash_node->value; } /* @@ -987,6 +986,10 @@ nautilus_preferences_get (const NautilusPreferences *preferences, (gconstpointer) default_value, &value); + /* If the stored default_value is NULL, then used the provided one */ + if (!value) + value = default_value; + return g_strdup (value); } diff --git a/nautilus-widgets/nautilus-preferences-item.c b/nautilus-widgets/nautilus-preferences-item.c index 8f5803b28..4220d8e8d 100644 --- a/nautilus-widgets/nautilus-preferences-item.c +++ b/nautilus-widgets/nautilus-preferences-item.c @@ -126,10 +126,10 @@ nautilus_preferences_item_initialize (NautilusPreferencesItem *item) { item->details = g_new (NautilusPreferencesItemDetails, 1); + item->details->preferences = NULL; item->details->preference_name = NULL; item->details->item_type = PREFERENCES_ITEM_UNDEFINED_ITEM; item->details->child = NULL; - item->details->preferences = NULL; } /* GtkObjectClass methods */ @@ -315,7 +315,8 @@ preferences_item_create_enum (NautilusPreferencesItem *item, g_free (description); - if (i == value) { + if (value == nautilus_preference_enum_get_nth_entry_value (preference, i)) { + nautilus_radio_button_group_set_active_index (NAUTILUS_RADIO_BUTTON_GROUP (item->details->child), i); } } @@ -383,17 +384,22 @@ nautilus_preferences_item_new (const NautilusPreferences *preferences, static void enum_radio_group_changed_cb (GtkWidget *buttons, GtkWidget * button, gpointer user_data) { - NautilusPreferencesItem * item = (NautilusPreferencesItem *) user_data; - - gint i; + NautilusPreferencesItem *item = (NautilusPreferencesItem *) user_data; + const NautilusPreference *preference; + gint i; g_assert (item != NULL); + g_assert (item->details->preference_name != NULL); + g_assert (item->details->preferences != NULL); + + preference = nautilus_preferences_get_preference (item->details->preferences, + item->details->preference_name); i = nautilus_radio_button_group_get_active_index (NAUTILUS_RADIO_BUTTON_GROUP (buttons)); nautilus_preferences_set_enum (NAUTILUS_PREFERENCES (item->details->preferences), item->details->preference_name, - i); + nautilus_preference_enum_get_nth_entry_value (preference, i)); } static void diff --git a/nautilus-widgets/nautilus-preferences.c b/nautilus-widgets/nautilus-preferences.c index c18cb79e8..9054c54a2 100644 --- a/nautilus-widgets/nautilus-preferences.c +++ b/nautilus-widgets/nautilus-preferences.c @@ -525,8 +525,7 @@ preference_get (const NautilusPreferences *preferences, g_assert (pref_hash_node != NULL); - /* If the stored default_value is NULL, then used the provided one */ - *value_out = (pref_hash_node->value ? pref_hash_node->value : default_value); + *value_out = pref_hash_node->value; } /* @@ -987,6 +986,10 @@ nautilus_preferences_get (const NautilusPreferences *preferences, (gconstpointer) default_value, &value); + /* If the stored default_value is NULL, then used the provided one */ + if (!value) + value = default_value; + return g_strdup (value); } |