Beispiel #1
0
 def __init__(self):
     self.__root = Tkinter.Tk()
     self.__root.configure(background=__BG__)
     self.__root.title("iReminder")
     w, h = self.__root.winfo_screenwidth(), self.__root.winfo_screenheight(
     )
     self.__full_geom = "%dx%d+0+0" % (w, h)
     self.__root.geometry(self.__full_geom)
     self.__old_label_image = None
     self.__pending_jobs = []
     self.__tk_obj_ref = None  # need keep ref to prevent GC (garbage collection)
     self.__onscreen_help = False
     self.__onscreen_info = False
     self.__pause_slideshow = False
     self.__fullscreen_mode = True
     if get_fullscreen_mode2():
         self.__root.overrideredirect(
             self.__fullscreen_mode)  # do this b4 ...'-fullscreen'
     self.__root.attributes("-fullscreen", self.__fullscreen_mode)
     self.__root.bind("<Escape>", self.toggle_display_mode)
     self.__root.bind("<BackSpace>", self.delete_image)
     self.__root.bind("<Button>", lambda e: e.widget.quit())
     self.__root.bind("<Right>", lambda e: e.widget.quit())
     self.__root.bind("<Left>", self.show_previous_image)
     self.__root.bind("<h>", self.toggle_onscreen_help)
     self.__root.bind("<H>", self.toggle_onscreen_help)
     self.__root.bind("<i>", self.toggle_onscreen_info)
     self.__root.bind("<I>", self.toggle_onscreen_info)
     self.__root.bind("<p>", self.toggle_pause_slideshow)
     self.__root.bind("<P>", self.toggle_pause_slideshow)
     self.__root.bind("<q>", user_quit)
     self.__root.bind("<Q>", user_quit)
     self.__root.bind("<equal>", self.increment_rank)
     self.__root.bind("<minus>", self.decrement_rank)
     self.__cur_image_obj = None
     self.__cur_image_obj_list = []  # image_obj in list
     self.__cur_image_obj_dict = {
     }  # image_obj in dict (same content as above)
     self.__phrase_binding = {}  # key: pattern, value: list of PhraseGroup
     self.__cur_phrase_obj_dict = {
     }  # key: phrase group name, value: PhraseGroup
     self.__cur_graph_file = None
     self.__graph_history = deque(maxlen=GraphViewer.IMAGE_HISTORY_SIZE)
     self.__cur_digest = ""
     self.__arbitrator = None
     self.__canvas = Tkinter.Canvas(self.__root,
                                    bg=__BG__,
                                    bd=0,
                                    highlightthickness=0)
     self.__canvas.pack(expand=Tkinter.YES, fill=Tkinter.BOTH)
     self.__help = self.help_text()
     self.__info = self.info_text()
     self.__phrase_var = Tkinter.StringVar()
     self.__phrase = self.phrase_text()
Beispiel #2
0
 def set_general_setting(self):
     # global
     data_home = get_data_home() if not self.__config.has_option("global", "data_location") else \
         self.__config.get("global", "data_location")
     accessible_pivot = get_accessible_pivot() if not self.__config.has_option("global", "network_accessible_pivot") else \
         self.__config.get("global", "network_accessible_pivot")
     set_data_home(data_home)
     set_accessible_pivot(accessible_pivot)
     # search
     api_key = get_api_key() if not self.__config.has_option("search", "api_key") else \
         self.__config.get("search", "api_key")
     cx = get_cx() if not self.__config.has_option("search", "cx") else \
         self.__config.get("search", "cx")
     latency = get_latency() if not self.__config.has_option("search", "latency") else \
         float(self.__config.get("search", "latency"))
     search_size = get_search_size() if not self.__config.has_option("search", "search_size") else \
         int(self.__config.get("search", "search_size"))
     if self.__config.has_option("search", "img_size"):
         img_size = list(
             set(self.__config.get(
                 "search", "img_size").split('|')))  # 'set' to uniquify
     else:
         img_size = get_img_size()
     set_api_key(api_key)
     set_cx(cx)
     set_latency(latency)
     set_search_size(search_size)
     set_img_size(img_size)
     # image
     slideshow_rate = get_slideshow_rate() if not self.__config.has_option("image", "slideshow_rate") else \
         float(self.__config.get("image", "slideshow_rate"))
     fullscreen_mode2 = get_fullscreen_mode2() if not self.__config.has_option("image", "fullscreen_mode2") else \
         "True" == self.__config.get("image", "fullscreen_mode2")
     set_slideshow_rate(slideshow_rate)
     set_fullscreen_mode2(fullscreen_mode2)
     # phrase
     attach_rate = get_attach_rate() if not self.__config.has_option("phrase", "attach_rate") else \
         float(self.__config.get("phrase", "attach_rate"))
     font_size = get_font_size() if not self.__config.has_option("phrase", "font_size") else \
         float(self.__config.get("phrase", "font_size"))
     set_attach_rate(attach_rate)
     set_font_size(font_size)
     print("=======  iReminder setting  ============="
           )  # currently, we only show selected entries
     print("data home:      ", data_home)
     print("slideshow rate: ", slideshow_rate)
     print("attach rate:    ", attach_rate)
     print("latency:        ", latency)
     print("search size:    ", search_size)
     print("========================================")
