gi-gio-2.0.29: Gio bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Gio.Objects.AppInfoMonitor

Description

AppInfoMonitor is a very simple object used for monitoring the app info database for changes (ie: newly installed or removed applications).

Call appInfoMonitorGet to get a AppInfoMonitor and connect to the "changed" signal.

In the usual case, applications should try to make note of the change (doing things like invalidating caches) but not act on it. In particular, applications should avoid making calls to AppInfo APIs in response to the change signal, deferring these until the time that the data is actually required. The exception to this case is when application information is actually being displayed on the screen (eg: during a search or when the list of all applications is shown). The reason for this is that changes to the list of installed applications often come in groups (like during system updates) and rescanning the list on every change is pointless and expensive.

Since: 2.40

Synopsis

Exported types

class (GObject o, IsDescendantOf AppInfoMonitor o) => IsAppInfoMonitor o Source #

Type class for types which can be safely cast to AppInfoMonitor, for instance with toAppInfoMonitor.

Instances

Instances details
(GObject o, IsDescendantOf AppInfoMonitor o) => IsAppInfoMonitor o Source # 
Instance details

Defined in GI.Gio.Objects.AppInfoMonitor

toAppInfoMonitor :: (MonadIO m, IsAppInfoMonitor o) => o -> m AppInfoMonitor Source #

Cast to AppInfoMonitor, for types for which this is known to be safe. For general casts, use castTo.

Methods

get

appInfoMonitorGet Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m AppInfoMonitor

Returns: a reference to a AppInfoMonitor

Gets the AppInfoMonitor for the current thread-default main context.

The AppInfoMonitor will emit a "changed" signal in the thread-default main context whenever the list of installed applications (as reported by appInfoGetAll) may have changed.

You must only call objectUnref on the return value from under the same main context as you created it.

Since: 2.40

Signals

changed

type AppInfoMonitorChangedCallback = IO () Source #

Signal emitted when the app info database for changes (ie: newly installed or removed applications).

afterAppInfoMonitorChanged :: (IsAppInfoMonitor a, MonadIO m) => a -> ((?self :: a) => AppInfoMonitorChangedCallback) -> m SignalHandlerId Source #

Connect a signal handler for the changed signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after appInfoMonitor #changed callback

By default the object invoking the signal is not passed to the callback. If you need to access it, you can use the implit ?self parameter. Note that this requires activating the ImplicitParams GHC extension.

onAppInfoMonitorChanged :: (IsAppInfoMonitor a, MonadIO m) => a -> ((?self :: a) => AppInfoMonitorChangedCallback) -> m SignalHandlerId Source #

Connect a signal handler for the changed signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on appInfoMonitor #changed callback