Commit 48ac6925 authored by Andy Stewart's avatar Andy Stewart
Browse files

Refactory, EAF widget should use self.buffer.foo to call `foo` method

that define in buffer (AppBuffer).
parent 8d22d4a2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -109,4 +109,4 @@ class AppBuffer(BrowserBuffer):
                    f.write(new_title + " " + new_url + "\n")

    def new_blank_page(self):
        self.buffer_widget.eval_in_emacs.emit('''(eaf-open \"{0}\" \"browser\" \"\" t)'''''.format(self.emacs_var_dict["eaf-browser-blank-page-url"]))
        self.eval_in_emacs.emit('''(eaf-open \"{0}\" \"browser\" \"\" t)'''''.format(self.emacs_var_dict["eaf-browser-blank-page-url"]))
+17 −17
Original line number Diff line number Diff line
@@ -114,10 +114,10 @@ class AppBuffer(Buffer):
        self.buffer_widget.zoom_out()

    def jump_to_page(self):
        self.buffer_widget.send_input_message("Jump to Page: ", "jump_page")
        self.send_input_message("Jump to Page: ", "jump_page")

    def jump_to_percent(self):
        self.buffer_widget.send_input_message("Jump to Percent: ", "jump_percent")
        self.send_input_message("Jump to Percent: ", "jump_percent")

    def save_current_pos(self):
        self.buffer_widget.save_current_pos()
@@ -133,7 +133,7 @@ class AppBuffer(Buffer):

    def jump_to_link(self):
        self.buffer_widget.add_mark_jump_link_tips()
        self.buffer_widget.send_input_message("Jump to Link: ", "jump_link")
        self.send_input_message("Jump to Link: ", "jump_link")

    def action_quit(self):
        if self.buffer_widget.is_mark_search:
@@ -147,13 +147,13 @@ class AppBuffer(Buffer):
        if self.buffer_widget.is_mark_search:
            self.buffer_widget.jump_next_match()
        else:
            self.buffer_widget.send_input_message("Search Text: ", "search_text")
            self.send_input_message("Search Text: ", "search_text")

    def search_text_backward(self):
        if self.buffer_widget.is_mark_search:
            self.buffer_widget.jump_last_match()
        else:
            self.buffer_widget.send_input_message("Search Text: ", "search_text")
            self.send_input_message("Search Text: ", "search_text")

    def copy_select(self):
        if self.buffer_widget.is_select_mode:
@@ -301,17 +301,17 @@ class PdfViewerWidget(QWidget):

    def save_current_pos(self):
        self.remember_offset = self.scroll_offset
        self.message_to_emacs.emit("Saved current position.")
        self.buffer.message_to_emacs.emit("Saved current position.")

    def jump_to_saved_pos(self):
        if self.remember_offset is None:
            self.message_to_emacs.emit("Cannot jump from this position.")
            self.buffer.message_to_emacs.emit("Cannot jump from this position.")
        else:
            current_scroll_offset = self.scroll_offset
            self.scroll_offset = self.remember_offset
            self.update()
            self.remember_offset = current_scroll_offset
            self.message_to_emacs.emit("Jumped to saved position.")
            self.buffer.message_to_emacs.emit("Jumped to saved position.")

    def get_page_pixmap(self, index, scale):
        # Just return cache pixmap when found match index and scale in cache dict.
@@ -634,14 +634,14 @@ class PdfViewerWidget(QWidget):

    def jump_to_link(self, key):
        self.is_jump_link = True
        key = str(key).upper()
        key = key.upper()
        if key in self.jump_link_key_cache_dict:
            link = self.jump_link_key_cache_dict[key]
            self.save_current_pos()
            self.jump_to_page(link["page"] + 1)
        self.delete_all_mark_jump_link_tips()
        self.update()
        self.message_to_emacs.emit("Landed on Page " + str(link["page"] + 1))
        self.buffer.message_to_emacs.emit("Landed on Page " + str(link["page"] + 1))

    def cleanup_links(self):
        self.is_jump_link = False
