[chronojump] Easier chronopic connection



commit 68e9c9aade9850d52abb2e2e94134fe49942837c
Author: Xavier de Blas <xaviblas gmail com>
Date:   Mon Jun 16 12:54:23 2014 +0200

    Easier chronopic connection

 glade/chronojump.glade         |  169 +++++++++++++++++++++++++++++++++++++++-
 src/Makefile.am                |    1 -
 src/gui/chronopic.cs           |   90 ++++++++++++++-------
 src/gui/chronopicConnection.cs |  138 --------------------------------
 4 files changed, 226 insertions(+), 172 deletions(-)
---
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index 4c8343f..968bb05 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -5988,6 +5988,9 @@ Second Chronopic to platforms.</property>
                                                         <child>
                                                           <placeholder/>
                                                         </child>
+                                                        <child>
+                                                          <placeholder/>
+                                                        </child>
                                                       </widget>
                                                       <packing>
                                                         <property name="expand">True</property>
@@ -6604,6 +6607,9 @@ Second Chronopic to platforms.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             </child>
                                                             <child>
@@ -7354,6 +7360,9 @@ Second Chronopic to platforms.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="position">2</property>
@@ -7863,6 +7872,9 @@ Second Chronopic to platforms.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="position">4</property>
@@ -15328,6 +15340,114 @@ Evaluator can use real name or nickname.</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
+                    <child>
+                      <widget class="GtkFrame" id="frame_connection">
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="label_yalign">0.69999998807907104</property>
+                        <property name="shadow_type">none</property>
+                        <child>
+                          <widget class="GtkAlignment" id="alignment5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="top_padding">8</property>
+                            <property name="bottom_padding">8</property>
+                            <property name="left_padding">12</property>
+                            <property name="right_padding">12</property>
+                            <child>
+                              <widget class="GtkVBox" id="vbox109">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">10</property>
+                                <child>
+                                  <widget class="GtkHBox" id="hbox238">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">8</property>
+                                    <child>
+                                      <widget class="GtkLabel" id="label_title">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Please touch the platform 
or click Chronopic &lt;i&gt;TEST&lt;/i&gt; button</property>
+                                        <property name="use_markup">True</property>
+                                        <property name="wrap">True</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkTable" id="table1">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="n_columns">2</property>
+                                    <property name="column_spacing">8</property>
+                                    <property name="row_spacing">8</property>
+                                    <child>
+                                      <widget class="GtkProgressBar" id="progressbar">
+                                        <property name="width_request">150</property>
+                                        <property name="height_request">22</property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="pulse_step">0.10000000149</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkButton" id="button_cancel">
+                                        <property name="label">gtk-cancel</property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="can_default">True</property>
+                                        <property name="receives_default">False</property>
+                                        <property name="use_stock">True</property>
+                                        <signal name="clicked" handler="on_button_cancel_clicked" 
swapped="no"/>
+                                        <accelerator key="Escape" signal="clicked"/>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" 
translatable="yes">&lt;b&gt;Connection&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </widget>
+                          <packing>
+                            <property name="type">label_item</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
                   </widget>
                 </child>
               </widget>
@@ -15551,8 +15671,8 @@ Just select and then close this window.</property>
             </child>
           </widget>
           <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
             <property name="position">2</property>
           </packing>
         </child>
@@ -17119,6 +17239,9 @@ by you</property>
                         <child>
                           <placeholder/>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </widget>
                     </child>
                   </widget>
@@ -17533,6 +17656,9 @@ by you</property>
                         <child>
                           <placeholder/>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </widget>
                     </child>
                   </widget>
@@ -18375,6 +18501,12 @@ by you</property>
             <child>
               <placeholder/>
             </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
           </widget>
           <packing>
             <property name="expand">True</property>
@@ -25904,6 +26036,24 @@ options</property>
                             <child>
                               <placeholder/>
                             </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
                           </widget>
                         </child>
                       </widget>
@@ -27707,6 +27857,9 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                                 <child>
                                   <placeholder/>
                                 </child>
+                                <child>
+                                  <placeholder/>
+                                </child>
                               </widget>
                             </child>
                           </widget>
