def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self.setWindowTitle("Color Reference Setting")
        main_layout = QtGui.QVBoxLayout(self)

        group_layout = QtGui.QHBoxLayout()
        pre_group = QtGui.QGroupBox()
        pre_group.setTitle("Pre Shot")
        post_group = QtGui.QGroupBox()
        post_group.setTitle("Post Shot")
        group_layout.addWidget(pre_group)
        group_layout.addWidget(post_group)

        self.pre_shot_widget = kLineTextLabel()
        self.pre_shot_widget.setLabel("shot name")
        self.pre_frame_widget = kLineTextLabel()
        self.pre_frame_widget.setLabel("shot frame")
        pre_group_layout = QtGui.QVBoxLayout(pre_group)
        pre_group_layout.setContentsMargins(5,5,5,5)
        pre_group_layout.addWidget(self.pre_shot_widget)
        pre_group_layout.addWidget(self.pre_frame_widget)

        self.post_shot_widget = kLineTextLabel()
        self.post_shot_widget.setLabel("shot name")
        self.post_frame_widget = kLineTextLabel()
        self.post_frame_widget.setLabel("shot frame")
        post_group_layout = QtGui.QVBoxLayout(post_group)
        post_group_layout.setContentsMargins(5,5,5,5)
        post_group_layout.addWidget(self.post_shot_widget)
        post_group_layout.addWidget(self.post_frame_widget)

        if parent is not None:
            if parent._pre_shot_name is not None:
                self.pre_shot_widget.setText(parent._pre_shot_name)
            if parent._pre_shot_frame is not None:
                self.pre_frame_widget.setText(parent._pre_shot_frame)
            if parent._post_shot_name is not None:
                self.post_shot_widget.setText(parent._post_shot_name)
            if parent._post_shot_frame is not None:
                self.post_frame_widget.setText(parent._post_shot_frame)

        ok_button = QtGui.QPushButton("ok")
        ok_button.clicked.connect(
            lambda arg=False, args=parent:self.clicked_ok(args))
        cancel_button = QtGui.QPushButton("cancel")
        cancel_button.clicked.connect(self.close)
        button_layout = QtGui.QHBoxLayout()
        button_layout.addWidget(ok_button)
        button_layout.addWidget(cancel_button)

        main_layout.addLayout(group_layout)
        main_layout.addSpacing(25)
        main_layout.addLayout(button_layout)
    def buildWidgets(self, hints):
        """
        This will construct the UI for the render widget for the asset 
        management system.
        """
        label = QtGui.QLabel(" (PyMock)", self)
        label.setProperty('smallFont', True)
        label.setProperty('boldFont', True)
        p = label.palette()
        p.setColor(QtGui.QPalette.WindowText, QtGui.QColor(255, 200, 0))
        p.setColor(QtGui.QPalette.Text, QtGui.QColor(255, 200, 0))
        label.setPalette(p)
        self.layout().addWidget(label)

        assetIdWidget = QtGui.QWidget(self)
        assetIdHBox = QtGui.QHBoxLayout(assetIdWidget)
        assetIdLabel = QtGui.QLabel("Output Asset:", assetIdWidget)
        assetIdLabel.setEnabled(False)
        assetIdHBox.addWidget(assetIdLabel, 0)
        self.__assetIdLabel = QtGui.QLineEdit("", assetIdWidget)
        self.__assetIdLabel.setReadOnly(True)
        assetIdHBox.addWidget(self.__assetIdLabel, 0)
        self.layout().addWidget(assetIdWidget)

        self.updateWidgets()
    def __init__(self):
        QtGui.QFrame.__init__(self)

        QtGui.QHBoxLayout(self)

        self.__showList = self.__buildListWidget("Show", self.layout())
        self.__shotList = self.__buildListWidget("Shot", self.layout())
        self.__nameList = self.__buildListWidget("Asset", self.layout())
        self.__versionList = self.__buildListWidget("Version", self.layout())

        self.connect(self.__showList, QtCore.SIGNAL("itemSelectionChanged()"),
                     self.__updateShow)
        self.connect(self.__shotList, QtCore.SIGNAL("itemSelectionChanged()"),
                     self.__updateShot)
        self.connect(self.__nameList, QtCore.SIGNAL("itemSelectionChanged()"),
                     self.__updateAsset)
        self.connect(self.__versionList,
                     QtCore.SIGNAL("itemSelectionChanged()"),
                     self.__updateVersion)

        self.__widgetsDict = {
            "show": self.__showList,
            "shot": self.__shotList,
            "name": self.__nameList,
            "version": self.__versionList,
        }

        self.__showList.clear()
        self.__showList.addItems(_getShows())
示例#4
0
def setMessage(message):
    from Katana import QtCore, QtGui
    layoutsMenus = [x for x in QtGui.qApp.topLevelWidgets() if type(x).__name__ == 'LayoutsMenu']
    KatanaWindow = layoutsMenus[0].parent().parent()

    widget  = QtGui.QDialog(parent=KatanaWindow)
    title_layout = QtGui.QVBoxLayout()
    button_layout = QtGui.QHBoxLayout()
    title = QtGui.QLabel()
    button = QtGui.QPushButton()
    font = QtGui.QFont()
    font.setPixelSize(16)

    title.setText(message)
    title.setFont(font)
    title.setAlignment(QtCore.Qt.AlignHCenter)
    button.setText("Confirm!")
    button.clicked.connect(widget.close)
    button.setFixedHeight(30)

    title_layout.addStretch()
    title_layout.addWidget(title)
    title_layout.addStretch()
    button_layout.addStretch()
    button_layout.addWidget(button)
    button_layout.addStretch()

    mainLayout = QtGui.QVBoxLayout()
    mainLayout.addLayout(title_layout)
    mainLayout.addLayout(button_layout)

    widget.setWindowTitle("GafferThreeRigs.Warning")
    widget.setLayout(mainLayout)
    widget.setFixedHeight(130)
    widget.show()
