diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2011-07-24 10:51:08 +1000 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2011-07-24 10:51:08 +1000 |
commit | 5c667b02eb582350673bc9672cb40c4acf2dafbd (patch) | |
tree | 3ae7d3fa42cf7d7949d1b9a00bc032a56d1c7781 | |
parent | 545bb9deb2281e390e32128743929473db51819b (diff) | |
download | lightdm-5c667b02eb582350673bc9672cb40c4acf2dafbd.tar.gz |
Add GErrors to liblightdm-gobject
-rw-r--r-- | doc/tmpl/greeter.sgml | 6 | ||||
-rw-r--r-- | doc/tmpl/power.sgml | 12 | ||||
-rw-r--r-- | greeters/gtk/lightdm-gtk-greeter.c | 16 | ||||
-rw-r--r-- | liblightdm-gobject/greeter.c | 6 | ||||
-rw-r--r-- | liblightdm-gobject/liblightdm-gobject-1.vapi | 12 | ||||
-rw-r--r-- | liblightdm-gobject/lightdm/greeter.h | 4 | ||||
-rw-r--r-- | liblightdm-gobject/lightdm/power.h | 8 | ||||
-rw-r--r-- | liblightdm-gobject/power.c | 74 | ||||
-rw-r--r-- | tests/src/test-gobject-greeter.c | 4 |
9 files changed, 75 insertions, 67 deletions
diff --git a/doc/tmpl/greeter.sgml b/doc/tmpl/greeter.sgml index 07777f5b..b72e8fd8 100644 --- a/doc/tmpl/greeter.sgml +++ b/doc/tmpl/greeter.sgml @@ -24,7 +24,7 @@ int main () g_object_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL); // Connect to LightDM daemon - if (!lightdm_greeter_connect_sync (LIGHTDM_GREETER (greeter))) + if (!lightdm_greeter_connect_sync (greeter, NULL)) return EXIT_FAILURE; // Start authentication @@ -48,7 +48,7 @@ static void authentication_complete_cb (LightDMGreeter *greeter) { // Start the session if (!lightdm_greeter_get_is_authenticated (greeter) || - !lightdm_greeter_start_session_sync (greeter)) + !lightdm_greeter_start_session_sync (greeter, NULL)) { // Failed authentication, try again lightdm_greeter_authenticate (greeter, NULL); @@ -136,6 +136,7 @@ static void authentication_complete_cb (LightDMGreeter *greeter) </para> @greeter: +@error: @Returns: @@ -297,6 +298,7 @@ static void authentication_complete_cb (LightDMGreeter *greeter) @greeter: @session: +@error: @Returns: diff --git a/doc/tmpl/power.sgml b/doc/tmpl/power.sgml index 2d1f5ff5..057d35a4 100644 --- a/doc/tmpl/power.sgml +++ b/doc/tmpl/power.sgml @@ -34,7 +34,8 @@ Shutdown, restart, sleep the system </para> -@void: +@error: +@Returns: <!-- ##### FUNCTION lightdm_get_can_hibernate ##### --> @@ -51,7 +52,8 @@ Shutdown, restart, sleep the system </para> -@void: +@error: +@Returns: <!-- ##### FUNCTION lightdm_get_can_restart ##### --> @@ -68,7 +70,8 @@ Shutdown, restart, sleep the system </para> -@void: +@error: +@Returns: <!-- ##### FUNCTION lightdm_get_can_shutdown ##### --> @@ -85,6 +88,7 @@ Shutdown, restart, sleep the system </para> -@void: +@error: +@Returns: diff --git a/greeters/gtk/lightdm-gtk-greeter.c b/greeters/gtk/lightdm-gtk-greeter.c index 86ac4cae..7394ac31 100644 --- a/greeters/gtk/lightdm-gtk-greeter.c +++ b/greeters/gtk/lightdm-gtk-greeter.c @@ -125,8 +125,10 @@ cancel_authentication (void) static void start_session (void) { - gchar *session = get_session (); - if (!lightdm_greeter_start_session_sync (greeter, session)) + gchar *session; + + session = get_session (); + if (!lightdm_greeter_start_session_sync (greeter, session, NULL)) { set_message_label (_("Failed to start session")); start_authentication (lightdm_greeter_get_authentication_user (greeter)); @@ -289,7 +291,7 @@ G_MODULE_EXPORT void suspend_cb (GtkWidget *widget, LightDMGreeter *greeter) { - lightdm_suspend (); + lightdm_suspend (NULL); } void hibernate_cb (GtkWidget *widget, LightDMGreeter *greeter); @@ -297,7 +299,7 @@ G_MODULE_EXPORT void hibernate_cb (GtkWidget *widget, LightDMGreeter *greeter) { - lightdm_hibernate (); + lightdm_hibernate (NULL); } void restart_cb (GtkWidget *widget, LightDMGreeter *greeter); @@ -319,7 +321,7 @@ restart_cb (GtkWidget *widget, LightDMGreeter *greeter) center_window (GTK_WINDOW (dialog)); if (gtk_dialog_run (GTK_DIALOG (dialog))) - lightdm_restart (); + lightdm_restart (NULL); gtk_widget_destroy (dialog); gtk_widget_show (GTK_WIDGET (login_window)); @@ -344,7 +346,7 @@ shutdown_cb (GtkWidget *widget, LightDMGreeter *greeter) center_window (GTK_WINDOW (dialog)); if (gtk_dialog_run (GTK_DIALOG (dialog))) - lightdm_shutdown (); + lightdm_shutdown (NULL); gtk_widget_destroy (dialog); gtk_widget_show (GTK_WIDGET (login_window)); @@ -603,7 +605,7 @@ main(int argc, char **argv) g_signal_connect (greeter, "show-message", G_CALLBACK (show_message_cb), NULL); g_signal_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL); g_signal_connect (greeter, "autologin-timer-expired", G_CALLBACK (autologin_timer_expired_cb), NULL); - if (!lightdm_greeter_connect_sync (greeter)) + if (!lightdm_greeter_connect_sync (greeter, NULL)) return EXIT_FAILURE; /* Set default cursor */ diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c index 12c54d87..f6ceaee6 100644 --- a/liblightdm-gobject/greeter.c +++ b/liblightdm-gobject/greeter.c @@ -440,13 +440,14 @@ from_server_cb (GIOChannel *source, GIOCondition condition, gpointer data) /** * lightdm_greeter_connect_sync: * @greeter: The greeter to connect + * @error: return location for a #GError, or %NULL * * Connects the greeter to the display manager. Will block until connected. * * Return value: #TRUE if successfully connected **/ gboolean -lightdm_greeter_connect_sync (LightDMGreeter *greeter) +lightdm_greeter_connect_sync (LightDMGreeter *greeter, GError **error) { LightDMGreeterPrivate *priv; const gchar *fd; @@ -841,13 +842,14 @@ lightdm_greeter_get_authentication_user (LightDMGreeter *greeter) * lightdm_greeter_start_session_sync: * @greeter: A #LightDMGreeter * @session: (allow-none): The session to log into or #NULL to use the default. + * @error: return location for a #GError, or %NULL * * Start a session for the authenticated user. * * Return value: TRUE if the session was started. **/ gboolean -lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *session) +lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *session, GError **error) { LightDMGreeterPrivate *priv; guint8 message[MAX_MESSAGE_LENGTH]; diff --git a/liblightdm-gobject/liblightdm-gobject-1.vapi b/liblightdm-gobject/liblightdm-gobject-1.vapi index 241d8e7c..ff61d0e3 100644 --- a/liblightdm-gobject/liblightdm-gobject-1.vapi +++ b/liblightdm-gobject/liblightdm-gobject-1.vapi @@ -8,13 +8,13 @@ namespace LightDM { public static void set_layout (Layout layout); public static unowned Layout get_layout (); public static bool get_can_suspend (); - public static void suspend (); + public static bool suspend () throws GLib.Error; public static bool get_can_hibernate (); - public static void hibernate (); + public static bool hibernate () throws GLib.Error; public static bool get_can_restart (); - public static void restart (); + public static bool restart () throws GLib.Error; public static bool get_can_shutdown (); - public static void shutdown (); + public static bool shutdown () throws GLib.Error; public class Greeter : GLib.Object { public Greeter (); @@ -23,7 +23,7 @@ namespace LightDM { public signal void authentication_complete (); public signal void autologin_timer_expired (); - public bool connect_sync (); + public bool connect_sync () throws GLib.Error; public unowned string get_hint (string name); public unowned string default_session_hint { get; } public bool hide_users_hint { get; } @@ -41,7 +41,7 @@ namespace LightDM { public bool in_authentication { get; } public bool is_authenticated { get; } public unowned string authentication_user { get; } - public void start_session_sync (string? session = null); + public void start_session_sync (string? session = null) throws GLib.Error; } public enum MessageType { INFO, diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h index 7b834bb9..52b43311 100644 --- a/liblightdm-gobject/lightdm/greeter.h +++ b/liblightdm-gobject/lightdm/greeter.h @@ -72,7 +72,7 @@ GType lightdm_greeter_get_type (void); LightDMGreeter *lightdm_greeter_new (void); -gboolean lightdm_greeter_connect_sync (LightDMGreeter *greeter); +gboolean lightdm_greeter_connect_sync (LightDMGreeter *greeter, GError **error); const gchar *lightdm_greeter_get_hint (LightDMGreeter *greeter, const gchar *name); @@ -108,7 +108,7 @@ gboolean lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter); const gchar *lightdm_greeter_get_authentication_user (LightDMGreeter *greeter); -gboolean lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *session); +gboolean lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *session, GError **error); G_END_DECLS diff --git a/liblightdm-gobject/lightdm/power.h b/liblightdm-gobject/lightdm/power.h index 7d37c1c6..284382b2 100644 --- a/liblightdm-gobject/lightdm/power.h +++ b/liblightdm-gobject/lightdm/power.h @@ -14,19 +14,19 @@ gboolean lightdm_get_can_suspend (void); -void lightdm_suspend (void); +gboolean lightdm_suspend (GError **error); gboolean lightdm_get_can_hibernate (void); -void lightdm_hibernate (void); +gboolean lightdm_hibernate (GError **error); gboolean lightdm_get_can_restart (void); -void lightdm_restart (void); +gboolean lightdm_restart (GError **error); gboolean lightdm_get_can_shutdown (void); -void lightdm_shutdown (void); +gboolean lightdm_shutdown (GError **error); G_END_DECLS diff --git a/liblightdm-gobject/power.c b/liblightdm-gobject/power.c index fff8943e..9b88b87d 100644 --- a/liblightdm-gobject/power.c +++ b/liblightdm-gobject/power.c @@ -20,11 +20,10 @@ static GDBusProxy *upower_proxy = NULL; static GDBusProxy *ck_proxy = NULL; static gboolean -upower_call_function (const gchar *function, gboolean has_result) +upower_call_function (const gchar *function, gboolean default_result, GError **error) { GVariant *result; gboolean function_result = FALSE; - GError *error = NULL; if (!upower_proxy) { @@ -35,10 +34,7 @@ upower_call_function (const gchar *function, gboolean has_result) "/org/freedesktop/UPower", "org.freedesktop.UPower", NULL, - &error); - if (!upower_proxy) - g_warning ("Error getting UPower proxy: %s", error->message); - g_clear_error (&error); + error); if (!upower_proxy) return FALSE; } @@ -49,12 +45,9 @@ upower_call_function (const gchar *function, gboolean has_result) G_DBUS_CALL_FLAGS_NONE, -1, NULL, - &error); - if (!result) - g_warning ("Error calling UPower function %s: %s", function, error->message); - g_clear_error (&error); + error); if (!result) - return FALSE; + return default_result; if (g_variant_is_of_type (result, G_VARIANT_TYPE ("(b)"))) g_variant_get (result, "(b)", &function_result); @@ -73,18 +66,21 @@ upower_call_function (const gchar *function, gboolean has_result) gboolean lightdm_get_can_suspend (void) { - return upower_call_function ("SuspendAllowed", TRUE); + return upower_call_function ("SuspendAllowed", FALSE, NULL); } /** * lightdm_suspend: + * @error: return location for a #GError, or %NULL * * Triggers a system suspend. + * + * Return value: #TRUE if suspend initiated. **/ -void -lightdm_suspend (void) +gboolean +lightdm_suspend (GError **error) { - upower_call_function ("Suspend", FALSE); + return upower_call_function ("Suspend", TRUE, error); } /** @@ -97,26 +93,28 @@ lightdm_suspend (void) gboolean lightdm_get_can_hibernate (void) { - return upower_call_function ("HibernateAllowed", TRUE); + return upower_call_function ("HibernateAllowed", FALSE, NULL); } /** * lightdm_hibernate: + * @error: return location for a #GError, or %NULL * * Triggers a system hibernate. + * + * Return value: #TRUE if hibernate initiated. **/ -void -lightdm_hibernate (void) +gboolean +lightdm_hibernate (GError **error) { - upower_call_function ("Hibernate", FALSE); + return upower_call_function ("Hibernate", TRUE, error); } static gboolean -ck_call_function (const gchar *function, gboolean has_result) +ck_call_function (const gchar *function, gboolean default_result, GError **error) { GVariant *result; gboolean function_result = FALSE; - GError *error = NULL; if (!ck_proxy) { @@ -127,10 +125,7 @@ ck_call_function (const gchar *function, gboolean has_result) "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", NULL, - &error); - if (!ck_proxy) - g_warning ("Error getting ConsoleKit proxy: %s", error->message); - g_clear_error (&error); + error); if (!ck_proxy) return FALSE; } @@ -141,13 +136,10 @@ ck_call_function (const gchar *function, gboolean has_result) G_DBUS_CALL_FLAGS_NONE, -1, NULL, - &error); + error); if (!result) - g_warning ("Error calling ConsoleKit function %s: %s", function, error->message); - g_clear_error (&error); - if (!result) - return FALSE; + return default_result; if (g_variant_is_of_type (result, G_VARIANT_TYPE ("(b)"))) g_variant_get (result, "(b)", &function_result); @@ -166,18 +158,21 @@ ck_call_function (const gchar *function, gboolean has_result) gboolean lightdm_get_can_restart (void) { - return ck_call_function ("CanRestart", TRUE); + return ck_call_function ("CanRestart", FALSE, NULL); } /** * lightdm_restart: + * @error: return location for a #GError, or %NULL * * Triggers a system restart. + * + * Return value: #TRUE if restart initiated. **/ -void -lightdm_restart (void) +gboolean +lightdm_restart (GError **error) { - ck_call_function ("Restart", FALSE); + return ck_call_function ("Restart", TRUE, error); } /** @@ -190,16 +185,19 @@ lightdm_restart (void) gboolean lightdm_get_can_shutdown (void) { - return ck_call_function ("CanStop", TRUE); + return ck_call_function ("CanStop", FALSE, NULL); } /** * lightdm_shutdown: + * @error: return location for a #GError, or %NULL * * Triggers a system shutdown. + * + * Return value: #TRUE if shutdown initiated. **/ -void -lightdm_shutdown (void) +gboolean +lightdm_shutdown (GError **error) { - ck_call_function ("Stop", FALSE); + return ck_call_function ("Stop", TRUE, error); } diff --git a/tests/src/test-gobject-greeter.c b/tests/src/test-gobject-greeter.c index 9a970093..7e8ccd6d 100644 --- a/tests/src/test-gobject-greeter.c +++ b/tests/src/test-gobject-greeter.c @@ -53,7 +53,7 @@ authentication_complete_cb (LightDMGreeter *greeter) if (!lightdm_greeter_get_is_authenticated (greeter)) return; - if (!lightdm_greeter_start_session_sync (greeter, NULL)) + if (!lightdm_greeter_start_session_sync (greeter, NULL, NULL)) notify_status ("GREETER SESSION-FAILED"); } @@ -98,7 +98,7 @@ main (int argc, char **argv) g_signal_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL); notify_status ("GREETER CONNECT-TO-DAEMON"); - if (!lightdm_greeter_connect_sync (greeter)) + if (!lightdm_greeter_connect_sync (greeter, NULL)) { notify_status ("GREETER FAIL-CONNECT-DAEMON"); return EXIT_FAILURE; |