def _sendMessage(self, targets, message, tab, tabTarget): if not message: return settings = HComMayaUtils.readIni() if targets: result = HComMayaClient.sendMessage(targets, self.ID, message, tabTarget) if isinstance(result, list): for i in result: tab.outMessage.append( "Error: User '{0}' not found.\n".format(i)) now = datetime.datetime.now() timeStamp = str(self.ID) + ":" + str(now.hour).zfill(2) + ":" + str( now.minute).zfill(2) + ":" tab.appendMessage( self.ID, str(tab.messageLine.toPlainText().encode('latin-1')) + "\n", fromMyself=True) if settings["SAVE_HISTORY"]: for t in targets: HComMayaUtils.writeHistory( t, timeStamp, str(tab.messageLine.toPlainText().encode('latin-1'))) tab.messageLine.clear()
def _sendMessage(self, targets, message, tab, tabTarget): if not message: return settings = HComMayaUtils.readIni() if targets: result = HComMayaClient.sendMessage(targets, self.ID, message, tabTarget) if isinstance(result, list): for i in result: tab.outMessage.append("Error: User '{0}' not found.\n".format(i)) now = datetime.datetime.now() timeStamp = str(self.ID) + ":" + str(now.hour).zfill(2) + ":" + str(now.minute).zfill(2) + ":" tab.appendMessage(self.ID, str(tab.messageLine.toPlainText().encode('latin-1')) + "\n", fromMyself=True) if settings["SAVE_HISTORY"]: for t in targets: HComMayaUtils.writeHistory(t, timeStamp, str(tab.messageLine.toPlainText().encode('latin-1'))) tab.messageLine.clear()
def _exportObj(): selection = cmds.ls(sl=True) if not selection: ask = QtGui.QMessageBox() ask.setText("Error: Nothing selected !") ask.setIcon(QtGui.QMessageBox.Warning) ask.exec_() return False, False meshName = str(selection[0]).replace("|", "_") objtmp = HComMayaUtils.fetchMyReceivedFilesFolder( ) + os.sep + meshName + "_tmp.obj" objtmp = HComMayaUtils.incrementFile(objtmp) try: cmds.file( objtmp, force=True, type="OBJexport", es=True, shader=False, ) except Exception as e: print("ERROR: " + str(e)) return False, False return meshName, objtmp
def validSettings(self): self.SETTINGS["SERVER"] = str(self.serverAdress.text()) self.SETTINGS["PORT"] = str(self.serverPort.text()) self.SETTINGS["PLAY_SOUND"] = str(self.playSounds.isChecked()) if str(self.myReceivedFileLine.text()) == os.path.dirname(__file__) + "\\HCom_Received_Files": self.SETTINGS["MY_RECEIVED_FILES"] = "DEFAULT" else: self.SETTINGS["MY_RECEIVED_FILES"] = str(self.myReceivedFileLine.text()) HComMayaUtils.writeIni(self.SETTINGS) self.close()
def validSettings(self): self.SETTINGS["SERVER"] = str(self.serverAdress.text()) self.SETTINGS["PORT"] = str(self.serverPort.text()) self.SETTINGS["PLAY_SOUND"] = str(self.playSounds.isChecked()) if str(self.myReceivedFileLine.text() ) == os.path.dirname(__file__) + "\\HCom_Received_Files": self.SETTINGS["MY_RECEIVED_FILES"] = "DEFAULT" else: self.SETTINGS["MY_RECEIVED_FILES"] = str( self.myReceivedFileLine.text()) HComMayaUtils.writeIni(self.SETTINGS) self.close()
def _openReceivedFilesFolder(self): RECEIVED_FILES_PATH = HComMayaUtils.fetchMyReceivedFilesFolder() if os.path.exists(RECEIVED_FILES_PATH): os.startfile(RECEIVED_FILES_PATH) else: print("ERROR: Received files folder not found.")
def _getInputData(self, in_data): ''' Fetch data from client and add confirmation widget to the chat ''' sender = in_data["SENDER"] dataType = in_data["DATA_TYPE"] data = in_data["DATA"] tabTarget = in_data["TAB_TARGET"] if not tabTarget in self.USER_TABS.keys(): return False curTab = self.centralTabWidget.currentWidget() if self.USER_TABS[tabTarget] != curTab: targetTabIdx = self.centralTabWidget.indexOf(self.USER_TABS[tabTarget]) self.centralTabWidget.tabBar().setTabIcon(targetTabIdx, QtGui.QIcon(ICONPATH + "unreadmsg.png")) settings = HComMayaUtils.readIni() if "PLAY_SOUND" in settings.keys(): if settings["PLAY_SOUND"]: s = QtGui.QSound(ICONPATH + "gnm.wav") s.play() self.USER_TABS[tabTarget].appendInputBox(sender, dataType, data)
def _appendMessageToTab(self, data): tabTarget = data["TAB_TARGET"] sender = data["SENDER"] message = data["MESSAGE"] if not tabTarget in self.USER_TABS.keys(): return False curTab = self.centralTabWidget.currentWidget() if self.USER_TABS[tabTarget] != curTab: targetTabIdx = self.centralTabWidget.indexOf( self.USER_TABS[tabTarget]) self.centralTabWidget.tabBar().setTabIcon( targetTabIdx, QtGui.QIcon(ICONPATH + "unreadmsg.png")) settings = HComMayaUtils.readIni() if "PLAY_SOUND" in settings.keys(): if settings["PLAY_SOUND"]: s = QtGui.QSound(ICONPATH + "gnm.wav") s.play() self.USER_TABS[tabTarget].appendMessage(sender, message) MayaGlobals.HCOM_TABS = self.USER_TABS
def _getInputData(self, in_data): ''' Fetch data from client and add confirmation widget to the chat ''' sender = in_data["SENDER"] dataType = in_data["DATA_TYPE"] data = in_data["DATA"] tabTarget = in_data["TAB_TARGET"] if not tabTarget in self.USER_TABS.keys(): return False curTab = self.centralTabWidget.currentWidget() if self.USER_TABS[tabTarget] != curTab: targetTabIdx = self.centralTabWidget.indexOf( self.USER_TABS[tabTarget]) self.centralTabWidget.tabBar().setTabIcon( targetTabIdx, QtGui.QIcon(ICONPATH + "unreadmsg.png")) settings = HComMayaUtils.readIni() if "PLAY_SOUND" in settings.keys(): if settings["PLAY_SOUND"]: s = QtGui.QSound(ICONPATH + "gnm.wav") s.play() self.USER_TABS[tabTarget].appendInputBox(sender, dataType, data)
def acceptInput(self): settings = HComMayaUtils.readIni() self.activityBar.setMaximum(0) self.activityBar.setTextVisible(False) self.activityBar.setVisible(True) self.workThread.settings = settings # Send an otl or a node if self.dataType == "otl": self.workThread.workFonc = HComMayaUtils.createOtl self.workThread.start() # Bgeo mesh elif self.dataType == "mesh": self.workThread.workFonc = HComMayaUtils.createMesh self.workThread.start() # Pictures elif self.dataType == "pic": self.workThread.workFonc = HComMayaUtils.createPic self.workThread.start() # Alembic elif self.dataType == "alembic": self.workThread.workFonc = HComMayaUtils.createAlembic self.workThread.start() self.acceptBtn.setDisabled(True) self.cancelBtn.setDisabled(True)
def connectToServer(ID=None, clientType="NONE"): ''' Try to connect to the server and launch the BG thread service ''' if not ID: ID = getpass.getuser() global server_conn global bgsrv try: server_conn = rpyc.connect( HComMayaUtils.readIni()["SERVER"].replace(" ", ""), int(str(HComMayaUtils.readIni()["PORT"]).replace(" ", "")), service=HCom_ClientService, config={"allow_pickle": True}) except Exception as e: print("ERROR: Can not connect to server: " + str(e)) return False, False else: if ID in server_conn.root.getAllClients().keys(): ask = QtGui.QMessageBox() ask.setText("User ID already registered on the server") ask.setIcon(QtGui.QMessageBox.Critical) ask.exec_() server_conn.close() return False MayaGlobals.HCOMCLIENT = [server_conn, ID] global server_id server_id = ID bgsrv = rpyc.BgServingThread(server_conn) result = server_conn.root.registerClient(ID, clientType) if result: return ID else: return False
def _exportAlembic(): if not "AbcExport" in cmds.pluginInfo(query=True, listPlugins=True): ask = QtGui.QMessageBox() ask.setText("Error: Alembic export plugin not loaded (AbcExport) !") ask.setIcon(QtGui.QMessageBox.Warning) ask.exec_() return False selection = cmds.ls(sl=True) if not selection: ask = QtGui.QMessageBox() ask.setText("Error: Nothing selected !") ask.setIcon(QtGui.QMessageBox.Warning) ask.exec_() return False name = str(selection[0]).replace("|", "_") + ".abc" abcFile = HComMayaUtils.fetchMyReceivedFilesFolder() + os.sep + name abcFile = HComMayaUtils.incrementFile(abcFile) start = cmds.playbackOptions(query=True, minTime=True) end = cmds.playbackOptions(query=True, maxTime=True) frameRangeUi = HComMayaWidgets.FrameRangeSelection(start=start, end=end) frameRangeUi.exec_() if not frameRangeUi.VALID: return False else: frames = frameRangeUi.frameRange cmd = "-fr {0} {1} -f {2}".format(frames[0], frames[1], abcFile) cmds.AbcExport(sl=True, j=cmd) if os.path.exists(abcFile): return name, abcFile, frames return False
def _exportAlembic(): if not "AbcExport" in cmds.pluginInfo( query=True, listPlugins=True ): ask = QtGui.QMessageBox() ask.setText("Error: Alembic export plugin not loaded (AbcExport) !") ask.setIcon(QtGui.QMessageBox.Warning) ask.exec_() return False selection = cmds.ls(sl=True) if not selection: ask = QtGui.QMessageBox() ask.setText("Error: Nothing selected !") ask.setIcon(QtGui.QMessageBox.Warning) ask.exec_() return False name = str(selection[0]).replace("|", "_") + ".abc" abcFile = HComMayaUtils.fetchMyReceivedFilesFolder() + os.sep + name abcFile = HComMayaUtils.incrementFile(abcFile) start = cmds.playbackOptions(query=True, minTime=True) end = cmds.playbackOptions(query=True, maxTime=True) frameRangeUi = HComMayaWidgets.FrameRangeSelection(start=start, end=end) frameRangeUi.exec_() if not frameRangeUi.VALID: return False else: frames = frameRangeUi.frameRange cmd = "-fr {0} {1} -f {2}".format(frames[0], frames[1], abcFile) cmds.AbcExport(sl=True, j=cmd) if os.path.exists(abcFile): return name, abcFile, frames return False
def _exportObj(): selection = cmds.ls(sl=True) if not selection: ask = QtGui.QMessageBox() ask.setText("Error: Nothing selected !") ask.setIcon(QtGui.QMessageBox.Warning) ask.exec_() return False, False meshName = str(selection[0]).replace("|", "_") objtmp = HComMayaUtils.fetchMyReceivedFilesFolder() + os.sep + meshName + "_tmp.obj" objtmp = HComMayaUtils.incrementFile(objtmp) try: cmds.file(objtmp, force=True, type="OBJexport", es=True, shader=False, ) except Exception as e: print("ERROR: " + str(e)) return False, False return meshName, objtmp
def appendMessage(self, header, message, fromMyself=False): if header: now = datetime.datetime.now() timeStamp = "{1}:{2} {0}:".format(header, str(now.hour).zfill(2), str(now.minute).zfill(2)) if fromMyself: timeStamp = HComMayaUtils.coloredString(timeStamp, "70738c", italic=True) else: timeStamp = "" msbBox = MessageBox(timeStamp, message, fromMyself) self.messageOutLayout.addWidget(msbBox) self.messageOutLayout.update() self.messageScrollArea.ensureWidgetVisible(self.messageOutLayout.widget())
def appendMessage(self, header, message, fromMyself=False): if header: now = datetime.datetime.now() timeStamp = "{1}:{2} {0}:".format(header, str(now.hour).zfill(2), str(now.minute).zfill(2)) if fromMyself: timeStamp = HComMayaUtils.coloredString(timeStamp, "70738c", italic=True) else: timeStamp = "" msbBox = MessageBox(timeStamp, message, fromMyself) self.messageOutLayout.addWidget(msbBox) self.messageOutLayout.update() self.messageScrollArea.ensureWidgetVisible( self.messageOutLayout.widget())
def connectToServer(ID=None, clientType="NONE"): ''' Try to connect to the server and launch the BG thread service ''' if not ID: ID = getpass.getuser() global server_conn global bgsrv try: server_conn = rpyc.connect(HComMayaUtils.readIni()["SERVER"].replace(" ",""), int(str(HComMayaUtils.readIni()["PORT"]).replace(" ","")), service=HCom_ClientService, config={"allow_pickle":True}) except Exception as e: print("ERROR: Can not connect to server: " + str(e)) return False, False else: if ID in server_conn.root.getAllClients().keys(): ask = QtGui.QMessageBox() ask.setText("User ID already registered on the server") ask.setIcon(QtGui.QMessageBox.Critical) ask.exec_() server_conn.close() return False MayaGlobals.HCOMCLIENT = [server_conn, ID] global server_id server_id = ID bgsrv = rpyc.BgServingThread(server_conn) result = server_conn.root.registerClient(ID, clientType) if result: return ID else: return False
def _appendMessageToTab(self, data): tabTarget = data["TAB_TARGET"] sender = data["SENDER"] message = data["MESSAGE"] if not tabTarget in self.USER_TABS.keys(): return False curTab = self.centralTabWidget.currentWidget() if self.USER_TABS[tabTarget] != curTab: targetTabIdx = self.centralTabWidget.indexOf(self.USER_TABS[tabTarget]) self.centralTabWidget.tabBar().setTabIcon(targetTabIdx, QtGui.QIcon(ICONPATH + "unreadmsg.png")) settings = HComMayaUtils.readIni() if "PLAY_SOUND" in settings.keys(): if settings["PLAY_SOUND"]: s = QtGui.QSound(ICONPATH + "gnm.wav") s.play() self.USER_TABS[tabTarget].appendMessage(sender, message) MayaGlobals.HCOM_TABS = self.USER_TABS
def _rdnname(self): if str(self.ID_line.text()) == "2501": self.ID_line.setText(HComMayaUtils.rdnname())
def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent=parent) initValues = HComMayaUtils.readIni() self.SETTINGS = initValues self.setWindowTitle("HCom Settings") self.setWindowIcon(QtGui.QIcon(ICONPATH + "\\settings.png")) settingsLayout = QtGui.QVBoxLayout() settingsLayout.setSpacing(10) settingsLayout.addWidget(QtGui.QLabel("HCom version: {0}".format(HCOM_VERSION))) serverAdresslayout = QtGui.QHBoxLayout() serverAdresslayout.setSpacing(10) serverAdresslayout.addWidget(QtGui.QLabel("Server Adress:")) self.serverAdress = QtGui.QLineEdit(str(initValues["SERVER"])) serverAdresslayout.addWidget(self.serverAdress) settingsLayout.addItem(serverAdresslayout) serverPortlayout = QtGui.QHBoxLayout() serverPortlayout.setSpacing(10) serverPortlayout.addWidget(QtGui.QLabel("Server Port:")) self.serverPort = QtGui.QLineEdit(str(initValues["PORT"])) serverPortlayout.addWidget(self.serverPort) settingsLayout.addItem(serverPortlayout) myReceivedFilesLayout = QtGui.QHBoxLayout() myReceivedFilesLayout.setSpacing(10) self.myReceivedFilesLbl = QtGui.QLabel("My Received Files Folder:") myReceivedFilesLayout.addWidget(self.myReceivedFilesLbl) self.myReceivedFileLine = QtGui.QLineEdit("") if initValues["MY_RECEIVED_FILES"] == "DEFAULT": self.myReceivedFileLine.setText(str(os.path.dirname(__file__)) + "\\HCom_Received_Files") else: self.myReceivedFileLine.setText(str(initValues["MY_RECEIVED_FILES"])) myReceivedFilesLayout.addWidget(self.myReceivedFileLine) self.myReceivedFileBtn = QtGui.QPushButton("Pick") self.myReceivedFileBtn.clicked.connect(self.pickMyReceivedFilesFolder) myReceivedFilesLayout.addWidget(self.myReceivedFileBtn) settingsLayout.addItem(myReceivedFilesLayout) self.saveHistory = QtGui.QCheckBox("Save Conversation history") self.saveHistory.setChecked(bool(initValues["SAVE_HISTORY"])) settingsLayout.addWidget(self.saveHistory) self.playSounds = QtGui.QCheckBox("Play Sounds") self.playSounds.setChecked(bool(initValues["PLAY_SOUND"])) settingsLayout.addWidget(self.playSounds) self.returnToDefaultBtn = QtGui.QPushButton("Revert to Default") self.returnToDefaultBtn.clicked.connect(self.returnToDefault) settingsLayout.addWidget(self.returnToDefaultBtn) buttonsLayout = QtGui.QHBoxLayout() buttonsLayout.setSpacing(10) self.validBtn = QtGui.QPushButton("Valid") self.validBtn.clicked.connect(self.validSettings) buttonsLayout.addWidget(self.validBtn) self.cancelBtn = QtGui.QPushButton("Cancel") self.cancelBtn.clicked.connect(self.cancelSettings) buttonsLayout.addWidget(self.cancelBtn) settingsLayout.addItem(buttonsLayout) settingsLayout.setAlignment(QtCore.Qt.AlignTop) self.setLayout(settingsLayout)
def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent=parent) initValues = HComMayaUtils.readIni() self.SETTINGS = initValues self.setWindowTitle("HCom Settings") self.setWindowIcon(QtGui.QIcon(ICONPATH + "\\settings.png")) settingsLayout = QtGui.QVBoxLayout() settingsLayout.setSpacing(10) settingsLayout.addWidget( QtGui.QLabel("HCom version: {0}".format(HCOM_VERSION))) serverAdresslayout = QtGui.QHBoxLayout() serverAdresslayout.setSpacing(10) serverAdresslayout.addWidget(QtGui.QLabel("Server Adress:")) self.serverAdress = QtGui.QLineEdit(str(initValues["SERVER"])) serverAdresslayout.addWidget(self.serverAdress) settingsLayout.addItem(serverAdresslayout) serverPortlayout = QtGui.QHBoxLayout() serverPortlayout.setSpacing(10) serverPortlayout.addWidget(QtGui.QLabel("Server Port:")) self.serverPort = QtGui.QLineEdit(str(initValues["PORT"])) serverPortlayout.addWidget(self.serverPort) settingsLayout.addItem(serverPortlayout) myReceivedFilesLayout = QtGui.QHBoxLayout() myReceivedFilesLayout.setSpacing(10) self.myReceivedFilesLbl = QtGui.QLabel("My Received Files Folder:") myReceivedFilesLayout.addWidget(self.myReceivedFilesLbl) self.myReceivedFileLine = QtGui.QLineEdit("") if initValues["MY_RECEIVED_FILES"] == "DEFAULT": self.myReceivedFileLine.setText( str(os.path.dirname(__file__)) + "\\HCom_Received_Files") else: self.myReceivedFileLine.setText( str(initValues["MY_RECEIVED_FILES"])) myReceivedFilesLayout.addWidget(self.myReceivedFileLine) self.myReceivedFileBtn = QtGui.QPushButton("Pick") self.myReceivedFileBtn.clicked.connect(self.pickMyReceivedFilesFolder) myReceivedFilesLayout.addWidget(self.myReceivedFileBtn) settingsLayout.addItem(myReceivedFilesLayout) self.saveHistory = QtGui.QCheckBox("Save Conversation history") self.saveHistory.setChecked(bool(initValues["SAVE_HISTORY"])) settingsLayout.addWidget(self.saveHistory) self.playSounds = QtGui.QCheckBox("Play Sounds") self.playSounds.setChecked(bool(initValues["PLAY_SOUND"])) settingsLayout.addWidget(self.playSounds) self.returnToDefaultBtn = QtGui.QPushButton("Revert to Default") self.returnToDefaultBtn.clicked.connect(self.returnToDefault) settingsLayout.addWidget(self.returnToDefaultBtn) buttonsLayout = QtGui.QHBoxLayout() buttonsLayout.setSpacing(10) self.validBtn = QtGui.QPushButton("Valid") self.validBtn.clicked.connect(self.validSettings) buttonsLayout.addWidget(self.validBtn) self.cancelBtn = QtGui.QPushButton("Cancel") self.cancelBtn.clicked.connect(self.cancelSettings) buttonsLayout.addWidget(self.cancelBtn) settingsLayout.addItem(buttonsLayout) settingsLayout.setAlignment(QtCore.Qt.AlignTop) self.setLayout(settingsLayout)
def receiveData(sender, data, dataType, tabTarget, senderType=[None, None]): settings = HComMayaUtils.readIni() # Send a text message if dataType == "msg": if tabTarget == "" or tabTarget == "OPEN_CHAT_ROOM": MayaGlobals.MAIN_UI.updateUiThread.messageData = { "TAB_TARGET": "OPEN_CHAT_ROOM", "SENDER": sender, "MESSAGE": "{0}\n".format(data) } else: sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.messageData = { "TAB_TARGET": str(tabTarget), "SENDER": sender, "MESSAGE": "{0}\n".format(data) } if settings["SAVE_HISTORY"]: now = datetime.datetime.now() timeStamp = "{1}:{2} {0}:".format(sender, str(now.hour).zfill(2), str(now.minute).zfill(2)) HComMayaUtils.writeHistory(sender, timeStamp, data) # Send a setting of parms for the given node selection type elif dataType == "settings": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = { "SENDER": sender, "DATA_TYPE": dataType, "DATA": data, "TAB_TARGET": tabTarget, "SENDER_TYPE": senderType } # Send an otl or a node elif dataType == "otl": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = { "SENDER": sender, "DATA_TYPE": dataType, "DATA": data, "TAB_TARGET": tabTarget, "SENDER_TYPE": senderType } # Bgeo mesh elif dataType == "mesh": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = { "SENDER": sender, "DATA_TYPE": dataType, "DATA": data, "TAB_TARGET": tabTarget, "SENDER_TYPE": senderType } # Pictures elif dataType == "pic": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = { "SENDER": sender, "DATA_TYPE": dataType, "DATA": data, "TAB_TARGET": tabTarget, "SENDER_TYPE": senderType } # Alembic elif dataType == "alembic": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = { "SENDER": sender, "DATA_TYPE": dataType, "DATA": data, "TAB_TARGET": tabTarget, "SENDER_TYPE": senderType } # Data received elif dataType == "dataReceivedUpdate": now = datetime.datetime.now() minute = str(now.minute).zfill(2) hour = str(now.hour).zfill(2) timestamp = "{0}:{1}: ".format(hour, minute) if data[0]: statue = "accepted." else: statue = "declined." msg = "" if data[1] == "otl": msg = timestamp + "Houdini node " + statue elif data[1] == "settings": msg = timestamp + "Node Settings " + statue elif data[1] == "mesh": msg = timestamp + "Mesh " + statue elif data[1] == "pic": msg = timestamp + "Image File " + statue MayaGlobals.MAIN_UI.updateUiThread.dataReceivedUpdate = { "SENDER": "", "MESSAGE": msg, "TAB_TARGET": tabTarget, "SENDER_TYPE": senderType }
def receiveData(sender, data, dataType, tabTarget, senderType=[None, None]): settings = HComMayaUtils.readIni() # Send a text message if dataType == "msg": if tabTarget == "" or tabTarget == "OPEN_CHAT_ROOM": MayaGlobals.MAIN_UI.updateUiThread.messageData = {"TAB_TARGET":"OPEN_CHAT_ROOM", "SENDER":sender, "MESSAGE":"{0}\n".format(data)} else: sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.messageData = {"TAB_TARGET":str(tabTarget), "SENDER":sender, "MESSAGE":"{0}\n".format(data)} if settings["SAVE_HISTORY"]: now = datetime.datetime.now() timeStamp = "{1}:{2} {0}:".format(sender, str(now.hour).zfill(2), str(now.minute).zfill(2)) HComMayaUtils.writeHistory(sender, timeStamp, data) # Send a setting of parms for the given node selection type elif dataType == "settings": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = {"SENDER":sender, "DATA_TYPE":dataType, "DATA":data, "TAB_TARGET":tabTarget, "SENDER_TYPE":senderType} # Send an otl or a node elif dataType == "otl": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = {"SENDER":sender, "DATA_TYPE":dataType, "DATA":data, "TAB_TARGET":tabTarget, "SENDER_TYPE":senderType} # Bgeo mesh elif dataType == "mesh": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = {"SENDER":sender, "DATA_TYPE":dataType, "DATA":data, "TAB_TARGET":tabTarget, "SENDER_TYPE":senderType} # Pictures elif dataType == "pic": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = {"SENDER":sender, "DATA_TYPE":dataType, "DATA":data, "TAB_TARGET":tabTarget, "SENDER_TYPE":senderType} # Alembic elif dataType == "alembic": sendAddTabToThread(tabTarget, senderType) MayaGlobals.MAIN_UI.updateUiThread.inputData = {"SENDER":sender, "DATA_TYPE":dataType, "DATA":data, "TAB_TARGET":tabTarget, "SENDER_TYPE":senderType} # Data received elif dataType == "dataReceivedUpdate": now = datetime.datetime.now() minute = str(now.minute).zfill(2) hour = str(now.hour).zfill(2) timestamp = "{0}:{1}: ".format(hour, minute) if data[0]: statue = "accepted." else: statue = "declined." msg = "" if data[1] == "otl": msg = timestamp + "Houdini node " + statue elif data[1] == "settings": msg = timestamp + "Node Settings " + statue elif data[1] == "mesh": msg = timestamp + "Mesh " + statue elif data[1] == "pic": msg = timestamp + "Image File " + statue MayaGlobals.MAIN_UI.updateUiThread.dataReceivedUpdate = {"SENDER":"", "MESSAGE":msg, "TAB_TARGET":tabTarget, "SENDER_TYPE":senderType}