Maybe this task should be moved to “completed”? http://wiki.documentfoundation.org/Easy_Hacks#Make_python_.2F_mail-merge_debuggable
Am Montag, den 11.04.2011, 21:26 +0200 schrieb Timo: > Hi Michael, > > MessageBoxButtons as well as XSCRIPTCONTEXT do not exist for me. Python > doesn´t find them and they are documented as “not published” [1]. I > think it would be nice to use createMessageBox() and to have a dynamic > size and a nice error icon. But with the use of Laurent´s implementation > I could solve the task. [2] > > With the modified mailmerge.py I get the expected pythonerror in a > messagebox after closing the MsgBox. [3] In fact all pythonerrors are > reported like this on my computer. What does it look like on nonfree > platforms? In fact it is better to display only one error message. > > Not all python errors are reported in a message by default. If there are > syntax errors at the beginning of the file, office remains silent. This > is problem. > > When there is a MsgBox that works for everybody I suggest to implement > it into pythonscript.py so that it is being used for all exceptions. > > > regards, > > Timo > > > [1] > http://api.openoffice.org/docs/common/ref/com/sun/star/awt/MessageBoxButtons.html#BUTTONS_OK > > [2] see mailmerge.py and MsgBox.py from the attachments > > [3] see screenshot Bildschirmfoto.png > > > Am Montag, den 11.04.2011, 17:01 +0100 schrieb Michael Meeks: > > Hi Timo, > > > > On Sat, 2011-04-09 at 02:22 +0200, Timo wrote: > > > Is there a way to test the pythonfile within office? At the moment each > > > time i kill soffice, restart writer and click > > > > So - after a bit more digging; I got to here: > > > > class MessageBox: > > def __init__(self, XParentWindow): > > try: > > if XParentWindow is None: > > frame = XSCRIPTCONTEXT.getDesktop().getCurrentFrame() > > XParentWindow = frame.getContainerWindow() > > self.Parent = XParentWindow > > self.Toolkit = XParentWindow.getToolkit() > > except: > > raise AttributeError, 'Did not get a valid parent window' > > > > def msgbox(self, message='', flag=0, title=''): > > '''Wrapper for com.sun.star.awt.XMessageBoxFactory.''' > > rect = uno.createUnoStruct('com.sun.star.awt.Rectangle') > > dlg = self.Toolkit.createMessageBox(self.Parent, rect, "errorbox", > > 1, title, message) > > dlg.execute() > > > > > > Which at least works for me, though I couldn't see why the > > com.sun.star.awt.MessageBoxButtons set of constants wouldn't work nicely > > for me. > > > > When I whack that into my system's TableSample.py and add: > > > > box = MessageBox(None) > > box.msgbox ("What is this ?") > > > > to createTable() - I get a nice message-box first :-) I bound running > > that macro to F4 to make it quicker to loop iterate / check the code > > > > The UNO API is pretty fearsome to use, it can help to read the > > interface comments in offapi/ but it is not for the faint hearted, > > clearly :-) > > > > I guess, seeing how broken the C++ side is - with helpful comments > > like: > > > > if(!bIsLoggedIn) > > { > > OSL_FAIL("create error message"); > > return; > > } > > > > that simply don't create an error message, or do anything useful - > > perhaps a chunk of the work needed is on the C++ side anyway. > > > > HTH, > > > > Michael. > > > > _______________________________________________ > LibreOffice mailing list > LibreOffice@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/libreoffice _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice