static void default_adapter_changed (GObject *gobject, GParamSpec *arg1, gpointer data) { BluetoothChooser *self = BLUETOOTH_CHOOSER (data); BluetoothChooserPrivate *priv = BLUETOOTH_CHOOSER_GET_PRIVATE(self); char *adapter; g_object_get (gobject, "default-adapter", &adapter, NULL); if (adapter == NULL) { gtk_widget_set_sensitive (GTK_WIDGET (priv->treeview), FALSE); set_search_label (self, FALSE); gtk_tree_view_set_model (GTK_TREE_VIEW(priv->treeview), NULL); } if (priv->model) { g_object_unref (priv->model); priv->model = NULL; } if (adapter == NULL) return; g_free (adapter); priv->model = bluetooth_client_get_device_model (priv->client); if (priv->model) { priv->filter = gtk_tree_model_filter_new (priv->model, NULL); gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (priv->filter), filter_func, self, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW(priv->treeview), priv->filter); g_signal_connect (priv->filter, "row-changed", G_CALLBACK (device_model_row_changed), self); g_object_unref (priv->filter); gtk_widget_set_sensitive (GTK_WIDGET (priv->treeview), TRUE); /* Start a discovery if it was requested before we * had an adapter available */ if (priv->disco_rq != FALSE) { bluetooth_chooser_start_discovery (self); set_search_label (self, TRUE); } } }
static GtkWidget* get_contacts_widget (NstPlugin *plugin) { GtkWidget *chooser; const char *filter = "OBEXObjectPush"; combo = bluetooth_chooser_combo_new (); g_object_get (G_OBJECT (combo), "chooser", &chooser, NULL); g_object_set (chooser, "show-searching", TRUE, "show-device-type", FALSE, "show-device-category", FALSE, "show-pairing", TRUE, "show-connected", FALSE, "device-service-filter", filter, NULL); set_last_used_device (); bluetooth_chooser_start_discovery (BLUETOOTH_CHOOSER (chooser)); gtk_container_set_border_width (GTK_CONTAINER (combo), 0); gtk_widget_show (combo); return combo; }