WebFM/src/core/utils/shellfm/windows/WindowController.py

68 lines
1.8 KiB
Python

from . import Window
class WindowController:
def __init__(self):
self.windows = []
self.add_window()
def get_window(self, win_id):
for window in self.windows:
if window.id == win_id:
return window
raise(f"No Window by ID {win_id} found!")
def get_windows(self):
return self.windows
def add_window(self):
window = Window()
window.id = len(self.windows) + 1
window.name = f"window_{window.id}"
window.create_view()
self.windows.append(window)
def add_view_for_window(self, win_id):
for window in self.windows:
if window.id == win_id:
window.create_view()
break
def pop_window(self):
self.windows.pop()
def delete_window_by_id(self, win_id):
i = 0
for window in self.windows:
if window.id == win_id:
self.window.remove(win_id)
break
i += 1
def set_window_nickname(self, win_id = None, nickname = ""):
for window in self.windows:
if window.id == win_id:
window.nickname = nickname
def list_windows(self):
for window in self.windows:
print("\n[ Window ]")
print("ID: {window.id}")
print("Name: {window.name}")
print("Nickname: {window.nickname}")
print("View Count: {len(window.views)}")
def list_views_from_window(self, win_id):
for window in self.windows:
if window.id == win_id:
for view in window.views:
print(view.files)
break
def return_views_from_window(self, win_id):
for window in self.windows:
if window.id == win_id:
return window.views