Added the ability to search using the actual characters
This commit is contained in:
		
							parent
							
								
									15fbe3e5e6
								
							
						
					
					
						commit
						c76532cb10
					
				
					 1 changed files with 13 additions and 19 deletions
				
			
		
							
								
								
									
										26
									
								
								main.py
									
										
									
									
									
								
							
							
						
						
									
										26
									
								
								main.py
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,13 +1,9 @@
 | 
			
		|||
import sys
 | 
			
		||||
 | 
			
		||||
sys.path.append("/home/zen/.local/lib/python2.7/site-packages/")
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
from os.path import join
 | 
			
		||||
import time
 | 
			
		||||
import sys
 | 
			
		||||
import codecs
 | 
			
		||||
from ulauncher.search.SortedList import SortedList
 | 
			
		||||
from os.path import join
 | 
			
		||||
 | 
			
		||||
from ulauncher.search.SortedList import SortedList
 | 
			
		||||
from ulauncher.api.client.Extension import Extension
 | 
			
		||||
from ulauncher.api.client.EventListener import EventListener
 | 
			
		||||
from ulauncher.api.shared.event import KeywordQueryEvent, ItemEnterEvent
 | 
			
		||||
| 
						 | 
				
			
			@ -41,7 +37,7 @@ class UnicodeChar:
 | 
			
		|||
 | 
			
		||||
    def get_search_name(self):
 | 
			
		||||
        """ Called by `ulauncher.search.SortedList` to get the string that should be used in searches """
 | 
			
		||||
        return ' '.join([self.code, self.name, self.comment])
 | 
			
		||||
        return ' '.join([self.character, self.code, self.name, self.comment])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class UnicodeCharExtension(Extension):
 | 
			
		||||
| 
						 | 
				
			
			@ -68,7 +64,7 @@ class KeywordQueryEventListener(EventListener):
 | 
			
		|||
            result_list = SortedList(arg, min_score=40, limit=10)
 | 
			
		||||
            result_list.extend(extension.character_list)
 | 
			
		||||
            for char in result_list:
 | 
			
		||||
                image_path = self._get_character_icon(char)
 | 
			
		||||
                image_path = get_character_icon(char)
 | 
			
		||||
                items.append(
 | 
			
		||||
                    ExtensionResultItem(
 | 
			
		||||
                        icon=image_path,
 | 
			
		||||
| 
						 | 
				
			
			@ -77,20 +73,18 @@ class KeywordQueryEventListener(EventListener):
 | 
			
		|||
                        on_enter=CopyToClipboardAction(char.character),
 | 
			
		||||
                    )
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
        return RenderResultListAction(items)
 | 
			
		||||
 | 
			
		||||
    def _get_character_icon(self, char):
 | 
			
		||||
        path = sys.argv[0] + "images/cache/icon_%s.svg" % char.code
 | 
			
		||||
def get_character_icon(char):
 | 
			
		||||
    """ Check if there is an existing icon for this character and return its path
 | 
			
		||||
    or create a new one and return its path.
 | 
			
		||||
    """
 | 
			
		||||
    path = FILE_PATH + "images/cache/icon_%s.svg" % char.code
 | 
			
		||||
    if os.path.isfile(path):
 | 
			
		||||
        return path
 | 
			
		||||
    return create_character_icon(char)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def is_icon_cached(code):
 | 
			
		||||
    return os.path.isfile(os.path.join(FILE_PATH, "images/cache/icon_%s.svg" % code))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def create_character_icon(char, font="sans-serif"):
 | 
			
		||||
    """ Create an SVG file containing the unicode glyph for char to be used
 | 
			
		||||
    as a result icon.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue