Пример #1
0
 def __init__(self):
     QtWidgets.QDialog.__init__(self, None)
     self.setWindowTitle('Duplicate Asset Found')
     layout = QtWidgets.QVBoxLayout(self)
     self.__productLabel = QtWidgets.QLabel('', self)
     layout.addWidget(self.__productLabel)
     layout.addSpacing(32)
     layout.addStretch()
     checkboxLayout = QtWidgets.QHBoxLayout(self)
     layout.addItem(checkboxLayout)
     self.__doForAllCheckbox = QtWidgets.QCheckBox(
         'Apply Action To All Remaining Duplicates', self)
     checkboxLayout.addWidget(self.__doForAllCheckbox)
     checkboxLayout.addStretch()
     self.__skipButton = QtWidgets.QPushButton('Skip', self)
     self.__addAnywayButton = QtWidgets.QPushButton('Add Anyway', self)
     self.__cancelButton = QtWidgets.QPushButton('Cancel', self)
     buttonLayout = QtWidgets.QHBoxLayout()
     layout.addItem(buttonLayout)
     buttonLayout.addStretch()
     buttonLayout.addWidget(self.__skipButton)
     buttonLayout.addWidget(self.__addAnywayButton)
     buttonLayout.addWidget(self.__cancelButton)
     self.__cancelButton.clicked.connect(self.reject)
     self.__skipButton.clicked.connect(self.__skipButtonClicked)
     self.__addAnywayButton.clicked.connect(self.__addAnywayButtonClicked)
     self.__result = None
     return
Пример #2
0
    def __init__(self, parent, group):
        super(UsdMaterialBakeEditor, self).__init__(parent=parent)
        self.setLayout(QtWidgets.QVBoxLayout())

        self.__groupNode = group
        self.__interruptWidget = None
        self.__timer = None

        #For auto upgrade in the future
        # pylint: disable=undefined-variable
        versionValue = 1
        versionParam = group.getParameter('__networkVersion')

        if versionParam:
            versionValue = int(versionParam.getValue(0))

        self.__widgetFactory = UI4.FormMaster.ParameterWidgetFactory
        widgets = []
        self.__rootPolicy = UI4.FormMaster.CreateParameterPolicy(
            None, group.getParameters())
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('rootLocations')))
        variantsWidget = VariantsWidget(self.__groupNode, parent=self)
        widgets.append(variantsWidget)
        widgets.append(UI4.Widgets.VBoxLayoutResizer(variantsWidget))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('saveTo')))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('looksFilename')))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('looksFileFormat')))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('alwaysCreateVariantSet')))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName(
                'createCompleteUsdAssemblyFile')))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('assemblyFilename')))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('payloadFilename')))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('rootPrimName')))
        widgets.append(self.__widgetFactory.buildWidget(
            self, self.__rootPolicy.getChildByName('variantSetName')))

        labelWidthList = []
        for w in widgets:
            if hasattr(w, "getLabelWidth"):
                labelWidthList.append(w.getLabelWidth())
        maxLabelWidth = reduce(max, labelWidthList)

        for w in widgets:
            if hasattr(w, "setLabelWidth"):
                w.setLabelWidth(maxLabelWidth)
            self.layout().addWidget(w)

        self.__writeButton = QtWidgets.QPushButton("Write", parent=self)
        self.__writeButton.clicked.connect(
            lambda checked : self.__groupNode.bake(parentWidget=self))
        self.layout().addWidget(self.__writeButton)
