[cheese] widget: propagate error message from cheese-camera
- From: Filippo Argiolas <fargiolas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cheese] widget: propagate error message from cheese-camera
- Date: Sun, 21 Feb 2010 21:37:45 +0000 (UTC)
commit d92b053c0bc0f6d27e539addea1d867c95c02951
Author: Filippo Argiolas <filippo argiolas gmail com>
Date: Sun Feb 21 10:32:25 2010 +0100
widget: propagate error message from cheese-camera
Use error messages from CheeseCamera instead of a custom one in the
"error" signal
libcheese/cheese-widget.c | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)
---
diff --git a/libcheese/cheese-widget.c b/libcheese/cheese-widget.c
index 731d084..2841cce 100644
--- a/libcheese/cheese-widget.c
+++ b/libcheese/cheese-widget.c
@@ -284,13 +284,18 @@ cheese_widget_changed (CheeseWidget *self)
#endif
+#if 0
static gboolean
cheese_widget_emit_error_idle (CheeseWidget *widget)
{
+ CheeseWidgetPrivate *priv = CHEESE_WIDGET_GET_PRIVATE (widget);
g_signal_emit (widget, widget_signals[ERROR_SIGNAL], 0,
+ (priv->error && priv->error->message) ?
+ priv->error->message :
_("Camera setup failed"));
return FALSE;
}
+#endif
void
setup_camera (CheeseWidget *widget)
@@ -324,20 +329,15 @@ setup_camera (CheeseWidget *widget)
g_free (webcam_device);
cheese_camera_setup (priv->webcam, NULL, &error);
- if (error != NULL)
- {
- g_warning ("Error setting up webcam %s", error->message);
- cheese_widget_set_problem_page (CHEESE_WIDGET (widget), "no-webcam");
- g_idle_add ((GSourceFunc) cheese_widget_emit_error_idle, widget);
- return;
- }
gdk_threads_enter ();
+
gtk_spinner_stop (GTK_SPINNER (priv->spinner));
- if (cheese_camera_get_num_camera_devices (priv->webcam) == 0)
+ if (error != NULL)
{
cheese_widget_set_problem_page (CHEESE_WIDGET (widget), "no-webcam");
+ g_signal_emit (widget, widget_signals[ERROR_SIGNAL], 0, error->message);
}
else
{
@@ -375,8 +375,7 @@ cheese_widget_realize (GtkWidget *widget)
if (!g_thread_create ((GThreadFunc) setup_camera, widget, FALSE, &error))
{
- g_warning ("Failed to create setup thread: %s\n", error->message);
- g_error_free (error);
+ g_warning ("Failed to create setup thread: %s", error->message);
goto error;
}
@@ -390,7 +389,7 @@ error:
gtk_spinner_stop (GTK_SPINNER (priv->spinner));
cheese_widget_set_problem_page (CHEESE_WIDGET (widget), "error");
g_signal_emit (widget, widget_signals[ERROR_SIGNAL], 0,
- _("Camera setup failed"));
+ error->message);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]