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)
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()
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()
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()
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()
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)
# 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!'
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)
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