Example #1
0
    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)
Example #2
0
 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()
Example #3
0
    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()
Example #4
0
    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 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)
Example #7
0
 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()
Example #9
0
    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()
Example #10
0
    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)
Example #11
0
 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()
Example #13
0
    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()