commit-gnue
[Top][All Lists]
Advanced

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

r6070 - in trunk/gnue-forms/src/uidrivers/gtk2: . widgets


From: johannes
Subject: r6070 - in trunk/gnue-forms/src/uidrivers/gtk2: . widgets
Date: Sat, 24 Jul 2004 10:52:36 -0500 (CDT)

Author: johannes
Date: 2004-07-24 10:52:36 -0500 (Sat, 24 Jul 2004)
New Revision: 6070

Modified:
   trunk/gnue-forms/src/uidrivers/gtk2/common.py
   trunk/gnue-forms/src/uidrivers/gtk2/widgets/_base.py
   trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py
Log:
Fixed some selection-issues and cursor-movement of combo's


Modified: trunk/gnue-forms/src/uidrivers/gtk2/common.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/common.py       2004-07-24 14:40:00 UTC 
(rev 6069)
+++ trunk/gnue-forms/src/uidrivers/gtk2/common.py       2004-07-24 15:52:36 UTC 
(rev 6070)
@@ -90,6 +90,7 @@
 
 
 
+
 #####################################################################
 ##
 ## Keymapper Support

Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/_base.py        2004-07-24 
14:40:00 UTC (rev 6069)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/_base.py        2004-07-24 
15:52:36 UTC (rev 6070)
@@ -195,6 +195,12 @@
     GDebug.printMesg (3, "Grab focus to %s for %s" % (item, widget))
     item.grab_focus ()
 
+    # To avoid the automatic select-all in a combo box, we explicitly set the
+    # selection to the current position only
+    if isinstance (widget, gtk.Combo):
+      pos = item.get_position ()
+      item.select_region (pos, pos)
+
     self._blockHandler (item, '_focusHandler', True)
 
 

Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py        2004-07-24 
14:40:00 UTC (rev 6069)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py        2004-07-24 
15:52:36 UTC (rev 6070)
@@ -25,7 +25,6 @@
 
 from gnue.common import events
 from gnue.forms.uidrivers.gtk2.widgets._base import UIHelper
-from gnue.common.apps import GDebug
 
 
 # =============================================================================
@@ -54,7 +53,7 @@
       else:
         newWidget = self.__createEntry (object, event)
 
-    event.container.show_all()
+    event.container.show_all ()
     return newWidget
 
 
@@ -76,11 +75,8 @@
     newWidget.show ()
 
     if event.initialize:
-      newWidget._origAllowedValues = gfObject._field._allowedValues
       self._addDefaultEventHandler (newWidget)
       self._addFocusHandler (newWidget.entry, newWidget)
-      newWidget.list._selectHandler = newWidget.list.connect ('select-child',
-                                                  self.comboHandler, newWidget)
       self._addDefaultEventHandler (newWidget.entry, newWidget)
 
       entry = newWidget.entry
@@ -92,6 +88,10 @@
                                              self.deleteTextHandler,
                                              gfObject)
 
+      newWidget.list._selectHandler = newWidget.list.connect ('select-child',
+                                                  self.comboHandler,
+                                                  newWidget)
+
     return newWidget
 
 
@@ -204,22 +204,19 @@
 
   def setCursorPosition (self, position, index = 0):
     widget = self.widgets [index]
-    GDebug.printMesg (1, "setCursorPosition to %s in %s [%s]" % \
-        (position, widget, index))
+    entry  = isinstance (widget, gtk.Combo) and widget.entry or widget
 
-    if isinstance (widget, gtk.Entry):
-      if len (widget.get_text ()):
-        widget.set_position (position)
+    gDebug (1, "setCursorPosition to %s in %s [%s] (%s)" % \
+        (position, entry, index, widget))
 
-    elif isinstance (widget, gtk.Combo):
-      if len (widget.entry.get_text ()):
-        widget.entry.set_position (position)
+    if isinstance (entry, gtk.Entry):
+      entry.set_position (position)
 
-    elif isinstance (widget, gtk.TextView):
+    elif isinstance (entry, gtk.TextView):
       tBuffer = widget.get_buffer ()
       tBuffer.place_cursor (tBuffer.get_iter_at_offset (position))
-      widget.set_cursor_visible (True)
-      widget.scroll_mark_onscreen (tBuffer.get_insert ())
+      entry.set_cursor_visible (True)
+      entry.scroll_mark_onscreen (tBuffer.get_insert ())
 
 
   # ---------------------------------------------------------------------------
@@ -227,7 +224,7 @@
   # ---------------------------------------------------------------------------
 
   def setSelectedArea (self, selection1, selection2, index = 0):
