/** * gs_app_row_get_description: * * Return value: PangoMarkup **/ static GString * gs_app_row_get_description (GsAppRow *app_row) { GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row); const gchar *tmp = NULL; /* convert the markdown update description into PangoMarkup */ if (priv->show_update && (gs_app_get_state (priv->app) == AS_APP_STATE_UPDATABLE || gs_app_get_state (priv->app) == AS_APP_STATE_UPDATABLE_LIVE)) { tmp = gs_app_get_update_details (priv->app); if (tmp != NULL && tmp[0] != '\0') return g_string_new (tmp); } /* if missing summary is set, return it without escaping in order to * correctly show hyperlinks */ if (gs_app_get_state (priv->app) == AS_APP_STATE_UNAVAILABLE) { tmp = gs_app_get_summary_missing (priv->app); if (tmp != NULL && tmp[0] != '\0') return g_string_new (tmp); } /* try all these things in order */ if (tmp == NULL || (tmp != NULL && tmp[0] == '\0')) tmp = gs_app_get_description (priv->app); if (tmp == NULL || (tmp != NULL && tmp[0] == '\0')) tmp = gs_app_get_summary (priv->app); if (tmp == NULL || (tmp != NULL && tmp[0] == '\0')) tmp = gs_app_get_name (priv->app); if (tmp == NULL) return NULL; return g_string_new (tmp); }
gboolean gs_plugin_file_to_app (GsPlugin *plugin, GsAppList *list, GFile *file, GCancellable *cancellable, GError **error) { GsPluginData *priv = gs_plugin_get_data (plugin); g_autofree gchar *content_type = NULL; g_autofree gchar *filename = NULL; g_autoptr(GPtrArray) devices = NULL; const gchar *mimetypes[] = { "application/vnd.ms-cab-compressed", NULL }; /* does this match any of the mimetypes we support */ content_type = gs_utils_get_content_type (file, cancellable, error); if (content_type == NULL) return FALSE; if (!g_strv_contains (mimetypes, content_type)) return TRUE; /* get results */ filename = g_file_get_path (file); devices = fwupd_client_get_details (priv->client, filename, cancellable, error); if (devices == NULL) { gs_plugin_fwupd_error_convert (error); return FALSE; } for (guint i = 0; i < devices->len; i++) { FwupdDevice *dev = g_ptr_array_index (devices, i); g_autoptr(GsApp) app = NULL; /* create each app */ app = gs_plugin_fwupd_new_app_from_device (plugin, dev); /* we have no update view for local files */ gs_app_set_version (app, gs_app_get_update_version (app)); gs_app_set_description (app, GS_APP_QUALITY_NORMAL, gs_app_get_update_details (app)); gs_app_list_add (list, app); } return TRUE; }