def __init__(self, parent, callback, icon): self.parent = parent self.callback = callback self.icon = icon self.window = Tkinter.Toplevel(parent) self.window.withdraw() self.window.title('Translation progress') self.window.transient(parent) self.window.group(parent) self.window.protocol('WM_DELETE_WINDOW', self.stub) self.window.tk.call('wm', 'iconbitmap', self.window, self.icon) self.win_panel = TFrame(self.window, borderwidth=10) self.win_panel.pack(side=TOP, fill=BOTH) top_panel = TFrame(self.win_panel) top_panel.pack(side=TOP, fill=X, pady=5) self.label1_reference = StringVar(self.window) self.label1 = TLabel(top_panel, textvariable=self.label1_reference) self.label1.pack(side=LEFT) self.label1_reference.set('Start...') mid_panel = TFrame(self.win_panel) mid_panel.pack(side=TOP, fill=X) self.label2_reference = StringVar(self.window) self.label2 = TLabel(mid_panel, textvariable=self.label2_reference) self.label2.pack(side=LEFT) self.label2_reference.set('') self.progress_reference = IntVar(self.window) self.progress_bar = Ttk.TProgressbar(self.win_panel, orient='horizontal', length=450, variable=self.progress_reference) self.progress_bar.pack(side=TOP, anchor='w') self.progress_reference.set(10) self.window.resizable(False, False) self.set_position() self.window.deiconify()
class ConvProgress: window = None parent = None callback = None icon = None def __init__(self, parent, callback, icon): self.parent = parent self.callback = callback self.icon = icon self.window = Tkinter.Toplevel(parent) self.window.withdraw() self.window.title('Translation progress') self.window.transient(parent) self.window.group(parent) self.window.protocol('WM_DELETE_WINDOW', self.stub) self.window.tk.call('wm', 'iconbitmap', self.window, self.icon) self.win_panel = TFrame(self.window, borderwidth=10) self.win_panel.pack(side=TOP, fill=BOTH) top_panel = TFrame(self.win_panel) top_panel.pack(side=TOP, fill=X, pady=5) self.label1_reference = StringVar(self.window) self.label1 = TLabel(top_panel, textvariable=self.label1_reference) self.label1.pack(side=LEFT) self.label1_reference.set('Start...') mid_panel = TFrame(self.win_panel) mid_panel.pack(side=TOP, fill=X) self.label2_reference = StringVar(self.window) self.label2 = TLabel(mid_panel, textvariable=self.label2_reference) self.label2.pack(side=LEFT) self.label2_reference.set('') self.progress_reference = IntVar(self.window) self.progress_bar = Ttk.TProgressbar(self.win_panel, orient='horizontal', length=450, variable=self.progress_reference) self.progress_bar.pack(side=TOP, anchor='w') self.progress_reference.set(10) self.window.resizable(False, False) self.set_position() self.window.deiconify() def msg_receiver(self, msg1, msg2, val=0, mode='determinate'): self.label1_reference.set(msg1) self.label2_reference.set(msg2) self.progress_reference.set(val) self.window.update() def run_dialog(self, *args): self.window.grab_set() self.callback() self.close() def set_position(self): self.window.update() width = self.win_panel.winfo_reqwidth() height = self.win_panel.winfo_reqheight() posx = self.window.winfo_screenwidth() / 2 - width / 2 posy = self.window.winfo_screenheight() / 2 - height / 2 self.window.geometry('%dx%d%+d%+d' % (width, height, posx, posy)) def close(self): self.parent.grab_set() self.window.destroy() def stub(self): pass
def __init__(self, icon, options, filetypes, file=None, app_ver=None): self.icon = icon self.options = options self.encoding = sys.getfilesystemencoding() if self.encoding is None: self.encoding = sys.getdefaultencoding() if not app_ver is None: self.app_ver = app_ver exit_message = 'Cancel' if not file is None: if os.path.isfile(file): self.file = file self.filetypes = filetypes self.window = Tkinter.Tk() self.window.withdraw() self.window.title('UniConvertor ' + self.app_ver) self.window.tk.call('wm', 'iconbitmap', self.window, self.icon) self.win_panel = TFrame(self.window, borderwidth=10) self.win_panel.pack(side=TOP, fill=Tkinter.BOTH, expand=1) #File selection file_panel = TFrame(self.win_panel) label = TLabel(file_panel, text='File: ') label.pack(side=LEFT, padx=5) self.file_button = TButton(file_panel, text='...', command=self.openFile, width=0) self.file_button.pack(side=RIGHT) self.file_reference = StringVar(self.window) self.file_reference.set('<None>') self.file_entry = TEntry(file_panel, text='<None>', state='readonly', textvariable=self.file_reference) self.file_entry.pack(side=RIGHT, fill=X, expand=1) if self.file is None: file_panel.pack(side=TOP, fill=X) self.stand_alone = True #Formats label = TLabel(self.win_panel, text=' Convert to: ') label.pack(side=TOP, padx=5) format_frame = TLabelframe(self.win_panel, labelwidget=label, borderwidth=2) format_frame.pack(side=TOP, fill=Tkinter.X, expand=1, pady=2) formats = [] for item in self.options: formats.append(item[0]) self.format_reference = StringVar(self.window) self.format_reference.set(self.options[1][0]) self.format_combo = TCombobox(format_frame, values=formats, width=50, state='readonly', textvariable=self.format_reference) self.format_combo.pack(expand=1, padx=10, pady=10) #Buttons button_panel = TFrame(self.win_panel) button_panel.pack(side=BOTTOM, fill=X, expand=1, pady=5) self.but_close = TButton(button_panel, text='Cancel', width=10, command=self.close) self.but_close.pack(side=RIGHT) self.but_convert = TButton(button_panel, text='Convert', width=10, command=self.convert) self.but_convert.pack(side=RIGHT, padx=10) if self.file is None: self.but_convert['state'] = 'disabled' self.but_close['text'] = 'Close' label = TLabel(button_panel, text='http://sk1project.org', state='disabled') label.pack(side=LEFT, anchor='sw') self.window.resizable(False, False) self.set_position() self.window.deiconify()
class UniConvw: file = None initialized = False stand_alone = False icon = None window = None initialdir = '' app_ver = '' def __init__(self, icon, options, filetypes, file=None, app_ver=None): self.icon = icon self.options = options self.encoding = sys.getfilesystemencoding() if self.encoding is None: self.encoding = sys.getdefaultencoding() if not app_ver is None: self.app_ver = app_ver exit_message = 'Cancel' if not file is None: if os.path.isfile(file): self.file = file self.filetypes = filetypes self.window = Tkinter.Tk() self.window.withdraw() self.window.title('UniConvertor ' + self.app_ver) self.window.tk.call('wm', 'iconbitmap', self.window, self.icon) self.win_panel = TFrame(self.window, borderwidth=10) self.win_panel.pack(side=TOP, fill=Tkinter.BOTH, expand=1) #File selection file_panel = TFrame(self.win_panel) label = TLabel(file_panel, text='File: ') label.pack(side=LEFT, padx=5) self.file_button = TButton(file_panel, text='...', command=self.openFile, width=0) self.file_button.pack(side=RIGHT) self.file_reference = StringVar(self.window) self.file_reference.set('<None>') self.file_entry = TEntry(file_panel, text='<None>', state='readonly', textvariable=self.file_reference) self.file_entry.pack(side=RIGHT, fill=X, expand=1) if self.file is None: file_panel.pack(side=TOP, fill=X) self.stand_alone = True #Formats label = TLabel(self.win_panel, text=' Convert to: ') label.pack(side=TOP, padx=5) format_frame = TLabelframe(self.win_panel, labelwidget=label, borderwidth=2) format_frame.pack(side=TOP, fill=Tkinter.X, expand=1, pady=2) formats = [] for item in self.options: formats.append(item[0]) self.format_reference = StringVar(self.window) self.format_reference.set(self.options[1][0]) self.format_combo = TCombobox(format_frame, values=formats, width=50, state='readonly', textvariable=self.format_reference) self.format_combo.pack(expand=1, padx=10, pady=10) #Buttons button_panel = TFrame(self.win_panel) button_panel.pack(side=BOTTOM, fill=X, expand=1, pady=5) self.but_close = TButton(button_panel, text='Cancel', width=10, command=self.close) self.but_close.pack(side=RIGHT) self.but_convert = TButton(button_panel, text='Convert', width=10, command=self.convert) self.but_convert.pack(side=RIGHT, padx=10) if self.file is None: self.but_convert['state'] = 'disabled' self.but_close['text'] = 'Close' label = TLabel(button_panel, text='http://sk1project.org', state='disabled') label.pack(side=LEFT, anchor='sw') self.window.resizable(False, False) self.set_position() self.window.deiconify() def convert(self): self.progress_dlg = ConvProgress(self.window, self.callback, self.icon) self.progress_dlg.run_dialog() if not self.stand_alone: self.close() def init_convertor(self): if not self.initialized: from uniconvertor import init_uniconv init_uniconv() self.initialized = True def get_format(self): format = self.format_reference.get() for item in self.options: if item[0] == format: format = item[1] return format def callback(self): self.init_convertor() self.send_msgs("Start", "UniConvertor is initialized", 2) from app.io import load from sk1libs import filters import app, time app.receiver = self.progress_dlg.msg_receiver app.init_lib() self.send_msgs("Start", "Loading plugin configuration", 3) filters.load_plugin_configuration() input_file = self.file output_file = self.file + '.' + self.get_format() doc = None try: self.send_msgs("Start", "Parsing document file", 5) doc = load.load_drawing(input_file) extension = os.path.splitext(output_file)[1] self.send_msgs("", "Parsing is completed", 100) fileformat = filters.guess_export_plugin(extension) self.send_msgs("", "Saving translated file", 50) if fileformat: saver = filters.find_export_plugin(fileformat) saver(doc, output_file) self.send_msgs("", "Translated file is saved", 100) else: self.msg_dialog('\nERROR: unrecognized extension %s\n' % extension) except Exception, value: self.msg_dialog("\nAn error occurred: " + str(value)) finally:
def __init__(self, icon, options, filetypes, file=None, app_ver=None): self.icon=icon self.options=options self.encoding=sys.getfilesystemencoding() if self.encoding is None: self.encoding=sys.getdefaultencoding() if not app_ver is None: self.app_ver=app_ver exit_message='Cancel' if not file is None: if os.path.isfile(file): self.file=file self.filetypes=filetypes self.window=Tkinter.Tk() self.window.withdraw() self.window.title('UniConvertor '+self.app_ver) self.window.tk.call('wm', 'iconbitmap', self.window, self.icon) self.win_panel=TFrame(self.window, borderwidth=10) self.win_panel.pack(side=TOP, fill=Tkinter.BOTH, expand=1) #File selection file_panel=TFrame(self.win_panel) label=TLabel(file_panel, text='File: ') label.pack(side = LEFT, padx=5) self.file_button=TButton(file_panel, text='...', command=self.openFile, width=0) self.file_button.pack(side=RIGHT) self.file_reference = StringVar(self.window) self.file_reference.set('<None>') self.file_entry=TEntry(file_panel, text='<None>', state='readonly', textvariable=self.file_reference) self.file_entry.pack(side=RIGHT, fill=X, expand=1) if self.file is None: file_panel.pack(side = TOP, fill=X) self.stand_alone=True #Formats label=TLabel(self.win_panel, text=' Convert to: ') label.pack(side = TOP, padx=5) format_frame=TLabelframe(self.win_panel, labelwidget=label, borderwidth=2) format_frame.pack(side = TOP, fill=Tkinter.X, expand=1, pady=2) formats=[] for item in self.options: formats.append(item[0]) self.format_reference = StringVar(self.window) self.format_reference.set(self.options[1][0]) self.format_combo=TCombobox(format_frame, values=formats, width=50, state='readonly', textvariable=self.format_reference) self.format_combo.pack(expand=1, padx=10, pady=10) #Buttons button_panel=TFrame(self.win_panel) button_panel.pack(side=BOTTOM, fill=X, expand=1, pady=5) self.but_close=TButton(button_panel, text='Cancel', width=10, command=self.close) self.but_close.pack(side=RIGHT) self.but_convert=TButton(button_panel, text='Convert', width=10, command=self.convert) self.but_convert.pack(side=RIGHT, padx=10) if self.file is None: self.but_convert['state']='disabled' self.but_close['text']='Close' label=TLabel(button_panel, text='http://sk1project.org', state='disabled') label.pack(side = LEFT, anchor='sw') self.window.resizable(False,False) self.set_position() self.window.deiconify()
class UniConvw: file=None initialized=False stand_alone=False icon=None window=None initialdir='' app_ver='' def __init__(self, icon, options, filetypes, file=None, app_ver=None): self.icon=icon self.options=options self.encoding=sys.getfilesystemencoding() if self.encoding is None: self.encoding=sys.getdefaultencoding() if not app_ver is None: self.app_ver=app_ver exit_message='Cancel' if not file is None: if os.path.isfile(file): self.file=file self.filetypes=filetypes self.window=Tkinter.Tk() self.window.withdraw() self.window.title('UniConvertor '+self.app_ver) self.window.tk.call('wm', 'iconbitmap', self.window, self.icon) self.win_panel=TFrame(self.window, borderwidth=10) self.win_panel.pack(side=TOP, fill=Tkinter.BOTH, expand=1) #File selection file_panel=TFrame(self.win_panel) label=TLabel(file_panel, text='File: ') label.pack(side = LEFT, padx=5) self.file_button=TButton(file_panel, text='...', command=self.openFile, width=0) self.file_button.pack(side=RIGHT) self.file_reference = StringVar(self.window) self.file_reference.set('<None>') self.file_entry=TEntry(file_panel, text='<None>', state='readonly', textvariable=self.file_reference) self.file_entry.pack(side=RIGHT, fill=X, expand=1) if self.file is None: file_panel.pack(side = TOP, fill=X) self.stand_alone=True #Formats label=TLabel(self.win_panel, text=' Convert to: ') label.pack(side = TOP, padx=5) format_frame=TLabelframe(self.win_panel, labelwidget=label, borderwidth=2) format_frame.pack(side = TOP, fill=Tkinter.X, expand=1, pady=2) formats=[] for item in self.options: formats.append(item[0]) self.format_reference = StringVar(self.window) self.format_reference.set(self.options[1][0]) self.format_combo=TCombobox(format_frame, values=formats, width=50, state='readonly', textvariable=self.format_reference) self.format_combo.pack(expand=1, padx=10, pady=10) #Buttons button_panel=TFrame(self.win_panel) button_panel.pack(side=BOTTOM, fill=X, expand=1, pady=5) self.but_close=TButton(button_panel, text='Cancel', width=10, command=self.close) self.but_close.pack(side=RIGHT) self.but_convert=TButton(button_panel, text='Convert', width=10, command=self.convert) self.but_convert.pack(side=RIGHT, padx=10) if self.file is None: self.but_convert['state']='disabled' self.but_close['text']='Close' label=TLabel(button_panel, text='http://sk1project.org', state='disabled') label.pack(side = LEFT, anchor='sw') self.window.resizable(False,False) self.set_position() self.window.deiconify() def convert(self): self.progress_dlg=ConvProgress(self.window, self.callback, self.icon) self.progress_dlg.run_dialog() if not self.stand_alone: self.close() def init_convertor(self): if not self.initialized: from uniconvertor import init_uniconv init_uniconv() self.initialized=True def get_format(self): format=self.format_reference.get() for item in self.options: if item[0]==format: format=item[1] return format def callback(self): self.init_convertor() self.send_msgs("Start", "UniConvertor is initialized",2) from app.io import load from sk1libs import filters import app, time app.receiver=self.progress_dlg.msg_receiver app.init_lib() self.send_msgs("Start", "Loading plugin configuration",3) filters.load_plugin_configuration() input_file=self.file output_file=self.file+'.'+ self.get_format() doc=None try: self.send_msgs("Start", "Parsing document file",5) doc = load.load_drawing(input_file) extension = os.path.splitext(output_file)[1] self.send_msgs("", "Parsing is completed",100) fileformat = filters.guess_export_plugin(extension) self.send_msgs("", "Saving translated file",50) if fileformat: saver = filters.find_export_plugin(fileformat) saver(doc, output_file) self.send_msgs("", "Translated file is saved",100) else: self.msg_dialog('\nERROR: unrecognized extension %s\n' % extension) except Exception, value: self.msg_dialog("\nAn error occurred: " + str(value)) finally: