Ejemplo n.º 1
0
    def delShots(self):
        '''
        Delete selected shots from database
        :return:
        '''
        selectedShots = self.ui.lis_shots.selectedItems()
        selectedSequences = self.ui.lis_seq.selectedItems()
        sequenceNumber = selectedSequences[0].text()

        shotNames = []
        for shot in selectedShots:
            shotNames.append(shot.text())

        # Delete shot from shots
        dna.deleteEntity(genesFileShots, shotNames, sequenceNumber)
        # Delete shot from assets
        for seqData in genesSequences:
            if seqData['code'] == sequenceNumber:
                listShots = seqData['shots']
                listShotsClean = []
                for shot in listShots:
                    if not shot['code'] in shotNames:
                        listShotsClean.append(shot)
                seqData['shots'] = listShotsClean

        json.dump(genesSequences, open(genesFileSequences, 'w'), indent=4)

        # Reload genes
        global genesShots
        global genesAssets
        genesShots = dna.loadGenes(genesFileShots)
        genesAssets = dna.loadGenes(genesFileAssets)

        # Repopulate Shots
        self.poulateShots(sequenceNumber)
Ejemplo n.º 2
0
 def addSequences(self, catch=None):
     if catch == None:
         CS = CreateSequences()
         CS.show()
     else: # After closing Add Asset window
         # Reload genes
         global genesSequences
         genesSequences = dna.loadGenes(genesFileSequences)
         # Repopulate Asset
         self.poulateSequences()
Ejemplo n.º 3
0
 def addAsset(self, catch=None):
     '''Add asset to database'''
     if catch == None:
         CA = CreateAssset()
         CA.show()
     else: # After closing Add Asset window
         # Reload genes
         print 'A'
         global genesAssets
         genesAssets = dna.loadGenes(genesFileAssets)
         # Repopulate Asset
         self.poulateAssets()
Ejemplo n.º 4
0
    def delSequences(self):
        selectedSequences = self.ui.lis_seq.selectedItems()

        sequenceNames = []
        for seq in selectedSequences:
            sequenceNames.append(seq.text())

        dna.deleteEntity(genesFileSequences, sequenceNames)

        global genesSequences
        genesSequences = dna.loadGenes(genesFileSequences)
        # Repopulate Asset
        self.poulateSequences()
Ejemplo n.º 5
0
    def delAssets(self):
        selectedAssets = self.ui.lis_assets.selectedItems()

        assetNames = []
        for asset in selectedAssets:
            assetNames.append(asset.text())

        dna.deleteEntity(genesFileAssets, assetNames)

        global genesAssets
        genesAssets = dna.loadGenes(genesFileAssets)
        # Repopulate Asset
        self.poulateAssets()
Ejemplo n.º 6
0
    def addShot(self, catch=None):
        '''Add shot to database'''

        if catch == None:
            # Get first selected SEQ
            selectedSeq = self.ui.lis_seq.selectedItems()
            sequenceNumber = None
            if selectedSeq:
                sequenceNumber = selectedSeq[0].text()

            CS = CreateShot(sequenceNumber)
            CS.show()
        else:
            # After closing Add Shots window
            sequenceNumber = catch
            # Reload genes
            global genesShots
            genesShots = dna.loadGenes(genesFileShots)
            # Repopulate Shots
            self.poulateShots(sequenceNumber)
Ejemplo n.º 7
0
# TODO: Hide FX Type combo box when not dealing with FX assets

import hou
import json
import os

from PySide2 import QtCore, QtUiTools, QtWidgets
import dna
reload(dna)

# Get environment data
rootProject = os.environ['ROOT']
genesFileAssets = dna.genesFileAssets.format(rootProject)
genesFileShots = dna.genesFileShots.format(rootProject)
genesFileSequences = dna.genesFileSequences.format(rootProject)
genesAssets = dna.loadGenes(genesFileAssets)
genesSequences = dna.loadGenes(genesFileSequences)
genesShots = dna.loadGenes(genesFileShots)