@@ -681,26 +681,26 @@ class PdfViewerWidget(QWidget):
                    search_text_index += 1
        self.update()
        if(len(self.search_text_offset_list) == 0):
            self.message_to_emacs.emit("No results found with \"" + text + "\".")
            self.buffer.message_to_emacs.emit("No results found with \"" + text + "\".")
            self.is_mark_search = False
        else:
            self.update_scroll_offset(self.search_text_offset_list[self.search_text_index])
            self.message_to_emacs.emit("Found " + str(len(self.search_text_offset_list)) + " results with \"" + text + "\".")
            self.buffer.message_to_emacs.emit("Found " + str(len(self.search_text_offset_list)) + " results with \"" + text + "\".")

    def jump_next_match(self):
        if len(self.search_text_offset_list) > 0:
            self.search_text_index = (self.search_text_index + 1) % len(self.search_text_offset_list)
            self.update_scroll_offset(self.search_text_offset_list[self.search_text_index])
            self.message_to_emacs.emit("Match " + str(self.search_text_index + 1) + "/" + str(len(self.search_text_offset_list)))
            self.buffer.message_to_emacs.emit("Match " + str(self.search_text_index + 1) + "/" + str(len(self.search_text_offset_list)))

    def jump_last_match(self):
        if len(self.search_text_offset_list) > 0:
            self.search_text_index = (self.search_text_index - 1) % len(self.search_text_offset_list)
            self.update_scroll_offset(self.search_text_offset_list[self.search_text_index])
            self.message_to_emacs.emit("Match " + str(self.search_text_index + 1) + "/" + str(len(self.search_text_offset_list)))
            self.buffer.message_to_emacs.emit("Match " + str(self.search_text_index + 1) + "/" + str(len(self.search_text_offset_list)))

    def cleanup_search(self):
        self.message_to_emacs.emit("Unmarked all matched results.")
        self.buffer.message_to_emacs.emit("Unmarked all matched results.")
        if self.search_text_annot_cache_dict:
            for page_index in self.search_text_annot_cache_dict.keys():
                page = self.document[page_index]
@@ -882,7 +882,7 @@ class PdfViewerWidget(QWidget):
            if fitz.Point(ex, ey) in annot.rect:
                self.is_hover_annot = True
                annot.setOpacity(0.5)
                self.message_to_emacs.emit("[d]Delete Annot [e]Edit Annot")
                self.buffer.message_to_emacs.emit("[d]Delete Annot [e]Edit Annot")
            else:
                annot.setOpacity(1) # restore annot
                self.is_hover_annot = False
@@ -907,7 +907,7 @@ class PdfViewerWidget(QWidget):
                if annot.type[0] == 0:
                    self.get_focus_text.emit(self.buffer_id, annot.info["content"])
                else:
                    self.message_to_emacs.emit("Cannot edit. Only support text annot type.")
                    self.buffer.message_to_emacs.emit("Cannot edit. Only support text annot type.")

    def update_annot_text(self, annot_text):
        page, annot = self.hover_annot()
+12 −17
Original line number Diff line number Diff line
@@ -36,16 +36,11 @@ class AppBuffer(Buffer):

        self.add_widget(RSSReaderWidget(config_dir))

        self.buffer_widget.browser.message_to_emacs = self.message_to_emacs
        self.buffer_widget.browser.set_emacs_var = self.set_emacs_var
        self.buffer_widget.browser.eval_in_emacs = self.eval_in_emacs
        self.buffer_widget.browser.send_input_message = self.send_input_message

    def add_subscription(self):
        self.buffer_widget.send_input_message("Subscribe to RSS feed: ", "add_subscription")
        self.send_input_message("Subscribe to RSS feed: ", "add_subscription")

    def delete_subscription(self):
        self.buffer_widget.send_input_message("Are you sure you want to delete the current feed? (y or n): ", "delete_subscription")
        self.send_input_message("Are you sure you want to delete the current feed? (y or n): ", "delete_subscription")

    def next_subscription(self):
        self.buffer_widget.next_subscription()
@@ -166,7 +161,7 @@ class RSSReaderWidget(QWidget):

        welcome_title_label = QLabel("Welcome to EAF RSS Reader!")
        welcome_title_label.setFont(QFont('Arial', 24))
        welcome_title_label.setStyleSheet("QLabel {color: white; font-weight: bold; margin: 20px;}")
        welcome_title_label.setStyleSheet("QLabel {color: #333; font-weight: bold; margin: 20px;}")
        welcome_title_label.setAlignment(Qt.AlignHCenter)

        add_subscription_label = QLabel("Press 'a' to subscribe to a feed!")
@@ -254,7 +249,7 @@ class RSSReaderWidget(QWidget):
        if not self.feed_exists(feed_link):
            self.fetch_feed(feed_link, True)
        else:
            self.message_to_emacs.emit("Feed already exists: " + feed_link)
            self.buffer.message_to_emacs.emit("Feed already exists: " + feed_link)

    def delete_subscription(self):
        feed_count = self.feed_list.count()
