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
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)
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
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()