示例#5
0
    def showNodeParams(self):
        self.__clearCmd()

        vertSpacer = QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Maximum,
                                       QtGui.QSizePolicy.Expanding)
        vertSpacer1 = QtGui.QSpacerItem(5, 5, QtGui.QSizePolicy.Maximum,
                                        QtGui.QSizePolicy.Expanding)

        factory = UI4.FormMaster.KatanaFactory.ParameterWidgetFactory
        name = self.scenAovsList.currentItem().text()
        for node in self.__node.getChildren():
            if node.getParameter('aov'):
                if node.getParameter('aov').getValue(0) == name:
                    self.aov = node

        self.aocd = self.aov.getChildByIndex(0)
        self.rod = self.aov.getChildByIndex(1)

        typePolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.aocd.getParameter('type'))
        typeParam = factory.buildWidget(self, typePolicy)

        filterPolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.aocd.getParameter('filter'))
        filterParam = factory.buildWidget(self, filterPolicy)

        lpePolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.aocd.getParameter('lightPathExpression'))
        lpeParam = factory.buildWidget(self, lpePolicy)

        lGrpPolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.aocd.getParameter('lightGroups'))
        lGrpParam = factory.buildWidget(self, lGrpPolicy)

        cust_lGrpPolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.aocd.getParameter('customLightGroup'))
        cust_lGrpParam = factory.buildWidget(self, cust_lGrpPolicy)

        self.__nameLine = QtGui.QLineEdit('')
        self.__nameLine.setText(str(
            self.aocd.getParameter('name').getValue(0)))
        self.__nameLine.returnPressed.connect(self.__nameReturnPressed)

        nameLayout = QtGui.QHBoxLayout()
        self.__label = QtGui.QLabel('AOV Name')
        nameLayout.addWidget(self.__label)
        nameLayout.addWidget(self.__nameLine)

        self.scrollLayout.addItem(vertSpacer1)
        self.scrollLayout.addLayout(nameLayout)
        self.scrollLayout.addWidget(QHLine())
        self.scrollLayout.addWidget(typeParam)
        self.scrollLayout.addWidget(filterParam)
        self.scrollLayout.addWidget(QHLine())

        self.scrollLayout.addWidget(lpeParam)
        self.scrollLayout.addWidget(lGrpParam)
        self.scrollLayout.addWidget(cust_lGrpParam)

        self.scrollLayout.addItem(vertSpacer)
示例#6
0
    def __init__(self):
        QtGui.QFrame.__init__(self)

        QtGui.QHBoxLayout(self)

        self.__tabWidget = QtGui.QTabWidget(self)
        self.layout().addWidget(self.__tabWidget)

        assetTab = QtGui.QFrame(self)
        QtGui.QHBoxLayout(assetTab)
        self.__tabWidget.addTab(assetTab, "Asset")

        self.__showList = self.__buildListWidget("Show", assetTab.layout())
        self.__shotList = self.__buildListWidget("Shot", assetTab.layout())
        self.__nameList = self.__buildListWidget("Asset", assetTab.layout())
        self.__versionList = self.__buildListWidget("Version",
                                                    assetTab.layout())

        self.connect(self.__showList, QtCore.SIGNAL("itemSelectionChanged()"),
                     self.__updateShow)
        self.connect(self.__shotList, QtCore.SIGNAL("itemSelectionChanged()"),
                     self.__updateShot)
        self.connect(self.__nameList, QtCore.SIGNAL("itemSelectionChanged()"),
                     self.__updateAsset)
        self.connect(self.__versionList,
                     QtCore.SIGNAL("itemSelectionChanged()"),
                     self.__updateVersion)

        sandboxTab = QtGui.QFrame(self)
        QtGui.QHBoxLayout(sandboxTab)
        self.__tabWidget.addTab(sandboxTab, "Sandbox")

        self.__sandboxList = self.__buildListWidget("Sandbox",
                                                    sandboxTab.layout())

        self.__widgetsDict = {
            "show": self.__showList,
            "shot": self.__shotList,
            "name": self.__nameList,
            "version": self.__versionList,
            "sandbox": self.__sandboxList,
        }

        self.__showList.clear()
        self.__showList.addItems(_getShows())
        self.__sandboxList.addItems(_getSandboxFiles())
 def __init__(self, parent=None):
     QtGui.QWidget.__init__(self, parent)
     layout = QtGui.QHBoxLayout(self)
     self.label = QtGui.QLabel()
     self.label.setFixedWidth(150)
     self.label.setAlignment(QtCore.Qt.AlignRight)
     self.edited = QtGui.QLineEdit()
     layout.addWidget(self.label)
     layout.addWidget(self.edited)
    def __init__(self, *args, **kargs):
        QtGui.QFrame.__init__(self, *args)

        QtGui.QVBoxLayout(self)

        self.__assetIdLayout = QtGui.QHBoxLayout()
        self.__widget = None
        self.__saveMode = False
        self.__context = ""
        self.__requestedLocation = ""
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        main_lay = QtGui.QHBoxLayout()
        self.listWidget = QtGui.QListView()

        self.editorWidget = QtGui.QWidget()
        main_lay.addWidget(self.listWidget)
        main_lay.addWidget(self.editorWidget)

        self.setLayout(main_lay)
