Beispiel #1
0
    def follow_if_link(self, text_view, iter):
        ''' Looks at all tags covering the position of iter in the text view,
            and if one of them is a link, follow it by showing the page identified
            by the data attached to it.
        '''
        tags = iter.get_tags()
        for tag in tags:
            page = tag.get_data("link")
            if page != None:
                #print "Calling link ", page
                # Paint a new cursor
                #self.waiting = True
                wx, wy, mod = text_view.window.get_pointer()
                bx, by = text_view.window_to_buffer_coords(
                    gtk.TEXT_WINDOW_WIDGET, wx, wy)
                self.set_cursor_if_appropriate(text_view, bx, by)
                text_view.window.get_pointer()

                if self.callback:
                    if page.startswith("http:") or page.startswith("mailto:"):
                        pubutil.message(
                            "Cannot load external page: \n\n(" + page + ")",
                            "ePub Message")
                        break
                    ret = self.callback(page)
                    if not ret:
                        pubutil.message("Cannot load page: '" + page + "'")

                break
Beispiel #2
0
 def find(self, arg):
     ret = pubutil.find(self)
     if not ret:
         return
     self.oldfind = ret[0]
     if self.olditer:
         iter3 =  self.olditer
     else:
         iter3 = self.buffer_1.get_iter_at_mark(self.buffer_1.get_insert())
     if not iter3:
         iter3 = self.buffer_1.get_start_iter()
     eiter = iter3.forward_search(ret[0], 0)
     if not eiter:
         self.prog.set_text(ret[0] + " Not Found")
         pubutil.message("Text " + "'" + ret[0] + "'" + " Not Found", "Search")
         self.olditer = None
         return
     self.view.scroll_to_iter(eiter[0], 0.3) #, True, 0, 0)
     self.view.place_cursor_onscreen()
     self.buffer_1.select_range(eiter[0], eiter[1])
     self.olditer = eiter[1]