def linkAsset(ui_shot, catch=None):
    '''
    Add asset names to a list of shot assets in UI (don1t populate to database)
    :param catch:
    :return:
    '''

    sequenceNumber = ui_shot.com_shotSequence.currentText()
    shotNumber = ui_shot.lin_shotName.text()

    if sequenceNumber == '':
        print '>> Select shot to link assets!'
Ejemplo n.º 8
0
    def addShots(self, sequenceNumber=None, shotNumbers=None):
        '''
        Add shot from database to UI
        :param sequenceNumber:
        :param shotNumbers:
        :return:
        '''

        # Reload genes shot (if shot updated in Project Manager)
        global genesShots
        genesShots = dna.loadGenes(genesFileShots)
        global genesRender
        genesRender = dna.loadGenes(genesFileRender)

        # print 'addShots [sequenceNumber, shotNumbers] = ', sequenceNumber, shotNumbers

        # Load existing shots from database
        # shotItems [{u'hip': u'000', u'S': u'010', u'E': u'010'}, {u'hip': u'001', u'S': u'020', u'E': u'010'}]
        shotItems = genesRender

        # INIT LAUNCH: LOAD (RELOAD) EXISTING SHOTS
        if sequenceNumber == None:

            # Clear table
            self.ui.tab_shots.setRowCount(0)

            # Shot items list with updated data
            shotItemsUP = []

            for n, shotItem in enumerate(shotItems):
                shotItem = self.populateShotItem(shotItem)
                shotItemsUP.append(shotItem)

                # Paint cells
                if shotItem['range'] == shotItem['done']:
                    self.ui.tab_shots.item(n, 8).setBackground(
                        QtGui.QColor(75, 150, 75))
                elif shotItem['done'] == '':
                    self.ui.tab_shots.item(n, 8).setBackground(
                        QtGui.QColor(150, 75, 75))
                else:
                    self.ui.tab_shots.item(n, 8).setBackground(
                        QtGui.QColor(150, 150, 75))

            json.dump(shotItemsUP, open(genesFileRender, 'w'), indent=4)

        # LAUNCH FROM CreateShotItems CLASS
        else:
            # Add new shots to database
            shotNumbers = shotNumbers.split(' ')

            for shotNumber in shotNumbers:
                # Check if shot exists in database
                if dna.getShotData(sequenceNumber, shotNumber, genesShots):
                    # Check if shot item exists in database
                    if not self.checkExistingShot(sequenceNumber, shotNumber):
                        shotItem = {}
                        shotItem[shotItemParams[0]] = sequenceNumber
                        shotItem[shotItemParams[1]] = shotNumber
                        shotItem = self.populateShotItem(shotItem)
                        shotItems.append(shotItem)

                    else:
                        print '>> Shot E{0}-S{1} already exists!'.format(
                            sequenceNumber, shotNumber)

                else:
                    return

            json.dump(shotItems, open(genesFileRender, 'w'), indent=4)

        # Update stat
        self.fillStatistics(shotItems)
Ejemplo n.º 9
0
import dna

reload(dna)

from PySide2 import QtCore, QtUiTools, QtWidgets, QtGui

shotItemParams = [
    'E', 'S', 'hip', 'exr', 'range', 'done', 'start', 'end', 'R', 'actions'
]
nonEditable = [0, 1, 4, 5]  # Table cells: read and select only

rootProject = os.environ['ROOT']
genesFileRender = dna.genesFileRender.format(rootProject)
genesFileShots = dna.genesFileShots.format(rootProject)
genesRender = dna.loadGenes(genesFileRender)
genesShots = dna.loadGenes(genesFileShots)


class AlignDelegate(QtWidgets.QItemDelegate):
    '''
    Central alignment of UI table of shots
    '''
    def paint(self, painter, option, index):
        option.displayAlignment = QtCore.Qt.AlignCenter  # Center align
        QtWidgets.QItemDelegate.paint(self, painter, option, index)


class HiddenShots(QtWidgets.QWidget):
    def __init__(self):
        # SETUP UI WINDOW