Esempio n. 1
0
    def __init__(self, instances=None, parent=None):
        QtWidgets.QDialog.__init__(self, parent)

        self.setWindowTitle("Update Sequence Range")
        self.setModal(True)
        self.setFixedWidth(150)
        self.setFixedHeight(100)

        self._instances = instances

        layout = QtWidgets.QVBoxLayout()

        start_hlayout = QtWidgets.QHBoxLayout()
        start_label = QtWidgets.QLabel("Start")
        start_label.setFixedWidth(30)

        start_stylesheet = "QAbstractQSpinBox:up-button {subcontrol-origin: border}"
        start_value = QtWidgets.QSpinBox()
        start_value.setAlignment(QtCore.Qt.AlignRight)
        start_value.setStyleSheet(start_stylesheet)

        start_hlayout.addWidget(start_label)
        start_hlayout.addWidget(start_value)

        end_hlayout = QtWidgets.QHBoxLayout()
        end_label = QtWidgets.QLabel("End")
        end_label.setFixedWidth(30)

        end_stylesheet = "QAbstractSpinBox:down-button {subcontrol-origin: bottom}"
        end_value = QtWidgets.QSpinBox()
        end_value.setAlignment(QtCore.Qt.AlignRight)
        end_value.setStyleSheet(end_stylesheet)

        end_hlayout.addWidget(end_label)
        end_hlayout.addWidget(end_value)

        accept_btn = QtWidgets.QPushButton("Accept")

        layout.addLayout(start_hlayout)
        layout.addLayout(end_hlayout)
        layout.addWidget(accept_btn)

        self.start_value = start_value
        self.end_value = end_value
        self.accept = accept_btn

        self.setLayout(layout)

        self.make_connections()

        self._on_init()