-    GDebug.printMesg (1, "Set Selected Area %s/%s in %s [%s]" % \
+    gDebug (1, "Set Selected Area %s/%s in %s [%s]" % \
         (selection1, selection2, self, index))
 
     widget = self.widgets [index]
@@ -245,23 +242,26 @@
       tBuffer.move_mark (insert, tBuffer.get_iter_at_offset (left))
       tBuffer.move_mark (selbound, tBuffer.get_iter_at_offset (right))
 
+    elif isinstance (widget, gtk.Combo):
+      widget.entry.select_region (selection1, selection2)
 
+
   # ---------------------------------------------------------------------------
   # insert text into gtk.Entry widgets
   # ---------------------------------------------------------------------------
 
   def insertTextHandler (self, widget, newtext, length, pos, gfObject):
 
-    GDebug.printMesg (1, "insert gtk.Entry () '%s' at %d (%s) into %s" % \
+    gDebug (1, "insert gtk.Entry () '%s' at %d (%s) into %s" % \
         (newtext, widget.get_position (), pos, widget))
 
     text   = unicode (newtext, 'utf-8')
-    action = events.Event ('requestINSERTAT', text, text = text,
-                           position = widget.get_position (),
+    action = events.Event ('requestKEYPRESS', text = text,
                            _form = gfObject._form)
 
     widget.stop_emission ('insert-text')
     gtk.idle_add (self._eventHandler, action)
+    # self._eventHandler (action)
 
 
   # ---------------------------------------------------------------------------
@@ -269,7 +269,7 @@
   # ---------------------------------------------------------------------------
 
   def deleteTextHandler (self, widget, start_pos, end_pos, gfObject):
-    GDebug.printMesg (1, "Delete %s to %s in %s" % (start_pos, end_pos, 
widget))
+    gDebug (1, "Delete %s to %s in %s" % (start_pos, end_pos, widget))
 
     action = events.Event ('requestDELETERANGE',
                             start_pos = start_pos,
@@ -287,7 +287,7 @@
 
   def insertBufferHandler (self, tBuffer, iterator, newtext, length, widget):
 
-    GDebug.printMesg (1, "gtk.TextBuffer insert '%s' at %s" % \
+    gDebug (1, "gtk.TextBuffer insert '%s' at %s" % \
         (newtext, iterator.get_offset ()))
 
     gfObject = self._uiDriver._WidgetToGFObj [widget]
@@ -307,7 +307,7 @@
   # ---------------------------------------------------------------------------
 
   def deleteBufferHandler (self, tBuffer, start, end, widget):
-    GDebug.printMesg (1, "gtk.TextBuffer delete %s to %s in %s" \
+    gDebug (1, "gtk.TextBuffer delete %s to %s in %s" \
         % (start.get_offset (), end.get_offset (), widget))
 
     gfObject = self._uiDriver._WidgetToGFObj [widget]
@@ -372,19 +372,18 @@
     newly selected item differs from the corresponding GFObject's value a
     'requestREPLACEVALUE' will be fired.
     """
-    GDebug.printMesg (2, "Selected %s in %s" % (listChild, combo))
-
     gfObject      = self._uiDriver._WidgetToGFObj [combo]
     selection     = comboList.child_position (listChild)
     compare       = self.reverse.get (gfObject.getValue (), None)
     selected_text = self.choices [selection]
     
-    GDebug.printMesg (1, "Selection is %s in %s" % (selected_text, gfObject))
-    GDebug.printMesg (1, "Old %s vs %s" % (repr(compare), repr(selected_text)))
+    gDebug (1, "Old %s vs %s" % (repr(compare), repr(selected_text)))
       
     comboList.stop_emission ('select-child')
 
-    if compare is None or compare != selected_text:
+    # if compare != selected_text:
+    if gfObject._displayHandler.display != selected_text:
+      gDebug (1, "Replacing value %s %s" % (repr(compare), 
repr(selected_text)))
       action = events.Event ('requestREPLACEVALUE', object = gfObject,
                             index = selection, text = selected_text,
                             _form = gfObject._form)
@@ -422,7 +421,7 @@
 
   def _updateChoices (self, combo, gfObject):
     if not isinstance (combo, gtk.Combo):
-      GDebug.printMesg (1, "Called 'updateChoices' on non-Combo-widget!")
+      gDebug (1, "Called 'updateChoices' on non-Combo-widget!")
       return
 
     if combo._origAllowedValues != gfObject._field._allowedValues:
@@ -435,7 +434,6 @@
       self._blockHandler (combo.list, '_selectHandler', True)
 
 
-
 # -----------------------------------------------------------------------------
 # Base configuration data
 # -----------------------------------------------------------------------------





reply via email to

[Prev in Thread] Current Thread [Next in Thread]