summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamiro Estrugo <ramiro@src.gnome.org>2000-04-19 02:48:42 +0000
committerRamiro Estrugo <ramiro@src.gnome.org>2000-04-19 02:48:42 +0000
commitefe511715719298649f6aa5fdb2b630158e48500 (patch)
treeb6286f157308ec3dc8ad3fd36b0a9835b45f908d
parent470022d345edbcdba532b0ba1eb2a8792170be46 (diff)
downloadnautilus-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--ChangeLog23
-rw-r--r--libnautilus-extensions/nautilus-global-preferences.c9
-rw-r--r--libnautilus-extensions/nautilus-preferences-item.c18
-rw-r--r--libnautilus-extensions/nautilus-preferences.c7
-rw-r--r--libnautilus-private/nautilus-global-preferences.c9
-rw-r--r--libnautilus-private/nautilus-preferences-item.c18
-rw-r--r--libnautilus-private/nautilus-preferences.c7
-rw-r--r--nautilus-widgets/nautilus-preferences-item.c18
-rw-r--r--nautilus-widgets/nautilus-preferences.c7
9 files changed, 90 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index a39559607..9067c7ad1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);
}