[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8769 - trunk/gnue-forms/src/GFObjects,
reinhard <=