mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
* added helper classes to utils * implemented base of ayon utils * initial commit for launcher tool * use image for extender * actions are shown and can be triggered * fix actions on finished refresh * refresh automatically * fix re-refreshing of projects model * added page slide animation * updated abstrack classes * change how icon is prepared * fix actions sorting * show messages like in launcher tool * do not clear items on refresh * stop refresh timer only on close event * use Ynput/AYON for local settings json * register default actions in launcher action module * change register naming * move 'SquareButton' to utils widgets * removed duplicated method * removed unused variable * removed unused import * don't use lambda * swap default name for 'OpenPypeSettingsRegistry' * Change support version
72 lines
1.9 KiB
Python
72 lines
1.9 KiB
Python
class LauncherSelectionModel(object):
|
|
"""Model handling selection changes.
|
|
|
|
Triggering events:
|
|
- "selection.project.changed"
|
|
- "selection.folder.changed"
|
|
- "selection.task.changed"
|
|
"""
|
|
|
|
event_source = "launcher.selection.model"
|
|
|
|
def __init__(self, controller):
|
|
self._controller = controller
|
|
|
|
self._project_name = None
|
|
self._folder_id = None
|
|
self._task_name = None
|
|
self._task_id = None
|
|
|
|
def get_selected_project_name(self):
|
|
return self._project_name
|
|
|
|
def set_selected_project(self, project_name):
|
|
if project_name == self._project_name:
|
|
return
|
|
|
|
self._project_name = project_name
|
|
self._controller.emit_event(
|
|
"selection.project.changed",
|
|
{"project_name": project_name},
|
|
self.event_source
|
|
)
|
|
|
|
def get_selected_folder_id(self):
|
|
return self._folder_id
|
|
|
|
def set_selected_folder(self, folder_id):
|
|
if folder_id == self._folder_id:
|
|
return
|
|
|
|
self._folder_id = folder_id
|
|
self._controller.emit_event(
|
|
"selection.folder.changed",
|
|
{
|
|
"project_name": self._project_name,
|
|
"folder_id": folder_id,
|
|
},
|
|
self.event_source
|
|
)
|
|
|
|
def get_selected_task_name(self):
|
|
return self._task_name
|
|
|
|
def get_selected_task_id(self):
|
|
return self._task_id
|
|
|
|
def set_selected_task(self, task_id, task_name):
|
|
if task_id == self._task_id:
|
|
return
|
|
|
|
self._task_name = task_name
|
|
self._task_id = task_id
|
|
self._controller.emit_event(
|
|
"selection.task.changed",
|
|
{
|
|
"project_name": self._project_name,
|
|
"folder_id": self._folder_id,
|
|
"task_name": task_name,
|
|
"task_id": task_id,
|
|
},
|
|
self.event_source
|
|
)
|