summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2017-05-04 16:10:10 +0100
committerRichard Hughes <richard@hughsie.com>2017-05-04 16:10:10 +0100
commita17802cc13f686547d60dd32dcc2656b80090854 (patch)
tree11de6d80eeb2eaec147dcf220293d184c2aa0b49
parenta2b0c4e201b78c4a035edf47b8d47a830d2f0977 (diff)
downloadappstream-glib-a17802cc13f686547d60dd32dcc2656b80090854.tar.gz
Add as_app_remove_kudo()
This allows us to remove previously-added kudos.
-rw-r--r--libappstream-glib/as-app.c22
-rw-r--r--libappstream-glib/as-app.h2
2 files changed, 24 insertions, 0 deletions
diff --git a/libappstream-glib/as-app.c b/libappstream-glib/as-app.c
index 6b60afa..bb8039f 100644
--- a/libappstream-glib/as-app.c
+++ b/libappstream-glib/as-app.c
@@ -2919,6 +2919,28 @@ as_app_add_kudo (AsApp *app, const gchar *kudo)
}
/**
+ * as_app_remove_kudo:
+ * @app: a #AsApp instance.
+ * @kudo: the kudo.
+ *
+ * Remove a kudo the application has obtained.
+ *
+ * Since: 0.6.13
+ **/
+void
+as_app_remove_kudo (AsApp *app, const gchar *kudo)
+{
+ AsAppPrivate *priv = GET_PRIVATE (app);
+ for (guint i = 0; i < priv->kudos->len; i++) {
+ const gchar *tmp = g_ptr_array_index (priv->kudos, i);
+ if (g_strcmp0 (tmp, kudo) == 0) {
+ g_ptr_array_remove (priv->kudos, (gpointer) tmp);
+ break;
+ }
+ }
+}
+
+/**
* as_app_add_permission:
* @app: a #AsApp instance.
* @permission: the permission.
diff --git a/libappstream-glib/as-app.h b/libappstream-glib/as-app.h
index 35c3849..d2ed773 100644
--- a/libappstream-glib/as-app.h
+++ b/libappstream-glib/as-app.h
@@ -618,6 +618,8 @@ void as_app_add_keyword (AsApp *app,
const gchar *keyword);
void as_app_add_kudo (AsApp *app,
const gchar *kudo);
+void as_app_remove_kudo (AsApp *app,
+ const gchar *kudo);
void as_app_add_kudo_kind (AsApp *app,
AsKudoKind kudo_kind);
void as_app_add_permission (AsApp *app,