[gnome-disk-utility/udisks2-port] Simplify update logic
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility/udisks2-port] Simplify update logic
- Date: Mon, 24 Oct 2011 17:44:06 +0000 (UTC)
commit bcd25b49c4dbf3c366b70390829b185c7797463b
Author: David Zeuthen <davidz redhat com>
Date: Mon Oct 24 13:44:02 2011 -0400
Simplify update logic
Signed-off-by: David Zeuthen <davidz redhat com>
src/palimpsest/gdudevicetreemodel.c | 115 ++-------------------------
src/palimpsest/gduvolumegrid.c | 126 +++---------------------------
src/palimpsest/gduwindow.c | 146 +++++------------------------------
3 files changed, 39 insertions(+), 348 deletions(-)
---
diff --git a/src/palimpsest/gdudevicetreemodel.c b/src/palimpsest/gdudevicetreemodel.c
index eb53051..e061a4a 100644
--- a/src/palimpsest/gdudevicetreemodel.c
+++ b/src/palimpsest/gdudevicetreemodel.c
@@ -56,52 +56,16 @@ G_DEFINE_TYPE (GduDeviceTreeModel, gdu_device_tree_model, GTK_TYPE_TREE_STORE);
static void coldplug (GduDeviceTreeModel *model);
-static void on_object_added (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data);
-
-static void on_object_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data);
-
-static void on_interface_added (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data);
-
-static void on_interface_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data);
-
-static void on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager,
- GDBusObjectProxy *object_proxy,
- GDBusProxy *interface_proxy,
- GVariant *changed_properties,
- const gchar *const *invalidated_properties,
- gpointer user_data);
+static void on_client_changed (UDisksClient *client,
+ gpointer user_data);
static void
gdu_device_tree_model_finalize (GObject *object)
{
GduDeviceTreeModel *model = GDU_DEVICE_TREE_MODEL (object);
- GDBusObjectManager *object_manager;
- object_manager = udisks_client_get_object_manager (model->client);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_object_added),
- model);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_object_removed),
- model);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_added),
- model);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_removed),
- model);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_proxy_properties_changed),
+ g_signal_handlers_disconnect_by_func (model->client,
+ G_CALLBACK (on_client_changed),
model);
g_list_foreach (model->current_drives, (GFunc) g_object_unref, NULL);
@@ -323,7 +287,6 @@ gdu_device_tree_model_constructed (GObject *object)
{
GduDeviceTreeModel *model = GDU_DEVICE_TREE_MODEL (object);
GType types[GDU_DEVICE_TREE_MODEL_N_COLUMNS];
- GDBusObjectManager *object_manager;
types[0] = G_TYPE_STRING;
types[1] = G_TYPE_BOOLEAN;
@@ -339,26 +302,9 @@ gdu_device_tree_model_constructed (GObject *object)
g_assert (gtk_tree_model_get_flags (GTK_TREE_MODEL (model)) & GTK_TREE_MODEL_ITERS_PERSIST);
- object_manager = udisks_client_get_object_manager (model->client);
- g_signal_connect (object_manager,
- "object-added",
- G_CALLBACK (on_object_added),
- model);
- g_signal_connect (object_manager,
- "object-removed",
- G_CALLBACK (on_object_removed),
- model);
- g_signal_connect (object_manager,
- "interface-added",
- G_CALLBACK (on_interface_added),
- model);
- g_signal_connect (object_manager,
- "interface-removed",
- G_CALLBACK (on_interface_removed),
- model);
- g_signal_connect (object_manager,
- "interface-proxy-properties-changed",
- G_CALLBACK (on_interface_proxy_properties_changed),
+ g_signal_connect (model->client,
+ "changed",
+ G_CALLBACK (on_client_changed),
model);
coldplug (model);
@@ -934,52 +880,9 @@ coldplug (GduDeviceTreeModel *model)
}
static void
-on_object_added (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data)
+on_client_changed (UDisksClient *client,
+ gpointer user_data)
{
GduDeviceTreeModel *model = GDU_DEVICE_TREE_MODEL (user_data);
update_all (model);
}
-
-static void
-on_object_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data)
-{
- GduDeviceTreeModel *model = GDU_DEVICE_TREE_MODEL (user_data);
- update_all (model);
-}
-
-static void
-on_interface_added (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data)
-{
- GduDeviceTreeModel *model = GDU_DEVICE_TREE_MODEL (user_data);
- update_all (model);
-}
-
-static void
-on_interface_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data)
-{
- GduDeviceTreeModel *model = GDU_DEVICE_TREE_MODEL (user_data);
- update_all (model);
-}
-
-static void
-on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager,
- GDBusObjectProxy *object_proxy,
- GDBusProxy *interface_proxy,
- GVariant *changed_properties,
- const gchar *const *invalidated_properties,
- gpointer user_data)
-{
- GduDeviceTreeModel *model = GDU_DEVICE_TREE_MODEL (user_data);
- update_all (model);
-}
-
diff --git a/src/palimpsest/gduvolumegrid.c b/src/palimpsest/gduvolumegrid.c
index b5e0956..6c951e2 100644
--- a/src/palimpsest/gduvolumegrid.c
+++ b/src/palimpsest/gduvolumegrid.c
@@ -140,31 +140,6 @@ enum
static guint signals[LAST_SIGNAL] = {0};
-static void on_object_added (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data);
-
-static void on_object_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data);
-
-static void on_interface_added (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data);
-
-static void on_interface_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data);
-
-static void on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager,
- GDBusObjectProxy *object_proxy,
- GDBusProxy *interface_proxy,
- GVariant *changed_properties,
- const gchar *const *invalidated_properties,
- gpointer user_data);
-
G_DEFINE_TYPE (GduVolumeGrid, gdu_volume_grid, GTK_TYPE_WIDGET)
static guint get_depth (GList *elements);
@@ -184,31 +159,20 @@ static GridElement *find_element_for_position (GduVolumeGrid *grid,
static gboolean gdu_volume_grid_draw (GtkWidget *widget,
cairo_t *cr);
+static void on_client_changed (UDisksClient *client,
+ gpointer user_data);
+
static void
gdu_volume_grid_finalize (GObject *object)
{
GduVolumeGrid *grid = GDU_VOLUME_GRID (object);
- GDBusObjectManager *object_manager;
if (grid->container_icon != NULL)
g_object_unref (grid->container_icon);
g_free (grid->container_markup);
- object_manager = udisks_client_get_object_manager (grid->client);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_object_added),
- grid);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_object_removed),
- grid);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_added),
- grid);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_removed),
- grid);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_proxy_properties_changed),
+ g_signal_handlers_disconnect_by_func (grid->client,
+ G_CALLBACK (on_client_changed),
grid);
g_list_foreach (grid->elements, (GFunc) grid_element_free, NULL);
@@ -279,28 +243,10 @@ static void
gdu_volume_grid_constructed (GObject *object)
{
GduVolumeGrid *grid = GDU_VOLUME_GRID (object);
- GDBusObjectManager *object_manager;
- object_manager = udisks_client_get_object_manager (grid->client);
- g_signal_connect (object_manager,
- "object-added",
- G_CALLBACK (on_object_added),
- grid);
- g_signal_connect (object_manager,
- "object-removed",
- G_CALLBACK (on_object_removed),
- grid);
- g_signal_connect (object_manager,
- "interface-added",
- G_CALLBACK (on_interface_added),
- grid);
- g_signal_connect (object_manager,
- "interface-removed",
- G_CALLBACK (on_interface_removed),
- grid);
- g_signal_connect (object_manager,
- "interface-proxy-properties-changed",
- G_CALLBACK (on_interface_proxy_properties_changed),
+ g_signal_connect (grid->client,
+ "changed",
+ G_CALLBACK (on_client_changed),
grid);
recompute_grid (grid);
@@ -2115,61 +2061,11 @@ gdu_volume_grid_includes_object (GduVolumeGrid *grid,
/* ---------------------------------------------------------------------------------------------------- */
static void
-maybe_update (GduVolumeGrid *grid,
- UDisksObject *object)
-{
- if (gdu_volume_grid_includes_object (grid, object))
- recompute_grid (grid);
-}
-
-static void
-on_object_added (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data)
+on_client_changed (UDisksClient *client,
+ gpointer user_data)
{
GduVolumeGrid *grid = GDU_VOLUME_GRID (user_data);
- maybe_update (grid, UDISKS_OBJECT (object));
-}
-
-static void
-on_object_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data)
-{
- GduVolumeGrid *grid = GDU_VOLUME_GRID (user_data);
- maybe_update (grid, UDISKS_OBJECT (object));
-}
-
-static void
-on_interface_added (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data)
-{
- GduVolumeGrid *grid = GDU_VOLUME_GRID (user_data);
- maybe_update (grid, UDISKS_OBJECT (object));
-}
-
-static void
-on_interface_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data)
-{
- GduVolumeGrid *grid = GDU_VOLUME_GRID (user_data);
- maybe_update (grid, UDISKS_OBJECT (object));
-}
-
-static void
-on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager,
- GDBusObjectProxy *object_proxy,
- GDBusProxy *interface_proxy,
- GVariant *changed_properties,
- const gchar *const *invalidated_properties,
- gpointer user_data)
-{
- GduVolumeGrid *grid = GDU_VOLUME_GRID (user_data);
- maybe_update (grid, UDISKS_OBJECT (object_proxy));
+ recompute_grid (grid);
}
/* ---------------------------------------------------------------------------------------------------- */
diff --git a/src/palimpsest/gduwindow.c b/src/palimpsest/gduwindow.c
index bdb9893..3a3304f 100644
--- a/src/palimpsest/gduwindow.c
+++ b/src/palimpsest/gduwindow.c
@@ -213,56 +213,20 @@ gdu_window_init (GduWindow *window)
NULL);
}
-static void on_object_added (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data);
-
-static void on_object_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data);
-
-static void on_interface_added (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data);
-
-static void on_interface_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data);
-
-static void on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager,
- GDBusObjectProxy *object_proxy,
- GDBusProxy *interface_proxy,
- GVariant *changed_properties,
- const gchar *const *invalidated_properties,
- gpointer user_data);
+static void on_client_changed (UDisksClient *client,
+ gpointer user_data);
static void
gdu_window_finalize (GObject *object)
{
GduWindow *window = GDU_WINDOW (object);
- GDBusObjectManager *object_manager;
gtk_window_remove_mnemonic (GTK_WINDOW (window),
'd',
window->device_treeview);
- object_manager = udisks_client_get_object_manager (window->client);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_object_added),
- window);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_object_removed),
- window);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_added),
- window);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_removed),
- window);
- g_signal_handlers_disconnect_by_func (object_manager,
- G_CALLBACK (on_interface_proxy_properties_changed),
+ g_signal_handlers_disconnect_by_func (window->client,
+ G_CALLBACK (on_client_changed),
window);
if (window->current_object != NULL)
@@ -693,7 +657,6 @@ gdu_window_constructed (GObject *object)
GtkCellRenderer *renderer;
GtkTreeSelection *selection;
GtkStyleContext *context;
- GDBusObjectManager *object_manager;
GList *children, *l;
guint n;
@@ -798,26 +761,9 @@ gdu_window_constructed (GObject *object)
window);
gtk_tree_view_expand_all (GTK_TREE_VIEW (window->device_treeview));
- object_manager = udisks_client_get_object_manager (window->client);
- g_signal_connect (object_manager,
- "object-added",
- G_CALLBACK (on_object_added),
- window);
- g_signal_connect (object_manager,
- "object-removed",
- G_CALLBACK (on_object_removed),
- window);
- g_signal_connect (object_manager,
- "interface-added",
- G_CALLBACK (on_interface_added),
- window);
- g_signal_connect (object_manager,
- "interface-removed",
- G_CALLBACK (on_interface_removed),
- window);
- g_signal_connect (object_manager,
- "interface-proxy-properties-changed",
- G_CALLBACK (on_interface_proxy_properties_changed),
+ g_signal_connect (window->client,
+ "changed",
+ G_CALLBACK (on_client_changed),
window);
/* set up non-standard widgets that isn't in the .ui file */
@@ -1216,9 +1162,10 @@ select_details_page (GduWindow *window,
}
static void
-update_all (GduWindow *window,
- UDisksObject *object)
+update_all (GduWindow *window)
{
+ ShowFlags show_flags;
+
switch (window->current_page)
{
case DETAILS_PAGE_NOT_SELECTED:
@@ -1230,75 +1177,20 @@ update_all (GduWindow *window,
break;
case DETAILS_PAGE_DEVICE:
- /* this is a little too inclusive.. */
- if (object != NULL)
- {
- if (object == window->current_object ||
- gdu_volume_grid_includes_object (GDU_VOLUME_GRID (window->volume_grid), object))
- {
- ShowFlags show_flags;
- show_flags = SHOW_FLAGS_NONE;
- update_details_page (window, window->current_page, &show_flags);
- update_for_show_flags (window, show_flags);
- }
- }
+ show_flags = SHOW_FLAGS_NONE;
+ update_details_page (window, window->current_page, &show_flags);
+ update_for_show_flags (window, show_flags);
break;
}
}
static void
-on_object_added (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data)
-{
- GduWindow *window = GDU_WINDOW (user_data);
- // g_debug ("on_object_added %s", g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
- update_all (window, UDISKS_OBJECT (object));
-}
-
-static void
-on_object_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- gpointer user_data)
-{
- GduWindow *window = GDU_WINDOW (user_data);
- // g_debug ("on_object_removed %s", g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
- update_all (window, UDISKS_OBJECT (object));
-}
-
-static void
-on_interface_added (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data)
-{
- GduWindow *window = GDU_WINDOW (user_data);
- // g_debug ("on_interface_added %s", g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
- update_all (window, UDISKS_OBJECT (object));
-}
-
-static void
-on_interface_removed (GDBusObjectManager *manager,
- GDBusObject *object,
- GDBusInterface *interface,
- gpointer user_data)
-{
- GduWindow *window = GDU_WINDOW (user_data);
- // g_debug ("on_interface_removed %s", g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
- update_all (window, UDISKS_OBJECT (object));
-}
-
-static void
-on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager,
- GDBusObjectProxy *object_proxy,
- GDBusProxy *interface_proxy,
- GVariant *changed_properties,
- const gchar *const *invalidated_properties,
- gpointer user_data)
+on_client_changed (UDisksClient *client,
+ gpointer user_data)
{
GduWindow *window = GDU_WINDOW (user_data);
- // g_debug ("on_interface_proxy_properties_changed %s", g_dbus_object_get_object_path (G_DBUS_OBJECT (object_proxy)));
- update_all (window, UDISKS_OBJECT (object_proxy));
+ //g_debug ("on_client_changed");
+ update_all (window);
}
static void
@@ -1306,8 +1198,8 @@ on_volume_grid_changed (GduVolumeGrid *grid,
gpointer user_data)
{
GduWindow *window = GDU_WINDOW (user_data);
- // g_debug ("on_volume_grid_changed");
- update_all (window, gdu_volume_grid_get_block_object (GDU_VOLUME_GRID (window->volume_grid)));
+ //g_debug ("on_volume_grid_changed");
+ update_all (window);
}
/* ---------------------------------------------------------------------------------------------------- */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]