From 5d0099874738af3a3fba1d37dd774ee56c93291a Mon Sep 17 00:00:00 2001 From: Przemyslaw Iwanowski Date: Wed, 16 Nov 2011 18:34:29 +0000 Subject: [PATCH] tools updates --- .../src/panda3dtoolsgui/Panda3DToolsGUI.py | 126 +++++++++++++++--- contrib/src/panda3dtoolsgui/pandaIcon.ico | Bin 0 -> 287934 bytes 2 files changed, 105 insertions(+), 21 deletions(-) create mode 100644 contrib/src/panda3dtoolsgui/pandaIcon.ico diff --git a/contrib/src/panda3dtoolsgui/Panda3DToolsGUI.py b/contrib/src/panda3dtoolsgui/Panda3DToolsGUI.py index e86b60da63..8a42ed8131 100644 --- a/contrib/src/panda3dtoolsgui/Panda3DToolsGUI.py +++ b/contrib/src/panda3dtoolsgui/Panda3DToolsGUI.py @@ -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): diff --git a/contrib/src/panda3dtoolsgui/pandaIcon.ico b/contrib/src/panda3dtoolsgui/pandaIcon.ico new file mode 100644 index 0000000000000000000000000000000000000000..cd6f45759f696b1207a83fd88424c00773ce78e3 GIT binary patch literal 287934 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Û~10lZYE#7;82<<;Zfzb)MJexmKhp!-)& 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