commit-gnue
[Top][All Lists]
Advanced

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

gnue/gnuef TODO client/gfclient src/GFForm.py s...


From: James Thompson
Subject: gnue/gnuef TODO client/gfclient src/GFForm.py s...
Date: Mon, 18 Dec 2000 16:27:25 -0800

CVSROOT:        /cvs
Module name:    gnue
Changes by:     James Thompson <address@hidden> 00/12/18 16:27:24

Modified files:
        gnuef          : TODO 
        gnuef/client   : gfclient 
        gnuef/src      : GFForm.py GFOptions.py UIpyncurses.py 
                         UIwxpython.py 

Log message:
        Fixed bug allowing hidden fields to get focus on startup
        Fixed _version bug
        Updated master field dropdown now updates the detail block as well
        Added support for execution of symlink to gfclient loaded similar named
        file from a global form directory
        Small debug level change
        Dropdowns now sorted by description value

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/TODO.diff?r1=1.31&r2=1.32
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/client/gfclient.diff?r1=1.8&r2=1.9
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFForm.py.diff?r1=1.54&r2=1.55
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFOptions.py.diff?r1=1.11&r2=1.12
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIpyncurses.py.diff?r1=1.14&r2=1.15
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIwxpython.py.diff?r1=1.48&r2=1.49

Patches:
Index: gnue/gnuef/TODO
diff -u gnue/gnuef/TODO:1.31 gnue/gnuef/TODO:1.32
--- gnue/gnuef/TODO:1.31        Fri Dec 15 19:32:10 2000
+++ gnue/gnuef/TODO     Mon Dec 18 16:27:24 2000
@@ -3,18 +3,14 @@
 
 **MUST HAVES for 0.1.0
 **  debug master/detail [jamest]
-**  curses support up to date [chriss]
 **  windows support (ODBC?) [jade]
 **  fix mySQL support [jade]
 
 **Like to haves for 0.1.0
-**  clean up named triggers[chriss]
 **  add GFBox support to UIwxpython
 **  Add support for more win/gtk like focus system
       pgup/pgdown effect page not block
 
-  Database error handling
-
   Add layout manager support[perlpoet]
 
   clean up code  [everyone working on the code]
@@ -30,21 +26,10 @@
 
   need to add default attrib values support
   
-  Add toolbar support
-
-  Make modification of data lock the record in the backend
-
-  Transaction support
-
   Create UI/Form event interactions for 
     ability for ui/forms to launch other ui/forms
     lookup dialogs
   
-  user extensible menus
-
-  menus should disable options not available (maybe)
-    might be better to let GFForm send alert
-
   Move things like database init in GFForm out of __init__ and 
     into a initialize routine that is called via some type of 
     uiINITIALIZED event so that a UI windows can prompt for things
@@ -54,16 +39,28 @@
     call the initializes of their children so we can get rid of 
     more of the self.walk nonsense
  
-  taborder support
+  Data source related
+    Make modification of data lock the record in the backend (if supported)
+
+    Transaction support
 
-  might not work on display's other than :0 (need to test)
+    Database error handling
 
-  Tweaks:
-    certain attributes should only apply when in normal mode
-    (numeric allowing % during query is a working example)
+  Menu Enhancements
+  
+    user extensible menus
+
+    menus should disable options not available via events 
+
+    Add toolbar support
+
 
+  Entry widget enhancements 
+
     Add support of mouse focus to the charater
 
+    taborder support
+
   Long term:
 
     Create GNUE Forms: Designer the screen painter
@@ -77,6 +74,14 @@
     Modular .gfd files
 
 
+  Nitpicks & bugs
+    Dropdowns don't allow you to go to next|prev record via up and down arrows
+    
+    Rollback on master/detail forms is screwed up
+
+    Inital detail not kept up to date with top record
+      (needs to update upon field update not record switch) 
 
+    might not work on display's other than :0 (need to test)
 
 
Index: gnue/gnuef/client/gfclient
diff -u gnue/gnuef/client/gfclient:1.8 gnue/gnuef/client/gfclient:1.9
--- gnue/gnuef/client/gfclient:1.8      Mon Dec 18 11:59:28 2000
+++ gnue/gnuef/client/gfclient  Mon Dec 18 16:27:24 2000
@@ -57,9 +57,13 @@
       self.formfile = CmdOpt.getArgument(0) 
     except:
       if help : print _usage % (sys.argv[0])
-      elif version : print "%s v%s" % (sys.argv[0], _version)
-      else: print "No Forms Definition File Specified.  Use GFClient -h for 
more information."
-      sys.exit()
+      elif version : print "%s v%s" % (sys.argv[0], __version__)
+      else: 
+        if sys.argv[0] != 'gfclient':
+          self.formfile = GFOptions.FormDir+"/"+sys.argv[0]+".gfd" 
+        else:
+          print "No Forms Definition File Specified.  Use GFClient -h for more 
information."
+          sys.exit()
 
     # get the form file handler
     try:
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.54 gnue/gnuef/src/GFForm.py:1.55
--- gnue/gnuef/src/GFForm.py:1.54       Mon Dec 18 11:59:28 2000
+++ gnue/gnuef/src/GFForm.py    Mon Dec 18 16:27:24 2000
@@ -138,7 +138,7 @@
       self.currentBlock = object
     if object.getObjectType() == 'GFPage' and self.currentPage == None:
       self.currentPage = object
-    if object.getObjectType() == 'GFEntry' and self.currentEntry == None:
+    if object.getObjectType() == 'GFEntry' and self.currentEntry == None and 
not hasattr(object,"hidden"):
       self.currentEntry = object
 
   def initBlocks(self, object):
@@ -246,8 +246,7 @@
       if block.name == blockname:
         for entry in block.entryList:
           if entry.name == fieldname:
-            if GFDebug:
-              print "block %s with field %s found" % (block.name, entry.name)
+            GFDebug.printMesg(2,"block %s with field %s found" % (block.name, 
entry.name))
             value = entry.value
             return value
     return None
@@ -288,7 +287,6 @@
 
   def deleteRecord(self, event):
     if not hasattr(self,'readonly'):
-      print "I'ma gonna deleta something"
       self.dispatchEvent(GFEvent('deleteRECORD',self.currentBlock))
       self.updateRecordStatus()
     else:
@@ -297,9 +295,8 @@
   def executeExit(self, event):
     for block in self.blockList:
       if not block.isSaved():
-        message = GFMsgBox(self, GFOptions._msgNOTSAVED)
+        message = GFMsgBox(self, block.name+":"+GFOptions._msgNOTSAVED)
        message.show()
-        #self.dispatchEvent(GFEvent('formALERT',GFOptions._msgNOTSAVED))
         return
     else:
       self.dispatchEvent(GFEvent('exitApplication','Current data is saved'))
@@ -307,7 +304,8 @@
   def requestQuery(self, event):
     for block in self.blockList:
       if not block.isSaved():
-        self.dispatchEvent(GFEvent('formALERT',GFOptions._msgNOTSAVED))
+        message = GFMsgBox(self, block.name+":"+GFOptions._msgNOTSAVED)
+       message.show()
         return
                       
     self.dispatchEvent(GFEvent('initQUERY',self.currentBlock))
@@ -527,6 +525,10 @@
     GFDebug.printMesg(2,"(%s, %s)"%(event.data[0], event.data[1]))
     GFDebug.printMesg(2,"Replacing with %s"% replacement)
     event.data[0].setValue(replacement)
+
+    # Hack!
+    self.dispatchEvent(GFEvent('updateDETAILBLOCK',self.currentBlock))
+
     
   #
   # keyPress
@@ -571,16 +573,20 @@
   # charater be removed from the current entry object
   #
   def removeCharacter(self, event):
-    if event.getEvent() == 'requestBACKSPACE':
-      if self.currentEntry.cursorPosition > 0:
-        self.currentEntry.cursorPosition = self.currentEntry.cursorPosition - 1
-      else:
-        return
+    if not hasattr(self.currentEntry,'readonly'):
+      if event.getEvent() == 'requestBACKSPACE':
+        if self.currentEntry.cursorPosition > 0:
+          self.currentEntry.cursorPosition = self.currentEntry.cursorPosition 
- 1
+        else:
+          return
       
-    currentvalue = self.currentEntry.getValue()
-    currentvalue = currentvalue[:self.currentEntry.cursorPosition]  + \
-             currentvalue[self.currentEntry.cursorPosition+1:]
-    self.currentEntry.setValue(currentvalue)
+      currentvalue = self.currentEntry.getValue()
+      currentvalue = currentvalue[:self.currentEntry.cursorPosition]  + \
+               currentvalue[self.currentEntry.cursorPosition+1:]
+      self.currentEntry.setValue(currentvalue)
+    else:
+      self.dispatchEvent(GFEvent('formALERT','Field is readonly'))
+
 
 
   def msgBox(self, event):
Index: gnue/gnuef/src/GFOptions.py
diff -u gnue/gnuef/src/GFOptions.py:1.11 gnue/gnuef/src/GFOptions.py:1.12
--- gnue/gnuef/src/GFOptions.py:1.11    Mon Dec 18 11:59:28 2000
+++ gnue/gnuef/src/GFOptions.py Mon Dec 18 16:27:24 2000
@@ -1,5 +1,8 @@
 # Adjust for your install (only used for graphics right now)
 prefix="/usr/local/gnue"
+
+FormDir =prefix+"/forms"
+
 splashScreenBMP=prefix+"/shared/gnuef-splash.bmp"
 smallBMP=prefix+"/shared/gnue.bmp"
 
Index: gnue/gnuef/src/UIpyncurses.py
diff -u gnue/gnuef/src/UIpyncurses.py:1.14 gnue/gnuef/src/UIpyncurses.py:1.15
--- gnue/gnuef/src/UIpyncurses.py:1.14  Mon Dec 18 11:59:28 2000
+++ gnue/gnuef/src/UIpyncurses.py       Mon Dec 18 16:27:24 2000
@@ -241,6 +241,7 @@
         values = object.allowedValues()
         for key in values.keys():
           choices.append(values[key])
+        choices.sort()
         field = 
self.addChoice(int(object.x),int(object.y)+spacer,int(object.width),
                                   choices,self.newPage, object)
       else:
Index: gnue/gnuef/src/UIwxpython.py
diff -u gnue/gnuef/src/UIwxpython.py:1.48 gnue/gnuef/src/UIwxpython.py:1.49
--- gnue/gnuef/src/UIwxpython.py:1.48   Mon Dec 18 11:59:28 2000
+++ gnue/gnuef/src/UIwxpython.py        Mon Dec 18 16:27:24 2000
@@ -576,6 +576,7 @@
           values = object.allowedValues()
           for key in values.keys():
             choices.append(values[key])
+          choices.sort()
 
           newWidget = wxComboBox(container, -1, "",
                                  wxPoint(int(object.x)*int(self.widgetWidth),



reply via email to

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