@@ -28180,6 +28333,9 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                         <child>
                           <placeholder/>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </widget>
                     </child>
                   </widget>
@@ -30113,6 +30269,9 @@ show elevation as:</property>
                         <child>
                           <placeholder/>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </widget>
                       <packing>
                         <property name="left_attach">2</property>
@@ -30191,6 +30350,9 @@ show elevation as:</property>
                     <child>
                       <placeholder/>
                     </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </widget>
                 </child>
               </widget>
@@ -30284,6 +30446,9 @@ show elevation as:</property>
                     <child>
                       <placeholder/>
                     </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </widget>
                 </child>
               </widget>
diff --git a/src/Makefile.am b/src/Makefile.am
index 4b81f9a..5b943ea 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -36,7 +36,6 @@ SOURCES = \
        gui/dialogImageTest.cs\
        gui/language.cs\
        gui/repetitiveConditions.cs\
-       gui/chronopicConnection.cs\
        gui/convertWeight.cs\
        gui/genericWindow.cs\
        gui/splash.cs\
diff --git a/src/gui/chronopic.cs b/src/gui/chronopic.cs
index 14a8744..d07adc6 100644
--- a/src/gui/chronopic.cs
+++ b/src/gui/chronopic.cs
@@ -46,7 +46,7 @@ public class ChronopicWindow
 {
        [Widget] Gtk.Window chronopic_window;
        static ChronopicWindow ChronopicWindowBox;
-       ChronopicConnection chronopicConnectionWin;
+       //ChronopicConnection chronopicConnectionWin;
 
        [Widget] Gtk.Notebook notebook_main;
        //[Widget] Gtk.Image image_contact_modular;
@@ -87,6 +87,12 @@ public class ChronopicWindow
        [Widget] Gtk.Table table_multi_chronopic;
        //[Widget] Gtk.Button button_reload;
        
+       //frame_connections
+       [Widget] Gtk.Frame frame_connection;
+       [Widget] Gtk.Label label_title;
+       [Widget] Gtk.ProgressBar progressbar;
+       [Widget] Gtk.Button button_cancel;
+       
        [Widget] Gtk.Image chronopic_image;
        [Widget] Gtk.TextView textview_ports_found_explanation;
 
@@ -117,6 +123,9 @@ public class ChronopicWindow
        bool volumeOn;
        int currentCp; //1 to 4
        bool cancelledByUser;
+               
+       //in order to cancel before close window
+       static bool connecting;
 
        //cp1   
        Chronopic cp;
@@ -490,32 +499,60 @@ Log.WriteLine("bbb");
        {
                if(needUpdateChronopicWin || ! thread.IsAlive) {
                        fakeConnectionButton.Click();
+                       pulseEnd();
                        Log.Write("dying");
                        return false;
                }
                //need to do this, if not it crashes because chronopicConnectionWin gets died by thread ending
-               chronopicConnectionWin = ChronopicConnection.Show();
-               chronopicConnectionWin.Pulse();
+               //chronopicConnectionWin = ChronopicConnection.Show();
+               //chronopicConnectionWin.Pulse();
+               progressbar.Pulse();
                
                Thread.Sleep (50);
                Log.Write(thread.ThreadState.ToString());
                return true;
        }
+
+       private void pulseEnd() {
+               button_cancel.Sensitive = false;
+               connecting = false;
+       }
                        
        private void updateChronopicWin(bool state, string message) {
                Log.WriteLine("updateChronopicWin-1");
 
                //need to do this, if not it crashes because chronopicConnectionWin gets died by thread ending
-               chronopicConnectionWin = ChronopicConnection.Show();
+               //chronopicConnectionWin = ChronopicConnection.Show();
 
                Log.WriteLine("updateChronopicWin-2");
-               if(state)
-                       chronopicConnectionWin.Connected(message);
+               if(state) {
+                       //chronopicConnectionWin.Connected(message);
+                       sensitivityConnected(message);
+                       progressbar.Fraction = 1.0;
+               }
                else
-                       chronopicConnectionWin.Disconnected(message);
+                       //chronopicConnectionWin.Disconnected(message);
+                       sensitivityDisconnected(message);
                
                needUpdateChronopicWin = false;
        }
+       
+       private void sensitivityConnected(string message) {
+               Log.WriteLine("CONNECTED!!");
+               label_title.Text = message;
+               label_title.UseMarkup = true;
+               button_cancel.Sensitive = false;
+       }
+
+       private void sensitivityDisconnected(string message) {
+               Log.WriteLine("DISCONNECTED!!");
+               label_title.Text = message;
+               button_cancel.Sensitive = false;
+       }
+               
+       private void on_button_help_ports_clicked (object o, EventArgs args) {
+               new HelpPorts();
+       }
 
        //chronopic init should not touch  gtk, for the threads
        //private Chronopic chronopicInit (out Chronopic myCp, out SerialPort mySp, Chronopic.Plataforma 
myPS, string myPort, out string returnString, out bool success) 
@@ -589,7 +626,6 @@ Log.WriteLine("bbb");
                                connected = false;
                        }
                }
