// =========================================================================== // Copyright 2018 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software in either electronic or hard copy form. // =========================================================================== // Backburner MEL Wrapper script for Maya // By LH global string $gBB_backburnerExportWindow; proc string createTaskListFile(string $jobName, int $startFrame, int $endFrame, int $taskSize) { // Create the empty task file // string $ppath = `internalVar -userTmpDir`; string $outPath = $ppath + $jobName + ".txt"; int $fileId = `fopen $outPath "w"`; if($fileId == 0) { string $errorMsg = (uiRes("m_performExportToBackburner.kTaskFileError")); error (`format -s $outPath $errorMsg`); } // Populate the file with data // int $i; $taskSize--; for($i = $startFrame ;$i <= $endFrame; $i += $taskSize+1) { int $endMarker; if (($i + $taskSize) > $endFrame) $endMarker=$endFrame; else $endMarker=($i + $taskSize); fprint $fileId ("frames" + ($i) + "-" + ($endMarker) + "\t" + ($i) + "\t" + ($endMarker) + "\n"); } fclose $fileId; return $outPath; } proc string getRendererNameFromMenu() { string $rendererName; int $renderer = `optionMenuGrp -q -sl bbExportRendererCtl`; string $allAvailableRenderers[] = `optionMenuGrp -q -itemListShort bbExportRendererCtl`; // Note: menu indices of 'bbExportRendererCtl' starts at 1 $rendererName = $allAvailableRenderers[$renderer - 1]; return $rendererName; } proc int findMatchingRendererMenuIndexFromRenderGlobals() { string $allAvailableRenderers[] = `optionMenuGrp -q -itemListShort bbExportRendererCtl`; string $renderGlobalsBackburnerRenderer = `getAttr defaultRenderGlobals.backburnerRenderer`; int $foundAt = stringArrayFind($renderGlobalsBackburnerRenderer, 0, $allAvailableRenderers); if($foundAt < 0) { string $warning = (uiRes("m_performExportToBackburner.kInvalidBackburnerRenderer")); string $display = `format -s $renderGlobalsBackburnerRenderer $warning`; warning($display); $foundAt = 0; } // Note: menu indices of 'bbExportRendererCtl' starts at 1 return ($foundAt + 1); } proc string createCmdString() { // Bug 329645: very bizarre behaviour on windows requires an extra escape quote. // It looks wrong but it works. string $exportSysCmd; if(`about -windows`) $exportSysCmd = "system (\"\\\"\\\""; else $exportSysCmd = "system (\"\\\""; // We only do the most basic of error checking, file existence string $backburnerPath = `textFieldButtonGrp -q -tx bbExportBackburnerPathCtl`; if(!`file -q -exists $backburnerPath`) error (uiRes("m_performExportToBackburner.kInvalidBackburnerPathNoJob")); $backburnerPath = substituteAllString($backburnerPath, "\\", "/"); $exportSysCmd = $exportSysCmd + $backburnerPath + "\\\""; // Write out the job name and tell Backburner to ensure it is unique string $jobName = `textFieldGrp -q -tx bbExportJobNameCtl`; $exportSysCmd = $exportSysCmd + " -jobName \\\"" + $jobName + "\\\""; // This flag is deprecated in batchburner2010. Comment this in if using older versions to ensure unique job names // $exportSysCmd = $exportSysCmd + " -jobNameAdjust"; string $description = `textFieldGrp -q -tx bbExportDescriptionCtl`; $exportSysCmd = $exportSysCmd + " -description \\\"" + $description + "\\\""; string $managerName=`textFieldGrp -q -tx bbExportManagerNameCtl`; $exportSysCmd = $exportSysCmd + " -manager " + $managerName; int $port = `intFieldGrp -q -v1 bbExportPortCtl`; if ($port > 0) { $exportSysCmd = $exportSysCmd + " -port " + $port; } string $serverList=`textFieldGrp -q -tx bbExportServerListCtl`; if( `size $serverList` > 0) { $exportSysCmd = $exportSysCmd + " -servers \\\"" + $serverList + "\\\""; } else { string $serverGroup=`textFieldGrp -q -tx bbExportServerGroupCtl`; if( `size $serverGroup` > 0) { $exportSysCmd = $exportSysCmd + " -group \\\"" + $serverGroup + "\\\""; } } int $serverCount = `intFieldGrp -q -v1 bbExportServerCountCtl`; if ($serverCount > 0) { $exportSysCmd = $exportSysCmd + " -serverCount " + $serverCount; } int $submitWithoutStarting = `checkBox -q -v bbExportSubmitWithoutStartingCtl`; if ($submitWithoutStarting) { $exportSysCmd = $exportSysCmd + " -suspended"; } int $createLogFiles = `checkBox -q -v bbExportCreateLogFilesCtl`; if ($createLogFiles) { string $logPath = `textFieldGrp -q -tx bbExportLogPathCtl`; if($logPath != "") { $logPath = substituteAllString($logPath, "\\", "/"); $exportSysCmd = $exportSysCmd + " -logPath \\\"" + $logPath + "\\\""; } else error (uiRes("m_performExportToBackburner.kLogEnableButEmpty")); } int $priority = `intFieldGrp -q -v1 bbExportPriorityCtl`; $exportSysCmd = $exportSysCmd + " -priority " + $priority; // Prepare the list of tasks and send it to Backburner through a task list file int $startFrame = `intFieldGrp -q -v1 bbExportStartFrameCtl`; int $endFrame = `intFieldGrp -q -v1 bbExportEndFrameCtl`; int $taskSize = `intFieldGrp -q -v1 bbExportTaskSizeCtl`; if( $taskSize < 1) $taskSize = 1; string $taskListFileName = createTaskListFile($jobName, $startFrame, $endFrame, $taskSize); if($taskListFileName != "") { $exportSysCmd = $exportSysCmd + " -taskList \\\"" + $taskListFileName; $exportSysCmd = $exportSysCmd + "\\\" -taskName 1"; } int $sendEmail = `checkBox -q -v bbExportSendEmailCtl`; if ($sendEmail) { int $notifyCompletion = `checkBox -q -v bbExportNotifyCompletionCtl`; if ($notifyCompletion) $exportSysCmd = $exportSysCmd + " -emailCompletion"; int $notifyProgress = `checkBox -q -v bbExportNotifyProgressCtl`; int $progressTaskNumber = `intFieldGrp -q -v1 bbExportProgressTaskNumberCtl`; if ($notifyProgress) $exportSysCmd = $exportSysCmd + " -emailProgress " + $progressTaskNumber; if((!$notifyCompletion) && (!$notifyProgress)) error (uiRes("m_performExportToBackburner.kNoEmailWillBeSent")); string $fromEmail = `textFieldGrp -q -tx bbExportFromEmailCtl`; $exportSysCmd = $exportSysCmd + " -emailFrom " + $fromEmail; string $toEmail = `textFieldGrp -q -tx bbExportToEmailCtl`; $exportSysCmd = $exportSysCmd + " -emailTo " + $toEmail; string $SMTPServer = `textFieldGrp -q -tx bbExportSMTPServerCtl`; $exportSysCmd = $exportSysCmd + " -emailServer " + $SMTPServer; } string $rendererPath = `textFieldButtonGrp -q -tx bbExportRendererPathCtl`; $rendererPath = substituteAllString($rendererPath, "\\", "/"); $exportSysCmd = $exportSysCmd + " \\\"" + $rendererPath + "\\\""; string $rendererName = getRendererNameFromMenu(); $exportSysCmd = $exportSysCmd + " -r " + $rendererName; $exportSysCmd = $exportSysCmd + " -s %tp2 -e %tp3"; string $projectPath = `workspace -q -fullName`; $projectPath = substituteAllString($projectPath, "\\", "/"); if($projectPath != "") { $exportSysCmd = $exportSysCmd + " -proj \\\"" + $projectPath + "\\\""; string $imagesDir = `workspace -q -fileRuleEntry "images"`; if($imagesDir != "") $exportSysCmd = $exportSysCmd + " -rd \\\"" + $projectPath + "/" + $imagesDir + "\\\""; } string $additionalFlags=`textFieldGrp -q -tx bbExportAdditionalFlagsCtl`; $exportSysCmd = $exportSysCmd + " " + $additionalFlags; string $sceneFile = `file -q -sceneName`; if($sceneFile == "") error (uiRes("m_performExportToBackburner.kNoSceneFileToExport")); $exportSysCmd = $exportSysCmd + " \\\"" + $sceneFile + "\\\""; $exportSysCmd = $exportSysCmd + "\")"; return $exportSysCmd; } global proc backburnerExportPopulateCmdString() { string $submitJobCmd = createCmdString(); scrollField -e -tx $submitJobCmd bbExportCustomCommandCtl; } global proc backburnerExportSubmitJob() { string $submitJobCmd; if(`checkBox -q -v bbExportUseCustomCommandCtl`) $submitJobCmd = `scrollField -q -tx bbExportCustomCommandCtl`; else $submitJobCmd = createCmdString(); if($submitJobCmd == "") error (uiRes("m_performExportToBackburner.kEmptyCommandString")); evalEcho($submitJobCmd); } global proc backburnerExportClose() { global string $gBB_backburnerExportWindow; if (`window -exists $gBB_backburnerExportWindow`) { // Currently, the window is made invisible by deleting it // This is what the option box does but I don't believe I need to delete the backburner window // I'll change this to be more consistent with the render options windows evalDeferred ("if (`window -exists " + $gBB_backburnerExportWindow + "`) deleteUI -window " + $gBB_backburnerExportWindow); } } global proc backburnerExportSubmitJobClose() { backburnerExportSubmitJob(); backburnerExportClose(); } // This procedure will be used to update the all the scene/user pref settings as soon as // the UI changes. This will remove the need for the explicit save settings step. global proc backburnerExportSettingChange(string $field) { string $controlName = "bbExport" + $field + "Ctl"; string $optionVarName = "bb_" + $field; string $nodeAttrName = "defaultRenderGlobals.backburner" + $field; int $notifyProgress; // this is used in a couple of places so the declaration is best done early switch ($field) { case "JobName": string $jobName = `textFieldGrp -q -tx $controlName`; setAttr $nodeAttrName -type "string" $jobName; break; case "Description": string $description = `textFieldGrp -q -tx $controlName`; setAttr $nodeAttrName -type "string" $description; break; case "Priority": int $priority = `intFieldGrp -q -v1 $controlName`; setAttr $nodeAttrName $priority; break; case "StartFrame": int $startFrame = `intFieldGrp -q -v1 $controlName`; setAttr $nodeAttrName $startFrame; break; case "EndFrame": int $endFrame = `intFieldGrp -q -v1 $controlName`; setAttr $nodeAttrName $endFrame; break; case "TaskSize": int $taskSize = `intFieldGrp -q -v1 $controlName`; setAttr $nodeAttrName $taskSize; break; case "Renderer": string $renderer = getRendererNameFromMenu(); setAttr -type "string" $nodeAttrName $renderer; break; case "AdditionalFlags": string $additionalFlags = `textFieldGrp -q -tx $controlName`; setAttr $nodeAttrName -type "string" $additionalFlags; break; case "ManagerName": string $managerName=`textFieldGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $managerName; break; case "Port": int $port = `intFieldGrp -q -v1 $controlName`; optionVar -intValue $optionVarName $port; break; case "ServerList": string $serverList=`textFieldGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $serverList; textFieldGrp -e -enable (`size $serverList` == 0) bbExportServerGroupCtl; break; case "ServerGroup": string $serverGroup=`textFieldGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $serverGroup; textFieldGrp -e -enable (`size $serverGroup` == 0) bbExportServerListCtl; break; case "ServerCount": int $serverCount = `intFieldGrp -q -v1 $controlName`; optionVar -intValue $optionVarName $serverCount; break; case "CompletionSettings": int $completionSettings = `optionMenuGrp -q -sl $controlName`; optionVar -intValue $optionVarName $completionSettings; break; case "SubmitWithoutStarting": int $submitWithoutStarting = `checkBox -q -v $controlName`; optionVar -intValue $optionVarName $submitWithoutStarting; break; case "CreateLogFiles": $createLogFiles = `checkBox -q -v $controlName`; optionVar -intValue $optionVarName $createLogFiles; textFieldGrp -e -enable $createLogFiles bbExportLogPathCtl; break; case "LogPath": string $logPath = `textFieldGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $logPath; break; case "RendererPath": string $rendererPath = `textFieldButtonGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $rendererPath; break; case "BackburnerPath": string $backburnerPath = `textFieldButtonGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $backburnerPath; if(!`file -q -exists $backburnerPath`) error (uiRes("m_performExportToBackburner.kInvalidBackburnerPath")); break; case "SendEmail": int $sendEmail = `checkBox -q -v $controlName`; $notifyProgress = `checkBox -q -v bbExportNotifyProgressCtl`; optionVar -intValue $optionVarName $sendEmail; checkBox -e -enable $sendEmail bbExportNotifyCompletionCtl; checkBox -e -enable $sendEmail bbExportNotifyProgressCtl; intFieldGrp -e -enable ($sendEmail && $notifyProgress) bbExportProgressTaskNumberCtl; textFieldGrp -e -enable $sendEmail bbExportFromEmailCtl; textFieldGrp -e -enable $sendEmail bbExportToEmailCtl; textFieldGrp -e -enable $sendEmail bbExportSMTPServerCtl; break; case "NotifyCompletion": int $notifyCompletion = `checkBox -q -v $controlName`; optionVar -intValue $optionVarName $notifyCompletion; break; case "NotifyProgress": $notifyProgress = `checkBox -q -v $controlName`; optionVar -intValue $optionVarName $notifyProgress; intFieldGrp -e -enable $notifyProgress bbExportProgressTaskNumberCtl; break; case "ProgressTaskNumber": int $progressTaskNumber = `intFieldGrp -q -v1 $controlName`; optionVar -intValue $optionVarName $progressTaskNumber; break; case "FromEmail": string $fromEmail = `textFieldGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $fromEmail; break; case "ToEmail": string $toEmail = `textFieldGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $toEmail; break; case "SMTPServer": string $SMTPServer = `textFieldGrp -q -tx $controlName`; optionVar -stringValue $optionVarName $SMTPServer; break; case "UseCustomCommand": int $useCustomCommand = `checkBox -q -v $controlName`; optionVar -intValue $optionVarName $useCustomCommand; frameLayout -e -cl (!$useCustomCommand) bbExportCustomCommandLayout; button -e -enable $useCustomCommand bbExportPopulateCommandCtl; scrollField -e -enable $useCustomCommand bbExportCustomCommandCtl; break; case "CustomCommand": string $customCommand = `scrollField -q -tx $controlName`; optionVar -stringValue $optionVarName $customCommand; break; } } // This will be moved in to backburnerExportSettingChange global proc backburnerExportUpdateTaskSize() { int $i; int $startFrame = `intFieldGrp -q -v1 bbExportStartFrameCtl`; int $endFrame = `intFieldGrp -q -v1 bbExportEndFrameCtl`; int $taskSize = `intFieldGrp -q -v1 bbExportTaskSizeCtl`; if($taskSize < 1) { error (uiRes("m_performExportToBackburner.kTaskSizeGreaterThan")); } if($endFrame < $startFrame) { error (uiRes("m_performExportToBackburner.kInvalidEndFrame")); } int $jobSize = $endFrame - $startFrame + 1; if($taskSize > $jobSize) { error (uiRes("m_performExportToBackburner.kInvalidTaskSize")); } } global proc backburnerExportGetRendererPath() { string $tStr=`fileDialog -m 0`; if($tStr != "") textFieldButtonGrp -e -tx $tStr bbExportRendererPathCtl; } global proc backburnerExportGetBackburnerPath() { string $tStr=`fileDialog -m 0`; if($tStr != "") textFieldButtonGrp -e -tx $tStr bbExportBackburnerPathCtl; } proc createOrResetOptionVars(int $forceFactorySettings) { if ($forceFactorySettings || !`optionVar -exists "bb_ManagerName"`) optionVar -stringValue "bb_ManagerName" ""; if ($forceFactorySettings || !`optionVar -exists "bb_Port"`) optionVar -intValue "bb_Port" 7347; if ($forceFactorySettings || !`optionVar -exists "bb_ServerList"`) optionVar -stringValue "bb_ServerList" ""; if ($forceFactorySettings || !`optionVar -exists "bb_ServerGroup"`) optionVar -stringValue "bb_ServerGroup" ""; if ($forceFactorySettings || !`optionVar -exists "bb_ServerCount"`) optionVar -intValue "bb_ServerCount" 0; if ($forceFactorySettings || !`optionVar -exists "bb_SendEmail"`) optionVar -intValue "bb_SendEmail" 0; if ($forceFactorySettings || !`optionVar -exists "bb_NotifyCompletion"`) optionVar -intValue "bb_NotifyCompletion" 1; if ($forceFactorySettings || !`optionVar -exists "bb_NotifyProgress"`) optionVar -intValue "bb_NotifyProgress" 0; if ($forceFactorySettings || !`optionVar -exists "bb_ProgressTaskNumber"`) optionVar -intValue "bb_ProgressTaskNumber" 10; if ($forceFactorySettings || !`optionVar -exists "bb_FromEmail"`) optionVar -stringValue "bb_FromEmail" ""; if ($forceFactorySettings || !`optionVar -exists "bb_ToEmail"`) optionVar -stringValue "bb_ToEmail" ""; if ($forceFactorySettings || !`optionVar -exists "bb_SMTPServer"`) optionVar -stringValue "bb_SMTPServer" ""; if ($forceFactorySettings || !`optionVar -exists "bb_SubmitWithoutStarting"`) optionVar -intValue "bb_SubmitWithoutStarting" 0; if ($forceFactorySettings || !`optionVar -exists "bb_CreateLogFiles"`) optionVar -intValue "bb_CreateLogFiles" 0; if ($forceFactorySettings || !`optionVar -exists "bb_LogPath"`) optionVar -stringValue "bb_LogPath" ""; if ($forceFactorySettings || !`optionVar -exists "bb_RendererPath"`) { string $rendererLocation = `getenv "MAYA_LOCATION"` + "/bin/Render"; optionVar -stringValue "bb_RendererPath" $rendererLocation; } if ($forceFactorySettings || !`optionVar -exists "bb_BackburnerPath"`) { string $backburnerDir = "C:/Program Files/Autodesk/Backburner/cmdjob.exe"; if (`about -win64`) $backburnerDir = "C:/Program Files (x86)/Autodesk/Backburner/cmdjob.exe"; else if (`about -linux`) $backburnerDir = "/usr/discreet/backburner/cmdjob"; else if(`about -mac`) $backburnerDir = "/usr/discreet/backburner/cmdjob"; optionVar -stringValue "bb_BackburnerPath" $backburnerDir; } if ($forceFactorySettings || !`optionVar -exists "bb_UseCustomCommand"`) optionVar -intValue "bb_UseCustomCommand" 0; if ($forceFactorySettings || !`optionVar -exists "bb_CustomCommand"`) optionVar -stringValue "bb_CustomCommand" ""; } proc createBackburnerRendererAttribute(string $value) { if( !`attributeQuery -ex -n defaultRenderGlobals backburnerRenderer` ) { addAttr -dt "string" -ln "backburnerRenderer" defaultRenderGlobals; setAttr -type "string" defaultRenderGlobals.backburnerRenderer $value; } else { warning((uiRes("m_performExportToBackburner.kBackburnerAttributeAlreadyCreatedWarning"))); } } proc string getStringEquivalentOfLegacyBackburnerRenderer(int $legacyValue) { switch ($legacyValue) { case 1: $rendererName = "file"; break; case 2: $rendererName = "mr"; break; case 3: $rendererName = "sw"; break; case 4: $rendererName = "hw"; break; case 5: $rendererName = "vr"; break; default: $rendererName = "file"; break; } return $rendererName; } proc ensureSceneAttrsExist() { if( !`attributeQuery -ex -n defaultRenderGlobals backburnerJobName` ) { addAttr -dt "string" -ln "backburnerJobName" defaultRenderGlobals; string $name = basenameEx( `file -q -sceneName`); if( size( $name) == 0) { $name = `getenv("USERNAME")`; } setAttr defaultRenderGlobals.backburnerJobName -type "string" ($name + `date -f "hhmmss-YYMMDD"`); } if( !`attributeQuery -ex -n defaultRenderGlobals backburnerDescription` ) { addAttr -dt "string" -ln "backburnerDescription" defaultRenderGlobals; } if( !`attributeQuery -ex -n defaultRenderGlobals backburnerPriority` ) { addAttr -at "long" -dv 50 -min 0 -max 100 -ln "backburnerPriority" defaultRenderGlobals; } if( !`attributeQuery -ex -n defaultRenderGlobals backburnerStartFrame` ) { int $defaultStartFrame = `getAttr defaultRenderGlobals.startFrame`; addAttr -at "long" -dv $defaultStartFrame -min 0 -ln "backburnerStartFrame" defaultRenderGlobals; } if( !`attributeQuery -ex -n defaultRenderGlobals backburnerEndFrame` ) { int $defaultEndFrame = `getAttr defaultRenderGlobals.endFrame`; addAttr -at "long" -dv $defaultEndFrame -min 0 -ln "backburnerEndFrame" defaultRenderGlobals; } if( !`attributeQuery -ex -n defaultRenderGlobals backburnerTaskSize` ) { int $startFrame = `getAttr defaultRenderGlobals.backburnerStartFrame`; int $endFrame = `getAttr defaultRenderGlobals.backburnerEndFrame`; int $defaultTaskSize = ($endFrame - $startFrame + 1) / 5; if($defaultTaskSize < 1) $defaultTaskSize = 1; addAttr -at "long" -dv $defaultTaskSize -min 1 -ln "backburnerTaskSize" defaultRenderGlobals; } if( `attributeQuery -ex -n defaultRenderGlobals backburnerRenderer` ) { if(`getAttr -type defaultRenderGlobals.backburnerRenderer` == "enum") { int $legacyValue = `getAttr defaultRenderGlobals.backburnerRenderer`; string $stringEquivalent = getStringEquivalentOfLegacyBackburnerRenderer($legacyValue); deleteAttr defaultRenderGlobals.backburnerRenderer; createBackburnerRendererAttribute($stringEquivalent); } } else { createBackburnerRendererAttribute("file"); } if( !`attributeQuery -ex -n defaultRenderGlobals backburnerAdditionalFlags` ) { addAttr -dt "string" -ln "backburnerAdditionalFlags" defaultRenderGlobals; } } proc createWindow() { global string $gBB_backburnerExportWindow; int $useCustomCommand = `optionVar -q "bb_UseCustomCommand"`; //Used in various places $gBB_backburnerExportWindow = `window -t (uiRes("m_performExportToBackburner.kBackBurnerForMaya"))`; columnLayout -adj 1; frameLayout -label (uiRes("m_performExportToBackburner.kBackBurnerSettings")) -cll 1; columnLayout; textFieldGrp -label (uiRes("m_performExportToBackburner.kJobName")) -tx `getAttr defaultRenderGlobals.backburnerJobName` -cc "backburnerExportSettingChange JobName" -annotation (uiRes("m_performExportToBackburner.kJobNameAnnotation")) bbExportJobNameCtl; textFieldGrp -label (uiRes("m_performExportToBackburner.kDescription")) -tx `getAttr defaultRenderGlobals.backburnerDescription` -cc "backburnerExportSettingChange Description" bbExportDescriptionCtl; intFieldGrp -label (uiRes("m_performExportToBackburner.kPriority")) -v1 `getAttr defaultRenderGlobals.backburnerPriority` -cw 2 50 -cc "backburnerExportSettingChange Priority" -annotation (uiRes("m_performExportToBackburner.kPriorityAnnotation")) bbExportPriorityCtl; intFieldGrp -label (uiRes("m_performExportToBackburner.kStartFrame")) -v1 `getAttr defaultRenderGlobals.backburnerStartFrame` -cw 2 50 -cc "backburnerExportSettingChange StartFrame" bbExportStartFrameCtl; intFieldGrp -label (uiRes("m_performExportToBackburner.kEndFrame")) -v1 `getAttr defaultRenderGlobals.backburnerEndFrame` -cw 2 50 -cc "backburnerExportSettingChange EndFrame" bbExportEndFrameCtl; intFieldGrp -label (uiRes("m_performExportToBackburner.kTaskSize")) -v1 `getAttr defaultRenderGlobals.backburnerTaskSize` -cw 2 50 -annotation (uiRes("m_performExportToBackburner.kMTaskSizeAnnotation")) bbExportTaskSizeCtl; optionMenuGrp -label (uiRes("m_performExportToBackburner.kRenderer")) -cal 1 "right" bbExportRendererCtl; menuItem -label (uiRes("m_performExportToBackburner.kSceneFileRenderer")) "file"; menuItem -label (uiRes("m_performExportToBackburner.kMayaSoftware")) "sw"; menuItem -label (uiRes("m_performExportToBackburner.kMayaHardware")) "hw"; menuItem -label (uiRes("m_performExportToBackburner.kVector")) "vr"; optionMenuGrp -e -cc "backburnerExportSettingChange Renderer" bbExportRendererCtl; removeMenuItems("vr",""); callbacks -executeCallbacks -hook "addBackburnerRendererMenuItems"; optionMenuGrp -e -sl `findMatchingRendererMenuIndexFromRenderGlobals` bbExportRendererCtl; // These flags will be inserted after the -proj flag and before the scenefile name textFieldGrp -label (uiRes("m_performExportToBackburner.kAdditionalOptions")) -tx `getAttr defaultRenderGlobals.backburnerAdditionalFlags` -annotation (uiRes("m_performExportToBackburner.kAdditionalOptionsAnnotation")) -cc "backburnerExportSettingChange AdditionalFlags" bbExportAdditionalFlagsCtl; setParent ..; setParent ..; frameLayout -label (uiRes("m_performExportToBackburner.kBackburnerOptions")) -cll 1; columnLayout; textFieldGrp -label (uiRes("m_performExportToBackburner.kManagerName")) -tx `optionVar -q "bb_ManagerName"` -annotation (uiRes("m_performExportToBackburner.kManagerNameAnnotation")) -cc "backburnerExportSettingChange ManagerName" bbExportManagerNameCtl; intFieldGrp -label (uiRes("m_performExportToBackburner.kPort")) -v1 `optionVar -q "bb_Port"` -cw 2 50 -annotation (uiRes("m_performExportToBackburner.kPortAnnotation")) -cc "backburnerExportSettingChange Port" bbExportPortCtl; string $serverList = `optionVar -q "bb_ServerList"`; string $serverGroup = `optionVar -q "bb_ServerGroup"`; textFieldGrp -label (uiRes("m_performExportToBackburner.kServerList")) -enable (`size $serverGroup` == 0 || `size $serverList` > 0) -tx $serverList -annotation (uiRes("m_performExportToBackburner.kServerListAnnotation")) -cc "backburnerExportSettingChange ServerList" bbExportServerListCtl; textFieldGrp -label (uiRes("m_performExportToBackburner.kServerGroup")) -enable (`size $serverList` == 0 || `size $serverGroup` > 0) -tx $serverGroup -annotation (uiRes("m_performExportToBackburner.kServerGroupAnnotation")) -cc "backburnerExportSettingChange ServerGroup" bbExportServerGroupCtl; intFieldGrp -label (uiRes("m_performExportToBackburner.kServerCount")) -v1 `optionVar -q "bb_ServerCount"` -cw 2 50 -annotation (uiRes("m_performExportToBackburner.kServerCountAnnotation")) -cc "backburnerExportSettingChange ServerCount" bbExportServerCountCtl; int $submitWithoutStarting = `optionVar -q "bb_SubmitWithoutStarting"`; checkBox -label (uiRes("m_performExportToBackburner.kManuallyStartJob")) -v $submitWithoutStarting -cc "backburnerExportSettingChange SubmitWithoutStarting" bbExportSubmitWithoutStartingCtl; int $createLogFiles = `optionVar -q "bb_CreateLogFiles"`; checkBox -label (uiRes("m_performExportToBackburner.kCreateLogFiles")) -v $createLogFiles -cc "backburnerExportSettingChange CreateLogFiles" bbExportCreateLogFilesCtl; textFieldGrp -label (uiRes("m_performExportToBackburner.kLogPath")) -tx `optionVar -q "bb_LogPath"` -enable $createLogFiles -cc "backburnerExportSettingChange LogPath" -annotation (uiRes("m_performExportToBackburner.kLogPathAnnotation")) bbExportLogPathCtl; textFieldButtonGrp -label (uiRes("m_performExportToBackburner.kRendererPath")) -tx `optionVar -q "bb_RendererPath"` -bl "..." -bc "backburnerExportGetRendererPath()" -annotation (uiRes("m_performExportToBackburner.kRendererPathAnnotation")) -cc "backburnerExportSettingChange RendererPath" bbExportRendererPathCtl; textFieldButtonGrp -label (uiRes("m_performExportToBackburner.kBackburnerPath")) -tx `optionVar -q "bb_BackburnerPath"` -annotation (uiRes("m_performExportToBackburner.kBackburnerPathAnnotation")) -bl "..." -bc "backburnerExportGetBackburnerPath()" -cc "backburnerExportSettingChange BackburnerPath" bbExportBackburnerPathCtl; checkBox -label (uiRes("m_performExportToBackburner.kUseCustomCommand")) -v $useCustomCommand -cc "backburnerExportSettingChange UseCustomCommand" -annotation (uiRes("m_performExportToBackburner.kUseCustomCommandAnnotation")) bbExportUseCustomCommandCtl; setParent ..; setParent ..; frameLayout -label (uiRes("m_performExportToBackburner.kEmailOptions")) -cll 1; columnLayout; int $sendEmail = `optionVar -q "bb_SendEmail"`; checkBox -label (uiRes("m_performExportToBackburner.kSendEmail")) -v $sendEmail -cc "backburnerExportSettingChange SendEmail" bbExportSendEmailCtl; checkBox -label (uiRes("m_performExportToBackburner.kNotifyCompletion")) -v `optionVar -q "bb_NotifyCompletion"` -enable $sendEmail -cc "backburnerExportSettingChange NotifyCompletion" bbExportNotifyCompletionCtl; int $notifyProgress = `optionVar -q "bb_NotifyProgress"`; checkBox -label (uiRes("m_performExportToBackburner.kNotifyProgress")) -v $notifyProgress -enable $sendEmail -cc "backburnerExportSettingChange NotifyProgress" bbExportNotifyProgressCtl; intFieldGrp -label (uiRes("m_performExportToBackburner.kUpdateAfterNumberOfTasks")) -v1 `optionVar -q "bb_ProgressTaskNumber"` -enable ($sendEmail && $notifyProgress) -cw 2 50 -cc "backburnerExportSettingChange ProgressTaskNumber" bbExportProgressTaskNumberCtl; textFieldGrp -label (uiRes("m_performExportToBackburner.kFromEmailAddress")) -tx `optionVar -q "bb_FromEmail"` -enable $sendEmail -cc "backburnerExportSettingChange FromEmail" bbExportFromEmailCtl; textFieldGrp -label (uiRes("m_performExportToBackburner.kToEmailAddress")) -tx `optionVar -q "bb_ToEmail"` -enable $sendEmail -cc "backburnerExportSettingChange ToEmail" bbExportToEmailCtl; textFieldGrp -label (uiRes("m_performExportToBackburner.kSMTPServer")) -tx `optionVar -q "bb_SMTPServer"` -enable $sendEmail -cc "backburnerExportSettingChange SMTPServer" bbExportSMTPServerCtl; setParent ..; setParent ..; frameLayout -label (uiRes("m_performExportToBackburner.kCustomCommandOptions")) -cll 1 -cl (!$useCustomCommand) bbExportCustomCommandLayout; button -label (uiRes("m_performExportToBackburner.kPopulateCommand")) -enable $useCustomCommand -command "backburnerExportPopulateCmdString" bbExportPopulateCommandCtl; scrollField -tx `optionVar -q "bb_CustomCommand"` -enable $useCustomCommand -numberOfLines 5 -wordWrap true -cc "backburnerExportSettingChange CustomCommand" -annotation (uiRes("m_performExportToBackburner.kCustomCommand")) bbExportCustomCommandCtl; setParent ..; rowLayout -adj 1 -nc 3; button -l (uiRes("m_performExportToBackburner.kSubmitJobAndClose")) -c "backburnerExportSubmitJobClose()"; button -l (uiRes("m_performExportToBackburner.kSubmitJob")) -c "backburnerExportSubmitJob()"; button -l (uiRes("m_performExportToBackburner.kSaveSettings")) -c "backburnerExportClose()"; setParent ..; showWindow $gBB_backburnerExportWindow; } global proc performExportToBackburner() { // Unsaved changes? if(`file -q -anyModified`) { // Ask the user how to handle the changes string $save = (uiRes("m_performExportToBackburner.kSave")); string $ignore = (uiRes("m_performExportToBackburner.kIgnore")); string $cancel = (uiRes("m_performExportToBackburner.kCancel")); string $result = `confirmDialog -title (uiRes("m_performExportToBackburner.kUnsavedChanges")) -message (uiRes("m_performExportToBackburner.kBeforeCreatingBackburner")) -button $save -button $ignore -button $cancel -defaultButton $save -cancelButton $cancel -dismissString $cancel`; if($result == $cancel) return; else if($result == $save) { SaveSceneAs; if(`file -query -shortName -sceneName` == "") error (uiRes("m_performExportToBackburner.kNoSceneSaved")); } // else: the user told to ignore the changes so we will } createOrResetOptionVars(0); ensureSceneAttrsExist(); createWindow(); }