AppInfoT

Information about an installed application and methods to launch it (with file arguments).

gio.app_info.AppInfo and gio.app_launch_context.AppLaunchContext are used for describing and launching applications installed on the system.

As of GLib 2.20, URIs will always be converted to POSIX paths (using gio.file.File.getPath) when using gio.app_info.AppInfo.launch even if the application requested an URI and not a POSIX path. For example for a desktop-file based application with Exec key `totem U and a single URI, sftp://foo/file.avi`, then /home/user/.gvfs/sftp on foo/file.avi will be passed. This will only work if a set of suitable GIO extensions (such as GVfs 2.26 compiled with FUSE support), is available and operational; if this is not the case, the URI will be passed unmodified to the application. Some URIs, such as mailto:, of course cannot be mapped to a POSIX path (in GVfs there's no FUSE mount for it); such URIs will be passed unmodified to the application.

Specifically for GVfs 2.26 and later, the POSIX URI will be mapped back to the GIO URI in the gio.file.File constructors (since GVfs implements the GVfs extension point). As such, if the application needs to examine the URI, it needs to use gio.file.File.getUri or similar on gio.file.File. In other words, an application cannot assume that the URI passed to e.g. gio.file.File.newForCommandlineArg is equal to the result of gio.file.File.getUri. The following snippet illustrates this:

GFile *f;
char *uri;

file = g_file_new_for_commandline_arg (uri_from_commandline);

uri = g_file_get_uri (file);
strcmp (uri, uri_from_commandline) == 0;
g_free (uri);

if (g_file_has_uri_scheme (file, "cdda"))
  {
    // do something special with uri
  }
g_object_unref (file);

This code will work when both cdda://sr0/Track 1.wav and /home/user/.gvfs/cdda on sr0/Track 1.wav is passed to the application. It should be noted that it's generally not safe for applications to rely on the format of a particular URIs. Different launcher applications (e.g. file managers) may have different ideas of what a given URI means.

Members

Functions

addSupportsType
bool addSupportsType(string contentType)

Adds a content type to the application information to indicate the application is capable of opening files with the given content type.

canDelete
bool canDelete()

Obtains the information whether the #GAppInfo can be deleted. See gio.app_info.AppInfo.delete_.

canRemoveSupportsType
bool canRemoveSupportsType()

Checks if a supported content type can be removed from an application.

delete_
bool delete_()

Tries to delete a #GAppInfo.

dup
gio.app_info.AppInfo dup()

Creates a duplicate of a #GAppInfo.

equal
bool equal(gio.app_info.AppInfo appinfo2)

Checks if two #GAppInfos are equal.

getCommandline
string getCommandline()

Gets the commandline with which the application will be started.

getDescription
string getDescription()

Gets a human-readable description of an installed application.

getDisplayName
string getDisplayName()

Gets the display name of the application. The display name is often more descriptive to the user than the name itself.

getExecutable
string getExecutable()

Gets the executable's name for the installed application.

getIcon
gio.icon.Icon getIcon()

Gets the icon for the application.

getId
string getId()

Gets the ID of an application. An id is a string that identifies the application. The exact format of the id is platform dependent. For instance, on Unix this is the desktop file id from the xdg menu specification.

getName
string getName()

Gets the installed name of the application.

getSupportedTypes
string[] getSupportedTypes()

Retrieves the list of content types that app_info claims to support. If this information is not provided by the environment, this function will return null. This function does not take in consideration associations added with gio.app_info.AppInfo.addSupportsType, but only those exported directly by the application.

launch
bool launch(gio.file.File[] files, gio.app_launch_context.AppLaunchContext context)

Launches the application. Passes files to the launched application as arguments, using the optional context to get information about the details of the launcher (like what screen it is on). On error, error will be set accordingly.

launchUris
bool launchUris(string[] uris, gio.app_launch_context.AppLaunchContext context)

Launches the application. This passes the uris to the launched application as arguments, using the optional context to get information about the details of the launcher (like what screen it is on). On error, error will be set accordingly. If the application only supports one URI per invocation as part of their command-line, multiple instances of the application will be spawned.

launchUrisAsync
void launchUrisAsync(string[] uris, gio.app_launch_context.AppLaunchContext context, gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Async version of gio.app_info.AppInfo.launchUris.

launchUrisFinish
bool launchUrisFinish(gio.async_result.AsyncResult result)

Finishes a gio.app_info.AppInfo.launchUrisAsync operation.

removeSupportsType
bool removeSupportsType(string contentType)

Removes a supported type from an application, if possible.

setAsDefaultForExtension
bool setAsDefaultForExtension(string extension)

Sets the application as the default handler for the given file extension.

setAsDefaultForType
bool setAsDefaultForType(string contentType)

Sets the application as the default handler for a given type.

setAsLastUsedForType
bool setAsLastUsedForType(string contentType)

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 gio.app_info.AppInfo.getRecommendedForType, regardless of the default application for that content type.

shouldShow
bool shouldShow()

Checks if the application info should be shown in menus that list available applications.

supportsFiles
bool supportsFiles()

Checks if the application accepts files as arguments.

supportsUris
bool supportsUris()

Checks if the application supports reading files and directories from URIs.