-//             return myCp;
        }
        
        private void on_checkbutton_multi_show_clicked(object o, EventArgs args) {
@@ -645,16 +681,16 @@ Log.WriteLine("bbb");
 
 
        void prepareChronopicConnection() {
-               chronopicConnectionWin = ChronopicConnection.Show();
-               chronopicConnectionWin.LabelFeedBackReset();
-
-//             chronopicConnectionWin.Button_cancel.Clicked += new EventHandler(on_chronopic_cancelled);
+               frame_connection.Visible = true;
+               
+               button_cancel.Sensitive = true;
+               cancelledByUser = false;
                
                fakeConnectionButton = new Gtk.Button();
                fakeConnectionButton.Clicked += new EventHandler(on_chronopic_detection_ended);
 
+               connecting = true;
                needUpdateChronopicWin = false;
-               cancelledByUser = false;
                thread = new Thread(new ThreadStart(waitChronopicStart));
                GLib.Idle.Add (new GLib.IdleHandler (PulseGTK));
                thread.Start(); 
@@ -663,8 +699,6 @@ Log.WriteLine("bbb");
        static Chronopic cpDoing;       
        protected void waitChronopicStart () 
        {
-               chronopicConnectionWin.Button_cancel.Clicked += new EventHandler(on_chronopic_cancelled);
-
                if(currentCp == 1) {
                //      simulated = false;
                //      SqlitePreferences.Update("simulated", simulated.ToString(), false);
@@ -807,10 +841,12 @@ Log.WriteLine("bbb");
        }
 
 
-       private void on_chronopic_cancelled (object o, EventArgs args) {
+       private void on_button_cancel_clicked (object o, EventArgs args) {
                Log.WriteLine("cancelled-----");
                //fakeButtonCancelled.Click(); //just to show message of crashing on windows exiting
                
+               button_cancel.Sensitive = false;
+               
                cpDoing.AbortFlush = true;
                cancelledByUser = true;
 
@@ -833,23 +869,22 @@ Log.WriteLine("bbb");
        
        void on_button_close_clicked (object o, EventArgs args)
        {
+               if(connecting)
+                       button_cancel.Click();
+
                Log.WriteLine("CLOSE");
                fakeWindowDone.Click();
                ChronopicWindowBox.chronopic_window.Hide();
        }
 
-       /*      
-       private void on_button_reload_clicked (object o, EventArgs args) {
-               Log.WriteLine("RELOAD");
-               fakeWindowReload.Click();
-               //ChronopicWindowBox.chronopic_window.Hide();
-       }
-       */
-
        void on_delete_event (object o, DeleteEventArgs args)
        {
                //nice: this makes windows no destroyed, then it works like button_close
                fakeWindowDone.Click();
+               
+               if(connecting)
+                       button_cancel.Click();
+
                args.RetVal = true;
                ChronopicWindowBox.chronopic_window.Hide();
        }
@@ -901,13 +936,6 @@ Log.WriteLine("bbb");
        public Button FakeWindowDone {
                get { return fakeWindowDone; }
        }
-       
-       /*      
-       public Button FakeWindowReload
-       {
-               get { return fakeWindowReload; }
-       }
-       */
 
        //public Gtk.Button FakeButtonCancelled {
        //      get { return fakeButtonCancelled; }


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