commit-gnue
[Top][All Lists]
Advanced

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

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


From: reinhard
Subject: [gnue] r8769 - trunk/gnue-forms/src/GFObjects
Date: Thu, 12 Oct 2006 07:27:05 -0500 (CDT)

Author: reinhard
Date: 2006-10-12 07:27:04 -0500 (Thu, 12 Oct 2006)
New Revision: 8769

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
Log:
More work on __switch_record logic.


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-10-12 12:13:21 UTC (rev 
8768)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-10-12 12:27:04 UTC (rev 
8769)
@@ -97,9 +97,6 @@
     # temporarily blocked
     self.__scrolling_blocked = False
 
-    # Has the result set changed since the last refresh?
-    self.__has_resultset_changed = False
-
     # Trigger exposure
     self._validTriggers = {
       'ON-NEWRECORD':   'On-NewRecord',
@@ -285,8 +282,7 @@
       finally:
         self.__scrolling_blocked = False
 
-    self.__has_resultset_changed = True
-    self.__switch_record (recno - self._currentRecord)
+    self.__switch_record (recno - self._currentRecord, True)
 
     self._form.update_record_counter()
     self._form.update_record_status()
@@ -302,7 +298,7 @@
     # Blocks can't cope with current record #-1
     recno = self._resultSet.getRecordNumber ()
     if recno != -1:
-      self.__switch_record (recno - self._currentRecord)
+      self.__switch_record (recno - self._currentRecord, False)
 
   # ---------------------------------------------------------------------------
 
@@ -371,7 +367,7 @@
         self._rows = new_rows
 
         if self.__visibleStart + self._rows < self._currentRecord + 1:
-            self.__switch_record (0)
+            self.__switch_record (0, False)
             # Now we must jump to the new current widget in the UI
             entry = self._form._currentEntry
             if getattr(entry, '_block', None) == self:
@@ -420,7 +416,7 @@
             self.__scrolling_blocked = False
 
         # And now scroll the entries
-        self.__switch_record(self.__visibleStart - position)
+        self.__switch_record(self.__visibleStart - position, False)
         if getattr(self._form._currentEntry, '_block', None) == self:
             self._form.adjust_ui_focus()
 
@@ -853,8 +849,7 @@
         self.mode = 'query'
         self.__query_values = {}
         self.__query_values.update(self._queryDefaults)
-        self.__has_resultset_changed = True
-        self.__switch_record(0)
+        self.__switch_record(0, True)
 
   # ---------------------------------------------------------------------------
 
@@ -862,16 +857,14 @@
 
         self.__query_values = {}
         self.__query_values.update(self.__last_query_values)
-        self.__has_resultset_changed = True
-        self.__switch_record(0)
+        self.__switch_record(0, True)
 
   # ---------------------------------------------------------------------------
 
   def cancel_query(self):
 
         self.mode = 'normal'
-        self.__has_resultset_changed = True
-        self.__switch_record(0)
+        self.__switch_record(0, True)
 
   # ---------------------------------------------------------------------------
 
@@ -967,14 +960,16 @@
         if self._getMasterBlock() is None:
             self._dataSourceLink.requeryAll(commit)
 
-        self.__has_resultset_changed = True
-
         # If the last record was deleted, insert a new one
         if not self._resultSet.getRecordCount():
-            self._resultSet.insertRecord(self._lastValues)
-        else:
-            self.__switch_record(0)
+            self.__scrolling_blocked = True
+            try:
+                self._resultSet.insertRecord(self._lastValues)
+            finally:
+                self._scrolling_blocked = False
 
+        self.__switch_record(0, True)
+
   # ---------------------------------------------------------------------------
 
   def clear(self):
@@ -1127,7 +1122,7 @@
   # Switch the proper record into editing position
   # ---------------------------------------------------------------------------
 
-  def __switch_record (self, adjustment):
+  def __switch_record (self, adjustment, refresh_all):
 
     if self.mode == 'query':
         newRecord = 0
@@ -1143,10 +1138,9 @@
     self.__visibleStart = max (self.__visibleStart, 0)
 
     # Find out which ui entries to refresh
-    if self.__has_resultset_changed:
+    if refresh_all:
         # Result set completely changed, refresh everything
         refresh = 'all'
-        self.__has_resultset_changed = False
     elif newRecordCount != self._recordCount:
         # Newly inserted or deleted record, so all records starting from this
         # one have moved, so refresh them





reply via email to

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