Author: reinhard
Date: 2010-12-02 16:24:56 -0600 (Thu, 02 Dec 2010)
New Revision: 10255

Modified:
   trunk/gnue-common/
   trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
Log:
When moving out of a freshly inserted record, the empty record should be
discarded. Fixed this for cases when the record pointer was moved to "no
record".



Property changes on: trunk/gnue-common
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: 2010-11-30 15:23:56.974999905 +0100
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: common

   + timestamp: 2010-12-02 00:52:01.973999977 +0100
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: common

Name: bzr:file-ids
   - src/datasources/drivers/Base/Behavior.py   
7...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-common:src%2Fdatasources%2Fdrivers%2FBase%2FBehavior.py

   + src/datasources/drivers/Base/ResultSet.py  
4...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-common:src%2Fdatasources%2Fdrivers%2FBase%2FResultSet.py

Name: bzr:revision-id:v4
   - 3116 reinhard.muel...@bytewise.at-20100426083315-ccfwx2pihuvqn60z
3117 reinhard.muel...@bytewise.at-20100503114756-unpxm52de0towufo
3118 reinhard.muel...@bytewise.at-20100503115129-uvondrz5bvkqubyv
3119 reinhard.muel...@bytewise.at-20100505081835-9peco6k7a2le0mvg
3120 reinhard.muel...@bytewise.at-20100505084742-wn5vtc4a129z8g28
3121 reinhard.muel...@bytewise.at-20100505092131-m2avvsci5w6aj0rv
3122 reinhard.muel...@bytewise.at-20100519151545-pybk8q2s234vzsf2
3123 reinhard.muel...@bytewise.at-20100525101023-xs7k6pkghh9t6fc3
3124 reinhard.muel...@bytewise.at-20100525114015-rj7eb0xdheqkcuql
3125 reinhard.muel...@bytewise.at-20100525145035-j177jbvu10me4mfp
3126 reinhard.muel...@bytewise.at-20100526111738-ic0wot9z1ulg2y1a
3127 reinhard.muel...@bytewise.at-20100612121357-1nf23tuj1tveh1lv
3128 reinhard.muel...@bytewise.at-20100929190642-6pp6cwlicgt2bhhs
3129 reinhard.muel...@bytewise.at-20100929190817-bje4kkvrjrpanut1
3130 reinhard.muel...@bytewise.at-20101016191602-kceb6hdjytt4im93
3131 reinhard.muel...@bytewise.at-20101020175112-o65lqy8lejjrvzaz
3132 reinhard.muel...@bytewise.at-20101020195535-gb2bt2h80mu5j5h4
3133 reinhard.muel...@bytewise.at-20101020203525-nvdwy7b9r84bngco
3134 reinhard.muel...@bytewise.at-20101028150844-49qu2auedxl5b5kv
3135 reinhard.muel...@bytewise.at-20101028152619-p6ytgkke9zw38o7a
3136 reinhard.muel...@bytewise.at-20101102085744-sfxbu24ep3nwxixc
3137 reinhard.muel...@bytewise.at-20101102085857-sgtswbhhj0baf9d7
3138 reinhard.muel...@bytewise.at-20101103071215-929sbj5boj2wcxuu
3139 reinhard.muel...@bytewise.at-20101114130053-ueyx4ilszsilw6hc
3140 reinhard.muel...@bytewise.at-20101114183532-h66yegryl7hcen0f
3141 reinhard.muel...@bytewise.at-20101130142356-cxfqmitx4trkjcja

   + 3116 reinhard.muel...@bytewise.at-20100426083315-ccfwx2pihuvqn60z
