mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-01 15:03:39 +02:00
appinfo: add g_app_info_set_as_last_used_for_type()
This commit also changes (maintaining compatibility) the way user-specified default applications are stored (as in, those for which g_app_info_set_as_default_for_type() has been called. We now store the default application for a content type in a new group in the mimeapps.list keyfile, and "Added Associations" tracks only the applications that have been added by the user, following a most-recently-used first order. This is useful in GtkAppChooser-like widgets to pre-select the last used application when constructing a widget. https://bugzilla.gnome.org/show_bug.cgi?id=636311
This commit is contained in:
@@ -308,6 +308,33 @@ g_app_info_set_as_default_for_type (GAppInfo *appinfo,
|
||||
return (* iface->set_as_default_for_type) (appinfo, content_type, error);
|
||||
}
|
||||
|
||||
/**
|
||||
* g_app_info_set_as_last_used_for_type:
|
||||
* @appinfo: a #GAppInfo.
|
||||
* @content_type: the content type.
|
||||
* @error: a #GError.
|
||||
*
|
||||
* Sets the application as the last used application for a given type.
|
||||
* This will make the application appear as first in the list returned by
|
||||
* #g_app_info_get_recommended_for_type, regardless of the default application
|
||||
* for that content type.
|
||||
*
|
||||
* Returns: %TRUE on success, %FALSE on error.
|
||||
**/
|
||||
gboolean
|
||||
g_app_info_set_as_last_used_for_type (GAppInfo *appinfo,
|
||||
const char *content_type,
|
||||
GError **error)
|
||||
{
|
||||
GAppInfoIface *iface;
|
||||
|
||||
g_return_val_if_fail (G_IS_APP_INFO (appinfo), FALSE);
|
||||
g_return_val_if_fail (content_type != NULL, FALSE);
|
||||
|
||||
iface = G_APP_INFO_GET_IFACE (appinfo);
|
||||
|
||||
return (* iface->set_as_last_used_for_type) (appinfo, content_type, error);
|
||||
}
|
||||
|
||||
/**
|
||||
* g_app_info_set_as_default_for_extension:
|
||||
|
Reference in New Issue
Block a user