[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r10213 - in trunk/gnue-forms: . src src/GFObjects
From: |
reinhard |
Subject: |
[gnue] r10213 - in trunk/gnue-forms: . src src/GFObjects |
Date: |
Wed, 20 Oct 2010 13:56:02 -0500 (CDT) |
Author: reinhard
Date: 2010-10-20 13:56:02 -0500 (Wed, 20 Oct 2010)
New Revision: 10213
Modified:
trunk/gnue-forms/
trunk/gnue-forms/src/GFObjects/GFBlock.py
trunk/gnue-forms/src/GFObjects/GFField.py
trunk/gnue-forms/src/GFParser.py
Log:
Added autosearch support.
Property changes on: trunk/gnue-forms
___________________________________________________________________
Name: bzr:revision-info
- timestamp: 2010-10-20 18:54:11.900000095 +0200
committer: Reinhard Müller <address@hidden>
properties:
branch-nick: forms
+ timestamp: 2010-10-20 20:55:29.381999969 +0200
committer: Reinhard Müller <address@hidden>
properties:
branch-nick: forms
Name: bzr:file-ids
- src/input/displayHandlers/Image.py
address@hidden:trunk%2Fgnue-forms:src%2Finput%2FdisplayHandlers%2FImage.py
src/uidrivers/qt3/widgets/image.py
address@hidden:trunk%2Fgnue-forms:src%2Fuidrivers%2Fqt3%2Fwidgets%2Fimage.py
src/uidrivers/qt4/widgets/image.py
address@hidden:trunk%2Fgnue-forms:src%2Fuidrivers%2Fqt4%2Fwidgets%2Fimage.py
src/uidrivers/wx/widgets/image.py
address@hidden:trunk%2Fgnue-forms:src%2Fuidrivers%2Fwx%2Fwidgets%2Fimage.py
+ src/GFObjects/GFBlock.py
address@hidden:trunk%2Fgnue-forms:src%2FGFObjects%2FGFBlock.py
src/GFObjects/GFField.py
address@hidden:trunk%2Fgnue-forms:src%2FGFObjects%2FGFField.py
src/GFParser.py address@hidden:trunk%2Fgnue-forms:src%2FGFParser.py
Name: bzr:revision-id:v4
- 3116 address@hidden
3117 address@hidden
3118 address@hidden
3119 address@hidden
3120 address@hidden
3121 address@hidden
3122 address@hidden
3123 address@hidden
3124 address@hidden
3125 address@hidden
3126 address@hidden
3127 address@hidden
3128 address@hidden
3129 address@hidden
3130 address@hidden
3131 address@hidden
3132 address@hidden
3133 address@hidden
3134 address@hidden
+ 3116 address@hidden
3117 address@hidden
3118 address@hidden
3119 address@hidden
3120 address@hidden
3121 address@hidden
3122 address@hidden
3123 address@hidden
3124 address@hidden
3125 address@hidden
3126 address@hidden
3127 address@hidden
3128 address@hidden
3129 address@hidden
3130 address@hidden
3131 address@hidden
3132 address@hidden
3133 address@hidden
3134 address@hidden
3135 address@hidden
Name: bzr:text-parents
- src/input/displayHandlers/Image.py
svn-v3-single1-dHJ1bmsvZ251ZS1mb3Jtcw..:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:9956
src/uidrivers/qt3/widgets/image.py
svn-v3-single1-dHJ1bmsvZ251ZS1mb3Jtcw..:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:10117
src/uidrivers/qt4/widgets/image.py
svn-v3-single1-dHJ1bmsvZ251ZS1mb3Jtcw..:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:10117
src/uidrivers/wx/widgets/image.py address@hidden
+ src/GFObjects/GFBlock.py address@hidden
src/GFObjects/GFField.py address@hidden
src/GFParser.py address@hidden
Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py 2010-10-20 18:55:58 UTC (rev
10212)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py 2010-10-20 18:56:02 UTC (rev
10213)
@@ -884,13 +884,13 @@
"""
if self._dataSourceLink.type == 'unbound':
- return
+ return True
if self.mode == 'query':
return False
if self.__resultset is None:
- return
+ return False
# First, convert the fieldname/value pairs to column/value pairs.
cond = {}
Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py 2010-10-20 18:55:58 UTC (rev
10212)
+++ trunk/gnue-forms/src/GFObjects/GFField.py 2010-10-20 18:56:02 UTC (rev
10213)
@@ -76,9 +76,10 @@
self.__lookup_dict_reverse = {} # {user_value: db_value}
self.lookup_ignorecase = True
- # Autoquery support
+ # Autoquery/autosearch support
self.__autoquery_value = None
- self.__in_autoquery = False
+ self.__autosearch_value = None
+ self.__in_validate = False
# These are only here because "rows" and "gap" is passed from GFBlock
# through GFField to GFEntry.
@@ -512,13 +513,19 @@
# If this is an autoquery field, don't pass the value to the block, but
# save it for later.
- if (self.autoquery == 'Y') \
- or (self.autoquery == 'new' \
- and self._block.get_record_status() == 'empty'):
- if not self.__in_autoquery:
- self.__autoquery_value = value
- return
+ if self._block.mode == 'normal':
+ if (self.autoquery == 'Y') \
+ or (self.autoquery == 'new' \
+ and self._block.get_record_status() ==
'empty'):
+ if not self.__in_validate:
+ self.__autoquery_value = value
+ return
+ if self.autosearch:
+ if not self.__in_validate:
+ self.__autosearch_value = value
+ return
+
self._block.set_value(self, value)
@@ -586,14 +593,19 @@
will be prevented.
"""
+ # When autoquery/autoserach do the set_filter/search_record, then the
+ # field is changed and validate is called recursively.
+ if self.__in_validate:
+ return
+
if self._block.mode == 'normal':
self.processTrigger('PRE-FOCUSOUT', ignoreAbort=False)
- if self.__autoquery_value is not None and not self.__in_autoquery:
+ if self.__autoquery_value is not None and not self.__in_validate:
if (self.autoquery == 'Y') \
or (self.autoquery == 'new' \
and self._block.get_record_status() == 'empty'):
- self.__in_autoquery = True
+ self.__in_validate = True
try:
self._block.set_filter({self.field:
self.__autoquery_value})
if self._block.get_record_status() == 'empty':
@@ -601,8 +613,18 @@
self.__set_value(self.__autoquery_value)
self.__autoquery_value = None
finally:
- self.__in_autoquery = False
+ self.__in_validate = False
+ if self.autosearch and self.__autosearch_value is not None:
+ self.__in_validate = True
+ try:
+ if not self._block.search_record(
+ **{self.field: self.__autosearch_value}):
+ self._block.new_record()
+ self.__set_value(self.__autosearch_value)
+ finally:
+ self.__in_validate = False
+
# -------------------------------------------------------------------------
def focus_out(self):
Modified: trunk/gnue-forms/src/GFParser.py
===================================================================
--- trunk/gnue-forms/src/GFParser.py 2010-10-20 18:55:58 UTC (rev 10212)
+++ trunk/gnue-forms/src/GFParser.py 2010-10-20 18:56:02 UTC (rev 10213)
@@ -682,6 +682,15 @@
'new': {'Label': _('Empty forms only')} },
'Typecast': GTypecast.text,
'Default': 'N' },
+ 'autosearch': {
+ 'Description': 'If {Y} then any changes in this field will '
+ 'cause the form to automatically jump to the '
+ 'first matching record within the current '
+ 'result set, or create a new record if no '
+ 'record matches.',
+ 'Label': _('Automatic Search'),
+ 'Typecast': GTypecast.boolean,
+ 'Default': False},
'ltrim': {
'Label': _('Trim left spaces'),
'Description': 'Trim extraneous space at '
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r10213 - in trunk/gnue-forms: . src src/GFObjects,
reinhard <=