def update_views(self, args): view_infos = args.split(",") # Do something if buffer's all view hide after update_views operation. old_view_buffer_ids = list( set(map(lambda v: v.buffer_id, self.view_dict.values()))) new_view_buffer_ids = list( set(map(lambda v: v.split(":")[0], view_infos))) # Call all_views_hide interface when buffer's all views will hide. # We do something in app's buffer interface, such as videoplayer will pause video when all views hide. # Note, we must call this function before last view destroy, # such as QGraphicsVideoItem will report "Internal data stream error" error. for old_view_buffer_id in old_view_buffer_ids: if old_view_buffer_id not in new_view_buffer_ids: self.buffer_dict[old_view_buffer_id].all_views_hide() # Remove old key from view dict and destroy old view. for key in list(self.view_dict): if key not in view_infos: self.view_dict[key].handle_destroy() self.view_dict.pop(key, None) # Create new view and udpate in view dict. if view_infos != ['']: for view_info in view_infos: if view_info not in self.view_dict: (buffer_id, _, _, _, _, _) = view_info.split(":") view = View(self.buffer_dict[buffer_id], view_info) self.view_dict[view_info] = view view.trigger_focus_event.connect(self.focus_emacs_buffer) # Call some_view_show interface when buffer's view switch back. # Note, this must call after new view create, otherwise some buffer, # such as QGraphicsVideoItem will report "Internal data stream error" error. if view_infos != ['']: for new_view_buffer_id in new_view_buffer_ids: if new_view_buffer_id not in old_view_buffer_ids: self.buffer_dict[new_view_buffer_id].some_view_show() # Adjust buffer size along with views change. # Note: just buffer that option `fit_to_view' is False need to adjust, # if buffer option fit_to_view is True, buffer render adjust by view.resizeEvent() for buffer in list(self.buffer_dict.values()): if not buffer.fit_to_view: buffer_views = list( filter(lambda v: v.buffer_id == buffer.buffer_id, list(self.view_dict.values()))) # Adjust buffer size to max view's size. if len(buffer_views) > 0: max_view = max(buffer_views, key=lambda v: v.width * v.height) buffer.buffer_widget.resize(max_view.width, max_view.height) # Adjust buffer size to emacs window size if not match view found. else: buffer.buffer_widget.resize(emacs_width, emacs_height)
def set(self): params = {} params["key"] = "key" params["value"] = "zpy is the law" Cookie.set(params["key"], params["value"], 3600) return View.load("/cookie/set.tpl", params)
def __init__(self, status, headers={}, tpl=None): # get http status code's from json hsc = open('config/http_status_codes.json') jhsc = json.load(hsc) # view params params = {'key': status, 'value': ''} params['SERVER_NAME'] = Env.get('SERVER_NAME') params['CONTACT'] = Env.get('CONTACT') params['SERVER_SOFTWARE'] = Env.get('SERVER_SOFTWARE') # status exists in json if status in jhsc: params['value'] = jhsc[status] # status tpl if tpl==None: tpl = "error/"+status+".tpl" # Content type required header if 'Content-Type' in headers: pass else: headers['Content-Type'] = 'text/html' # load view data = View.load(tpl, params) # view not exists, load default tpl if data==False: tpl = 'error/default.tpl' data = View.load(tpl, params) msg = "\nzpy Error: \n" msg += "Status: "+status+"\n" msg += "Url: "+Env.get('REQUEST_URI')+"\n" msg += "Remote Address: "+Env.get('REMOTE_ADDR')+"\n" msg += "Date: "+time.strftime("%Y/%m/%d %H:%M:%S")+"\n" msg += "-------------------------------------------" Log.debug(msg) web.HTTPError.__init__(self, status, headers, data)
def read_views(path): views = [] with open(path, "r") as ins: for line in ins: line = line.replace(" ", "").replace("\n", "") numbers = line.split(",") views.append( View(int(int(numbers[0])), int(int(numbers[1])), int(int(numbers[2])), int(int(numbers[3])))) if len(views) == 0: print(path) return views
def main(stdscr): curses.curs_set(0) the_game = SquareGame() the_view = View(the_game) solve_flag = False hints_flag = False status_text = "Hello!" def prompt_key(stdscr, status_text, prompt_text): stdscr.move(21, 0) stdscr.deleteln() stdscr.deleteln() stdscr.addstr(21, 0, status_text) stdscr.addstr(22, 0, prompt_text) return stdscr.getkey() while True: # Show board stdscr.erase() the_view.draw(stdscr, solve_flag, hints_flag) stdscr.refresh() # Handle inputs cmd = prompt_key(stdscr, status_text, "Command?") if cmd == "q": # (q)uit command break elif cmd == "p": # (p)robe command y = prompt_key(stdscr, "Probe", "Y?") x = prompt_key(stdscr, "Probe", "X?") try: the_game.probe(int(y), int(x)) except Exception as e: status_text = e.__str__() status_text = "Done" elif cmd == "s": # (s)olve command solve_flag = not solve_flag status_text = "See solution: {}".format(solve_flag) elif cmd == "h": # (h)elp command hints_flag = not hints_flag status_text = "p = probe, s = toggle sol., " \ "q = quit, h = help, r = reset" elif cmd == "r": # (r)eset command the_game = SquareGame() the_view = View(the_game) solve_flag = False hints_flag = False status_text = "Reset done. Hello!" else: status_text = "Unknown commmand"
def destroy(self): Cookie.delete("key") return View.load("/cookie/destroy.tpl")
def get(self): params = {} params["key"] = "key" params["value"] = Cookie.get("key") return View.load("/cookie/get.tpl", params)
def get(self): params = {} params['key'] = 'count' params['value'] = Session.get('count') return View.load('/session/get.tpl', params)
def set(self): Session.set('count', 1) return View.load('/session/set.tpl')
def update_views(self, args): ''' Update views.''' from core.view import View view_infos = args.split(",") # Do something if buffer's all view hide after update_views operation. old_view_buffer_ids = list( set(map(lambda v: v.buffer_id, self.view_dict.values()))) new_view_buffer_ids = list( set(map(lambda v: v.split(":")[0], view_infos))) # Call all_views_hide interface when buffer's all views will hide. # We do something in app's buffer interface, such as videoplayer will pause video when all views hide. # Note, we must call this function before last view destroy, # such as QGraphicsVideoItem will report "Internal data stream error" error. for old_view_buffer_id in old_view_buffer_ids: if old_view_buffer_id not in new_view_buffer_ids: if old_view_buffer_id in self.buffer_dict: self.buffer_dict[old_view_buffer_id].all_views_hide() # Remove old key from view dict and destroy old view. for key in list(self.view_dict): if key not in view_infos: self.destroy_view_later(key) # NOTE: # Create new view and REPARENT view to Emacs window. if view_infos != ['']: for view_info in view_infos: if view_info not in self.view_dict: (buffer_id, _, _, _, _, _) = view_info.split(":") view = View(self.buffer_dict[buffer_id], view_info) self.view_dict[view_info] = view # Call some_view_show interface when buffer's view switch back. # Note, this must call after new view create, otherwise some buffer, # such as QGraphicsVideoItem will report "Internal data stream error" error. if view_infos != ['']: for new_view_buffer_id in new_view_buffer_ids: if new_view_buffer_id not in old_view_buffer_ids: if new_view_buffer_id in self.buffer_dict: self.buffer_dict[new_view_buffer_id].some_view_show() # Adjust buffer size along with views change. # Note: just buffer that option `fit_to_view' is False need to adjust, # if buffer option fit_to_view is True, buffer render adjust by view.resizeEvent() for buffer in list(self.buffer_dict.values()): if not buffer.fit_to_view: buffer_views = list( filter(lambda v: v.buffer_id == buffer.buffer_id, list(self.view_dict.values()))) # Adjust buffer size to max view's size. if len(buffer_views) > 0: max_view = max(buffer_views, key=lambda v: v.width * v.height) buffer.buffer_widget.resize(max_view.width, max_view.height) # Adjust buffer size to emacs window size if not match view found. else: buffer.buffer_widget.resize(emacs_width, emacs_height) # Send resize signal to buffer. buffer.resize_view() # NOTE: # When you do switch buffer or kill buffer in Emacs, will call Python function 'update_views. # Screen will flick if destroy old view BEFORE reparent new view. # # So we call function 'destroy_view_now' at last to make sure destroy old view AFTER reparent new view. # Then screen won't flick. self.destroy_view_now()
from core.web import Web from core.view import View web = Web('127.0.0.1', 8000) view = View()
from core.controller import Controller from core.model import Model from core.view import View if __name__ == '__main__': model = Model(50, 50) view = View(model) ctrl = Controller(view, model) view.set_controller(ctrl) ctrl.start()
def main(self): tpl = View.load('default.tpl', {'title': 'zpy'}) return tpl