mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Merged revisions 85820,85823,85825,85840,85843-85845,85849-85851,85855,85867,85875,85907-85908,85911,85914 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k ........ r85820 | georg.brandl | 2010-10-24 16:20:22 +0200 (So, 24 Okt 2010) | 1 line Remove usage of exception indexing. ........ r85823 | georg.brandl | 2010-10-24 16:32:45 +0200 (So, 24 Okt 2010) | 1 line Fix style. ........ r85825 | georg.brandl | 2010-10-24 17:16:02 +0200 (So, 24 Okt 2010) | 1 line Add documentation about the default warnings filters. ........ r85840 | georg.brandl | 2010-10-25 19:50:20 +0200 (Mo, 25 Okt 2010) | 1 line #3018: tkinter demo fixes for py3k. ........ r85843 | georg.brandl | 2010-10-26 08:59:23 +0200 (Di, 26 Okt 2010) | 1 line Markup fix. ........ r85844 | georg.brandl | 2010-10-26 12:39:14 +0200 (Di, 26 Okt 2010) | 1 line Work a bit more on tkinter demos. ........ r85845 | georg.brandl | 2010-10-26 12:42:16 +0200 (Di, 26 Okt 2010) | 1 line faqwiz is removed. ........ r85849 | georg.brandl | 2010-10-26 21:31:06 +0200 (Di, 26 Okt 2010) | 1 line #10200: typo. ........ r85850 | georg.brandl | 2010-10-26 21:58:11 +0200 (Di, 26 Okt 2010) | 1 line #10200: typo. ........ r85851 | georg.brandl | 2010-10-26 22:12:37 +0200 (Di, 26 Okt 2010) | 1 line Fix import. ........ r85855 | georg.brandl | 2010-10-27 09:21:54 +0200 (Mi, 27 Okt 2010) | 1 line Encoding fix. ........ r85867 | georg.brandl | 2010-10-27 22:01:51 +0200 (Mi, 27 Okt 2010) | 1 line Add David. ........ r85875 | georg.brandl | 2010-10-28 10:38:30 +0200 (Do, 28 Okt 2010) | 1 line Fix bytes/str issues in get-remote-certificate.py. ........ r85907 | georg.brandl | 2010-10-29 06:54:13 +0200 (Fr, 29 Okt 2010) | 1 line #10222: fix for overzealous AIX compiler. ........ r85908 | georg.brandl | 2010-10-29 07:22:17 +0200 (Fr, 29 Okt 2010) | 1 line send_bytes obviously needs bytes... ........ r85911 | georg.brandl | 2010-10-29 07:36:28 +0200 (Fr, 29 Okt 2010) | 1 line Fix markup error and update false positive entries from "make suspicious". ........ r85914 | georg.brandl | 2010-10-29 08:17:38 +0200 (Fr, 29 Okt 2010) | 1 line (?:...) is a non-capturing, but still grouping construct. ........
This commit is contained in:
		
							parent
							
								
									d62ecbf0ba
								
							
						
					
					
						commit
						f55aa80b37
					
				
					 34 changed files with 315 additions and 269 deletions
				
			
		|  | @ -1,143 +0,0 @@ | |||
| #! /usr/bin/env python | ||||
| 
 | ||||
| # View a single MIME multipart message. | ||||
| # Display each part as a box. | ||||
| 
 | ||||
| import string | ||||
| from types import * | ||||
| from tkinter import * | ||||
| from tkinter.scrolledtext import ScrolledText | ||||
| 
 | ||||
