[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r8550 - in trunk/gnue-forms/src: . uidrivers/_base uidrivers/curs
From: |
reinhard |
Subject: |
[gnue] r8550 - in trunk/gnue-forms/src: . uidrivers/_base uidrivers/curses/widgets uidrivers/gtk2/widgets/form uidrivers/win32/widgets/form uidrivers/wx uidrivers/wx/widgets/form uidrivers/wx26 |
Date: |
Tue, 8 Aug 2006 11:59:14 -0500 (CDT) |
Author: reinhard
Date: 2006-08-08 11:59:12 -0500 (Tue, 08 Aug 2006)
New Revision: 8550
Modified:
trunk/gnue-forms/src/GFForm.py
trunk/gnue-forms/src/GFInstance.py
trunk/gnue-forms/src/uidrivers/_base/UIdriver.py
trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py
trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py
trunk/gnue-forms/src/uidrivers/wx/PrintForm.py
trunk/gnue-forms/src/uidrivers/wx/UIdriver.py
trunk/gnue-forms/src/uidrivers/wx/widgets/form/widget.py
trunk/gnue-forms/src/uidrivers/wx26/UIdriver.py
Log:
Properly display Cancel button in wx26 if requested.
New function GFForm.__must_save() to ask user if changes should be
saved.
A few files that have been forgotten at last commit (screen dump).
Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py 2006-08-03 15:49:49 UTC (rev 8549)
+++ trunk/gnue-forms/src/GFForm.py 2006-08-08 16:59:12 UTC (rev 8550)
@@ -156,6 +156,8 @@
'rollback': {
'function': self.__trigger_rollback,
'global': True},
+ 'printout': {
+ 'function': self.__trigger_printout},
'initQuery': {
'function': self.__trigger_init_query},
'activateDialog': {
@@ -430,6 +432,14 @@
# -------------------------------------------------------------------------
+ def __trigger_printout(self):
+ """
+ Print the form.
+ """
+ self.printout()
+
+ # -------------------------------------------------------------------------
+
def __trigger_init_query(self):
"""
Set form into query mode.
@@ -1011,20 +1021,15 @@
def initQuery(self):
"""
Enters the form into Query mode.
- @return: None if all went well, error message in case of error.
"""
- message = None
if self._currentBlock.mode != 'query':
# Auto-commit?
if self._currentBlock.autoCommit:
self.commit()
- for block in self._logic._blockList:
- if block.isPending():
- message = _("Data not saved. Save changes or clear the form to "
- "proceed.")
- return message
+ if not self.__must_save():
+ return
for block in self._logic._blockList:
block.processRollback()
@@ -1033,18 +1038,12 @@
assert gDebug (5, "%s will be set to %s" % (entry.name,
entry.queryDefault))
entry.setValue(entry.queryDefault)
- # If Enter-Query is hit once, enter query mode
- # If Enter-Query is hit twice, bring back conditions from last query.
- # If Enter-Query is hit thrice, cancel the query and go into normal
mode.
-
self.dispatchEvent('beginENTERQUERY', _form=self)
- #self._instance.dispatchEvent('beginENTERQUERY', _form=self)
for block in self._logic._blockList:
block.initQuery()
self.status_message(u_('Enter your query criteria.'))
- return message
# -------------------------------------------------------------------------
@@ -1235,6 +1234,28 @@
# -------------------------------------------------------------------------
+ # Print form
+ # -------------------------------------------------------------------------
+
+ def printout(self):
+ """
+ Print the form.
+
+ If the form has a trigger named "process-printout", fire it. Otherwise,
+ print a screen dump of the form.
+ """
+
+ if self._triggerDictionary.has_key('process-printout'):
+ self.fireTrigger('process-printout')
+ else:
+ if self.uiWidget:
+ self.uiWidget._ui_printout_(self.title,
+ self._currentPage.caption,
+ self._instance.connections.getAuthenticatedUser(None) \
+ or 'Anonymous')
+
+
+ # -------------------------------------------------------------------------
# Get all connections used by the form
# -------------------------------------------------------------------------
@@ -1674,3 +1695,25 @@
@return: None
"""
self._insertMode = not self._insertMode
+
+
+ # -------------------------------------------------------------------------
+ # Ask the user whether to save or to discard changes if there are any
+ # -------------------------------------------------------------------------
+
+ def __must_save(self):
+
+ if self.isSaved():
+ return True
+
+ answer = self._instance.displayMessageBox(message=u_("Save changes?"),
+ kind='Question', cancel=True, title=self.title)
+
+ if answer is None:
+ # Cancel
+ return False
+
+ if answer:
+ self.commit()
+
+ return True
Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py 2006-08-03 15:49:49 UTC (rev 8549)
+++ trunk/gnue-forms/src/GFInstance.py 2006-08-08 16:59:12 UTC (rev 8550)
@@ -974,12 +974,7 @@
If the form has a trigger named process-printout then fire it
"""
- if event._form._triggerDictionary.has_key ('process-printout'):
- event._form.fireTrigger ('process-printout')
- else:
- # TODO: should probably do something else as a default if trigger not
- # available like a screen print
- self.dispatchEvent ('uiPRINTOUT', _form = event._form)
+ event._form.printout()
# ---------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/_base/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/_base/UIdriver.py 2006-08-03 15:49:49 UTC
(rev 8549)
+++ trunk/gnue-forms/src/uidrivers/_base/UIdriver.py 2006-08-08 16:59:12 UTC
(rev 8550)
@@ -196,9 +196,6 @@
# Clipboard contents
'setCLIPBOARD' : self.setClipboardContents,
'getCLIPBOARD' : self.getClipboardContents,
-
- # Printout
- 'uiPRINTOUT' : self.printout,
})
# now call the implementation specific initialization
@@ -476,17 +473,6 @@
# ---------------------------------------------------------------------------
- # Perform the default printout function
- # ---------------------------------------------------------------------------
-
- def printout(self, event):
- """
- Perform the default printout/"screen print" function for this uidriver
- """
- pass
-
-
- # ---------------------------------------------------------------------------
# Show the last exception
# ---------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/form.py 2006-08-03
15:49:49 UTC (rev 8549)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/form.py 2006-08-08
16:59:12 UTC (rev 8550)
@@ -117,6 +117,14 @@
self.__updateStatusBar ()
# ---------------------------------------------------------------------------
+ # Print form screenshot
+ # ---------------------------------------------------------------------------
+
+ def _ui_printout_(self, title, subtitle, user):
+
+ pass
+
+ # ---------------------------------------------------------------------------
# Output a message on the status bar
# ---------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py 2006-08-03
15:49:49 UTC (rev 8549)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py 2006-08-08
16:59:12 UTC (rev 8550)
@@ -314,3 +314,12 @@
self.statusBar5.push (context, self._makeSafe (text))
self._uiDriver.processMessages ()
+
+
+ # ---------------------------------------------------------------------------
+ # Print form screenshot
+ # ---------------------------------------------------------------------------
+
+ def _ui_printout_(self, title, subtitle, user):
+
+ pass
Modified: trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py 2006-08-03
15:49:49 UTC (rev 8549)
+++ trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py 2006-08-08
16:59:12 UTC (rev 8550)
@@ -207,3 +207,12 @@
("%s/%s" % (page_number, page_count)).strip())
return
+
+
+ # ---------------------------------------------------------------------------
+ # Print form screenshot
+ # ---------------------------------------------------------------------------
+
+ def _ui_printout_(self, title, subtitle, user):
+
+ pass
Modified: trunk/gnue-forms/src/uidrivers/wx/PrintForm.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/PrintForm.py 2006-08-03 15:49:49 UTC
(rev 8549)
+++ trunk/gnue-forms/src/uidrivers/wx/PrintForm.py 2006-08-08 16:59:12 UTC
(rev 8550)
@@ -38,26 +38,12 @@
from gnue.forms import VERSION
import time
-def printForm(form, driver):
- _Timer(_printForm, form, driver).Start(100,1)
+def printForm(form, title, subtitle, user):
+ _Timer(_printForm, form, title, subtitle, user).Start(100,1)
-def _printForm(form, driver):
- # Get a suitable title for the print job
- # We default to either "Form Name" or "Form Name" + "Page Name"
- # depending on if the page has a caption or not.
- subtitle = ""
- try:
- title = form.title
- except AttributeError:
- title = 'Untitled Form'
- try:
- if form._currentPage.caption:
- subtitle = ' (' + form._currentPage.caption + ')'
- except AttributeError:
- pass
+def _printForm(form, title, subtitle, user):
-## window = driver._gfObjToUIWidget[form._currentPage]._containerToolkitWidget
- window = driver._gfObjToUIWidget[form].mainWindow
+ window = form.mainWindow
printData = wxPrintData()
printData.SetPaperId(wxPAPER_LETTER)
@@ -79,10 +65,9 @@
prd.SetPrintData(printData)
prn = wxPrinter(prd)
- printout = FormPrintout(window, title, subtitle,
- form._instance.connections.getAuthenticatedUser(None) or 'Anonymous',
dest)
+ printout = FormPrintout(window, title, subtitle, user, dest)
- if not prn.Print(driver._gfObjToUIWidget[form].mainWindow, printout):
+ if not prn.Print(form.mainWindow, printout):
wxMessageBox(_("There was a problem printing.\nPlease verify your printer
setup and try again."), _("Printing"), wxOK)
printout.Destroy()
@@ -93,7 +78,7 @@
def __init__(self, window, title, subtitle, login, dc):
self.__window = window
self.__title = title
- self.__subtitle = subtitle
+ self.__subtitle = subtitle or ''
self.__login = login
self.__dc = dc
wxPrintout.__init__(self, title)
Modified: trunk/gnue-forms/src/uidrivers/wx/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/UIdriver.py 2006-08-03 15:49:49 UTC
(rev 8549)
+++ trunk/gnue-forms/src/uidrivers/wx/UIdriver.py 2006-08-08 16:59:12 UTC
(rev 8550)
@@ -48,7 +48,6 @@
from gnue.forms.uidrivers.wx.widgets._base import *
from gnue.forms.uidrivers.wx.common import _eventObjTowxWindow
from gnue.forms.uidrivers.wx import dialogs
-from PrintForm import printForm
from common import wxEncode
@@ -211,9 +210,6 @@
assert gDebug(6,'Unable to open clipboard for write')
- def printout(self, event):
- printForm(self._form, self)
-
def setTitle(self, event):
ui = self._gfObjToUIWidget[event._form]
try:
Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/form/widget.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/form/widget.py 2006-08-03
15:49:49 UTC (rev 8549)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/form/widget.py 2006-08-08
16:59:12 UTC (rev 8550)
@@ -37,6 +37,9 @@
from gnue.forms.uidrivers.wx.MenuBar import MenuBar
from gnue.forms.uidrivers.wx.ToolBar import ToolBar
+from PrintForm import printForm
+
+
# =============================================================================
# Wrap an UI layer around a wx Form widget
# =============================================================================
@@ -229,3 +232,12 @@
pageWidth = pageWidth and (pageWidth * 2) or 5
self.statusBar.SetStatusWidths([tipWidth, statusWidth, insertWidth,
recordWidth, pageWidth])
+
+
+ # --------------------------------------------------------------------------
+ # Print out form screenshot
+ # --------------------------------------------------------------------------
+
+ def _ui_printout_(self, title, subtitle, user):
+
+ printForm(self, title, subtitle, user)
Modified: trunk/gnue-forms/src/uidrivers/wx26/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/UIdriver.py 2006-08-03 15:49:49 UTC
(rev 8549)
+++ trunk/gnue-forms/src/uidrivers/wx26/UIdriver.py 2006-08-08 16:59:12 UTC
(rev 8550)
@@ -241,6 +241,8 @@
mbRec = self._MBOX_KIND.get (kind.lower ())
flags = mbRec ['type'] | mbRec ['buttons']
+ if cancel:
+ flags |= wx.CANCEL
title = title and title or mbRec ['title']
dialog = wx.MessageDialog (None, message, title, flags)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8550 - in trunk/gnue-forms/src: . uidrivers/_base uidrivers/curses/widgets uidrivers/gtk2/widgets/form uidrivers/win32/widgets/form uidrivers/wx uidrivers/wx/widgets/form uidrivers/wx26,
reinhard <=