mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
added controller functions
This commit is contained in:
parent
b586bf0ad6
commit
38c4a5d4e3
3 changed files with 56 additions and 2 deletions
|
|
@ -717,8 +717,30 @@ class FrontendLoaderController(_BaseLoaderController):
|
|||
|
||||
Returns:
|
||||
list[str]: Selected folder ids.
|
||||
"""
|
||||
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_selected_task_ids(self):
|
||||
"""Get selected task ids.
|
||||
|
||||
The information is based on last selection from UI.
|
||||
|
||||
Returns:
|
||||
list[str]: Selected folder ids.
|
||||
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def set_selected_tasks(self, task_ids):
|
||||
"""Set selected tasks.
|
||||
|
||||
Args:
|
||||
task_ids (Iterable[str]): Selected task ids.
|
||||
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
|
|
@ -729,8 +751,8 @@ class FrontendLoaderController(_BaseLoaderController):
|
|||
|
||||
Returns:
|
||||
list[str]: Selected version ids.
|
||||
"""
|
||||
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
|
|
|
|||
|
|
@ -198,6 +198,14 @@ class LoaderController(BackendLoaderController, FrontendLoaderController):
|
|||
def get_folder_items(self, project_name, sender=None):
|
||||
return self._hierarchy_model.get_folder_items(project_name, sender)
|
||||
|
||||
def get_task_items(self, project_name, folder_ids, sender=None):
|
||||
output = []
|
||||
for folder_id in folder_ids:
|
||||
output.extend(self._hierarchy_model.get_task_items(
|
||||
project_name, folder_id, sender
|
||||
))
|
||||
return output
|
||||
|
||||
def get_product_items(self, project_name, folder_ids, sender=None):
|
||||
return self._products_model.get_product_items(
|
||||
project_name, folder_ids, sender)
|
||||
|
|
@ -299,6 +307,12 @@ class LoaderController(BackendLoaderController, FrontendLoaderController):
|
|||
def set_selected_folders(self, folder_ids):
|
||||
self._selection_model.set_selected_folders(folder_ids)
|
||||
|
||||
def get_selected_task_ids(self):
|
||||
return self._selection_model.get_selected_task_ids()
|
||||
|
||||
def set_selected_tasks(self, task_ids):
|
||||
self._selection_model.set_selected_tasks(task_ids)
|
||||
|
||||
def get_selected_version_ids(self):
|
||||
return self._selection_model.get_selected_version_ids()
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ class SelectionModel(object):
|
|||
|
||||
self._project_name = None
|
||||
self._folder_ids = set()
|
||||
self._task_ids = set()
|
||||
self._version_ids = set()
|
||||
self._representation_ids = set()
|
||||
|
||||
|
|
@ -48,6 +49,23 @@ class SelectionModel(object):
|
|||
self.event_source
|
||||
)
|
||||
|
||||
def get_selected_task_ids(self):
|
||||
return self._task_ids
|
||||
|
||||
def set_selected_tasks(self, task_ids):
|
||||
if task_ids == self._task_ids:
|
||||
return
|
||||
|
||||
self._task_ids = task_ids
|
||||
self._controller.emit_event(
|
||||
"selection.tasks.changed",
|
||||
{
|
||||
"project_name": self._project_name,
|
||||
"task_ids": task_ids,
|
||||
},
|
||||
self.event_source
|
||||
)
|
||||
|
||||
def get_selected_version_ids(self):
|
||||
return self._version_ids
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue