gnome-bluetooth r382 - trunk/common
- From: hadess svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-bluetooth r382 - trunk/common
- Date: Fri, 27 Feb 2009 00:04:31 +0000 (UTC)
Author: hadess
Date: Fri Feb 27 00:04:31 2009
New Revision: 382
URL: http://svn.gnome.org/viewvc/gnome-bluetooth?rev=382&view=rev
Log:
Use the new powered property
is-available is FALSE when the default adapter isn't powered.
And make the property actually work, not just the function.
Modified:
trunk/common/bluetooth-chooser-button.c
Modified: trunk/common/bluetooth-chooser-button.c
==============================================================================
--- trunk/common/bluetooth-chooser-button.c (original)
+++ trunk/common/bluetooth-chooser-button.c Fri Feb 27 00:04:31 2009
@@ -38,7 +38,8 @@
GtkWidget *dialog;
GtkWidget *chooser;
char *bdaddr;
- gboolean is_available;
+ guint is_available : 1;
+ guint has_selection : 1;
};
enum {
@@ -142,11 +143,13 @@
g_free (found_icon);
}
-static void select_device_changed(BluetoothChooser *self, gchar *address, gpointer user_data)
+static void select_device_changed(BluetoothChooser *self, gchar *address, gpointer data)
{
- GtkDialog *dialog = user_data;
+ BluetoothChooserButton *button = BLUETOOTH_CHOOSER_BUTTON (data);
- gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_ACCEPT, address != NULL);
+ button->has_selection = (address != NULL);
+ gtk_dialog_set_response_sensitive(GTK_DIALOG (button->dialog), GTK_RESPONSE_ACCEPT,
+ button->has_selection && button->is_available);
}
static void
@@ -204,7 +207,7 @@
/* Create the button->chooser */
button->chooser = bluetooth_chooser_new (NULL);
g_signal_connect(button->chooser, "selected-device-changed",
- G_CALLBACK(select_device_changed), button->dialog);
+ G_CALLBACK(select_device_changed), button);
g_signal_emit (G_OBJECT (button),
signals[CHOOSER_CREATED],
0, button->chooser);
@@ -220,13 +223,24 @@
{
BluetoothChooserButton *button = BLUETOOTH_CHOOSER_BUTTON (data);
char *adapter;
+ gboolean powered;
- g_object_get (G_OBJECT (button->client), "default-adapter", &adapter, NULL);
- button->is_available = (adapter != NULL);
- g_free (adapter);
+ g_object_get (G_OBJECT (button->client),
+ "default-adapter", &adapter,
+ "default-adapter-powered", &powered,
+ NULL);
+ if (adapter != NULL)
+ button->is_available = powered;
+ else
+ button->is_available = FALSE;
- if (button->is_available != FALSE)
+ if (adapter != NULL)
set_btdevname (button, button->bdaddr, NULL, NULL);
+ g_free (adapter);
+
+ if (button->dialog != NULL)
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (button->dialog), GTK_RESPONSE_ACCEPT,
+ button->has_selection && button->is_available);
g_object_notify (G_OBJECT (button), "is-available");
}
@@ -279,6 +293,9 @@
case PROP_DEVICE:
g_value_set_string (value, button->bdaddr);
break;
+ case PROP_IS_AVAILABLE:
+ g_value_set_boolean (value, button->is_available);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
@@ -352,6 +369,8 @@
button->client = bluetooth_client_new ();
g_signal_connect (G_OBJECT (button->client), "notify::default-adapter",
G_CALLBACK (default_adapter_changed), button);
+ g_signal_connect (G_OBJECT (button->client), "notify::default-adapter-powered",
+ G_CALLBACK (default_adapter_changed), button);
/* And set the default value already */
default_adapter_changed (NULL, NULL, button);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]