[gnome-disk-utility/wip/mdraid] Add a "Go To Disk" toolbar button to the MD-RAID disk dialog
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility/wip/mdraid] Add a "Go To Disk" toolbar button to the MD-RAID disk dialog
- Date: Tue, 18 Sep 2012 17:39:12 +0000 (UTC)
commit c410ab2f94d137ae6ff0492e9350d9324432f993
Author: David Zeuthen <zeuthen gmail com>
Date: Tue Sep 18 13:38:36 2012 -0400
Add a "Go To Disk" toolbar button to the MD-RAID disk dialog
Signed-off-by: David Zeuthen <zeuthen gmail com>
data/ui/md-raid-disks-dialog.ui | 30 +++++++++++++++++++++++++
src/disks/gdumdraiddisksdialog.c | 45 +++++++++++++++++++++++++++++++++++++-
2 files changed, 74 insertions(+), 1 deletions(-)
---
diff --git a/data/ui/md-raid-disks-dialog.ui b/data/ui/md-raid-disks-dialog.ui
index 38b6fed..9f2d833 100644
--- a/data/ui/md-raid-disks-dialog.ui
+++ b/data/ui/md-raid-disks-dialog.ui
@@ -86,6 +86,7 @@
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Add Disk...</property>
<property name="use_action_appearance">False</property>
<property name="label" translatable="yes">Add Disk...</property>
<property name="use_underline">True</property>
@@ -101,6 +102,7 @@
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Remove Disk...</property>
<property name="use_action_appearance">False</property>
<property name="label" translatable="yes">Remove Disk...</property>
<property name="use_underline">True</property>
@@ -111,6 +113,34 @@
<property name="homogeneous">True</property>
</packing>
</child>
+ <child>
+ <object class="GtkSeparatorToolItem" id="toolbutton1">
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_action_appearance">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="goto-disk-toolbutton">
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Go To Disk</property>
+ <property name="use_action_appearance">False</property>
+ <property name="label" translatable="yes">Go To Disk</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">go-jump-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/src/disks/gdumdraiddisksdialog.c b/src/disks/gdumdraiddisksdialog.c
index 72b52ba..e2a0d6e 100644
--- a/src/disks/gdumdraiddisksdialog.c
+++ b/src/disks/gdumdraiddisksdialog.c
@@ -43,6 +43,7 @@ typedef struct
GtkWidget *toolbar;
GtkWidget *add_toolbutton;
GtkWidget *remove_toolbutton;
+ GtkWidget *goto_disk_toolbutton;
GtkWidget *model_label;
GtkWidget *device_label;
@@ -64,6 +65,7 @@ static const struct {
{G_STRUCT_OFFSET (DialogData, toolbar), "toolbar"},
{G_STRUCT_OFFSET (DialogData, add_toolbutton), "add-toolbutton"},
{G_STRUCT_OFFSET (DialogData, remove_toolbutton), "remove-toolbutton"},
+ {G_STRUCT_OFFSET (DialogData, goto_disk_toolbutton), "goto-disk-toolbutton"},
{G_STRUCT_OFFSET (DialogData, model_label), "model-label"},
{G_STRUCT_OFFSET (DialogData, device_label), "device-label"},
@@ -393,6 +395,43 @@ on_remove_toolbutton_clicked (GtkToolButton *tool_button,
/* ---------------------------------------------------------------------------------------------------- */
static void
+on_goto_disk_toolbutton_clicked (GtkToolButton *tool_button,
+ gpointer user_data)
+{
+ DialogData *data = user_data;
+ UDisksBlock *selected_block = NULL;
+ UDisksObject *selected_block_object = NULL;
+ GtkTreeIter titer;
+
+ if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->treeview)),
+ NULL, /* out_model */
+ &titer))
+ {
+ gtk_tree_model_get (GTK_TREE_MODEL (data->store),
+ &titer,
+ COLUMN_BLOCK, &selected_block,
+ -1);
+ if (selected_block != NULL)
+ selected_block_object = (UDisksObject *) g_dbus_interface_dup_object (G_DBUS_INTERFACE (selected_block));
+ }
+
+ if (selected_block_object == NULL)
+ {
+ g_warning ("Cannot determine device to go to");
+ goto out;
+ }
+
+ dialog_data_close (data);
+ gdu_window_select_object (data->window, selected_block_object);
+
+ out:
+ g_clear_object (&selected_block_object);
+ g_clear_object (&selected_block);
+}
+
+/* ---------------------------------------------------------------------------------------------------- */
+
+static void
slot_cell_func (GtkTreeViewColumn *column,
GtkCellRenderer *renderer,
GtkTreeModel *model,
@@ -705,7 +744,6 @@ init_dialog (DialogData *data)
context = gtk_widget_get_style_context (data->toolbar);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_INLINE_TOOLBAR);
gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
- gtk_widget_set_name (data->toolbar, "mdraid-disks-toolbar");
data->store = gtk_list_store_new (5,
G_TYPE_INT,
@@ -809,6 +847,11 @@ init_dialog (DialogData *data)
G_CALLBACK (on_remove_toolbutton_clicked),
data);
+ g_signal_connect (data->goto_disk_toolbutton,
+ "clicked",
+ G_CALLBACK (on_goto_disk_toolbutton_clicked),
+ data);
+
/* ---------- */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]