示例#10
0
    def __init__(self):
        """Builds the initial combose box UI"""

        QtGui.QFrame.__init__(self)

        QtGui.QVBoxLayout(self)

        assetFrame = QtGui.QFrame(self)
        QtGui.QHBoxLayout(assetFrame)
        self.layout().addWidget(assetFrame)

        assetFrame.layout().addWidget(QtGui.QLabel("show:"))
        self.__showCombobox = QtGui.QComboBox()
        assetFrame.layout().addWidget(self.__showCombobox)

        assetFrame.layout().addWidget(QtGui.QLabel("shot:"))
        self.__shotCombobox = QtGui.QComboBox()
        assetFrame.layout().addWidget(self.__shotCombobox)

        assetFrame.layout().addWidget(QtGui.QLabel("asset:"))
        self.__assetCombobox = QtGui.QComboBox()
        assetFrame.layout().addWidget(self.__assetCombobox)

        assetFrame.layout().addWidget(QtGui.QLabel("version:"))
        self.__versionCombobox = QtGui.QComboBox()
        assetFrame.layout().addWidget(self.__versionCombobox)

        self.connect(self.__showCombobox,
                     QtCore.SIGNAL("currentIndexChanged(QString)"),
                     self.__updateShow)
        self.connect(self.__shotCombobox,
                     QtCore.SIGNAL("currentIndexChanged(QString)"),
                     self.__updateShot)
        self.connect(self.__assetCombobox,
                     QtCore.SIGNAL("currentIndexChanged(QString)"),
                     self.__updateAsset)
        self.connect(self.__versionCombobox,
                     QtCore.SIGNAL("currentIndexChanged(QString)"),
                     self.__updateVersion)

        # Modify the integrated QListViews to lay out the items every time the
        # view is resized, so that changes in the application font preferences
        # are correctly reflected
        for combobox in (self.__showCombobox, self.__shotCombobox,
                         self.__assetCombobox, self.__versionCombobox):
            combobox.view().setResizeMode(QtGui.QListView.Adjust)

        self.__sandboxCheckBox = QtGui.QCheckBox('Save to Sandbox', self)
        self.layout().addWidget(self.__sandboxCheckBox)

        self.__showCombobox.addItems(_getShows())
示例#11
0
    def widget(self):

        layoutsMenus = [
            x for x in QtGui.qApp.topLevelWidgets()
            if type(x).__name__ == 'LayoutsMenu'
        ]
        KatanaWindow = layoutsMenus[0].parent().parent()

        saveTo = self.getParameter('saveTo').getValue(0)

        widget = QtGui.QDialog(parent=KatanaWindow)
        title_layout = QtGui.QVBoxLayout()
        button_layout = QtGui.QHBoxLayout()
        title = QtGui.QLabel()
        button = QtGui.QPushButton()
        font = QtGui.QFont()
        font.setPixelSize(16)

        if saveTo:
            title.setText("MaterialX baking succeeded!")
        else:
            title.setText("Please enter the saving path!")
        title.setFont(font)
        title.setAlignment(QtCore.Qt.AlignHCenter)
        button.setText("Confirm!")
        button.clicked.connect(widget.close)
        button.setFixedHeight(30)

        title_layout.addStretch()
        title_layout.addWidget(title)
        title_layout.addStretch()
        button_layout.addStretch()
        button_layout.addWidget(button)
        button_layout.addStretch()

        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addLayout(title_layout)
        mainLayout.addLayout(button_layout)

        widget.setWindowTitle("MaterialXAssign")
        widget.setLayout(mainLayout)
        widget.setFixedHeight(130)
        widget.show()
示例#12
0
    def __buildToolbar(self, parent):
        self.__toolbarLayout = QtGui.QHBoxLayout()
        parent.layout().addLayout(self.__toolbarLayout)

        self.__scopePopup = QtGui.QComboBox(parent)

        self.connect(self.__scopePopup,
                     QtCore.SIGNAL('currentIndexChanged(const QString &)'),
                     self.__refresh)

        self.__scopePopup.addItems([
            'Selected ShadingNodes', 'All ShadingNodes',
            'Upstream of NetworkMaterial'
        ])

        self.__toolbarLayout.addWidget(self.__scopePopup)

        self.__shadingNetworkMaterialsPopup = QtGui.QComboBox(parent)

        self.__shadingNetworkMaterialsPopup.addItems(
            [x.getName() for x in self.__getNetworkMaterials()])

        self.connect(self.__shadingNetworkMaterialsPopup,
                     QtCore.SIGNAL('currentIndexChanged(const QString &)'),
                     self.__refresh)

        self.__shadingNetworkMaterialsPopup.hide()

        self.__toolbarLayout.addWidget(self.__shadingNetworkMaterialsPopup)

        self.__toolbarLayout.addStretch()

        self.__filterField = Widgets.FilterFieldWidget(parent)
        self.connect(self.__filterField, QtCore.SIGNAL('filterUpdate'),
                     self.__filterUpdate)

        self.__toolbarLayout.addWidget(self.__filterField)

        self.__statusBar = QtGui.QLabel('', parent)
        parent.layout().addWidget(self.__statusBar)
