2022-02-11 06:58:49 +00:00
|
|
|
# Python imports
|
|
|
|
from random import randint
|
|
|
|
|
|
|
|
# Lib imports
|
|
|
|
|
|
|
|
# Application imports
|
2022-02-25 23:58:11 +00:00
|
|
|
from .tabs.tab import Tab
|
2022-02-11 06:58:49 +00:00
|
|
|
|
|
|
|
|
2023-01-29 06:10:09 +00:00
|
|
|
|
|
|
|
|
2022-02-11 06:58:49 +00:00
|
|
|
class Window:
|
|
|
|
def __init__(self):
|
2022-10-28 02:26:58 +00:00
|
|
|
self._id_length: int = 10
|
|
|
|
self._id: str = ""
|
|
|
|
self._name: str = ""
|
|
|
|
self._nickname:str = ""
|
|
|
|
self._isHidden: bool = False
|
|
|
|
self._active_tab: int = 0
|
|
|
|
self._tabs: list = []
|
2022-02-11 06:58:49 +00:00
|
|
|
|
|
|
|
self._generate_id()
|
|
|
|
self._set_name()
|
|
|
|
|
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def create_tab(self) -> Tab:
|
2022-02-25 23:58:11 +00:00
|
|
|
tab = Tab()
|
|
|
|
self._tabs.append(tab)
|
|
|
|
return tab
|
2022-02-11 06:58:49 +00:00
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def pop_tab(self) -> None:
|
2022-02-25 23:58:11 +00:00
|
|
|
self._tabs.pop()
|
2022-02-11 06:58:49 +00:00
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def delete_tab_by_id(self, tid: str):
|
2022-02-25 23:58:11 +00:00
|
|
|
for tab in self._tabs:
|
2022-03-13 23:21:06 +00:00
|
|
|
if tab.get_id() == tid:
|
2022-02-25 23:58:11 +00:00
|
|
|
self._tabs.remove(tab)
|
2022-02-11 06:58:49 +00:00
|
|
|
break
|
|
|
|
|
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def get_tab_by_id(self, tid: str) -> Tab:
|
2022-02-25 23:58:11 +00:00
|
|
|
for tab in self._tabs:
|
2022-03-13 23:21:06 +00:00
|
|
|
if tab.get_id() == tid:
|
2022-02-25 23:58:11 +00:00
|
|
|
return tab
|
2022-02-11 06:58:49 +00:00
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def get_tab_by_index(self, index) -> Tab:
|
2022-02-25 23:58:11 +00:00
|
|
|
return self._tabs[index]
|
2022-02-11 06:58:49 +00:00
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def get_tabs_count(self) -> int:
|
2022-02-25 23:58:11 +00:00
|
|
|
return len(self._tabs)
|
2022-02-11 06:58:49 +00:00
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def get_all_tabs(self) -> list:
|
2022-02-25 23:58:11 +00:00
|
|
|
return self._tabs
|
2022-02-11 06:58:49 +00:00
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def get_id(self) -> str:
|
2022-02-11 06:58:49 +00:00
|
|
|
return self._id
|
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def get_name(self) -> str:
|
2022-02-11 06:58:49 +00:00
|
|
|
return self._name
|
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def get_nickname(self) -> str:
|
2022-02-11 06:58:49 +00:00
|
|
|
return self._nickname
|
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def is_hidden(self) -> bool:
|
2022-02-11 06:58:49 +00:00
|
|
|
return self._isHidden
|
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def list_files_from_tabs(self) -> None:
|
2022-02-25 23:58:11 +00:00
|
|
|
for tab in self._tabs:
|
|
|
|
print(tab.get_files())
|
2022-02-11 06:58:49 +00:00
|
|
|
|
2022-10-28 02:26:58 +00:00
|
|
|
def set_active_tab(self, index: int):
|
|
|
|
self._active_tab = index
|
|
|
|
|
|
|
|
def get_active_tab(self) -> Tab:
|
|
|
|
return self._tabs[self._active_tab]
|
2022-02-11 06:58:49 +00:00
|
|
|
|
|
|
|
def set_nickname(self, nickname):
|
|
|
|
self._nickname = f"{nickname}"
|
|
|
|
|
|
|
|
def set_is_hidden(self, state):
|
|
|
|
self._isHidden = f"{state}"
|
|
|
|
|
|
|
|
def _set_name(self):
|
|
|
|
self._name = "window_" + self.get_id()
|
|
|
|
|
2022-02-25 23:58:11 +00:00
|
|
|
|
2022-02-11 06:58:49 +00:00
|
|
|
def _random_with_N_digits(self, n):
|
|
|
|
range_start = 10**(n-1)
|
|
|
|
range_end = (10**n)-1
|
|
|
|
return randint(range_start, range_end)
|
|
|
|
|
|
|
|
def _generate_id(self):
|
|
|
|
self._id = str(self._random_with_N_digits(self._id_length))
|