Beispiel #3
0
 def __init__(self):
     self.__root = Tkinter.Tk()
     self.__root.configure(background=__BG__)
     self.__root.title("reminder")
     w, h = self.__root.winfo_screenwidth(), self.__root.winfo_screenheight()
     self.__full_geom = "%dx%d+0+0" % (w, h)
     self.__root.geometry(self.__full_geom)
     self.__old_label_image = None
     self.__pending_jobs = []
     self.__tk_obj_ref = None  # need keep ref to prevent GC (garbage collection)
     self.__onscreen_help = False
     self.__onscreen_info = False
     self.__pause_slideshow = False
     self.__fullscreen_mode = True
     if get_fullscreen_mode2():
         self.__root.overrideredirect(self.__fullscreen_mode)  # do this b4 ...'-fullscreen'
     self.__root.attributes("-fullscreen", self.__fullscreen_mode)
     self.__root.bind("<Escape>", self.toggle_display_mode)
     self.__root.bind("<BackSpace>", self.delete_image)
     self.__root.bind("<Button>", lambda e: e.widget.quit())
     self.__root.bind("<Right>", lambda e: e.widget.quit())
     self.__root.bind("<Left>", self.show_previous_image)
     self.__root.bind("<h>", self.toggle_onscreen_help)
     self.__root.bind("<i>", self.toggle_onscreen_info)
     self.__root.bind("<p>", self.toggle_pause_slideshow)
     self.__root.bind("<q>", user_quit)
     self.__root.bind("<equal>", self.increment_rank)
     self.__root.bind("<minus>", self.decrement_rank)
     self.__cur_image_obj = None
     self.__cur_image_obj_list = []  # image_obj in list
     self.__cur_image_obj_dict = {}  # image_obj in dict (same content as above)
     self.__phrase_binding = {}  # key: pattern, value: list of PhraseGroup
     self.__cur_phrase_obj_dict = {}  # key: phrase group name, value: PhraseGroup
     self.__cur_graph_file = None
     self.__graph_history = deque(maxlen=GraphViewer.IMAGE_HISTORY_SIZE)
     self.__cur_digest = ""
     self.__arbitrator = None
     self.__canvas = Tkinter.Canvas(self.__root, bg=__BG__, bd=0, highlightthickness=0)
     self.__canvas.pack(expand=Tkinter.YES, fill=Tkinter.BOTH)
     self.__help = self.help_text()
     self.__info = self.info_text()
     self.__phrase_var = Tkinter.StringVar()
     self.__phrase = self.phrase_text()
Beispiel #4
0
 def set_general_setting(self):
     lang = get_lang() if not self.__config.has_option("reminder", "lang") else \
         self.__config.get("reminder", "lang")
     if type(lang) is str:
         lang = EN if "EN" == lang else CHT if "CHT" == lang else None
     assert lang is not None
     data_home = get_data_home() if not self.__config.has_option("reminder", "data_location") else \
         self.__config.get("reminder", "data_location")
     slideshow_frequency = get_slideshow_frequency() if not self.__config.has_option("image", "slideshow_frequency") else \
         float(self.__config.get("image", "slideshow_frequency"))
     phrase_appear_ratio = get_phrase_appear_ratio() if not self.__config.has_option("phrase", "ratio") else \
         float(self.__config.get("phrase", "ratio"))
     api_key = get_api_key() if not self.__config.has_option("search", "api_key") else \
         self.__config.get("search", "api_key")
     cx = get_cx() if not self.__config.has_option("search", "cx") else \
         self.__config.get("search", "cx")
     search_latency = get_search_latency() if not self.__config.has_option("search", "search_latency") else \
         float(self.__config.get("search", "search_latency"))
     fullscreen_mode2 = get_fullscreen_mode2() if not self.__config.has_option("reminder", "fullscreen_mode2") else \
         "True" == self.__config.get("reminder", "fullscreen_mode2")
     verbose = get_verbose() if not self.__config.has_option("reminder", "verbose") else \
         "True" == self.__config.get("reminder", "verbose")
     set_lang(lang)
     set_data_home(data_home)
     set_slideshow_frequency(slideshow_frequency)
     set_phrase_appear_ratio(phrase_appear_ratio)
     set_search_latency(search_latency)
     set_api_key(api_key)
     set_cx(cx)
     set_fullscreen_mode2(fullscreen_mode2)
     set_verbose(verbose)
     print("=======  reminder setting  =============")
     print("data home:       ", data_home)
     print("slideshow:       ", slideshow_frequency)
     print("phrase ratio:    ", phrase_appear_ratio)
     print("search latency:  ", search_latency)
     print("api key:         ", api_key if "" != api_key else "None")
     print("cx:              ", cx if "" != cx else "None")
     print("========================================")
Beispiel #5
0
 def toggle_display_mode(self, *unused):
     self.__fullscreen_mode = not self.__fullscreen_mode
     self.__root.attributes("-fullscreen", self.__fullscreen_mode)
     if get_fullscreen_mode2():
         self.__root.overrideredirect(self.__fullscreen_mode)
     self.set_graph_content(self.__cur_graph_file)
Beispiel #6
0
 def toggle_display_mode(self, *unused):
     self.__fullscreen_mode = not self.__fullscreen_mode
     self.__root.attributes("-fullscreen", self.__fullscreen_mode)
     if get_fullscreen_mode2():
         self.__root.overrideredirect(self.__fullscreen_mode)
     self.set_graph_content(self.__cur_graph_file)