def translate_selection_area(self): selection_content = commands.getoutput("xsel -p -o") delete_selection() if len(selection_content) > 1 and not selection_content.isspace(): (mouse_x, mouse_y) = get_pointer_coordiante() self.translate_selection.emit(mouse_x, mouse_y, selection_content)
def click_menu(self, menu_id, state): if menu_id == "quit": qApp.quit() elif menu_id == "wizard": pass elif menu_id == "about": pass elif menu_id == "settings": self.showSettingView.emit() elif menu_id == "lang": src_lang = setting_config.get_translate_config("src_lang") dst_lang = setting_config.get_translate_config("dst_lang") setting_config.update_translate_config("src_lang", dst_lang) setting_config.update_translate_config("dst_lang", src_lang) self.menu.setItemText("lang", self.get_lang_value()) setting_view.updateLang.emit() else: if menu_id == "pause": if not state: delete_selection() self.set_menu_active(state) setting_config.update_trayicon_config(menu_id, state) self.set_trayicon()
def __init__(self): QObject.__init__(self) self.press_alt_flag = False self.press_ctrl_flag = False self.stop_timer = None self.stop_delay = 0.05 self.press_alt_timer = None self.press_alt_delay = 0.3 self.press_ctrl_timer = None self.press_ctrl_delay = 0.5 self.hover_flag = False self.double_click_flag = False self.double_click_counter = 0 self.double_click_timeout = True self.double_reset_timer = None self.double_click_delay = 0.3 # Delete selection first. delete_selection()
def record_callback(self, reply): global press_ctrl global press_shift check_valid_event(reply) data = reply.data while len(data): event, data = get_event_data(data) if event.type == X.KeyPress: keyname = get_keyname(event) if keyname not in ["Control_L", "Control_R"]: self.try_stop_timer(self.press_ctrl_timer) if keyname in ["Control_L", "Control_R"]: press_ctrl = True if not setting_config.get_trayicon_config("pause"): if not self.view.isVisible() or not self.view.in_translate_area(): self.press_ctrl_timer = Timer(self.press_ctrl_delay, self.emit_press_ctrl) self.press_ctrl_timer.start() elif keyname in ["Shift_L", "Shift_R"]: press_shift = True elif keyname in ["Escape"]: self.press_esc.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if keyname in ["Control_L", "Control_R"]: press_ctrl = False self.release_ctrl.emit() elif keyname in ["Shift_L", "Shift_R"]: press_shift = False elif event.type == X.ButtonPress: if event.detail == 1: self.left_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 3: self.right_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 5: self.wheel_press.emit() elif event.type == X.ButtonRelease: if not self.view.isVisible() or not self.view.in_translate_area(): if not setting_config.get_trayicon_config("pause"): if not setting_config.get_trayicon_config("key_trigger_select") or press_shift: selection_content = commands.getoutput("xsel -p -o") delete_selection() if len(selection_content) > 1 and not selection_content.isspace(): self.translate_selection.emit(event.root_x, event.root_y, selection_content) # Delete clipboard selection if user selection in visible area to avoid next time to translate those selection content. elif self.view.isVisible() and self.view.in_translate_area(): delete_selection() elif event.type == X.MotionNotify: self.try_stop_timer(self.stop_timer) if not setting_config.get_trayicon_config("pause"): self.stop_timer = Timer(self.stop_delay, lambda : self.emit_cursor_stop(event.root_x, event.root_y)) self.stop_timer.start()
def __init__(self): QObject.__init__(self) self.superFlag=False self.windowFlag=False self.superDelay=0.2 self.timer=None # Delete selection first. delete_selection()
def __init__(self, view): QObject.__init__(self) self.stop_timer = None self.stop_delay = 0.05 self.press_ctrl_timer = None self.press_ctrl_delay = 0.3 self.view = view # Delete selection first. delete_selection()
def click_menu(self, menu_id, state): if menu_id == "quit": qApp.quit() elif menu_id == "wizard": pass elif menu_id == "about": pass elif menu_id == "settings": self.showSettingView.emit() else: if menu_id == "pause": if not state: delete_selection() self.set_menu_active(state) setting_config.update_trayicon_config(menu_id, state)
def __init__(self): QObject.__init__(self) self.press_alt_flag = False self.press_ctrl_flag = False self.stop_timer = None self.stop_delay = 0.05 self.press_alt_timer = None self.press_alt_delay = 0.3 self.press_ctrl_timer = None self.press_ctrl_delay = 0.3 # Delete selection first. delete_selection()
def handle_event(self, event): if event.type == X.KeyPress: keyname = get_keyname(event) self.try_stop_timer(self.press_alt_timer) self.try_stop_timer(self.press_ctrl_timer) if is_alt_key(keyname): self.press_alt_flag = True if not setting_config.get_trayicon_config("pause"): if not self.is_view_visible( ) or not self.is_cursor_in_view_area(): self.press_alt_timer = Timer(self.press_alt_delay, self.emit_press_alt) self.press_alt_timer.start() elif is_ctrl_key(keyname): self.press_ctrl_flag = True if not setting_config.get_trayicon_config("pause"): if not self.is_view_visible( ) or not self.is_cursor_in_view_area(): self.press_ctrl_timer = Timer(self.press_ctrl_delay, self.emit_press_ctrl) self.press_ctrl_timer.start() elif keyname in ["Escape"]: self.press_esc.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if is_alt_key(keyname): self.press_alt_flag = False self.release_alt.emit() elif is_ctrl_key(keyname): self.press_ctrl_flag = False self.release_ctrl.emit() elif event.type == X.ButtonPress: if event.detail == 1: self.left_button_press.emit(event.root_x, event.root_y, event.time) # Set hover flag when press. self.hover_flag = False if self.double_click_timeout: self.double_click_flag = False self.double_click_timeout = False self.double_click_counter = 0 self.double_reset_timer = Timer(self.double_click_delay, self.reset_double_click) self.double_reset_timer.start() elif event.detail == 3: self.right_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 5: self.wheel_press.emit() elif event.type == X.ButtonRelease: self.double_click_counter += 1 if self.double_click_counter == 2: if self.double_reset_timer != None: self.try_stop_timer(self.double_reset_timer) self.double_click_flag = True self.double_click_timeout = True # import time if not self.is_view_visible() or not self.is_cursor_in_view_area(): # print "1", time.time() # Trigger selection handle if mouse hover or double click. if self.hover_flag or self.double_click_flag: if not setting_config.get_trayicon_config("pause"): if not setting_config.get_trayicon_config( "key_trigger_select") or self.press_ctrl_flag: self.translate_selection_area() # Delete clipboard selection if user selection in visible area to avoid next time to translate those selection content. elif self.is_view_visible() and self.is_cursor_in_view_area(): # print "2", time.time() delete_selection() self.hover_flag = False elif event.type == X.MotionNotify: # Set hover flag to prove selection action. self.hover_flag = True self.try_stop_timer(self.stop_timer) if not setting_config.get_trayicon_config("pause"): self.stop_timer = Timer( self.stop_delay, lambda: self.emit_cursor_stop(event.root_x, event.root_y)) self.stop_timer.start()
def handle_event(self, event): # print "*****************" if event.type == X.KeyPress: keyname = get_keyname(event) if not is_alt_key(keyname): self.try_stop_timer(self.press_alt_timer) elif not is_ctrl_key(keyname): self.try_stop_timer(self.press_ctrl_timer) if is_alt_key(keyname): self.press_alt_flag = True if not setting_config.get_trayicon_config("pause"): print "Press alt", not self.is_view_visible() or not self.is_cursor_in_view_area() if not self.is_view_visible() or not self.is_cursor_in_view_area(): self.press_alt_timer = Timer(self.press_alt_delay, lambda : self.press_alt.emit()) self.press_alt_timer.start() elif is_ctrl_key(keyname): self.press_ctrl_flag = True if not setting_config.get_trayicon_config("pause"): print "Press ctrl", not self.is_view_visible() or not self.is_cursor_in_view_area() if not self.is_view_visible() or not self.is_cursor_in_view_area(): self.press_ctrl_timer = Timer(self.press_ctrl_delay, lambda : self.press_ctrl.emit()) self.press_ctrl_timer.start() elif keyname in ["Escape"]: self.press_esc.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if is_alt_key(keyname): self.press_alt_flag = False self.release_alt.emit() elif is_ctrl_key(keyname): self.press_ctrl_flag = False self.release_ctrl.emit() elif event.type == X.ButtonPress: if event.detail == 1: self.left_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 3: self.right_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 5: self.wheel_press.emit() elif event.type == X.ButtonRelease: print "Button release", not self.is_view_visible() or not self.is_cursor_in_view_area() if not self.is_view_visible() or not self.is_cursor_in_view_area(): if not setting_config.get_trayicon_config("pause"): if not setting_config.get_trayicon_config("key_trigger_select") or self.press_ctrl_flag: selection_content = commands.getoutput("xsel -p -o") delete_selection() if len(selection_content) > 1 and not selection_content.isspace(): self.translate_selection.emit(event.root_x, event.root_y, selection_content) # Delete clipboard selection if user selection in visible area to avoid next time to translate those selection content. elif self.is_view_visible() and self.is_cursor_in_view_area(): delete_selection() elif event.type == X.MotionNotify: self.try_stop_timer(self.stop_timer) if not setting_config.get_trayicon_config("pause"): self.stop_timer = Timer(self.stop_delay, lambda : self.emit_cursor_stop(event.root_x, event.root_y)) self.stop_timer.start()
def handle_event(self, event): if event.type == X.KeyPress: keyname = get_keyname(event) self.try_stop_timer(self.press_alt_timer) self.try_stop_timer(self.press_ctrl_timer) if is_alt_key(keyname): self.press_alt_flag = True if not setting_config.get_trayicon_config("pause"): if not self.is_view_visible() or not self.is_cursor_in_view_area(): self.press_alt_timer = Timer(self.press_alt_delay, self.emit_press_alt) self.press_alt_timer.start() elif is_ctrl_key(keyname): self.press_ctrl_flag = True if not setting_config.get_trayicon_config("pause"): if not self.is_view_visible() or not self.is_cursor_in_view_area(): self.press_ctrl_timer = Timer(self.press_ctrl_delay, self.emit_press_ctrl) self.press_ctrl_timer.start() elif keyname in ["Escape"]: self.press_esc.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if is_alt_key(keyname): self.press_alt_flag = False self.release_alt.emit() elif is_ctrl_key(keyname): self.press_ctrl_flag = False self.release_ctrl.emit() elif event.type == X.ButtonPress: if event.detail == 1: self.left_button_press.emit(event.root_x, event.root_y, event.time) # Set hover flag when press. self.hover_flag = False if self.double_click_timeout: self.double_click_flag = False self.double_click_timeout = False self.double_click_counter = 0 self.double_reset_timer = Timer(self.double_click_delay, self.reset_double_click) self.double_reset_timer.start() elif event.detail == 3: self.right_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 5: self.wheel_press.emit() elif event.type == X.ButtonRelease: self.double_click_counter += 1 if self.double_click_counter == 2: if self.double_reset_timer != None: self.try_stop_timer(self.double_reset_timer) self.double_click_flag = True self.double_click_timeout = True # import time if not self.is_view_visible() or not self.is_cursor_in_view_area(): # print "1", time.time() # Trigger selection handle if mouse hover or double click. if self.hover_flag or self.double_click_flag: if not setting_config.get_trayicon_config("pause"): if not setting_config.get_trayicon_config("key_trigger_select") or self.press_ctrl_flag: self.translate_selection_area() # Delete clipboard selection if user selection in visible area to avoid next time to translate those selection content. elif self.is_view_visible() and self.is_cursor_in_view_area(): # print "2", time.time() delete_selection() self.hover_flag = False elif event.type == X.MotionNotify: # Set hover flag to prove selection action. self.hover_flag = True self.try_stop_timer(self.stop_timer) if not setting_config.get_trayicon_config("pause"): self.stop_timer = Timer(self.stop_delay, lambda : self.emit_cursor_stop(event.root_x, event.root_y)) self.stop_timer.start()