Esempio n. 2
0
        def __init__(self, parent=None):
            super(FrameRangeSetter, self).__init__(parent)

            self.setWindowTitle("Set Frame Range")
            self.setFocusPolicy(QtCore.Qt.StrongFocus)
            self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
            self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)

            asset_menu = QtWidgets.QComboBox()
            asset_grp = self.make_group(asset_menu, "Asset Name")

            start_box = QtWidgets.QSpinBox()
            start_grp = self.make_group(start_box, "Start Frame")

            end_box = QtWidgets.QSpinBox()
            end_grp = self.make_group(end_box, "End Frame")

            handle_box = QtWidgets.QSpinBox()
            handle_grp = self.make_group(handle_box, "Handles")

            save_btn = QtWidgets.QPushButton("Save")

            body = QtWidgets.QVBoxLayout(self)
            body.addLayout(asset_grp)
            body.addLayout(start_grp)
            body.addLayout(end_grp)
            body.addLayout(handle_grp)
            body.addWidget(save_btn)

            asset_menu.currentIndexChanged.connect(self.on_asset_changed)
            start_box.valueChanged.connect(self.on_value_changed)
            end_box.valueChanged.connect(self.on_value_changed)
            handle_box.valueChanged.connect(self.on_value_changed)
            save_btn.clicked.connect(self.save_range)

            self.assets = asset_menu
            self.start = start_box
            self.end = end_box
            self.handles = handle_box

            project = io.find_one({"type": "project"})
            self.handles_min = project["data"]["handles"]
            self.end.setMaximum(self.MAX)

            self.find_assets()
    def setup_ui(self):
        """Build the initial UI"""

        MULTI_SELECT = QtWidgets.QAbstractItemView.ExtendedSelection

        layout = QtWidgets.QVBoxLayout(self)

        publish = QtWidgets.QCheckBox("Suspend Publish Job")
        extend_frames = QtWidgets.QCheckBox("Extend Frames")
        override_frames = QtWidgets.QCheckBox("Override Frames")
        override_frames.setEnabled(False)
        defaultlayer = QtWidgets.QCheckBox("Include Default Render Layer")
        maya_batch_checkbox = QtWidgets.QCheckBox("Use MayaBatch")
        maya_batch_checkbox.setChecked(True)
        maya_batch_checkbox.setToolTip(
            'This uses the MayaBatch plugin. It keeps the scenes loaded '
            'between frames, which reduces the overhead of rendering the '
            'job.\nIt is however easier to debug a render when turning this '
            'off and render using MayaCmd')

        # region Priority
        priority_grp = QtWidgets.QGroupBox("Priority")
        priority_hlayout = QtWidgets.QHBoxLayout()

        priority_value = QtWidgets.QSpinBox()
        priority_value.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
        priority_value.setEnabled(False)
        priority_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        priority_slider.setMinimum(0)
        priority_slider.setMaximum(99)

        priority_hlayout.addWidget(priority_value)
        priority_hlayout.addWidget(priority_slider)
        priority_grp.setLayout(priority_hlayout)
        # endregion Priority

        # region ChunkSize
        chunksize_grp = QtWidgets.QGroupBox("Frames Per Task")
        chunksize_hlayout = QtWidgets.QHBoxLayout()

        chunksize_value = QtWidgets.QSpinBox()
        chunksize_value.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
        chunksize_value.setEnabled(False)
        chunksize_value.setValue(1)  # default value
        chunksize_value.setMinimum(1)
        chunksize_value.setMaximum(99)
        chunksize_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        chunksize_slider.setMinimum(1)
        chunksize_slider.setMaximum(99)

        chunksize_hlayout.addWidget(chunksize_value)
        chunksize_hlayout.addWidget(chunksize_slider)
        chunksize_grp.setLayout(chunksize_hlayout)
        # endregion

        # region pools
        pools_grp = QtWidgets.QGroupBox("Pools")
        pools_vlayout = QtWidgets.QVBoxLayout()

        primary_hlayout = QtWidgets.QHBoxLayout()
        primary_label = QtWidgets.QLabel("Primary")
        primary_pool = QtWidgets.QComboBox()
        primary_hlayout.addWidget(primary_label)
        primary_hlayout.addWidget(primary_pool)

        secondary_hlayout = QtWidgets.QHBoxLayout()
        secondary_label = QtWidgets.QLabel("Secondary")
        secondary_pool = QtWidgets.QComboBox()
        secondary_hlayout.addWidget(secondary_label)
        secondary_hlayout.addWidget(secondary_pool)

        pools_vlayout.addLayout(primary_hlayout)
        pools_vlayout.addLayout(secondary_hlayout)

        pools_grp.setLayout(pools_vlayout)
        # endregion pools

        # Group box for type of machine list
        list_type_grp = QtWidgets.QGroupBox("Machine List Type")
        list_type_hlayout = QtWidgets.QHBoxLayout()

        black_list = QtWidgets.QRadioButton("Blacklist")
        black_list.setChecked(True)
        black_list.setToolTip("List machines which the job WILL NOT use")

        white_list = QtWidgets.QRadioButton("Whitelist")
        white_list.setToolTip("List machines which the job WILL use")

        list_type_hlayout.addWidget(black_list)
        list_type_hlayout.addWidget(white_list)
        list_type_grp.setLayout(list_type_hlayout)

        # region Machine selection
        machines_hlayout = QtWidgets.QHBoxLayout()
        machines_hlayout.setSpacing(2)
        machine_list = QtWidgets.QListWidget()
        listed_machines = QtWidgets.QListWidget()

        # Buttons
        button_vlayout = QtWidgets.QVBoxLayout()
        button_vlayout.setAlignment(QtCore.Qt.AlignCenter)
        button_vlayout.setSpacing(4)

        add_machine_btn = QtWidgets.QPushButton(">")
        add_machine_btn.setFixedWidth(25)

        remove_machine_btn = QtWidgets.QPushButton("<")
        remove_machine_btn.setFixedWidth(25)

        button_vlayout.addWidget(add_machine_btn)
        button_vlayout.addWidget(remove_machine_btn)

        machines_hlayout.addWidget(machine_list)
        machines_hlayout.addLayout(button_vlayout)
        machines_hlayout.addWidget(listed_machines)

        # Machine selection widget settings
        machine_list.setSelectionMode(MULTI_SELECT)
        listed_machines.setSelectionMode(MULTI_SELECT)

        # endregion
        accept_btn = QtWidgets.QPushButton("Use Settings")

        layout.addWidget(defaultlayer)
        layout.addWidget(publish)
        layout.addWidget(extend_frames)
        layout.addWidget(override_frames)
        layout.addWidget(maya_batch_checkbox)
        layout.addWidget(priority_grp)
        layout.addWidget(chunksize_grp)
        layout.addWidget(pools_grp)
        layout.addWidget(list_type_grp)
        layout.addLayout(machines_hlayout)
        layout.addWidget(accept_btn)

        # Enable access for all methods
        self.publish = publish
        self.extend_frames = extend_frames
        self.override_frames = override_frames
        self.defaultlayer = defaultlayer

        self.priority_value = priority_value
        self.priority_slider = priority_slider

        self.chunksize_value = chunksize_value
        self.chunksize_slider = chunksize_slider

        self.primary_pool = primary_pool
        self.secondary_pool = secondary_pool

        self.black_list = black_list
        self.white_list = white_list
        self.machine_list = machine_list

        self.listed_machines = listed_machines
        self.add_machine_btn = add_machine_btn
        self.remove_machine_btn = remove_machine_btn

        self.use_maya_batch = maya_batch_checkbox
        self.accept = accept_btn

        self.setLayout(layout)
