Example #1
0
    def __init__(self, parent=None):
        super(ShaderManager, self).__init__(parent)

        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)

        self.setupUi(self)

        self.shadersFromFile = []
        self.displaceFromFile = []

        self.curLayer = None
        # self.listTagsWidget = tagTree(self)
        # self.tagGroup.layout().addWidget(self.listTagsWidget)
        #self.tagGroup.setVisible(0)

        self.shaderToAssign = None
        self.ABCViewerNode = {}

        self.getNode()
        self.getCache()

        self.thisTagItem = None
        self.thisTreeItem = None

        self.lastClick = -1

        self.propertyEditing = False

        self.propertyEditorWindow = QtGui.QDockWidget(self)
        self.propertyEditorWindow.setAllowedAreas(
            QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
        self.propertyEditorWindow.setWindowTitle("Properties")
        self.propertyEditorWindow.setMinimumWidth(300)
        self.addDockWidget(QtCore.Qt.LeftDockWidgetArea,
                           self.propertyEditorWindow)
        self.propertyType = "polymesh"
        self.propertyEditor = PropertyEditor(self, self.propertyType,
                                             self.propertyEditorWindow)
        self.propertyEditorWindow.setWidget(self.propertyEditor)

        self.propertyEditor.propertyChanged.connect(self.propertyChanged)

        self.hierarchyWidget.setColumnWidth(0, 600)
        self.hierarchyWidget.setIconSize(QSize(22, 22))

        self.hierarchyWidget.dragEnterEvent = self.newhierarchyWidgetdragEnterEvent
        self.hierarchyWidget.dragMoveEvent = self.newhierarchyWidgetdragMoveEvent
        self.hierarchyWidget.dropEvent = self.newhierarchyWidgetDropEvent

        self.hierarchyWidget.setColumnWidth(0, 200)
        self.hierarchyWidget.setColumnWidth(1, 300)
        self.hierarchyWidget.setColumnWidth(2, 300)

        self.hierarchyWidget.setItemDelegate(treeDelegate.treeDelegate(self))

        self.updateTags()
        self.populate()

        self.curPath = ""
        self.ABCcurPath = ""

        self.hierarchyWidget.itemDoubleClicked.connect(self.itemDoubleClicked)
        self.hierarchyWidget.itemExpanded.connect(self.requireItemExpanded)
        self.hierarchyWidget.itemCollapsed.connect(self.requireItemCollapse)
        self.hierarchyWidget.itemClicked.connect(self.itemCLicked)
        self.hierarchyWidget.itemSelectionChanged.connect(
            self.itemSelectionChanged)
        self.hierarchyWidget.itemPressed.connect(self.itemPressed)
        self.hierarchyWidget.setExpandsOnDoubleClick(False)

        self.filterShaderLineEdit.textChanged.connect(self.filterShader)

        #self.shadersList.startDrag = self.newshadersListStartDrag
        self.shadersList.itemDoubleClicked.connect(self.shaderCLicked)
        self.shadersList.mouseMoveEvent = self.newshadersListmouseMoveEvent

        self.displacementList.itemPressed.connect(self.shaderCLicked)
        self.displacementList.mouseMoveEvent = self.newdisplaceListmouseMoveEvent

        self.refreshManagerBtn.pressed.connect(self.reset)

        self.refreshShaders()

        self.getLayers()
        self.setCurrentLayer()

        self.addCBs()

        self.afterNewSceneCBId = MSceneMessage.addCallback(
            MSceneMessage.kAfterNew, self.reset)
        self.afterOpenSceneCBId = MSceneMessage.addCallback(
            MSceneMessage.kAfterOpen, self.reset)

        self.disableLayerOverrides()

        self.overrideDisps.stateChanged.connect(self.overrideDispsChanged)
        self.overrideShaders.stateChanged.connect(self.overrideShadersChanged)
        self.overrideProps.stateChanged.connect(self.overridePropsChanged)

        self.isolateCheckbox.stateChanged.connect(self.isolateCheckboxChanged)

        #Widcard management
        self.wildCardButton.pressed.connect(self.addWildCard)
        self.autoAssignButton.pressed.connect(self.autoAssign)
Example #2
0
    def __init__(self, parent=None):
        """Shader Manager class"""
        super(ShaderManager, self).__init__(parent)

        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)

        # initialise the inherited ui class
        self.setupUi(self)

        # set up some vars
        self.shadersFromFile = []
        self.displaceFromFile = []

        self.curLayer = None
        self.shaderToAssign = None
        self.ABCViewerNode = {}

        self.getNode()
        self.getCache()

        self.thisTagItem = None
        self.thisTreeItem = None

        self.lastClick = -1

        self.propertyEditing = False

        # properties widget
        self.propertyEditorWindow = QtWidgets.QDockWidget(self)
        self.propertyEditorWindow.setAllowedAreas(
            QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
        self.propertyEditorWindow.setWindowTitle("Properties")
        self.propertyEditorWindow.setMinimumWidth(300)
        self.addDockWidget(QtCore.Qt.LeftDockWidgetArea,
                           self.propertyEditorWindow)
        self.propertyType = "polymesh"
        self.propertyEditor = PropertyEditor(self, self.propertyType,
                                             self.propertyEditorWindow)
        self.propertyEditorWindow.setWidget(self.propertyEditor)
        self.propertyEditor.propertyChanged.connect(self.propertyChanged)

        # shaders scroll widget
        self.shaderWindow = QtWidgets.QDockWidget(self)
        self.shaderWindow.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea
                                          | QtCore.Qt.RightDockWidgetArea)
        self.shaderWindow.setWindowTitle("Shaders")
        self.shaderWindow.setMinimumWidth(300)
        self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.shaderWindow)
        self.shaderEditor = shader_widget.ShadersDockWidget(self)
        self.shaderWindow.setWidget(self.shaderEditor)

        # hierarchy widget
        self.hierarchyWidget.setColumnWidth(0, 600)
        self.hierarchyWidget.setIconSize(QtCore.QSize(22, 22))
        self.hierarchyWidget.dragEnterEvent = self.newhierarchyWidgetdragEnterEvent
        self.hierarchyWidget.dragMoveEvent = self.newhierarchyWidgetdragMoveEvent
        self.hierarchyWidget.dropEvent = self.newhierarchyWidgetDropEvent
        self.hierarchyWidget.setColumnWidth(0, 200)
        self.hierarchyWidget.setColumnWidth(1, 300)
        self.hierarchyWidget.setColumnWidth(2, 300)
        self.hierarchyWidget.setItemDelegate(treeDelegate.treeDelegate(self))

        self.updateTags()
        self.populate()

        self.curPath = ""
        self.ABCcurPath = ""

        self.layers_pixmap = QtGui.QPixmap(
            os.path.join(d, "../../icons/layerEditor.png"))
        self.layers_btn.setIconSize(QtCore.QSize(18, 18))
        self.layers_btn.setIcon(self.layers_pixmap)

        # signals, slots and callbacks
        self.hierarchyWidget.itemDoubleClicked.connect(self.itemDoubleClicked)
        self.hierarchyWidget.itemExpanded.connect(self.requireItemExpanded)
        self.hierarchyWidget.itemCollapsed.connect(self.requireItemCollapse)
        self.hierarchyWidget.itemClicked.connect(self.itemCLicked)
        self.hierarchyWidget.itemSelectionChanged.connect(
            self.itemSelectionChanged)
        self.hierarchyWidget.itemPressed.connect(self.itemPressed)
        self.hierarchyWidget.setExpandsOnDoubleClick(False)

        self.getLayers()
        self.setCurrentLayer()

        self.addCBs()

        self.afterNewSceneCBId = MSceneMessage.addCallback(
            MSceneMessage.kAfterNew, self.reset)
        self.afterOpenSceneCBId = MSceneMessage.addCallback(
            MSceneMessage.kAfterOpen, self.reset)

        self.disableLayerOverrides()

        self.overrideShaders.stateChanged.connect(self.overrideShadersChanged)
        self.overrideDisps.stateChanged.connect(self.overrideDispsChanged)
        self.overrideProps.stateChanged.connect(self.overridePropsChanged)
        self.soloSelected.stateChanged.connect(self.soloSelectedChanged)
        self.wildCardButton.pressed.connect(self.addWildCard)
        self.updateXformsButton.pressed.connect(self.updateXforms)
        self.layers_btn.clicked.connect(self.layers_clicked)