[gnome-software] Use package descriptions for applications on Ubuntu and Debian
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Use package descriptions for applications on Ubuntu and Debian
- Date: Wed, 26 Mar 2014 14:44:33 +0000 (UTC)
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]