diff options
author | Richard Hughes <richard@hughsie.com> | 2016-03-28 11:14:36 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2016-03-28 11:14:36 +0100 |
commit | ad0a71f4fe0799d5ed71db6e9cc917a0d0e1faf3 (patch) | |
tree | 7d9553e6ce64f73a4d4d66dbcfeee117570188b4 | |
parent | e4195bff42f86534a638069b3fb34ac0589d3b02 (diff) | |
download | appstream-glib-ad0a71f4fe0799d5ed71db6e9cc917a0d0e1faf3.tar.gz |
Add as_app_has_compulsory_for_desktop()
-rw-r--r-- | libappstream-glib/as-app.c | 26 | ||||
-rw-r--r-- | libappstream-glib/as-app.h | 2 | ||||
-rw-r--r-- | libappstream-glib/as-self-test.c | 2 |
3 files changed, 30 insertions, 0 deletions
diff --git a/libappstream-glib/as-app.c b/libappstream-glib/as-app.c index 6ea424f..3e913aa 100644 --- a/libappstream-glib/as-app.c +++ b/libappstream-glib/as-app.c @@ -615,6 +615,32 @@ as_app_get_compulsory_for_desktops (AsApp *app) } /** + * as_app_has_compulsory_for_desktop: + * @app: a #AsApp instance. + * @desktop: a desktop string, e.g. "GNOME" + * + * Searches the compulsory for desktop list for a specific item. + * + * Returns: %TRUE if the application is compulsory for a specific desktop + * + * Since: 0.5.12 + */ +gboolean +as_app_has_compulsory_for_desktop (AsApp *app, const gchar *desktop) +{ + AsAppPrivate *priv = GET_PRIVATE (app); + const gchar *tmp; + guint i; + + for (i = 0; i < priv->compulsory_for_desktops->len; i++) { + tmp = g_ptr_array_index (priv->compulsory_for_desktops, i); + if (g_strcmp0 (tmp, desktop) == 0) + return TRUE; + } + return FALSE; +} + +/** * as_app_has_permission: * @app: a #AsApp instance. * @permission: a permission string, e.g. "Network" diff --git a/libappstream-glib/as-app.h b/libappstream-glib/as-app.h index 2075a8d..e003a77 100644 --- a/libappstream-glib/as-app.h +++ b/libappstream-glib/as-app.h @@ -337,6 +337,8 @@ gboolean as_app_has_kudo_kind (AsApp *app, AsKudoKind kudo); gboolean as_app_has_permission (AsApp *app, const gchar *permission); +gboolean as_app_has_compulsory_for_desktop (AsApp *app, + const gchar *permission); gboolean as_app_has_quirk (AsApp *app, AsAppQuirk quirk); diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c index 08261c7..453884c 100644 --- a/libappstream-glib/as-self-test.c +++ b/libappstream-glib/as-self-test.c @@ -1502,6 +1502,8 @@ as_test_app_func (void) g_assert (as_app_has_permission (app, "Network")); g_assert (!as_app_has_kudo (app, "MagicValue")); g_assert (!as_app_has_kudo_kind (app, AS_KUDO_KIND_USER_DOCS)); + g_assert (as_app_has_compulsory_for_desktop (app, "GNOME")); + g_assert (!as_app_has_compulsory_for_desktop (app, "KDE")); as_node_unref (root); /* check newest release */ |