tools updates

This commit is contained in:
Przemyslaw Iwanowski 2011-11-16 18:34:29 +00:00
parent 9f4251397e
commit 5d00998747
2 changed files with 105 additions and 21 deletions

View File

@ -267,6 +267,8 @@ class main(wx.Frame):
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.SetIcon(wx.Icon("pandaIcon.ico", wx.BITMAP_TYPE_ICO))
self.pandaPathDir = ''
#self.batchList is the global list of batch items waiting to be run
@ -274,7 +276,7 @@ class main(wx.Frame):
self.optchar_eggList = []
self.palettize_eggList = []
self.rename_eggList = []
#store folders of the last import/export locationfor ease of navigation
self.srcProjectFolder = ''
self.destProjectFolder = ''
@ -581,7 +583,7 @@ class main(wx.Frame):
self.Bind(wx.EVT_MENU, self.OnLoadPrefs, self.prefsLoadButton)
self.Bind(wx.EVT_MENU, self.OnSavePrefs, self.savePrefsButton)
self.Bind(wx.EVT_MENU, self.OnExit, self.exitButton)
self.Bind(wx.EVT_MENU, self.OnShowHelp,self.HelpMenuButton)
#self.Bind(wx.EVT_MENU, self.OnShowHelp,self.HelpMenuButton)
#batch panel
self.Bind(wx.EVT_COMBOBOX, self.OnTool, self.toolComboBox)
@ -883,8 +885,8 @@ class main(wx.Frame):
self.toolComboBox.SetSelection(0)
# batch panel
self.batch_panel.SetMinSize((1000, 608))
self.batchTree.SetMinSize((1000,524))
self.batch_panel.SetMinSize((2000, 608))
self.batchTree.SetMinSize((2000,524))
self.loadBatchButton.SetMinSize((-1, 23))
self.saveBatchButton.SetMinSize((-1, 23))
self.sortBatchButton.SetMinSize((-1, 23))
@ -894,8 +896,8 @@ class main(wx.Frame):
self.removeAllBatchButton.SetMinSize((-1, 23))
# console panel
self.console_panel.SetMinSize((1445, -1))
self.consoleOutputTxt.SetMinSize((1445, 100))
self.console_panel.SetMinSize((2000, 1000))
self.consoleOutputTxt.SetMinSize((2000, 1000))
self.consoleOutputTxt.SetBackgroundColour(wx.Colour(192, 192, 192))
self.consoleOutputTxt.SetToolTipString("maya2egg console output appears here when batch process is running")
self.consoleOutputTxt.Enable(True)
@ -1070,7 +1072,7 @@ class main(wx.Frame):
bam_batch_sizer = wx.FlexGridSizer(1,2,0,0)
bam_batch_sizer.Add(self.e2b_bamBatchOutputLbl, 1, wx.TOP, 4)
bam_batch_sizer.Add(self.e2b_bamBatchOutputBtn, 1, wx.LEFT|wx.RIGHT, 3)
bam_batch_sizer.Add(self.e2b_bamBatchOutputBtn, 1, wx.LEFT, 3)
egg2bam_grid_sizer.Add(bam_batch_sizer, 1, wx.TOP|wx.ALIGN_RIGHT, 5)
self.e2b_options_sizer_staticbox.Lower()
@ -1277,7 +1279,6 @@ class main(wx.Frame):
self.console_static_sizer_staticbox.Lower()
console_static_sizer = wx.StaticBoxSizer(self.console_static_sizer_staticbox, wx.VERTICAL)
console_grid_sizer = wx.FlexGridSizer(2,1,0,0)
console_grid_sizer.Add(self.consoleOutputTxt, 1, wx.ALIGN_LEFT|wx.EXPAND, 0)
console_controls_sizer = wx.BoxSizer(wx.HORIZONTAL)
@ -1295,10 +1296,11 @@ class main(wx.Frame):
panda_dir_sizer.Add(self.loadPandaPathBtn, 0, wx.ALL, 0)
console_options_sizer.Add(panda_dir_sizer, 0, 0, 0)
console_controls_sizer.Add(console_options_sizer, 0, wx.LEFT|wx.ALIGN_RIGHT, 25)
main_sizer.Add(self.console_panel, -1, wx.ALIGN_TOP|wx.EXPAND|wx.RIGHT, 5)
main_sizer.Add(self.console_panel, -1, wx.ALIGN_TOP|wx.EXPAND|wx.RIGHT|wx.BOTTOM, 5)
self.console_panel.SetSizer(console_static_sizer)
console_grid_sizer.Add(console_controls_sizer, 1, wx.ALIGN_LEFT, 0)
console_grid_sizer.Add(self.consoleOutputTxt, 1, wx.ALIGN_LEFT|wx.EXPAND|wx.TOP|wx.BOTTOM, 3)
console_static_sizer.Add(console_grid_sizer, 1, wx.EXPAND)
self.main_panel.SetSizer(main_sizer)
@ -1624,8 +1626,10 @@ class main(wx.Frame):
def OnRenameInPlace(self, event):
#check if we want to use a custom egg file or not for egg-rename panel
if (self.rename_exportInPlaceChk.GetValue()):
self.rename_exportDirTxt.SetValue("")
self.rename_exportDirTxt.Disable()
self.rename_exportDirBtn.Disable()
self.rename_exportFileTxt.SetValue("")
self.rename_exportFileTxt.Disable()
self.rename_exportFileBtn.Disable()
else:
@ -1730,8 +1734,10 @@ class main(wx.Frame):
def OnOptcharInPlace(self, event):
#check if we want to use a custom egg file or not for egg-optchar panel
if (self.optchar_exportInPlaceChk.GetValue()):
self.optchar_exportDirTxt.SetValue("")
self.optchar_exportDirTxt.Disable()
self.optchar_exportDirBtn.Disable()
self.optchar_exportFileTxt.SetValue("")
self.optchar_exportFileTxt.Disable()
self.optchar_exportFileBtn.Disable()
else:
@ -1825,8 +1831,10 @@ class main(wx.Frame):
def OnPalettizeInPlace(self, event):
#check if we want to use a custom egg file or not for egg-palettize panel
if (self.palettize_exportInPlaceChk.GetValue()):
self.palettize_exportDirTxt.SetValue("")
self.palettize_exportDirTxt.Disable()
self.palettize_exportDirBtn.Disable()
self.palettize_exportFileTxt.SetValue("")
self.palettize_exportFileTxt.Disable()
self.palettize_exportFileBtn.Disable()
else:
@ -1958,9 +1966,12 @@ class main(wx.Frame):
return batchList
def GetOutputFromBatch(self):
def GetOutputFromBatch(self, index=-1):
#Extract all output files from selected items in the batch
batchList = self.GetSelectedBatchList()
if (index != -1):
batchList = [self.batchList[index]]
else:
batchList = self.GetSelectedBatchList()
outputFiles = []
for batchItem in batchList:
if batchItem['cmd'].count('maya2egg'):
@ -2027,7 +2038,7 @@ class main(wx.Frame):
else:
self.batchList.append(batchItemInfo)
self.AddToBatchDisplay(batchItemInfo)
def addEgg2BamToBatch(self, editItemIndex=-1):
#add command line to batch list for egg2bam panel
finput = ''
@ -2045,7 +2056,7 @@ class main(wx.Frame):
batchItemInfo = {}
batchItemInfo['label'] = self.batchItemNameTxt.GetValue()
batchItemInfo['cmd'] = 'egg2bam'
batchItemInfo['args'] = elf.BuildEgg2BamArgs()
batchItemInfo['args'] = self.BuildEgg2BamArgs()
batchItemInfo['finput'] = str(finput)
batchItemInfo['foutput'] = str(foutput)
@ -2571,7 +2582,6 @@ class main(wx.Frame):
self.SetStatusText("Running Batch export please be patient...")
for item in self.batchList:
if currNode:
self.batchTree.SetItemTextColour(currNode, wx.Colour(0,175,0))
currNode = self.batchTree.GetNextSibling(currNode)
else:
currNode, cookie = self.batchTree.GetFirstChild(self.treeRoot)
@ -2581,10 +2591,13 @@ class main(wx.Frame):
index += 1
if (self.ignoreModDates.GetValue()): #do we want to just egg them regardless if they're newer?
self.RunCommand(self.BuildCommand(item),True)
self.batchTree.SetItemTextColour(currNode, wx.Colour(0,175,0))
else:
if self.CheckModDates(item):
self.RunCommand(self.BuildCommand(item),True)
self.batchTree.SetItemTextColour(currNode, wx.Colour(0,175,0))
self.batchTree.SetItemTextColour(currNode, wx.Colour(0,175,0))
else:
self.batchTree.SetItemTextColour(currNode, wx.Colour(0,0,175))
self.batchProgress.Destroy()
dlg = wx.MessageDialog(self,"Export Complete","Complete", wx.OK )
@ -2601,15 +2614,86 @@ class main(wx.Frame):
def CheckModDates(self, item):
finput = item['finput']
foutput = item['foutput']
if (item['cmd'].count('maya2egg') or item['cmd'].count('egg2bam')):
try:
if 1:
if (item['cmd'].count('maya2egg') or item['cmd'].count('egg2bam')):
inputTime = os.path.getmtime(finput)
outputTime = os.path.getmtime(foutput)
item['changed'] = (inputTime > outputTime)
return (inputTime > outputTime) # True if file was modified
except:
return True
elif (item['cmd'] in ['egg-rename', 'egg-optchar', 'egg-palettize']):
if item['args'].has_key('inplace'): # hard to check these
index = self.batchList.index(item)
# look for the input of the file
inputFiles = item['finput'].split('|')
for inFile in inputFiles:
if (inFile != ''):
inputFound = False
inputChanged = False
filename = inFile.split('\\')[-1]
for i in range(0, index):
idx = index - (i+1)
outputFiles = self.GetOutputFromBatch(idx)
if inFile in outputFiles:
inputFound = True
if self.batchList[idx]['cmd'].count('maya2egg'):
inputFile = self.batchList[idx]['finput']
inputTime = os.path.getmtime(inputFile)
outputTime = os.path.getmtime(inFile)
inputChanged = (inputTime > outputTime)
else:
if self.batchList[idx]['args'].has_key('inplace'):
inputChanged = self.batchList[idx]['changed']
elif self.batchList[idx]['args'].has_key('d'):
inputChanged = self.batchList[idx]['changed']
'''
inputs = self.batchList[idx]['finput'].split('|')
for inputFile in inputs:
if (inputFile != ''):
inputFilename = inputFile.split('\\')[-1]
print "Compare: ", inFile, filename, inputFile, inputFilename
if inputFilename == filename:
inputTime = os.path.getmtime(inputFile)
outputTime = os.path.getmtime(inFile)
print "Matched: ", (inputTime > outputTime)
inputChanged = (inputTime > outputTime)
break
'''
else:
inputFile = self.batchList[idx]['finput']
inputTime = os.path.getmtime(finput)
outputTime = os.path.getmtime(inFile)
inputChanged = (inputTime > outputTime)
break
if not inputFound:
item['changed'] = True
return True
if inputChanged:
item['changed'] = True
return True
item['changed'] = False
return False
if item['args'].has_key('d'): # compare files in the directory
inputFiles = item['finput'].split('|')
filesChanged = False
for inFile in inputFiles:
if (inFile != ''):
filename = inFile.split('\\')[-1]
directory = item['args']['d']
inputTime = os.path.getmtime(inFile)
outputTime = os.path.getmtime(directory+'\\'+filename)
filesChanged = filesChanged or (inputTime > outputTime)
item['changed'] = filesChanged
return filesChanged
else:
inputTime = os.path.getmtime(finput)
outputTime = os.path.getmtime(foutput)
item['changed'] = (inputTime > outputTime)
return (inputTime > outputTime) # True if file was modified
else:
item['changed'] = True
return True
item['changed'] = True
return True
def OnBatchItemSelection(self, event):

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB