def _windows_from_list_sessions_response(connection, response): windows = [] for window in response.windows: tabs = [] for tab in window.tabs: root = iterm2.session.Splitter.from_node(tab.root, connection) if tab.HasField("tmux_window_id"): tmux_window_id = tab.tmux_window_id else: tmux_window_id = None tabs.append(iterm2.tab.Tab(connection, tab.tab_id, root, tmux_window_id, tab.tmux_connection_id)) windows.append(iterm2.window.Window(connection, window.window_id, tabs, window.frame, window.number)) return windows
def create_from_proto(connection, window): tabs = [] for tab in window.tabs: root = iterm2.session.Splitter.from_node(tab.root, connection) if tab.HasField("tmux_window_id"): tmux_window_id = tab.tmux_window_id else: tmux_window_id = None tabs.append(iterm2.tab.Tab(connection, tab.tab_id, root, tmux_window_id, tab.tmux_connection_id)) if not tabs: return None return iterm2.window.Window(connection, window.window_id, tabs, window.frame, window.number)
def create_from_proto(connection, window): """Creates a new instance from a protobuf.""" tabs = [] for tab in window.tabs: root = iterm2.session.Splitter.from_node(tab.root, connection) if tab.HasField("tmux_window_id"): tmux_window_id = tab.tmux_window_id else: tmux_window_id = None minimized_sessions = [ iterm2.session.Session(connection, None, summary) for summary in (tab.minimized_sessions or []) ] tabs.append( iterm2.tab.Tab(connection, tab.tab_id, root, tmux_window_id, tab.tmux_connection_id, minimized_sessions)) if not tabs: return None return iterm2.window.Window(connection, window.window_id, tabs, window.frame, window.number)