示例#13
0
    def setDisplayMode(self, mode):
        """
        Set display mode and corresponding tool tips, icons, etc.
        """
        self.__displayMode = mode
        if self.__displayMode == (DISPLAY_LIGHTS | DISPLAY_CAMERAS):
            switchArea = self.getWidgetSwitchArea()
            self.__topHBox = QtGui.QFrame(switchArea)
            switchArea.layout().addWidget(self.__topHBox)
            self.__topHBox.setLayout(QtGui.QHBoxLayout())

            spacer = QtGui.QLabel('', self)
            self.__topHBox.layout().addWidget(spacer)
            self.__topHBox.layout().setStretchFactor(spacer, 100)

            self.__lightsCheckbox = QtGui.QCheckBox("Lights", self.__topHBox)
            self.__lightsCheckbox.setChecked(True)
            self.__topHBox.layout().addWidget(self.__lightsCheckbox)
            QtCore.QObject.connect(self.__lightsCheckbox,
                                   QtCore.SIGNAL('stateChanged(int)'),
                                   self.__on_lightsCheckbox_stateChanged)

            self.__camerasCheckbox = QtGui.QCheckBox("Cameras", self.__topHBox)
            self.__camerasCheckbox.setChecked(True)
            self.__topHBox.layout().addWidget(self.__camerasCheckbox)
            QtCore.QObject.connect(self.__camerasCheckbox,
                                   QtCore.SIGNAL('stateChanged(int)'),
                                   self.__on_camerasCheckbox_stateChanged)

            self.setToolTip("Choose Light or Camera")

        elif mode & DISPLAY_LIGHTS:
            self.setScenegraphPixmap(self.__pixmaps['light'])
            self.setToolTip("Choose Light")
        else:
            self.setScenegraphPixmap(self.__pixmaps['camera'])
            self.setToolTip("Choose Camera")
示例#14
0
    def __init__(self, parent, node):
        node.upgrade()

        self.__node = node

        QtGui.QWidget.__init__(self, parent)
        QtGui.QVBoxLayout(self)

        self.__frozen = True
        self.__updateTreeOnIdle = False
        self.__selectedPonyPolicy = None
        self.__preselectName = None

        # location FormWidget
        locationPolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.__node.getParameter('location'))
        factory = UI4.FormMaster.KatanaFactory.ParameterWidgetFactory
        w = factory.buildWidget(self, locationPolicy)
        self.layout().addWidget(w)

        # toolbar
        self.__toolbarLayout = QtGui.QHBoxLayout()
        self.layout().addItem(self.__toolbarLayout)

        self.__addButton = UI4.Widgets.ToolbarButton(
            'Add Pony',
            self,
            UI4.Util.IconManager.GetPixmap('Icons/plus16.png'),
            rolloverPixmap=UI4.Util.IconManager.GetPixmap(
                'Icons/plusHilite16.png'))
        self.connect(self.__addButton, QtCore.SIGNAL('clicked()'),
                     self.__addButtonClicked)
        self.__toolbarLayout.addWidget(self.__addButton)
        self.__toolbarLayout.addStretch()

        # tree widget
        self.__treeStretchBox = UI4.Widgets.StretchBox(self,
                                                       allowHorizontal=False,
                                                       allowVertical=True)
        self.layout().addWidget(self.__treeStretchBox)

        self.__treeWidget = QT4Widgets.SortableTreeWidget(
            self.__treeStretchBox)
        self.__treeWidget.setHeaderLabels(['Name'])
        self.__treeWidget.setSelectionMode(QtGui.QTreeWidget.SingleSelection)
        self.__treeWidget.setAllColumnsShowFocus(True)
        self.__treeWidget.setRootIsDecorated(False)
        self.__treeWidget.header().setResizeMode(
            QtGui.QHeaderView.ResizeToContents)
        self.__treeWidget.header().setClickable(False)

        self.connect(self.__treeWidget,
                     QtCore.SIGNAL('itemSelectionChanged()'),
                     self.__treeWidgetSelectionChanged)
        self.connect(self.__treeWidget, QtCore.SIGNAL('keyPressEvent'),
                     self.__treeWidgetKeyPressCallback)

        self.__treeStretchBox.layout().addWidget(self.__treeWidget)
        self.__treeStretchBox.setFixedHeight(120)

        self.__formItemTree = QT4FormWidgets.FormItemTree(self)
        self.layout().addWidget(self.__formItemTree)

        self.__updateTreeContents()

        self.layout().addStretch()
