def __init__(self, parent, qtwidgets, description_widget=None): QtGui.QWidget.__init__(self, parent) layout = QtGui.QVBoxLayout(self) # Label self.label = QtGui.QLabel(self) self.label.setText("Export Name") layout.addWidget(self.label) # Line edit self.editLine = QtGui.QLineEdit(self) # Layout layout.addWidget(self.editLine) self.setLayout(layout) if description_widget: layout.addWidget(description_widget) elided_label = qtwidgets.import_module("elided_label") long_label = elided_label.ElidedLabel(self) long_label.setText( "ASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDFASDF" ) layout.addWidget(long_label)
def createItem(self, asset_name, path, current_name): listWidgetItem = QtGui.QListWidgetItem() listWidgetItem.setSizeHint(QtCore.QSize(200, 80)) itemWidget = QtGui.QWidget() vLayout = QtGui.QVBoxLayout(itemWidget) vLayout.setSpacing(3) hLayout = QtGui.QHBoxLayout() hLayout.setSpacing(25) asset_name_label = QtGui.QLabel() asset_name_label.setText(asset_name) asset_name_label.setObjectName('asset_name') asset_name_label.setTextInteractionFlags( QtCore.Qt.TextSelectableByMouse) asset_name_label.setMinimumWidth(260) current_name_le = QtGui.QLineEdit() current_name_le.setFixedHeight(23) current_name_le.setText(current_name) path_label = QtGui.QLabel() path_label.setText(path) path_label.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse) hLayout.addWidget(asset_name_label) hLayout.addWidget(current_name_le) vLayout.addLayout(hLayout) vLayout.addWidget(path_label) self.listwidget.addItem(listWidgetItem) self.listwidget.setItemWidget(listWidgetItem, itemWidget) widgets = { 'asset_name': asset_name_label, 'current_name': current_name_le, 'path': path_label } listWidgetItem.setData(QtCore.Qt.UserRole, widgets) current_name_le.textChanged.connect( lambda *args: self._update_path(listWidgetItem))
def __init__(self, parent, description_widget=None): QtGui.QWidget.__init__(self, parent) layout = QtGui.QVBoxLayout(self) ## Export Name Label self.export_label = QtGui.QLabel(self) self.export_label.setText("Export Name") layout.addWidget(self.export_label) ## Line edit self.editLine = QtGui.QLineEdit(self) layout.addWidget(self.editLine) ## Version Label self.version_label = QtGui.QLabel(self) self.version_label.setText("Publish Version") layout.addWidget(self.version_label) self.version_number = QtGui.QSpinBox(self) self.version_number.setMinimum(0) self.version_number.setMaximum(100) layout.addWidget(self.version_number) self.setLayout(layout)
def update_extra_tokens_widgets(self, template, missing_keys): missing_keys_dict = {} for key in missing_keys: if key in template.keys: keyObj = template.keys[key] missing_keys_dict[key] = keyObj parent = self.ui.extraTokensWidget parent_lay = self.ui.extraTokensWidgetLayout self.clear_extra_token_widgets() keys = missing_keys_dict.keys() keys.sort() row_cnt = 0 if not keys: label = QtGui.QLabel('No Extra Keys found...', parent=parent) parent_lay.addWidget(label, row_cnt, 0) else: for key in keys: label = QtGui.QLabel(str(key), parent=parent) lineedit = QtGui.QLineEdit(str(missing_keys_dict[key].default), parent=parent) lineedit.data = missing_keys_dict[key] # Not ideal to store to object, but QLabel has no data storage method lineedit.editingFinished.connect(self.update_template_file_path) parent_lay.addWidget(label, row_cnt, 0) parent_lay.addWidget(lineedit, row_cnt, 1) row_cnt += 1
def __init__(self, parent=None): super(GraphTypeDialog, self).__init__(parent) layout = QtGui.QVBoxLayout(self) self.graph_lbl = QtGui.QLabel("Graph Type:") self.graph_type_cmb = QtGui.QComboBox() self.graph_type_cmb.addItems(["Substance", "MDL Material"]) self.vspc1 = QtGui.QSpacerItem(20, 5, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.graph_name = QtGui.QLabel("Graph Name:") self.graph_name_edt = QtGui.QLineEdit("New Graph") self.vspc2 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) layout.addWidget(self.graph_lbl) layout.addWidget(self.graph_type_cmb) layout.addItem(self.vspc1) layout.addWidget(self.graph_name) layout.addWidget(self.graph_name_edt) layout.addItem(self.vspc2) # OK and Cancel buttons buttons = QtGui.QDialogButtonBox( QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel, QtCore.Qt.Horizontal, self, ) buttons.accepted.connect(self.accept) buttons.rejected.connect(self.reject) layout.addWidget(buttons)
def __init__(self, parent): super(EnvImporter, self).__init__(parent) self.state = { 'projects': None, 'project': None, 'environments': None, 'environment': None, } # Can't get this search widget to work right... # search = sgtk.platform.import_framework( # "tk-framework-qtwidgets", # "shotgun_search_widget", # ) # self.project_search = search.GlobalSearchWidget(self) # self.project_search.set_searchable_entity_types({'Project': []}) # self.project_search.set_placeholder_text('Search for Project') # self.project_search.entity_activated.connect(self.on_entity_activated) # Create widgets self.project_search = QtGui.QComboBox() self.env_list = QtGui.QComboBox() self.engine = QtGui.QLineEdit() self.engine.setReadOnly(True) self.engine.setFocusPolicy(QtCore.Qt.NoFocus) self.req_list = QtGui.QListWidget() self.import_button = QtGui.QPushButton('Import') self.cancel_button = QtGui.QPushButton('Cancel') # Layout widgets button_layout = QtGui.QHBoxLayout() button_layout.addWidget(self.import_button) button_layout.addWidget(self.cancel_button) layout = QtGui.QVBoxLayout() layout.addWidget(QtGui.QLabel('Project')) layout.addWidget(self.project_search) layout.addWidget(QtGui.QLabel('Environment')) layout.addWidget(self.env_list) layout.addWidget(QtGui.QLabel('Engine')) layout.addWidget(self.engine) layout.addWidget(QtGui.QLabel('Requires')) layout.addWidget(self.req_list) layout.addLayout(button_layout) self.setLayout(layout) # Connect widgets self.project_search.activated.connect(self.on_project_changed) self.env_list.activated.connect(self.on_env_changed) self.import_button.clicked.connect(self.on_import_clicked) self.cancel_button.clicked.connect(self.on_cancel_clicked) self.setWindowTitle('Import Environments') self.setWindowIcon(QtGui.QIcon(res.get_path('icon_dark_256.png'))) self.update_projects()
def setupUi(self, CreateStorageDialog): CreateStorageDialog.setObjectName("CreateStorageDialog") CreateStorageDialog.resize(285, 94) CreateStorageDialog.setAutoFillBackground(True) self.verticalLayout_2 = QtGui.QVBoxLayout(CreateStorageDialog) self.verticalLayout_2.setSpacing(4) self.verticalLayout_2.setContentsMargins(12, 12, 12, 12) self.verticalLayout_2.setObjectName("verticalLayout_2") self.main_widget = QtGui.QWidget(CreateStorageDialog) self.main_widget.setObjectName("main_widget") self.verticalLayout = QtGui.QVBoxLayout(self.main_widget) self.verticalLayout.setSpacing(0) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.storage_name_layout = QtGui.QHBoxLayout() self.storage_name_layout.setSpacing(4) self.storage_name_layout.setObjectName("storage_name_layout") spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.storage_name_layout.addItem(spacerItem) self.storage_name_lbl = QtGui.QLabel(self.main_widget) self.storage_name_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.storage_name_lbl.setObjectName("storage_name_lbl") self.storage_name_layout.addWidget(self.storage_name_lbl) self.storage_name = QtGui.QLineEdit(self.main_widget) self.storage_name.setObjectName("storage_name") self.storage_name_layout.addWidget(self.storage_name) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.storage_name_layout.addItem(spacerItem1) self.storage_name_layout.setStretch(0, 5) self.storage_name_layout.setStretch(2, 15) self.verticalLayout.addLayout(self.storage_name_layout) self.info = QtGui.QLabel(self.main_widget) font = QtGui.QFont() font.setPointSize(10) self.info.setFont(font) self.info.setText("") self.info.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.info.setWordWrap(True) self.info.setObjectName("info") self.verticalLayout.addWidget(self.info) self.verticalLayout.setStretch(0, 1) self.verticalLayout.setStretch(1, 10) self.verticalLayout_2.addWidget(self.main_widget) self.button_box = QtGui.QDialogButtonBox(CreateStorageDialog) self.button_box.setLayoutDirection(QtCore.Qt.LeftToRight) self.button_box.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.button_box.setObjectName("button_box") self.verticalLayout_2.addWidget(self.button_box) self.retranslateUi(CreateStorageDialog) QtCore.QObject.connect(self.button_box, QtCore.SIGNAL("accepted()"), CreateStorageDialog.accept) QtCore.QObject.connect(self.button_box, QtCore.SIGNAL("rejected()"), CreateStorageDialog.reject) QtCore.QMetaObject.connectSlotsByName(CreateStorageDialog) CreateStorageDialog.setTabOrder(self.storage_name, self.button_box)
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) layout = QtGui.QFormLayout(self) self.setLayout(layout) self.edit = WidgetHandler(layout, "Edit", QtGui.QLineEdit(self)) self.number = WidgetHandler(layout, "Number", QtGui.QSpinBox(self)) self.check_box = CheckboxHandler(layout, "Boolean") self.edit.editor.setFocus() self.number.editor.setMinimum(0) self.number.editor.setMaximum(100)
def __init__(self, parent=None): super(Console, self).__init__(parent) self.setWindowTitle('Shotgun Desktop Console') self.setWindowIcon(QtGui.QIcon(":/tk-desktop/default_systray_icon.png")) self.__logs = QtGui.QPlainTextEdit() self.__find = QtGui.QLineEdit() self.__find_label = QtGui.QLabel() layout = QtGui.QVBoxLayout() find_layout = QtGui.QHBoxLayout() layout.addWidget(self.__logs) layout.addLayout(find_layout) find_layout.addStretch() find_layout.addWidget(self.__find) find_layout.addWidget(self.__find_label) self.setLayout(layout) # configure the text widget self.__logs.setReadOnly(True) self.__logs.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.__logs.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse) self.__logs.customContextMenuRequested.connect(self.on_logs_context_menu_request) self.__logs.setStyleSheet("QPlainTextEdit:focus { border: none; }") # configure the find area self.__find.setPlaceholderText("Find") self.__find_label.setText("No Results") self.__find_label.setFixedWidth(60) self.__find.returnPressed.connect(self.find) self.__pattern = "" self.__match_index = 0 self.__matches = [] # set shortcut find_shortcut = QtGui.QShortcut(QtGui.QKeySequence("Ctrl+F"), self) find_shortcut.activated.connect(self.focus_find) # load up previous size self._settings_manager = settings.UserSettings(sgtk.platform.current_bundle()) pos = self._settings_manager.retrieve("console.pos", self.pos(), self._settings_manager.SCOPE_GLOBAL) size = self._settings_manager.retrieve( "console.size", QtCore.QSize(800, 400), self._settings_manager.SCOPE_GLOBAL) self.move(pos) self.resize(size) self.__console_handler = ConsoleLogHandler(self) sgtk.LogManager().initialize_custom_handler(self.__console_handler)
def setupUi(self, SearchWidget): SearchWidget.setObjectName("SearchWidget") SearchWidget.resize(161, 50) self.horizontalLayout = QtGui.QHBoxLayout(SearchWidget) self.horizontalLayout.setSpacing(0) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") self.group = QtGui.QGroupBox(SearchWidget) self.group.setTitle("") self.group.setObjectName("group") self.horizontalLayout_2 = QtGui.QHBoxLayout(self.group) self.horizontalLayout_2.setSpacing(0) self.horizontalLayout_2.setContentsMargins(4, 15, 4, 2) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.search = QtGui.QLineEdit(self.group) self.search.setObjectName("search") self.horizontalLayout_2.addWidget(self.search) self.horizontalLayout.addWidget(self.group) self.retranslateUi(SearchWidget) QtCore.QMetaObject.connectSlotsByName(SearchWidget)
def _create_overlay_parent_widget(self): """ Creates a wiget with text, button and line edit to explain how the overlay works and showing how the overlay doesn't impact UI interaction when hidden. :returns: The widget who will own the overlay. """ # setup a dummy widget to cover with the overlay my_label = QtGui.QLabel( "This is a label widget with an <tt>OverlayWidget</tt> " "parented to it. When shown,<br>the overlay will cover this label " "and display a message, error, or pixmap.<br><br><b>Click the " "buttons below to simulate calling the overlay's methods.<b>" ) my_label.setWordWrap(True) my_label.setAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) my_label.setStyleSheet("border: 1px solid palette(base);") layout = QtGui.QVBoxLayout() layout.addWidget(my_label) layout.addWidget( QtGui.QPushButton( "When the overlay widget is hidden, you should be able to click this button." ) ) edit = QtGui.QLineEdit() if edit.setPlaceholderText: edit.setPlaceholderText( "When the overlay widget is hidden, you should be able to enter text." ) layout.addWidget(edit) parent_widget = QtGui.QWidget() parent_widget.setLayout(layout) return parent_widget
def __init__(self, parent=None): super(Client, self).__init__(parent) hostLabel = QtGui.QLabel("&Server name:") portLabel = QtGui.QLabel("S&erver port:") methodLabel = QtGui.QLabel("Method:") paramsLabel = QtGui.QLabel("Params:") self.hostLineEdit = QtGui.QLineEdit("127.0.0.1") self.portLineEdit = QtGui.QLineEdit("55893") self.portLineEdit.setValidator(QtGui.QIntValidator(1, 65535, self)) self.paramsLineEdit = QtGui.QLineEdit("{}") self.methodCombo = QtGui.QComboBox() self.resultsTextEdit = QtGui.QTextEdit("") hostLabel.setBuddy(self.hostLineEdit) portLabel.setBuddy(self.portLineEdit) paramsLabel.setBuddy(self.paramsLineEdit) methodLabel.setBuddy(self.methodCombo) self.statusLabel = QtGui.QLabel("Ready.") self.sendCommandButton = QtGui.QPushButton("Send") self.sendCommandButton.setDefault(True) self.sendCommandButton.setEnabled(False) quitButton = QtGui.QPushButton("Quit") self.connectButton = QtGui.QPushButton("Connect") buttonBox = QtGui.QDialogButtonBox() buttonBox.addButton( self.connectButton, QtGui.QDialogButtonBox.ActionRole ) buttonBox.addButton( self.sendCommandButton, QtGui.QDialogButtonBox.ActionRole ) buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole) self.hostLineEdit.textChanged.connect(self.enablesendCommandButton) self.portLineEdit.textChanged.connect(self.enablesendCommandButton) self.sendCommandButton.clicked.connect(self.sendCommand) self.connectButton.clicked.connect(self.connect_to_host) quitButton.clicked.connect(self.close) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(hostLabel, 0, 0) mainLayout.addWidget(self.hostLineEdit, 0, 1) mainLayout.addWidget(portLabel, 1, 0) mainLayout.addWidget(self.portLineEdit, 1, 1) mainLayout.addWidget(methodLabel, 2, 0) mainLayout.addWidget(self.methodCombo, 2, 1) mainLayout.addWidget(paramsLabel, 3, 0) mainLayout.addWidget(self.paramsLineEdit, 3, 1) mainLayout.addWidget(self.resultsTextEdit, 4, 1) mainLayout.addWidget(self.statusLabel, 5, 0, 1, 2) mainLayout.addWidget(buttonBox, 6, 0, 1, 2) self.setLayout(mainLayout) self.setWindowTitle("Toon Boom Harmony Engine Client") self.portLineEdit.setFocus() self.client = QTcpSocketClient(parent=self)
def _populate_ui(self): """ Build the UI. """ show_msg_box = QtGui.QPushButton("Click to show MessageBox") show_msg_box.clicked.connect(self._show_message_box) show_details_always = QtGui.QCheckBox("Always Show Details") show_details_always.clicked.connect(self._set_always_show_details) show_remember_checkbox = QtGui.QCheckBox("Hide Remember Checkbox") show_remember_checkbox.clicked.connect( self._set_show_remember_checkbox) show_details_text_label = QtGui.QLabel( "Customize the 'Show Details...' Button Text:") show_details_text_label.setToolTip("Leave blank to use default") self._show_details_text = QtGui.QLineEdit() show_details_text_layout = QtGui.QHBoxLayout() show_details_text_layout.addWidget(show_details_text_label) show_details_text_layout.addWidget(self._show_details_text) hide_details_text_label = QtGui.QLabel( "Customize the 'Hide Details...' Button Text:") hide_details_text_label.setToolTip("Leave blank to use default") self._hide_details_text = QtGui.QLineEdit() hide_details_text_layout = QtGui.QHBoxLayout() hide_details_text_layout.addWidget(hide_details_text_label) hide_details_text_layout.addWidget(self._hide_details_text) checkbox_options = QtGui.QHBoxLayout() checkbox_options.addWidget(show_details_always) checkbox_options.addWidget(show_remember_checkbox) checkbox_options.addStretch() toolbar_layout = QtGui.QVBoxLayout() toolbar_layout.addLayout(checkbox_options) toolbar_layout.addLayout(show_details_text_layout) toolbar_layout.addLayout(hide_details_text_layout) self._msg_box_result = QtGui.QLabel() self._msg_box_result.setToolTip( "This is the button role of the button that was clicked to close the dialog." ) self._button_clicked_result = QtGui.QLabel() self._msg_box_result.setToolTip( "This is the button that was clicked to close the dialog.") self._remember_value = QtGui.QLabel() self._msg_box_result.setToolTip( "This is the value of the 'remember' checkbox on closing the dialog." ) footer_layout = QtGui.QVBoxLayout() footer_layout.addWidget(self._msg_box_result) footer_layout.addWidget(self._button_clicked_result) footer_layout.addWidget(self._remember_value) # The main demo layout vlayout = QtGui.QVBoxLayout() vlayout.addLayout(toolbar_layout) vlayout.addStretch() vlayout.addWidget(show_msg_box) vlayout.addStretch() vlayout.addLayout(footer_layout) self.setLayout(vlayout)
def __init__(self, parent=None, url=None, display=None): """ Initialize the dialog. :param parent: Optional parent widget :param url: Optional url to insert it the input :param display: Optional display name to :return: """ super(_EditWebLinkDialog, self).__init__(parent) self.setMinimumWidth(350) url = url display = display self.setWindowTitle("Link to Web Page") # url input url_lbl = QtGui.QLabel("<h3>Web page address</h3>") self._url_input = QtGui.QLineEdit() if url: self._url_input.setText(url) self._url_input.selectAll() # display input display_lbl = QtGui.QLabel("Optional display name") self._display_input = QtGui.QLineEdit() if display: self._display_input.setText(display) self._display_input.selectAll() # get the highlight color btn_color = sgtk.platform.current_bundle().style_constants["SG_HIGHLIGHT_COLOR"] btn_palette = self.palette() btn_palette.setColor(QtGui.QPalette.Button, btn_color) # color the button to match the SG version. self._add_link_btn = QtGui.QPushButton("Add Link") self._add_link_btn.setEnabled(False) self._add_link_btn.setPalette(btn_palette) cancel_btn = QtGui.QPushButton("Cancel") # put the buttons together. Didn't user QDialogButtonBox since can't # control the order btn_box = QtGui.QHBoxLayout() btn_box.addStretch() btn_box.addWidget(cancel_btn) btn_box.addWidget(self._add_link_btn) layout = QtGui.QVBoxLayout(self) layout.addWidget(url_lbl) layout.addWidget(self._url_input) layout.addWidget(display_lbl) layout.addWidget(self._display_input) layout.addLayout(btn_box) # signals self._url_input.textChanged.connect(self._check_url) self._add_link_btn.clicked.connect(self.accept) cancel_btn.clicked.connect(self.reject)
def setupUi(self, StorageMapWidget): StorageMapWidget.setObjectName("StorageMapWidget") StorageMapWidget.resize(456, 182) StorageMapWidget.setAutoFillBackground(True) self.gridLayout_2 = QtGui.QGridLayout(StorageMapWidget) self.gridLayout_2.setContentsMargins(8, 8, 8, 8) self.gridLayout_2.setHorizontalSpacing(12) self.gridLayout_2.setVerticalSpacing(6) self.gridLayout_2.setObjectName("gridLayout_2") self.root_desc_layout = QtGui.QHBoxLayout() self.root_desc_layout.setSpacing(0) self.root_desc_layout.setObjectName("root_desc_layout") spacerItem = QtGui.QSpacerItem(12, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.root_desc_layout.addItem(spacerItem) self.stroage_root_desc_area = QtGui.QScrollArea(StorageMapWidget) self.stroage_root_desc_area.setFocusPolicy(QtCore.Qt.NoFocus) self.stroage_root_desc_area.setFrameShape(QtGui.QFrame.NoFrame) self.stroage_root_desc_area.setFrameShadow(QtGui.QFrame.Plain) self.stroage_root_desc_area.setWidgetResizable(True) self.stroage_root_desc_area.setObjectName("stroage_root_desc_area") self.storage_root_desc = QtGui.QWidget() self.storage_root_desc.setGeometry(QtCore.QRect(0, 0, 157, 104)) self.storage_root_desc.setObjectName("storage_root_desc") self.verticalLayout = QtGui.QVBoxLayout(self.storage_root_desc) self.verticalLayout.setSpacing(0) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.root_description = QtGui.QLabel(self.storage_root_desc) self.root_description.setStyleSheet("font-size: 10px;\n" "color: rgb(160, 160, 160);") self.root_description.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.root_description.setWordWrap(True) self.root_description.setObjectName("root_description") self.verticalLayout.addWidget(self.root_description) self.stroage_root_desc_area.setWidget(self.storage_root_desc) self.root_desc_layout.addWidget(self.stroage_root_desc_area) self.root_desc_layout.setStretch(0, 1) self.gridLayout_2.addLayout(self.root_desc_layout, 1, 0, 1, 1) self.storage_layout = QtGui.QHBoxLayout() self.storage_layout.setSpacing(6) self.storage_layout.setObjectName("storage_layout") self.storage_lbl = QtGui.QLabel(StorageMapWidget) self.storage_lbl.setObjectName("storage_lbl") self.storage_layout.addWidget(self.storage_lbl) self.storage_select_combo = QtGui.QComboBox(StorageMapWidget) self.storage_select_combo.setFocusPolicy(QtCore.Qt.NoFocus) self.storage_select_combo.setAutoFillBackground(True) self.storage_select_combo.setSizeAdjustPolicy( QtGui.QComboBox.AdjustToContents) self.storage_select_combo.setObjectName("storage_select_combo") self.storage_layout.addWidget(self.storage_select_combo) self.save_storage_btn = QtGui.QToolButton(StorageMapWidget) font = QtGui.QFont() font.setPointSize(10) self.save_storage_btn.setFont(font) self.save_storage_btn.setFocusPolicy(QtCore.Qt.NoFocus) self.save_storage_btn.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly) self.save_storage_btn.setObjectName("save_storage_btn") self.storage_layout.addWidget(self.save_storage_btn) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.storage_layout.addItem(spacerItem1) self.storage_layout.setStretch(0, 1) self.storage_layout.setStretch(1, 1) self.storage_layout.setStretch(2, 1) self.storage_layout.setStretch(3, 100) self.gridLayout_2.addLayout(self.storage_layout, 0, 1, 1, 1) self.paths_layout = QtGui.QHBoxLayout() self.paths_layout.setSpacing(0) self.paths_layout.setObjectName("paths_layout") self.path_frame = QtGui.QFrame(StorageMapWidget) self.path_frame.setObjectName("path_frame") self.gridLayout_3 = QtGui.QGridLayout(self.path_frame) self.gridLayout_3.setContentsMargins(6, 6, 6, 6) self.gridLayout_3.setSpacing(4) self.gridLayout_3.setObjectName("gridLayout_3") self.windows_path_lbl = QtGui.QLabel(self.path_frame) self.windows_path_lbl.setStyleSheet("font-size: 10px;\n" "color: rgb(120, 120, 120);") self.windows_path_lbl.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.windows_path_lbl.setObjectName("windows_path_lbl") self.gridLayout_3.addWidget(self.windows_path_lbl, 2, 0, 1, 1) self.windows_path_layout = QtGui.QHBoxLayout() self.windows_path_layout.setSpacing(4) self.windows_path_layout.setObjectName("windows_path_layout") self.windows_path = QtGui.QLineEdit(self.path_frame) self.windows_path.setEnabled(False) self.windows_path.setFocusPolicy(QtCore.Qt.NoFocus) self.windows_path.setObjectName("windows_path") self.windows_path_layout.addWidget(self.windows_path) self.windows_path_edit = QtGui.QLineEdit(self.path_frame) self.windows_path_edit.setFocusPolicy(QtCore.Qt.ClickFocus) self.windows_path_edit.setObjectName("windows_path_edit") self.windows_path_layout.addWidget(self.windows_path_edit) self.windows_path_layout.setStretch(0, 1) self.windows_path_layout.setStretch(1, 1) self.gridLayout_3.addLayout(self.windows_path_layout, 2, 1, 1, 1) self.linux_path_layout = QtGui.QHBoxLayout() self.linux_path_layout.setSpacing(4) self.linux_path_layout.setObjectName("linux_path_layout") self.linux_path = QtGui.QLineEdit(self.path_frame) self.linux_path.setEnabled(False) self.linux_path.setFocusPolicy(QtCore.Qt.NoFocus) self.linux_path.setObjectName("linux_path") self.linux_path_layout.addWidget(self.linux_path) self.linux_path_edit = QtGui.QLineEdit(self.path_frame) self.linux_path_edit.setFocusPolicy(QtCore.Qt.ClickFocus) self.linux_path_edit.setObjectName("linux_path_edit") self.linux_path_layout.addWidget(self.linux_path_edit) self.linux_path_layout.setStretch(0, 1) self.linux_path_layout.setStretch(1, 1) self.gridLayout_3.addLayout(self.linux_path_layout, 0, 1, 1, 1) self.linux_path_lbl = QtGui.QLabel(self.path_frame) self.linux_path_lbl.setStyleSheet("font-size: 10px;\n" "color: rgb(120, 120, 120);") self.linux_path_lbl.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.linux_path_lbl.setObjectName("linux_path_lbl") self.gridLayout_3.addWidget(self.linux_path_lbl, 0, 0, 1, 1) self.mac_path_lbl = QtGui.QLabel(self.path_frame) self.mac_path_lbl.setStyleSheet("font-size: 10px;\n" "color: rgb(120, 120, 120);") self.mac_path_lbl.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.mac_path_lbl.setObjectName("mac_path_lbl") self.gridLayout_3.addWidget(self.mac_path_lbl, 1, 0, 1, 1) self.mac_path_layout = QtGui.QHBoxLayout() self.mac_path_layout.setSpacing(4) self.mac_path_layout.setObjectName("mac_path_layout") self.mac_path = QtGui.QLineEdit(self.path_frame) self.mac_path.setEnabled(False) self.mac_path.setFocusPolicy(QtCore.Qt.NoFocus) self.mac_path.setObjectName("mac_path") self.mac_path_layout.addWidget(self.mac_path) self.mac_path_edit = QtGui.QLineEdit(self.path_frame) self.mac_path_edit.setFocusPolicy(QtCore.Qt.ClickFocus) self.mac_path_edit.setObjectName("mac_path_edit") self.mac_path_layout.addWidget(self.mac_path_edit) self.mac_path_layout.setStretch(0, 1) self.mac_path_layout.setStretch(1, 1) self.gridLayout_3.addLayout(self.mac_path_layout, 1, 1, 1, 1) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setSpacing(0) self.horizontalLayout_3.setObjectName("horizontalLayout_3") spacerItem2 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem2) self.linux_path_browse = QtGui.QToolButton(self.path_frame) self.linux_path_browse.setFocusPolicy(QtCore.Qt.NoFocus) icon = QtGui.QIcon() icon.addPixmap( QtGui.QPixmap( ":/tk-framework-adminui/setup_project/file_browse.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.linux_path_browse.setIcon(icon) self.linux_path_browse.setObjectName("linux_path_browse") self.horizontalLayout_3.addWidget(self.linux_path_browse) self.linux_lock = QtGui.QLabel(self.path_frame) self.linux_lock.setMinimumSize(QtCore.QSize(8, 11)) self.linux_lock.setMaximumSize(QtCore.QSize(8, 11)) self.linux_lock.setText("") self.linux_lock.setPixmap( QtGui.QPixmap( ":/tk-framework-adminui/setup_project/icon_lock.png")) self.linux_lock.setScaledContents(True) self.linux_lock.setObjectName("linux_lock") self.horizontalLayout_3.addWidget(self.linux_lock) spacerItem3 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem3) self.gridLayout_3.addLayout(self.horizontalLayout_3, 0, 2, 1, 1) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setSpacing(0) self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem4 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem4) self.mac_path_browse = QtGui.QToolButton(self.path_frame) self.mac_path_browse.setFocusPolicy(QtCore.Qt.NoFocus) self.mac_path_browse.setIcon(icon) self.mac_path_browse.setObjectName("mac_path_browse") self.horizontalLayout_4.addWidget(self.mac_path_browse) self.mac_lock = QtGui.QLabel(self.path_frame) self.mac_lock.setMinimumSize(QtCore.QSize(8, 11)) self.mac_lock.setMaximumSize(QtCore.QSize(8, 11)) self.mac_lock.setText("") self.mac_lock.setPixmap( QtGui.QPixmap( ":/tk-framework-adminui/setup_project/icon_lock.png")) self.mac_lock.setScaledContents(True) self.mac_lock.setObjectName("mac_lock") self.horizontalLayout_4.addWidget(self.mac_lock) spacerItem5 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem5) self.gridLayout_3.addLayout(self.horizontalLayout_4, 1, 2, 1, 1) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setSpacing(0) self.horizontalLayout_5.setObjectName("horizontalLayout_5") spacerItem6 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_5.addItem(spacerItem6) self.windows_path_browse = QtGui.QToolButton(self.path_frame) self.windows_path_browse.setFocusPolicy(QtCore.Qt.NoFocus) self.windows_path_browse.setIcon(icon) self.windows_path_browse.setObjectName("windows_path_browse") self.horizontalLayout_5.addWidget(self.windows_path_browse) self.windows_lock = QtGui.QLabel(self.path_frame) self.windows_lock.setMinimumSize(QtCore.QSize(8, 11)) self.windows_lock.setMaximumSize(QtCore.QSize(8, 11)) self.windows_lock.setText("") self.windows_lock.setPixmap( QtGui.QPixmap( ":/tk-framework-adminui/setup_project/icon_lock.png")) self.windows_lock.setScaledContents(True) self.windows_lock.setObjectName("windows_lock") self.horizontalLayout_5.addWidget(self.windows_lock) spacerItem7 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_5.addItem(spacerItem7) self.gridLayout_3.addLayout(self.horizontalLayout_5, 2, 2, 1, 1) self.gridLayout_3.setColumnStretch(0, 1) self.gridLayout_3.setColumnStretch(1, 100) self.gridLayout_3.setColumnStretch(2, 1) self.paths_layout.addWidget(self.path_frame) self.gridLayout_2.addLayout(self.paths_layout, 1, 1, 1, 1) self.root_name_layout = QtGui.QHBoxLayout() self.root_name_layout.setSpacing(4) self.root_name_layout.setObjectName("root_name_layout") self.root_name = QtGui.QLabel(StorageMapWidget) self.root_name.setObjectName("root_name") self.root_name_layout.addWidget(self.root_name) spacerItem8 = QtGui.QSpacerItem(40, 4, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.root_name_layout.addItem(spacerItem8) self.root_name_layout.setStretch(0, 1) self.root_name_layout.setStretch(1, 10) self.gridLayout_2.addLayout(self.root_name_layout, 0, 0, 1, 1) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.count_lbl = QtGui.QLabel(StorageMapWidget) self.count_lbl.setStyleSheet("font-size: 10px;\n" "color: rgb(120, 120, 120);") self.count_lbl.setText("") self.count_lbl.setObjectName("count_lbl") self.horizontalLayout_2.addWidget(self.count_lbl) spacerItem9 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem9) self.storage_info = QtGui.QLabel(StorageMapWidget) self.storage_info.setStyleSheet("font-size: 10px;\n" "color: rgb(252, 98, 70);") self.storage_info.setText("") self.storage_info.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.storage_info.setWordWrap(True) self.storage_info.setObjectName("storage_info") self.horizontalLayout_2.addWidget(self.storage_info) self.horizontalLayout_2.setStretch(0, 1) self.horizontalLayout_2.setStretch(1, 1) self.horizontalLayout_2.setStretch(2, 10) self.gridLayout_2.addLayout(self.horizontalLayout_2, 2, 0, 1, 2) self.gridLayout_2.setColumnStretch(0, 2) self.gridLayout_2.setColumnStretch(1, 3) self.gridLayout_2.setRowStretch(0, 1) self.retranslateUi(StorageMapWidget) QtCore.QMetaObject.connectSlotsByName(StorageMapWidget)
def setupUi(self, NewTaskForm): NewTaskForm.setObjectName("NewTaskForm") NewTaskForm.resize(380, 270) NewTaskForm.setMinimumSize(QtCore.QSize(380, 270)) self.verticalLayout = QtGui.QVBoxLayout(NewTaskForm) self.verticalLayout.setSpacing(4) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.verticalLayout_2 = QtGui.QVBoxLayout() self.verticalLayout_2.setSpacing(20) self.verticalLayout_2.setContentsMargins(12, 12, 12, 4) self.verticalLayout_2.setObjectName("verticalLayout_2") self.label_3 = QtGui.QLabel(NewTaskForm) self.label_3.setWordWrap(True) self.label_3.setObjectName("label_3") self.verticalLayout_2.addWidget(self.label_3) self.gridLayout = QtGui.QGridLayout() self.gridLayout.setHorizontalSpacing(20) self.gridLayout.setVerticalSpacing(6) self.gridLayout.setObjectName("gridLayout") self.assigned_to = QtGui.QLabel(NewTaskForm) self.assigned_to.setObjectName("assigned_to") self.gridLayout.addWidget(self.assigned_to, 7, 2, 1, 1) self.label_6 = QtGui.QLabel(NewTaskForm) font = QtGui.QFont() font.setWeight(75) font.setBold(True) self.label_6.setFont(font) self.label_6.setObjectName("label_6") self.gridLayout.addWidget(self.label_6, 7, 0, 1, 1) self.label_4 = QtGui.QLabel(NewTaskForm) font = QtGui.QFont() font.setWeight(75) font.setBold(True) self.label_4.setFont(font) self.label_4.setObjectName("label_4") self.gridLayout.addWidget(self.label_4, 8, 0, 1, 1) self.pipeline_step = QtGui.QComboBox(NewTaskForm) self.pipeline_step.setObjectName("pipeline_step") self.gridLayout.addWidget(self.pipeline_step, 1, 2, 1, 1) spacerItem = QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.gridLayout.addItem(spacerItem, 6, 0, 1, 1) self.entity = QtGui.QLabel(NewTaskForm) self.entity.setObjectName("entity") self.gridLayout.addWidget(self.entity, 8, 2, 1, 1) self.label = QtGui.QLabel(NewTaskForm) font = QtGui.QFont() font.setWeight(75) font.setBold(True) self.label.setFont(font) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 1, 0, 1, 1) self.label_2 = QtGui.QLabel(NewTaskForm) font = QtGui.QFont() font.setWeight(75) font.setBold(True) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1) self.task_name = QtGui.QLineEdit(NewTaskForm) self.task_name.setObjectName("task_name") self.gridLayout.addWidget(self.task_name, 0, 2, 1, 1) self.gridLayout.setColumnStretch(2, 1) self.verticalLayout_2.addLayout(self.gridLayout) self.warning = QtGui.QLabel(NewTaskForm) self.warning.setText("") self.warning.setWordWrap(True) self.warning.setObjectName("warning") self.verticalLayout_2.addWidget(self.warning) self.verticalLayout.addLayout(self.verticalLayout_2) spacerItem1 = QtGui.QSpacerItem(20, 11, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem1) self.break_line = QtGui.QFrame(NewTaskForm) self.break_line.setFrameShape(QtGui.QFrame.HLine) self.break_line.setFrameShadow(QtGui.QFrame.Sunken) self.break_line.setObjectName("break_line") self.verticalLayout.addWidget(self.break_line) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint) self.horizontalLayout.setContentsMargins(12, 8, 12, 12) self.horizontalLayout.setObjectName("horizontalLayout") spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem2) self.cancel_btn = QtGui.QPushButton(NewTaskForm) self.cancel_btn.setObjectName("cancel_btn") self.horizontalLayout.addWidget(self.cancel_btn) self.create_btn = QtGui.QPushButton(NewTaskForm) self.create_btn.setDefault(True) self.create_btn.setObjectName("create_btn") self.horizontalLayout.addWidget(self.create_btn) self.verticalLayout.addLayout(self.horizontalLayout) self.verticalLayout.setStretch(2, 1) self.retranslateUi(NewTaskForm) QtCore.QObject.connect(self.cancel_btn, QtCore.SIGNAL("clicked()"), NewTaskForm.close) QtCore.QMetaObject.connectSlotsByName(NewTaskForm) NewTaskForm.setTabOrder(self.task_name, self.pipeline_step) NewTaskForm.setTabOrder(self.pipeline_step, self.create_btn) NewTaskForm.setTabOrder(self.create_btn, self.cancel_btn)
def update_extra_tokens_widgets(self, template, missing_keys): missing_keys_dict = {} for key in missing_keys: if key in template.keys: keyObj = template.keys[key] missing_keys_dict[key] = keyObj parent = self.ui.extraTokensWidget parent_lay = self.ui.extraTokensWidgetLayout self.clear_extra_token_widgets() keys = missing_keys_dict.keys() keys.sort() row_cnt = 0 context_dict = self.context.to_dict() name = "%s_%s" % (context_dict['entity']['name'], context_dict['task']['name']) # self.log.info(name) if not keys: label = QtGui.QLabel('No Extra Keys found...', parent=parent) parent_lay.addWidget(label, row_cnt, 0) else: for key in keys: # self.log.info(key) # self.log.info(missing_keys_dict[key].default) if key == 'name': value = name elif key == 'version': # self.log.info(self.fields) work_area_template = self._template_work_area() path = work_area_template.apply_fields(self.fields) # self.log.info(path) try: if os.path.exists(path): files = os.listdir(path) # self.log.info(files) if files: work_files = [ s for s in files if os.path.isfile(os.path.join(path, s)) ] # self.log.info(work_files) if work_files: version = len([ x for x in work_files if x.split('.')[-1].lower() == self.extension[self.app_name] ]) + 1 else: version = 1 else: version = 1 # self.log.info([version]) else: version = 1 # self.log.info([version]) except Exception, e: self.log.error(e) # self.log.info(version) value = str(version) else: value = str(missing_keys_dict[key].default) label = QtGui.QLabel(str(key), parent=parent) # lineedit = QtGui.QLineEdit(str(missing_keys_dict[key].default), parent=parent) lineedit = QtGui.QLineEdit(value, parent=parent) lineedit.data = missing_keys_dict[ key] # Not ideal to store to object, but QLabel has no data storage method lineedit.editingFinished.connect( self.update_template_file_path) parent_lay.addWidget(label, row_cnt, 0) parent_lay.addWidget(lineedit, row_cnt, 1) row_cnt += 1
def __init__(self): """ Constructor """ # first, call the base class and let it do its thing. QtGui.QWidget.__init__(self) # now load in the UI that was created in the UI designer self.ui = Ui_Dialog() self.ui.setupUi(self) ################################################# # maintain a list where we keep a reference to # all the dynamic UI we create. This is to make # the GC happy. self._dynamic_widgets = [] # most of the useful accessors are available through the Application class instance # it is often handy to keep a reference to this. You can get it via the following method: app = sgtk.platform.current_bundle() tab = self.ui.frame layout = QtGui.QVBoxLayout(tab) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) view = QtGui.QTreeView(tab) layout.addWidget(view) # a horiz layout to host search hlayout = QtGui.QHBoxLayout() layout.addLayout(hlayout) # add search textfield search = QtGui.QLineEdit(tab) search.setStyleSheet("QLineEdit{ border-width: 1px; " "background-image: url(:/res/search.png);" "background-repeat: no-repeat;" "background-position: center left;" "border-radius: 5px; " "padding-left:20px;" "margin:4px;" "height:22px;" "}") search.setToolTip( "Use the <i>search</i> field to narrow down the items displayed in the tree above." ) try: # this was introduced in qt 4.7, so try to use it if we can... :) search.setPlaceholderText("Search...") except: pass hlayout.addWidget(search) # and add a cancel search button, disabled by default clear_search = QtGui.QToolButton(tab) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/res/clear_search.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) clear_search.setIcon(icon) clear_search.setAutoRaise(True) clear_search.clicked.connect(lambda editor=search: editor.setText("")) clear_search.setToolTip("Click to clear your current search.") hlayout.addWidget(clear_search) # set up data backend filters = [ ["project", "is", app.context.project], # ["step", "in", # [ # {'code': 'Art', 'entity_type': 'Asset', 'id': 9, 'type': 'Step'}, # {'code': 'Model', 'entity_type': 'Asset', 'id': 10, 'type': 'Step'}, # {'code': 'Rig', 'entity_type': 'Asset', 'id': 11, 'type': 'Step'}, # {'code': 'Rendering', 'entity_type': 'Asset', 'id': 12, 'type': 'Step'}, # {'code': 'Grooming', 'entity_type': 'Asset', 'id': 14, 'type': 'Step'}, # {'code': 'texturing', 'entity_type': 'Asset', 'id': 47, 'type': 'Step'}, # {'code': 'Simulation', 'entity_type': 'Asset', 'id': 48, 'type': 'Step'} # ] # ] ] sg_entity_type = "Task" model = SgEntityModel(self, view, sg_entity_type, filters, ["entity", "content"]) # set up right click menu action_ea = QtGui.QAction("Expand All Folders", view) action_ca = QtGui.QAction("Collapse All Folders", view) action_refresh = QtGui.QAction("Refresh", view) action_ea.triggered.connect(view.expandAll) action_ca.triggered.connect(view.collapseAll) action_refresh.triggered.connect(model.async_refresh) view.addAction(action_ea) view.addAction(action_ca) view.addAction(action_refresh) view.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) # make sure we keep a handle to all the new objects # otherwise the GC may not work self._dynamic_widgets.extend([ tab, layout, hlayout, search, clear_search, view, action_ea, action_ca, action_refresh ]) # set up proxy model that we connect our search to proxy_model = SgEntityProxyModel(self) proxy_model.setSourceModel(model) search.textChanged.connect(lambda text, v=view, pm=proxy_model: self. _on_search_text_changed(text, v, pm)) # configure the view view.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) view.setProperty("showDropIndicator", False) view.setIconSize(QtCore.QSize(20, 20)) view.setStyleSheet("QTreeView::item { padding: 6px; }") view.setUniformRowHeights(True) view.setHeaderHidden(True) view.setModel(proxy_model) # by first creating a direct handle to the selection model before # setting up signal / slots selection_model = view.selectionModel() self._dynamic_widgets.append(selection_model) #selection_model.selectionChanged.connect(self._on_treeview_item_selected) # finally store all these objects keyed by the caption self.ep = EntityPreset(sg_entity_type, model, proxy_model, view) # ctx = sgtk.platform.current_bundle().context # ctx # DROP AREA self.dropArea = DropWidget(self) self.ui.horizontalLayout.addWidget(self.dropArea) model.async_refresh()
def setupUi(self, FileSaveForm): FileSaveForm.setObjectName("FileSaveForm") FileSaveForm.resize(850, 539) self.verticalLayout = QtGui.QVBoxLayout(FileSaveForm) self.verticalLayout.setSpacing(4) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.verticalLayout_3 = QtGui.QVBoxLayout() self.verticalLayout_3.setContentsMargins(12, 12, 12, 4) self.verticalLayout_3.setObjectName("verticalLayout_3") self.gridLayout_2 = QtGui.QGridLayout() self.gridLayout_2.setObjectName("gridLayout_2") self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setSpacing(1) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.expand_checkbox = QtGui.QCheckBox(FileSaveForm) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.expand_checkbox.sizePolicy().hasHeightForWidth()) self.expand_checkbox.setSizePolicy(sizePolicy) self.expand_checkbox.setMaximumSize(QtCore.QSize(16777215, 24)) self.expand_checkbox.setStyleSheet( "#expand_checkbox::indicator {\n" "width: 24;\n" "height: 24;\n" "}\n" "\n" "#expand_checkbox::indicator::unchecked {\n" " image: url(:/tk-multi-workfiles2/save_expand.png);\n" "\n" "}\n" "\n" "#expand_checkbox::indicator::unchecked::hover {\n" " image: url(:/tk-multi-workfiles2/save_expand_hover.png);\n" "}\n" "\n" "#expand_checkbox::indicator::unchecked::pressed {\n" " image: url(:/tk-multi-workfiles2/save_expand_pressed.png);\n" "}\n" "\n" "#expand_checkbox::indicator::checked {\n" " image: url(:/tk-multi-workfiles2/save_collapse.png);\n" "}\n" "\n" "#expand_checkbox::indicator::checked:hover {\n" " image: url(:/tk-multi-workfiles2/save_collapse_hover.png);\n" "}\n" "\n" "#expand_checkbox::indicator::checked:pressed {\n" " image: url(:/tk-multi-workfiles2/save_collapse_pressed.png);\n" "}") self.expand_checkbox.setText("") self.expand_checkbox.setObjectName("expand_checkbox") self.horizontalLayout_3.addWidget(self.expand_checkbox) self.gridLayout_2.addLayout(self.horizontalLayout_3, 0, 0, 1, 1) self.nav = NavigationWidget(FileSaveForm) self.nav.setMinimumSize(QtCore.QSize(80, 30)) self.nav.setStyleSheet("#nav {\n" "background-color: rgb(255, 128, 0);\n" "}") self.nav.setObjectName("nav") self.gridLayout_2.addWidget(self.nav, 0, 1, 1, 1) self.breadcrumbs = BreadcrumbWidget(FileSaveForm) self.breadcrumbs.setMinimumSize(QtCore.QSize(0, 30)) self.breadcrumbs.setStyleSheet("#breadcrumbs {\n" "background-color: rgb(255, 128, 0);\n" "}") self.breadcrumbs.setObjectName("breadcrumbs") self.gridLayout_2.addWidget(self.breadcrumbs, 0, 2, 1, 1) self.gridLayout_2.setColumnStretch(2, 1) self.verticalLayout_3.addLayout(self.gridLayout_2) self.browser = BrowserForm(FileSaveForm) self.browser.setStyleSheet("#browser {\n" "background-color: rgb(255, 128, 0);\n" "}") self.browser.setObjectName("browser") self.verticalLayout_3.addWidget(self.browser) self.verticalLayout_3.setStretch(1, 1) self.verticalLayout.addLayout(self.verticalLayout_3) self.line = QtGui.QFrame(FileSaveForm) self.line.setFrameShape(QtGui.QFrame.HLine) self.line.setFrameShadow(QtGui.QFrame.Sunken) self.line.setObjectName("line") self.verticalLayout.addWidget(self.line) self.verticalLayout_2 = QtGui.QVBoxLayout() self.verticalLayout_2.setSpacing(20) self.verticalLayout_2.setContentsMargins(12, 4, 12, 4) self.verticalLayout_2.setObjectName("verticalLayout_2") self.file_controls_grid = QtGui.QGridLayout() self.file_controls_grid.setHorizontalSpacing(14) self.file_controls_grid.setVerticalSpacing(6) self.file_controls_grid.setObjectName("file_controls_grid") self.version_label = QtGui.QLabel(FileSaveForm) self.version_label.setMinimumSize(QtCore.QSize(0, 0)) self.version_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.version_label.setIndent(-1) self.version_label.setObjectName("version_label") self.file_controls_grid.addWidget(self.version_label, 1, 0, 1, 1) self.name_label = QtGui.QLabel(FileSaveForm) self.name_label.setMinimumSize(QtCore.QSize(0, 0)) self.name_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.name_label.setIndent(-1) self.name_label.setObjectName("name_label") self.file_controls_grid.addWidget(self.name_label, 0, 0, 1, 1) self.file_type_label = QtGui.QLabel(FileSaveForm) self.file_type_label.setMinimumSize(QtCore.QSize(0, 0)) self.file_type_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.file_type_label.setIndent(-1) self.file_type_label.setObjectName("file_type_label") self.file_controls_grid.addWidget(self.file_type_label, 2, 0, 1, 1) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setSpacing(-1) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.version_spinner = QtGui.QSpinBox(FileSaveForm) self.version_spinner.setMaximum(9999999) self.version_spinner.setObjectName("version_spinner") self.horizontalLayout_2.addWidget(self.version_spinner) self.use_next_available_cb = QtGui.QCheckBox(FileSaveForm) self.use_next_available_cb.setObjectName("use_next_available_cb") self.horizontalLayout_2.addWidget(self.use_next_available_cb) spacerItem = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem) self.file_controls_grid.addLayout(self.horizontalLayout_2, 1, 1, 1, 1) self.horizontalLayout_6 = QtGui.QHBoxLayout() self.horizontalLayout_6.setSpacing(0) self.horizontalLayout_6.setObjectName("horizontalLayout_6") self.file_type_menu = QtGui.QComboBox(FileSaveForm) self.file_type_menu.setMinimumSize(QtCore.QSize(200, 0)) self.file_type_menu.setObjectName("file_type_menu") self.horizontalLayout_6.addWidget(self.file_type_menu) spacerItem1 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_6.addItem(spacerItem1) self.file_controls_grid.addLayout(self.horizontalLayout_6, 2, 1, 1, 1) self.horizontalLayout_8 = QtGui.QHBoxLayout() self.horizontalLayout_8.setSpacing(0) self.horizontalLayout_8.setObjectName("horizontalLayout_8") self.name_edit = QtGui.QLineEdit(FileSaveForm) self.name_edit.setMaximumSize(QtCore.QSize(200, 16777215)) self.name_edit.setFrame(True) self.name_edit.setObjectName("name_edit") self.horizontalLayout_8.addWidget(self.name_edit) spacerItem2 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_8.addItem(spacerItem2) self.horizontalLayout_8.setStretch(0, 1) self.file_controls_grid.addLayout(self.horizontalLayout_8, 0, 1, 1, 1) self.file_controls_grid.setColumnMinimumWidth(0, 80) self.file_controls_grid.setColumnStretch(1, 1) self.verticalLayout_2.addLayout(self.file_controls_grid) self.feedback_stacked_widget = QtGui.QStackedWidget(FileSaveForm) self.feedback_stacked_widget.setObjectName("feedback_stacked_widget") self.preview_page = QtGui.QWidget() self.preview_page.setObjectName("preview_page") self.verticalLayout_4 = QtGui.QVBoxLayout(self.preview_page) self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) self.verticalLayout_4.setObjectName("verticalLayout_4") self.preview_grid = QtGui.QGridLayout() self.preview_grid.setHorizontalSpacing(14) self.preview_grid.setVerticalSpacing(1) self.preview_grid.setObjectName("preview_grid") self.preview_label = QtGui.QLabel(self.preview_page) self.preview_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTop | QtCore.Qt.AlignTrailing) self.preview_label.setIndent(-1) self.preview_label.setObjectName("preview_label") self.preview_grid.addWidget(self.preview_label, 0, 0, 1, 1) self.file_name_preview = QtGui.QLabel(self.preview_page) self.file_name_preview.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.file_name_preview.setWordWrap(True) self.file_name_preview.setIndent(-1) self.file_name_preview.setObjectName("file_name_preview") self.preview_grid.addWidget(self.file_name_preview, 0, 1, 1, 1) self.work_area_preview = ElidedLabel(self.preview_page) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.work_area_preview.sizePolicy().hasHeightForWidth()) self.work_area_preview.setSizePolicy(sizePolicy) self.work_area_preview.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.work_area_preview.setWordWrap(True) self.work_area_preview.setIndent(-1) self.work_area_preview.setTextInteractionFlags( QtCore.Qt.TextSelectableByMouse) self.work_area_preview.setObjectName("work_area_preview") self.preview_grid.addWidget(self.work_area_preview, 1, 1, 1, 1) self.work_area_label = QtGui.QLabel(self.preview_page) self.work_area_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTop | QtCore.Qt.AlignTrailing) self.work_area_label.setIndent(-1) self.work_area_label.setObjectName("work_area_label") self.preview_grid.addWidget(self.work_area_label, 1, 0, 1, 1) self.preview_grid.setColumnMinimumWidth(0, 80) self.preview_grid.setColumnStretch(1, 1) self.verticalLayout_4.addLayout(self.preview_grid) self.feedback_stacked_widget.addWidget(self.preview_page) self.warning_page = QtGui.QWidget() self.warning_page.setObjectName("warning_page") self.horizontalLayout_7 = QtGui.QHBoxLayout(self.warning_page) self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_7.setObjectName("horizontalLayout_7") self.warning_grid = QtGui.QGridLayout() self.warning_grid.setContentsMargins(0, -1, -1, -1) self.warning_grid.setHorizontalSpacing(14) self.warning_grid.setVerticalSpacing(6) self.warning_grid.setObjectName("warning_grid") self.warning = QtGui.QLabel(self.warning_page) self.warning.setMinimumSize(QtCore.QSize(0, 45)) self.warning.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.warning.setWordWrap(True) self.warning.setMargin(0) self.warning.setIndent(-1) self.warning.setTextInteractionFlags( QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByKeyboard | QtCore.Qt.TextSelectableByMouse) self.warning.setObjectName("warning") self.warning_grid.addWidget(self.warning, 0, 1, 1, 1) self.warning_label = QtGui.QLabel(self.warning_page) self.warning_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTop | QtCore.Qt.AlignTrailing) self.warning_label.setIndent(-1) self.warning_label.setObjectName("warning_label") self.warning_grid.addWidget(self.warning_label, 0, 0, 1, 1) self.warning_grid.setColumnMinimumWidth(0, 80) self.warning_grid.setColumnStretch(1, 1) self.horizontalLayout_7.addLayout(self.warning_grid) self.feedback_stacked_widget.addWidget(self.warning_page) self.verticalLayout_2.addWidget(self.feedback_stacked_widget) self.verticalLayout_2.setStretch(1, 1) self.verticalLayout.addLayout(self.verticalLayout_2) spacerItem3 = QtGui.QSpacerItem(20, 0, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem3) self.break_line = QtGui.QFrame(FileSaveForm) self.break_line.setFrameShape(QtGui.QFrame.HLine) self.break_line.setFrameShadow(QtGui.QFrame.Sunken) self.break_line.setObjectName("break_line") self.verticalLayout.addWidget(self.break_line) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setContentsMargins(12, 8, 12, 12) self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem4 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem4) self.cancel_btn = QtGui.QPushButton(FileSaveForm) self.cancel_btn.setObjectName("cancel_btn") self.horizontalLayout_4.addWidget(self.cancel_btn) self.save_btn = QtGui.QPushButton(FileSaveForm) self.save_btn.setDefault(True) self.save_btn.setObjectName("save_btn") self.horizontalLayout_4.addWidget(self.save_btn) self.verticalLayout.addLayout(self.horizontalLayout_4) self.verticalLayout.setStretch(0, 1) self.retranslateUi(FileSaveForm) self.feedback_stacked_widget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(FileSaveForm) FileSaveForm.setTabOrder(self.name_edit, self.version_spinner) FileSaveForm.setTabOrder(self.version_spinner, self.use_next_available_cb) FileSaveForm.setTabOrder(self.use_next_available_cb, self.file_type_menu) FileSaveForm.setTabOrder(self.file_type_menu, self.cancel_btn) FileSaveForm.setTabOrder(self.cancel_btn, self.save_btn) FileSaveForm.setTabOrder(self.save_btn, self.expand_checkbox)
def __init__(self, entity_type, entity_id, parent): """ :param entity_type: Entity type to display tasks for :param entity_id: Entity id to display tasks for :param parent: The model parent. :type parent: :class:`~PySide.QtGui.QObject` """ super(WorkAreaDialog, self).__init__(parent) # now load in the UI that was created in the UI designer self.ui = Ui_WorkAreaDialog() self.ui.setupUi(self) # double clicking an item in the list closes the dialog self.ui.task_list.itemDoubleClicked.connect(self.accept) self._bundle = sgtk.platform.current_bundle() # find information about the main item main_item = self._bundle.shotgun.find_one( entity_type, [["id", "is", entity_id]], ["code", "description"] ) if main_item.get("code"): entity_name = "%s %s" % ( shotgun_globals.get_type_display_name(entity_type), main_item.get("code"), ) else: entity_name = "Unnamed %s" % shotgun_globals.get_type_display_name( entity_type ) # # insert main item # self._main_item = QtGui.QListWidgetItem(entity_name, self.ui.task_list) # self._main_item.setToolTip(main_item.get("description") or "No description found.") # self._main_item.setData(self.ENTITY_TYPE_ROLE, entity_type) # self._main_item.setData(self.ENTITY_ID_ROLE, entity_id) # # # make this selected by default # self._main_item.setSelected(True) # now get all tasks from Shotgun tasks = self._bundle.shotgun.find( "Task", [["entity", "is", {"type": entity_type, "id": entity_id}]], ["content", "step", "sg_status_list", "task_assignees"], ) # insert into list for task in tasks: task_name = "Task %s on %s" % (task["content"], entity_name) # indicate users assigned if task["task_assignees"]: task_name += " (%s)" % ", ".join( [x["name"] for x in task["task_assignees"]] ) task_item = QtGui.QListWidgetItem(task_name, self.ui.task_list) task_item.setData(self.ENTITY_TYPE_ROLE, task["type"]) task_item.setData(self.ENTITY_ID_ROLE, task["id"]) # as the last item, create the "create new task widget" # embedded into a list widget self.new_task = QtGui.QWidget(self) self.new_task.setObjectName("new_task") self.horizontalLayout_2 = QtGui.QHBoxLayout(self.new_task) self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) self.task_name = QtGui.QLineEdit(self.new_task) self.task_name.setObjectName("task_name") self.horizontalLayout_2.addWidget(self.task_name) self.step_combo = QtGui.QComboBox(self.new_task) self.step_combo.setObjectName("step_combo") self.horizontalLayout_2.addWidget(self.step_combo) self.task_name.setPlaceholderText("Create new task...") self._new_item = QtGui.QListWidgetItem(self.ui.task_list) self.ui.task_list.setItemWidget(self._new_item, self.new_task) # find the steps for this entity type steps = self._bundle.shotgun.find( "Step", [["entity_type", "is", entity_type]], ["code", "id"] ) # populate combo box for step in steps: self.step_combo.addItem(step["code"], step["id"]) # install filter so that when the task name is clicked # the list widget is selected self.task_name.installEventFilter(self)
def _setup_ui(self): self.setWindowTitle('Flipbook') #Top lout upper_bar = QtGui.QHBoxLayout() title_lab = QtGui.QLabel('Flipbook versioning system') refresh_but = QtGui.QPushButton() refresh_but.setFixedSize(25, 25) icon = QtGui.QIcon( os.path.abspath( os.path.join(os.path.dirname(__file__), "..", "..", "resources", "refresh.png"))) refresh_but.setIcon(icon) refresh_but.clicked.connect(self._refresh_treewidget) upper_bar.addWidget(title_lab) upper_bar.addWidget(refresh_but) #Tree layout self._tree_widget = QtGui.QTreeWidget() self._tree_widget.itemClicked.connect(self._set_flipbook_name_sel) self._tree_widget.setColumnCount( len(self._column_names.get_nice_names())) self._tree_widget.setHeaderLabels(self._column_names.get_nice_names()) self._tree_widget.setSelectionMode( QtGui.QAbstractItemView.SelectionMode.ExtendedSelection) self._tree_widget.header().setSectionsMovable(False) self._tree_widget.header().resizeSections( QtGui.QHeaderView.ResizeToContents) self._tree_widget.itemDoubleClicked.connect(self._item_double_clicked) self._tree_widget.itemExpanded.connect(self._item_expanded) tree_bar = QtGui.QHBoxLayout() del_but = QtGui.QPushButton('Delete') del_but.clicked.connect(self._del_flipbooks) load_but = QtGui.QPushButton('Load in Mplay') load_but.clicked.connect(self._load_flipbooks) send_but = QtGui.QPushButton('Copy Path') send_but.clicked.connect(self._copy_flipbook_clipboard) publish_but = QtGui.QPushButton('Publish') publish_but.clicked.connect(self._publish_flipbook) tree_bar.addWidget(del_but) tree_bar.addWidget(load_but) tree_bar.addWidget(send_but) tree_bar.addWidget(publish_but) #New flipbook layout new_flipbook_bar = QtGui.QVBoxLayout() title_label = QtGui.QLabel('New Flipbook Settings') #Name name_bar = QtGui.QHBoxLayout() self._name_line = QtGui.QLineEdit() self._name_line.setPlaceholderText('flipbook') name_bar.addWidget(self._name_line) name_box = QtGui.QGroupBox('Flipbook Name') name_box.setLayout(name_bar) #Comment comment_bar = QtGui.QHBoxLayout() self._comment_line = QtGui.QLineEdit() self._comment_line.returnPressed.connect(self._create_flipbook) comment_bar.addWidget(self._comment_line) comment_box = QtGui.QGroupBox('Comment') comment_box.setLayout(comment_bar) name_comment_layout = QtGui.QHBoxLayout() name_comment_layout.addWidget(name_box) name_comment_layout.addWidget(comment_box) #Create Name Button Larout name_but_layout = QtGui.QHBoxLayout() name_but_layout.addLayout(name_comment_layout) #Range range_bar = QtGui.QHBoxLayout() self._start_line = QtGui.QLineEdit() self._start_line.setPlaceholderText('$RFSTART') self._end_line = QtGui.QLineEdit() self._end_line.setPlaceholderText('$RFEND') range_bar.addWidget(self._start_line) range_bar.addWidget(self._end_line) range_box = QtGui.QGroupBox('Range') range_box.setLayout(range_bar) #Create button create_bar = QtGui.QVBoxLayout() self._beauty_toggle = QtGui.QCheckBox('Render Bg') self._beauty_toggle.setCheckState(QtCore.Qt.CheckState.Unchecked) create_but = QtGui.QPushButton('Create') create_but.setDefault(True) create_but.clicked.connect(self._create_flipbook) create_bar.addWidget(self._beauty_toggle) create_bar.addWidget(create_but) #Create Range Res Layout groupbox_layout = QtGui.QHBoxLayout() groupbox_layout.addWidget(range_box) groupbox_layout.addLayout(create_bar) new_flipbook_bar.addWidget(title_label) new_flipbook_bar.addLayout(name_but_layout) new_flipbook_bar.addLayout(groupbox_layout) #Create final layout self.setLayout(QtGui.QVBoxLayout()) self.layout().addLayout(upper_bar) self.layout().addWidget(self._tree_widget) self.layout().addLayout(tree_bar) self.layout().addLayout(new_flipbook_bar)
def __init__(self, *args, **kwargs): # Get field defaults fields = kwargs.pop('fields', None) fields.setdefault('title', None) fields.setdefault('priority', None) fields.setdefault('type', None) fields.setdefault('description', None) fields.setdefault('context', None) fields.setdefault('error', None) fields.setdefault('message', None) fields.setdefault('assignee', None) self._exc_info = fields.pop('exc_info', None) # Initialize widget super(TicketsSubmitter, self).__init__(*args, **kwargs) # Create task manager self._task_manager = task_manager.BackgroundTaskManager( parent=self, start_processing=True, max_threads=2, ) self._assignee = None self._context = None # Create widgets self.message = QtGui.QLabel() self.message.setWordWrap(True) self.sep0 = QtGui.QFrame() self.sep0.setFrameShape(self.sep0.HLine) self.sep0.setFrameShadow(self.sep0.Sunken) self.context_selector = context_selector.ContextWidget(self) self.context_selector.set_up(self._task_manager) self.context_selector.ui.label.setText('Ticket Context') self.context_selector.ui.label.hide() self.context_selector.context_changed.connect(self._on_context_changed) self.sep1 = QtGui.QFrame() self.sep1.setFrameShape(self.sep1.HLine) self.sep1.setFrameShadow(self.sep1.Sunken) self.title = QtGui.QLineEdit(self) self.type = QtGui.QComboBox(self) self.type.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding, ) self.priority = QtGui.QComboBox(self) self.priority.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding, ) self.assignee = shotgun_search_widget.GlobalSearchWidget(self) self.assignee.set_searchable_entity_types({ 'HumanUser': [['sg_status_list', 'is', 'act']], 'Group': [], }) self.assignee.set_bg_task_manager(self._task_manager) self.assignee.entity_activated.connect(self._on_assignee_changed) self.assignee.completer().entity_activated.disconnect( self.assignee.clear) self.description = QtGui.QTextEdit(self) policy = self.description.sizePolicy() policy.setVerticalStretch(1) self.description.setSizePolicy(policy) self.attachments = Attachments(self) self.error = QtGui.QTextEdit(self) self.error.setFocusPolicy(QtCore.Qt.NoFocus) self.error.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction) policy = self.error.sizePolicy() policy.setVerticalStretch(1) self.error.setSizePolicy(policy) self.submit_button = QtGui.QPushButton('Submit') self.submit_button.clicked.connect(self._on_submit) # Layout widgets footer_layouer = QtGui.QHBoxLayout() footer_layouer.addStretch(1) footer_layouer.addWidget(self.submit_button) self.footer = QtGui.QWidget() self.footer.setLayout(footer_layouer) self.layout = QtGui.QFormLayout() self.layout.addRow(self.message) self.layout.addRow(self.sep0) self.layout.addRow(self.context_selector) self.layout.addRow(self.sep1) self.layout.addRow('Title', self.title) self.layout.addRow('Type', self.type) self.layout.addRow('Priority', self.priority) self.layout.addRow('Assignee', self.assignee) self.layout.addRow('Attachments', self.attachments) self.layout.addRow('Description', self.description) self.layout.addRow('Error', self.error) self.layout.addRow(self.footer) self.setLayout(self.layout) if not fields['error']: self.hide_field(self.error) if not fields['message']: self.hide_field(self.message) self.hide_field(self.sep0) # Initialize field defaults QtCore.QTimer.singleShot( 50, partial(self.set_field_defaults, fields), ) self.adjustSize()
def setupUi(self, NewProjectForm): NewProjectForm.setObjectName("NewProjectForm") NewProjectForm.resize(604, 473) self.verticalLayout = QtGui.QVBoxLayout(NewProjectForm) self.verticalLayout.setSpacing(4) self.verticalLayout.setContentsMargins(12, 12, 12, 4) self.verticalLayout.setObjectName("verticalLayout") self.verticalLayout_2 = QtGui.QVBoxLayout() self.verticalLayout_2.setSpacing(4) self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_2.setObjectName("verticalLayout_2") self.verticalLayout.addLayout(self.verticalLayout_2) self.context_widget = context_selector.ContextWidget(NewProjectForm) self.context_widget.setObjectName("context_widget") self.verticalLayout_2.addWidget(self.context_widget) self.context_warning_label = QtGui.QLabel(NewProjectForm) self.context_warning_label.setText("") self.context_warning_label.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.context_warning_label.setMargin(1) self.context_warning_label.setIndent(-1) self.context_warning_label.setObjectName("context_warning_label") self.verticalLayout_2.addWidget(self.context_warning_label) self.verticalLayout_3 = QtGui.QVBoxLayout() self.verticalLayout_3.setSpacing(12) self.verticalLayout_3.setContentsMargins(0, 0, 0, 0) self.verticalLayout_3.setObjectName("verticalLayout_3") self.project_groupbox = QtGui.QGroupBox(NewProjectForm) self.project_groupbox.setObjectName("project_groupbox") self.project_groupbox.setLayout(self.verticalLayout_3) self.verticalLayout.addWidget(self.project_groupbox) self.verticalLayout_4 = QtGui.QVBoxLayout() self.verticalLayout_4.setSpacing(4) self.verticalLayout_4.setObjectName("verticalLayout_4") self.info_label = QtGui.QLabel(NewProjectForm) self.info_label.setMinimumSize(QtCore.QSize(0, 0)) self.info_label.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) self.info_label.setWordWrap(False) self.info_label.setObjectName("info_label") self.verticalLayout_4.addWidget(self.info_label) self.name_line = QtGui.QFrame(NewProjectForm) self.name_line.setFrameShadow(QtGui.QFrame.Plain) self.name_line.setFrameShape(QtGui.QFrame.HLine) self.name_line.setFrameShadow(QtGui.QFrame.Sunken) self.name_line.setObjectName("name_line") self.verticalLayout_4.addWidget(self.name_line) self.verticalLayout_3.addLayout(self.verticalLayout_4) self.gridLayout = QtGui.QGridLayout() self.gridLayout.setSpacing(-1) self.gridLayout.setObjectName("gridLayout") self.label_2 = QtGui.QLabel(NewProjectForm) self.label_2.setMargin(1) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1) self.name_edit = QtGui.QLineEdit(NewProjectForm) self.name_edit.setObjectName("name_edit") self.gridLayout.addWidget(self.name_edit, 0, 1, 1, 1) self.name_preview_label = QtGui.QLabel(NewProjectForm) self.name_preview_label.setText("") self.name_preview_label.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.name_preview_label.setMargin(1) self.name_preview_label.setIndent(-1) self.name_preview_label.setObjectName("name_preview_label") self.gridLayout.addWidget(self.name_preview_label, 1, 1, 1, 1) self.label_4 = QtGui.QLabel(NewProjectForm) self.label_4.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.label_4.setMargin(1) self.label_4.setObjectName("label_4") self.gridLayout.addWidget(self.label_4, 1, 0, 1, 1) self.verticalLayout_3.addLayout(self.gridLayout) spacerItem = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout_3.addItem(spacerItem) self.verticalLayout_6 = QtGui.QVBoxLayout() self.verticalLayout_6.setSpacing(4) self.verticalLayout_6.setObjectName("verticalLayout_6") self.label = QtGui.QLabel(NewProjectForm) self.label.setObjectName("label") self.verticalLayout_6.addWidget(self.label) self.publishes_line = QtGui.QFrame(NewProjectForm) self.publishes_line.setFrameShadow(QtGui.QFrame.Plain) self.publishes_line.setFrameShape(QtGui.QFrame.HLine) self.publishes_line.setFrameShadow(QtGui.QFrame.Sunken) self.publishes_line.setObjectName("publishes_line") self.verticalLayout_6.addWidget(self.publishes_line) self.verticalLayout_3.addLayout(self.verticalLayout_6) self.verticalLayout_5 = QtGui.QVBoxLayout() self.verticalLayout_5.setSpacing(4) self.verticalLayout_5.setObjectName("verticalLayout_5") self.publish_list = PublishListView(NewProjectForm) self.publish_list.setStyleSheet("#publish_list {\n" "background-color: rgb(255, 128, 0);\n" "}") self.publish_list.setObjectName("publish_list") self.verticalLayout_5.addWidget(self.publish_list) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") spacerItem1 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem1) self.add_publish_btn = QtGui.QPushButton(NewProjectForm) self.add_publish_btn.setMinimumSize(QtCore.QSize(32, 0)) self.add_publish_btn.setObjectName("add_publish_btn") self.horizontalLayout.addWidget(self.add_publish_btn) self.horizontalLayout.setStretch(0, 1) self.verticalLayout_5.addLayout(self.horizontalLayout) self.verticalLayout_5.setStretch(0, 1) self.verticalLayout_3.addLayout(self.verticalLayout_5) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setContentsMargins(12, 8, 12, 12) self.horizontalLayout_3.setObjectName("horizontalLayout_3") spacerItem2 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem2) self.cancel_btn = QtGui.QPushButton(NewProjectForm) self.cancel_btn.setMinimumSize(QtCore.QSize(90, 0)) self.cancel_btn.setObjectName("cancel_btn") self.horizontalLayout_3.addWidget(self.cancel_btn) self.create_btn = QtGui.QPushButton(NewProjectForm) self.create_btn.setMinimumSize(QtCore.QSize(90, 0)) self.create_btn.setDefault(True) self.create_btn.setObjectName("create_btn") self.horizontalLayout_3.addWidget(self.create_btn) self.verticalLayout.addLayout(self.horizontalLayout_3) self.verticalLayout.setStretch(1, 1) self.retranslateUi(NewProjectForm) QtCore.QObject.connect(self.cancel_btn, QtCore.SIGNAL("clicked()"), NewProjectForm.close) QtCore.QMetaObject.connectSlotsByName(NewProjectForm)
def _setup_ui(self): self.setWindowTitle('Create Output') self.setFixedSize(465, 125) output_group = QtGui.QGroupBox('Create Output') # Name and type layout type_layout = QtGui.QHBoxLayout() type_label = QtGui.QLabel('Type:') self._type_combo = QtGui.QComboBox() for out_type in self._types: self._type_combo.addItem(out_type) self._name_line = QtGui.QLineEdit() self._name_line.setPlaceholderText('Cache Name') self._name_line.returnPressed.connect(self._on_btn_press) cache_name = QtGui.QLabel('Cache Name:') type_layout.addWidget(type_label) type_layout.addWidget(self._type_combo) type_layout.addWidget(cache_name) type_layout.addWidget(self._name_line) # toggles layout range_label = QtGui.QLabel('Range:') self._range_combo = QtGui.QComboBox() self._range_combo.addItem('Single') self._range_combo.addItem('Multiple') self._range_combo.setCurrentIndex(1) range_layout = QtGui.QHBoxLayout() range_layout.addWidget(range_label) range_layout.addWidget(self._range_combo) self._sim_toggle = QtGui.QCheckBox('Simulation') self._version_toggle = QtGui.QCheckBox('Auto Version') self._version_toggle.setChecked(True) self._publish_toggle = QtGui.QCheckBox('Auto Publish') toggle_layout = QtGui.QHBoxLayout() toggle_layout.addLayout(range_layout) toggle_layout.addWidget(self._sim_toggle) toggle_layout.addWidget(self._version_toggle) toggle_layout.addWidget(self._publish_toggle) # Add layout changedgroup_layout = QtGui.QVBoxLayout(output_group) changedgroup_layout.addLayout(type_layout) changedgroup_layout.addLayout(toggle_layout) # Create _button self._button = QtGui.QPushButton('Create outputs') self._button.clicked.connect(self._on_btn_press) layout = QtGui.QVBoxLayout() layout.addWidget(output_group) layout.addWidget(self._button) self.setLayout(layout)
def __init__(self, data, comboFilterWidgetList=None, threadQueue=None, sgtkQueue=None, color=False, parent=None): super(noteLayoutWidget, self).__init__(parent) self.top_assigneesFilterWidget = None self.taskFilterWidget = None self.shotWidgetItemList = None self.my_versionWidgetCombo = None self.queue = None self.myNoteBox = None self.receiveFocusWidget = None self.shotList = None self.getFocus = True self.data = data self.multiDisplay = False if self.data: if len(self.data) > 1: self.multiDisplay = True self.replyListWidget = None # hold Replies, if any ! layout = QtGui.QVBoxLayout() self.setLayout(layout) titleGridLayout = QtGui.QGridLayout() titleGridLayout.setColumnStretch(0, False) titleGridLayout.setColumnStretch(1, False) self.titreLabel = None if self.data: if not self.multiDisplay: pass elif comboFilterWidgetList[0]: self.top_assigneesFilterWidget = comboFilterWidgetList[5] self.queue = threadQueue self.sgtkQueue = sgtkQueue idx = 0 self.shotComboBox = comboFilterWidget3(comboFilterWidgetList[4], comboFilterWidgetList[5], parent=self) self.shotComboBox.fillItem(comboFilterWidgetList[0]) self.shotWidgetItemList = comboFilterWidgetList[0] fct = lambda idx, getFocus, shotItemList=comboFilterWidgetList[ 0], top_taskFilterWidget=comboFilterWidgetList[ 1], top_assigneesFilterWidget=comboFilterWidgetList[ 5]: self.refillTaskFilter(idx, getFocus, shotItemList, top_taskFilterWidget, top_assigneesFilterWidget) self.shotComboBox.SIGNAL_currentIndexChanged.connect(fct) self.shotComboBox.SIGNAL_filterResultEmpty.connect( self.disableNoteLayout) titleGridLayout.addWidget(QtGui.QLabel("Shot/Asset", parent=self), idx, 0) titleGridLayout.addWidget(self.shotComboBox, idx, 1) idx += 1 typeDict, entriesDictList = comboFilterWidgetList[1].retrieveDict() myShotItem = comboFilterWidgetList[0][0] assignedToTxt = comboFilterWidgetList[5].widget.text() if not isinstance(assignedToTxt, unicode): assignedToTxt = unicode(assignedToTxt.toUtf8(), "utf-8") availableTaskList = myShotItem["sgAvailableTaskList"] if not assignedToTxt == "": availableTaskList = [] for tasks in myShotItem["sgtaskDictWithAssignees"].keys(): #print assignedToTxt.upper() , " ".join(comboFilterWidgetList[0][idx]["sgtaskDictWithAssignees"][tasks]).upper() if assignedToTxt.upper() in " ".join( myShotItem["sgtaskDictWithAssignees"] [tasks]).upper(): availableTaskList.append(tasks) checkNumber = 0 for idx in range(len(entriesDictList)): if entriesDictList[idx]["text"] == "NoTask": if not checkNumber: entriesDictList[idx]["checked"] = True continue if not availableTaskList: if "NoTask" in entriesDictList[idx]["values"]: entriesDictList[idx]["checked"] = True else: entriesDictList[idx]["checked"] = False else: test = False for availableTask in availableTaskList: if availableTask in entriesDictList[idx]["values"]: test = True if entriesDictList[idx]["checked"] == True and not test: entriesDictList[idx]["checked"] = False if entriesDictList[idx]["checked"] == True: checkNumber += 1 self.taskFilterWidget = comboFilterWidget2(typeDict, entriesDictList, showLabel=False, parent=self) self.taskFilterWidget.widget.currentIndexChanged.connect( self.getVersion) if self.taskFilterWidget.widget.count() == 1: self.taskFilterWidget.drawComplex = False self.shotList = comboFilterWidgetList[0] comboFilterWidgetList[1].SIGNAL_TaskcurrentIndexesChanged.connect( self.filterTasks) titleGridLayout.addWidget(QtGui.QLabel("Task", parent=self), idx, 0) titleGridLayout.addWidget(self.taskFilterWidget, idx, 1) idx += 1 self.typeFilterWidget = comboFilterWidget2( *comboFilterWidgetList[2].retrieveDict(), showLabel=False, parent=self) if self.typeFilterWidget.widget.count() == 1: self.typeFilterWidget.drawComplex = False comboFilterWidgetList[2].SIGNAL_currentIndexesChanged.connect( self.typeFilterWidget.setMyCurrentFromIndexes) titleGridLayout.addWidget(QtGui.QLabel("Type", parent=self), idx, 0) titleGridLayout.addWidget(self.typeFilterWidget, idx, 1) idx += 1 self.statusFilterWidget = comboFilterWidget2( *comboFilterWidgetList[3].retrieveDict(), showLabel=False, parent=self) if self.statusFilterWidget.widget.count() == 1: self.statusFilterWidget.drawComplex = False comboFilterWidgetList[3].SIGNAL_currentIndexesChanged.connect( self.statusFilterWidget.setMyCurrentFromIndexes) titleGridLayout.addWidget(QtGui.QLabel("Status", parent=self), idx, 0) titleGridLayout.addWidget(self.statusFilterWidget, idx, 1) self.titreLabel = QtGui.QLineEdit("", parent=self) self.titreLabel.hide() self.my_versionWidgetCombo = versionWidgetCombo(parent=self) self.my_versionWidgetCombo.versionQtCombo.currentIndexChanged.connect( self.setTextEditOnFocus) layout.addWidget(self.my_versionWidgetCombo) # separator line = QtGui.QFrame(parent=self) line.setFrameShape(QtGui.QFrame.HLine) line.setFrameShadow(QtGui.QFrame.Sunken) layout.addWidget(line) else: selectLabel = QtGui.QLabel( "<font color:#F0F0F0><b> Select a Shot or a Note </b></font>", parent=self) selectLabel.setAlignment(QtCore.Qt.AlignCenter) font = selectLabel.font() font.setPointSize(10) selectLabel.setFont(font) layout.addWidget(selectLabel) self.statusLabel = None if self.data: if not self.multiDisplay: noteLinkVersion = [] if self.data[0].has_key("note_links"): for linksDict in self.data[0]["note_links"]: if linksDict["type"] == "Version": noteLinkVersion.append(linksDict) if noteLinkVersion: versionLayout = QtGui.QHBoxLayout() versionLayout.setContentsMargins(0, 0, 0, 0) layout.addLayout(versionLayout) idx = 0 for versionDict in noteLinkVersion: taskIcon = None if versionDict["sg_task"]: taskIcon = comboFilterWidgetList[ 1].retrieveIconFromValue( versionDict["sg_task"]["name"]) if idx == 0 and len(noteLinkVersion) > 1: shortCutCodeList = ["Ctrl+Space"] else: shortCutCodeList = ["Ctrl+Alt+Space"] versionLayout.addWidget( versionWidget(versionDict, shortCutCodeList=shortCutCodeList, taskIcon=taskIcon, parent=self)) idx += 1 if len(noteLinkVersion) == 2: labelArrow = QtGui.QLabel(parent=self) labelArrow.setPixmap( QtGui.QPixmap(getRessources("versionArrow.png"))) versionLayout.insertWidget(1, labelArrow) if noteLinkVersion: line = QtGui.QFrame(parent=self) line.setFrameShape(QtGui.QFrame.HLine) line.setFrameShadow(QtGui.QFrame.Sunken) layout.addWidget(line) # Note content contentLayout = QtGui.QHBoxLayout() if self.data: if not self.multiDisplay: contentLayout.addWidget( noteContentLayout("Note", self.data[0], noteData=None, parent=self)) elif comboFilterWidgetList[0]: my_noteContentLayout = noteContentLayout("Note", None, noteData=None, parent=self) my_noteContentLayout.SIGNAL_send_NoteContent.connect(self.todo) self.receiveFocusWidget = my_noteContentLayout.Qt_noteContent contentLayout.addWidget(my_noteContentLayout) if self.data: if not self.multiDisplay: tmpLayout = QtGui.QVBoxLayout() tmpLayout.setContentsMargins(0, 0, 0, 0) #tmpLayout.addLayout(titleGridLayout ) tmpLayout.addLayout(contentLayout) tmpLayout.addStretch() w = QtGui.QWidget(parent=self) w.setLayout(tmpLayout) myScrollNote = QtGui.QScrollArea(parent=self) myScrollNote.setHorizontalScrollBarPolicy( QtCore.Qt.ScrollBarAlwaysOff) myScrollNote.setWidget(w) myScrollNote.setWidgetResizable(True) style = "QScrollArea {border: 0px none gray; border-radius: 0px;}" myScrollNote.setStyleSheet(style) self.myNoteBox = QtGui.QGroupBox(str(self.data[0]["subject"])) self.myNoteBox.setCheckable(True) self.myNoteBox.installEventFilter(self) myNoteBox_layout = QtGui.QHBoxLayout() myNoteBox_layout.setContentsMargins(5, 10, 0, 0) myNoteBox_layout.addWidget(myScrollNote) self.myNoteBox.setLayout(myNoteBox_layout) borderColor = "#CCCCCC" if self.data[0]["sg_status_list"] == "opn": borderColor = "#30A6E3" elif self.data[0]["sg_status_list"] == "ip": borderColor = "#FFC31E" style = "QGroupBox { border: 2px solid " + borderColor + "; border-radius: 5px; margin-top: 2ex; } " style += "QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top center; padding: 0 3px; color: " + borderColor + " ;} " style += "QGroupBox::indicator { width: 20px; height: 20px;} " p = getRessources("status_" + self.data[0]["sg_status_list"] + ".png").replace("\\", "/") style += "QGroupBox::indicator:checked { image: url('" + p + "'); }" self.myNoteBox.setStyleSheet(style) layout.addWidget(self.myNoteBox) else: layout.addLayout(titleGridLayout) layout.addLayout(contentLayout) # Reply widget if self.data: if not self.multiDisplay: myEmptyNewReply = noteContentLayout("Reply", None, noteData=self.data, parent=self) self.receiveFocusWidget = myEmptyNewReply.Qt_noteContent myEmptyNewReply.SIGNAL_createReply.connect(self.replyNoteSlot) replyDataList = self.data[0]["queriedReplies"] if replyDataList: #[0,1,2] myform = QtGui.QVBoxLayout() myReplyBox = QtGui.QGroupBox() style = " QGroupBox { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(255, 255, 255, 0%), stop: 1 rgba(0, 0, 0, 33%) ); border: 0px none gray; border-radius: 0px}" myReplyBox.setAttribute(QtCore.Qt.WA_TranslucentBackground, True) myReplyBox.setStyleSheet(style) myReplyBox.setLayout(myform) scroll = QtGui.QScrollArea(parent=self) scroll.setWidget(myReplyBox) scroll.setWidgetResizable(True) style = "QScrollArea {border: 0px none gray; border-radius: 0px;}" scroll.setStyleSheet(style) scroll.setHorizontalScrollBarPolicy( QtCore.Qt.ScrollBarAlwaysOff) moveScrollBarToBottom = lambda min, max: scroll.verticalScrollBar( ).setValue(max) scroll.verticalScrollBar().rangeChanged.connect( moveScrollBarToBottom) for replyData in replyDataList: myform.addWidget( noteContentLayout("Reply", replyData, noteData=None, parent=self)) line = QtGui.QFrame(parent=self) line.setFrameShape(QtGui.QFrame.HLine) line.setFrameShadow(QtGui.QFrame.Sunken) myform.addWidget(line) replyBox = QtGui.QGroupBox(" Replies ") replyBox_layout = QtGui.QHBoxLayout() replyBox_layout.setContentsMargins(0, 10, 0, 0) replyBox.setLayout(replyBox_layout) replyBox_layout.addWidget(scroll) style = "QGroupBox { border: 2px solid gray; border-radius: 5px; margin-top: 2ex; } " style += "QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top center; padding: 0 3px; }" replyBox.setStyleSheet(style) layout.addWidget(replyBox) layout.addWidget(myEmptyNewReply) else: myEmptyNewReply = noteContentLayout("Reply", None, noteData=self.data, parent=self) myEmptyNewReply.SIGNAL_createMultiReply.connect( self.multiReplyNoteSlot) layout.addWidget(myEmptyNewReply)
def setupUi(self, DesktopWindow): DesktopWindow.setObjectName("DesktopWindow") DesktopWindow.resize(427, 715) DesktopWindow.setMouseTracking(True) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/tk-desktop/default_systray_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) DesktopWindow.setWindowIcon(icon) DesktopWindow.setDockNestingEnabled(False) DesktopWindow.setUnifiedTitleAndToolBarOnMac(True) self.center = QtGui.QWidget(DesktopWindow) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.center.sizePolicy().hasHeightForWidth()) self.center.setSizePolicy(sizePolicy) self.center.setMouseTracking(True) self.center.setObjectName("center") self.border_layout = QtGui.QVBoxLayout(self.center) self.border_layout.setSpacing(0) self.border_layout.setContentsMargins(0, 0, 0, 0) self.border_layout.setObjectName("border_layout") self.header = QtGui.QFrame(self.center) self.header.setFrameShape(QtGui.QFrame.NoFrame) self.header.setFrameShadow(QtGui.QFrame.Raised) self.header.setObjectName("header") self.horizontalLayout_2 = QtGui.QHBoxLayout(self.header) self.horizontalLayout_2.setSpacing(20) self.horizontalLayout_2.setContentsMargins(20, 0, 20, 0) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.apps_button = QtGui.QPushButton(self.header) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.apps_button.sizePolicy().hasHeightForWidth()) self.apps_button.setSizePolicy(sizePolicy) self.apps_button.setMinimumSize(QtCore.QSize(0, 0)) self.apps_button.setMouseTracking(True) self.apps_button.setFocusPolicy(QtCore.Qt.NoFocus) self.apps_button.setFlat(True) self.apps_button.setObjectName("apps_button") self.horizontalLayout_2.addWidget(self.apps_button) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem) self.border_layout.addWidget(self.header) self.stack = QtGui.QStackedWidget(self.center) self.stack.setObjectName("stack") self.project_browser_page = QtGui.QWidget() self.project_browser_page.setObjectName("project_browser_page") self.verticalLayout = QtGui.QVBoxLayout(self.project_browser_page) self.verticalLayout.setSpacing(0) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.subheader = QtGui.QFrame(self.project_browser_page) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.subheader.sizePolicy().hasHeightForWidth()) self.subheader.setSizePolicy(sizePolicy) self.subheader.setMaximumSize(QtCore.QSize(16777215, 60)) self.subheader.setFrameShape(QtGui.QFrame.NoFrame) self.subheader.setFrameShadow(QtGui.QFrame.Plain) self.subheader.setLineWidth(1) self.subheader.setMidLineWidth(0) self.subheader.setObjectName("subheader") self.horizontalLayout = QtGui.QHBoxLayout(self.subheader) self.horizontalLayout.setSpacing(15) self.horizontalLayout.setContentsMargins(20, 15, 15, 15) self.horizontalLayout.setObjectName("horizontalLayout") self.subheader_label = QtGui.QLabel(self.subheader) self.subheader_label.setMouseTracking(True) self.subheader_label.setFocusPolicy(QtCore.Qt.WheelFocus) self.subheader_label.setTextInteractionFlags( QtCore.Qt.NoTextInteraction) self.subheader_label.setObjectName("subheader_label") self.horizontalLayout.addWidget(self.subheader_label) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem1) self.search_frame = QtGui.QFrame(self.subheader) self.search_frame.setFrameShape(QtGui.QFrame.StyledPanel) self.search_frame.setFrameShadow(QtGui.QFrame.Raised) self.search_frame.setProperty("collapsed", False) self.search_frame.setObjectName("search_frame") self.horizontalLayout_6 = QtGui.QHBoxLayout(self.search_frame) self.horizontalLayout_6.setSpacing(2) self.horizontalLayout_6.setContentsMargins(5, 5, 5, 5) self.horizontalLayout_6.setObjectName("horizontalLayout_6") self.search_magnifier = QtGui.QLabel(self.search_frame) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.search_magnifier.sizePolicy().hasHeightForWidth()) self.search_magnifier.setSizePolicy(sizePolicy) self.search_magnifier.setMaximumSize(QtCore.QSize(17, 17)) self.search_magnifier.setText("") self.search_magnifier.setPixmap( QtGui.QPixmap(":/tk-desktop/search_dark.png")) self.search_magnifier.setScaledContents(True) self.search_magnifier.setObjectName("search_magnifier") self.horizontalLayout_6.addWidget(self.search_magnifier) self.search_text = QtGui.QLineEdit(self.search_frame) self.search_text.setObjectName("search_text") self.horizontalLayout_6.addWidget(self.search_text) self.search_button = QtGui.QPushButton(self.search_frame) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.search_button.sizePolicy().hasHeightForWidth()) self.search_button.setSizePolicy(sizePolicy) self.search_button.setMaximumSize(QtCore.QSize(17, 17)) self.search_button.setFocusPolicy(QtCore.Qt.NoFocus) self.search_button.setText("") icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(":/tk-desktop/icon_inbox_clear.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.search_button.setIcon(icon1) self.search_button.setIconSize(QtCore.QSize(17, 17)) self.search_button.setFlat(True) self.search_button.setObjectName("search_button") self.horizontalLayout_6.addWidget(self.search_button) self.horizontalLayout.addWidget(self.search_frame) self.verticalLayout.addWidget(self.subheader) self.projects = ActionListView(self.project_browser_page) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.projects.sizePolicy().hasHeightForWidth()) self.projects.setSizePolicy(sizePolicy) self.projects.setMouseTracking(True) self.projects.setFocusPolicy(QtCore.Qt.NoFocus) self.projects.setFrameShape(QtGui.QFrame.NoFrame) self.projects.setFrameShadow(QtGui.QFrame.Plain) self.projects.setLineWidth(0) self.projects.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.projects.setAutoScroll(False) self.projects.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.projects.setProperty("showDropIndicator", False) self.projects.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) self.projects.setVerticalScrollMode( QtGui.QAbstractItemView.ScrollPerPixel) self.projects.setMovement(QtGui.QListView.Static) self.projects.setFlow(QtGui.QListView.LeftToRight) self.projects.setProperty("isWrapping", True) self.projects.setResizeMode(QtGui.QListView.Adjust) self.projects.setLayoutMode(QtGui.QListView.SinglePass) self.projects.setSpacing(5) self.projects.setViewMode(QtGui.QListView.IconMode) self.projects.setUniformItemSizes(False) self.projects.setSelectionRectVisible(False) self.projects.setObjectName("projects") self.verticalLayout.addWidget(self.projects) self.stack.addWidget(self.project_browser_page) self.project_page = QtGui.QWidget() self.project_page.setObjectName("project_page") self.verticalLayout_2 = QtGui.QVBoxLayout(self.project_page) self.verticalLayout_2.setSpacing(0) self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_2.setObjectName("verticalLayout_2") self.project_subheader = QtGui.QFrame(self.project_page) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.project_subheader.sizePolicy().hasHeightForWidth()) self.project_subheader.setSizePolicy(sizePolicy) self.project_subheader.setMaximumSize(QtCore.QSize(16777215, 60)) self.project_subheader.setFrameShape(QtGui.QFrame.NoFrame) self.project_subheader.setFrameShadow(QtGui.QFrame.Plain) self.project_subheader.setLineWidth(1) self.project_subheader.setMidLineWidth(0) self.project_subheader.setObjectName("project_subheader") self.horizontalLayout_4 = QtGui.QHBoxLayout(self.project_subheader) self.horizontalLayout_4.setSpacing(0) self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.spacer_button_1 = QtGui.QPushButton(self.project_subheader) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.spacer_button_1.sizePolicy().hasHeightForWidth()) self.spacer_button_1.setSizePolicy(sizePolicy) self.spacer_button_1.setMinimumSize(QtCore.QSize(10, 0)) self.spacer_button_1.setMaximumSize(QtCore.QSize(10, 16777215)) self.spacer_button_1.setBaseSize(QtCore.QSize(10, 0)) self.spacer_button_1.setFocusPolicy(QtCore.Qt.NoFocus) self.spacer_button_1.setText("") self.spacer_button_1.setFlat(True) self.spacer_button_1.setObjectName("spacer_button_1") self.horizontalLayout_4.addWidget(self.spacer_button_1) self.project_arrow = QtGui.QPushButton(self.project_subheader) self.project_arrow.setMaximumSize(QtCore.QSize(30, 62)) self.project_arrow.setFocusPolicy(QtCore.Qt.NoFocus) self.project_arrow.setText("") icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(":/tk-desktop/back_arrow.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.project_arrow.setIcon(icon2) self.project_arrow.setIconSize(QtCore.QSize(20, 20)) self.project_arrow.setFlat(True) self.project_arrow.setObjectName("project_arrow") self.horizontalLayout_4.addWidget(self.project_arrow) spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.project_icon = QtGui.QLabel(self.project_subheader) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.project_icon.sizePolicy().hasHeightForWidth()) self.project_icon.setSizePolicy(sizePolicy) self.project_icon.setMaximumSize(QtCore.QSize(42, 42)) self.project_icon.setText("") self.project_icon.setPixmap( QtGui.QPixmap(":/tk-desktop/missing_thumbnail_project.png")) self.project_icon.setScaledContents(True) self.project_icon.setMargin(5) self.project_icon.setObjectName("project_icon") self.horizontalLayout_4.addWidget(self.project_icon) self.project_name = QtGui.QLabel(self.project_subheader) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.project_name.sizePolicy().hasHeightForWidth()) self.project_name.setSizePolicy(sizePolicy) self.project_name.setMaximumSize(QtCore.QSize(280, 16777215)) self.project_name.setMargin(5) self.project_name.setObjectName("project_name") self.horizontalLayout_4.addWidget(self.project_name) spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem3) self.project_menu = QtGui.QToolButton(self.project_subheader) self.project_menu.setFocusPolicy(QtCore.Qt.NoFocus) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(":/tk-desktop/down_arrow.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.project_menu.setIcon(icon3) self.project_menu.setIconSize(QtCore.QSize(20, 20)) self.project_menu.setPopupMode(QtGui.QToolButton.InstantPopup) self.project_menu.setObjectName("project_menu") self.horizontalLayout_4.addWidget(self.project_menu) self.spacer_button_4 = QtGui.QPushButton(self.project_subheader) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.spacer_button_4.sizePolicy().hasHeightForWidth()) self.spacer_button_4.setSizePolicy(sizePolicy) self.spacer_button_4.setMinimumSize(QtCore.QSize(10, 0)) self.spacer_button_4.setMaximumSize(QtCore.QSize(10, 16777215)) self.spacer_button_4.setBaseSize(QtCore.QSize(10, 0)) self.spacer_button_4.setFocusPolicy(QtCore.Qt.NoFocus) self.spacer_button_4.setText("") self.spacer_button_4.setFlat(True) self.spacer_button_4.setObjectName("spacer_button_4") self.horizontalLayout_4.addWidget(self.spacer_button_4) self.verticalLayout_2.addWidget(self.project_subheader) self.configuration_frame = QtGui.QFrame(self.project_page) self.configuration_frame.setFrameShape(QtGui.QFrame.NoFrame) self.configuration_frame.setFrameShadow(QtGui.QFrame.Plain) self.configuration_frame.setObjectName("configuration_frame") self.horizontalLayout_8 = QtGui.QHBoxLayout(self.configuration_frame) self.horizontalLayout_8.setSpacing(0) self.horizontalLayout_8.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_8.setObjectName("horizontalLayout_8") spacerItem4 = QtGui.QSpacerItem(150, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_8.addItem(spacerItem4) self.configuration_name = QtGui.QLabel(self.configuration_frame) self.configuration_name.setAlignment(QtCore.Qt.AlignCenter) self.configuration_name.setObjectName("configuration_name") self.horizontalLayout_8.addWidget(self.configuration_name) self.configuration_label = QtGui.QLabel(self.configuration_frame) self.configuration_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.configuration_label.setObjectName("configuration_label") self.horizontalLayout_8.addWidget(self.configuration_label) self.horizontalLayout_8.setStretch(0, 1) self.horizontalLayout_8.setStretch(1, 1) self.horizontalLayout_8.setStretch(2, 1) self.verticalLayout_2.addWidget(self.configuration_frame) self.project_commands = GroupingListView(self.project_page) self.project_commands.setMouseTracking(True) self.project_commands.setFocusPolicy(QtCore.Qt.NoFocus) self.project_commands.setFrameShape(QtGui.QFrame.NoFrame) self.project_commands.setFrameShadow(QtGui.QFrame.Plain) self.project_commands.setHorizontalScrollBarPolicy( QtCore.Qt.ScrollBarAlwaysOff) self.project_commands.setAutoScroll(False) self.project_commands.setEditTriggers( QtGui.QAbstractItemView.NoEditTriggers) self.project_commands.setProperty("showDropIndicator", False) self.project_commands.setDragDropMode( QtGui.QAbstractItemView.NoDragDrop) self.project_commands.setTextElideMode(QtCore.Qt.ElideMiddle) self.project_commands.setVerticalScrollMode( QtGui.QAbstractItemView.ScrollPerPixel) self.project_commands.setMovement(QtGui.QListView.Static) self.project_commands.setFlow(QtGui.QListView.LeftToRight) self.project_commands.setProperty("isWrapping", True) self.project_commands.setResizeMode(QtGui.QListView.Adjust) self.project_commands.setLayoutMode(QtGui.QListView.Batched) self.project_commands.setViewMode(QtGui.QListView.IconMode) self.project_commands.setWordWrap(True) self.project_commands.setSelectionRectVisible(False) self.project_commands.setObjectName("project_commands") self.verticalLayout_2.addWidget(self.project_commands) self.stack.addWidget(self.project_page) self.border_layout.addWidget(self.stack) self.footer = QtGui.QFrame(self.center) self.footer.setMouseTracking(True) self.footer.setFrameShape(QtGui.QFrame.NoFrame) self.footer.setFrameShadow(QtGui.QFrame.Plain) self.footer.setObjectName("footer") self.horizontalLayout_3 = QtGui.QHBoxLayout(self.footer) self.horizontalLayout_3.setSpacing(0) self.horizontalLayout_3.setContentsMargins(10, 5, 10, 5) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.shotgun_button = QtGui.QPushButton(self.footer) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.shotgun_button.sizePolicy().hasHeightForWidth()) self.shotgun_button.setSizePolicy(sizePolicy) self.shotgun_button.setMinimumSize(QtCore.QSize(132, 26)) self.shotgun_button.setMaximumSize(QtCore.QSize(132, 26)) self.shotgun_button.setMouseTracking(True) self.shotgun_button.setFocusPolicy(QtCore.Qt.NoFocus) icon4 = QtGui.QIcon() icon4.addPixmap( QtGui.QPixmap(":/tk-desktop/shotgun_logo_light_medium.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.shotgun_button.setIcon(icon4) self.shotgun_button.setIconSize(QtCore.QSize(122, 16)) self.shotgun_button.setFlat(True) self.shotgun_button.setObjectName("shotgun_button") self.horizontalLayout_3.addWidget(self.shotgun_button) spacerItem5 = QtGui.QSpacerItem(173, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem5) self.user_button = QtGui.QPushButton(self.footer) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.user_button.sizePolicy().hasHeightForWidth()) self.user_button.setSizePolicy(sizePolicy) self.user_button.setMinimumSize(QtCore.QSize(40, 40)) self.user_button.setMaximumSize(QtCore.QSize(40, 40)) self.user_button.setMouseTracking(True) self.user_button.setFocusPolicy(QtCore.Qt.NoFocus) self.user_button.setText("") icon5 = QtGui.QIcon() icon5.addPixmap(QtGui.QPixmap(":/tk-desktop/default_user_thumb.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.user_button.setIcon(icon5) self.user_button.setIconSize(QtCore.QSize(30, 30)) self.user_button.setFlat(True) self.user_button.setObjectName("user_button") self.horizontalLayout_3.addWidget(self.user_button) self.border_layout.addWidget(self.footer) DesktopWindow.setCentralWidget(self.center) self.actionQuit = QtGui.QAction(DesktopWindow) self.actionQuit.setObjectName("actionQuit") self.actionPin_to_Menu = QtGui.QAction(DesktopWindow) self.actionPin_to_Menu.setObjectName("actionPin_to_Menu") self.actionSign_Out = QtGui.QAction(DesktopWindow) self.actionSign_Out.setObjectName("actionSign_Out") self.actionKeep_on_Top = QtGui.QAction(DesktopWindow) self.actionKeep_on_Top.setCheckable(True) self.actionKeep_on_Top.setObjectName("actionKeep_on_Top") self.actionProject_Filesystem_Folder = QtGui.QAction(DesktopWindow) self.actionProject_Filesystem_Folder.setObjectName( "actionProject_Filesystem_Folder") self.actionPreferences = QtGui.QAction(DesktopWindow) self.actionPreferences.setObjectName("actionPreferences") self.actionShow_Console = QtGui.QAction(DesktopWindow) self.actionShow_Console.setObjectName("actionShow_Console") self.actionRefresh_Projects = QtGui.QAction(DesktopWindow) self.actionRefresh_Projects.setObjectName("actionRefresh_Projects") self.retranslateUi(DesktopWindow) self.stack.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(DesktopWindow) DesktopWindow.setTabOrder(self.projects, self.user_button) DesktopWindow.setTabOrder(self.user_button, self.search_button) DesktopWindow.setTabOrder(self.search_button, self.search_text) DesktopWindow.setTabOrder(self.search_text, self.project_commands)
def setupUi(self, Wizard): Wizard.setObjectName("Wizard") Wizard.resize(701, 528) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/res/shotgun_logo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) Wizard.setWindowIcon(icon) Wizard.setModal(True) Wizard.setWizardStyle(QtGui.QWizard.ModernStyle) Wizard.setOptions(QtGui.QWizard.CancelButtonOnLeft|QtGui.QWizard.HaveHelpButton|QtGui.QWizard.NoBackButtonOnLastPage) Wizard.setTitleFormat(QtCore.Qt.RichText) Wizard.setSubTitleFormat(QtCore.Qt.RichText) self.setup_type_page = SetupTypePage() self.setup_type_page.setObjectName("setup_type_page") self.verticalLayout = QtGui.QVBoxLayout(self.setup_type_page) self.verticalLayout.setContentsMargins(25, 20, 25, 20) self.verticalLayout.setObjectName("verticalLayout") self.setup_type_subheader = QtGui.QLabel(self.setup_type_page) self.setup_type_subheader.setStyleSheet("font-size: 14px;") self.setup_type_subheader.setWordWrap(True) self.setup_type_subheader.setObjectName("setup_type_subheader") self.verticalLayout.addWidget(self.setup_type_subheader) spacerItem = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout.addItem(spacerItem) self.select_standard = QtGui.QRadioButton(self.setup_type_page) self.select_standard.setFocusPolicy(QtCore.Qt.NoFocus) self.select_standard.setStyleSheet("QRadioButton {\n" " font-size: 16px;\n" "}\n" "") self.select_standard.setChecked(True) self.select_standard.setObjectName("select_standard") self.verticalLayout.addWidget(self.select_standard) self.label_standard = QtGui.QLabel(self.setup_type_page) self.label_standard.setStyleSheet("font-size: 12px;\n" "color: rgb(160, 160, 160);") self.label_standard.setIndent(20) self.label_standard.setObjectName("label_standard") self.verticalLayout.addWidget(self.label_standard) spacerItem1 = QtGui.QSpacerItem(20, 10, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout.addItem(spacerItem1) self.select_project = QtGui.QRadioButton(self.setup_type_page) self.select_project.setFocusPolicy(QtCore.Qt.NoFocus) self.select_project.setStyleSheet("QRadioButton {\n" " font-size: 16px;\n" "}\n" "") self.select_project.setObjectName("select_project") self.verticalLayout.addWidget(self.select_project) self.label_project = QtGui.QLabel(self.setup_type_page) self.label_project.setStyleSheet("font-size: 12px;\n" "color: rgb(160, 160, 160);") self.label_project.setIndent(20) self.label_project.setObjectName("label_project") self.verticalLayout.addWidget(self.label_project) spacerItem2 = QtGui.QSpacerItem(20, 10, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout.addItem(spacerItem2) self.select_github = QtGui.QRadioButton(self.setup_type_page) self.select_github.setFocusPolicy(QtCore.Qt.NoFocus) self.select_github.setStyleSheet("QRadioButton {\n" " font-size: 16px;\n" "}\n" "") self.select_github.setObjectName("select_github") self.verticalLayout.addWidget(self.select_github) self.label_github = QtGui.QLabel(self.setup_type_page) self.label_github.setStyleSheet("font-size: 12px;\n" "color: rgb(160, 160, 160);") self.label_github.setIndent(20) self.label_github.setObjectName("label_github") self.verticalLayout.addWidget(self.label_github) spacerItem3 = QtGui.QSpacerItem(20, 10, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout.addItem(spacerItem3) self.select_disk = QtGui.QRadioButton(self.setup_type_page) self.select_disk.setFocusPolicy(QtCore.Qt.NoFocus) self.select_disk.setStyleSheet("QRadioButton {\n" " font-size: 16px;\n" "}\n" "") self.select_disk.setObjectName("select_disk") self.verticalLayout.addWidget(self.select_disk) self.label_disk = QtGui.QLabel(self.setup_type_page) self.label_disk.setStyleSheet("font-size: 12px;\n" "color: rgb(160, 160, 160);") self.label_disk.setIndent(20) self.label_disk.setObjectName("label_disk") self.verticalLayout.addWidget(self.label_disk) spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem4) self.verticalLayout.setStretch(13, 1) Wizard.addPage(self.setup_type_page) self.default_configs_page = DefaultConfigPage() self.default_configs_page.setObjectName("default_configs_page") self.verticalLayout_3 = QtGui.QVBoxLayout(self.default_configs_page) self.verticalLayout_3.setContentsMargins(25, 20, 25, 20) self.verticalLayout_3.setObjectName("verticalLayout_3") self.default_configs_subheader = QtGui.QLabel(self.default_configs_page) self.default_configs_subheader.setStyleSheet("font-size: 14px;") self.default_configs_subheader.setWordWrap(True) self.default_configs_subheader.setObjectName("default_configs_subheader") self.verticalLayout_3.addWidget(self.default_configs_subheader) self.scrollArea = QtGui.QScrollArea(self.default_configs_page) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtGui.QWidget() self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 629, 312)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.verticalLayout_11 = QtGui.QVBoxLayout(self.scrollAreaWidgetContents) self.verticalLayout_11.setObjectName("verticalLayout_11") self.select_default_config = QtGui.QRadioButton(self.scrollAreaWidgetContents) self.select_default_config.setFocusPolicy(QtCore.Qt.NoFocus) self.select_default_config.setStyleSheet("QRadioButton {\n" " font-size: 16px;\n" "}") self.select_default_config.setChecked(True) self.select_default_config.setObjectName("select_default_config") self.verticalLayout_11.addWidget(self.select_default_config) self.label_default_config = QtGui.QLabel(self.scrollAreaWidgetContents) self.label_default_config.setStyleSheet("font-size: 12px;\n" "color: rgb(160, 160, 160);") self.label_default_config.setWordWrap(True) self.label_default_config.setIndent(20) self.label_default_config.setObjectName("label_default_config") self.verticalLayout_11.addWidget(self.label_default_config) self.select_multiroot_config = QtGui.QRadioButton(self.scrollAreaWidgetContents) self.select_multiroot_config.setFocusPolicy(QtCore.Qt.NoFocus) self.select_multiroot_config.setStyleSheet("QRadioButton {\n" " font-size: 16px;\n" "}") self.select_multiroot_config.setObjectName("select_multiroot_config") self.verticalLayout_11.addWidget(self.select_multiroot_config) self.label_multiroot_config = QtGui.QLabel(self.scrollAreaWidgetContents) self.label_multiroot_config.setStyleSheet("font-size: 12px;\n" "color: rgb(160, 160, 160);") self.label_multiroot_config.setWordWrap(True) self.label_multiroot_config.setIndent(20) self.label_multiroot_config.setObjectName("label_multiroot_config") self.verticalLayout_11.addWidget(self.label_multiroot_config) self.select_flame_config = QtGui.QRadioButton(self.scrollAreaWidgetContents) self.select_flame_config.setFocusPolicy(QtCore.Qt.NoFocus) self.select_flame_config.setStyleSheet("QRadioButton {\n" " font-size: 16px;\n" "}") self.select_flame_config.setObjectName("select_flame_config") self.verticalLayout_11.addWidget(self.select_flame_config) self.label_multiroot_config_2 = QtGui.QLabel(self.scrollAreaWidgetContents) self.label_multiroot_config_2.setStyleSheet("font-size: 12px;\n" "color: rgb(160, 160, 160);") self.label_multiroot_config_2.setWordWrap(True) self.label_multiroot_config_2.setIndent(20) self.label_multiroot_config_2.setObjectName("label_multiroot_config_2") self.verticalLayout_11.addWidget(self.label_multiroot_config_2) self.select_games_config = QtGui.QRadioButton(self.scrollAreaWidgetContents) self.select_games_config.setFocusPolicy(QtCore.Qt.NoFocus) self.select_games_config.setStyleSheet("QRadioButton {\n" " font-size: 16px;\n" "}") self.select_games_config.setObjectName("select_games_config") self.verticalLayout_11.addWidget(self.select_games_config) self.label_games_config = QtGui.QLabel(self.scrollAreaWidgetContents) self.label_games_config.setStyleSheet("font-size: 12px;\n" "color: rgb(160, 160, 160);") self.label_games_config.setWordWrap(True) self.label_games_config.setIndent(20) self.label_games_config.setObjectName("label_games_config") self.verticalLayout_11.addWidget(self.label_games_config) self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.verticalLayout_3.addWidget(self.scrollArea) self.default_configs_errors = QtGui.QLabel(self.default_configs_page) self.default_configs_errors.setStyleSheet("color: rgb(252, 98, 70);") self.default_configs_errors.setText("") self.default_configs_errors.setAlignment(QtCore.Qt.AlignCenter) self.default_configs_errors.setWordWrap(True) self.default_configs_errors.setObjectName("default_configs_errors") self.verticalLayout_3.addWidget(self.default_configs_errors) Wizard.addPage(self.default_configs_page) self.project_config_page = ProjectConfigPage() self.project_config_page.setObjectName("project_config_page") self.verticalLayout_2 = QtGui.QVBoxLayout(self.project_config_page) self.verticalLayout_2.setContentsMargins(25, 20, 25, 20) self.verticalLayout_2.setObjectName("verticalLayout_2") self.project_config_subheader = QtGui.QLabel(self.project_config_page) self.project_config_subheader.setStyleSheet("font-size: 14px;") self.project_config_subheader.setWordWrap(True) self.project_config_subheader.setObjectName("project_config_subheader") self.verticalLayout_2.addWidget(self.project_config_subheader) spacerItem5 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout_2.addItem(spacerItem5) self.project_list = QtGui.QListView(self.project_config_page) self.project_list.setFrameShape(QtGui.QFrame.NoFrame) self.project_list.setFrameShadow(QtGui.QFrame.Plain) self.project_list.setAutoScroll(False) self.project_list.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.project_list.setProperty("showDropIndicator", False) self.project_list.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) self.project_list.setTextElideMode(QtCore.Qt.ElideNone) self.project_list.setMovement(QtGui.QListView.Static) self.project_list.setFlow(QtGui.QListView.LeftToRight) self.project_list.setProperty("isWrapping", True) self.project_list.setResizeMode(QtGui.QListView.Adjust) self.project_list.setLayoutMode(QtGui.QListView.Batched) self.project_list.setSpacing(10) self.project_list.setViewMode(QtGui.QListView.IconMode) self.project_list.setUniformItemSizes(True) self.project_list.setWordWrap(True) self.project_list.setSelectionRectVisible(False) self.project_list.setObjectName("project_list") self.verticalLayout_2.addWidget(self.project_list) self.project_errors = QtGui.QLabel(self.project_config_page) self.project_errors.setStyleSheet("color: rgb(252, 98, 70);") self.project_errors.setText("") self.project_errors.setAlignment(QtCore.Qt.AlignCenter) self.project_errors.setWordWrap(True) self.project_errors.setObjectName("project_errors") self.verticalLayout_2.addWidget(self.project_errors) Wizard.addPage(self.project_config_page) self.github_config_page = GithubConfigPage() sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.github_config_page.sizePolicy().hasHeightForWidth()) self.github_config_page.setSizePolicy(sizePolicy) self.github_config_page.setObjectName("github_config_page") self.verticalLayout_6 = QtGui.QVBoxLayout(self.github_config_page) self.verticalLayout_6.setSpacing(0) self.verticalLayout_6.setContentsMargins(25, 20, 25, 20) self.verticalLayout_6.setObjectName("verticalLayout_6") self.github_config_subheader = QtGui.QLabel(self.github_config_page) self.github_config_subheader.setStyleSheet("font-size: 14px;") self.github_config_subheader.setWordWrap(True) self.github_config_subheader.setObjectName("github_config_subheader") self.verticalLayout_6.addWidget(self.github_config_subheader) spacerItem6 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout_6.addItem(spacerItem6) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setSpacing(20) self.horizontalLayout.setObjectName("horizontalLayout") self.octocat = QtGui.QLabel(self.github_config_page) self.octocat.setMaximumSize(QtCore.QSize(200, 200)) self.octocat.setText("") self.octocat.setPixmap(QtGui.QPixmap(":/tk-framework-adminui/setup_project/octocats/original.png")) self.octocat.setScaledContents(True) self.octocat.setObjectName("octocat") self.horizontalLayout.addWidget(self.octocat) self.verticalLayout_4 = QtGui.QVBoxLayout() self.verticalLayout_4.setSpacing(20) self.verticalLayout_4.setObjectName("verticalLayout_4") spacerItem7 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_4.addItem(spacerItem7) self.github_url = QtGui.QLineEdit(self.github_config_page) self.github_url.setText("") self.github_url.setObjectName("github_url") self.verticalLayout_4.addWidget(self.github_url) self.label = QtGui.QLabel(self.github_config_page) self.label.setObjectName("label") self.verticalLayout_4.addWidget(self.label) spacerItem8 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_4.addItem(spacerItem8) self.horizontalLayout.addLayout(self.verticalLayout_4) self.horizontalLayout.setStretch(1, 1) self.verticalLayout_6.addLayout(self.horizontalLayout) self.github_errors = QtGui.QLabel(self.github_config_page) self.github_errors.setStyleSheet("color: rgb(252, 98, 70);") self.github_errors.setText("") self.github_errors.setAlignment(QtCore.Qt.AlignCenter) self.github_errors.setWordWrap(True) self.github_errors.setObjectName("github_errors") self.verticalLayout_6.addWidget(self.github_errors) Wizard.addPage(self.github_config_page) self.disk_config_page = DiskConfigPage() self.disk_config_page.setObjectName("disk_config_page") self.verticalLayout_8 = QtGui.QVBoxLayout(self.disk_config_page) self.verticalLayout_8.setContentsMargins(25, 20, 25, 20) self.verticalLayout_8.setObjectName("verticalLayout_8") self.disk_config_subheader = QtGui.QLabel(self.disk_config_page) self.disk_config_subheader.setStyleSheet("font-size: 14px;") self.disk_config_subheader.setWordWrap(True) self.disk_config_subheader.setObjectName("disk_config_subheader") self.verticalLayout_8.addWidget(self.disk_config_subheader) spacerItem9 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout_8.addItem(spacerItem9) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setSpacing(20) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.folder_icon = QtGui.QLabel(self.disk_config_page) self.folder_icon.setMaximumSize(QtCore.QSize(200, 200)) self.folder_icon.setText("") self.folder_icon.setPixmap(QtGui.QPixmap(":/tk-framework-adminui/setup_project/shotgun_folder.png")) self.folder_icon.setScaledContents(True) self.folder_icon.setObjectName("folder_icon") self.horizontalLayout_2.addWidget(self.folder_icon) self.verticalLayout_7 = QtGui.QVBoxLayout() self.verticalLayout_7.setSpacing(20) self.verticalLayout_7.setObjectName("verticalLayout_7") spacerItem10 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_7.addItem(spacerItem10) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setSpacing(20) self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.path = QtGui.QLineEdit(self.disk_config_page) self.path.setObjectName("path") self.horizontalLayout_4.addWidget(self.path) self.disk_browse_button = QtGui.QPushButton(self.disk_config_page) self.disk_browse_button.setObjectName("disk_browse_button") self.horizontalLayout_4.addWidget(self.disk_browse_button) self.verticalLayout_7.addLayout(self.horizontalLayout_4) self.label_2 = QtGui.QLabel(self.disk_config_page) self.label_2.setObjectName("label_2") self.verticalLayout_7.addWidget(self.label_2) spacerItem11 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_7.addItem(spacerItem11) self.horizontalLayout_2.addLayout(self.verticalLayout_7) self.horizontalLayout_2.setStretch(1, 1) self.verticalLayout_8.addLayout(self.horizontalLayout_2) self.disk_errors = QtGui.QLabel(self.disk_config_page) self.disk_errors.setStyleSheet("color: rgb(252, 98, 70);") self.disk_errors.setText("") self.disk_errors.setAlignment(QtCore.Qt.AlignCenter) self.disk_errors.setWordWrap(True) self.disk_errors.setObjectName("disk_errors") self.verticalLayout_8.addWidget(self.disk_errors) Wizard.addPage(self.disk_config_page) self.project_name_page = ProjectNamePage() self.project_name_page.setObjectName("project_name_page") self.verticalLayout_9 = QtGui.QVBoxLayout(self.project_name_page) self.verticalLayout_9.setContentsMargins(0, 0, 0, 0) self.verticalLayout_9.setObjectName("verticalLayout_9") self.project_name_scroll_area = QtGui.QScrollArea(self.project_name_page) self.project_name_scroll_area.setFocusPolicy(QtCore.Qt.NoFocus) self.project_name_scroll_area.setFrameShape(QtGui.QFrame.NoFrame) self.project_name_scroll_area.setFrameShadow(QtGui.QFrame.Plain) self.project_name_scroll_area.setWidgetResizable(True) self.project_name_scroll_area.setObjectName("project_name_scroll_area") self.project_name_scroll_area_contents = QtGui.QWidget() self.project_name_scroll_area_contents.setGeometry(QtCore.QRect(0, 0, 332, 200)) self.project_name_scroll_area_contents.setObjectName("project_name_scroll_area_contents") self.project_contents_layout = QtGui.QVBoxLayout(self.project_name_scroll_area_contents) self.project_contents_layout.setContentsMargins(25, 20, 25, 20) self.project_contents_layout.setObjectName("project_contents_layout") self.project_name_subheader = QtGui.QLabel(self.project_name_scroll_area_contents) self.project_name_subheader.setStyleSheet("font-size: 14px;") self.project_name_subheader.setWordWrap(True) self.project_name_subheader.setObjectName("project_name_subheader") self.project_contents_layout.addWidget(self.project_name_subheader) spacerItem12 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.project_contents_layout.addItem(spacerItem12) self.project_name = QtGui.QLineEdit(self.project_name_scroll_area_contents) self.project_name.setObjectName("project_name") self.project_contents_layout.addWidget(self.project_name) spacerItem13 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.project_contents_layout.addItem(spacerItem13) self.project_directories = QtGui.QLabel(self.project_name_scroll_area_contents) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.project_directories.sizePolicy().hasHeightForWidth()) self.project_directories.setSizePolicy(sizePolicy) self.project_directories.setFrameShape(QtGui.QFrame.NoFrame) self.project_directories.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) self.project_directories.setObjectName("project_directories") self.project_contents_layout.addWidget(self.project_directories) self.project_name_scroll_area.setWidget(self.project_name_scroll_area_contents) self.verticalLayout_9.addWidget(self.project_name_scroll_area) spacerItem14 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_9.addItem(spacerItem14) self.project_name_errors = QtGui.QLabel(self.project_name_page) self.project_name_errors.setStyleSheet("color: rgb(252, 98, 70);") self.project_name_errors.setText("") self.project_name_errors.setAlignment(QtCore.Qt.AlignCenter) self.project_name_errors.setWordWrap(True) self.project_name_errors.setObjectName("project_name_errors") self.verticalLayout_9.addWidget(self.project_name_errors) Wizard.addPage(self.project_name_page) self.config_location_page = ConfigLocationPage() self.config_location_page.setObjectName("config_location_page") self.gridLayout_3 = QtGui.QGridLayout(self.config_location_page) self.gridLayout_3.setContentsMargins(25, 20, 25, 20) self.gridLayout_3.setObjectName("gridLayout_3") self.mac_browse = QtGui.QPushButton(self.config_location_page) self.mac_browse.setEnabled(True) self.mac_browse.setObjectName("mac_browse") self.gridLayout_3.addWidget(self.mac_browse, 2, 3, 1, 1) self.windows_path = QtGui.QLineEdit(self.config_location_page) self.windows_path.setObjectName("windows_path") self.gridLayout_3.addWidget(self.windows_path, 6, 2, 1, 1) self.linux_path = QtGui.QLineEdit(self.config_location_page) self.linux_path.setObjectName("linux_path") self.gridLayout_3.addWidget(self.linux_path, 5, 2, 1, 1) self.config_location_errors = QtGui.QLabel(self.config_location_page) self.config_location_errors.setStyleSheet("color: rgb(252, 98, 70);") self.config_location_errors.setText("") self.config_location_errors.setAlignment(QtCore.Qt.AlignCenter) self.config_location_errors.setWordWrap(True) self.config_location_errors.setObjectName("config_location_errors") self.gridLayout_3.addWidget(self.config_location_errors, 8, 0, 1, 4) self.linux_browse = QtGui.QPushButton(self.config_location_page) self.linux_browse.setEnabled(True) self.linux_browse.setObjectName("linux_browse") self.gridLayout_3.addWidget(self.linux_browse, 5, 3, 1, 1) spacerItem15 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.gridLayout_3.addItem(spacerItem15, 7, 0, 1, 4) self.windows_label = QtGui.QLabel(self.config_location_page) self.windows_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.windows_label.setObjectName("windows_label") self.gridLayout_3.addWidget(self.windows_label, 6, 0, 1, 1) self.config_location_subheader = QtGui.QLabel(self.config_location_page) self.config_location_subheader.setStyleSheet("font-size: 14px;") self.config_location_subheader.setWordWrap(True) self.config_location_subheader.setObjectName("config_location_subheader") self.gridLayout_3.addWidget(self.config_location_subheader, 0, 0, 1, 4) self.windows_browse = QtGui.QPushButton(self.config_location_page) self.windows_browse.setEnabled(True) self.windows_browse.setObjectName("windows_browse") self.gridLayout_3.addWidget(self.windows_browse, 6, 3, 1, 1) self.mac_label = QtGui.QLabel(self.config_location_page) self.mac_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.mac_label.setObjectName("mac_label") self.gridLayout_3.addWidget(self.mac_label, 2, 0, 1, 1) self.linux_label = QtGui.QLabel(self.config_location_page) self.linux_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.linux_label.setObjectName("linux_label") self.gridLayout_3.addWidget(self.linux_label, 5, 0, 1, 1) self.mac_path = QtGui.QLineEdit(self.config_location_page) self.mac_path.setObjectName("mac_path") self.gridLayout_3.addWidget(self.mac_path, 2, 2, 1, 1) spacerItem16 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.gridLayout_3.addItem(spacerItem16, 1, 0, 1, 4) Wizard.addPage(self.config_location_page) self.progress_page = ProgressPage() self.progress_page.setObjectName("progress_page") self.verticalLayout_5 = QtGui.QVBoxLayout(self.progress_page) self.verticalLayout_5.setSpacing(15) self.verticalLayout_5.setContentsMargins(25, -1, 25, -1) self.verticalLayout_5.setObjectName("verticalLayout_5") spacerItem17 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_5.addItem(spacerItem17) self.message = QtGui.QLabel(self.progress_page) self.message.setText("") self.message.setObjectName("message") self.verticalLayout_5.addWidget(self.message) self.progress = QtGui.QProgressBar(self.progress_page) self.progress.setObjectName("progress") self.verticalLayout_5.addWidget(self.progress) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.additional_details_button = QtGui.QPushButton(self.progress_page) self.additional_details_button.setBaseSize(QtCore.QSize(20, 32)) self.additional_details_button.setFocusPolicy(QtCore.Qt.NoFocus) self.additional_details_button.setAutoDefault(False) self.additional_details_button.setFlat(False) self.additional_details_button.setObjectName("additional_details_button") self.horizontalLayout_3.addWidget(self.additional_details_button) spacerItem18 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem18) self.verticalLayout_5.addLayout(self.horizontalLayout_3) self.progress_output = QtGui.QPlainTextEdit(self.progress_page) self.progress_output.setFocusPolicy(QtCore.Qt.NoFocus) self.progress_output.setUndoRedoEnabled(False) self.progress_output.setLineWrapMode(QtGui.QPlainTextEdit.NoWrap) self.progress_output.setReadOnly(True) self.progress_output.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByKeyboard|QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextBrowserInteraction|QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse) self.progress_output.setObjectName("progress_output") self.verticalLayout_5.addWidget(self.progress_output) spacerItem19 = QtGui.QSpacerItem(20, 0, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_5.addItem(spacerItem19) self.complete_errors = QtGui.QLabel(self.progress_page) self.complete_errors.setStyleSheet("color: rgb(252, 98, 70);") self.complete_errors.setText("") self.complete_errors.setAlignment(QtCore.Qt.AlignCenter) self.complete_errors.setWordWrap(True) self.complete_errors.setObjectName("complete_errors") self.verticalLayout_5.addWidget(self.complete_errors) Wizard.addPage(self.progress_page) self.summary_page = QtGui.QWizardPage() self.summary_page.setObjectName("summary_page") self.gridLayout = QtGui.QGridLayout(self.summary_page) self.gridLayout.setContentsMargins(25, 60, 25, 20) self.gridLayout.setVerticalSpacing(20) self.gridLayout.setObjectName("gridLayout") spacerItem20 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem20, 5, 2, 1, 1) self.final_message = QtGui.QLabel(self.summary_page) self.final_message.setStyleSheet("font-size: 16px;\n" "color: rgb(141, 143, 143);") self.final_message.setTextFormat(QtCore.Qt.RichText) self.final_message.setWordWrap(True) self.final_message.setOpenExternalLinks(True) self.final_message.setObjectName("final_message") self.gridLayout.addWidget(self.final_message, 6, 2, 1, 1) spacerItem21 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem21, 0, 0, 1, 1) spacerItem22 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem22, 0, 6, 1, 1) self.setup_complete = QtGui.QLabel(self.summary_page) self.setup_complete.setStyleSheet("font-size: 20px;") self.setup_complete.setAlignment(QtCore.Qt.AlignCenter) self.setup_complete.setObjectName("setup_complete") self.gridLayout.addWidget(self.setup_complete, 4, 2, 1, 1) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.icon = QtGui.QLabel(self.summary_page) self.icon.setMaximumSize(QtCore.QSize(100, 100)) self.icon.setText("") self.icon.setPixmap(QtGui.QPixmap(":/tk-framework-adminui/setup_project/circle_logo.png")) self.icon.setScaledContents(True) self.icon.setObjectName("icon") self.horizontalLayout_5.addWidget(self.icon) self.gridLayout.addLayout(self.horizontalLayout_5, 0, 2, 1, 1) spacerItem23 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem23, 7, 2, 1, 1) Wizard.addPage(self.summary_page) self.label_standard.setBuddy(self.select_standard) self.label_project.setBuddy(self.select_project) self.label_github.setBuddy(self.select_github) self.label_disk.setBuddy(self.select_disk) self.label_default_config.setBuddy(self.select_standard) self.label_multiroot_config.setBuddy(self.select_project) self.label_multiroot_config_2.setBuddy(self.select_project) self.label_games_config.setBuddy(self.select_github) self.octocat.setBuddy(self.github_url) self.project_directories.setBuddy(self.project_name) self.windows_label.setBuddy(self.windows_path) self.mac_label.setBuddy(self.mac_path) self.linux_label.setBuddy(self.linux_path) self.retranslateUi(Wizard) QtCore.QMetaObject.connectSlotsByName(Wizard) Wizard.setTabOrder(self.project_list, self.github_url) Wizard.setTabOrder(self.github_url, self.path) Wizard.setTabOrder(self.path, self.disk_browse_button) Wizard.setTabOrder(self.disk_browse_button, self.project_name) Wizard.setTabOrder(self.project_name, self.mac_path) Wizard.setTabOrder(self.mac_path, self.mac_browse) Wizard.setTabOrder(self.mac_browse, self.linux_path) Wizard.setTabOrder(self.linux_path, self.linux_browse) Wizard.setTabOrder(self.linux_browse, self.windows_path) Wizard.setTabOrder(self.windows_path, self.windows_browse) Wizard.setTabOrder(self.windows_browse, self.project_name_scroll_area)
def initUI(self): # --- initiate ui components btn_publish_files = QtGui.QPushButton('Publish Files') lbl_folder = QtGui.QLabel('Folder:') self._lbl_display_folder = QtGui.QLineEdit('nothing selected') self._lbl_display_folder.setReadOnly(True) btn_browse_files = QtGui.QPushButton('...') btn_create_assets = QtGui.QPushButton('Create Assets') btn_create_sheet = QtGui.QPushButton('Create Sheet') lbl_asset_type = QtGui.QLabel('Type:') self._combo_entity_type = QtGui.QComboBox(self) result = sg.schema_field_read("Asset", "sg_asset_type") self._combo_entity_type.addItems(result['sg_asset_type']['properties']['valid_values']['value']) lbl_parent_assets = QtGui.QLabel('Parent Asset:') self._txt_parent_assets = QtGui.QLineEdit('Assets') lbl_asset_tags = QtGui.QLabel('Tags:') self._txt_asset_tag = QtGui.QLineEdit('Tags') completer = Completer_new() completer.setCompletionMode(QtGui.QCompleter.PopupCompletion) completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self._txt_asset_tag.setCompleter(completer) model = QtGui.QStringListModel() completer.setModel(model) filters = [['id', 'greater_than', 0]] fields = ['name'] temp_tag_list = sg.find('Tag', filters, fields) tag_list = [] for t in temp_tag_list: tag_list.append(t['name']) model.setStringList(tag_list) # --- build the ui components layout = QtGui.QGridLayout(self) layout.setHorizontalSpacing(5) layout.setVerticalSpacing(6) # addWidget (self, QWidget, int row, int column, int rowSpan, int columnSpan, Qt.Alignment alignment = 0) layout.addWidget(lbl_folder, 0, 0) layout.addWidget(self._lbl_display_folder, 0, 1, 1, 4) layout.addWidget(btn_browse_files, 0, 5) row = 1 layout.addWidget(btn_create_sheet, row, 1) layout.addWidget(btn_create_assets, row, 2) row += 1 layout.addWidget(lbl_asset_type, row, 0) # layout.addWidget(self.txt_type, row, 1, 1, 5) layout.addWidget(self._combo_entity_type, row, 1, 1, 5) row += 1 layout.addWidget(lbl_parent_assets, row, 0) layout.addWidget(self._txt_parent_assets, row, 1, 1, 5) row += 1 layout.addWidget(lbl_asset_tags, row, 0) layout.addWidget(self._txt_asset_tag, row, 1, 1, 5) row += 1 layout.addWidget(btn_publish_files) logging_widget = QtGui.QSplitter() log_handler = QPlainTextEditLogger(logging_widget) logger.addHandler(log_handler) layout.addWidget(logging_widget, row, 1, 5, 5) logger.info('tk-legend-shotgun-publish running') # ---- connect some signals btn_publish_files.clicked.connect(self._publish_files) btn_browse_files.clicked.connect(self._browse_files) btn_create_sheet.clicked.connect(self._create_sheet) btn_create_assets.clicked.connect(self._create_assets) self.setGeometry(10, 20, 500, 100) self.setWindowTitle('Legend Shotgun Publish') # Remember this to remind yourself not to mess up live scripts self.setLayout(layout) self.show()
def __init__(self, store_name, store_info, uri, parent=None): BasePage.__init__(self, parent) # initialize member variables self._uri = uri self._store_name = store_name self._store_info = store_info self._last_page = False # setup the UI layout = QtGui.QGridLayout(self) layout.setContentsMargins(25, 20, 25, 20) self.setTitle("<p></p><font size=18>Define %s Storage</font><p></p>" % store_name.title()) self.setSubTitle(" ") # setup the subtitle subtitle = QtGui.QLabel(self) subtitle.setWordWrap(True) subtitle.setStyleSheet("font-size: 14px;") subtitle.setText(""" <p style="line-height: 130%%"> Specify where you want Shotgun to store files on disk.<br/> If you use multiple operating systems, enter the equivalent path for each.<br/> </p> """) layout.addWidget(subtitle, 0, 0, 1, 4) # setup a label to describe the storage description = QtGui.QLabel(self) description.setWordWrap(True) description.setText( """ <p style="line-height: 130%%"> Storage description:<br/> %s </p> """ % (store_info["description"])) layout.addWidget(description, 1, 0, 1, 4) # add a spacer between storages spacer = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) layout.addItem(spacer, 2, 0, 1, 4) # Setup a group of line edits per storage os_specifics = [ # (Label, info_key, current_os) ("Mac", "darwin", "/Path/On/Mac", sys.platform == "darwin"), ("Linux", "linux2", "/path/on/linux", sys.platform.startswith("linux")), ("Windows", "win32", "\\\\Path\\On\\Windows", sys.platform == "win32"), ] # current os first, then alphabetically def os_key(element): # return a key that sorts the os'es properly (os_display, _, _, os_current) = element return (not os_current, os_display) os_specifics.sort(key=os_key) self._store_path_widgets = {} for (i, (os_display, os_key, os_placeholder, os_current)) in enumerate(os_specifics): # setup the os widgets os_label = QtGui.QLabel("%s" % os_display, self) os_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) os_path = QtGui.QLineEdit(self) os_path.setPlaceholderText(os_placeholder) # populate with existing paths if store_info[os_key]: os_path.setText(store_info[os_key]) # don't allow editing data from Shotgun, too dangerous if store_info["defined_in_shotgun"] and store_info[os_key]: os_path.setReadOnly(True) os_path.setEnabled(False) os_path.setToolTip( "Can not edit paths defined Shotgun. This has to be changed in Shotgun's preferences.") # keep around the line edits for validation self._store_path_widgets[os_key] = os_path # only create the browse button for the current os if # the storage is not in Shotgun or # the storage is blank in Shotgun create_browse = os_current and ( not store_info["defined_in_shotgun"] or (store_info["defined_in_shotgun"] and not store_info[os_key])) if create_browse: os_button = QtGui.QPushButton("Browse...", self) # connect the button to populate the os specific path def generate_on_browse_clicked(path_widget): # generate the slot as a closure to capture the current widget def ret(): storage_dir = QtGui.QFileDialog.getExistingDirectory( self, "Choose storage root", None, QtGui.QFileDialog.ShowDirsOnly | QtGui.QFileDialog.DontConfirmOverwrite) path_widget.setText(storage_dir) return ret os_button.pressed.connect(generate_on_browse_clicked(os_path)) # add the widgets to the layout layout.addWidget(os_label, 3+i, 0, 1, 1) layout.addWidget(os_path, 3+i, 2, 1, 1) if create_browse: layout.addWidget(os_button, 3+i, 3, 1, 1) # add a spacer since spacer = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) layout.addItem(spacer, 6, 0, 1, 4) # setup a place to report errors self.storage_errors = QtGui.QLabel(self) self.storage_errors.setWordWrap(True) self.storage_errors.setStyleSheet("color: rgb(252, 98, 70);") self.storage_errors.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) layout.addWidget(self.storage_errors, 7, 0, 1, 4)