[gnome-packagekit] Don't use english enumerated values in GConf, instead use seconds
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-packagekit] Don't use english enumerated values in GConf, instead use seconds
- Date: Thu, 4 Jun 2009 06:08:25 -0400 (EDT)
commit 4b7f29fc150312188450724ba74a89022f36765f
Author: Richard Hughes <richard hughsie com>
Date: Thu Jun 4 11:07:16 2009 +0100
Don't use english enumerated values in GConf, instead use seconds
---
data/gnome-packagekit.schemas.in | 18 ++++----
src/gpk-auto-refresh.c | 52 +++++------------------
src/gpk-enum.c | 49 ----------------------
src/gpk-enum.h | 15 -------
src/gpk-prefs.c | 83 +++++++++++++++++++-------------------
5 files changed, 63 insertions(+), 154 deletions(-)
diff --git a/data/gnome-packagekit.schemas.in b/data/gnome-packagekit.schemas.in
index 128b456..db94f4e 100644
--- a/data/gnome-packagekit.schemas.in
+++ b/data/gnome-packagekit.schemas.in
@@ -272,11 +272,11 @@
<key>/schemas/apps/gnome-packagekit/frequency_get_updates</key>
<applyto>/apps/gnome-packagekit/frequency_get_updates</applyto>
<owner>gnome-packagekit</owner>
- <type>string</type>
- <default>daily</default>
+ <type>int</type>
+ <default>86400</default>
<locale name="C">
<short>How often to check for updates</short>
- <long>How often to check for updates. Options are "hourly", "daily", "weekly", "never"</long>
+ <long>How often to check for updates. Value is in seconds.</long>
</locale>
</schema>
@@ -284,11 +284,11 @@
<key>/schemas/apps/gnome-packagekit/frequency_get_upgrades</key>
<applyto>/apps/gnome-packagekit/frequency_get_upgrades</applyto>
<owner>gnome-packagekit</owner>
- <type>string</type>
- <default>weekly</default>
+ <type>int</type>
+ <default>604800</default>
<locale name="C">
<short>How often to check for distribution upgrades</short>
- <long>How often to check for distribution upgrades. Options are "daily", "weekly", "never"</long>
+ <long>How often to check for distribution upgrades. Value is in seconds.</long>
</locale>
</schema>
@@ -296,11 +296,11 @@
<key>/schemas/apps/gnome-packagekit/frequency_refresh_cache</key>
<applyto>/apps/gnome-packagekit/frequency_refresh_cache</applyto>
<owner>gnome-packagekit</owner>
- <type>string</type>
- <default>daily</default>
+ <type>int</type>
+ <default>86400</default>
<locale name="C">
<short>How often to refresh the package cache</short>
- <long>How often to refresh the package cache. Options are "daily", "weekly", "never"</long>
+ <long>How often to refresh the package cache. Value is in seconds.</long>
</locale>
</schema>
diff --git a/src/gpk-auto-refresh.c b/src/gpk-auto-refresh.c
index eb4fba8..24fc6f7 100644
--- a/src/gpk-auto-refresh.c
+++ b/src/gpk-auto-refresh.c
@@ -157,52 +157,24 @@ gpk_auto_refresh_signal_get_upgrades (GpkAutoRefresh *arefresh)
}
/**
- * gpk_auto_refresh_convert_frequency:
- *
- * Return value: The number of seconds for the frequency period,
- * or zero for never or no schema
+ * gpk_auto_refresh_get_frequency_prefs:
**/
static guint
-gpk_auto_refresh_convert_frequency (GpkFreqEnum freq)
+gpk_auto_refresh_get_frequency_prefs (GpkAutoRefresh *arefresh, const gchar *key)
{
- if (freq == GPK_FREQ_ENUM_UNKNOWN) {
- egg_warning ("no schema");
- return 0;
- }
- if (freq == GPK_FREQ_ENUM_NEVER)
- return 0;
- if (freq == GPK_FREQ_ENUM_HOURLY)
- return 60*60;
- if (freq == GPK_FREQ_ENUM_DAILY)
- return 60*60*24;
- if (freq == GPK_FREQ_ENUM_WEEKLY)
- return 60*60*24*7;
- egg_warning ("unknown frequency enum");
- return 0;
-}
-
-/**
- * gpk_auto_refresh_convert_frequency_text:
- **/
-static guint
-gpk_auto_refresh_convert_frequency_text (GpkAutoRefresh *arefresh, const gchar *key)
-{
- gchar *freq_text;
- GpkFreqEnum freq;
+ guint value;
g_return_val_if_fail (GPK_IS_AUTO_REFRESH (arefresh), 0);
/* get from gconf */
- freq_text = gconf_client_get_string (arefresh->priv->gconf_client, key, NULL);
- if (freq_text == NULL) {
- egg_warning ("no schema for %s", key);
- return 0;
+ value = gconf_client_get_int (arefresh->priv->gconf_client, key, NULL);
+ if (value == 0) {
+ egg_warning ("no schema for %s, using daily", key);
+ value = 86400;
}
/* convert to enum and get seconds */
- freq = gpk_freq_enum_from_text (freq_text);
- g_free (freq_text);
- return gpk_auto_refresh_convert_frequency (freq);
+ return value;
}
/**
@@ -218,7 +190,7 @@ gpk_auto_refresh_maybe_refresh_cache (GpkAutoRefresh *arefresh)
g_return_val_if_fail (GPK_IS_AUTO_REFRESH (arefresh), FALSE);
/* if we don't want to auto check for updates, don't do this either */
- thresh = gpk_auto_refresh_convert_frequency_text (arefresh, GPK_CONF_FREQUENCY_GET_UPDATES);
+ thresh = gpk_auto_refresh_get_frequency_prefs (arefresh, GPK_CONF_FREQUENCY_GET_UPDATES);
if (thresh == 0) {
egg_debug ("not when policy is to never refresh");
return FALSE;
@@ -237,7 +209,7 @@ gpk_auto_refresh_maybe_refresh_cache (GpkAutoRefresh *arefresh)
}
/* get this each time, as it may have changed behind out back */
- thresh = gpk_auto_refresh_convert_frequency_text (arefresh, GPK_CONF_FREQUENCY_REFRESH_CACHE);
+ thresh = gpk_auto_refresh_get_frequency_prefs (arefresh, GPK_CONF_FREQUENCY_REFRESH_CACHE);
if (thresh == 0) {
egg_debug ("not when policy is to never refresh");
return FALSE;
@@ -283,7 +255,7 @@ gpk_auto_refresh_maybe_get_updates (GpkAutoRefresh *arefresh)
}
/* get this each time, as it may have changed behind out back */
- thresh = gpk_auto_refresh_convert_frequency_text (arefresh, GPK_CONF_FREQUENCY_GET_UPDATES);
+ thresh = gpk_auto_refresh_get_frequency_prefs (arefresh, GPK_CONF_FREQUENCY_GET_UPDATES);
if (thresh == 0) {
egg_debug ("not when policy is set to never get updates");
return FALSE;
@@ -320,7 +292,7 @@ gpk_auto_refresh_maybe_get_upgrades (GpkAutoRefresh *arefresh)
g_return_val_if_fail (GPK_IS_AUTO_REFRESH (arefresh), FALSE);
/* get this each time, as it may have changed behind out back */
- thresh = gpk_auto_refresh_convert_frequency_text (arefresh, GPK_CONF_FREQUENCY_GET_UPGRADES);
+ thresh = gpk_auto_refresh_get_frequency_prefs (arefresh, GPK_CONF_FREQUENCY_GET_UPGRADES);
if (thresh == 0) {
egg_debug ("not when policy is set to never check for upgrades");
return FALSE;
diff --git a/src/gpk-enum.c b/src/gpk-enum.c
index 3c9e3ef..8a15dfe 100644
--- a/src/gpk-enum.c
+++ b/src/gpk-enum.c
@@ -236,15 +236,6 @@ static const PkEnumMatch enum_message_icon_name[] = {
{0, NULL}
};
-static const PkEnumMatch enum_freq[] = {
- {GPK_FREQ_ENUM_UNKNOWN, "unknown"}, /* fall though value */
- {GPK_FREQ_ENUM_HOURLY, "hourly"},
- {GPK_FREQ_ENUM_DAILY, "daily"},
- {GPK_FREQ_ENUM_WEEKLY, "weekly"},
- {GPK_FREQ_ENUM_NEVER, "never"},
- {0, NULL}
-};
-
static const PkEnumMatch enum_update[] = {
{GPK_UPDATE_ENUM_UNKNOWN, "unknown"}, /* fall though value */
{GPK_UPDATE_ENUM_ALL, "all"},
@@ -254,34 +245,6 @@ static const PkEnumMatch enum_update[] = {
};
/**
- * gpk_freq_enum_from_text:
- * @freq: Text describing the enumerated type
- *
- * Converts a text enumerated type to its unsigned integer representation
- *
- * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
- **/
-GpkFreqEnum
-gpk_freq_enum_from_text (const gchar *freq)
-{
- return pk_enum_find_value (enum_freq, freq);
-}
-
-/**
- * gpk_freq_enum_to_text:
- * @freq: The enumerated type value
- *
- * Converts a enumerated type to its text representation
- *
- * Return value: the enumerated constant value, e.g. "available"
- **/
-const gchar *
-gpk_freq_enum_to_text (GpkFreqEnum freq)
-{
- return pk_enum_find_string (enum_freq, freq);
-}
-
-/**
* gpk_update_enum_from_text:
* @update: Text describing the enumerated type
*
@@ -1858,18 +1821,6 @@ gpk_enum_test (gpointer data)
}
egg_test_success (test, NULL);
-
- /************************************************************/
- egg_test_title (test, "check we convert all the freq bitfield");
- for (i=0; i<=GPK_FREQ_ENUM_UNKNOWN; i++) {
- string = gpk_freq_enum_to_text (i);
- if (string == NULL) {
- egg_test_failed (test, "failed to get %i", i);
- break;
- }
- }
- egg_test_success (test, NULL);
-
/************************************************************/
egg_test_title (test, "check we convert all the update bitfield");
for (i=0; i<=GPK_UPDATE_ENUM_UNKNOWN; i++) {
diff --git a/src/gpk-enum.h b/src/gpk-enum.h
index d38f929..c9f1160 100644
--- a/src/gpk-enum.h
+++ b/src/gpk-enum.h
@@ -28,19 +28,6 @@
G_BEGIN_DECLS
/**
- * GpkFreqEnum:
- *
- * The frequency type
- **/
-typedef enum {
- GPK_FREQ_ENUM_HOURLY,
- GPK_FREQ_ENUM_DAILY,
- GPK_FREQ_ENUM_WEEKLY,
- GPK_FREQ_ENUM_NEVER,
- GPK_FREQ_ENUM_UNKNOWN
-} GpkFreqEnum;
-
-/**
* GpkUpdateEnum:
*
* The update type
@@ -99,8 +86,6 @@ const gchar *gpk_role_enum_to_localised_past (PkRoleEnum role)
G_GNUC_CONST;
const gchar *gpk_role_enum_to_localised_present (PkRoleEnum role)
G_GNUC_CONST;
-GpkFreqEnum gpk_freq_enum_from_text (const gchar *freq);
-const gchar *gpk_freq_enum_to_text (GpkFreqEnum freq);
GpkUpdateEnum gpk_update_enum_from_text (const gchar *update);
const gchar *gpk_update_enum_to_text (GpkUpdateEnum update);
const gchar *gpk_role_enum_to_icon_name (PkRoleEnum role);
diff --git a/src/gpk-prefs.c b/src/gpk-prefs.c
index bfb02a4..7e54182 100644
--- a/src/gpk-prefs.c
+++ b/src/gpk-prefs.c
@@ -56,6 +56,11 @@
/* TRANSLATORS: don't update anything */
#define PK_UPDATE_NONE_TEXT _("Nothing")
+#define GPK_PREFS_VALUE_NEVER (0)
+#define GPK_PREFS_VALUE_HOURLY (60*60)
+#define GPK_PREFS_VALUE_DAILY (60*60*24)
+#define GPK_PREFS_VALUE_WEEKLY (60*60*24*7)
+
static GtkBuilder *builder = NULL;
/**
@@ -94,26 +99,24 @@ static void
gpk_prefs_update_freq_combo_changed (GtkWidget *widget, gpointer data)
{
gchar *value;
- const gchar *action;
- GpkFreqEnum freq = GPK_FREQ_ENUM_UNKNOWN;
+ guint freq = 0;
GConfClient *client;
client = gconf_client_get_default ();
value = gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget));
if (strcmp (value, PK_FREQ_HOURLY_TEXT) == 0)
- freq = GPK_FREQ_ENUM_HOURLY;
+ freq = GPK_PREFS_VALUE_HOURLY;
else if (strcmp (value, PK_FREQ_DAILY_TEXT) == 0)
- freq = GPK_FREQ_ENUM_DAILY;
+ freq = GPK_PREFS_VALUE_DAILY;
else if (strcmp (value, PK_FREQ_WEEKLY_TEXT) == 0)
- freq = GPK_FREQ_ENUM_WEEKLY;
+ freq = GPK_PREFS_VALUE_WEEKLY;
else if (strcmp (value, PK_FREQ_NEVER_TEXT) == 0)
- freq = GPK_FREQ_ENUM_NEVER;
+ freq = GPK_PREFS_VALUE_NEVER;
else
g_assert (FALSE);
- action = gpk_freq_enum_to_text (freq);
- egg_debug ("Changing %s to %s", GPK_CONF_FREQUENCY_GET_UPDATES, action);
- gconf_client_set_string (client, GPK_CONF_FREQUENCY_GET_UPDATES, action, NULL);
+ egg_debug ("Changing %s to %i", GPK_CONF_FREQUENCY_GET_UPDATES, freq);
+ gconf_client_set_int (client, GPK_CONF_FREQUENCY_GET_UPDATES, freq, NULL);
g_free (value);
g_object_unref (client);
}
@@ -125,24 +128,22 @@ static void
gpk_prefs_upgrade_freq_combo_changed (GtkWidget *widget, gpointer data)
{
gchar *value;
- const gchar *action;
- GpkFreqEnum freq = GPK_FREQ_ENUM_UNKNOWN;
+ guint freq = 0;
GConfClient *client;
client = gconf_client_get_default ();
value = gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget));
if (strcmp (value, PK_FREQ_DAILY_TEXT) == 0)
- freq = GPK_FREQ_ENUM_DAILY;
+ freq = GPK_PREFS_VALUE_DAILY;
else if (strcmp (value, PK_FREQ_WEEKLY_TEXT) == 0)
- freq = GPK_FREQ_ENUM_WEEKLY;
+ freq = GPK_PREFS_VALUE_WEEKLY;
else if (strcmp (value, PK_FREQ_NEVER_TEXT) == 0)
- freq = GPK_FREQ_ENUM_NEVER;
+ freq = GPK_PREFS_VALUE_NEVER;
else
g_assert (FALSE);
- action = gpk_freq_enum_to_text (freq);
- egg_debug ("Changing %s to %s", GPK_CONF_FREQUENCY_GET_UPGRADES, action);
- gconf_client_set_string (client, GPK_CONF_FREQUENCY_GET_UPGRADES, action, NULL);
+ egg_debug ("Changing %s to %i", GPK_CONF_FREQUENCY_GET_UPGRADES, freq);
+ gconf_client_set_int (client, GPK_CONF_FREQUENCY_GET_UPGRADES, freq, NULL);
g_free (value);
g_object_unref (client);
}
@@ -212,23 +213,16 @@ gpk_prefs_update_freq_combo_simple_text (GtkWidget *combo_box)
static void
gpk_prefs_update_freq_combo_setup (void)
{
- gchar *value;
+ guint value;
gboolean is_writable;
GtkWidget *widget;
- GpkFreqEnum freq;
GConfClient *client;
client = gconf_client_get_default ();
widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_check"));
is_writable = gconf_client_key_is_writable (client, GPK_CONF_FREQUENCY_GET_UPDATES, NULL);
- value = gconf_client_get_string (client, GPK_CONF_FREQUENCY_GET_UPDATES, NULL);
- if (value == NULL) {
- egg_warning ("invalid schema, please re-install");
- return;
- }
- egg_debug ("value from gconf %s", value);
- freq = gpk_freq_enum_from_text (value);
- g_free (value);
+ value = gconf_client_get_int (client, GPK_CONF_FREQUENCY_GET_UPDATES, NULL);
+ egg_debug ("value from gconf %i", value);
g_object_unref (client);
/* do we have permission to write? */
@@ -240,8 +234,16 @@ gpk_prefs_update_freq_combo_setup (void)
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), PK_FREQ_DAILY_TEXT);
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), PK_FREQ_WEEKLY_TEXT);
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), PK_FREQ_NEVER_TEXT);
- /* we can do this as it's the same order */
- gtk_combo_box_set_active (GTK_COMBO_BOX (widget), freq);
+
+ /* select the correct entry */
+ if (value == GPK_PREFS_VALUE_HOURLY)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
+ else if (value == GPK_PREFS_VALUE_DAILY)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1);
+ else if (value == GPK_PREFS_VALUE_WEEKLY)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2);
+ else if (value == GPK_PREFS_VALUE_NEVER)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 3);
/* only do this after else we redraw the window */
g_signal_connect (G_OBJECT (widget), "changed",
@@ -254,23 +256,16 @@ gpk_prefs_update_freq_combo_setup (void)
static void
gpk_prefs_upgrade_freq_combo_setup (void)
{
- gchar *value;
+ guint value;
gboolean is_writable;
GtkWidget *widget;
- GpkFreqEnum freq;
GConfClient *client;
client = gconf_client_get_default ();
widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_upgrade"));
is_writable = gconf_client_key_is_writable (client, GPK_CONF_FREQUENCY_GET_UPGRADES, NULL);
- value = gconf_client_get_string (client, GPK_CONF_FREQUENCY_GET_UPGRADES, NULL);
- if (value == NULL) {
- egg_warning ("invalid schema, please re-install");
- return;
- }
- egg_debug ("value from gconf %s", value);
- freq = gpk_freq_enum_from_text (value);
- g_free (value);
+ value = gconf_client_get_int (client, GPK_CONF_FREQUENCY_GET_UPGRADES, NULL);
+ egg_debug ("value from gconf %i", value);
g_object_unref (client);
/* do we have permission to write? */
@@ -281,8 +276,14 @@ gpk_prefs_upgrade_freq_combo_setup (void)
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), PK_FREQ_DAILY_TEXT);
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), PK_FREQ_WEEKLY_TEXT);
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), PK_FREQ_NEVER_TEXT);
- /* don't do daily */
- gtk_combo_box_set_active (GTK_COMBO_BOX (widget), freq - 1);
+
+ /* select the correct entry */
+ if (value == GPK_PREFS_VALUE_DAILY)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
+ else if (value == GPK_PREFS_VALUE_WEEKLY)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1);
+ else if (value == GPK_PREFS_VALUE_NEVER)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2);
/* only do this after else we redraw the window */
g_signal_connect (G_OBJECT (widget), "changed",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]