datetime: propagate dbus errors

Make sure that any dbus errors can be presented in the UI if needed.
This commit is contained in:
Thomas Wood 2010-06-29 12:51:17 +01:00
parent 89e778c362
commit 12e1151128

View file

@ -36,7 +36,7 @@
static DBusGConnection * static DBusGConnection *
get_system_bus (void) get_system_bus (GError **err)
{ {
GError *error; GError *error;
static DBusGConnection *bus = NULL; static DBusGConnection *bus = NULL;
@ -45,9 +45,7 @@ get_system_bus (void)
error = NULL; error = NULL;
bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
if (bus == NULL) { if (bus == NULL) {
g_warning ("Couldn't connect to system bus: %s", g_propagate_error (err, error);
error->message);
g_error_free (error);
} }
} }
@ -81,7 +79,7 @@ refresh_can_do (const gchar *action, CanDoFunc callback)
DBusGConnection *bus; DBusGConnection *bus;
DBusGProxy *proxy; DBusGProxy *proxy;
bus = get_system_bus (); bus = get_system_bus (NULL);
if (bus == NULL) if (bus == NULL)
return; return;
@ -207,10 +205,17 @@ set_time_async (SetTimeCallbackData *data)
{ {
DBusGConnection *bus; DBusGConnection *bus;
DBusGProxy *proxy; DBusGProxy *proxy;
GError *err = NULL;
bus = get_system_bus (); bus = get_system_bus (&err);
if (bus == NULL) if (bus == NULL) {
return; if (err) {
if (data->callback)
data->callback (data->data, err);
g_clear_error (&err);
}
return;
}
proxy = dbus_g_proxy_new_for_name (bus, proxy = dbus_g_proxy_new_for_name (bus,
"org.gnome.SettingsDaemon.DateTimeMechanism", "org.gnome.SettingsDaemon.DateTimeMechanism",
@ -344,11 +349,19 @@ get_system_timezone_async (GetTimezoneFunc callback,
DBusGConnection *bus; DBusGConnection *bus;
DBusGProxy *proxy; DBusGProxy *proxy;
GetTimezoneData *data; GetTimezoneData *data;
GError *error = NULL;
bus = get_system_bus (); bus = get_system_bus (&error);
if (bus == NULL) if (bus == NULL) {
if (error) {
if (callback)
callback (user_data, NULL, error);
g_clear_error (&error);
}
return; return;
}
data = g_new0 (GetTimezoneData, 1); data = g_new0 (GetTimezoneData, 1);
data->data = user_data; data->data = user_data;
data->notify = notify; data->notify = notify;