58 lines
1.3 KiB
Python
58 lines
1.3 KiB
Python
from maya import OpenMaya as om
|
|
|
|
from ngSkinTools2.api.pyside import QtCore, QtWidgets
|
|
|
|
openDialogs = []
|
|
messagesCallbacks = []
|
|
|
|
# main window will set itself here
|
|
promptsParent = None
|
|
|
|
|
|
def __baseMessageBox(message):
|
|
msg = QtWidgets.QMessageBox(promptsParent)
|
|
msg.setWindowTitle("ngSkinTools2")
|
|
msg.setText(message)
|
|
|
|
for i in messagesCallbacks:
|
|
i(message)
|
|
|
|
openDialogs.append(msg)
|
|
return msg
|
|
|
|
|
|
def displayError(message):
|
|
"""
|
|
displays error in script editor and in a dialog box
|
|
"""
|
|
|
|
message = str(message)
|
|
om.MGlobal.displayError('[ngSkinTools2] ' + message)
|
|
|
|
msg = __baseMessageBox(message)
|
|
msg.setIcon(QtWidgets.QMessageBox.Critical)
|
|
msg.exec_()
|
|
|
|
|
|
def info(message):
|
|
msg = __baseMessageBox(message)
|
|
msg.setIcon(QtWidgets.QMessageBox.Information)
|
|
msg.exec_()
|
|
|
|
|
|
def yesNo(message):
|
|
msg = __baseMessageBox(message)
|
|
msg.setIcon(QtWidgets.QMessageBox.Question)
|
|
msg.setStandardButtons(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
|
|
msg.setDefaultButton(QtWidgets.QMessageBox.Yes)
|
|
return msg.exec_() == QtWidgets.QMessageBox.Yes
|
|
|
|
|
|
def closeAllAfterTimeout(timeout, result=0):
|
|
def closeAll():
|
|
while openDialogs:
|
|
msg = openDialogs.pop()
|
|
msg.done(result)
|
|
|
|
QtCore.QTimer.singleShot(timeout, closeAll)
|