[frogr] Allow loading/saving default license type into config



commit cdc58c2e19875cce8dc6fbc28d52aab6ac5d99fd
Author: Mario Sanchez Prada <msanchez igalia com>
Date:   Sat Jul 9 02:41:59 2011 +0200

    Allow loading/saving default license type into config

 src/frogr-config.c |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/frogr-config.h |    5 ++++
 2 files changed, 58 insertions(+), 0 deletions(-)
---
diff --git a/src/frogr-config.c b/src/frogr-config.c
index 2eee732..ca8207d 100644
--- a/src/frogr-config.c
+++ b/src/frogr-config.c
@@ -54,6 +54,7 @@ struct _FrogrConfigPrivate
   gboolean friend;
   gboolean show_in_search;
 
+  FspLicense license;
   FspSafetyLevel safety_level;
   FspContentType content_type;
 
@@ -169,6 +170,26 @@ _load_settings (FrogrConfig *self, const gchar *config_dir)
           if (node->type != XML_ELEMENT_NODE)
             continue;
 
+          if (!xmlStrcmp (node->name, (const xmlChar*) "default-license"))
+            {
+              xmlChar *content = NULL;
+
+              content = xmlNodeGetContent (node);
+              if (content)
+                {
+                  gint code = 0;
+
+                  code = (gint) g_ascii_strtoll ((gchar *) content, NULL, 10);
+
+                  if (code < FSP_LICENSE_NONE || code >= FSP_LICENSE_LAST)
+                    priv->license = FSP_LICENSE_NONE;
+                  else
+                    priv->license = (FspLicense) code;
+
+                  xmlFree (content);
+                }
+            }
+
           if (!xmlStrcmp (node->name, (const xmlChar*) "default-content-type"))
             {
               xmlChar *content = NULL;
@@ -615,6 +636,9 @@ _save_settings (FrogrConfig *self)
   _xml_add_bool_child (node, "show-in-search", priv->show_in_search);
   xmlAddChild (root, node);
 
+  /* Default license */
+  _xml_add_int_child (root, "default-license", priv->license);
+
   /* Default content type and safety level */
   _xml_add_int_child (root, "default-content-type", priv->content_type);
   _xml_add_int_child (root, "default-safety-level", priv->safety_level);
@@ -876,6 +900,7 @@ frogr_config_init (FrogrConfig *self)
   priv->family = FALSE;
   priv->friend = FALSE;
   priv->show_in_search = TRUE;
+  priv->license = FSP_LICENSE_NONE;
   priv->safety_level = FSP_SAFETY_LEVEL_SAFE;
   priv->content_type = FSP_CONTENT_TYPE_PHOTO;
   priv->tags_autocompletion = TRUE;
@@ -1102,6 +1127,34 @@ frogr_config_get_default_friend (FrogrConfig *self)
 }
 
 void
+frogr_config_set_default_license (FrogrConfig *self,
+                                  FspLicense license)
+{
+  FrogrConfigPrivate * priv = NULL;
+
+  g_return_if_fail (FROGR_IS_CONFIG (self));
+
+  priv = FROGR_CONFIG_GET_PRIVATE (self);
+
+  /* Check out of bounds values */
+  if (license < FSP_LICENSE_NONE || license >= FSP_LICENSE_LAST)
+    priv->license = FSP_LICENSE_NONE;
+  else
+    priv->license = license;
+}
+
+FspLicense
+frogr_config_get_default_license (FrogrConfig *self)
+{
+  FrogrConfigPrivate *priv = NULL;
+
+  g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
+
+  priv = FROGR_CONFIG_GET_PRIVATE (self);
+  return priv->license;
+}
+
+void
 frogr_config_set_default_safety_level (FrogrConfig *self,
                                        FspSafetyLevel safety_level)
 {
diff --git a/src/frogr-config.h b/src/frogr-config.h
index 88b2846..2b59506 100644
--- a/src/frogr-config.h
+++ b/src/frogr-config.h
@@ -93,6 +93,11 @@ void frogr_config_set_default_friend (FrogrConfig *self, gboolean value);
 
 gboolean frogr_config_get_default_friend (FrogrConfig *self);
 
+void frogr_config_set_default_license (FrogrConfig *self,
+                                       FspLicense license);
+
+FspLicense frogr_config_get_default_license (FrogrConfig *self);
+
 void frogr_config_set_default_safety_level (FrogrConfig *self,
                                             FspSafetyLevel safety_level);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]