[chronojump] Unable to insert quotations on genericWin (like encoder exercise)



commit 326f21322cbbed3b5d00ee049e9b811f5b04bb7c
Author: Xavier de Blas <xaviblas gmail com>
Date:   Mon Jul 24 02:02:38 2017 +0200

    Unable to insert quotations on genericWin (like encoder exercise)

 glade/generic_window.glade |    4 ++++
 src/gui/genericWindow.cs   |   35 ++++++++++++++++++++++++++++++++---
 2 files changed, 36 insertions(+), 3 deletions(-)
---
diff --git a/glade/generic_window.glade b/glade/generic_window.glade
index 6ec7eeb..2f83e46 100644
--- a/glade/generic_window.glade
+++ b/glade/generic_window.glade
@@ -75,6 +75,7 @@
                 <property name="secondary_icon_activatable">False</property>
                 <property name="primary_icon_sensitive">True</property>
                 <property name="secondary_icon_sensitive">True</property>
+                <signal name="changed" handler="on_entries_changed" swapped="no"/>
               </widget>
               <packing>
                 <property name="expand">False</property>
@@ -273,6 +274,7 @@
                     <property name="secondary_icon_activatable">False</property>
                     <property name="primary_icon_sensitive">True</property>
                     <property name="secondary_icon_sensitive">True</property>
+                    <signal name="changed" handler="on_entries_changed" swapped="no"/>
                   </widget>
                   <packing>
                     <property name="expand">True</property>
@@ -313,6 +315,7 @@
                     <property name="secondary_icon_activatable">False</property>
                     <property name="primary_icon_sensitive">True</property>
                     <property name="secondary_icon_sensitive">True</property>
+                    <signal name="changed" handler="on_entries_changed" swapped="no"/>
                   </widget>
                   <packing>
                     <property name="expand">True</property>
@@ -622,6 +625,7 @@
                         <property name="secondary_icon_activatable">False</property>
                         <property name="primary_icon_sensitive">True</property>
                         <property name="secondary_icon_sensitive">True</property>
+                        <signal name="changed" handler="on_entries_changed" swapped="no"/>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
diff --git a/src/gui/genericWindow.cs b/src/gui/genericWindow.cs
index 88f3965..c27e2ce 100644
--- a/src/gui/genericWindow.cs
+++ b/src/gui/genericWindow.cs
@@ -97,7 +97,8 @@ public class GenericWindow
        
        private TreeStore store;
        private Constants.ContextMenu genericWinContextMenu;
-       
+       private bool textviewChanging = false;
+
        //used to read data, see if it's ok, and print an error message.
        //if all is ok, destroy it with HideAndNull()
        public bool HideOnAccept;
@@ -312,6 +313,15 @@ public class GenericWindow
                        scrolled_window_treeview.Show();
        }
 
+       private void on_entries_changed (object o, EventArgs args)
+       {
+               Gtk.Entry entry = o as Gtk.Entry;
+               if (o == null)
+                       return;
+
+               entry.Text = Util.MakeValidSQL(entry.Text);
+       }
+
        public void SetSize(int width, int height) {
                generic_window.SetDefaultSize(width, height);
        }
@@ -471,12 +481,31 @@ public class GenericWindow
                button_middle.Label=str;
        }
        
-       public void SetTextview(string str) {
+       public void SetTextview(string str)
+       {
                TextBuffer tb = new TextBuffer (new TextTagTable());
                tb.Text = str;
                textview.Buffer = tb;
+
+               textview.Buffer.Changed += new EventHandler(textviewChanged);
+               textviewChanging = false;
        }
-       
+
+       private void textviewChanged(object o,EventArgs args)
+       {
+               if(textviewChanging)
+                       return;
+
+               textviewChanging = true;
+
+               TextBuffer tb = o as TextBuffer;
+               if (o == null)
+                       return;
+
+               tb.Text = Util.MakeValidSQL(tb.Text);
+               textviewChanging = false;
+       }
+
        bool activateRowAcceptsWindow;
        //data is an ArrayList of strings[], each string [] is a row, each of its strings is a column
        public void SetTreeview(string [] columnsString, bool addCheckbox, 


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