diff options
| author | MobileMachine\jeremy <[email protected]> | 2017-06-06 22:59:03 -0400 |
|---|---|---|
| committer | MobileMachine\jeremy <[email protected]> | 2017-06-06 22:59:03 -0400 |
| commit | 24725fa8681f906ab44d80687c09fecc171a2896 (patch) | |
| tree | 312a601df29aca7f8db9f44082d96ebc7a679138 /Core/Scripts/System/interfaceUtils.py | |
| parent | Initial commit (diff) | |
| download | artv2-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.py | 645 |
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) |