[gnome-bluetooth] Remove use of device-selected- properties



commit 731a5cb30f5b71a2f818d19a59caa7e97513c0ec
Author: Bastien Nocera <hadess hadess net>
Date:   Thu May 28 14:37:55 2009 +0100

    Remove use of device-selected- properties
    
    And use the accessor helpers, or the new value getter.
---
 common/bluetooth-chooser-button.c |    9 ++--
 common/bluetooth-chooser.c        |   84 ++++++------------------------------
 common/bluetooth-chooser.h        |    2 +-
 common/test-deviceselection.c     |   28 ++----------
 properties/adapter.c              |   24 +++++++----
 sendto/main.c                     |    9 ++--
 wizard/main.c                     |   16 +++----
 7 files changed, 50 insertions(+), 122 deletions(-)

diff --git a/common/bluetooth-chooser-button.c b/common/bluetooth-chooser-button.c
index 873df4d..258ce0c 100644
--- a/common/bluetooth-chooser-button.c
+++ b/common/bluetooth-chooser-button.c
@@ -159,11 +159,10 @@ dialog_response_cb (GtkDialog *dialog, int response_id, gpointer data)
 	char *bdaddr, *icon, *name;
 
 	if (response_id == GTK_RESPONSE_ACCEPT) {
-		g_object_get(button->chooser,
-			     "device-selected", &bdaddr,
-			     "device-selected-name", &name,
-			     "device-selected-icon", &icon,
-			     NULL);
+		BluetoothChooser *chooser = BLUETOOTH_CHOOSER (button->chooser);
+		bdaddr = bluetooth_chooser_get_selected_device (chooser);
+		name = bluetooth_chooser_get_selected_device_name (chooser);
+		icon = bluetooth_chooser_get_selected_device_icon (chooser);
 	}
 
 	gtk_widget_destroy (GTK_WIDGET (dialog));
diff --git a/common/bluetooth-chooser.c b/common/bluetooth-chooser.c
index 3c0bbdc..8bb590f 100644
--- a/common/bluetooth-chooser.c
+++ b/common/bluetooth-chooser.c
@@ -242,7 +242,7 @@ bluetooth_chooser_get_selected_device_icon (BluetoothChooser *self)
  *
  * Return value: the type of the device selected, or '0' if unknown
  */
-guint
+BluetoothType
 bluetooth_chooser_get_selected_device_type (BluetoothChooser *self)
 {
 	BluetoothChooserPrivate *priv = BLUETOOTH_CHOOSER_GET_PRIVATE(self);
@@ -279,9 +279,17 @@ bluetooth_chooser_get_selected_device_is_connected (BluetoothChooser *self)
 	return connected;
 }
 
