Пример #1
0
static void
constructed (GObject *object)
{
    NmnModelPrivate *priv = GET_PRIVATE (object);
    NMListModel *child_model;
    DBusGConnection *bus;

    if (G_OBJECT_CLASS (nmn_model_parent_class)->constructed)
        G_OBJECT_CLASS (nmn_model_parent_class)->constructed (object);

    child_model = NM_LIST_MODEL (gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (object)));

    priv->client = nm_list_model_get_client (child_model);
    bus = nm_object_get_connection (NM_OBJECT (priv->client));

    priv->user_settings = NM_SETTINGS_INTERFACE (nm_gconf_settings_new (bus));
    priv->system_settings = NM_SETTINGS_INTERFACE (nm_remote_settings_system_new (bus));

    nm_list_model_add_settings (child_model, priv->user_settings);
    nm_list_model_add_settings (child_model, priv->system_settings);

    g_signal_connect (priv->client,
                      "notify::" NM_CLIENT_STATE,
                      G_CALLBACK (nm_client_state_changed),
                      object);

    g_signal_connect (priv->client,
                      "notify::" NM_CLIENT_WIRELESS_ENABLED,
                      G_CALLBACK (nm_wireless_state_changed),
                      object);

    g_signal_connect (priv->client,
                      "notify::" NM_CLIENT_WIRELESS_HARDWARE_ENABLED,
                      G_CALLBACK (nm_wireless_state_changed),
                      object);

    nm_wireless_state_changed (priv->client, NULL, object);
    nm_client_state_changed (priv->client, NULL, object);

    if (request_dbus_name (bus))
        dbus_g_connection_register_g_object (bus, NM_DBUS_PATH_SETTINGS, G_OBJECT (priv->user_settings));
}
static void
do_connection (struct start_network_data *user_data)
{
	DBusGConnection *bus;
	GError *error = NULL;
	NMRemoteSettingsSystem *system_settings;
	gboolean system_settings_running;
	struct start_network_data *data = (struct start_network_data *)user_data;

	bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
	if (!bus || error) {
		network_status (data->client, "Unable to connect to system bus");
		g_main_loop_quit (loop);
		goto out;
	}

	system_settings = nm_remote_settings_system_new(bus);
	if(!system_settings) {
		network_status (data->client, "Unable to get system settings");
		g_main_loop_quit (loop);
		goto out;
	}

	g_object_get (system_settings, NM_REMOTE_SETTINGS_SERVICE_RUNNING, &system_settings_running, NULL);
	if(!system_settings_running) {
		network_status (data->client, "System settings service is not running");
		g_main_loop_quit (loop);
		goto out;
	}


	g_signal_connect (system_settings, NM_SETTINGS_INTERFACE_CONNECTIONS_READ,
				G_CALLBACK (connections_read), data);

out:
	if (bus)
		dbus_g_connection_unref(bus);
	return;
}