Gio.AppInfoMonitor

g GObject.Object GObject.Object Gio.AppInfoMonitor Gio.AppInfoMonitor GObject.Object->Gio.AppInfoMonitor

Subclasses:

None

Methods

Inherited:

GObject.Object (37)

Structs:

GObject.ObjectClass (5)

class

get ()

Virtual Methods

Inherited:

GObject.Object (7)

Properties

None

Signals

Inherited:

GObject.Object (1)

Name

Short Description

changed

Signal emitted when the app info database changes, when applications are installed or removed.

Fields

Inherited:

GObject.Object (1)

Class Details

class Gio.AppInfoMonitor(**kwargs)
Bases:

GObject.Object

Abstract:

No

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 [func`Gio`.AppInfoMonitor.get] to get a GAppInfoMonitor and connect to the [signal`Gio`.AppInfoMonitor::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 [func`Gio`.AppInfo.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 [signal`Gio`.AppInfoMonitor::changed] signal so it can be emitted again:

The latter functions are available if using GDesktopAppInfo 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.

New in version 2.40.

classmethod get()[source]
Returns:

a reference to a Gio.AppInfoMonitor

Return type:

Gio.AppInfoMonitor

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

The Gio.AppInfoMonitor will emit a “changed” signal in the thread-default main context whenever the list of installed applications (as reported by Gio.AppInfo.get_all()) may have changed.

The Gio.AppInfoMonitor ::changed signal will only be emitted once until Gio.AppInfo.get_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 GObject.Object.unref() on the return value from under the same main context as you created it.

New in version 2.40.

Signal Details

Gio.AppInfoMonitor.signals.changed(app_info_monitor)
Signal Name:

changed

Flags:

RUN_FIRST

Parameters:

app_info_monitor (Gio.AppInfoMonitor) – The object which received the signal

Signal emitted when the app info database changes, when applications are installed or removed.

New in version 2.40.