+/**
+ * bluetooth_chooser_get_selected_device_info:
+ * @self: A #BluetoothChooser widget.
+ * @field: The identifier for the field to get data for.
+ * @value: An empty #GValue to set.
+ *
+ * Return value: %TRUE if the @value has been set.
+ */
 gboolean
 bluetooth_chooser_get_selected_device_info (BluetoothChooser *self,
-					    const char *info,
+					    const char *field,
 					    GValue *value)
 {
 	BluetoothChooserPrivate *priv = BLUETOOTH_CHOOSER_GET_PRIVATE(self);
@@ -289,15 +297,15 @@ bluetooth_chooser_get_selected_device_info (BluetoothChooser *self,
 	GEnumValue *ev;
 	GtkTreeIter iter;
 
-	g_return_val_if_fail (info != NULL, FALSE);
+	g_return_val_if_fail (field != NULL, FALSE);
 
 	if (gtk_tree_selection_get_selected (priv->selection, NULL, &iter) == FALSE)
 		return FALSE;
 
 	eclass = g_type_class_ref (BLUETOOTH_TYPE_COLUMN);
-	ev = g_enum_get_value_by_nick (eclass, info);
+	ev = g_enum_get_value_by_nick (eclass, field);
 	if (ev == NULL) {
-		g_warning ("Unknown info '%s'", info);
+		g_warning ("Unknown field '%s'", field);
 		g_type_class_unref (eclass);
 		return FALSE;
 	}
@@ -349,9 +357,7 @@ device_model_row_changed (GtkTreeModel *model,
 			    BLUETOOTH_COLUMN_NAME, &name,
 			    -1);
 	/* Maybe it's the name that changed */
-	if (name != NULL)
-		g_object_notify (G_OBJECT (self), "device-selected-name");
-	g_object_notify (G_OBJECT (self), "device-selected-is-connected");
+	g_object_notify (G_OBJECT (self), "device-selected");
 
 	g_free (name);
 }
@@ -889,11 +895,6 @@ enum {
 	PROP_0,
 	PROP_TITLE,
 	PROP_DEVICE_SELECTED,
-	PROP_DEVICE_SELECTED_ICON,
-	PROP_DEVICE_SELECTED_NAME,
-	PROP_DEVICE_SELECTED_TYPE,
-	PROP_DEVICE_SELECTED_IS_CONNECTED,
-	PROP_DEVICE_SELECTED_PROXY,
 	PROP_SHOW_PAIRING,
 	PROP_SHOW_CONNECTED,
 	PROP_SHOW_SEARCH,
@@ -970,27 +971,6 @@ bluetooth_chooser_get_property (GObject *object, guint prop_id,
 	case PROP_DEVICE_SELECTED:
 		g_value_take_string (value, bluetooth_chooser_get_selected_device (self));
 		break;
-	case PROP_DEVICE_SELECTED_NAME:
-		g_value_take_string (value, bluetooth_chooser_get_selected_device_name (self));
-		break;
-	case PROP_DEVICE_SELECTED_ICON:
-		g_value_take_string (value, bluetooth_chooser_get_selected_device_icon (self));
-		break;
-	case PROP_DEVICE_SELECTED_TYPE:
-		g_value_set_uint (value, bluetooth_chooser_get_selected_device_type (self));
-		break;
-	case PROP_DEVICE_SELECTED_IS_CONNECTED:
-		g_value_set_boolean (value, bluetooth_chooser_get_selected_device_is_connected (self));
-		break;
-	case PROP_DEVICE_SELECTED_PROXY: {
-		GtkTreeIter iter;
-		GObject *proxy = NULL;
-
-		if (gtk_tree_selection_get_selected (priv->selection, NULL, &iter) != FALSE)
-			gtk_tree_model_get (priv->filter, &iter, BLUETOOTH_COLUMN_PROXY, &proxy, -1);
-		g_value_take_object (value, proxy);
-		break;
-	}
 	case PROP_SHOW_PAIRING:
 		g_value_set_boolean (value, priv->show_paired);
 		break;
@@ -1068,42 +1048,6 @@ bluetooth_chooser_class_init (BluetoothChooserClass *klass)
 					 PROP_DEVICE_SELECTED, g_param_spec_string ("device-selected",
 										    NULL, NULL, NULL, G_PARAM_READABLE));
 	/**
-	 * BluetoothChooser:device-selected-icon:
-	 *
-	 * the icon name to use to represent the currently selected device, or %NULL
-	 **/
-	g_object_class_install_property (G_OBJECT_CLASS(klass),
-					 PROP_DEVICE_SELECTED_ICON, g_param_spec_string ("device-selected-icon",
-										    NULL, NULL, NULL, G_PARAM_READABLE));
-	/**
-	 * BluetoothChooser:device-selected-name:
-	 *
-	 * the name for the currently selected device
-	 **/
-	g_object_class_install_property (G_OBJECT_CLASS(klass),
-					 PROP_DEVICE_SELECTED_NAME, g_param_spec_string ("device-selected-name",
-										    NULL, NULL, NULL, G_PARAM_READABLE));
-	/**
-	 * BluetoothChooser:device-selected-type:
-	 *
-	 * the currently selected device's type, or 0
-	 **/
-	g_object_class_install_property (G_OBJECT_CLASS(klass),
-					 PROP_DEVICE_SELECTED_TYPE, g_param_spec_uint ("device-selected-type", NULL, NULL,
-										       1, 1 << (_BLUETOOTH_TYPE_NUM_TYPES - 1), 1, G_PARAM_READABLE));
-	/**
-	 * BluetoothChooser:device-selected-is-connected:
-	 *
-	 * whether the selected device is connected to this computer, will be %FALSE if no devices are selected
-	 **/
-	g_object_class_install_property (G_OBJECT_CLASS(klass),
-					 PROP_DEVICE_SELECTED_IS_CONNECTED, g_param_spec_boolean ("device-selected-is-connected", NULL, NULL,
-												  FALSE, G_PARAM_READABLE));
-	/* Left blank intentionally */
-	g_object_class_install_property (G_OBJECT_CLASS(klass),
-					 PROP_DEVICE_SELECTED_PROXY, g_param_spec_object ("device-selected-proxy", NULL, NULL,
-												  G_TYPE_OBJECT, G_PARAM_READABLE));
-	/**
 	 * BluetoothChooser:show-pairing:
 	 *
 	 * Whether to show the pairing column in the tree.
diff --git a/common/bluetooth-chooser.h b/common/bluetooth-chooser.h
index e58c721..df11447 100644
--- a/common/bluetooth-chooser.h
+++ b/common/bluetooth-chooser.h
@@ -67,7 +67,7 @@ gboolean bluetooth_chooser_get_selected_device_info (BluetoothChooser *self,
 						     GValue *value);
 gchar *bluetooth_chooser_get_selected_device_name (BluetoothChooser *self);
 gchar * bluetooth_chooser_get_selected_device_icon (BluetoothChooser *self);
-guint bluetooth_chooser_get_selected_device_type (BluetoothChooser *self);
+BluetoothType bluetooth_chooser_get_selected_device_type (BluetoothChooser *self);
 gboolean bluetooth_chooser_get_selected_device_is_connected (BluetoothChooser *self);
 
 void bluetooth_chooser_start_discovery (BluetoothChooser *self);
diff --git a/common/test-deviceselection.c b/common/test-deviceselection.c
index fa1c31b..fd67ebb 100644
--- a/common/test-deviceselection.c
+++ b/common/test-deviceselection.c
@@ -70,7 +70,7 @@ static void select_device_changed(BluetoothChooser *sel,
 	GtkDialog *dialog = user_data;
 	char *name;
 
-	g_object_get (G_OBJECT (sel), "device-selected-name", &name, NULL);
+	name = bluetooth_chooser_get_selected_device_name (sel);
 	gtk_dialog_set_response_sensitive(dialog,
 				GTK_RESPONSE_ACCEPT, (address != NULL && name != NULL));
 	g_free (name);
@@ -83,18 +83,6 @@ static void device_selected_cb(GObject *object,
 	dump_selected_device(BLUETOOTH_CHOOSER (object));
 }
 
-static void device_selected_name_cb(GObject *object,
-			       GParamSpec *spec, gpointer user_data)
-{
-	char *address;
-
-	g_message ("Property \"device-selected-name\" changed");
-
-	g_object_get (G_OBJECT (object), "device-selected", &address, NULL);
-	select_device_changed (BLUETOOTH_CHOOSER (object), address, user_data);
-	g_free (address);
-}
-
 static void device_type_filter_selected_cb(GObject *object,
 					   GParamSpec *spec, gpointer user_data)
 {
@@ -183,12 +171,10 @@ response_cb (GtkDialog *dialog, gint response_id, BluetoothChooser *selector)
 		char *address, *name, *icon;
 		guint type;
 
-		g_object_get (G_OBJECT (selector),
-			      "device-selected", &address,
-			      "device-selected-name", &name,
-			      "device-selected-icon", &icon,
-			      "device-selected-type", &type,
-			      NULL);
+		address = bluetooth_chooser_get_selected_device (selector);
+		name = bluetooth_chooser_get_selected_device_name (selector);
+		icon = bluetooth_chooser_get_selected_device_icon (selector);
+		type = bluetooth_chooser_get_selected_device_type (selector);
 		g_message("Selected device is: %s (address: %s, icon: %s, type: %s)",
 			  name, address, icon, bluetooth_type_to_string (type));
 		g_free(address);
@@ -220,8 +206,6 @@ create_wizard_dialogue (void)
 			 G_CALLBACK(select_device_changed), dialog);
 	g_signal_connect(selector, "notify::device-selected",
 			 G_CALLBACK(device_selected_cb), dialog);
-	g_signal_connect(selector, "notify::device-selected-name",
-			 G_CALLBACK(device_selected_name_cb), dialog);
 	g_signal_connect(selector, "notify::device-type-filter",
 			 G_CALLBACK(device_type_filter_selected_cb), dialog);
 	g_signal_connect(selector, "notify::device-category-filter",
@@ -258,8 +242,6 @@ create_props_dialogue (void)
 			 G_CALLBACK(select_device_changed), dialog);
 	g_signal_connect(selector, "notify::device-selected",
 			 G_CALLBACK(device_selected_cb), dialog);
-	g_signal_connect(selector, "notify::device-selected-name",
-			 G_CALLBACK(device_selected_name_cb), dialog);
 	g_signal_connect(selector, "notify::device-type-filter",
 			 G_CALLBACK(device_type_filter_selected_cb), dialog);
 	g_signal_connect(selector, "notify::device-category-filter",
diff --git a/properties/adapter.c b/properties/adapter.c
index 632a340..25784cf 100644
--- a/properties/adapter.c
+++ b/properties/adapter.c
@@ -154,10 +154,8 @@ device_selected_cb(GObject *object,
 	char *address;
 	gboolean connected;
 
-	g_object_get (G_OBJECT (adapter->chooser),
-		      "device-selected", &address,
-		      "device-selected-is-connected", &connected,
-		      NULL);
+	address = bluetooth_chooser_get_selected_device (BLUETOOTH_CHOOSER (adapter->chooser));
+	connected = bluetooth_chooser_get_selected_device_is_connected (BLUETOOTH_CHOOSER (adapter->chooser));
 	update_buttons(adapter, (address != NULL), connected);
 }
 
@@ -202,10 +200,16 @@ static gboolean show_confirm_dialog(void)
 static void delete_callback(GtkWidget *button, gpointer user_data)
 {
 	adapter_data *adapter = user_data;
+	GValue value = { 0, };
 	DBusGProxy *device;
 	const char *path;
 
-	g_object_get (G_OBJECT (adapter->chooser), "device-selected-proxy", &device, NULL);
+	if (bluetooth_chooser_get_selected_device_info (BLUETOOTH_CHOOSER (adapter->chooser),
+							"proxy", &value) == FALSE) {
+		return;
+	}
+	device = g_value_dup_object (&value);
+	g_value_unset (&value);
 
 	if (device == NULL)
 		return;
@@ -224,9 +228,15 @@ static void delete_callback(GtkWidget *button, gpointer user_data)
 static void disconnect_callback(GtkWidget *button, gpointer user_data)
 {
 	adapter_data *adapter = user_data;
+	GValue value = { 0, };
 	DBusGProxy *device;
 
-	g_object_get (G_OBJECT (adapter->chooser), "device-selected-proxy", &device, NULL);
+	if (bluetooth_chooser_get_selected_device_info (BLUETOOTH_CHOOSER (adapter->chooser),
+							"proxy", &value) == FALSE) {
+		return;
+	}
+	device = g_value_dup_object (&value);
+	g_value_unset (&value);
 
 	if (device == NULL)
 		return;
@@ -395,8 +405,6 @@ static void create_adapter(adapter_data *adapter)
 
 	g_signal_connect (adapter->chooser, "notify::device-selected",
 			  G_CALLBACK(device_selected_cb), adapter);
-	g_signal_connect (adapter->chooser, "notify::device-selected-is-connected",
-			  G_CALLBACK(device_selected_cb), adapter);
 
 	gtk_table_attach(GTK_TABLE(table), adapter->chooser, 0, 1, 1, 2,
 			 GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
diff --git a/sendto/main.c b/sendto/main.c
index ab95abf..8a0af8b 100644
--- a/sendto/main.c
+++ b/sendto/main.c
@@ -736,11 +736,10 @@ show_browse_dialog (char **device_name)
 
 	bdaddr = NULL;
 	response_id = gtk_dialog_run (GTK_DIALOG (dialog));
-	if (response_id == GTK_RESPONSE_ACCEPT)
-		g_object_get (G_OBJECT (selector),
-			      "device-selected", &bdaddr,
-			      "device-selected-name", device_name,
-			      NULL);
+	if (response_id == GTK_RESPONSE_ACCEPT) {
+		bdaddr = bluetooth_chooser_get_selected_device (BLUETOOTH_CHOOSER (selector));
+		*device_name = bluetooth_chooser_get_selected_device_name (BLUETOOTH_CHOOSER (selector));
+	}
 
 	gtk_widget_destroy (dialog);
 
diff --git a/wizard/main.c b/wizard/main.c
index 7922551..badfc24 100644
--- a/wizard/main.c
+++ b/wizard/main.c
@@ -254,15 +254,13 @@ void prepare_callback(GtkWidget *assistant,
 
 	if (page == page_setup) {
 		gchar *text, *address, *name, *pin_ret;
-		guint type;
+		BluetoothType type;
 
 		/* Get the info about the device now,
 		 * we can't get here without a valid selection */
-		g_object_get (G_OBJECT (selector),
-			      "device-selected", &address,
-			      "device-selected-name", &name,
-			      "device-selected-type", &type,
-			      NULL);
+		address = bluetooth_chooser_get_selected_device (selector);
+		name = bluetooth_chooser_get_selected_device_name (selector);
+		type = bluetooth_chooser_get_selected_device_type (selector);
 
 		g_free(target_address);
 		target_address = address;
@@ -349,10 +347,8 @@ set_page_search_complete (void)
 	char *name, *address;
 	gboolean complete = FALSE;
 
-	g_object_get (G_OBJECT (selector),
-		      "device-selected", &address,
-		      "device-selected-name", &name,
-		      NULL);
+	address = bluetooth_chooser_get_selected_device (selector);
+	name = bluetooth_chooser_get_selected_device_name (selector);
 
 	if (address == NULL)
 		complete = FALSE;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]