class InkTex(inkex.Effect): """ Our main class, derived from inkex.Effect. It wraps the other classes and implements the effect() function. """ def __init__(self): inkex.Effect.__init__(self) # the original (i.e., selected) svg element and the newly created one # including the original LaTeX source. self.orig = None self.orig_src = None self.new = None self.new_src = None def effect(self): """If there is an original element, store it. Open the GUI.""" self.orig, self.orig_src = self.get_original() self.ui = Ui(self.render, self.orig_src, self.get_settings()) self.ui.main() def render(self, tex, settings): """Execute the rendering and, upon errors, send them to the UI""" self.new_src = tex self.store_settings(settings) with Converter(self) as renderer: try: self.new = renderer.render(self.new_src, settings) self.copy_styles() self.store_src_information() self.append_or_replace() return True except Exception, e: self.ui.log(e.message)