def generate_lines(self): ''' Will generate lines of project list ''' self.listWidget = QtWidgets.QListWidget() for self.index, p in enumerate(self.projects): item = QtWidgets.QListWidgetItem("{full_name}".format(**p)) # item.setSelected(False) self.listWidget.addItem(item) print(self.listWidget.indexFromItem(item)) # self.listWidget.setCurrentItem(self.listWidget.itemFromIndex(1)) # add options to schemas widget self.schema_combobox.addItems(self.schemas) # add options to disk widget self.disk_combobox.addItems(self.disks) # populate content of project info widgets self.projects[1] = self._fill_project_attributes_widgets(p, None)
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)
def __init__(self, session=None, parent=None): QtWidgets.QWidget.__init__(self, parent) # Attributes self._context = None self._session = session or api.Session self.log = logging.getLogger("File Sequence Publisher") # Build UI window_icon = qta.icon("fa.filter", color=style.colors.default) self.setWindowIcon(window_icon) self.setWindowTitle("File Sequence Publisher") layout = QtWidgets.QVBoxLayout() breadcrumps = SimpleContextSwitcher() set_context_btn = QtWidgets.QPushButton("Set Context") browse_hlayout = QtWidgets.QHBoxLayout() file_path = QtWidgets.QLineEdit() browse_button = QtWidgets.QPushButton("Browse") browse_hlayout.addWidget(file_path) browse_hlayout.addWidget(browse_button) family_layout = QtWidgets.QHBoxLayout() family_label = QtWidgets.QLabel("Family") family_label.setFixedWidth(50) family_box = SearchComboBox() family_layout.addWidget(family_label) family_layout.addWidget(family_box) collect_layout = QtWidgets.QVBoxLayout() collect_buttons_hlayout = QtWidgets.QHBoxLayout() refresh_icon = qta.icon("fa.refresh", color=style.colors.default) refresh_button = QtWidgets.QPushButton() refresh_button.setIcon(refresh_icon) refresh_button.setFixedWidth(28) collect_button = QtWidgets.QPushButton("Collect") collect_buttons_hlayout.addWidget(collect_button) collect_buttons_hlayout.addWidget(refresh_button) collect_view = QtWidgets.QListWidget() collect_view.setAlternatingRowColors(True) collect_view.setSelectionMode(3) collect_view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) collect_view.customContextMenuRequested.connect( self.show_right_mouse_menu) collect_layout.addLayout(collect_buttons_hlayout) collect_layout.addWidget(collect_view) publish_button = QtWidgets.QPushButton("Publish") publish_button.setEnabled(False) layout.addWidget(breadcrumps) layout.addLayout(browse_hlayout) layout.addLayout(family_layout) layout.addLayout(collect_layout) layout.addWidget(publish_button) self.setLayout(layout) self.set_context_btn = set_context_btn self.browse = browse_button self.file_path = file_path self.family = family_box self.collect_button = collect_button self.collection_view = collect_view self.publish_button = publish_button self.refresh_button = refresh_button self.make_connections() self.install() self.get_families() self.resize(self.sizeHint())