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