Пример #3
0
    def __init__(self, parent, node):
        self.node = node
        self.nodeVersion = node.getNodeVersion()

        # Initialize widget
        QtWidgets.QWidget.__init__(self, parent)

        # Hide Original SuperTool Search Button
        search_button = self.__findSearchButton()
        if search_button is not None:
            search_button.setParent(None)

        # Main Layout
        mainLayout = QtWidgets.QVBoxLayout(self)
        mainLayout.setSpacing(0)

        # Menu Bar
        self.__menuBar = QtWidgets.QMenuBar(self)
        self.__addMenu = self.__menuBar.addMenu(
            UI4.Util.IconManager.GetIcon('Icons/plus16.png'), 'Add')
        self.__addMenu.aboutToShow.connect(self.__addMenuAboutToShow)
        self.__addMenu.triggered.connect(self.__addMenuTriggered)
        self.__cacheMenu = self.__menuBar.addMenu("Caching System")
        self.__cacheMenu.aboutToShow.connect(self.__addMenuAboutToShow)
        self.__cacheMenu.triggered.connect(self.__addMenuTriggered)

        # Top-Right Search Button
        self.search_button = UI4.Widgets.FilterablePopupButton(self.__menuBar)
        self.search_button.setIcon(
            UI4.Util.IconManager.GetIcon('Icons/find20.png'))
        self.search_button.setIconSize(
            UI4.Util.IconManager.GetSize('Icons/find20.png'))
        self.search_button.setFlat(True)
        self.search_button.setFocusPolicy(QtCore.Qt.NoFocus)
        self.search_button.setButtonType('smallToolbar')
        self.search_button.aboutToShow.connect(self.__searchPopupShow)
        self.search_button.itemChosen.connect(self.__searchPopupChosen)
        self.__menuBar.setCornerWidget(self.search_button,
                                       QtCore.Qt.TopRightCorner)

        mainLayout.setMenuBar(self.__menuBar)

        # Main Frame where the tree widget will reside
        self.__listContainer = QtWidgets.QFrame(self)
        mainLayout.addWidget(self.__listContainer)
        self.__listStretchBox = UI4.Widgets.StretchBox(self.__listContainer,
                                                       allowHorizontal=False,
                                                       allowVertical=True)

        # Main Tree Widget
        self.tree = UI4.Widgets.SortableTreeWidget(None)
        self.tree.setAutoScroll(False)
        self.tree.setExpandsOnDoubleClick(False)
        self.suppressor = self.tree.getUpdateSuppressor()

        self.__versionPopup = Widgets.FilterablePopup()
        self.__lastTreePos = QtCore.QPoint(0, 0)
        self.__listStretchBox.layout().addWidget(self.tree)
        self.__listStretchBox.setMinHeight(160)
        self.__listStretchBox.setFixedHeight(160)
        mainLayout.addWidget(self.__listStretchBox)

        # Headers
        self.__headerLabels = [
            ' Name', ' Task', ' Version', ' Finalable', ' Prman Version',
            ' Shot'
        ]

        self.tree.setColumnCount(len(self.__headerLabels))
        self.tree.setHeaderLabels(self.__headerLabels)
        # self.tree.header().setSectionsClickable(False)
        self.tree.setSelectionMode(self.tree.ExtendedSelection)
        self.tree.setRootIsDecorated(True)
        self.tree.setDraggable(True)
        self.tree.setAllColumnsShowFocus(True)
        self.tree.setMinimumHeight(128)
        self.tree.setUniformRowHeights(True)
        self.tree.setSortingEnabled(False)  # TODO: Context menu for sorting
        self.tree.setMultiDragEnabled(True)

        # ResizeToContents makes the UI slow, we'll make it manual, not a big deal
        # self.tree.header().setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents)
        self.tree.header().setSectionResizeMode(
            QtWidgets.QHeaderView.Interactive)
        self.tree.header().resizeSection(0, 200)
        # self.tree.header().setSortIndicator(NAME_COLUMN, QtCore.Qt.AscendingOrder)

        self.tree.dragMoveEventSignal.connect(self.__dragMoveEventCallback)
        self.tree.dropEventSignal.connect(self.__dropEventCallback)
        self.tree.aboutToDrag.connect(self.__aboutToDragCallback)
        self.tree.itemSelectionChanged.connect(self.__selectionChanged)
        self.tree.mousePressEventSignal.connect(self.__listMousePressEvent)
        self.tree.doubleClicked.connect(self.__doubleClick)
        self.tree.keyPressEventSignal.connect(self.__listKeyPressCallback)
        self.__versionPopup.itemChosen.connect(self.__popupVersionsItemChosen)

        # Editor Status Widget
        self.__selectionStateDisplay = EditorStatusWidget(self)
        mainLayout.addWidget(self.__selectionStateDisplay)
        self.__selectionStateDisplay.customNameStateChange.connect(
            self.__customNameStateChanged)
        self.__selectionStateDisplay.customNameFieldChange.connect(
            self.__customNameChanged)
        self.__parameterDisplayArea = QtWidgets.QWidget(self)
        QtWidgets.QVBoxLayout(self.__parameterDisplayArea)
        mainLayout.addWidget(self.__parameterDisplayArea)
        mainLayout.addStretch()
        self.__additionalObservedNodes = {}
        self.__addObserverNode(NodegraphAPI.GetRootNode())
        self.__frozen = True
        self.__preselect = None
        self.__primaryProductDict = {}
        self.__rebuilding = False
        self.__addDupsDialog = None
        self.__currentDisplayWidgetSource = None
        self.__currentDisplayWidget = None
        return