示例#15
0
    def __init__(self, parent, node):
        """
        Initialize the editor and set up UI
        """
        self.__node = node
        self.__preselectionKey = None
        self.__lightselectionKey = None
        self.__editorKey = None
        self.__updating = False
        
        QtGui.QWidget.__init__(self, parent)
        QtGui.QHBoxLayout(self)
        
        self.__treeLayout = QtGui.QVBoxLayout()
        self.layout().addLayout(self.__treeLayout)
        
        
        # toolbar {
        self.__treeToolbarLayout = QtGui.QHBoxLayout()
        self.__treeLayout.addLayout(self.__treeToolbarLayout)
        
        self.__addButton = UI4.Widgets.ToolbarButton(
                'Add Render Pass', self,
                UI4.Util.IconManager.GetPixmap('Icons/plus16.png'),
                rolloverPixmap = UI4.Util.IconManager.GetPixmap(
                        'Icons/plusHilite16.png'))
        @connectsignal(self.__addButton, 'clicked()')
        def addButtonClick():
            renderPass = self.__node.addRenderPass('pass1')
            self.__preselectionKey = hash(renderPass.getShadowBranchNode())
        
        self.__treeToolbarLayout.addWidget(self.__addButton)
        self.__treeToolbarLayout.addStretch()
        # }
        
        
        self.__treeStretchBox = UI4.Widgets.StretchBox(self,
                allowHorizontal=True, allowVertical=True)
        self.__treeLayout.addWidget(self.__treeStretchBox)
        
        
        #######################################################################
        # Set up the treeWidget which represents the passes
        treeWidget = QT4Widgets.SortableTreeWidget(self.__treeStretchBox)
        treeWidget.setHeaderLabels(['Name'])
        treeWidget.setSelectionMode(QtGui.QTreeWidget.ExtendedSelection)
        treeWidget.setAllColumnsShowFocus(True)
        treeWidget.setRootIsDecorated(False)
        treeWidget.header().setResizeMode(QtGui.QHeaderView.ResizeToContents)
        treeWidget.header().setClickable(False)
        treeWidget.header().hide()
        treeWidget.setDraggable(True)
        
        #######################################################################
        # treeWidget events
        @connectsignal(treeWidget, 'mousePressEvent')
        def treeWidgetMousePressEvent(event):
            """
            Handle mouse events
            """
            # Set up context menu (right-click)
            if event.button() == QtCore.Qt.RightButton:
                item = treeWidget.itemAt(event.pos())
                if not item:
                    return
                
                scriptItem = item.getItemData()                
                item.setHiliteColor(QtGui.QColor(32,32,32))
                treeWidget.update(treeWidget.indexFromItem(item))
                
                menu = QtGui.QMenu(None)
                
                # Add 'Delete' action
                menu.addAction('Delete', scriptItem.delete)
                menu.addSeparator()
                
                # Add 'View From ShadowBranch Node' action
                def viewNode():
                    NodegraphAPI.SetNodeViewed(
                        scriptItem.getShadowBranchNode(), True, exclusive=True)
                action = menu.addAction('View From ShadowBranch Node',viewNode)
                action.setIcon(UI4.Util.IconManager.GetIcon(
                        'Icons/AttributeEditor/blue_snapback.png'))                
                
                # Show menu
                pos = event.pos()
                pos = treeWidget.mapToGlobal(QtCore.QPoint(
                                pos.x(), pos.y()))
                
                try:
                    menu.exec_(pos)
                finally:
                    item.setHiliteColor(None)
                    treeWidget.update(treeWidget.indexFromItem(item))
                    event.accept()
        
        @connectsignal(treeWidget, 'keyPressEvent')
        def keyPressEvent(event):
            """
            Handle key events
            """
            selectedItems = treeWidget.selectedItems()
            if not selectedItems:
                return
            
            # Single selection for now
            scriptItem = selectedItems[0].getItemData()
            
            # Delete key: Remove selected items
            if event.key() == QtCore.Qt.Key_Delete:
                for item in selectedItems:
                    item.getItemData().delete()


        # Configure treeWidget callbacks and delegates
        self.__treeWidget = treeWidget        
        self.__treeWidget.setItemDelegate(
                self.RenderPassItemDelegate(self.__treeWidget))        
        self.__handleDragEvents(self.__treeWidget)
        self.connect(treeWidget, QtCore.SIGNAL('itemSelectionChanged()'),
                self.__selectionChangedCallback)

        # Add treeWidget to layout
        self.__treeStretchBox.layout().addWidget(treeWidget)
        self.__treeStretchBox.setFixedHeight(160)
        self.__treeStretchBox.setFixedWidth(120)
        self.__treeLayout.addStretch()
        
        # Layout settings
        self.__editorMainLayout = QtGui.QVBoxLayout()
        self.layout().addLayout(self.__editorMainLayout, 10)
        self.__editorMainLayout.addSpacing(4)        
        self.__editorWidget = QtGui.QWidget(self)
        self.__editorMainLayout.addWidget(self.__editorWidget)
        QtGui.QVBoxLayout(self.__editorWidget)
        self.__editorMainLayout.addStretch()
        
        # Create lightSettings widget containing the UI for a light
        self.__lightSettingsWidget = QtGui.QWidget(self)
        self.__editorWidget.layout().addWidget(self.__lightSettingsWidget)
        QtGui.QVBoxLayout(self.__lightSettingsWidget)
示例#16
0
    def __buildUI(self):
        layout = QtGui.QVBoxLayout(self)

        fileLayout = QtGui.QHBoxLayout()

        formatLayout = QtGui.QHBoxLayout()

        filenamePolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.__node.getParameter('Filename'))
        factory = UI4.FormMaster.KatanaFactory.ParameterWidgetFactory
        filenameLine = factory.buildWidget(self, filenamePolicy)
        fileLayout.addWidget(filenameLine)

        formatPolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.__node.getParameter('Format'))
        formatParam = factory.buildWidget(self, formatPolicy)

        BitDepthPolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.__node.getParameter('BitDepth'))
        BitDepthParam = factory.buildWidget(self, BitDepthPolicy)

        tiledPolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.__node.getParameter('Tiled'))
        tiledParam = factory.buildWidget(self, tiledPolicy)

        mergePolicy = UI4.FormMaster.CreateParameterPolicy(
            None, self.__node.getParameter('MergeAOVs'))
        mergeParam = factory.buildWidget(self, mergePolicy)

        formatLayout.addWidget(formatParam)
        formatLayout.addWidget(BitDepthParam)
        formatLayout.addWidget(tiledParam)

        overallListLayout = QtGui.QHBoxLayout()

        globalListLayout = QtGui.QVBoxLayout()
        sceneListLayout = QtGui.QVBoxLayout()

        __labelAOV1 = QtGui.QLabel('AOV List')
        __labelAOV2 = QtGui.QLabel('Scene AOVs')
        globalListLayout.addWidget(__labelAOV1)
        sceneListLayout.addWidget(__labelAOV2)

        self.globalAovsList = QtGui.QListWidget()
        self.globalAovsList.setSelectionMode(
            QtGui.QAbstractItemView.ExtendedSelection)
        self.globalAovsList.itemDoubleClicked.connect(self.__addButtonClicked)
        globalListLayout.addWidget(self.globalAovsList)

        self.scenAovsList = QtGui.QListWidget()
        self.scenAovsList.setSelectionMode(
            QtGui.QAbstractItemView.ExtendedSelection)
        self.scenAovsList.itemDoubleClicked.connect(self.__removeButtonClicked)
        self.scenAovsList.itemClicked.connect(self.showNodeParams)
        sceneListLayout.addWidget(self.scenAovsList)

        btnLayout = QtGui.QHBoxLayout()
        __addAovBtn = QtGui.QPushButton('>>')
        self.connect(__addAovBtn, QtCore.SIGNAL('clicked()'),
                     self.__addButtonClicked)
        globalListLayout.addWidget(__addAovBtn)

        customBtn = QtGui.QPushButton('Custom')
        customBtn.clicked.connect(self.__customClicket)
        btnLayout.addWidget(customBtn)

        __removeAovBtn = QtGui.QPushButton('<<')
        self.connect(__removeAovBtn, QtCore.SIGNAL('clicked()'),
                     self.__removeButtonClicked)
        btnLayout.addWidget(__removeAovBtn)

        __scrollWidget = QtGui.QWidget()
        # __scrollWidget.setMinimumHeight(350)
        __scrollWidget.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                     QtGui.QSizePolicy.Expanding)
        self.scrollLayout = QtGui.QVBoxLayout(__scrollWidget)

        scrollArea = QtGui.QScrollArea()
        scrollArea.setWidgetResizable(True)
        scrollArea.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                 QtGui.QSizePolicy.Expanding)
        scrollArea.setMinimumHeight(200)
        scrollArea.setWidget(__scrollWidget)

        sceneListLayout.addLayout(btnLayout)
        overallListLayout.addLayout(globalListLayout)
        overallListLayout.addLayout(sceneListLayout)

        layout.addLayout(fileLayout)
        layout.addLayout(formatLayout)
        layout.addWidget(mergeParam)
        layout.addWidget(QHLine())
        layout.addLayout(overallListLayout)
        # layout.addLayout(btnLayout)
        layout.addWidget(scrollArea)
示例#17
0
    def __init__(self, parent, node):
        """
        Initializes an instance of the class.
        """
        QtGui.QWidget.__init__(self, parent)

        self.__node = node

        # Get the SuperTool's parameters
        rootLocationsParameter = self.__node.getParameter('rootLocations')
        passesParameter = self.__node.getParameter('passes')
        saveToParameter = self.__node.getParameter('saveTo')
        writeMatexOutButton = self.__node.getParameter("writeMaterialxOut")

        CreateParameterPolicy = UI4.FormMaster.CreateParameterPolicy
        self.__rootLocationsParameterPolicy = CreateParameterPolicy(
            None, rootLocationsParameter)

        self.__passesParameterPolicy = CreateParameterPolicy(
            None, passesParameter)

        self.__saveToParameterPolicy = CreateParameterPolicy(
            None, saveToParameter)

        self.__writeMatexOutButtonPolicy = CreateParameterPolicy(
            None, writeMatexOutButton)

        WidgetFactory = UI4.FormMaster.KatanaFactory.ParameterWidgetFactory
        rootLocationsWidget = WidgetFactory.buildWidget(
            self, self.__rootLocationsParameterPolicy)
        passesWidget = WidgetFactory.buildWidget(self,
                                                 self.__passesParameterPolicy)
        saveToWidget = WidgetFactory.buildWidget(self,
                                                 self.__saveToParameterPolicy)
        writeMatexOutButtonWidget = WidgetFactory.buildWidget(
            self, self.__writeMatexOutButtonPolicy)

        # Build a group widget
        self.group_layout = passesWidget.getPopdownWidget().layout()
        self.add_button = QtGui.QPushButton("Add New Pass")
        self.remove_button = QtGui.QPushButton("Remove Last Pass")
        self.connect(self.add_button, QtCore.SIGNAL('clicked(bool)'),
                     self.onAddButtonPressed)
        self.connect(self.remove_button, QtCore.SIGNAL('clicked(bool)'),
                     self.onRemoveButtonPressed)

        # parameter = self.__node.getParameters().getChild("look_origin")
        # if not parameter:
        #     parameter = self.__node.getParameters().createChildString("look_origin", 'default')
        # policy = UI4.FormMaster.CreateParameterPolicy(None, parameter)
        # widget = WidgetFactory.buildWidget(self, policy)

        if not passesParameter.getChild("default"):
            passesParameter.createChildString("default", 'default')

        self.button_layout = QtGui.QHBoxLayout()
        self.button_layout.addWidget(self.add_button)
        self.button_layout.addWidget(self.remove_button)
        self.group_layout.addLayout(self.button_layout)

        line = QtGui.QFrame()
        line.setFrameShape(QtGui.QFrame.HLine)
        line.setFrameShadow(QtGui.QFrame.Sunken)

        # Create a layout and add the parameter editing widgets to it
        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(rootLocationsWidget)
        mainLayout.addWidget(passesWidget)
        mainLayout.addWidget(line)
        mainLayout.addWidget(saveToWidget)
        mainLayout.addWidget(writeMatexOutButtonWidget)
        # Apply the layout to the widget
        self.setLayout(mainLayout)
示例#18
0
    def __init__(self, parent, node):
        """
        Initializes an instance of the class.
        """
        QtGui.QWidget.__init__(self, parent)

        self.__node = node

        # Get the SuperTool's parameters
        tagetsParameter = self.__node.getParameter('tagets')
        tunningParameter = self.__node.getParameter('tuning')
        translateParameter = self.__node.getParameter('translate')
        rotatexyzParameter = self.__node.getParameter('rotatexyz')
        scalebackParameter = self.__node.getParameter('scaleback')

        #######################################################################
        # Create parameter policies from the parameters and register callbacks
        # to be notified if anything changes in the underlying parameter.
        #
        # This is your Controller in the MVC pattern.
        #######################################################################
        CreateParameterPolicy = UI4.FormMaster.CreateParameterPolicy
        self.__tagetsParameterPolicy = CreateParameterPolicy(
            None, tagetsParameter)
        self.__tagetsParameterPolicy.addCallback(
            self.tagetsParameterChangedCallback)
        self.__tunningParameterPolicy = CreateParameterPolicy(
            None, tunningParameter)
        self.__rotationxParameterPolicy = CreateParameterPolicy(
            None, translateParameter)
        self.__rotatexyzParameterPolicy = CreateParameterPolicy(
            None, rotatexyzParameter)
        self.__scalebackParameterPolicy = CreateParameterPolicy(
            None, scalebackParameter)
        #######################################################################
        # Create UI widgets from the parameter policies to display the values
        # contained in the parameter.
        #
        # The widget factory will return an appropriate widget based on the
        # parameters type and any widget hints you've specified. For example
        # for a string parameter the factory will return a simple text editing
        # widget. But if you specify a widget hint of
        # 'widget': 'newScenegraphLocation' the factory will return a widget
        # that interacts with the Scene Graph tab.
        #
        # Other widget types you can use are:
        #   number -> Number Editor Widget
        #   assetIdInput -> Widget that provides hooks to your Asset system.
        #   color -> Widget to display a color
        #
        # This is your View in the MVC pattern.
        #######################################################################
        WidgetFactory = UI4.FormMaster.KatanaFactory.ParameterWidgetFactory
        tagetsWidget = WidgetFactory.buildWidget(
            self, self.__tagetsParameterPolicy)
        tunningWidget = WidgetFactory.buildWidget(
            self, self.__tunningParameterPolicy)
        translateWidget = WidgetFactory.buildWidget(
            self, self.__rotationxParameterPolicy)
        rotatexyzWidget = WidgetFactory.buildWidget(
            self, self.__rotatexyzParameterPolicy)
        scalebackWidget = WidgetFactory.buildWidget(
            self, self.__scalebackParameterPolicy)

        self.tunning_layout = tunningWidget.getPopdownWidget().layout()

        self.dial_topdown = QtGui.QDial()
        self.dial_topdown.setWrapping(True)
        self.dial_topdown.setNotchesVisible(True)

        self.dial_leftright = QtGui.QDial()
        self.dial_leftright.setWrapping(True)
        self.dial_leftright.setNotchesVisible(True)

        HBoxLayout = QtGui.QHBoxLayout()
        HBoxLayout_dial = QtGui.QHBoxLayout()
        VBoxLayout_button = QtGui.QVBoxLayout()
        VBoxLayout_data = QtGui.QVBoxLayout()
        VBoxLayout_data.addWidget(translateWidget)
        VBoxLayout_data.addWidget(rotatexyzWidget)
        VBoxLayout_data.addWidget(scalebackWidget)
        HBoxLayout_dial.addWidget(self.dial_topdown)
        HBoxLayout_dial.addSpacing(15)
        HBoxLayout_dial.addWidget(self.dial_leftright)
        # VBoxLayout_data.setFixedWidget
        HBoxLayout.addSpacing(50)
        HBoxLayout.addLayout(HBoxLayout_dial)
        HBoxLayout.addSpacing(30)
        HBoxLayout.addLayout(VBoxLayout_data)
        self.tunning_layout.addLayout(HBoxLayout)
        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(tagetsWidget)
        mainLayout.addWidget(tunningWidget)
        # Apply the layout to the widget
        self.setLayout(mainLayout)
