cheese r475 - in trunk: . data data/effects data/icons data/icons/16x16 data/icons/22x22 data/icons/24x24 data/icons/32x32 data/icons/48x48 data/icons/scalable data/pixmaps data/sounds help help/es help/oc help/ru help/sv src
- From: tvainika svn gnome org
- To: svn-commits-list gnome org
- Subject: cheese r475 - in trunk: . data data/effects data/icons data/icons/16x16 data/icons/22x22 data/icons/24x24 data/icons/32x32 data/icons/48x48 data/icons/scalable data/pixmaps data/sounds help help/es help/oc help/ru help/sv src
- Date: Sun, 3 Feb 2008 14:57:34 +0000 (GMT)
Author: tvainika
Date: Sun Feb 3 14:57:34 2008
New Revision: 475
URL: http://svn.gnome.org/viewvc/cheese?rev=475&view=rev
Log:
2008-02-03 Tommi Vainikainen <thv iki fi>
* src/cheese-window.c, src/cheese-countdown.h,
src/cheese-countdown.c: Pressing 'Esc' cancels countdown/stop video
recording.
* src/, help/, data/: Updated svn:ignore property for each dir to
include autogenerated files.
Modified:
trunk/ (props changed)
trunk/ChangeLog
trunk/data/ (props changed)
trunk/data/effects/ (props changed)
trunk/data/icons/ (props changed)
trunk/data/icons/16x16/ (props changed)
trunk/data/icons/22x22/ (props changed)
trunk/data/icons/24x24/ (props changed)
trunk/data/icons/32x32/ (props changed)
trunk/data/icons/48x48/ (props changed)
trunk/data/icons/scalable/ (props changed)
trunk/data/pixmaps/ (props changed)
trunk/data/sounds/ (props changed)
trunk/help/ (props changed)
trunk/help/es/ (props changed)
trunk/help/oc/ (props changed)
trunk/help/ru/ (props changed)
trunk/help/sv/ (props changed)
trunk/src/ (props changed)
trunk/src/cheese-countdown.c
trunk/src/cheese-countdown.h
trunk/src/cheese-window.c
Modified: trunk/src/cheese-countdown.c
==============================================================================
--- trunk/src/cheese-countdown.c (original)
+++ trunk/src/cheese-countdown.c Sun Feb 3 14:57:34 2008
@@ -299,9 +299,8 @@
switch (priv->iState)
{
case STATE_OFF:
- // should just ignore it, testing purposes
- g_print("Should not happen, unitialized state in countdown handler\n");
- break;
+ /* Countdown was cancelled */
+ return FALSE;
case STATE_3:
priv->iState = STATE_2;
@@ -340,6 +339,13 @@
g_timeout_add_seconds (1, cheese_countdown_cb, (gpointer) countdown);
}
+void
+cheese_countdown_cancel (CheeseCountdown *countdown)
+{
+ CheeseCountdownPrivate* priv = CHEESE_COUNTDOWN_GET_PRIVATE (countdown);
+ priv->iState = STATE_OFF;
+}
+
static void
cheese_countdown_finalize (GObject *object)
{
Modified: trunk/src/cheese-countdown.h
==============================================================================
--- trunk/src/cheese-countdown.h (original)
+++ trunk/src/cheese-countdown.h Sun Feb 3 14:57:34 2008
@@ -46,6 +46,7 @@
GtkWidget *cheese_countdown_new ();
void cheese_countdown_start (CheeseCountdown *countdown, cheese_countdown_cb_t picture_cb, cheese_countdown_cb_t hide_cb, gpointer data);
+void cheese_countdown_cancel (CheeseCountdown *countdown);
G_END_DECLS
Modified: trunk/src/cheese-window.c
==============================================================================
--- trunk/src/cheese-window.c (original)
+++ trunk/src/cheese-window.c Sun Feb 3 14:57:34 2008
@@ -784,6 +784,45 @@
}
static void
+cheese_window_stop_recording (CheeseWindow *cheese_window)
+{
+ if (cheese_window->recording)
+ {
+ cheese_webcam_stop_video_recording (cheese_window->webcam);
+ gtk_widget_set_sensitive (cheese_window->button_effects, TRUE);
+ gtk_widget_set_sensitive (cheese_window->button_photo, TRUE);
+ gtk_widget_set_sensitive (cheese_window->button_video, TRUE);
+ gchar * str = g_strconcat ("<b>", _("_Start recording"), "</b>", NULL);
+ gtk_label_set_text_with_mnemonic (GTK_LABEL (cheese_window->label_take_photo), str);
+ g_free (str);
+ gtk_label_set_use_markup (GTK_LABEL (cheese_window->label_take_photo), TRUE);
+ gtk_image_set_from_stock (GTK_IMAGE (cheese_window->image_take_photo), GTK_STOCK_MEDIA_RECORD, GTK_ICON_SIZE_BUTTON);
+
+ cheese_window->recording = FALSE;
+ }
+}
+
+static gboolean
+cheese_window_cancel_cb (CheeseWindow *cheese_window,
+ GtkAccelGroup *accel_group,
+ guint keyval, GdkModifierType modifier)
+{
+ cheese_countdown_cancel ((CheeseCountdown *) cheese_window->countdown);
+
+ if (cheese_window->webcam_mode == WEBCAM_MODE_PHOTO)
+ {
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (cheese_window->notebook_bar), 0);
+
+ gtk_widget_set_sensitive (cheese_window->take_picture, TRUE);
+ }
+ else
+ {
+ cheese_window_stop_recording (cheese_window);
+ }
+ return TRUE;
+}
+
+static void
cheese_window_action_button_clicked_cb (GtkWidget *widget, CheeseWindow *cheese_window)
{
char *str;
@@ -811,20 +850,13 @@
cheese_window->video_filename = cheese_fileutil_get_new_media_filename (WEBCAM_MODE_VIDEO);
cheese_webcam_start_video_recording (cheese_window->webcam, cheese_window->video_filename);
+
+ cheese_window->recording = TRUE;
}
else
{
- cheese_webcam_stop_video_recording (cheese_window->webcam);
- gtk_widget_set_sensitive (cheese_window->button_effects, TRUE);
- gtk_widget_set_sensitive (cheese_window->button_photo, TRUE);
- gtk_widget_set_sensitive (cheese_window->button_video, TRUE);
- str = g_strconcat ("<b>", _("_Start recording"), "</b>", NULL);
- gtk_label_set_text_with_mnemonic (GTK_LABEL (cheese_window->label_take_photo), str);
- g_free (str);
- gtk_label_set_use_markup (GTK_LABEL (cheese_window->label_take_photo), TRUE);
- gtk_image_set_from_stock (GTK_IMAGE (cheese_window->image_take_photo), GTK_STOCK_MEDIA_RECORD, GTK_ICON_SIZE_BUTTON);
+ cheese_window_stop_recording (cheese_window);
}
- cheese_window->recording = !cheese_window->recording;
}
}
@@ -1073,6 +1105,12 @@
gtk_window_add_accel_group (GTK_WINDOW (cheese_window->window),
gtk_ui_manager_get_accel_group (cheese_window->ui_manager));
+ gtk_accel_group_connect (gtk_ui_manager_get_accel_group (cheese_window->ui_manager),
+ GDK_Escape, 0, 0,
+ g_cclosure_new_swap (G_CALLBACK (cheese_window_cancel_cb),
+ cheese_window, NULL));
+
+
gtk_action_group_set_sensitive (cheese_window->actions_file, FALSE);
/* Default handlers for closing the application */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]