GtkAppChooserWidget: Monitor installed applications
This uses the new GAppInfoMonitor object in GIO, which provides change notification when the set of installed applications changes.
This commit is contained in:
parent
94e0f1c78d
commit
7c98d40e94
@ -85,6 +85,8 @@ struct _GtkAppChooserWidgetPrivate {
|
|||||||
GtkTreeViewColumn *column;
|
GtkTreeViewColumn *column;
|
||||||
GtkCellRenderer *padding_renderer;
|
GtkCellRenderer *padding_renderer;
|
||||||
GtkCellRenderer *secondary_padding;
|
GtkCellRenderer *secondary_padding;
|
||||||
|
|
||||||
|
GAppInfoMonitor *monitor;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -810,6 +812,13 @@ gtk_app_chooser_widget_initialize_items (GtkAppChooserWidget *self)
|
|||||||
gtk_app_chooser_widget_real_add_items (self);
|
gtk_app_chooser_widget_real_add_items (self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
app_info_changed (GAppInfoMonitor *monitor,
|
||||||
|
GtkAppChooserWidget *self)
|
||||||
|
{
|
||||||
|
gtk_app_chooser_refresh (GTK_APP_CHOOSER (self));
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_app_chooser_widget_set_property (GObject *object,
|
gtk_app_chooser_widget_set_property (GObject *object,
|
||||||
guint property_id,
|
guint property_id,
|
||||||
@ -902,6 +911,8 @@ gtk_app_chooser_widget_finalize (GObject *object)
|
|||||||
|
|
||||||
g_free (self->priv->content_type);
|
g_free (self->priv->content_type);
|
||||||
g_free (self->priv->default_text);
|
g_free (self->priv->default_text);
|
||||||
|
g_signal_handlers_disconnect_by_func (self->priv->monitor, app_info_changed, self);
|
||||||
|
g_object_unref (self->priv->monitor);
|
||||||
|
|
||||||
G_OBJECT_CLASS (gtk_app_chooser_widget_parent_class)->finalize (object);
|
G_OBJECT_CLASS (gtk_app_chooser_widget_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
@ -1128,6 +1139,10 @@ gtk_app_chooser_widget_init (GtkAppChooserWidget *self)
|
|||||||
self->priv->secondary_padding,
|
self->priv->secondary_padding,
|
||||||
padding_cell_renderer_func,
|
padding_cell_renderer_func,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
|
|
||||||
|
self->priv->monitor = g_app_info_monitor_get ();
|
||||||
|
g_signal_connect (self->priv->monitor, "changed",
|
||||||
|
G_CALLBACK (app_info_changed), self);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GAppInfo *
|
static GAppInfo *
|
||||||
|
Loading…
Reference in New Issue
Block a user