ShellFM/src/shellfm/windows/window.py

90 lines
1.8 KiB
Python

# Python imports
from random import randint
# Lib imports
# Application imports
from .views.view import View
class Window:
def __init__(self):
self._id_length = 10
self._id = ""
self._name = ""
self._nickname = ""
self._isHidden = False
self._views = []
self._generate_id()
self._set_name()
def create_view(self):
view = View()
self._views.append(view)
return view
def pop_view(self):
self._views.pop()
def delete_view_by_id(self, vid):
for view in self._views:
if view.get_id() == vid:
self._views.remove(view)
break
def get_view_by_id(self, vid):
for view in self._views:
if view.get_id() == vid:
return view
def get_view_by_index(self, index):
return self._views[index]
def get_views_count(self):
return len(self._views)
def get_all_views(self):
return self._views
def list_files_from_views(self):
for view in self._views:
print(view.files)
def get_id(self):
return self._id
def get_name(self):
return self._name
def get_nickname(self):
return self._nickname
def is_hidden(self):
return self._isHidden
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()
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))