summaryrefslogtreecommitdiffstats
path: root/src/gdu
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2009-02-27 12:14:57 -0500
committerDavid Zeuthen <davidz@redhat.com>2009-02-27 12:14:57 -0500
commit575c9663dc040a131b6978fa32e4bce13c7c1124 (patch)
tree77ab03df72f650dfe68672d615e57ac9c57ba095 /src/gdu
parent3f4783342d58d9bfdde785c8f712591673e4a547 (diff)
downloadgnome-disk-utility-575c9663dc040a131b6978fa32e4bce13c7c1124.tar.gz
gnome-disk-utility-575c9663dc040a131b6978fa32e4bce13c7c1124.tar.xz
gnome-disk-utility-575c9663dc040a131b6978fa32e4bce13c7c1124.zip
make sure we emit signals on add/change signals on GduPresentable
Diffstat (limited to 'src/gdu')
-rw-r--r--src/gdu/gdu-device.c9
-rw-r--r--src/gdu/gdu-drive.c12
-rw-r--r--src/gdu/gdu-linux-md-drive.c2
-rw-r--r--src/gdu/gdu-pool.c14
-rw-r--r--src/gdu/gdu-private.h2
-rw-r--r--src/gdu/gdu-volume.c12
6 files changed, 14 insertions, 37 deletions
diff --git a/src/gdu/gdu-device.c b/src/gdu/gdu-device.c
index 85a5748..e695109 100644
--- a/src/gdu/gdu-device.c
+++ b/src/gdu/gdu-device.c
@@ -538,6 +538,8 @@ gdu_device_get_pool (GduDevice *device)
static void
gdu_device_finalize (GduDevice *device)
{
+ //g_debug ("##### finalized device %s", device->priv->props->device_file);
+
dbus_g_connection_unref (device->priv->bus);
g_free (device->priv->object_path);
if (device->priv->proxy != NULL)
@@ -688,13 +690,6 @@ _gdu_device_job_changed (GduDevice *device,
g_signal_emit (device, signals[JOB_CHANGED], 0);
}
-void
-_gdu_device_removed (GduDevice *device)
-{
- g_print ("%s: %s\n", __FUNCTION__, device->priv->props->device_file);
- g_signal_emit (device, signals[REMOVED], 0);
-}
-
const char *
gdu_device_get_object_path (GduDevice *device)
{
diff --git a/src/gdu/gdu-drive.c b/src/gdu/gdu-drive.c
index d6957d2..aad7e7b 100644
--- a/src/gdu/gdu-drive.c
+++ b/src/gdu/gdu-drive.c
@@ -60,19 +60,17 @@ G_DEFINE_TYPE_WITH_CODE (GduDrive, gdu_drive, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (GDU_TYPE_PRESENTABLE,
gdu_drive_presentable_iface_init))
-static void device_removed (GduDevice *device, gpointer user_data);
static void device_job_changed (GduDevice *device, gpointer user_data);
static void device_changed (GduDevice *device, gpointer user_data);
static void
gdu_drive_finalize (GduDrive *drive)
{
- //g_debug ("finalized drive '%s' %p", drive->priv->id, drive);
+ //g_debug ("##### finalized drive '%s' %p", drive->priv->id, drive);
if (drive->priv->device != NULL) {
g_signal_handlers_disconnect_by_func (drive->priv->device, device_changed, drive);
g_signal_handlers_disconnect_by_func (drive->priv->device, device_job_changed, drive);
- g_signal_handlers_disconnect_by_func (drive->priv->device, device_removed, drive);
g_object_unref (drive->priv->device);
}
@@ -205,13 +203,6 @@ device_job_changed (GduDevice *device, gpointer user_data)
g_signal_emit_by_name (drive->priv->pool, "presentable-job-changed", drive);
}
-static void
-device_removed (GduDevice *device, gpointer user_data)
-{
- GduDrive *drive = GDU_DRIVE (user_data);
- g_signal_emit_by_name (drive, "removed");
-}
-
GduDrive *
_gdu_drive_new_from_device (GduPool *pool, GduDevice *device)
{
@@ -224,7 +215,6 @@ _gdu_drive_new_from_device (GduPool *pool, GduDevice *device)
g_signal_connect (device, "changed", (GCallback) device_changed, drive);
g_signal_connect (device, "job-changed", (GCallback) device_job_changed, drive);
- g_signal_connect (device, "removed", (GCallback) device_removed, drive);
return drive;
}
diff --git a/src/gdu/gdu-linux-md-drive.c b/src/gdu/gdu-linux-md-drive.c
index 71313f6..13f5c34 100644
--- a/src/gdu/gdu-linux-md-drive.c
+++ b/src/gdu/gdu-linux-md-drive.c
@@ -96,7 +96,7 @@ gdu_linux_md_drive_finalize (GObject *object)
{
GduLinuxMdDrive *drive = GDU_LINUX_MD_DRIVE (object);
- //g_debug ("finalized linux-md drive '%s' %p", drive->priv->id, drive);
+ //g_debug ("##### finalized linux-md drive '%s' %p", drive->priv->id, drive);
if (drive->priv->pool != NULL) {
g_signal_handlers_disconnect_by_func (drive->priv->pool, device_added, drive);
diff --git a/src/gdu/gdu-pool.c b/src/gdu/gdu-pool.c
index e16b4c4..e7b618f 100644
--- a/src/gdu/gdu-pool.c
+++ b/src/gdu/gdu-pool.c
@@ -759,6 +759,7 @@ recompute_presentables (GduPool *pool)
pool->priv->presentables = g_list_remove (pool->priv->presentables, p);
g_signal_emit (pool, signals[PRESENTABLE_REMOVED], 0, p);
+ g_signal_emit_by_name (p, "removed");
g_object_unref (p);
}
@@ -808,7 +809,7 @@ device_added_signal_handler (DBusGProxy *proxy, const char *object_path, gpointe
device = gdu_pool_get_by_object_path (pool, object_path);
if (device != NULL) {
g_object_unref (device);
- g_debug ("Treating add for previously added device %s as change", object_path);
+ g_warning ("Treating add for previously added device %s as change", object_path);
device_changed_signal_handler (proxy, object_path, user_data);
goto out;
}
@@ -839,13 +840,15 @@ device_removed_signal_handler (DBusGProxy *proxy, const char *object_path, gpoin
device = gdu_pool_get_by_object_path (pool, object_path);
if (device == NULL) {
- g_debug ("No device to remove for remove %s", object_path);
+ g_warning ("No device to remove for remove %s", object_path);
goto out;
}
g_hash_table_remove (pool->priv->object_path_to_device,
gdu_device_get_object_path (device));
g_signal_emit (pool, signals[DEVICE_REMOVED], 0, device);
+ g_signal_emit_by_name (device, "removed");
+ g_object_unref (device);
//g_debug ("Removed device %s", object_path);
recompute_presentables (pool);
@@ -864,13 +867,14 @@ device_changed_signal_handler (DBusGProxy *proxy, const char *object_path, gpoin
device = gdu_pool_get_by_object_path (pool, object_path);
if (device == NULL) {
- g_debug ("Treating change event as add on non-existant device %s", object_path);
- device_added_signal_handler (proxy, object_path, user_data);
+ g_warning ("Ignoring change event on non-existant device %s", object_path);
goto out;
}
- if (_gdu_device_changed (device))
+ if (_gdu_device_changed (device)) {
g_signal_emit (pool, signals[DEVICE_CHANGED], 0, device);
+ g_signal_emit_by_name (device, "changed");
+ }
g_object_unref (device);
recompute_presentables (pool);
diff --git a/src/gdu/gdu-private.h b/src/gdu/gdu-private.h
index c49b5cc..96e7510 100644
--- a/src/gdu/gdu-private.h
+++ b/src/gdu/gdu-private.h
@@ -111,8 +111,6 @@ void _gdu_device_job_changed (GduDevice *device,
const char *job_cur_task_id,
double job_cur_task_percentage);
-void _gdu_device_removed (GduDevice *device);
-
void _gdu_volume_rewrite_enclosing_presentable (GduVolume *volume);
void _gdu_volume_hole_rewrite_enclosing_presentable (GduVolumeHole *volume_hole);
diff --git a/src/gdu/gdu-volume.c b/src/gdu/gdu-volume.c
index 93d9366..21b1b72 100644
--- a/src/gdu/gdu-volume.c
+++ b/src/gdu/gdu-volume.c
@@ -60,7 +60,6 @@ G_DEFINE_TYPE_WITH_CODE (GduVolume, gdu_volume, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (GDU_TYPE_PRESENTABLE,
gdu_volume_presentable_iface_init))
-static void device_removed (GduDevice *device, gpointer user_data);
static void device_job_changed (GduDevice *device, gpointer user_data);
static void device_changed (GduDevice *device, gpointer user_data);
@@ -97,12 +96,11 @@ static const struct
static void
gdu_volume_finalize (GduVolume *volume)
{
- //g_debug ("finalized volume '%s' %p", volume->priv->id, volume);
+ //g_debug ("##### finalized volume '%s' %p", volume->priv->id, volume);
if (volume->priv->device != NULL) {
g_signal_handlers_disconnect_by_func (volume->priv->device, device_changed, volume);
g_signal_handlers_disconnect_by_func (volume->priv->device, device_job_changed, volume);
- g_signal_handlers_disconnect_by_func (volume->priv->device, device_removed, volume);
g_object_unref (volume->priv->device);
}
@@ -152,13 +150,6 @@ device_job_changed (GduDevice *device, gpointer user_data)
g_signal_emit_by_name (volume->priv->pool, "presentable-job-changed", volume);
}
-static void
-device_removed (GduDevice *device, gpointer user_data)
-{
- GduVolume *volume = GDU_VOLUME (user_data);
- g_signal_emit_by_name (volume, "removed");
-}
-
GduVolume *
_gdu_volume_new_from_device (GduPool *pool, GduDevice *device, GduPresentable *enclosing_presentable)
{
@@ -175,7 +166,6 @@ _gdu_volume_new_from_device (GduPool *pool, GduDevice *device, GduPresentable *e
g_signal_connect (device, "changed", (GCallback) device_changed, volume);
g_signal_connect (device, "job-changed", (GCallback) device_job_changed, volume);
- g_signal_connect (device, "removed", (GCallback) device_removed, volume);
return volume;
}