@@ -283,7 +278,7 @@ class RSSReaderWidget(QWidget):
            else:
                self.feed_list.setCurrentRow(feed_count - 2)
            self.handle_feed(self.feed_list.currentItem())
            self.message_to_emacs.emit("Removed feed: " + feed_title)
            self.buffer.message_to_emacs.emit("Removed feed: " + feed_title)

    def feed_exists(self, feed_link):
        if not os.path.exists(self.feed_file_path):
@@ -314,7 +309,7 @@ class RSSReaderWidget(QWidget):
                    }

                    self.save_feed_dict(feed_dict)
                    self.message_to_emacs.emit("Add feed: " + feed_link)
                    self.buffer.message_to_emacs.emit("Add feed: " + feed_link)
        except Exception:
            import traceback
            traceback.print_exc()
@@ -323,7 +318,7 @@ class RSSReaderWidget(QWidget):
                "title": feed_title,
                "unread_articles": article_ids
            }})
            self.message_to_emacs.emit("Add feed: " + feed_link)
            self.buffer.message_to_emacs.emit("Add feed: " + feed_link)

    def save_feed_dict(self, feed_dict):
        with open(self.feed_file_path, "w") as f:
@@ -393,7 +388,7 @@ class RSSReaderWidget(QWidget):
            self.feed_list.setCurrentRow(0)

    def handle_invalid_rss(self, feed_link):
        self.message_to_emacs.emit("Invalid feed link: " + feed_link)
        self.buffer.message_to_emacs.emit("Invalid feed link: " + feed_link)

    def mark_article_read(self, feed_link, post_link):
        if os.path.exists(self.feed_file_path):
@@ -427,7 +422,7 @@ class RSSReaderWidget(QWidget):
            self.feed_list.scrollToItem(self.feed_list.currentItem())
            self.handle_feed(self.feed_list.currentItem())
        else:
            self.message_to_emacs.emit("End of subscribed feeds")
            self.buffer.message_to_emacs.emit("End of subscribed feeds")

    def prev_subscription(self):
        current_row = self.feed_list.currentRow()
@@ -437,7 +432,7 @@ class RSSReaderWidget(QWidget):
            self.feed_list.scrollToItem(self.feed_list.currentItem())
            self.handle_feed(self.feed_list.currentItem())
        else:
            self.message_to_emacs.emit("Beginning of subscribed feeds")
            self.buffer.message_to_emacs.emit("Beginning of subscribed feeds")

    def first_subscription(self):
        self.feed_list.setCurrentRow(0)
@@ -460,7 +455,7 @@ class RSSReaderWidget(QWidget):
            self.article_list.scrollToItem(self.article_list.currentItem())
            self.handle_article(self.article_list.currentItem())
        else:
            self.message_to_emacs.emit("End of articles")
            self.buffer.message_to_emacs.emit("End of articles")

    def prev_article(self):
        current_row = self.article_list.currentRow()
@@ -470,7 +465,7 @@ class RSSReaderWidget(QWidget):
            self.article_list.scrollToItem(self.article_list.currentItem())
            self.handle_article(self.article_list.currentItem())
        else:
            self.message_to_emacs.emit("Beginning of articles")
            self.buffer.message_to_emacs.emit("Beginning of articles")

    def first_article(self):
        self.article_list.setCurrentRow(0)
+2 −2
Original line number Diff line number Diff line
@@ -102,13 +102,13 @@ class BrowserView(QWebEngineView):

    def search_text_forward(self):
        if self.search_term == "":
            self.send_input_message("Forward Search Text: ", "search_text_forward")
            self.buffer.send_input_message("Forward Search Text: ", "search_text_forward")
        else:
            self._search_text(self.search_term)

    def search_text_backward(self):
        if self.search_term == "":
            self.send_input_message("Backward Search Text: ", "search_text_backward")
            self.buffer.send_input_message("Backward Search Text: ", "search_text_backward")
        else:
            self._search_text(self.search_term, True)

+0 −4
Original line number Diff line number Diff line
@@ -212,10 +212,6 @@ class Buffer(QGraphicsScene):

        self.buffer_widget.installEventFilter(self)

        self.buffer_widget.message_to_emacs = self.message_to_emacs
        self.buffer_widget.set_emacs_var = self.set_emacs_var
        self.buffer_widget.eval_in_emacs = self.eval_in_emacs
        self.buffer_widget.send_input_message = self.send_input_message
        self.buffer_widget.buffer = self

    def handle_destroy(self):