[gnome-software] Use package descriptions for applications on Ubuntu and Debian



commit 5ad9cba3c9161720da1926b68f25223b04558941
Author: Richard Hughes <richard hughsie com>
Date:   Wed Mar 26 14:37:35 2014 +0000

    Use package descriptions for applications on Ubuntu and Debian
    
    They are typically untranslated and not very good, but they are the best of
    what we can get.

 src/gs-plugin.h                           |    1 +
 src/plugins/gs-plugin-appstream.c         |    6 ++++++
 src/plugins/gs-plugin-packagekit-refine.c |   23 +++++++++++++++++------
 3 files changed, 24 insertions(+), 6 deletions(-)
---
diff --git a/src/gs-plugin.h b/src/gs-plugin.h
index ffde42d..76d4a48 100644
--- a/src/gs-plugin.h
+++ b/src/gs-plugin.h
@@ -63,6 +63,7 @@ struct GsPlugin {
        gdouble                  priority;      /* largest number gets run first */
        const gchar             **deps;         /* allow-none */
        gboolean                 enabled;
+       gboolean                 use_pkg_descriptions;
        gchar                   *name;
        GsPluginPrivate         *priv;
        guint                    pixbuf_size;
diff --git a/src/plugins/gs-plugin-appstream.c b/src/plugins/gs-plugin-appstream.c
index 0dac754..a3ab114 100644
--- a/src/plugins/gs-plugin-appstream.c
+++ b/src/plugins/gs-plugin-appstream.c
@@ -103,6 +103,12 @@ gs_plugin_initialize (GsPlugin *plugin)
        g_signal_connect (plugin->priv->store, "changed",
                          G_CALLBACK (gs_plugin_appstream_store_changed_cb),
                          plugin);
+
+       /* AppInstall does not ever give us a long description */
+       if (gs_plugin_check_distro_id (plugin, "debian") ||
+           gs_plugin_check_distro_id (plugin, "ubuntu")) {
+               plugin->use_pkg_descriptions = TRUE;
+       }
 }
 
 /**
diff --git a/src/plugins/gs-plugin-packagekit-refine.c b/src/plugins/gs-plugin-packagekit-refine.c
index 51dcb8e..fd9195c 100644
--- a/src/plugins/gs-plugin-packagekit-refine.c
+++ b/src/plugins/gs-plugin-packagekit-refine.c
@@ -571,6 +571,21 @@ out:
 }
 
 /**
+ * gs_plugin_refine_app_needs_details:
+ */
+static gboolean
+gs_plugin_refine_app_needs_details (GsPlugin *plugin, GsApp *app)
+{
+       if (gs_app_get_licence (app) == NULL)
+               return TRUE;
+       if (gs_app_get_url (app, GS_APP_URL_KIND_HOMEPAGE) == NULL)
+               return TRUE;
+       if (gs_app_get_description (app) == NULL && plugin->use_pkg_descriptions)
+               return TRUE;
+       return FALSE;
+}
+
+/**
  * gs_plugin_refine_require_details:
  */
 static gboolean
@@ -587,14 +602,10 @@ gs_plugin_refine_require_details (GsPlugin *plugin,
        gs_profile_start (plugin->profile, "packagekit-refine[source->licence]");
        for (l = list; l != NULL; l = l->next) {
                app = GS_APP (l->data);
-               if (gs_app_get_licence (app) != NULL &&
-                   gs_app_get_url (app, GS_APP_URL_KIND_HOMEPAGE) != NULL &&
-                   gs_app_get_size (app) != 0 &&
-                   (gs_app_get_description (app) != NULL ||
-                    g_getenv ("GNOME_SOFTWARE_USE_PKG_DESCRIPTIONS") == NULL))
-                       continue;
                if (gs_app_get_source_id_default (app) == NULL)
                        continue;
+               if (!gs_plugin_refine_app_needs_details (plugin, app))
+                       continue;
                list_tmp = g_list_prepend (list_tmp, app);
        }
        if (list_tmp == NULL)


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