Beispiel #1
0
    def updateView(self, ftrackEntity):
        '''Update view with the provided *ftrackEntity*'''
        try:
            self.currentTask = ftrackEntity
            project = self.currentTask.getProject()
            taskid = '11c137c0-ee7e-4f9c-91c5-8c77cec22b2c'
            # Populate statuses based on task if it is a task.
            if self.currentTask.get('object_typeid') == taskid:
                self.ui.ListStatusComboBox.show()
                self.ui.assetTaskLabel_2.show()
                self.ui.ListStatusComboBox.clear()
                statuses = project.getTaskStatuses(
                    self.currentTask.get('typeid'))
                for index, status, in enumerate(statuses):
                    self.ui.ListStatusComboBox.addItem(status.getName())
                    if status.get('statusid') == self.currentTask.get(
                            'statusid'):
                        self.ui.ListStatusComboBox.setCurrentIndex(index)
            else:
                self.ui.ListStatusComboBox.hide()
                self.ui.assetTaskLabel_2.hide()

            if self.browseMode == 'Task':
                task = self.currentTask.getParent()

            assets = task.getAssets(assetTypes=self.assetTypesStr)
            assets = sorted(assets, key=lambda a: a.getName().lower())
            self.ui.ListAssetsViewModel.clear()

            item = QtGui.QStandardItem('New')
            item.id = ''
            curAssetType = self.currentAssetType
            if curAssetType:
                itemType = QtGui.QStandardItem(curAssetType)
            else:
                itemType = QtGui.QStandardItem('')
            self.ui.ListAssetsViewModel.setItem(0, 0, item)
            self.ui.ListAssetsViewModel.setItem(0, 1, itemType)
            self.ui.ListAssetNamesComboBox.setCurrentIndex(0)

            blankRows = 0
            for i in range(0, len(assets)):
                assetName = assets[i].getName()
                if assetName != '':
                    item = QtGui.QStandardItem(assetName)
                    item.id = assets[i].getId()
                    itemType = QtGui.QStandardItem(
                        assets[i].getType().getShort())

                    j = i - blankRows + 1
                    self.ui.ListAssetsViewModel.setItem(j, 0, item)
                    self.ui.ListAssetsViewModel.setItem(j, 1, itemType)
                else:
                    blankRows += 1
        except:
            import traceback
            import sys
            traceback.print_exc(file=sys.stdout)
Beispiel #2
0
    def __init__(self, parent, browseMode='Shot'):
        QtWidgets.QWidget.__init__(self, parent)
        self.ui = Ui_ExportAssetOptions()
        self.ui.setupUi(self)
        self.currentAssetType = None
        self.currentTask = None
        self.browseMode = browseMode
        self.ui.ListAssetsViewModel = QtGui.QStandardItemModel()

        self.ui.ListAssetsSortModel = QtCore.QSortFilterProxyModel()

        self.ui.ListAssetsSortModel.setDynamicSortFilter(True)
        self.ui.ListAssetsSortModel.setFilterKeyColumn(1)
        self.ui.ListAssetsSortModel.setSourceModel(self.ui.ListAssetsViewModel)

        self.ui.ListAssetNamesComboBox.setModel(self.ui.ListAssetsSortModel)

        self.ui.ListAssetsComboBoxModel = QtGui.QStandardItemModel()

        assetTypeItem = QtGui.QStandardItem('Select AssetType')
        self.assetTypes = []
        self.assetTypes.append('')
        self.ui.ListAssetsComboBoxModel.appendRow(assetTypeItem)

        assetHandler = FTAssetHandlerInstance.instance()
        self.assetTypesStr = sorted(assetHandler.getAssetTypes())

        for assetTypeStr in self.assetTypesStr:
            try:
                assetType = ftrack.AssetType(assetTypeStr)
            except:
                log.warning('{0} not available in ftrack'.format(assetTypeStr))
                continue
            assetTypeItem = QtGui.QStandardItem(assetType.getName())
            assetTypeItem.type = assetType.getShort()
            self.assetTypes.append(assetTypeItem.type)
            self.ui.ListAssetsComboBoxModel.appendRow(assetTypeItem)

        self.ui.ListAssetsComboBox.setModel(self.ui.ListAssetsComboBoxModel)

        self.ui.AssetTaskComboBoxModel = QtGui.QStandardItemModel()
        self.ui.AssetTaskComboBox.setModel(self.ui.AssetTaskComboBoxModel)

        self.ui.ListAssetNamesComboBox.currentIndexChanged[str].connect(
            self.onAssetChanged)

        if browseMode == 'Task':
            self.ui.AssetTaskComboBox.hide()
            self.ui.assetTaskLabel.hide()
