Struct gio::AppInfo [−][src]
pub struct AppInfo(_);
Expand description
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 FileExt::path()
) when using AppInfoExt::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 FileExt::uri()
or
similar on File
. In other words, an application cannot assume
that the URI passed to e.g. File::for_commandline_arg()
is
equal to the result of FileExt::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
Implementations
pub fn create_from_commandline<P: AsRef<OsStr>>(
commandline: P,
application_name: Option<&str>,
flags: AppInfoCreateFlags
) -> Result<AppInfo, Error>
pub fn create_from_commandline<P: AsRef<OsStr>>(
commandline: P,
application_name: Option<&str>,
flags: AppInfoCreateFlags
) -> Result<AppInfo, Error>
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.
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 AppInfoExt::should_show()
.
The returned list does not include applications which have
the Hidden
key set.
Returns
a newly allocated GList
of references to GAppInfos
.
Gets a list of all GAppInfos
for a given content type,
including the recommended and fallback GAppInfos
. See
recommended_for_type()
and
fallback_for_type()
.
content_type
the content type to find a AppInfo
for
Returns
GList
of GAppInfos
for given content_type
or None
on error.
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
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
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
GList
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 AppInfoExt::set_as_last_used_for_type()
has been
called.
content_type
the content type to find a AppInfo
for
Returns
GList
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>
pub fn launch_default_for_uri<P: IsA<AppLaunchContext>>(
uri: &str,
context: Option<&P>
) -> Result<(), Error>
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
launch_default_for_uri_async()
instead.
uri
the uri to show
context
an optional AppLaunchContext
Returns
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
)
This is supported on crate feature v2_50
only.
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
)
v2_50
only.Async version of 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.
uri
the uri to show
context
an optional AppLaunchContext
cancellable
callback
a GAsyncReadyCallback
to call when the request is done
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>>
v2_50
only.Removes all changes to the type associations done by
AppInfoExt::set_as_default_for_type()
,
AppInfoExt::set_as_default_for_extension()
,
AppInfoExt::add_supports_type()
or
AppInfoExt::remove_supports_type()
.
content_type
a content type
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the type identifier of Self
.
Auto Trait Implementations
impl RefUnwindSafe for AppInfo
impl UnwindSafe for AppInfo
Blanket Implementations
Mutably borrows from an owned value. Read more
Upcasts an object to a superclass or interface T
. Read more
Upcasts an object to a reference of its superclass or interface T
. Read more
Tries to downcast to a subclass or interface implementor T
. Read more
Tries to downcast to a reference of its subclass or interface implementor T
. Read more
Tries to cast to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Tries to cast to reference to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Casts to T
unconditionally. Read more
Casts to &T
unconditionally. Read more
Returns true
if the object is an instance of (can be cast to) T
.
pub fn set_properties_from_value(
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>
pub fn set_property<'a, N, V>(
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
V: ToValue,
N: Into<&'a str>,
pub fn set_property_from_value<'a, N>(
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>,
Safety Read more
Safety Read more
Safety Read more
Safety Read more
pub fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
pub fn connect_notify_local<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec),
pub unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
pub fn has_property<'a, N>(&self, property_name: N, type_: Option<Type>) -> bool where
N: Into<&'a str>,
pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
N: Into<&'a str>,
pub fn connect<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
N: Into<&'a str>,
Same as connect
but takes a SignalId
instead of a signal name.
pub fn connect_local<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static,
N: Into<&'a str>,
Same as connect_local
but takes a SignalId
instead of a signal name.
pub unsafe fn connect_unsafe<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>,
N: Into<&'a str>,
Same as connect_unsafe
but takes a SignalId
instead of a signal name.
Emit signal by signal id.
Emit signal with details by signal id.
Emit signal by it’s name.
pub fn bind_property<'a, O, N, M>(
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>,
Same as emit
but takes Value
for the arguments.
Same as emit_by_name
but takes Value
for the arguments.
Returns a SendValue
clone of self
.
impl<'a, T, C> FromValueOptional<'a> for T where
C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,
T: FromValue<'a, Checker = C>,