示例#19
0
    def buildUI(self):

        layout = QtGui.QVBoxLayout(self)

        #########################################################

        # upper row

        controlWidget = QtGui.QWidget()
        controlLayout = QtGui.QHBoxLayout(controlWidget)
        layout.addWidget(controlWidget)

        # reload
        reloadBtn = QtGui.QPushButton('RELOAD')
        reloadBtn.setStyleSheet("background-color: #1f366b;")

        reloadBtn.clicked.connect(self.clearSearch)
        reloadBtn.clicked.connect(self.populate)
        reloadBtn.clicked.connect(self.categories)

        # standard MTL
        createStd = QtGui.QPushButton('Standard Material')
        createStd.setStyleSheet("background-color: #36743f;")
        createStd.clicked.connect(self.createStandard)
        createStd.setMaximumWidth(110)

        # thumbnail size
        self.icon_size = QtGui.QSpinBox()
        self.icon_size.setRange(60, 260)
        self.icon_size.setValue(128)
        self.icon_size.setSingleStep(20)
        self.icon_size.valueChanged.connect(self.populate)
        self.icon_size.setMaximumWidth(50)

        label = QtGui.QLabel()
        label.setText('Thumbnail size:')
        label.setMaximumWidth(100)

        #layout
        controlLayout.addWidget(label)
        controlLayout.addWidget(self.icon_size)
        controlLayout.addWidget(reloadBtn)
        controlLayout.addWidget(createStd)

        #########################################################

        # second row

        searchWidget = QtGui.QWidget()
        searchLayout = QtGui.QHBoxLayout(searchWidget)
        layout.addWidget(searchWidget)

        # search field
        label1 = QtGui.QLabel()
        label1.setText('Search:')
        label1.setMaximumWidth(50)

        self.searchField = QtGui.QLineEdit()
        self.searchField.returnPressed.connect(self.populate)
        # self.searchField.textChanged.connect(self.searchCmd)
        self.searchField.setMaximumWidth(650)

        # categories

        label2 = QtGui.QLabel()
        label2.setText('Category:')
        label2.setMaximumWidth(80)

        self.catedoryCB = QtGui.QComboBox()
        self.catedoryCB.currentIndexChanged.connect(self.populate)
        self.catedoryCB.setMaximumWidth(100)

        # layout
        searchLayout.addWidget(label1)
        searchLayout.addWidget(self.searchField)
        searchLayout.addWidget(label2)
        searchLayout.addWidget(self.catedoryCB)

        #########################################################

        # main list view

        self.listWidget = QtGui.QListWidget()
        self.listWidget.setViewMode(QtGui.QListWidget.IconMode)

        self.listWidget.setResizeMode(QtGui.QListWidget.Adjust)
        self.listWidget.itemDoubleClicked.connect(self.doubleCkicked)

        self.listWidget.setStyleSheet("QListWidget::item {"
                                      "border-style: solid;"
                                      "border-width:3px;"
                                      "background-color: #252525;"
                                      "}"
                                      "QListWidget::item:selected {"
                                      "background-color: #1e1e1e;"
                                      "}")

        layout.addWidget(self.listWidget)
    def __buildScriptArea(self, parent):
        self.__presetToolbar = QtGui.QHBoxLayout()
        parent.layout().addLayout(self.__presetToolbar)

        self.__presetToolbar.addWidget(QtGui.QLabel('Presets:', parent))
         
        self.__presetsMenu = QtGui.QComboBox(parent)
        self.__presetsMenu.addItems( self.__presetNames )

        self.__presetToolbar.addWidget(self.__presetsMenu)

        self.__presetLoadButton = QtGui.QPushButton('Load', parent)
        self.connect(self.__presetLoadButton, QtCore.SIGNAL('clicked()'),
                self._loadPreset)

        self.__presetToolbar.addWidget(self.__presetLoadButton)

        self.__presetToolbar.addStretch()    
        
        self.__scriptText = TabbableTextEdit(parent)
        parent.layout().addWidget(self.__scriptText)

 
        self.__scriptToolbar = QtGui.QHBoxLayout()
        parent.layout().addLayout(self.__scriptToolbar)
        
        
        self.__scriptHelp = QT4FormWidgets.InputWidgets.HelpButton(
                parent)
        self.__scriptHelp.setAutoDefault(False)
        self.__scriptHelp.setHelpText("""
        local variables: <br>
        <b>nodeName</b>, <b>paramName</b> these are inputs, changing has no result<br>
        <b>dstName</b>, <b>dstPage</b> change these values sets exposure<br>
        <b>hints</b> set fields of this dict to assign widget hints<br>
        <b>persistentData</b>, a dictionary that is reset each time 'Run Script' is 
        pressed, rather than just for each parameter. Useful if you wish to store data 
        about previously visited parameters, for example.
        """)
        self.__scriptToolbar.addWidget(self.__scriptHelp)
        
        
        self.__scriptScope = QtGui.QComboBox(parent)
        
        self.__scriptToolbar.addWidget(QtGui.QLabel('Apply Script To', parent))
        
        self.__scriptScope.addItems(
                ['All Visible Items', 'Selected Visible Items', 'All Items'])
        
        self.__scriptToolbar.addWidget(self.__scriptScope)
        self.__scriptToolbar.addStretch()
        
        self.__undoDepth = 0
        self.__scriptUndoButton = QtGui.QPushButton('Undo', parent)
        self.__scriptUndoButton.setEnabled(False)
        self.connect(self.__scriptUndoButton, QtCore.SIGNAL('clicked()'),
                self.__undo)
        self.__scriptToolbar.addWidget(self.__scriptUndoButton)
        
        
        
        self.__scriptRunButton = QtGui.QPushButton('Run Script', parent)
        #self.__scriptRunButton.setEnabled(False)
        self.connect(self.__scriptRunButton, QtCore.SIGNAL('clicked()'),
                self.__evaluateScript)
        
        
        self.__scriptToolbar.addWidget(self.__scriptRunButton)