From ba47be80874b5e3fddf457876eac6cde5e77bc52 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Tue, 16 Apr 2019 14:28:28 +0200 Subject: [PATCH] added forgotten Task model in asset widgets --- .../standalonepublish/widgets/__init__.py | 1 + .../widgets/model_tasks_template.py | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 pype/tools/standalonepublish/widgets/model_tasks_template.py diff --git a/pype/tools/standalonepublish/widgets/__init__.py b/pype/tools/standalonepublish/widgets/__init__.py index f4f06448a5..94811ab298 100644 --- a/pype/tools/standalonepublish/widgets/__init__.py +++ b/pype/tools/standalonepublish/widgets/__init__.py @@ -15,6 +15,7 @@ from .model_tree import TreeModel from .model_asset import AssetModel from .model_filter_proxy_exact_match import ExactMatchesFilterProxyModel from .model_filter_proxy_recursive_sort import RecursiveSortFilterProxyModel +from .model_tasks_template import TasksTemplateModel from .model_tree_view_deselectable import DeselectableTreeView from .widget_asset_view import AssetView diff --git a/pype/tools/standalonepublish/widgets/model_tasks_template.py b/pype/tools/standalonepublish/widgets/model_tasks_template.py new file mode 100644 index 0000000000..4af3b9eea7 --- /dev/null +++ b/pype/tools/standalonepublish/widgets/model_tasks_template.py @@ -0,0 +1,65 @@ +from . import QtCore, TreeModel +from . import Node +from . import awesome, style + + +class TasksTemplateModel(TreeModel): + """A model listing the tasks combined for a list of assets""" + + COLUMNS = ["Tasks"] + + def __init__(self): + super(TasksTemplateModel, self).__init__() + self.selectable = False + self._icons = { + "__default__": awesome.icon("fa.folder-o", + color=style.colors.default) + } + + def set_tasks(self, tasks): + """Set assets to track by their database id + + Arguments: + asset_ids (list): List of asset ids. + + """ + + self.clear() + + # let cleared task view if no tasks are available + if len(tasks) == 0: + return + + self.beginResetModel() + + icon = self._icons["__default__"] + for task in tasks: + node = Node({ + "Tasks": task, + "icon": icon + }) + + self.add_child(node) + + self.endResetModel() + + def flags(self, index): + if self.selectable is False: + return QtCore.Qt.ItemIsEnabled + else: + return ( + QtCore.Qt.ItemIsEnabled | + QtCore.Qt.ItemIsSelectable + ) + + def data(self, index, role): + + if not index.isValid(): + return + + # Add icon to the first column + if role == QtCore.Qt.DecorationRole: + if index.column() == 0: + return index.internalPointer()['icon'] + + return super(TasksTemplateModel, self).data(index, role)