57c6aae
From b851a44075fea20054c4c5345da46a52e3cba91c Mon Sep 17 00:00:00 2001
57c6aae
From: Hans de Goede <hdegoede@redhat.com>
57c6aae
Date: Tue, 18 Jun 2013 10:04:36 +0200
57c6aae
Subject: [PATCH 41/50] cheese-window: Add show_error () method
57c6aae
57c6aae
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
57c6aae
---
57c6aae
 src/cheese-window.vala | 54 +++++++++++++++++++++++++++++++-------------------
57c6aae
 1 file changed, 34 insertions(+), 20 deletions(-)
57c6aae
57c6aae
diff --git a/src/cheese-window.vala b/src/cheese-window.vala
57c6aae
index ab383f9..77efd32 100644
57c6aae
--- a/src/cheese-window.vala
57c6aae
+++ b/src/cheese-window.vala
57c6aae
@@ -1045,6 +1045,31 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
57c6aae
     }
57c6aae
 
57c6aae
     /**
57c6aae
+     * Show an error.
57c6aae
+     *
57c6aae
+     * @param error the error to display, or null to hide the error layer
57c6aae
+     */
57c6aae
+    [CCode (instance_pos = -1)]
57c6aae
+    public void show_error (string? error)
57c6aae
+    {
57c6aae
+      if (error != null)
57c6aae
+      {
57c6aae
+        current_effects_grid.hide ();
57c6aae
+        video_preview.hide ();
57c6aae
+        error_layer.text = error;
57c6aae
+        error_layer.show ();
57c6aae
+      }
57c6aae
+      else
57c6aae
+      {
57c6aae
+        error_layer.hide ();
57c6aae
+        if (is_effects_selector_active)
57c6aae
+          current_effects_grid.show ();
57c6aae
+        else
57c6aae
+          video_preview.show ();
57c6aae
+      }
57c6aae
+    }
57c6aae
+
57c6aae
+    /**
57c6aae
      * Toggle the display of the effect selector.
57c6aae
      *
57c6aae
      * @param effects whether effects should be enabled
57c6aae
@@ -1179,31 +1204,19 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
57c6aae
   private void toggle_effects_selector (bool active)
57c6aae
   {
57c6aae
     is_effects_selector_active = active;
57c6aae
-    if (active)
57c6aae
+    if (effects_grids.length () == 0)
57c6aae
+    {
57c6aae
+      show_error(active ? _("No effects found") : null);
57c6aae
+    }
57c6aae
+    else if (active)
57c6aae
     {
57c6aae
       video_preview.hide ();
57c6aae
-
57c6aae
-      if (effects_grids.length () == 0)
57c6aae
-      {
57c6aae
-        error_layer.text = _("No effects found");
57c6aae
-        error_layer.show ();
57c6aae
-      }
57c6aae
-      else
57c6aae
-      {
57c6aae
-        current_effects_grid.show ();
57c6aae
-        activate_effects_page ((int)current_effects_page);
57c6aae
-      }
57c6aae
+      current_effects_grid.show ();
57c6aae
+      activate_effects_page ((int)current_effects_page);
57c6aae
     }
57c6aae
     else
57c6aae
     {
57c6aae
-      if (effects_grids.length () == 0)
57c6aae
-      {
57c6aae
-        error_layer.hide ();
57c6aae
-      }
57c6aae
-      else
57c6aae
-      {
57c6aae
-        current_effects_grid.hide ();
57c6aae
-      }
57c6aae
+      current_effects_grid.hide ();
57c6aae
       video_preview.show ();
57c6aae
     }
57c6aae
 
57c6aae
@@ -1315,6 +1328,7 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
57c6aae
      */
57c6aae
     public void camera_state_change_playing ()
57c6aae
     {
57c6aae
+        show_error (null);
57c6aae
         toggle_camera_actions_sensitivities (true);
57c6aae
 
57c6aae
         Effect effect = effects_manager.get_effect (settings.get_string ("selected-effect"));
57c6aae
-- 
57c6aae
1.8.2.1
57c6aae