Browse Source

QDict: Introduce qdict_get_try_bool()

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Luiz Capitulino 15 years ago
parent
commit
35006ac856
2 changed files with 19 additions and 0 deletions
  1. 18 0
      qdict.c
  2. 1 0
      qdict.h

+ 18 - 0
qdict.c

@@ -307,6 +307,24 @@ int64_t qdict_get_try_int(const QDict *qdict, const char *key,
     return qint_get_int(qobject_to_qint(obj));
     return qint_get_int(qobject_to_qint(obj));
 }
 }
 
 
+/**
+ * qdict_get_try_bool(): Try to get a bool mapped by 'key'
+ *
+ * Return bool mapped by 'key', if it is not present in the
+ * dictionary or if the stored object is not of QBool type
+ * 'def_value' will be returned.
+ */
+int qdict_get_try_bool(const QDict *qdict, const char *key, int def_value)
+{
+    QObject *obj;
+
+    obj = qdict_get(qdict, key);
+    if (!obj || qobject_type(obj) != QTYPE_QBOOL)
+        return def_value;
+
+    return qbool_get_int(qobject_to_qbool(obj));
+}
+
 /**
 /**
  * qdict_get_try_str(): Try to get a pointer to the stored string
  * qdict_get_try_str(): Try to get a pointer to the stored string
  * mapped by 'key'
  * mapped by 'key'

+ 1 - 0
qdict.h

@@ -61,6 +61,7 @@ QDict *qdict_get_qdict(const QDict *qdict, const char *key);
 const char *qdict_get_str(const QDict *qdict, const char *key);
 const char *qdict_get_str(const QDict *qdict, const char *key);
 int64_t qdict_get_try_int(const QDict *qdict, const char *key,
 int64_t qdict_get_try_int(const QDict *qdict, const char *key,
                           int64_t def_value);
                           int64_t def_value);
+int qdict_get_try_bool(const QDict *qdict, const char *key, int def_value);
 const char *qdict_get_try_str(const QDict *qdict, const char *key);
 const char *qdict_get_try_str(const QDict *qdict, const char *key);
 
 
 #endif /* QDICT_H */
 #endif /* QDICT_H */