Beispiel #3
0
    def updateTasks(self, ftrackEntity):
        '''Update task with the provided *ftrackEntity*'''
        self.currentTask = ftrackEntity
        try:
            shotpath = self.currentTask.getName()
            taskParents = self.currentTask.getParents()

            for parent in taskParents:
                shotpath = '{0}.{1}'.format(parent.getName(), shotpath)

            self.ui.AssetTaskComboBox.clear()
            tasks = self.currentTask.getTasks()
            curIndex = 0
            ftrackuser = ftrack.User(getpass.getuser())
            taskids = [x.getId() for x in ftrackuser.getTasks()]

            for i in range(len(tasks)):
                assetTaskItem = QtGui.QStandardItem(tasks[i].getName())
                assetTaskItem.id = tasks[i].getId()
                self.ui.AssetTaskComboBoxModel.appendRow(assetTaskItem)

                if (os.environ.get('FTRACK_TASKID') == assetTaskItem.id):
                    curIndex = i
                else:
                    if assetTaskItem.id in taskids:
                        curIndex = i

            self.ui.AssetTaskComboBox.setCurrentIndex(curIndex)

        except:
            print 'Not a task'
    def updateAssetTypeOptions(self):
        '''Update list of asset types to filter by.'''
        self.assetTypeSelectorModel.clear()

        assetTypes = ftrack.getAssetTypes()
        assetTypes = sorted(assetTypes,
                            key=lambda assetType: assetType.getName().lower())

        assetTypeItem = QtGui.QStandardItem('Show All')
        self.assetTypeSelectorModel.appendRow(assetTypeItem)

        assetHandler = FTAssetHandlerInstance.instance()
        assetTypesStr = sorted(assetHandler.getAssetTypes())

        for assetTypeStr in assetTypesStr:
            try:
                assetType = ftrack.AssetType(assetTypeStr)
            except:
                print assetTypeStr + ' not available in ftrack'
                continue

            assetTypeItem = QtGui.QStandardItem(assetType.getName())
            assetTypeItem.type = assetType.getShort()
            self.assetTypeSelectorModel.appendRow(assetTypeItem)
