[]Struct gio::AppInfo

pub struct AppInfo(_, _);

AppInfo and 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 File::get_path) when using 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 File constructors (since gvfs implements the Vfs extension point). As such, if the application needs to examine the URI, it needs to use File::get_uri or similar on File. In other words, an application cannot assume that the URI passed to e.g. File::new_for_commandline_arg is equal to the result of File::get_uri. 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.

Implements

AppInfoExt, AppInfoExtManual

Implementations

impl AppInfo[src]

pub fn create_from_commandline<P: AsRef<OsStr>>(
    commandline: P,
    application_name: Option<&str>,
    flags: AppInfoCreateFlags
) -> Result<AppInfo, Error>
[src]

Creates a new AppInfo from the given information.

Note that for commandline, the quoting rules of the Exec key of the freedesktop.org Desktop Entry Specification are applied. For example, if the commandline contains percent-encoded URIs, the percent-character must be doubled in order to prevent it from being swallowed by Exec key unquoting. See the specification for exact quoting rules.

commandline

the commandline to use

application_name

the application name, or None to use commandline

flags

flags that can specify details of the created AppInfo

Returns

new AppInfo for given command.

pub fn get_all() -> Vec<AppInfo>[src]

Gets a list of all of the applications currently registered on this system.

For desktop files, this includes applications that have NoDisplay=true set or are excluded from display by means of OnlyShowIn or NotShowIn. See AppInfo::should_show. The returned list does not include applications which have the Hidden key set.

Returns

a newly allocated glib::List of references to GAppInfos.

pub fn get_all_for_type(content_type: &str) -> Vec<AppInfo>[src]

Gets a list of all GAppInfos for a given content type, including the recommended and fallback GAppInfos. See AppInfo::get_recommended_for_type and AppInfo::get_fallback_for_type.

content_type

the content type to find a AppInfo for

Returns

glib::List of GAppInfos for given content_type or None on error.

pub fn get_default_for_type(
    content_type: &str,
    must_support_uris: bool
) -> Option<AppInfo>
[src]

Gets the default AppInfo for a given content type.

content_type

the content type to find a AppInfo for

must_support_uris

if true, the AppInfo is expected to support URIs

Returns

AppInfo for given content_type or None on error.

pub fn get_default_for_uri_scheme(uri_scheme: &str) -> Option<AppInfo>[src]

Gets the default application for handling URIs with the given URI scheme. A URI scheme is the initial part of the URI, up to but not including the ':', e.g. "http", "ftp" or "sip".

uri_scheme

a string containing a URI scheme.

Returns

AppInfo for given uri_scheme or None on error.

pub fn get_fallback_for_type(content_type: &str) -> Vec<AppInfo>[src]

Gets a list of fallback GAppInfos for a given content type, i.e. those applications which claim to support the given content type by MIME type subclassing and not directly.

content_type

the content type to find a AppInfo for

Returns

glib::List of GAppInfos for given content_type or None on error.

Gets a list of recommended GAppInfos for a given content type, i.e. those applications which claim to support the given content type exactly, and not by MIME type subclassing. Note that the first application of the list is the last used one, i.e. the last one for which AppInfo::set_as_last_used_for_type has been called.

content_type

the content type to find a AppInfo for

Returns

glib::List of GAppInfos for given content_type or None on error.

pub fn launch_default_for_uri<P: IsA<AppLaunchContext>>(
    uri: &str,
    context: Option<&P>
) -> Result<(), Error>
[src]

Utility function that launches the default application registered to handle the specified uri. Synchronous I/O is done on the uri to detect the type of the file if required.

The D-Bus–activated applications don't have to be started if your application terminates too soon after this function. To prevent this, use AppInfo::launch_default_for_uri_async instead.

uri

the uri to show

context

an optional AppLaunchContext

Returns

true on success, false on error.

pub fn launch_default_for_uri_async<P: IsA<AppLaunchContext>, Q: IsA<Cancellable>, R: FnOnce(Result<(), Error>) + Send + 'static>(
    uri: &str,
    context: Option<&P>,
    cancellable: Option<&Q>,
    callback: R
)
[src]

Async version of AppInfo::launch_default_for_uri.

This version is useful if you are interested in receiving error information in the case where the application is sandboxed and the portal may present an application chooser dialog to the user.

This is also useful if you want to be sure that the D-Bus–activated applications are really started before termination and if you are interested in receiving error information from their activation.

Feature: v2_50

uri

the uri to show

context

an optional AppLaunchContext

cancellable

a Cancellable

callback

a GAsyncReadyCallback to call when the request is done

user_data

data to pass to callback

pub fn launch_default_for_uri_async_future<P: IsA<AppLaunchContext> + Clone + 'static>(
    uri: &str,
    context: Option<&P>
) -> Pin<Box_<dyn Future<Output = Result<(), Error>> + 'static>>
[src]

pub fn reset_type_associations(content_type: &str)[src]

Removes all changes to the type associations done by AppInfo::set_as_default_for_type, AppInfo::set_as_default_for_extension, AppInfo::add_supports_type or AppInfo::remove_supports_type.

content_type

a content type

Trait Implementations

impl Clone for AppInfo

impl Debug for AppInfo

impl Display for AppInfo[src]

impl Eq for AppInfo

impl Hash for AppInfo

impl IsA<AppInfo> for DesktopAppInfo

impl Ord for AppInfo

impl<T: ObjectType> PartialEq<T> for AppInfo

impl<T: ObjectType> PartialOrd<T> for AppInfo

impl StaticType for AppInfo

Auto Trait Implementations

impl RefUnwindSafe for AppInfo

impl !Send for AppInfo

impl !Sync for AppInfo

impl Unpin for AppInfo

impl UnwindSafe for AppInfo

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<Super, Sub> CanDowncast<Sub> for Super where
    Sub: IsA<Super>,
    Super: IsA<Super>, 

impl<T> Cast for T where
    T: ObjectType, 

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ObjectExt for T where
    T: ObjectType, 

impl<'a, T> ToGlibContainerFromSlice<'a, *const GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<List>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<'a, T> ToGlibContainerFromSlice<'a, *const GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<PtrArray>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<Array>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<List>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<PtrArray>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToSendValue for T where
    T: ToValue + SetValue + Send + ?Sized

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> ToValue for T where
    T: SetValue + ?Sized

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.