commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r8775 - trunk/gnue-forms/src/GFObjects


From: reinhard
Subject: [gnue] r8775 - trunk/gnue-forms/src/GFObjects
Date: Thu, 12 Oct 2006 16:11:25 -0500 (CDT)

Author: reinhard
Date: 2006-10-12 16:11:24 -0500 (Thu, 12 Oct 2006)
New Revision: 8775

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
Log:
Only execute code for new current record if we *really* have a new current
record.


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-10-12 18:55:20 UTC (rev 
8774)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-10-12 21:11:24 UTC (rev 
8775)
@@ -282,7 +282,7 @@
       finally:
         self.__scrolling_blocked = False
 
-    self.__switch_record (None, True)
+    self.__current_record_changed(True)
 
     self._form.update_record_counter()
     self._form.update_record_status()
@@ -298,7 +298,7 @@
     # Blocks can't cope with current record #-1
     recno = self._resultSet.getRecordNumber ()
     if recno != -1:
-      self.__switch_record (None, False)
+      self.__current_record_changed(False)
 
   # ---------------------------------------------------------------------------
 
@@ -367,7 +367,7 @@
         self._rows = new_rows
 
         if self.__visibleStart + self._rows < self._currentRecord + 1:
-            self.__switch_record (None, False)
+            self.__switch_record(None, False)
             # Now we must jump to the new current widget in the UI
             entry = self._form._currentEntry
             if getattr(entry, '_block', None) == self:
@@ -407,16 +407,22 @@
 
         # Jump to another record if necessary
         self.__scrolling_blocked = True
+        jumped = False
         try:
             if self._currentRecord < position:
                 self.goto_record(position)
+                jumped = True
             elif self._currentRecord > position + self._rows -1:
                 self.goto_record(position + self._rows - 1)
+                jumped = True
         finally:
             self.__scrolling_blocked = False
 
         # And now scroll the entries
         self.__switch_record(position, False)
+        if jumped:
+            self.__new_current_record()
+
         if getattr(self._form._currentEntry, '_block', None) == self:
             self._form.adjust_ui_focus()
 
@@ -849,7 +855,7 @@
         self.mode = 'query'
         self.__query_values = {}
         self.__query_values.update(self._queryDefaults)
-        self.__switch_record(None, True)
+        self.__current_record_changed(True)
 
   # ---------------------------------------------------------------------------
 
@@ -857,14 +863,14 @@
 
         self.__query_values = {}
         self.__query_values.update(self.__last_query_values)
-        self.__switch_record(None, True)
+        self.__current_record_changed(True)
 
   # ---------------------------------------------------------------------------
 
   def cancel_query(self):
 
         self.mode = 'normal'
-        self.__switch_record(None, True)
+        self._current_record_changed(True)
 
   # ---------------------------------------------------------------------------
 
@@ -968,7 +974,7 @@
             finally:
                 self._scrolling_blocked = False
 
-        self.__switch_record(None, True)
+        self.__current_record_changed(True)
 
   # ---------------------------------------------------------------------------
 
@@ -1119,6 +1125,16 @@
 
 
   # ---------------------------------------------------------------------------
+  # Current record has changed
+  # ---------------------------------------------------------------------------
+
+  def __current_record_changed(self, refresh_all):
+
+        self.__switch_record(None, refresh_all)
+        self.__new_current_record()
+
+
+  # ---------------------------------------------------------------------------
   # Switch the proper record into editing position
   # ---------------------------------------------------------------------------
 
@@ -1133,13 +1149,14 @@
 
     adjustment = newRecord - self._currentRecord
 
-    if new_visible_start is not None:
-        new_visible_start = min(new_visible_start, newRecord)
-        new_visible_start = max(new_visible_start, newRecord - self._rows + 1)
-        new_visible_start = max(new_visible_start, 0)
+    if new_visible_start is None:
+        new_visible_start = self.__visibleStart
+    new_visible_start = min(new_visible_start, newRecord)
+    new_visible_start = max(new_visible_start, newRecord - self._rows + 1)
+    new_visible_start = max(new_visible_start, 0)
 
-        adjustment += self.__visibleStart - new_visible_start
-        self.__visibleStart = new_visible_start
+    adjustment += self.__visibleStart - new_visible_start
+    self.__visibleStart = new_visible_start
 
     # Find out which ui entries to refresh
     if refresh_all:
@@ -1159,14 +1176,21 @@
         entry.recalculate_visible (adjustment, self._currentRecord,
                 self._recordCount, refresh)
 
-    for field in self._fieldList:
-      field._event_new_current_record ()
+    self.__adjust_scrollbars()
 
-    self._form.refreshUIEvents ()
 
-    self.__adjust_scrollbars()
+  # ---------------------------------------------------------------------------
+  # Things that have to be done if a new current record is activated
+  # ---------------------------------------------------------------------------
 
+  def __new_current_record(self):
 
+        for field in self._fieldList:
+            field._event_new_current_record()
+
+        self._form.refreshUIEvents()
+
+
   # ---------------------------------------------------------------------------
   # Adjust the scrollbars connected to this block
   # ---------------------------------------------------------------------------





reply via email to

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