| class MimeViewer: | ||||
|     def __init__(self, parent, title, msg): | ||||
|         self.title = title | ||||
|         self.msg = msg | ||||
|         self.frame = Frame(parent, {'relief': 'raised', 'bd': 2}) | ||||
|         self.frame.packing = {'expand': 0, 'fill': 'both'} | ||||
|         self.button = Checkbutton(self.frame, | ||||
|                              {'text': title, | ||||
|                               'command': self.toggle}) | ||||
|         self.button.pack({'anchor': 'w'}) | ||||
|         headertext = msg.getheadertext( | ||||
|                 lambda x: x != 'received' and x[:5] != 'x400-') | ||||
|         height = countlines(headertext, 4) | ||||
|         if height: | ||||
|             self.htext = ScrolledText(self.frame, | ||||
|                               {'height': height, | ||||
|                                'width': 80, | ||||
|                                'wrap': 'none', | ||||
|                                'relief': 'raised', | ||||
|                                'bd': 2}) | ||||
|             self.htext.packing = {'expand': 1, 'fill': 'both', | ||||
|                                   'after': self.button} | ||||
|             self.htext.insert('end', headertext) | ||||
|         else: | ||||
|             self.htext = Frame(self.frame, | ||||
|                                {'relief': 'raised', 'bd': 2}) | ||||
|             self.htext.packing = {'side': 'top', | ||||
|                                   'ipady': 2, | ||||
|                                   'fill': 'x', | ||||
|                                   'after': self.button} | ||||
|         body = msg.getbody() | ||||
|         if type(body) == StringType: | ||||
|             self.pad = None | ||||
|             height = countlines(body, 10) | ||||
|             if height: | ||||
|                 self.btext = ScrolledText(self.frame, | ||||
|                                   {'height': height, | ||||
|                                    'width': 80, | ||||
|                                    'wrap': 'none', | ||||
|                                    'relief': 'raised', | ||||
|                                    'bd': 2}) | ||||
|                 self.btext.packing = {'expand': 1, | ||||
|                                       'fill': 'both'} | ||||
|                 self.btext.insert('end', body) | ||||
|             else: | ||||
|                 self.btext = None | ||||
|             self.parts = None | ||||
|         else: | ||||
|             self.pad = Frame(self.frame, | ||||
|                              {'relief': 'flat', 'bd': 2}) | ||||
|             self.pad.packing = {'side': 'left', 'ipadx': 10, | ||||
|                                 'fill': 'y', 'after': self.htext} | ||||
|             self.parts = [] | ||||
|             for i in range(len(body)): | ||||
|                 p = MimeViewer(self.frame, | ||||
|                                '%s.%d' % (title, i+1), | ||||
|                                body[i]) | ||||
|                 self.parts.append(p) | ||||
|             self.btext = None | ||||
|         self.collapsed = 1 | ||||
|     def pack(self): | ||||
|         self.frame.pack(self.frame.packing) | ||||
|     def destroy(self): | ||||
|         self.frame.destroy() | ||||
|     def show(self): | ||||
|         if self.collapsed: | ||||
|             self.button.invoke() | ||||
|     def toggle(self): | ||||
|         if self.collapsed: | ||||
|             self.explode() | ||||
|         else: | ||||
|             self.collapse() | ||||
|     def collapse(self): | ||||
|         self.collapsed = 1 | ||||
|         for comp in self.htext, self.btext, self.pad: | ||||
|             if comp: | ||||
|                 comp.forget() | ||||
|         if self.parts: | ||||
|             for part in self.parts: | ||||
|                 part.frame.forget() | ||||
|         self.frame.pack({'expand': 0}) | ||||
|     def explode(self): | ||||
|         self.collapsed = 0 | ||||
|         for comp in self.htext, self.btext, self.pad: | ||||
|             if comp: comp.pack(comp.packing) | ||||
|         if self.parts: | ||||
|             for part in self.parts: | ||||
|                 part.pack() | ||||
|         self.frame.pack({'expand': 1}) | ||||
| 
 | ||||
| def countlines(str, limit): | ||||
|     i = 0 | ||||
|     n = 0 | ||||
|     while  n < limit: | ||||
|         i = string.find(str, '\n', i) | ||||
|         if i < 0: break | ||||
|         n = n+1 | ||||
|         i = i+1 | ||||
|     return n | ||||
| 
 | ||||
| def main(): | ||||
|     import sys | ||||
|     import getopt | ||||
|     import mhlib | ||||
|     opts, args = getopt.getopt(sys.argv[1:], '') | ||||
|     for o, a in opts: | ||||
|         pass | ||||
|     message = None | ||||
|     folder = 'inbox' | ||||
|     for arg in args: | ||||
|         if arg[:1] == '+': | ||||
|             folder = arg[1:] | ||||
|         else: | ||||
|             message = string.atoi(arg) | ||||
| 
 | ||||
|     mh = mhlib.MH() | ||||
|     f = mh.openfolder(folder) | ||||
|     if not message: | ||||
|         message = f.getcurrent() | ||||
|     m = f.openmessage(message) | ||||
| 
 | ||||
|     root = Tk() | ||||
|     tk = root.tk | ||||
| 
 | ||||
|     top = MimeViewer(root, '+%s/%d' % (folder, message), m) | ||||
|     top.pack() | ||||
|     top.show() | ||||
| 
 | ||||
|     root.minsize(1, 1) | ||||
| 
 | ||||
|     tk.mainloop() | ||||
| 
 | ||||
| if __name__ == '__main__': main() | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Georg Brandl
						Georg Brandl