def save(self): try: if config.make_backup: if os.path.lexists(self.doc_file): if os.path.lexists(self.doc_file + '~'): os.remove(self.doc_file + '~') os.rename(self.doc_file, self.doc_file + '~') saver = get_saver(self.doc_file) if saver is None: raise IOError( _('Unknown file format is requested for saving!'), self.doc_file) pd = ProgressDialog(_('Saving file...'), self.app.mw) ret = pd.run(saver, [self.doc_presenter, self.doc_file]) if ret == gtk.RESPONSE_OK: if not pd.error_info is None: pd.destroy() raise IOError(*pd.error_info) pd.destroy() else: pd.destroy() raise IOError(_('Error while saving'), self.doc_file) except IOError: raise IOError(*sys.exc_info()) self.reflect_saving()
def insert_doc(self, doc_file): doc_presenter = None loader = get_loader(doc_file) if loader is None: raise IOError(_('Unknown file format'), doc_file) pd = ProgressDialog(_('Importing file...'), self.app.mw) ret = pd.run(loader, [self.app.appdata, doc_file]) if ret == gtk.RESPONSE_OK: if pd.result is None: pd.destroy() raise IOError(*pd.error_info) doc_presenter = pd.result pd.destroy() res = simplify_doc(doc_presenter) if not res: first = _("File '%s' doesn't contain supported objects.") % ( doc_file) second = _( 'It seems all objects are either images or special groups.' ) ret = warning_dialog(self.app.mw, self.app.appdata.app_name, first, second, [(gtk.STOCK_OK, gtk.RESPONSE_OK)]) doc_presenter.close() return else: pd.destroy() raise IOError(_('Error while opening'), doc_file) if not doc_presenter is None: self.api.merge_doc(doc_presenter) doc_presenter.close()
def do_cutting(self): cut_bbox = None ret = get_cut_dialog(self.app) if ret == gtk.RESPONSE_ACCEPT: #Collect all objects page = self.doc_presenter.methods.get_pages()[-1] objs = [] for layer in page.childs: for obj in layer.childs: objs.append(obj) if not objs: first = _('Cannot cutting in file') sec = _('There are no objects in document.') msg = ("%s '%s'.") % (first, config.output_file) msg_dialog(self.app.mw, self.app.appdata.app_name, msg, sec) return try: saver = get_saver('file.plt') if config.cut_bbox: bbox = [] bbox += objs[0].cache_bbox for obj in objs: bbox = libgeom.sum_bbox(bbox, obj.cache_bbox) layer = page.childs[-1] cut_bbox = model.Rectangle(layer.config, layer, bbox) layer.childs.append(cut_bbox) cut_bbox.update() pd = ProgressDialog(_('Cutting...'), self.app.mw) ret = pd.run(saver, [ self.doc_presenter, config.output_file, True, { 'tolerance': config.tolerance } ]) if ret == gtk.RESPONSE_OK: if not pd.error_info is None: pd.destroy() raise IOError(*pd.error_info) pd.destroy() else: pd.destroy() raise IOError(_('Error while saving'), config.output_file) except IOError: details = sys.exc_info()[1].__str__() + sys.exc_info( )[2].__str__() first = _('Cannot cutting!') sec = _('Please check file name and write permissions') msg = ("%s '%s'.") % (first, config.output_file) msg_dialog(self.app.mw, self.app.appdata.app_name, msg, sec, details) if not cut_bbox is None: self.doc_presenter.methods.delete_object(cut_bbox)
def save(self): try: if config.make_backup: if os.path.lexists(self.doc_file): if os.path.lexists(self.doc_file + '~'): os.remove(self.doc_file + '~') os.rename(self.doc_file, self.doc_file + '~') saver = get_saver(self.doc_file) if saver is None: raise IOError(_('Unknown file format is requested for saving!'), self.doc_file) pd = ProgressDialog(_('Saving file...'), self.app.mw) ret = pd.run(saver, [self.doc_presenter, self.doc_file]) if ret == gtk.RESPONSE_OK: if not pd.error_info is None: pd.destroy() raise IOError(*pd.error_info) pd.destroy() else: pd.destroy() raise IOError(_('Error while saving'), self.doc_file) except IOError: raise IOError(*sys.exc_info()) self.reflect_saving()
def insert_doc(self, doc_file): doc_presenter = None loader = get_loader(doc_file) if loader is None: raise IOError(_('Unknown file format'), doc_file) pd = ProgressDialog(_('Importing file...'), self.app.mw) ret = pd.run(loader, [self.app.appdata, doc_file]) if ret == gtk.RESPONSE_OK: if pd.result is None: pd.destroy() raise IOError(*pd.error_info) doc_presenter = pd.result pd.destroy() res = simplify_doc(doc_presenter) if not res: first = _("File '%s' doesn't contain supported objects.") % (doc_file) second = _('It seems all objects are either images or special groups.') ret = warning_dialog(self.app.mw, self.app.appdata.app_name, first, second, [(gtk.STOCK_OK, gtk.RESPONSE_OK)]) doc_presenter.close() return else: pd.destroy() raise IOError(_('Error while opening'), doc_file) if not doc_presenter is None: self.api.merge_doc(doc_presenter) doc_presenter.close()
def do_cutting(self): cut_bbox = None ret = get_cut_dialog(self.app) if ret == gtk.RESPONSE_ACCEPT: #Collect all objects page = self.doc_presenter.methods.get_pages()[-1] objs = [] for layer in page.childs: for obj in layer.childs: objs.append(obj) if not objs: first = _('Cannot cutting in file') sec = _('There are no objects in document.') msg = ("%s '%s'.") % (first, config.output_file) msg_dialog(self.app.mw, self.app.appdata.app_name, msg, sec) return try: saver = get_saver('file.plt') if config.cut_bbox: bbox = [] bbox += objs[0].cache_bbox for obj in objs: bbox = libgeom.sum_bbox(bbox, obj.cache_bbox) layer = page.childs[-1] cut_bbox = model.Rectangle(layer.config, layer, bbox) layer.childs.append(cut_bbox) cut_bbox.update() pd = ProgressDialog(_('Cutting...'), self.app.mw) ret = pd.run(saver, [self.doc_presenter, config.output_file, True, {'tolerance':config.tolerance}]) if ret == gtk.RESPONSE_OK: if not pd.error_info is None: pd.destroy() raise IOError(*pd.error_info) pd.destroy() else: pd.destroy() raise IOError(_('Error while saving'), config.output_file) except IOError: details = sys.exc_info()[1].__str__() + sys.exc_info()[2].__str__() first = _('Cannot cutting!') sec = _('Please check file name and write permissions') msg = ("%s '%s'.") % (first, config.output_file) msg_dialog(self.app.mw, self.app.appdata.app_name, msg, sec, details) if not cut_bbox is None: self.doc_presenter.methods.delete_object(cut_bbox)
def __init__(self, app, doc_file='', silent=False): self.app = app self.eventloop = EventLoop(self) self.selection = Selection(self) if doc_file: loader = get_loader(doc_file) if loader is None: raise IOError(_('Unknown file format'), doc_file) if silent: self.doc_presenter = loader(app.appdata, doc_file) simplify_doc(self.doc_presenter) else: pd = ProgressDialog(_('Opening file...'), self.app.mw) ret = pd.run(loader, [app.appdata, doc_file]) if ret == gtk.RESPONSE_OK: if pd.result is None: pd.destroy() raise IOError(*pd.error_info) self.doc_presenter = pd.result pd.destroy() res = simplify_doc(self.doc_presenter) if not res: first = _("File '%s' doesn't contain supported objects.") % (doc_file) second = _('It seems all objects are either images or special groups.') ret = warning_dialog(self.app.mw, self.app.appdata.app_name, first, second, [(gtk.STOCK_OK, gtk.RESPONSE_OK)]) else: pd.destroy() raise IOError(_('Error while opening'), doc_file) self.doc_file = self.doc_presenter.doc_file self.doc_name = os.path.basename(self.doc_file) self.doc_name = change_file_extension(self.doc_name, uc2const.FORMAT_EXTENSION[uc2const.PDXF][0]) else: self.doc_presenter = PDXF_Presenter(app.appdata) self.doc_presenter.new() self.doc_name = self.app.get_new_docname() self.methods = self.doc_presenter.methods self.model = self.doc_presenter.model self.set_active_page() self.cms = self.doc_presenter.cms self.cms.use_cms = False self.api = PresenterAPI(self) self.docarea = DocArea(self.app, self) self.canvas = self.docarea.canvas self.api.view = self.canvas self.app.mw.add_tab(self.docarea) self.eventloop.connect(self.eventloop.DOC_MODIFIED, self.modified) self.traced_objects = [ self.eventloop, self.api, self.docarea.hruler, self.docarea.vruler, self.docarea.corner, self.docarea, self.canvas.renderer, self.canvas, self.selection, self ]
def __init__(self, app, doc_file='', silent=False): self.app = app self.eventloop = EventLoop(self) self.selection = Selection(self) if doc_file: loader = get_loader(doc_file) if loader is None: raise IOError(_('Unknown file format'), doc_file) if silent: self.doc_presenter = loader(app.appdata, doc_file) simplify_doc(self.doc_presenter) else: pd = ProgressDialog(_('Opening file...'), self.app.mw) ret = pd.run(loader, [app.appdata, doc_file]) if ret == gtk.RESPONSE_OK: if pd.result is None: pd.destroy() raise IOError(*pd.error_info) self.doc_presenter = pd.result pd.destroy() res = simplify_doc(self.doc_presenter) if not res: first = _( "File '%s' doesn't contain supported objects.") % ( doc_file) second = _( 'It seems all objects are either images or special groups.' ) ret = warning_dialog(self.app.mw, self.app.appdata.app_name, first, second, [(gtk.STOCK_OK, gtk.RESPONSE_OK)]) else: pd.destroy() raise IOError(_('Error while opening'), doc_file) self.doc_file = self.doc_presenter.doc_file self.doc_name = os.path.basename(self.doc_file) self.doc_name = change_file_extension( self.doc_name, uc2const.FORMAT_EXTENSION[uc2const.PDXF][0]) else: self.doc_presenter = PDXF_Presenter(app.appdata) self.doc_presenter.new() self.doc_name = self.app.get_new_docname() self.methods = self.doc_presenter.methods self.model = self.doc_presenter.model self.set_active_page() self.cms = self.doc_presenter.cms self.cms.use_cms = False self.api = PresenterAPI(self) self.docarea = DocArea(self.app, self) self.canvas = self.docarea.canvas self.api.view = self.canvas self.app.mw.add_tab(self.docarea) self.eventloop.connect(self.eventloop.DOC_MODIFIED, self.modified) self.traced_objects = [ self.eventloop, self.api, self.docarea.hruler, self.docarea.vruler, self.docarea.corner, self.docarea, self.canvas.renderer, self.canvas, self.selection, self ]