3117 reinhard.muel...@bytewise.at-20100503114756-unpxm52de0towufo
3118 reinhard.muel...@bytewise.at-20100503115129-uvondrz5bvkqubyv
3119 reinhard.muel...@bytewise.at-20100505081835-9peco6k7a2le0mvg
3120 reinhard.muel...@bytewise.at-20100505084742-wn5vtc4a129z8g28
3121 reinhard.muel...@bytewise.at-20100505092131-m2avvsci5w6aj0rv
3122 reinhard.muel...@bytewise.at-20100519151545-pybk8q2s234vzsf2
3123 reinhard.muel...@bytewise.at-20100525101023-xs7k6pkghh9t6fc3
3124 reinhard.muel...@bytewise.at-20100525114015-rj7eb0xdheqkcuql
3125 reinhard.muel...@bytewise.at-20100525145035-j177jbvu10me4mfp
3126 reinhard.muel...@bytewise.at-20100526111738-ic0wot9z1ulg2y1a
3127 reinhard.muel...@bytewise.at-20100612121357-1nf23tuj1tveh1lv
3128 reinhard.muel...@bytewise.at-20100929190642-6pp6cwlicgt2bhhs
3129 reinhard.muel...@bytewise.at-20100929190817-bje4kkvrjrpanut1
3130 reinhard.muel...@bytewise.at-20101016191602-kceb6hdjytt4im93
3131 reinhard.muel...@bytewise.at-20101020175112-o65lqy8lejjrvzaz
3132 reinhard.muel...@bytewise.at-20101020195535-gb2bt2h80mu5j5h4
3133 reinhard.muel...@bytewise.at-20101020203525-nvdwy7b9r84bngco
3134 reinhard.muel...@bytewise.at-20101028150844-49qu2auedxl5b5kv
3135 reinhard.muel...@bytewise.at-20101028152619-p6ytgkke9zw38o7a
3136 reinhard.muel...@bytewise.at-20101102085744-sfxbu24ep3nwxixc
3137 reinhard.muel...@bytewise.at-20101102085857-sgtswbhhj0baf9d7
3138 reinhard.muel...@bytewise.at-20101103071215-929sbj5boj2wcxuu
3139 reinhard.muel...@bytewise.at-20101114130053-ueyx4ilszsilw6hc
3140 reinhard.muel...@bytewise.at-20101114183532-h66yegryl7hcen0f
3141 reinhard.muel...@bytewise.at-20101130142356-cxfqmitx4trkjcja
3142 reinhard.muel...@bytewise.at-20101201235201-z7jjs7xhfmonjcni

Name: bzr:text-parents
   - src/datasources/drivers/Base/Behavior.py   
svn-v3-single1-dHJ1bmsvZ251ZS1jb21tb24.:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-common:9954

   + src/datasources/drivers/Base/ResultSet.py  
reinhard.muel...@bytewise.at-20101028152619-p6ytgkke9zw38o7a


Modified: trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2010-12-02 
20:47:51 UTC (rev 10254)
+++ trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2010-12-02 
22:24:56 UTC (rev 10255)
@@ -925,24 +925,28 @@
         else:
             self.current = self.__cached_records[self.__current_index]
 
-        # If the current record has *really* changed (this method can be called
-        # for non-changing records after requery or merge) to a new current
-        # record, bring all detail records in sync.
+        # The following lines are only executed if the current record has
+        # *really* changed (this method can be called for non-changing records
+        # after requery or merge) to a new current record.
         if self.current != old_current:
+
+            # If the cursor moved out of an empty record, throw it away.
+            if old_current and old_current.isEmpty():
+                if old_current in self.__cached_records:
+                    index = self.__cached_records.index(old_current)
+                    self.__remove_record(index)
+
+            # Bring all detail records in sync.
             if self.current is not None:
-                if old_current and old_current.isEmpty():
-                    # If the cursor moved out of an empty record, throw it away
-                    if old_current in self.__cached_records:
-                        index = self.__cached_records.index(old_current)
-                        self.__remove_record(index)
                 self.current._activate()
             else:
                 # Pointer moved to "no record": Create empty detail resultsets.
                 for detail_ds in self.__details.keys():
                     detail_ds.clearResultSet()
 
-        if send_event and self.__eventController is not None:
-            self.__eventController.dispatchEvent('dsCursorMoved')
+            # Send event to update UI.
+            if send_event and self.__eventController is not None:
+                self.__eventController.dispatchEvent('dsCursorMoved')
 
 
     # -------------------------------------------------------------------------
@@ -1010,9 +1014,10 @@
         if index <= self.__current_index:
             self.__current_index -= 1
 
-        # ... but don't move below 0 unless there is *really* no record left
-        if self.__current_index < 0 and self.__record_count:
-            self.__current_index = 0
+            # ... but don't move below 0 unless there is *really* no record
+            # left.
+            if self.__current_index < 0 and self.__record_count:
+                self.__current_index = 0
 
 
     # -------------------------------------------------------------------------


_______________________________________________
commit-gnue mailing list
commit-gnue@gnu.org
http://lists.gnu.org/mailman/listinfo/commit-gnue

Reply via email to