AppInfoMonitor#
Added in version 2.40.
Superclasses: Object
GAppInfoMonitor
monitors application information for changes.
GAppInfoMonitor
is a very simple object used for monitoring the app
info database for changes (newly installed or removed applications).
Call get
to get a GAppInfoMonitor
and connect
to the changed
signal. The signal will be emitted once when
the app info database changes, and will not be emitted again until after the
next call to get_all
or another ``g_app_info_``*()
function.
This is because monitoring the app info database for changes is expensive.
The following functions will re-arm the changed
signal so it can be emitted again:
`:func:`~gi.repository.Gio.DesktopAppInfo.get_implementations`
<../gio-unix/type_func.DesktopAppInfo.get_implementation.html>`_
`:func:`~gi.repository.Gio.DesktopAppInfo.new`
<../gio-unix/ctor.DesktopAppInfo.new.html>`_
`:func:`~gi.repository.Gio.DesktopAppInfo.new_from_filename`
<../gio-unix/ctor.DesktopAppInfo.new_from_filename.html>`_
`:func:`~gi.repository.Gio.DesktopAppInfo.new_from_keyfile`
<../gio-unix/ctor.DesktopAppInfo.new_from_keyfile.html>`_
`:func:`~gi.repository.Gio.DesktopAppInfo.search`
<../gio-unix/type_func.DesktopAppInfo.search.html>`_
The latter functions are available if using
`GDesktopAppInfo
<../gio-unix/class.DesktopAppInfo.html>`_ from
gio-unix-2.0.pc
(GIR namespace GioUnix-2.0
).
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 GAppInfo
APIs
in response to the change signal, deferring these until the time that
the updated data is actually required. The exception to this case is when
application information is actually being displayed on the screen
(for example, 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.
Methods#
- class AppInfoMonitor
- get() 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 byget_all()
) may have changed.The
AppInfoMonitor
::changed signal will only be emitted once untilget_all()
(or another ``g_app_info_``*()
function) is called. Doing so will re-arm the signal ready to notify about the next change.You must only call
unref()
on the return value from under the same main context as you created it.Added in version 2.40.