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 close(self, doc=None): if not self.docs: return if doc is None: doc = self.current_doc if not self.mw.nb.page_num(doc.docarea) == self.mw.nb.get_current_page(): self.mw.set_active_tab(doc.docarea) if self.inspector.is_doc_not_saved(doc): first = _("Document '%s' has been modified.") % (doc.doc_name) second = _('Do you want to save your changes?') ret = dialogs.warning_dialog(self.mw, self.appdata.app_name, first, second, [(icons.STOCK_DONT_SAVE, gtk.RESPONSE_NO,), (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL), (gtk.STOCK_SAVE, gtk.RESPONSE_OK)]) if ret == gtk.RESPONSE_OK: if not self.save(): return False elif ret == gtk.RESPONSE_NO: pass else: return False if doc in self.docs: self.docs.remove(doc) doc.close() events.emit(events.DOC_CLOSED) if not len(self.docs): self.current_doc = None events.emit(events.NO_DOCS) msg = _('To start create new or open existing document') events.emit(events.APP_STATUS, msg) return True
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 set_container(self, obj): if len(obj) == 1 and obj[0].cid > model.PRIMITIVE_CLASS and not \ obj[0] in self.selection.objs: self.pack_container(obj[0]) return False if not len(obj): first = _("There is no selected object.") elif obj[0] in self.selection.objs: first = _("Object from current selection cannot be container.") else: first = _("Selected object cannot be container.") second = _('Do you want to try again?') ret = dialogs.warning_dialog(self.app.mw, self.app.appdata.app_name, first, second, [(gtk.STOCK_NO, gtk.RESPONSE_CANCEL), (gtk.STOCK_YES, gtk.RESPONSE_OK)]) if ret == gtk.RESPONSE_OK: return True return False
def set_container(self, obj): if len(obj) == 1 and obj[0].cid > model.PRIMITIVE_CLASS and not \ obj[0] in self.selection.objs: self.pack_container(obj[0]) return False if not len(obj): first = _("There is no selected object.") elif obj[0] in self.selection.objs: first = _("Object from current selection cannot be container.") else: first = _("Selected object cannot be container.") second = _('Do you want to try again?') ret = dialogs.warning_dialog(self.app.mw, self.app.appdata.app_name, first, second, [(gtk.STOCK_NO, gtk.RESPONSE_CANCEL), (gtk.STOCK_YES, gtk.RESPONSE_OK)]) if ret == gtk.RESPONSE_OK: return True return False
def close(self, doc=None): if not self.docs: return if doc is None: doc = self.current_doc if not self.mw.nb.page_num( doc.docarea) == self.mw.nb.get_current_page(): self.mw.set_active_tab(doc.docarea) if self.inspector.is_doc_not_saved(doc): first = _("Document '%s' has been modified.") % (doc.doc_name) second = _('Do you want to save your changes?') ret = dialogs.warning_dialog( self.mw, self.appdata.app_name, first, second, [( icons.STOCK_DONT_SAVE, gtk.RESPONSE_NO, ), (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL), (gtk.STOCK_SAVE, gtk.RESPONSE_OK)]) if ret == gtk.RESPONSE_OK: if not self.save(): return False elif ret == gtk.RESPONSE_NO: pass else: return False if doc in self.docs: self.docs.remove(doc) doc.close() events.emit(events.DOC_CLOSED) if not len(self.docs): self.current_doc = None events.emit(events.NO_DOCS) msg = _('To start create new or open existing document') events.emit(events.APP_STATUS, msg) return True
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 ]