Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
Файл: error.py Проект: ZiTAL/zpy
	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)
Пример #4
0
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
Пример #5
0
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"
Пример #6
0
 def destroy(self):
     Cookie.delete("key")
     return View.load("/cookie/destroy.tpl")
Пример #7
0
    def get(self):
        params = {}
        params["key"] = "key"
        params["value"] = Cookie.get("key")

        return View.load("/cookie/get.tpl", params)
Пример #8
0
	def get(self):
		params = {}
		params['key'] = 'count'
		params['value'] = Session.get('count')

		return View.load('/session/get.tpl', params)
Пример #9
0
	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()
Пример #11
0
from core.web import Web
from core.view import View

web = Web('127.0.0.1', 8000)
view = View()

Пример #12
0
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()

Пример #13
0
	def main(self):
		tpl = View.load('default.tpl', {'title': 'zpy'})
		return tpl