Loading app/browser/buffer.py +2 −2 Original line number Diff line number Diff line Loading @@ -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"])) app/pdf-viewer/buffer.py +17 −17 Original line number Diff line number Diff line Loading @@ -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() Loading @@ -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: Loading @@ -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: Loading Loading @@ -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. Loading Loading @@ -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 Loading Loading @@ -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] Loading Loading @@ -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 Loading @@ -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() Loading app/rss-reader/buffer.py +12 −17 Original line number Diff line number Diff line Loading @@ -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() Loading Loading @@ -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!") Loading Loading @@ -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() Loading Loading @@ -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): Loading Loading @@ -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() Loading @@ -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: Loading Loading @@ -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): Loading Loading @@ -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() Loading @@ -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) Loading @@ -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() Loading @@ -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) Loading core/browser.py +2 −2 Original line number Diff line number Diff line Loading @@ -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) Loading core/buffer.py +0 −4 Original line number Diff line number Diff line Loading @@ -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): Loading Loading
app/browser/buffer.py +2 −2 Original line number Diff line number Diff line Loading @@ -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"]))
app/pdf-viewer/buffer.py +17 −17 Original line number Diff line number Diff line Loading @@ -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() Loading @@ -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: Loading @@ -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: Loading Loading @@ -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. Loading Loading @@ -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 Loading Loading @@ -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] Loading Loading @@ -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 Loading @@ -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() Loading
app/rss-reader/buffer.py +12 −17 Original line number Diff line number Diff line Loading @@ -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() Loading Loading @@ -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!") Loading Loading @@ -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() Loading Loading @@ -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): Loading Loading @@ -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() Loading @@ -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: Loading Loading @@ -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): Loading Loading @@ -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() Loading @@ -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) Loading @@ -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() Loading @@ -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) Loading
core/browser.py +2 −2 Original line number Diff line number Diff line Loading @@ -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) Loading
core/buffer.py +0 −4 Original line number Diff line number Diff line Loading @@ -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): Loading