Esempio n. 4
0
    def setup_ui(self):
        """Build the initial UI"""
        layout = QtWidgets.QVBoxLayout(self)

        # region executable
        executable_grp = QtWidgets.QGroupBox("Executable")
        executable_vlayout = QtWidgets.QVBoxLayout()

        executable_hlayout = QtWidgets.QHBoxLayout()
        executable_filename = QtWidgets.QLineEdit()
        executable_button = QtWidgets.QPushButton()
        executable_button.setIcon(self.style().standardIcon(
            getattr(QtWidgets.QStyle, 'SP_DialogOpenButton')))
        executable_hlayout.addWidget(executable_filename)
        executable_hlayout.addWidget(executable_button)

        executable_vlayout.addLayout(executable_hlayout)
        executable_grp.setLayout(executable_vlayout)
        # endregion executable

        # region options
        options_grp = QtWidgets.QGroupBox("Options")
        options_vlayout = QtWidgets.QVBoxLayout()

        postfix_hlayout = QtWidgets.QHBoxLayout()
        postfix_label = QtWidgets.QLabel("Postfix")
        postfix_value = QtWidgets.QLineEdit()
        postfix_hlayout.addWidget(postfix_label)
        postfix_hlayout.addWidget(postfix_value)

        compression_hlayout = QtWidgets.QHBoxLayout()
        compression_label = QtWidgets.QLabel("Compression")
        compression_value = QtWidgets.QComboBox()
        compression_hlayout.addWidget(compression_label)
        compression_hlayout.addWidget(compression_value)

        linear_hlayout = QtWidgets.QHBoxLayout()
        linear_label = QtWidgets.QLabel("Linear Conversion")
        linear_value = QtWidgets.QComboBox()
        linear_hlayout.addWidget(linear_label)
        linear_hlayout.addWidget(linear_value)

        tilesize_hlayout = QtWidgets.QHBoxLayout()
        tilesize_label = QtWidgets.QLabel("Tile Size")
        tilesize_value = QtWidgets.QSpinBox()
        tilesize_value.setValue(64)
        tilesize_hlayout.addWidget(tilesize_label)
        tilesize_hlayout.addWidget(tilesize_value)

        overwrite_hlayout = QtWidgets.QHBoxLayout()
        overwrite_label = QtWidgets.QLabel("Overwrite")
        overwrite_value = QtWidgets.QCheckBox()
        overwrite_value.setChecked(False)
        overwrite_hlayout.addWidget(overwrite_label)
        overwrite_hlayout.addWidget(overwrite_value)

        preserve_hlayout = QtWidgets.QHBoxLayout()
        preserve_label = QtWidgets.QLabel("Preserve Color Space ")
        preserve_value = QtWidgets.QCheckBox()
        preserve_value.setChecked(True)
        preserve_hlayout.addWidget(preserve_label)
        preserve_hlayout.addWidget(preserve_value)

        preserve_filter_hlayout = QtWidgets.QHBoxLayout()
        preserve_filter_label = QtWidgets.QLabel("Preserver Filter")
        preserve_filter_value = QtWidgets.QLineEdit()
        preserve_filter_hlayout.addWidget(preserve_filter_label)
        preserve_filter_hlayout.addWidget(preserve_filter_value)

        options_vlayout.addLayout(postfix_hlayout)
        options_vlayout.addLayout(compression_hlayout)
        options_vlayout.addLayout(linear_hlayout)
        options_vlayout.addLayout(tilesize_hlayout)
        options_vlayout.addLayout(overwrite_hlayout)
        options_vlayout.addLayout(preserve_hlayout)
        options_vlayout.addLayout(preserve_filter_hlayout)

        options_grp.setLayout(options_vlayout)
        # endregion options

        # Group box for type of machine list
        list_type_grp = QtWidgets.QGroupBox("File Texture Nodes")
        list_type_hlayout = QtWidgets.QVBoxLayout()

        refresh_button = QtWidgets.QPushButton("Refresh")
        refresh_button.setToolTip("Refresh texture lists")
        refresh_button.setIcon(self.style().standardIcon(
            getattr(QtWidgets.QStyle, 'SP_BrowserReload')))

        # region file node list
        file_node_hlayout = QtWidgets.QVBoxLayout()
        file_node_hlayout.setSpacing(2)
        file_node_list = QtWidgets.QListView()
        file_node_list.setAlternatingRowColors(True)
        file_node_list.setSelectionBehavior(
            QtWidgets.QAbstractItemView.SelectRows)
        file_node_list.setSelectionMode(
            QtWidgets.QAbstractItemView.MultiSelection)
        # endregion

        # conversion buttons
        button_vlayout = QtWidgets.QHBoxLayout()
        button_vlayout.setAlignment(QtCore.Qt.AlignCenter)
        button_vlayout.setSpacing(4)

        convert_button = QtWidgets.QPushButton("Convert")
        exr_button = QtWidgets.QPushButton("Show EXR")
        source_button = QtWidgets.QPushButton("Show Source")
        set_source_button = QtWidgets.QPushButton("Set new source")
        set_source_button.setDisabled(True)

        button_vlayout.addWidget(convert_button)
        button_vlayout.addWidget(exr_button)
        button_vlayout.addWidget(source_button)
        button_vlayout.addWidget(set_source_button)

        file_node_hlayout.addWidget(file_node_list)
        file_node_hlayout.addLayout(button_vlayout)

        list_type_hlayout.addWidget(refresh_button)
        list_type_hlayout.addLayout(file_node_hlayout)
        list_type_grp.setLayout(list_type_hlayout)

        layout.addWidget(executable_grp)
        layout.addWidget(options_grp)
        layout.addWidget(list_type_grp)
        layout.addLayout(file_node_hlayout)

        # Enable access for all methods
        self.file_node_list = file_node_list
        self.postfix_value = postfix_value
        self.compression_value = compression_value
        self.linear_value = linear_value
        self.tilesize_value = tilesize_value
        self.executable_filename = executable_filename
        self.exr_button = exr_button
        self.source_button = source_button
        self.convert_button = convert_button
        self.refresh_button = refresh_button
        self.overwritevalue = overwrite_value
        self.preserve_value = preserve_value
        self.preserve_filter_value = preserve_filter_value

        self.setLayout(layout)
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)

        self.setWindowTitle("Replicate Houdini Asset (particles)")
        self.setWindowFlags(QtCore.Qt.Window)
        self.setParent(parent)
        self.resize(280, 280)

        layout = QtWidgets.QVBoxLayout()

        input_box = QtWidgets.QGroupBox("Input")
        input_box.setStyleSheet("{color: red}")
        input_vboxlayout = QtWidgets.QVBoxLayout()
        from_selection = QtWidgets.QCheckBox("Selected")
        from_selection.setChecked(True)

        name_hlayout = QtWidgets.QHBoxLayout()
        name_label = QtWidgets.QLabel("Name")
        name_field = QtWidgets.QLineEdit()
        name_hlayout.addWidget(name_label)
        name_hlayout.addWidget(name_field)

        input_box.setLayout(input_vboxlayout)
        input_vboxlayout.addWidget(from_selection)
        input_vboxlayout.addLayout(name_hlayout)

        time_box = QtWidgets.QGroupBox("Time")
        time_hlayout = QtWidgets.QHBoxLayout()
        time_start_vbox = QtWidgets.QVBoxLayout()
        time_start_label = QtWidgets.QLabel("Start")
        time_start = QtWidgets.QSpinBox()
        time_start_vbox.addWidget(time_start_label)
        time_start_vbox.addWidget(time_start)

        time_end_vbox = QtWidgets.QVBoxLayout()
        time_end_label = QtWidgets.QLabel("End")
        time_end = QtWidgets.QSpinBox()
        time_end_vbox.addWidget(time_end_label)
        time_end_vbox.addWidget(time_end)

        time_hlayout.addLayout(time_start_vbox)
        time_hlayout.addLayout(time_end_vbox)
        time_box.setLayout(time_hlayout)

        mapping_box = QtWidgets.QGroupBox("Attribute mapping")
        mapping_layout = QtWidgets.QVBoxLayout()
        mapping_box.setLayout(mapping_layout)

        button_vlayout = QtWidgets.QVBoxLayout()
        replicate = QtWidgets.QPushButton("Replicate")
        update_hlayout = QtWidgets.QHBoxLayout()
        update_all_button = QtWidgets.QPushButton("Update All")
        update_selected_button = QtWidgets.QPushButton("Update Selected")
        update_hlayout.addWidget(update_all_button)
        update_hlayout.addWidget(update_selected_button)

        refresh_button = QtWidgets.QPushButton("Refresh")

        button_vlayout.addWidget(replicate)
        button_vlayout.addLayout(update_hlayout)
        button_vlayout.addWidget(refresh_button)

        layout.addWidget(input_box)
        # layout.addWidget(time_box)
        layout.addWidget(mapping_box)
        layout.addLayout(button_vlayout)

        # Open up items for code
        self._selection = []
        self.mapping_data = {}

        self.from_selection = from_selection
        self.name_field = name_field

        self.time_start = time_start
        self.time_end = time_end

        self.mapping_layout = mapping_layout
        self.replicate_button = replicate
        self.update_all_button = update_all_button
        self.update_selected_button = update_selected_button
        self.refesh_button = refresh_button

        self.setLayout(layout)

        layout.addStretch(True)

        self.get_settings()

        self.connections()