mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
added icons to tasks combobox
This commit is contained in:
parent
c3a23a3df5
commit
c5bc4ffc88
2 changed files with 49 additions and 16 deletions
|
|
@ -1725,14 +1725,14 @@ class PublisherController(BasePublisherController):
|
||||||
return folder_item.entity_id
|
return folder_item.entity_id
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_task_names_by_folder_paths(self, folder_paths):
|
def get_task_items_by_folder_paths(self, folder_paths):
|
||||||
if not folder_paths:
|
if not folder_paths:
|
||||||
return {}
|
return {}
|
||||||
folder_items = self._hierarchy_model.get_folder_items_by_paths(
|
folder_items = self._hierarchy_model.get_folder_items_by_paths(
|
||||||
self.project_name, folder_paths
|
self.project_name, folder_paths
|
||||||
)
|
)
|
||||||
output = {
|
output = {
|
||||||
folder_path: set()
|
folder_path: []
|
||||||
for folder_path in folder_paths
|
for folder_path in folder_paths
|
||||||
}
|
}
|
||||||
project_name = self.project_name
|
project_name = self.project_name
|
||||||
|
|
@ -1740,10 +1740,7 @@ class PublisherController(BasePublisherController):
|
||||||
task_items = self._hierarchy_model.get_task_items(
|
task_items = self._hierarchy_model.get_task_items(
|
||||||
project_name, folder_item.entity_id, None
|
project_name, folder_item.entity_id, None
|
||||||
)
|
)
|
||||||
output[folder_item.path] = {
|
output[folder_item.path] = task_items
|
||||||
task_item.name
|
|
||||||
for task_item in task_items
|
|
||||||
}
|
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,12 +99,16 @@ class TasksModel(QtGui.QStandardItemModel):
|
||||||
root_item.removeRows(0, self.rowCount())
|
root_item.removeRows(0, self.rowCount())
|
||||||
return
|
return
|
||||||
|
|
||||||
task_names_by_folder_path = (
|
task_items_by_folder_path = (
|
||||||
self._controller.get_task_names_by_folder_paths(
|
self._controller.get_task_items_by_folder_paths(
|
||||||
self._folder_paths
|
self._folder_paths
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
task_names_by_folder_path = {
|
||||||
|
folder_path: {item.name for item in task_items}
|
||||||
|
for folder_path, task_items in task_items_by_folder_path.items()
|
||||||
|
}
|
||||||
self._task_names_by_folder_path = task_names_by_folder_path
|
self._task_names_by_folder_path = task_names_by_folder_path
|
||||||
|
|
||||||
new_task_names = self.get_intersection_of_tasks(
|
new_task_names = self.get_intersection_of_tasks(
|
||||||
|
|
@ -122,22 +126,54 @@ class TasksModel(QtGui.QStandardItemModel):
|
||||||
item = self._items_by_name.pop(task_name)
|
item = self._items_by_name.pop(task_name)
|
||||||
root_item.removeRow(item.row())
|
root_item.removeRow(item.row())
|
||||||
|
|
||||||
icon = get_qt_icon({
|
default_icon = get_qt_icon({
|
||||||
"type": "awesome-font",
|
"type": "awesome-font",
|
||||||
"name": "fa.male",
|
"name": "fa.male",
|
||||||
"color": get_default_entity_icon_color(),
|
"color": get_default_entity_icon_color(),
|
||||||
})
|
})
|
||||||
new_items = []
|
new_items = []
|
||||||
|
task_type_items = {
|
||||||
|
task_type_item.name: task_type_item
|
||||||
|
for task_type_item in self._controller.get_task_type_items(
|
||||||
|
self._controller.project_name
|
||||||
|
)
|
||||||
|
}
|
||||||
|
icon_name_by_task_name = {}
|
||||||
|
for task_items in task_items_by_folder_path.values():
|
||||||
|
for task_item in task_items:
|
||||||
|
task_name = task_item.name
|
||||||
|
if (
|
||||||
|
task_name not in new_task_names
|
||||||
|
or task_name in icon_name_by_task_name
|
||||||
|
):
|
||||||
|
continue
|
||||||
|
task_type_name = task_item.task_type
|
||||||
|
task_type_item = task_type_items.get(task_type_name)
|
||||||
|
if task_type_item:
|
||||||
|
icon_name_by_task_name[task_name] = task_type_item.icon
|
||||||
|
|
||||||
for task_name in new_task_names:
|
for task_name in new_task_names:
|
||||||
if task_name in self._items_by_name:
|
item = self._items_by_name.get(task_name)
|
||||||
|
if item is None:
|
||||||
|
item = QtGui.QStandardItem(task_name)
|
||||||
|
item.setData(task_name, TASK_NAME_ROLE)
|
||||||
|
self._items_by_name[task_name] = item
|
||||||
|
new_items.append(item)
|
||||||
|
|
||||||
|
if not task_name:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
item = QtGui.QStandardItem(task_name)
|
icon_name = icon_name_by_task_name.get(task_name)
|
||||||
item.setData(task_name, TASK_NAME_ROLE)
|
icon = None
|
||||||
if task_name:
|
if icon_name:
|
||||||
item.setData(icon, QtCore.Qt.DecorationRole)
|
icon = get_qt_icon({
|
||||||
self._items_by_name[task_name] = item
|
"type": "material-symbols",
|
||||||
new_items.append(item)
|
"name": icon_name,
|
||||||
|
"color": get_default_entity_icon_color(),
|
||||||
|
})
|
||||||
|
if icon is None:
|
||||||
|
icon = default_icon
|
||||||
|
item.setData(icon, QtCore.Qt.DecorationRole)
|
||||||
|
|
||||||
if new_items:
|
if new_items:
|
||||||
root_item.appendRows(new_items)
|
root_item.appendRows(new_items)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue