[chronojump] Preferences webcam stop camera controls



commit 39d8ecd39f2974d643cb895fd3ca145560febfcf
Author: Xavier de Blas <xaviblas gmail com>
Date:   Tue Jun 18 18:29:28 2019 +0200

    Preferences webcam stop camera controls

 glade/preferences_win.glade | 132 ++++++++++++++++++++++++++++++++++++++------
 src/gui/preferences.cs      |  32 ++++++++---
 2 files changed, 138 insertions(+), 26 deletions(-)
---
diff --git a/glade/preferences_win.glade b/glade/preferences_win.glade
index 9a36c971..cb0de743 100644
--- a/glade/preferences_win.glade
+++ b/glade/preferences_win.glade
@@ -3976,39 +3976,137 @@ Other</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkHBox" id="hbox21">
+                          <widget class="GtkFrame" id="frame10">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="spacing">20</property>
+                            <property name="label_xalign">0</property>
+                            <property name="shadow_type">none</property>
                             <child>
-                              <widget class="GtkButton" id="button_video_check_ffmpeg_ffplay_running">
+                              <widget class="GtkAlignment" id="alignment19">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">True</property>
-                                <signal name="clicked" 
handler="on_button_video_check_ffmpeg_ffplay_running_clicked" swapped="no"/>
+                                <property name="can_focus">False</property>
+                                <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label11">
+                                  <widget class="GtkHBox" id="hbox21">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="label" translatable="yes">Check if camera is 
running</property>
+                                    <property name="border_width">8</property>
+                                    <property name="spacing">20</property>
+                                    <child>
+                                      <widget class="GtkButton" 
id="button_video_check_ffmpeg_ffplay_running">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <signal name="clicked" 
handler="on_button_video_check_ffmpeg_ffplay_running_clicked" swapped="no"/>
+                                        <child>
+                                          <widget class="GtkLabel" id="label11">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">Check if camera is 
running</property>
+                                          </widget>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkTable" id="table_video_advanced_actions">
+                                        <property name="can_focus">False</property>
+                                        <property name="n_rows">2</property>
+                                        <property name="n_columns">3</property>
+                                        <property name="column_spacing">12</property>
+                                        <property name="row_spacing">8</property>
+                                        <child>
+                                          <widget class="GtkLabel" id="label90">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">Capture</property>
+                                          </widget>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="label91">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">Play</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="top_attach">1</property>
+                                            <property name="bottom_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="label_video_check_ffmpeg_running">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="label_video_check_ffplay_running">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
+                                            <property name="top_attach">1</property>
+                                            <property name="bottom_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkButton" id="button_video_ffmpeg_kill">
+                                            <property name="label" translatable="yes">Force stop</property>
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <signal name="clicked" 
handler="on_button_video_ffmpeg_kill_clicked" swapped="no"/>
+                                          </widget>
+                                          <packing>
+                                            <property name="left_attach">2</property>
+                                            <property name="right_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkButton" id="button_video_ffplay_kill">
+                                            <property name="label" translatable="yes">Force stop</property>
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <signal name="clicked" 
handler="on_button_video_ffplay_kill_clicked" swapped="no"/>
+                                          </widget>
+                                          <packing>
+                                            <property name="left_attach">2</property>
+                                            <property name="right_attach">3</property>
+                                            <property name="top_attach">1</property>
+                                            <property name="bottom_attach">2</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">True</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
                                   </widget>
                                 </child>
                               </widget>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
                             </child>
                             <child>
-                              <widget class="GtkLabel" id="label_video_check_ffmpeg_ffplay_running">
+                              <widget class="GtkLabel" id="label61">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
+                                <property name="label" 
translatable="yes">&lt;b&gt;Advanced&lt;/b&gt;</property>
+                                <property name="use_markup">True</property>
                               </widget>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
+                                <property name="type">label_item</property>
                               </packing>
                             </child>
                           </widget>
diff --git a/src/gui/preferences.cs b/src/gui/preferences.cs
index 7e7a1ce6..c67b395c 100644
--- a/src/gui/preferences.cs
+++ b/src/gui/preferences.cs
@@ -167,7 +167,11 @@ public class PreferencesWindow
        //[Widget] Gtk.VBox vbox_camera_stop_after;
        [Widget] Gtk.HBox hbox_camera_stop_after_seconds;
        [Widget] Gtk.SpinButton spin_camera_stop_after;
-       [Widget] Gtk.Label label_video_check_ffmpeg_ffplay_running;
+       [Widget] Gtk.Table table_video_advanced_actions;
+       [Widget] Gtk.Label label_video_check_ffmpeg_running;
+       [Widget] Gtk.Label label_video_check_ffplay_running;
+       [Widget] Gtk.Button button_video_ffmpeg_kill;
+       [Widget] Gtk.Button button_video_ffplay_kill;
 
        //language tab
        [Widget] Gtk.Box hbox_combo_language;
@@ -863,8 +867,10 @@ public class PreferencesWindow
 
        private void on_button_video_check_ffmpeg_ffplay_running_clicked(object o, EventArgs args)
        {
-               string label_result = "Camera is not running.";
-               label_video_check_ffmpeg_ffplay_running.Text = label_result;
+               label_video_check_ffmpeg_running.Text = "Not running";
+               label_video_check_ffplay_running.Text = "Not running";
+               button_video_ffmpeg_kill.Visible = false;
+               button_video_ffplay_kill.Visible = false;
 
                UtilAll.OperatingSystems os = UtilAll.GetOSEnum();
                bool runningFfmpeg = false;
@@ -873,19 +879,27 @@ public class PreferencesWindow
                if(ExecuteProcess.IsRunning3 (-1, WebcamFfmpeg.GetExecutableCapture(os)))
                {
                        runningFfmpeg = true;
-                       label_result = "Capture (ffmpeg) is running";
+                       label_video_check_ffmpeg_running.Text = "Running";
+                       button_video_ffmpeg_kill.Visible = true;
                }
 
                if(ExecuteProcess.IsRunning3 (-1, WebcamFfmpeg.GetExecutablePlay(os)))
                {
                        runningFfplay = true;
-                       if(runningFfmpeg)
-                               label_result = "Capture (ffmpeg) & Play (ffplay) are running";
-                       else
-                               label_result = "Play (ffplay) is running";
+                       label_video_check_ffplay_running.Text = "Running";
+                       button_video_ffplay_kill.Visible = true;
                }
 
-               label_video_check_ffmpeg_ffplay_running.Text = label_result;
+               table_video_advanced_actions.Visible = true;
+       }
+
+       private void on_button_video_ffmpeg_kill_clicked (object o, EventArgs args)
+       {
+               new DialogMessage(Constants.MessageTypes.INFO, "TODO");
+       }
+       private void on_button_video_ffplay_kill_clicked (object o, EventArgs args)
+       {
+               new DialogMessage(Constants.MessageTypes.INFO, "TODO");
        }
 
        // ---- end of multimedia stuff


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]