Esempio n. 1
0
    def __init__(self,
                 widget,
                 label,
                 generator,
                 image_file=None,
                 text='',
                 syntax=None):
        title = _(
            'Edit %s'
        ) % label  # T: dialog title, %s is the object name like "Equation"
        Dialog.__init__(self, widget, title, defaultwindowsize=(450, 300))
        self.generator = generator
        self.log_file = None
        self.image_file = image_file
        self.result = None, None

        self.vpane = VPaned()
        self.vpane.set_position(150)
        self.vbox.pack_start(self.vpane, True, True, 0)

        self.imageview = ImageView(bgcolor='#FFF')
        swin = ScrolledWindow(self.imageview)
        swin.set_size_request(200, 50)
        self.vpane.pack1(swin, resize=True)
        # TODO scrolled window and option to zoom in / real size

        window, textview = ScrolledSourceView(syntax=syntax)
        self.textview = textview
        self.textview.set_editable(True)
        self.vpane.pack2(window, resize=False)

        hbox = Gtk.HBox(spacing=5)
        self.vbox.pack_start(hbox, False, True, 0)

        self.previewbutton = Gtk.Button.new_with_mnemonic(_('_Preview'))
        # T: button in e.g. equation editor dialog
        self.previewbutton.set_sensitive(False)
        self.previewbutton.connect('clicked', lambda o: self.update_image())
        hbox.pack_start(self.previewbutton, False, True, 0)

        self.textview.get_buffer().connect(
            'modified-changed',
            lambda b: self.previewbutton.set_sensitive(b.get_modified()))

        self.logbutton = Gtk.Button.new_with_mnemonic(_('View _Log'))
        # T: button in e.g. equation editor dialog
        self.logbutton.set_sensitive(False)
        self.logbutton.connect('clicked', lambda o: self.show_log())
        hbox.pack_start(self.logbutton, False, True, 0)

        self.set_text(text)
        self.imageview.set_file(self.image_file)  # if None sets broken image
        self.textview.grab_focus()
Esempio n. 2
0
    def __init__(self,
                 window,
                 title,
                 generator,
                 image=None,
                 syntax=None,
                 **opt):
        '''Constructor

		@param window: the L{MainWindow}
		@param title: the dialog title
		@param generator: an L{ImageGeneratorClass} object
		@param image: image data for an image in the
		L{TextBuffer<zim.gui.pageview.TextBuffer>}
		@param syntax: optional syntax name (as understood by gtksourceview)
		@param opt: any other arguments to pass to the L{Dialog} constructor
		'''
        Dialog.__init__(self,
                        window,
                        title,
                        defaultwindowsize=(450, 300),
                        **opt)
        self.app_window = window
        self.generator = generator
        self.imagefile = None
        self.logfile = None

        self.vpane = VPaned()
        self.vpane.set_position(150)
        self.vbox.add(self.vpane)

        self.imageview = ImageView(bgcolor='#FFF', checkerboard=False)
        self.vpane.pack1(self.imageview, resize=True)
        # TODO scrolled window and option to zoom in / real size

        window, textview = ScrolledSourceView(syntax=syntax)
        self.textview = textview
        self.textview.set_editable(True)
        self.vpane.pack2(window, resize=False)

        hbox = gtk.HBox(spacing=5)
        self.vbox.pack_start(hbox, False)

        self.previewbutton = Button(_('_Preview'), stock='gtk-refresh')
        # T: button in e.g. equation editor dialog
        self.previewbutton.set_sensitive(False)
        self.previewbutton.connect_object('clicked', self.__class__.preview,
                                          self)
        hbox.pack_start(self.previewbutton, False)

        self.textview.get_buffer().connect(
            'modified-changed',
            lambda b: self.previewbutton.set_sensitive(b.get_modified()))

        self.logbutton = Button(_('View _Log'), stock='gtk-file')
        # T: button in e.g. equation editor dialog
        self.logbutton.set_sensitive(False)
        self.logbutton.connect_object('clicked', self.__class__.show_log, self)
        if generator.uses_log_file:
            hbox.pack_start(self.logbutton, False)
        # else keep hidden

        if image:
            file = image['_src_file']  # FIXME ?
            textfile = self._stitch_fileextension(file,
                                                  self.generator.scriptname)
            self._existing_file = textfile
            self.imageview.set_file(file)
            self.set_text(self.generator.filter_input(textfile.read()))
        else:
            self._existing_file = None
            self.set_text(
                self.generator.filter_input(self.generator.get_default_text()))

        self.textview.grab_focus()
Esempio n. 3
0
    def __init__(self, ui, title, generator, image=None, syntax=None, **opt):
        '''Constructor

		@param ui: L{GtkInterface} object or parent window
		@param title: the dialog title
		@param generator: an L{ImageGeneratorClass} object
		@param image: image data for an image in the
		L{TextBuffer<zim.gui.pageview.TextBuffer>}
		@param syntax: optional syntax name (as understood by gtksourceview)
		@param opt: any other arguments to pass to the L{Dialog} constructor
		'''
        if ui_environment['platform'] == 'maemo':
            defaultsize = (450, 480)
            # Use maximum available vertical space because decorations take
            # too much real state
        else:
            defaultsize = (450, 300)
        Dialog.__init__(self, ui, title, defaultwindowsize=defaultsize, **opt)
        if ui_environment['platform'] == 'maemo':
            self.resize(450, 480)
            # Force maximum dialog size under maemo, otherwise
            # we'll end with a too small dialog and no way to resize it
        self.generator = generator
        self.imagefile = None
        self.logfile = None

        self.vpane = VPaned()
        self.vpane.set_position(150)
        self.vbox.add(self.vpane)

        self.imageview = ImageView(bgcolor='#FFF', checkerboard=False)
        self.vpane.pack1(self.imageview, resize=True)
        # TODO scrolled window and option to zoom in / real size

        window, textview = ScrolledSourceView(syntax=syntax)
        self.textview = textview
        self.textview.set_editable(True)
        self.vpane.pack2(window, resize=False)

        hbox = gtk.HBox(spacing=5)
        self.vbox.pack_start(hbox, False)

        self.previewbutton = Button(_('_Preview'), stock='gtk-refresh')
        # T: button in e.g. equation editor dialog
        self.previewbutton.set_sensitive(False)
        self.previewbutton.connect_object('clicked', self.__class__.preview,
                                          self)
        hbox.pack_start(self.previewbutton, False)

        self.textview.get_buffer().connect(
            'modified-changed',
            lambda b: self.previewbutton.set_sensitive(b.get_modified()))

        self.logbutton = Button(_('View _Log'), stock='gtk-file')
        # T: button in e.g. equation editor dialog
        self.logbutton.set_sensitive(False)
        self.logbutton.connect_object('clicked', self.__class__.show_log, self)
        if generator.uses_log_file:
            hbox.pack_start(self.logbutton, False)
        # else keep hidden

        self._existing_file = None
        if image:
            file = image['_src_file']  # FIXME ?
            textfile = self._stitch_fileextension(file,
                                                  self.generator.scriptname)
            self._existing_file = textfile
            self.imageview.set_file(file)
            self.set_text(self.generator.filter_input(textfile.read()))

        self.textview.grab_focus()