Beispiel #1
0
	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
Beispiel #3
0
    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()
Beispiel #4
0
	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
Beispiel #5
0
    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
Beispiel #6
0
    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
Beispiel #7
0
	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
							]
Beispiel #8
0
    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
        ]