Пример #4
0
    def __init__(self, node, newVariantName=None, parent=None):
        """
        @param node: The UsdMaterialBake node which should have the following
            methods. addVariantInput, deleteVariantInput, reorderInput,
            renameVariantInput, require3DInput, and the MIN_PORTS attribute.
        @param newVariantName: The name to use when adding new variants with
            the plus button.  If not set, it will default to "variant"
        @param parent: The Qt parent widget for this QFrame.
        @type node: C{GroupNode} (Supertool)
        @type newVariantName: C{str}
        @type parent: C{QtWidgets.Widget}
        """
        super(VariantsWidget, self).__init__(parent=parent)
        self.node = node
        self.newVariantName = newVariantName or "variant"
        self.minPorts = self.node.MIN_PORTS
        self.setAutoFillBackground(True)
        self.setBackgroundRole(QtGui.QPalette.Base)

        Utils.EventModule.RegisterEventHandler(self.__onAddOrRemoveInputPort,
                                               'node_addInputPort', None)
        Utils.EventModule.RegisterEventHandler(self.__onAddOrRemoveInputPort,
                                               'node_removeInputPort', None)

        # Toolbar to work as heading for Variants widget.
        self.toolbar = QtWidgets.QToolBar(self)
        self.toolbar.setMovable(False)
        variantsLabel = QtWidgets.QLabel("Variants")
        variantsLabel.setIndent(6)
        self.toolbar.addWidget(variantsLabel)

        # Spacer widget to allow us to align some widgets to the right of the
        # toolbar.
        spacerWidget = QtWidgets.QWidget(self)
        spacerWidget.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                   QtWidgets.QSizePolicy.Preferred)
        spacerWidget.setVisible(True)
        self.toolbar.addWidget(spacerWidget)

        # Toolbar Actions
        addIcon = UI4.Util.IconManager.GetIcon('Icons/plus16.png')
        self.addAction = self.toolbar.addAction(addIcon, "Add")
        self.addAction.triggered.connect(self.addNewVariant)

        # List Widget
        self.listWidget = VariantsListWidget(self)
        self.listWidget.itemChanged.connect(self.__onCurrentTextChanged)
        self.listWidget.customContextMenuRequested.connect(
            self.customContextMenu)
        self.listWidget.model().rowsMoved.connect(self.__onRowMoved)

        self.deleteSelectedAction = QtWidgets.QAction('Delete',
                                                      self.listWidget)
        self.listWidget.addAction(self.deleteSelectedAction)
        self.deleteSelectedAction.triggered.connect(self.deleteSelectedVariant)
        self.deleteSelectedAction.setShortcut(QtCore.Qt.Key_Delete)

        # Layout
        layout = QtWidgets.QVBoxLayout()
        layout.setSpacing(0)
        self.setLayout(layout)
        layout.addWidget(self.toolbar)
        layout.addWidget(self.listWidget)
        self.updateWidgets()