aboutsummaryrefslogtreecommitdiff
path: root/Core/Scripts/System/interfaceUtils.py
diff options
context:
space:
mode:
authorMobileMachine\jeremy <[email protected]>2017-06-06 22:59:03 -0400
committerMobileMachine\jeremy <[email protected]>2017-06-06 22:59:03 -0400
commit24725fa8681f906ab44d80687c09fecc171a2896 (patch)
tree312a601df29aca7f8db9f44082d96ebc7a679138 /Core/Scripts/System/interfaceUtils.py
parentInitial commit (diff)
downloadartv2-24725fa8681f906ab44d80687c09fecc171a2896.tar.xz
artv2-24725fa8681f906ab44d80687c09fecc171a2896.zip
Initial Submission
First submission of current state of ARTv2. Currently considered to be in Alpha. There are a couple of animation tools not implemented yet, and one module not implemented yet, as well as incomplete documentation.
Diffstat (limited to 'Core/Scripts/System/interfaceUtils.py')
-rw-r--r--Core/Scripts/System/interfaceUtils.py645
1 files changed, 645 insertions, 0 deletions
diff --git a/Core/Scripts/System/interfaceUtils.py b/Core/Scripts/System/interfaceUtils.py
new file mode 100644
index 0000000..575a86b
--- /dev/null
+++ b/Core/Scripts/System/interfaceUtils.py
@@ -0,0 +1,645 @@
+# standard imports
+import os
+from stat import S_IWUSR, S_IREAD
+
+import maya.cmds as cmds
+
+import utils
+from ThirdParty.Qt import QtGui, QtCore, QtWidgets
+
+# maya 2016< maya2017> compatability
+try:
+ import shiboken as shiboken
+except:
+ import shiboken2 as shiboken
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+def getMainWindow():
+ import maya.OpenMayaUI as mui
+ pointer = mui.MQtUtil.mainWindow()
+ # pyside QMainWindow takes in a QWidget rather than QObject
+ return shiboken.wrapInstance(long(pointer), QtWidgets.QWidget)
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+def writeQSS(filePath):
+ # this function takes the qss file given, and finds and replaces any image path URLs using the user's settings for
+ # the icons path and changes the file on disk
+ settings = QtCore.QSettings("Epic Games", "ARTv2")
+ scriptsPath = settings.value("scriptPath")
+ scriptsPath = utils.returnFriendlyPath(scriptsPath)
+ iconPath = settings.value("iconPath")
+ iconPath = utils.returnFriendlyPath(iconPath)
+
+ f = open(filePath, "r")
+ lines = f.readlines()
+ f.close()
+
+ newLines = []
+ for line in lines:
+ if line.find("url(") != -1:
+ oldPath = line.partition("(")[2].rpartition("/")[0]
+ replacePath = utils.returnNicePath(iconPath, "System")
+
+ newLine = line.replace(oldPath, replacePath)
+ newLines.append(newLine)
+ else:
+ newLines.append(line)
+
+ os.chmod(filePath, S_IWUSR | S_IREAD)
+ f = open(filePath, "w")
+ for line in newLines:
+ f.write(line)
+ f.close()
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+def addTextToButton(text, parent, centered=True, top=False, bottom=False):
+ text = QtWidgets.QGraphicsSimpleTextItem(text, parent)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setPointSize(12)
+
+ text.setFont(font)
+ textPos = parent.boundingRect().center()
+ textRect = text.boundingRect()
+ parentRect = parent.boundingRect()
+
+ if centered:
+ text.setPos(textPos.x() - textRect.width() / 2, textPos.y() - textRect.height() / 2)
+
+ if top:
+ text.setPos(textPos.x() - textRect.width() / 2, textPos.y() - (parentRect.height() / 2 + textRect.height()))
+
+ if bottom:
+ text.setPos(textPos.x() - textRect.width() / 2, textPos.y() + (parentRect.height() / 2))
+
+ return text
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+class progressDialog(object):
+ '''
+ range is a tuple (min,max)
+ example:
+ myBar = progressDialog((0,100000), label="Exporting weights")
+ for i in range(0,100000):
+ myBar.setValue(i)
+ '''
+
+ def __init__(self, range, label='Doin Stuff..', freq=10):
+ self.rangeMin, self.rangeMax, self.freq = range[0], range[1], freq
+ self.bar = QtWidgets.QProgressDialog(label, None, self.rangeMin, self.rangeMax)
+ self.bar.setWindowModality(QtCore.Qt.WindowModal)
+ self.bar.autoClose()
+
+ def setValue(self, val):
+ self.bar.show()
+ QtWidgets.QApplication.processEvents()
+ if val % self.freq == 0 or (val + 1) == self.rangeMax:
+ self.bar.setValue(val + 1)
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+class ProgressBar(QtWidgets.QProgressBar):
+ def __init__(self, title, parent=None):
+ super(ProgressBar, self).__init__()
+
+ settings = QtCore.QSettings("Epic Games", "ARTv2")
+ self.toolsPath = settings.value("toolsPath")
+
+ # load stylesheet
+ styleSheetFile = utils.returnNicePath(self.toolsPath, "Core/Scripts/Interfaces/StyleSheets/mainScheme.qss")
+ f = open(styleSheetFile, "r")
+ self.style = f.read()
+ f.close()
+
+ self.setStyleSheet(self.style)
+ self.setWindowTitle(title)
+ self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.WindowTitleHint | QtCore.Qt.CustomizeWindowHint)
+
+ self.setMinimumSize(QtCore.QSize(400, 40))
+ self.setMaximumSize(QtCore.QSize(400, 40))
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+class commentBoxItem(QtWidgets.QGraphicsRectItem):
+ def __init__(self, x, y, w, h, scene, view, animUI):
+
+ super(commentBoxItem, self).__init__(x, y, w, h)
+
+ self.brush = QtGui.QBrush(QtGui.QColor(60, 60, 60, 125))
+ self.brushColor = self.brush.color()
+ self.width = w
+ self.height = h
+ self.x = x
+ self.y = y
+ self.scale = 1
+ self.menu = QtWidgets.QMenu()
+ self.scene = scene
+ self.view = view
+ self.animUI = animUI
+
+ self.setFlag(QtWidgets.QGraphicsItem.ItemSendsGeometryChanges)
+
+ # add items to context menu
+ self.menu.addAction("Change Color", self.changeBoxColor)
+ self.menu.addAction("Rename", self.changeLabelText)
+ self.menu.addAction("Remove Comment Box", self.deleteCommentBox)
+
+ # add text
+ self.textLabel = QtWidgets.QGraphicsTextItem("Comment Box", self, scene)
+ self.textLabel.setPos(x, y - 20)
+ self.textLabel.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
+ # self.textLabel.setTextInteractionFlags(QtCore.Qt.TextEditable)
+
+ self.classType = "comment"
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def boundingRect(self):
+ rect = QtCore.QRectF(self.x, self.y, self.width, self.height)
+ return rect
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def paint(self, painter, option, widget):
+ rec = self.boundingRect()
+
+ self.blackPen = QtGui.QPen(QtCore.Qt.black)
+ self.blackPen.setWidth(0)
+ painter.setPen(self.blackPen)
+ painter.fillRect(rec, self.brush)
+ painter.drawRect(rec)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def contextMenuEvent(self, event):
+ self.menu.exec_(event.screenPos())
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def changeBoxColor(self):
+
+ # launch a color dialog to get a new color
+ newColor = QtGui.QColorDialog.getColor()
+ newColor.setAlpha(100)
+ self.brush.setColor(newColor)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def changeLabelText(self):
+
+ text = QtWidgets.QInputDialog.getText(self.scene.parent(), "Comment Box", "Enter Label Text:")
+ if text:
+ self.textLabel.setPlainText(text[0])
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def deleteCommentBox(self):
+
+ self.scene.removeItem(self)
+ self.animUI.rubberband.hide()
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+class pickerBorderItem(QtWidgets.QGraphicsRectItem):
+ def __init__(self, x, y, w, h, brush, moduleName, niceName=None):
+
+ super(pickerBorderItem, self).__init__(x, y, w, h)
+
+ self.brush = brush
+ self.brushColor = brush.color()
+ self.width = w
+ self.height = h
+ self.x = x
+ self.y = y
+ self.scale = 1
+
+ self.mouseDown = False
+
+ self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)
+ self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable)
+ self.setFlag(QtWidgets.QGraphicsItem.ItemIsFocusable)
+ self.setFlag(QtWidgets.QGraphicsItem.ItemSendsGeometryChanges)
+
+ self.setData(QtCore.Qt.UserRole, moduleName)
+ self.setData(2, niceName)
+ self.classType = "border"
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def boundingRect(self):
+ rect = QtCore.QRectF(self.x, self.y, self.width, self.height)
+ return rect
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def paint(self, painter, option, widget):
+ rec = self.boundingRect()
+
+ blackPen = QtGui.QPen(QtCore.Qt.transparent)
+ blackPen.setWidth(0)
+ blackPen.setStyle(QtCore.Qt.DotLine)
+ painter.setPen(blackPen)
+
+ flags = self.flags()
+ if flags & QtWidgets.QGraphicsItem.ItemIsMovable:
+ blackPen = QtGui.QPen(QtCore.Qt.black)
+ blackPen.setWidth(0)
+ blackPen.setStyle(QtCore.Qt.DotLine)
+ painter.setPen(blackPen)
+
+ if self.isSelected():
+ blackPen = QtGui.QPen(QtCore.Qt.white)
+ blackPen.setWidth(0)
+ blackPen.setStyle(QtCore.Qt.DotLine)
+ painter.setPen(blackPen)
+
+ painter.fillRect(rec, self.brush)
+ painter.drawRect(rec)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def wheelEvent(self, event):
+
+ # only if the focusable flag is set to true, do we continue
+ flags = self.flags()
+ if flags & QtWidgets.QGraphicsItem.ItemIsFocusable:
+
+ self.scale = self.data(1)
+ if self.scale is None:
+ self.scale = 1
+ scale = float(event.delta() / 8.0)
+ self.scale = float((scale / 15.0) / 10) + self.scale
+ self.setData(1, self.scale)
+
+ self.setTransformOriginPoint(self.boundingRect().center())
+ self.setScale(self.scale)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def keyPressEvent(self, event):
+
+ self.setTransformOriginPoint(self.boundingRect().center())
+
+ if event.key() == QtCore.Qt.Key_Left:
+ self.setRotation(self.rotation() - 10)
+
+ if event.key() == QtCore.Qt.Key_Right:
+ self.setRotation(self.rotation() + 10)
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+class pickerButton(QtWidgets.QGraphicsItem):
+ def __init__(self, width, height, relativePos, controlObj, brush, parent=None):
+
+ super(pickerButton, self).__init__(parent)
+
+ self.parentItem().setZValue(1)
+ self.setZValue(2)
+
+ self.brush = QtGui.QBrush(brush)
+ self.brushColor = brush
+
+ self.width = width
+ self.height = height
+ self.relativePos = relativePos
+ self.object = controlObj
+
+ self.setPos(self.parentItem().boundingRect().topLeft())
+ self.setPos(self.pos().x() + self.relativePos[0], self.pos().y() + self.relativePos[1])
+ self.menu = QtWidgets.QMenu()
+
+ self.classType = "pickerButton"
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def boundingRect(self):
+ rect = QtCore.QRectF(0, 0, self.width, self.height)
+ return rect
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def paint(self, painter, option, widget):
+ rec = self.boundingRect()
+ painter.fillRect(rec, self.brush)
+ painter.drawRect(rec)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def mousePressEvent(self, event):
+
+ mods = cmds.getModifiers()
+ if (mods & 1) > 0:
+ cmds.select(self.object, tgl=True)
+ if (mods & 1) == 0:
+ cmds.select(self.object)
+
+ if self.object in cmds.ls(sl=True):
+
+ self.brush.setColor(QtCore.Qt.white)
+
+ else:
+ self.brush.setColor(self.brushColor)
+
+ self.update()
+ QtWidgets.QGraphicsItem.mousePressEvent(self, event)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def mousePressEventCustom(self, event):
+
+ cmds.select(self.object, tgl=True)
+ self.brush.setColor(self.brushColor)
+ self.update()
+ QtWidgets.QGraphicsItem.mousePressEvent(self, event)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def mouseMoveEvent(self, event):
+ print "mouse move event"
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def dragMoveEvent(self, event):
+ print "drag move event"
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def hoverMoveEvent(self, event):
+ print "hover move event"
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def contextMenuEvent(self, event):
+ self.menu.exec_(event.screenPos())
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+class pickerButtonCustom(QtWidgets.QGraphicsPolygonItem):
+ def __init__(self, width, height, pointArray, relativePos, controlObj, brush, parent=None):
+
+ super(pickerButtonCustom, self).__init__(parent)
+
+ self.parentItem().setZValue(1)
+ self.setZValue(2)
+
+ self.brush = QtGui.QBrush(brush)
+ self.brushColor = brush
+ self.pointArray = pointArray
+ self.poly = self.createPolygon()
+ self.setPolygon(self.poly)
+
+ # position item
+ self.relativePos = relativePos
+ self.object = controlObj
+ self.setPos(self.parentItem().boundingRect().topLeft())
+ self.setPos(self.pos().x() + self.relativePos[0], self.pos().y() + self.relativePos[1])
+
+ # create menu
+ self.menu = QtWidgets.QMenu()
+ self.classType = "pickerButton"
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def createPolygon(self):
+ polygon = QtGui.QPolygonF()
+ for each in self.pointArray:
+ polygon.append(QtCore.QPointF(each[0], each[1]))
+ return polygon
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def paint(self, painter, option, widget):
+ painter.setBrush(self.brush)
+ painter.drawPolygon(self.polygon())
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def mousePressEvent(self, event):
+
+ mods = cmds.getModifiers()
+ if (mods & 1) > 0:
+ cmds.select(self.object, tgl=True)
+ if (mods & 1) == 0:
+ cmds.select(self.object)
+
+ if self.object in cmds.ls(sl=True):
+
+ self.brush.setColor(QtCore.Qt.white)
+
+ else:
+ self.brush.setColor(self.brushColor)
+
+ self.update()
+ QtWidgets.QGraphicsPolygonItem.mousePressEvent(self, event)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def mousePressEventCustom(self, event):
+
+ cmds.select(self.object, tgl=True)
+ self.brush.setColor(self.brushColor)
+ self.update()
+ QtWidgets.QGraphicsItem.mousePressEvent(self, event)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def contextMenuEvent(self, event):
+ self.menu.exec_(event.screenPos())
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+class pickerButtonAll(QtWidgets.QGraphicsItem):
+ def __init__(self, width, height, relativePos, controlObjects, brush, parent=None):
+
+ super(pickerButtonAll, self).__init__(parent)
+
+ self.parentItem().setZValue(1)
+ self.setZValue(2)
+
+ self.brush = QtGui.QBrush(brush)
+ self.brushColor = brush
+
+ self.width = width
+ self.height = height
+ self.relativePos = relativePos
+ self.objects = controlObjects
+
+ self.setPos(self.parentItem().boundingRect().topLeft())
+ self.setPos(self.pos().x() + self.relativePos[0], self.pos().y() + self.relativePos[1])
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def boundingRect(self):
+ rect = QtCore.QRectF(0, 0, self.width, self.height)
+ return rect
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def paint(self, painter, option, widget):
+ rec = self.boundingRect()
+ painter.fillRect(rec, self.brush)
+ painter.drawRect(rec)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def mousePressEvent(self, event):
+
+ mods = cmds.getModifiers()
+ if (mods & 1) > 0:
+ for obj in self.objects:
+ cmds.select(obj, add=True)
+
+ if (mods & 1) == 0:
+ cmds.select(clear=True)
+ for obj in self.objects:
+ cmds.select(obj, tgl=True)
+
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+class DialogMessage(QtWidgets.QMainWindow):
+ def __init__(self, title, message, elementList, elementSize, parent=None):
+ super(DialogMessage, self).__init__(parent)
+
+ # get the directory path of the
+ settings = QtCore.QSettings("Epic Games", "ARTv2")
+ self.toolsPath = settings.value("toolsPath")
+ self.iconsPath = settings.value("iconPath")
+
+ # load stylesheet
+ styleSheetFile = utils.returnNicePath(self.toolsPath, "Core/Scripts/Interfaces/StyleSheets/mainScheme.qss")
+ f = open(styleSheetFile, "r")
+ style = f.read()
+ f.close()
+
+ self.setStyleSheet(style)
+
+ # size policies
+ mainSizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
+
+ # create the main widget
+ self.mainWidget = QtWidgets.QWidget()
+ self.setCentralWidget(self.mainWidget)
+
+ # set qt object name
+ self.setObjectName("pyART_customDialogMessageWin")
+ self.setWindowTitle(title)
+
+ # create the mainLayout for the rig creator UI
+ self.mainLayout = QtWidgets.QVBoxLayout(self.mainWidget)
+ self.mainLayout.setContentsMargins(0, 0, 0, 0)
+
+ self.resize(300, 200)
+ self.setSizePolicy(mainSizePolicy)
+ self.setMinimumSize(QtCore.QSize(300, 200))
+ self.setMaximumSize(QtCore.QSize(300, 200))
+
+ # create the background image
+ self.frame = QtWidgets.QFrame()
+ self.mainLayout.addWidget(self.frame)
+
+ # create the layout for the widgets
+ self.widgetLayout = QtWidgets.QVBoxLayout(self.frame)
+
+ # add the message to the layout
+ self.messageArea = QtWidgets.QTextEdit()
+ self.messageArea.setReadOnly(True)
+ self.widgetLayout.addWidget(self.messageArea)
+
+ self.messageArea.setTextColor(QtGui.QColor(236, 217, 0))
+ self.messageArea.append(message + "\n\n")
+
+ string = ""
+ for each in elementList:
+ for i in range(elementSize):
+ string += each[i] + " "
+
+ self.messageArea.setTextColor(QtGui.QColor(255, 255, 255))
+ self.messageArea.append(string)
+
+ # add the OK button
+ self.confirmButton = QtWidgets.QPushButton("OK")
+ self.confirmButton.setObjectName("blueButton")
+ self.widgetLayout.addWidget(self.confirmButton)
+ self.confirmButton.clicked.connect(self.closeWindow)
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ def closeWindow(self):
+
+ cmds.deleteUI("pyART_customDialogMessageWin", wnd=True)