Redesign build_widget_method to build_interactive_method

Signed-off-by: Mingde (Matthew) Zeng <matthewzmd@gmail.com>
master
Mingde (Matthew) Zeng 6 years ago
parent 77f805ad1b
commit 166798490a
  1. 2
      app/pdf-viewer/buffer.py
  2. 15
      app/rss-reader/buffer.py
  3. 3
      app/terminal/buffer.py
  4. 4
      app/video-player/buffer.py
  5. 12
      core/browser.py
  6. 21
      core/buffer.py

@ -47,7 +47,7 @@ class AppBuffer(Buffer):
"save_current_pos", "jump_to_saved_pos",
"scroll_right", "scroll_left",
"toggle_read_mode", "toggle_inverted_mode", "toggle_mark_link"]:
self.build_widget_method(method_name)
self.build_interactive_method(method_name, self.buffer_widget)
def destroy_buffer(self):
if self.delete_temp_file:

@ -38,22 +38,13 @@ class AppBuffer(Buffer):
for method_name in ["next_subscription", "prev_subscription", "next_article", "prev_article",
"first_subscription", "last_subscription", "first_article", "last_article"]:
self.build_widget_method(method_name)
self.build_interactive_method(method_name, self.buffer_widget)
for method_name in ["scroll_up", "scroll_down", "scroll_up_page", "scroll_down_page", "scroll_to_begin", "scroll_to_bottom",
"search_text_forward", "search_text_backward"]:
self.build_browser_method(method_name)
self.build_interactive_method(method_name, self.buffer_widget.browser)
self.build_browser_method("action_quit", "search_quit")
def build_browser_method(self, method_name, widget_method_name=None, message=None):
if widget_method_name:
setattr(self, method_name, getattr(self.buffer_widget.browser, widget_method_name))
else:
setattr(self, method_name, getattr(self.buffer_widget.browser, method_name))
if message != None:
self.message_to_emacs.emit(message)
self.build_interactive_method("action_quit", self.buffer_widget.browser, "search_quit")
def add_subscription(self):
self.send_input_message("Subscribe to RSS feed: ", "add_subscription")

@ -59,6 +59,9 @@ class AppBuffer(BrowserBuffer):
QTimer.singleShot(250, self.focus_terminal)
for method_name in ["search_text_forward", "search_text_backward", "scroll_up", "scroll_down", "scroll_up_page", "scroll_down_page", "scroll_to_begin", "scroll_to_bottom"]:
self.build_interactive_method(method_name, self)
def focus_terminal(self):
event = QMouseEvent(QEvent.MouseButtonPress, QPointF(0, 0), Qt.LeftButton, Qt.LeftButton, Qt.NoModifier)
QApplication.sendEvent(self.buffer_widget.focusProxy(), event)

@ -33,8 +33,8 @@ class AppBuffer(Buffer):
self.add_widget(VideoPlayerWidget())
self.buffer_widget.play(url)
self.build_widget_method("play_backward", "seek_backward")
self.build_widget_method("play_forward", "seek_forward")
self.build_interactive_method("play_backward", self.buffer_widget, "seek_backward")
self.build_interactive_method("play_forward", self.buffer_widget, "seek_forward")
def all_views_hide(self):
# Pause video before all views hdie, otherwise will got error "Internal data stream error".

@ -471,13 +471,13 @@ class BrowserBuffer(Buffer):
"scroll_up_page", "scroll_down_page", "scroll_to_begin", "scroll_to_bottom",
"refresh_page", "undo_action", "redo_action", "get_url", "exit_fullscreen",
"set_focus_text", "clear_focus", "dark_mode", "view_source", "focus_input"]:
self.build_widget_method(method_name)
self.build_interactive_method(method_name, self.buffer_widget)
self.build_widget_method("history_backward", "back")
self.build_widget_method("history_forward", "forward")
self.build_widget_method("action_quit", "search_quit")
self.build_widget_method("yank_text", "yank_text", "Yank text.")
self.build_widget_method("kill_text", "kill_text", "Kill text.")
self.build_interactive_method("history_backward", self.buffer_widget, "back")
self.build_interactive_method("history_forward", self.buffer_widget, "forward")
self.build_interactive_method("action_quit", self.buffer_widget, "search_quit")
self.build_interactive_method("yank_text", self.buffer_widget, "yank_text", "Yank text.")
self.build_interactive_method("kill_text", self.buffer_widget, "kill_text", "Kill text.")
for method_name in ["recover_prev_close_page", "scroll_up", "scroll_down", "scroll_left", "scroll_right",
"scroll_up_page", "scroll_down_page", "scroll_to_begin", "scroll_to_bottom",

@ -280,14 +280,19 @@ class Buffer(QGraphicsScene):
def get_url(self):
return self.url
def build_widget_method(self, method_name, widget_method_name=None, message=None):
if widget_method_name:
setattr(self, method_name, getattr(self.buffer_widget, widget_method_name))
else:
setattr(self, method_name, getattr(self.buffer_widget, method_name))
if message != None:
self.message_to_emacs.emit(message)
def build_interactive_method(self, method_name, origin_method_class, origin_method_name=None, message_emacs=None):
try:
del self.__dict__[method_name]
except KeyError:
pass
finally:
if origin_method_name:
setattr(self, method_name, getattr(origin_method_class, origin_method_name))
else:
setattr(self, method_name, getattr(origin_method_class, method_name))
if message_emacs != None:
self.message_to_emacs.emit(message_emacs)
def save_as_bookmark(self):
self.eval_in_emacs.emit('''(bookmark-set)''')

Loading…
Cancel
Save