Beispiel #5
0
    def __init__(self, parent, task=None, connector=None):
        '''Instantiate asset manager with *connector*.'''
        QtWidgets.QWidget.__init__(self, parent)

        if not connector:
            raise ValueError(
                'Please provide a connector object for {0}'.format(
                    self.__class__.__name__))

        self.connector = connector

        self.ui = Ui_AssetManager()
        self.ui.setupUi(self)
        self.setMinimumWidth(500)
        self.ui.AssertManagerTableWidget.setSortingEnabled(True)
        self.ui.AssertManagerTableWidget.setShowGrid(False)

        self.ui.AssertManagerTableWidget.verticalHeader().hide()
        self.ui.AssertManagerTableWidget.setColumnCount(16)
        self.ui.AssertManagerTableWidget.horizontalHeader(
        ).setDefaultSectionSize(65)
        self.ui.AssertManagerTableWidget.setColumnWidth(0, 20)
        self.ui.AssertManagerTableWidget.setColumnWidth(5, 55)
        self.ui.AssertManagerTableWidget.setColumnWidth(6, 65)
        self.ui.AssertManagerTableWidget.setColumnWidth(9, 20)
        self.ui.AssertManagerTableWidget.setColumnWidth(10, 20)
        self.ui.AssertManagerTableWidget.setColumnWidth(11, 20)
        self.ui.AssertManagerTableWidget.setColumnWidth(15, 20)
        self.ui.AssertManagerTableWidget.horizontalHeader().setResizeMode(
            QtWidgets.QHeaderView.Stretch)
        self.ui.AssertManagerTableWidget.horizontalHeader().setResizeMode(
            0, QtWidgets.QHeaderView.Fixed)
        self.ui.AssertManagerTableWidget.horizontalHeader().setResizeMode(
            5, QtWidgets.QHeaderView.Fixed)
        self.ui.AssertManagerTableWidget.horizontalHeader().setResizeMode(
            6, QtWidgets.QHeaderView.Fixed)
        self.ui.AssertManagerTableWidget.horizontalHeader().setResizeMode(
            9, QtWidgets.QHeaderView.Fixed)
        self.ui.AssertManagerTableWidget.horizontalHeader().setResizeMode(
            10, QtWidgets.QHeaderView.Fixed)
        self.ui.AssertManagerTableWidget.horizontalHeader().setResizeMode(
            11, QtWidgets.QHeaderView.Fixed)
        self.ui.AssertManagerTableWidget.horizontalHeader().setResizeMode(
            15, QtWidgets.QHeaderView.Fixed)

        self.ui.AssertManagerTableWidget.setColumnHidden(2, True)
        self.ui.AssertManagerTableWidget.setColumnHidden(3, True)
        self.ui.AssertManagerTableWidget.setColumnHidden(6, True)
        self.ui.AssertManagerTableWidget.setColumnHidden(10, True)
        self.ui.AssertManagerTableWidget.setColumnHidden(12, True)
        self.ui.AssertManagerTableWidget.setColumnHidden(13, True)
        self.ui.AssertManagerTableWidget.setColumnHidden(14, True)

        self.columnHeaders = [
            '', 'Component', 'CmpId', 'AssetTypeShort', 'Type', 'Version',
            'LatestV', 'Name', 'SceneName', '', '', '', 'AssetId',
            'AssetVersionId', 'CurrentVersionFallback', ''
        ]

        self.ui.AssertManagerTableWidget.setHorizontalHeaderLabels(
            self.columnHeaders)

        self.ui.AssetManagerComboBoxModel = QtGui.QStandardItemModel()

        assetTypes = ftrack.getAssetTypes()
        assetTypes = sorted(assetTypes, key=lambda a: a.getName().lower())

        assetTypeItem = QtGui.QStandardItem('Show All')
        self.ui.AssetManagerComboBoxModel.appendRow(assetTypeItem)

        for assetType in assetTypes:
            assetTypeItem = QtGui.QStandardItem(assetType.getName())
            assetTypeItem.type = assetType.getShort()
            self.ui.AssetManagerComboBoxModel.appendRow(assetTypeItem)

        self.ui.AssetManagerComboBox.setModel(
            self.ui.AssetManagerComboBoxModel)

        self.signalMapperSelect = QtCore.QSignalMapper()
        self.signalMapperSelect.mapped[str].connect(self.selectObject)

        self.signalMapperRemove = QtCore.QSignalMapper()
        self.signalMapperRemove.mapped[str].connect(self.removeObject)

        self.signalMapperComment = QtCore.QSignalMapper()
        self.signalMapperComment.mapped[str].connect(self.openComments)

        extraOptionsMenu = QtWidgets.QMenu(self.ui.menuButton)
        extraOptionsMenu.addAction('Get SceneSelection',
                                   self.getSceneSelection)
        extraOptionsMenu.addAction('Set SceneSelection',
                                   self.setSceneSelection)
        self.ui.menuButton.setMenu(extraOptionsMenu)

        self.refreshAssetManager()