74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
# Python imports
|
|
|
|
# Lib imports
|
|
|
|
# Application imports
|
|
from ...sfm_builder import SFMBuilder
|
|
from ...mixins.signals.file_action_signals_mixin import FileActionSignalsMixin
|
|
from .window_mixin import WindowMixin
|
|
|
|
|
|
|
|
class FilesWidget(FileActionSignalsMixin, WindowMixin):
|
|
"""docstring for FilesWidget."""
|
|
|
|
ccount = 0
|
|
|
|
def __new__(cls, *args, **kwargs):
|
|
obj = super(FilesWidget, cls).__new__(cls)
|
|
cls.ccount += 1
|
|
|
|
return obj
|
|
|
|
def __init__(self):
|
|
super(FilesWidget, self).__init__()
|
|
|
|
self.INDEX = self.ccount
|
|
self.NAME = f"window_{self.INDEX}"
|
|
self.builder = SFMBuilder()
|
|
|
|
self.files_view = None
|
|
self.fm_controller = None
|
|
|
|
self._setup_styling()
|
|
self._setup_signals()
|
|
self._subscribe_to_events()
|
|
self._load_widgets()
|
|
|
|
|
|
def _setup_styling(self):
|
|
...
|
|
|
|
def _setup_signals(self):
|
|
settings_manager.register_signals_to_builder([self], self.builder)
|
|
|
|
def _subscribe_to_events(self):
|
|
event_system.subscribe("load_files_view_state", self._load_files_view_state)
|
|
event_system.subscribe("get_files_view_icon_grid", self._get_files_view_icon_grid)
|
|
|
|
def _load_widgets(self):
|
|
_builder = settings_manager.get_builder()
|
|
self.files_view = _builder.get_object(f"{self.NAME}")
|
|
|
|
self.files_view.set_group_name("files_widget")
|
|
|
|
self.builder.expose_object(f"{self.NAME}", self.files_view)
|
|
|
|
def _load_files_view_state(self, win_name = None, tabs = None, isHidden = False):
|
|
if win_name == self.NAME:
|
|
if tabs:
|
|
for tab in tabs:
|
|
self.create_new_tab_notebook(None, self.INDEX, tab)
|
|
else:
|
|
self.create_new_tab_notebook(None, self.INDEX, None)
|
|
|
|
if isHidden:
|
|
self.files_view.hide()
|
|
|
|
def _get_files_view_icon_grid(self, win_index = None, tid = None):
|
|
if win_index == str(self.INDEX):
|
|
return self.builder.get_object(f"{self.INDEX}|{tid}|icon_grid", use_gtk = False)
|
|
|
|
|
|
def set_fm_controller(self, _fm_controller):
|
|
self.fm_controller = _fm_controller |