def getFrameCount(self):
     infile = str(self.inputWidget.getFilePath())
     if infile:
         inputFolder = os.path.dirname(str(infile))
         imageExt = str(infile).split('.')[-1]
         shotName, firstFrame, lastFrame, date, firstFrameStr = utils.getShotInfo(str(inputFolder), str(imageExt))
         self.movieWidget.setFrameCount(firstFrame, lastFrame)
 def setSlugLabel(self, filename):
     '''
     Sets the slug label based on input file name.
     :param filename: Name of the input file
     '''
     inputFolder = os.path.dirname(str(filename))
     imageExt = str(filename).split('.')[-1]
     if inputFolder:
         shotName, firstFrame,lastFrame, date, firstFrameStr = utils.getShotInfo(str(inputFolder), str(imageExt))
         project = ftrackUtils.getProjectFromShot(os.environ['FTRACK_SHOTID'])
         label = '%s %s %s Frame#' % (project, date, shotName)
     else:
         label = 'Customize Slug Label'
     self.slugTextBox.setText(label)
    def createMovie(self):
        frameRate = self.frameDrop.currentText()
        self.movieWidget.setFrameRate(frameRate)
        self.createButton.setDisabled(True)
        inputFile = self.inputWidget.getFilePath()
        outputFile = str(self.outputWidget.getFilePath())

        slugChoice = self.slugBox.checkState()
        if 'Select' in inputFile or 'Select' in outputFile or inputFile == '' or outputFile == '':
            nuke.message("Please select input and output folder")
            return

        inputFolder = os.path.dirname(str(inputFile))
        imageExt = str(inputFile).split('.')[-1]
        if not outputFile.endswith('.mov'):
            outputFile = '%s.mov' % outputFile

        shotName, firstFrame, lastFrame, date, firstFrameStr = utils.getShotInfo(inputFolder, imageExt)
        self.movieWidget.setFrameCount(firstFrame, lastFrame)

        if slugChoice == 2:
            tmpDir = '%s\\tmp' % os.environ['TEMP']
            if not os.path.exists(tmpDir):
                os.mkdir(tmpDir)

            task = nuke.ProgressTask("Slug Creation")
            task.setMessage("Creating slug files")
            slugResult = utils.generateSlugImages(tmpDir, self.slugTextBox.text(), firstFrame,
                                                  lastFrame, date, firstFrameStr, task)
            if slugResult != 0:
                nuke.message("Error while creating slug images!")
                self.createButton.setEnabled(True)
                return
            slugMovResult = utils.generateSlugMovie(tmpDir, firstFrame, firstFrameStr, frameRate)
            if slugMovResult != 0:
                nuke.message("Error while creating slug movie!")
                self.createButton.setEnabled(True)
                return
            finalMovCmd = utils.generateFileMovie(inputFolder, tmpDir, outputFile, firstFrame,
                                                shotName, imageExt, lastFrame, firstFrameStr, frameRate)
        else:
            finalMovCmd = utils.generateFileMovieNoSlug(inputFolder, outputFile, firstFrame,
                                                  shotName, imageExt, lastFrame, firstFrameStr, frameRate)
        threading.Thread( None, self.movieProgress, args=[finalMovCmd]).start()