[gnome-disk-utility/udisks2-port] Update icons in the device tree view when a change happens
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility/udisks2-port] Update icons in the device tree view when a change happens
- Date: Tue, 26 Jul 2011 19:55:49 +0000 (UTC)
commit 789e62d81471909e0c58583826476f6a386621fa
Author: David Zeuthen <davidz redhat com>
Date: Tue Jul 26 15:55:23 2011 -0400
Update icons in the device tree view when a change happens
Signed-off-by: David Zeuthen <davidz redhat com>
src/palimpsest/gdudevicetreemodel.c | 193 ++++++++++++++++++++++-------------
1 files changed, 121 insertions(+), 72 deletions(-)
---
diff --git a/src/palimpsest/gdudevicetreemodel.c b/src/palimpsest/gdudevicetreemodel.c
index d475b56..2f168de 100644
--- a/src/palimpsest/gdudevicetreemodel.c
+++ b/src/palimpsest/gdudevicetreemodel.c
@@ -431,50 +431,13 @@ add_drive (GduDeviceTreeModel *model,
UDisksObject *object,
GtkTreeIter *parent)
{
- UDisksDrive *drive;
- GIcon *drive_icon;
- GIcon *media_icon;
- gchar *name;
- gchar *description;
- gchar *media_description;
- gchar *s;
- gchar *sort_key;
GtkTreeIter iter;
-
- drive = udisks_object_peek_drive (object);
- udisks_util_get_drive_info (drive, &name, &description, &drive_icon, &media_description, &media_icon);
- s = g_strdup_printf ("%s\n"
- "<small><span foreground=\"#555555\">%s</span></small>",
- description,
- name);
-
- //g_debug ("drive %s ->\n"
- // " drive_icon=%s\n"
- // " media_icon=%s\n"
- // "\n",
- // g_dbus_object_get_object_path (object),
- // g_icon_to_string (drive_icon),
- // g_icon_to_string (media_icon));
-
- sort_key = g_strdup_printf ("00_drives_%s",
- g_dbus_object_get_object_path (G_DBUS_OBJECT (object))); /* for now */
gtk_tree_store_insert_with_values (GTK_TREE_STORE (model),
&iter,
parent,
0,
- GDU_DEVICE_TREE_MODEL_COLUMN_ICON, drive_icon,
- GDU_DEVICE_TREE_MODEL_COLUMN_NAME, s,
- GDU_DEVICE_TREE_MODEL_COLUMN_SORT_KEY, sort_key,
GDU_DEVICE_TREE_MODEL_COLUMN_OBJECT, object,
-1);
- if (media_icon != NULL)
- g_object_unref (media_icon);
- g_object_unref (drive_icon);
- g_free (sort_key);
- g_free (s);
- g_free (media_description);
- g_free (description);
- g_free (name);
}
static void
@@ -499,6 +462,58 @@ remove_drive (GduDeviceTreeModel *model,
}
static void
+update_drive (GduDeviceTreeModel *model,
+ UDisksObject *object)
+{
+ UDisksDrive *drive = NULL;
+ GIcon *drive_icon = NULL;
+ GIcon *media_icon = NULL;
+ gchar *name = NULL;
+ gchar *description = NULL;
+ gchar *media_description = NULL;
+ gchar *s = NULL;
+ gchar *sort_key = NULL;
+ GtkTreeIter iter;
+
+ if (!find_iter_for_object (model,
+ object,
+ &iter))
+ {
+ g_warning ("Error finding iter for object at %s",
+ g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
+ goto out;
+ }
+
+ drive = udisks_object_peek_drive (object);
+
+ udisks_util_get_drive_info (drive, &name, &description, &drive_icon, &media_description, &media_icon);
+ s = g_strdup_printf ("%s\n"
+ "<small><span foreground=\"#555555\">%s</span></small>",
+ description,
+ name);
+ sort_key = g_strdup_printf ("00_drives_%s",
+ g_dbus_object_get_object_path (G_DBUS_OBJECT (object))); /* for now */
+
+ gtk_tree_store_set (GTK_TREE_STORE (model),
+ &iter,
+ GDU_DEVICE_TREE_MODEL_COLUMN_ICON, drive_icon,
+ GDU_DEVICE_TREE_MODEL_COLUMN_NAME, s,
+ GDU_DEVICE_TREE_MODEL_COLUMN_SORT_KEY, sort_key,
+ -1);
+
+ out:
+ if (media_icon != NULL)
+ g_object_unref (media_icon);
+ if (drive_icon != NULL)
+ g_object_unref (drive_icon);
+ g_free (sort_key);
+ g_free (s);
+ g_free (media_description);
+ g_free (description);
+ g_free (name);
+}
+
+static void
update_drives (GduDeviceTreeModel *model)
{
GDBusObjectManager *object_manager;
@@ -547,6 +562,12 @@ update_drives (GduDeviceTreeModel *model)
add_drive (model, object, NULL);
}
+ for (l = model->current_drives; l != NULL; l = l->next)
+ {
+ UDisksObject *object = UDISKS_OBJECT (l->data);
+ update_drive (model, object);
+ }
+
g_list_free (added_drives);
g_list_free (removed_drives);
g_list_foreach (drives, (GFunc) g_object_unref, NULL);
@@ -599,16 +620,59 @@ add_block (GduDeviceTreeModel *model,
UDisksObject *object,
GtkTreeIter *parent)
{
+ GtkTreeIter iter;
+ gtk_tree_store_insert_with_values (GTK_TREE_STORE (model),
+ &iter,
+ parent,
+ 0,
+ GDU_DEVICE_TREE_MODEL_COLUMN_OBJECT, object,
+ -1);
+}
+
+static void
+remove_block (GduDeviceTreeModel *model,
+ UDisksObject *object)
+{
+ GtkTreeIter iter;
+
+ if (!find_iter_for_object (model,
+ object,
+ &iter))
+ {
+ g_warning ("Error finding iter for object at %s",
+ g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
+ goto out;
+ }
+
+ gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
+
+ out:
+ ;
+}
+
+static void
+update_block (GduDeviceTreeModel *model,
+ UDisksObject *object)
+{
+ GtkTreeIter iter;
UDisksBlockDevice *block;
UDisksLoop *loop;
- GIcon *icon;
- gchar *s;
- gchar *sort_key;
- GtkTreeIter iter;
+ GIcon *icon = NULL;
+ gchar *s = NULL;
+ gchar *sort_key = NULL;
const gchar *preferred_device;
const gchar *loop_backing_file;
guint64 size;
- gchar *size_str;
+ gchar *size_str = NULL;
+
+ if (!find_iter_for_object (model,
+ object,
+ &iter))
+ {
+ g_warning ("Error finding iter for object at %s",
+ g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
+ goto out;
+ }
block = udisks_object_peek_block_device (object);
loop = udisks_object_peek_loop (object);
@@ -653,42 +717,21 @@ add_block (GduDeviceTreeModel *model,
}
sort_key = g_strdup (g_dbus_object_get_object_path (G_DBUS_OBJECT (object))); /* for now */
- gtk_tree_store_insert_with_values (GTK_TREE_STORE (model),
- &iter,
- parent,
- 0,
- GDU_DEVICE_TREE_MODEL_COLUMN_ICON, icon,
- GDU_DEVICE_TREE_MODEL_COLUMN_NAME, s,
- GDU_DEVICE_TREE_MODEL_COLUMN_SORT_KEY, sort_key,
- GDU_DEVICE_TREE_MODEL_COLUMN_OBJECT, object,
- -1);
+
+ gtk_tree_store_set (GTK_TREE_STORE (model),
+ &iter,
+ GDU_DEVICE_TREE_MODEL_COLUMN_ICON, icon,
+ GDU_DEVICE_TREE_MODEL_COLUMN_NAME, s,
+ GDU_DEVICE_TREE_MODEL_COLUMN_SORT_KEY, sort_key,
+ -1);
+
+ out:
g_object_unref (icon);
g_free (sort_key);
g_free (s);
g_free (size_str);
}
-static void
-remove_block (GduDeviceTreeModel *model,
- UDisksObject *object)
-{
- GtkTreeIter iter;
-
- if (!find_iter_for_object (model,
- object,
- &iter))
- {
- g_warning ("Error finding iter for object at %s",
- g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
- goto out;
- }
-
- gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
-
- out:
- ;
-}
-
static gboolean
should_include_block (UDisksObject *object)
{
@@ -785,6 +828,12 @@ update_blocks (GduDeviceTreeModel *model)
add_block (model, object, get_block_header_iter (model));
}
+ for (l = model->current_blocks; l != NULL; l = l->next)
+ {
+ UDisksObject *object = UDISKS_OBJECT (l->data);
+ update_block (model, object);
+ }
+
if (g_list_length (model->current_blocks) == 0)
nuke_block_header (model);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]