"""This module holds :class:`jukeboxcore.gui.treemodel.ItemData` subclasses that represent filesys data,
e.g. a :class:`jukeboxcore.filesys.TaskFileInfo`
"""
from PySide import QtCore
from jukeboxcore.gui.treemodel import ItemData
from jukeboxcore.filesys import JB_File
[docs]def taskfileinfo_element_data(tfi, role):
"""Return the data for the element (e.g. the Asset or Shot)
:param tfi: the :class:`jukeboxcore.filesys.TaskFileInfo` holds the data
:type tfi: :class:`jukeboxcore.filesys.TaskFileInfo`
:param role: item data role
:type role: QtCore.Qt.ItemDataRole
:returns: data for the element
:rtype: depending on role
:raises: None
"""
task = tfi.task
element = task.element
if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
return element.name
[docs]def taskfileinfo_task_data(tfi, role):
"""Return the data for task
:param tfi: the :class:`jukeboxcore.filesys.TaskFileInfo` holds the data
:type tfi: :class:`jukeboxcore.filesys.TaskFileInfo`
:param role: item data role
:type role: QtCore.Qt.ItemDataRole
:returns: data for the task
:rtype: depending on role
:raises: None
"""
task = tfi.task
if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
return task.name
[docs]def taskfileinfo_descriptor_data(tfi, role):
"""Return the data for descriptor
:param tfi: the :class:`jukeboxcore.filesys.TaskFileInfo` holds the data
:type tfi: :class:`jukeboxcore.filesys.TaskFileInfo`
:param role: item data role
:type role: QtCore.Qt.ItemDataRole
:returns: data for the descriptor
:rtype: depending on role
:raises: None
"""
if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
return tfi.descriptor
[docs]def taskfileinfo_path_data(tfi, role):
"""Return the data for path
:param tfi: the :class:`jukeboxcore.filesys.TaskFileInfo` holds the data
:type tfi: :class:`jukeboxcore.filesys.TaskFileInfo`
:param role: item data role
:type role: QtCore.Qt.ItemDataRole
:returns: data for the path
:rtype: depending on role
:raises: None
"""
if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
return JB_File(tfi).get_fullpath()
[docs]def taskfileinfo_version_data(tfi, role):
"""Return the data for version
:param tfi: the :class:`jukeboxcore.filesys.TaskFileInfo` that holds the data
:type tfi: :class:`jukeboxcore.filesys.TaskFileInfo`
:param role: item data role
:type role: QtCore.Qt.ItemDataRole
:returns: data for the version
:rtype: depending on role
:raises: None
"""
if role == QtCore.Qt.DisplayRole:
return 'v%03i' % tfi.version
[docs]def taskfileinfo_rtype_data(tfi, role):
"""Return the data for rtype
:param tfi: the :class:`jukeboxcore.filesys.TaskFileInfo` that holds the data
:type tfi: :class:`jukeboxcore.filesys.TaskFileInfo`
:param role: item data role
:type role: QtCore.Qt.ItemDataRole
:returns: data for the releasetype
:rtype: depending on role
:raises: None
"""
if role == QtCore.Qt.DisplayRole:
return tfi.releasetype
[docs]class TaskFileInfoItemData(ItemData):
"""Item Data for :class:`jukeboxcore.gui.treemodel.TreeItem` that represents a :class:`jukeboxcore.filesys.TaskFileInfo`
"""
def __init__(self, taskfileinfo):
"""Constructs a new item data for the taskfileinfo
:param taskfileinfo: the taskfileinfo to represent
:type taskfileinfo: :class:`jukeboxcore.filesys.TaskFileInfo`
:raises: None
"""
super(TaskFileInfoItemData, self).__init__()
self._taskfileinfo = taskfileinfo
columns = [taskfileinfo_element_data,
taskfileinfo_task_data,
taskfileinfo_descriptor_data,
taskfileinfo_version_data,
taskfileinfo_rtype_data,
taskfileinfo_path_data,]
[docs] def column_count(self, ):
"""Return the number of columns that can be queried for data
:returns: the number of columns
:rtype: int
:raises: None
"""
return len(self.columns)
[docs] def data(self, column, role):
"""Return the data for the specified column and role
The column addresses one attribute of the data.
:param column: the data column
:type column: int
:param role: the data role
:type role: QtCore.Qt.ItemDataRole
:returns: data depending on the role
:rtype:
:raises: None
"""
return self.columns[column](self._taskfileinfo, role)
[docs] def internal_data(self, ):
"""Return the taskfileinfo
:returns: the taskfileinfo
:rtype: :class:`jukeboxcore.filesys.TaskFileInfo`
:raises: None
"""
return self._taskfileinfo