[gnome-disk-utility/wip/mdraid] Show "RAID Array is not running" instead of "No Media"
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility/wip/mdraid] Show "RAID Array is not running" instead of "No Media"
- Date: Wed, 12 Sep 2012 16:15:05 +0000 (UTC)
commit 6fac7a1a6bfff5b2d4d6d9df4f9b88854d0eda3e
Author: David Zeuthen <zeuthen gmail com>
Date: Wed Sep 12 12:14:28 2012 -0400
Show "RAID Array is not running" instead of "No Media"
Signed-off-by: David Zeuthen <zeuthen gmail com>
src/disks/gduvolumegrid.c | 61 +++++++++++++++++++++++++++++++++++++++++++-
src/disks/gduvolumegrid.h | 4 +++
src/disks/gduwindow.c | 6 ++++
3 files changed, 69 insertions(+), 2 deletions(-)
---
diff --git a/src/disks/gduvolumegrid.c b/src/disks/gduvolumegrid.c
index 299a365..35bc54e 100644
--- a/src/disks/gduvolumegrid.c
+++ b/src/disks/gduvolumegrid.c
@@ -92,6 +92,8 @@ struct _GduVolumeGrid
GridElement *focused;
gboolean animating_spinner;
+
+ gchar *no_media_string;
};
struct _GduVolumeGridClass
@@ -107,6 +109,7 @@ enum
PROP_0,
PROP_CLIENT,
PROP_BLOCK_OBJECT,
+ PROP_NO_MEDIA_STRING,
};
enum
@@ -155,6 +158,8 @@ gdu_volume_grid_finalize (GObject *object)
g_object_unref (grid->block_object);
g_object_unref (grid->client);
+ g_free (grid->no_media_string);
+
G_OBJECT_CLASS (gdu_volume_grid_parent_class)->finalize (object);
}
@@ -176,6 +181,10 @@ gdu_volume_grid_get_property (GObject *object,
g_value_set_object (value, grid->block_object);
break;
+ case PROP_NO_MEDIA_STRING:
+ g_value_set_string (value, grid->no_media_string);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -200,6 +209,10 @@ gdu_volume_grid_set_property (GObject *object,
gdu_volume_grid_set_block_object (grid, g_value_get_object (value));
break;
+ case PROP_NO_MEDIA_STRING:
+ gdu_volume_grid_set_no_media_string (grid, g_value_get_string (value));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -511,6 +524,17 @@ gdu_volume_grid_class_init (GduVolumeGridClass *klass)
G_PARAM_WRITABLE |
G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class,
+ PROP_NO_MEDIA_STRING,
+ g_param_spec_string ("no-media-string",
+ "No Media String",
+ "The string to show when there is no media or block device",
+ _("No Media"),
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS));
+
signals[CHANGED_SIGNAL] = g_signal_new ("changed",
GDU_TYPE_VOLUME_GRID,
G_SIGNAL_RUN_LAST,
@@ -724,6 +748,7 @@ render_element (GduVolumeGrid *grid,
GtkStateFlags state;
GtkJunctionSides sides;
GtkBorder border;
+ const gchar *markup;
animate_spinner = FALSE;
@@ -851,7 +876,10 @@ render_element (GduVolumeGrid *grid,
/* text */
layout = pango_cairo_create_layout (cr);
- pango_layout_set_markup (layout, element->markup != NULL ? element->markup : "", -1);
+ markup = element->markup;
+ if (markup == NULL)
+ markup = grid->no_media_string;
+ pango_layout_set_markup (layout, markup, -1);
desc = pango_font_description_from_string ("Sans 7.0");
pango_layout_set_font_description (layout, desc);
pango_font_description_free (desc);
@@ -1532,7 +1560,7 @@ grid_element_set_details (GduVolumeGrid *grid,
case GDU_VOLUME_GRID_ELEMENT_TYPE_NO_MEDIA:
{
- element->markup = g_strdup (_("No Media"));
+ element->markup = NULL; /* means that grid->no_media_string will be used */
if (grid->block_object != NULL)
{
@@ -1808,3 +1836,32 @@ on_client_changed (UDisksClient *client,
GduVolumeGrid *grid = GDU_VOLUME_GRID (user_data);
recompute_grid (grid);
}
+
+/* ---------------------------------------------------------------------------------------------------- */
+
+void
+gdu_volume_grid_set_no_media_string (GduVolumeGrid *grid,
+ const gchar *str)
+{
+ g_return_if_fail (GDU_IS_VOLUME_GRID (grid));
+ if (g_strcmp0 (grid->no_media_string, str) == 0)
+ goto out;
+
+ g_free (grid->no_media_string);
+ grid->no_media_string = g_strdup (str);
+
+ g_object_notify (G_OBJECT (grid), "no-media-string");
+
+ gtk_widget_queue_draw (GTK_WIDGET (grid));
+
+ out:
+ ;
+}
+
+const gchar *
+gdu_volume_grid_get_no_media_string (GduVolumeGrid *grid)
+{
+ g_return_val_if_fail (GDU_IS_VOLUME_GRID (grid), NULL);
+ return grid->no_media_string;
+}
+
diff --git a/src/disks/gduvolumegrid.h b/src/disks/gduvolumegrid.h
index b749391..0489d48 100644
--- a/src/disks/gduvolumegrid.h
+++ b/src/disks/gduvolumegrid.h
@@ -25,6 +25,10 @@ void gdu_volume_grid_set_block_object (GduVolumeGrid
UDisksObject *block_device);
UDisksObject *gdu_volume_grid_get_block_object (GduVolumeGrid *grid);
+void gdu_volume_grid_set_no_media_string (GduVolumeGrid *grid,
+ const gchar *str);
+const gchar *gdu_volume_grid_get_no_media_string (GduVolumeGrid *grid);
+
gboolean gdu_volume_grid_includes_object (GduVolumeGrid *grid,
UDisksObject *object);
gboolean gdu_volume_grid_select_object (GduVolumeGrid *grid,
diff --git a/src/disks/gduwindow.c b/src/disks/gduwindow.c
index ff6bcc0..9453581 100644
--- a/src/disks/gduwindow.c
+++ b/src/disks/gduwindow.c
@@ -1821,6 +1821,9 @@ update_device_page_for_mdraid (GduWindow *window,
gchar *level_desc = NULL;
char hostname[512];
+ gdu_volume_grid_set_no_media_string (GDU_VOLUME_GRID (window->volume_grid),
+ _("RAID Array is not running"));
+
size = udisks_mdraid_get_size (mdraid);
num_devices = udisks_mdraid_get_num_devices (mdraid);
block = udisks_client_get_block_for_mdraid (window->client, mdraid);
@@ -1973,6 +1976,9 @@ update_device_page_for_drive (GduWindow *window,
const gchar *serial;
GList *jobs;
+ gdu_volume_grid_set_no_media_string (GDU_VOLUME_GRID (window->volume_grid),
+ _("No Media"));
+
//g_debug ("In update_device_page_for_drive() - selected=%s",
// object != NULL ? g_dbus_object_get_object_path (object) : "<nothing>");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]