Exemplo n.º 1
0
    def _setup_storage_widgets(self, project_paths_dict):
        # setup os info and ordering
        os_info = [
            # (dict key, label, current os)
            ("darwin", "Mac", sys.platform == "darwin"),
            ("linux2", "Linux", sys.platform.startswith("linux")),
            ("win32", "Windows", sys.platform == "win32"),
        ]

        # current os first, then alphabetically
        def os_key(element):
            # return a key that sorts the os'es properly
            (_, label, os_current) = element
            return (not os_current, label)

        os_info.sort(key=os_key)

        wiz = self.wizard()
        for storage in project_paths_dict:
            # each storage gets a group showing what paths will be created for that storage
            group = QtGui.QGroupBox(" %s " % storage.title())
            group.setStyleSheet("""
                QGroupBox {
                    border: 1px solid rgb(217, 217, 217);
                    border-radius: 3px;
                    margin-top: 0.5em;
                }

                QGroupBox::title {
                    font-size: 14px;
                    subcontrol-origin: margin;
                    left: 10px;
                    padding: 0 3px 0 3px;
                    color: rgb(55, 168, 225);
                }
            """)
            group_layout = QtGui.QGridLayout(group)
            row = 0
            for (key, label, _) in os_info:
                path = project_paths_dict[storage].get(key)
                if path:
                    group_layout.addWidget(
                        QtGui.QLabel("<big>%s</big>" % label), row, 0, 1, 1)
                    path_widget = QtGui.QLabel()
                    self._storage_path_widgets.setdefault(
                        storage, {})[key] = path_widget
                    group_layout.addWidget(path_widget, row, 1, 1, 1)
                    row += 1
            group_layout.setColumnStretch(1, 1)
            group_layout.setHorizontalSpacing(15)
            wiz.ui.project_contents_layout.addWidget(group)

            # Keep added widgets in order to remove them in case back button is used.
            self._widget_groups.append(group)
Exemplo n.º 2
0
 def __init__(self, parent):
     """
     :param QtGui.QWidget: Parent widget.
     """
     # The Commands are displayed on a grid.
     super(CommandList, self).__init__(parent, QtGui.QGridLayout())
     # The filler is a widget that prevents the button on the last row
     # from taking up the whole row if there is only one.
     self._filler = QtGui.QWidget(self)
     # This will hold the CommandButton instances index by the button name.
     self._buttons = {}
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    def _populate_ui(self):
        """
        The fields manager has been initialized. Now we can requests some
        widgets to use in the UI.
        :return:
        """

        entity_type = "HumanUser"

        # only show visible, editable, supported fields
        human_user_fields = [
            f for f in shotgun_globals.get_entity_fields(entity_type)
            if shotgun_globals.field_is_visible(entity_type, f)
            and shotgun_globals.field_is_editable(entity_type, f)
        ]

        human_user_fields = sorted(
            self._fields_manager.supported_fields(entity_type,
                                                  human_user_fields))

        # get some info about the current user
        current_user = self._bundle.context.user

        if not current_user:
            layout = QtGui.QVBoxLayout(self)
            layout.addStretch()
            layout.addWidget(
                QtGui.QLabel("FAIL: Could not determine the current user."))
            layout.addStretch()
            return

        # make sure we have all the fields we need for this user
        current_user = self._bundle.shotgun.find_one(
            entity_type, [["id", "is", current_user["id"]]],
            fields=human_user_fields)

        form_layout = QtGui.QGridLayout()
        form_layout.setSpacing(4)

        row = 0
        column = 0
        for field in human_user_fields:

            # get the display name for this field
            field_display_name = shotgun_globals.get_field_display_name(
                entity_type, field)

            # get a widget for the entity type and field. supply the current
            # user entity so that the data is populated. by default, this will
            # return an "EDITABLE" widget.
            editable_field_widget = self._fields_manager.create_widget(
                entity_type, field, entity=current_user, parent=self)

            # give the image field widget a minimum size
            if field == "image":
                editable_field_widget.setMinimumSize(QtCore.QSize(64, 64))

            # add the label
            lbl = FieldLabel("%s:" % (field_display_name, ))
            form_layout.addWidget(lbl, row, column, QtCore.Qt.AlignRight)

            # add the widget
            form_layout.addWidget(editable_field_widget, row, column + 1,
                                  QtCore.Qt.AlignLeft)

            # listen to the value_changed signal
            editable_field_widget.value_changed.connect(
                lambda f=field_display_name, w=editable_field_widget: self.
                _on_value_changed(f, w))

            row += 1

        form_layout.setRowStretch(row, 10)
        form_layout.setColumnStretch(column + 1, 10)

        form_widget = QtGui.QWidget()
        form_widget.setLayout(form_layout)

        scroll_area = QtGui.QScrollArea()
        scroll_area.setWidget(form_widget)
        scroll_area.setWidgetResizable(True)
        scroll_area.setFocusPolicy(QtCore.Qt.NoFocus)

        # add an output box at the bottom of the grid to show what happens as
        # signals are emitted when the widgets are interacted with
        output_lbl = QtGui.QLabel(
            "Interact with the widgets above. Value change signals will be "
            "echo'd below.")
        self._output_text = QtGui.QTextEdit()
        self._output_text.setMaximumHeight(100)
        self._output_text.setReadOnly(True)

        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(scroll_area)
        layout.addWidget(output_lbl)
        layout.addWidget(self._output_text)
    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 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, 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("&nbsp;")

        # 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)
Exemplo n.º 8
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(750, 900)
        self.gridLayout = QtGui.QGridLayout(Dialog)
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.taskTabWidget = QtGui.QTabWidget(Dialog)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.taskTabWidget.sizePolicy().hasHeightForWidth())
        self.taskTabWidget.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setWeight(75)
        font.setBold(True)
        self.taskTabWidget.setFont(font)
        self.taskTabWidget.setAcceptDrops(True)
        self.taskTabWidget.setObjectName("taskTabWidget")
        self.horizontalLayout.addWidget(self.taskTabWidget)
        self.timeTabWidget = QtGui.QTabWidget(Dialog)
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setWeight(75)
        font.setBold(True)
        self.timeTabWidget.setFont(font)
        self.timeTabWidget.setObjectName("timeTabWidget")
        self.horizontalLayout.addWidget(self.timeTabWidget)
        self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 2)
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setSizeConstraint(
            QtGui.QLayout.SetDefaultConstraint)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem)
        self.time_sum_label = QtGui.QLabel(Dialog)
        font = QtGui.QFont()
        font.setPointSize(16)
        self.time_sum_label.setFont(font)
        self.time_sum_label.setObjectName("time_sum_label")
        self.horizontalLayout_2.addWidget(self.time_sum_label)
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.time_sum_today_label = QtGui.QLabel(Dialog)
        font = QtGui.QFont()
        font.setPointSize(16)
        self.time_sum_today_label.setFont(font)
        self.time_sum_today_label.setObjectName("time_sum_today_label")
        self.horizontalLayout_3.addWidget(self.time_sum_today_label)
        self.time_sum_week_label = QtGui.QLabel(Dialog)
        font = QtGui.QFont()
        font.setPointSize(16)
        self.time_sum_week_label.setFont(font)
        self.time_sum_week_label.setObjectName("time_sum_week_label")
        self.horizontalLayout_3.addWidget(self.time_sum_week_label)
        self.horizontalLayout_2.addLayout(self.horizontalLayout_3)
        spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem1)
        self.gridLayout.addLayout(self.horizontalLayout_2, 2, 0, 1, 1)
        self.tableLayout = QtGui.QVBoxLayout()
        self.tableLayout.setObjectName("tableLayout")
        self.gridLayout.addLayout(self.tableLayout, 3, 0, 1, 1)

        self.retranslateUi(Dialog)
        self.timeTabWidget.setCurrentIndex(-1)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
    def playblast_submit_dialog(self):
        """A dialog UI widget that allows the user to enter comments and then
        initiate the upload to Shotgun as a Version if they choose, by entering
        text + clicking the button. Intercepts before the standard upload.
        NOTE: sgtk's implementation of Qt doesn't have libraries available for
        using .ui files directly, so we have to program it explicitly.
        """
        # main dialog
        self.dialog = QtGui.QDialog(
            None,
            QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowCloseButtonHint
        )

        self.dialog.setObjectName('PlayblastDialog')
        self.dialog.resize(440, 240)
        self.dialog.setMinimumSize(QtCore.QSize(440, 240))
        self.dialog.setMaximumSize(QtCore.QSize(440, 240))

        self.dialog.setWindowFlags(
            self.dialog.windowFlags() | QtCore.Qt.WindowStaysOnTopHint
        )

        self.dialog.setWindowTitle(
            QtGui.QApplication.translate(
                'PlayblastDialog',
                'Playblast to Shotgun - Sinking Ship',
                None,
                QtGui.QApplication.UnicodeUTF8
            )
        )

        # main layout & grid
        self.dialog.gridLayoutWidget = QtGui.QWidget(self.dialog)
        self.dialog.gridLayoutWidget.setGeometry(QtCore.QRect(9, 9, 421, 221))
        self.dialog.gridLayoutWidget.setObjectName('gridLayoutWidget')

        self.dialog.gridLayout_main = QtGui.QGridLayout(
            self.dialog.gridLayoutWidget
        )

        self.dialog.gridLayout_main.setContentsMargins(0, 0, 0, 0)
        self.dialog.gridLayout_main.setObjectName('gridLayout_main')

        # upload button
        self.dialog.pushButton_upload = QtGui.QPushButton(
            self.dialog.gridLayoutWidget
        )
        self.dialog.pushButton_upload.setObjectName('pushButton_upload')

        self.dialog.pushButton_upload.setText(
            QtGui.QApplication.translate(
                'PlayblastDialog',
                'Upload as Version to Shotgun',
                None,
                QtGui.QApplication.UnicodeUTF8
            )
        )

        self.dialog.gridLayout_main.addWidget(
            self.dialog.pushButton_upload,
            2,
            0,
            1,
            1
        )

        # comments groupbox
        self.dialog.groupBox_comments = QtGui.QGroupBox(
            self.dialog.gridLayoutWidget
        )

        self.dialog.groupBox_comments.setAlignment(QtCore.Qt.AlignCenter)
        self.dialog.groupBox_comments.setFlat(False)
        self.dialog.groupBox_comments.setObjectName('groupBox_comments')

        self.dialog.groupBox_comments.setTitle(
            QtGui.QApplication.translate(
                'PlayblastDialog',
                'Artist Comments',
                None,
                QtGui.QApplication.UnicodeUTF8
            )
        )

        # comments textedit
        self.dialog.textEdit_comments = QtGui.QTextEdit(
            self.dialog.groupBox_comments
        )

        self.dialog.textEdit_comments.setGeometry(
            QtCore.QRect(12, 20, 395, 131)
        )

        self.dialog.textEdit_comments.setMinimumSize(QtCore.QSize(395, 131))
        self.dialog.textEdit_comments.setMaximumSize(QtCore.QSize(395, 131))
        self.dialog.textEdit_comments.setObjectName('textEdit_comments')

        self.dialog.gridLayout_main.addWidget(
            self.dialog.groupBox_comments,
            1,
            0,
            1,
            1
        )

        # signals and slots
        self.dialog.pushButton_upload.clicked.connect(
            self.maya_shot_playblast_version
        )

        # launch dialog
        self.dialog.exec_()
    def __init__(self, dataType, data, noteData=None, parent=None):
        super(noteContentLayout, self).__init__(parent)

        self.data = data
        self.noteData = noteData  # is a list

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        layoutContainer = QtGui.QHBoxLayout()
        titleGridLayout = QtGui.QGridLayout()
        layoutContainer.addLayout(titleGridLayout)

        #titleGridLayout.setColumnStretch(2,40)

        # author
        authorTxt = "unknown"

        self.attachmentLayout = QtGui.QHBoxLayout()

        self.Qt_noteContent = my_textEdit("",
                                          editable=bool(self.data),
                                          parent=self)  # QtGui.QTextEdit( )

        if self.data:

            try:
                self.Qt_noteContent.setPlainText(
                    QtCore.QString.fromUtf8(self.data["content"]))
            except:
                self.Qt_noteContent.setPlainText(self.data["content"])

            if dataType == "Reply":
                titleGridLayout.setColumnStretch(0, 0)
                titleGridLayout.setColumnStretch(1, 1)

                authorHtmlTxt = "<font size=2 color=#BBBBBB>Author : " + self.data[
                    "user"]['name'] + "</font><br>"
                dateHtmlTxt = "<font size=2 color=#BBBBBB>Date : " + self.data[
                    "created_at"].strftime('%Y-%m-%d %H:%M:%S') + "</font>"
                labelText = QtGui.QLabel(authorHtmlTxt + dateHtmlTxt,
                                         parent=self)

                titleGridLayout.setHorizontalSpacing(20)
                titleGridLayout.addWidget(labelText, 0, 0, QtCore.Qt.AlignTop)
                titleGridLayout.addWidget(self.Qt_noteContent, 0, 1)
                layout.addLayout(layoutContainer)
                layout.addLayout(self.attachmentLayout)
                titleGridLayout.setContentsMargins(0, 0, 0, 0)
                layout.setContentsMargins(0, 0, 0, 0)

            else:
                authorHtmlTxt = "<font color=#BBBBBB>Author : " + self.data[
                    "user"]['name'] + "</font><br>"
                dateHtmlTxt = "<font color=#BBBBBB>Date : <b>" + self.data[
                    "created_at"].strftime(
                        '%Y-%m-%d %H:%M:%S') + "</font></b><br>"
                labelText = QtGui.QLabel(authorHtmlTxt + dateHtmlTxt,
                                         parent=self)

                titleGridLayout.addWidget(labelText, 0, 0, QtCore.Qt.AlignTop)

                layout.addLayout(layoutContainer)
                layout.addWidget(self.Qt_noteContent)
                layout.addLayout(self.attachmentLayout)

                self.Qt_noteContent.setStyleSheet(
                    "QTextEdit { color : #F0F0F0 ; }")
                titleGridLayout.setContentsMargins(0, 0, 0, 0)
                layout.setContentsMargins(0, 0, 0, 0)

        if not self.data:
            if dataType == "Reply":
                if len(self.noteData) > 1:
                    self.Qt_noteContent.setText(
                        u"Type a reply for all the selected notes")
                else:
                    self.Qt_noteContent.setText(u"Type a reply")
                    self.Qt_noteContent.selectAll()
                    self.Qt_noteContent.SIGNAL_return.connect(
                        self.replyNoteSlot)

            elif dataType == "Note":
                self.Qt_noteContent.setText(u"Type a note")
                self.Qt_noteContent.setFocus()
                self.Qt_noteContent.selectAll()
                self.Qt_noteContent.SIGNAL_return.connect(self.createNoteSlot)
            layout.setContentsMargins(0, 0, 0, 0)

            layout.addLayout(layoutContainer)
            layout.addWidget(self.Qt_noteContent)
            layout.addLayout(self.attachmentLayout)

        if self.data:
            for attachementFile in self.data["queriedAttachement"]:
                labelImage = PicButton(attachementFile["fileOnDisk"],
                                       overImageName="magnifier.png",
                                       parent=self)

                labelImage.SIGNAL_imageClicked.connect(self.showImageDisplay)

                self.attachmentLayout.addWidget(labelImage)
        else:
            attachButton = QtGui.QPushButton(parent=self)
            attachmentPixmap = QtGui.QPixmap(
                getRessources("note_attachment.png"))
            attachementScaled = attachmentPixmap.scaled(
                32, 32, QtCore.Qt.KeepAspectRatio)
            attachButton.setIcon(QtGui.QIcon(attachementScaled))
            attachButton.clicked.connect(self.addAttachment)

            screenShotButton = QtGui.QPushButton(parent=self)
            attachmentPixmap = QtGui.QPixmap(
                getRessources("note_screenShot.png"))
            attachementScaled = attachmentPixmap.scaled(
                32, 32, QtCore.Qt.KeepAspectRatio)
            screenShotButton.setIcon(QtGui.QIcon(attachementScaled))
            screenShotButton.clicked.connect(self.addScreenShot)

            self.attachmentLayout.addWidget(screenShotButton)
            self.attachmentLayout.addWidget(attachButton)

            replyButton = None
            if dataType == "Reply":
                replyButton = QtGui.QPushButton("Reply", parent=self)
                replyButton.clicked.connect(self.replyNoteSlot)
                #replyButton.setStyleSheet("QPushButton {border: 1px solid #199909;border-radius: 6px;background-color: #116a06;}")
                replyButton.setMinimumHeight(18)
                replyButton.setStyleSheet(
                    "QPushButton {border: 1px solid #39B3FF;border-radius: 6px;background-color: #474747;background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, stop: 0 #6B6B6B, stop: 1  #474747);}"
                )

                self.statusLabel = QtGui.QComboBox(parent=self)
                self.statusLabel.addItem(
                    QtGui.QIcon(getRessources("status_opn.png")), "Open")
                self.statusLabel.addItem(
                    QtGui.QIcon(getRessources("status_clsd.png")), "closed")
                self.statusLabel.addItem(
                    QtGui.QIcon(getRessources("status_ip.png")), "In progress")

                if self.noteData[0]["sg_status_list"] == "opn":
                    self.statusLabel.setCurrentIndex(0)
                elif self.noteData[0]["sg_status_list"] == "clsd":
                    self.statusLabel.setCurrentIndex(1)
                elif self.noteData[0]["sg_status_list"] == "ip":
                    self.statusLabel.setCurrentIndex(2)

                self.statusLabel.setMaximumWidth(100)
                #self.connect(self.statusLabel, QtCore.SIGNAL("currentIndexChanged(int)"),  self.updateNodeDataStatus )
                self.statusLabel.currentIndexChanged.connect(
                    self.updateNodeDataStatus)

                layout.addWidget(self.statusLabel)
                layout.addWidget(replyButton)

            elif dataType == "Note":
                #self.linkFilterWidget = comboFilterWidget2()

                replyButton = QtGui.QPushButton("Create Note", parent=self)
                replyButton.setMinimumHeight(18)
                replyButton.setStyleSheet(
                    "QPushButton {border: 1px solid #39B3FF;border-radius: 6px;background-color: #3990CA;background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, stop: 0 #3990CA, stop: 1  #215272);}"
                )

                replyButton.clicked.connect(self.createNoteSlot)

                layout.addWidget(replyButton)

        self.attachmentLayout.addStretch()

        style = "background-color: red;"
    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)
Exemplo n.º 12
0
    def __init__(self, parent=None):
        super(ModuleInfo, self).__init__(parent=parent)
        self._spec = None
        self._default_icon = QtGui.QPixmap(res.get_path('module_256.png'))

        self.icon = QtGui.QLabel()
        self.icon.setFixedSize(48, 48)
        self.icon.setScaledContents(True)
        self.icon.setPixmap(self._default_icon)

        self.name = QtGui.QLabel('Module Info')
        self.name.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft)
        self.description = QtGui.QLabel('')
        self.description.setMinimumHeight(24)
        self.description.setWordWrap(True)
        self.author = QtGui.QLabel('Author')
        self.author.setWordWrap(True)
        self.email = QtGui.QLabel('Email')
        self.email.setWordWrap(True)
        self.version = QtGui.QLabel('Version')
        self.size = QtGui.QLabel('Size')
        self.requires = MinimizedList(parent=self)
        self.requires.setSelectionMode(self.requires.NoSelection)
        self.requires.setFocusPolicy(QtCore.Qt.NoFocus)
        self.requires_copy = QtGui.QToolButton(
            icon=QtGui.QIcon(res.get_path('copy.png')))
        self.requires_copy.setIconSize(QtCore.QSize(10, 10))
        self.requires_copy.setToolTip('Copy requires to clipboard.')
        self.requires_copy.clicked.connect(
            lambda: self.copy_to_clipboard('requires'))
        self.environment = EnvTree('module_environment', {}, parent=self)
        self.environment.setSizePolicy(
            QtGui.QSizePolicy.Expanding,
            QtGui.QSizePolicy.Expanding,
        )
        self.environment.setFocusPolicy(QtCore.Qt.NoFocus)
        self.environment.setSelectionMode(self.environment.NoSelection)
        self.environment_copy = QtGui.QToolButton(
            icon=QtGui.QIcon(res.get_path('copy.png')))
        self.environment_copy.setIconSize(QtCore.QSize(10, 10))
        self.environment_copy.setToolTip('Copy environment to clipboard.')
        self.environment_copy.clicked.connect(
            lambda: self.copy_to_clipboard('environment'))
        header_layout = QtGui.QHBoxLayout()
        header_layout.addWidget(self.icon)
        header_layout.addWidget(self.name)

        info_grid = QtGui.QGridLayout()
        info_grid.setColumnStretch(1, 1)
        info_grid.setRowStretch(7, 1)
        for i in range(7):
            info_grid.setRowMinimumHeight(i, 10)
        info_grid.addWidget(FormLabel('version:'), 0, 0)
        info_grid.addWidget(self.version, 0, 1)
        info_grid.addWidget(FormLabel('author:'), 1, 0)
        info_grid.addWidget(self.author, 1, 1)
        info_grid.addWidget(FormLabel('email:'), 2, 0)
        info_grid.addWidget(self.email, 2, 1)
        info_grid.addWidget(FormLabel('size:'), 3, 0)
        info_grid.addWidget(self.size, 3, 1)
        info_grid.addWidget(FormLabel('requires:'), 4, 0)
        info_grid.addWidget(self.requires_copy,
                            4,
                            1,
                            alignment=QtCore.Qt.AlignRight)
        info_grid.addWidget(self.requires, 5, 0, 1, 2)
        info_grid.addWidget(FormLabel('environment:'), 6, 0)
        info_grid.addWidget(self.environment_copy,
                            6,
                            1,
                            alignment=QtCore.Qt.AlignRight)
        info_grid.addWidget(self.environment, 7, 0, 1, 2)
        info_widget = QtGui.QWidget(parent=self)
        info_widget.setLayout(info_grid)
        self.info = QtGui.QScrollArea(parent=self)
        self.info.setFocusPolicy(QtCore.Qt.NoFocus)
        self.info.setWidgetResizable(True)
        self.info.setWidget(info_widget)
        self.info.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.info.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)

        self.layout = QtGui.QVBoxLayout()
        self.layout.setContentsMargins(0, 0, 0, 0)
        self.layout.setAlignment(QtCore.Qt.AlignTop)
        self.layout.addLayout(header_layout)
        self.layout.addWidget(self.description)
        self.layout.addWidget(self.info)
        self.setLayout(self.layout)
        self.setMinimumWidth(300)
        self.clear_module_spec()
Exemplo n.º 13
0
    def _populate_ui(self):

        # --- query some data

        # query the full site schema from shotgun
        self._schema = self._app.shotgun.schema_read()

        # --- build the ui components

        select_lbl = QtGui.QLabel("Select an Entity type from the list:")

        # populate a combo box with all the entity types (the keys)
        self._entity_type_combo = QtGui.QComboBox(self)
        self._entity_type_combo.addItems(sorted(self._schema.keys()))

        field_lbl = QtGui.QLabel("Select a Field name from the list:")

        self._field_name_combo = QtGui.QComboBox(self)
        self._field_name_combo.setSizeAdjustPolicy(
            QtGui.QComboBox.AdjustToContents)

        # get_type_display_name
        type_display_lbl = MethodLabel("get_type_display_name():")
        self._type_display_lbl = ValueLabel()

        # get_field_display_name
        field_display_lbl = MethodLabel("get_field_display_name():")
        self._field_display_lbl = ValueLabel()

        # get_empty_phrase
        empty_phrase_lbl = MethodLabel("get_empty_phrase():")
        self._empty_phrase_lbl = ValueLabel()

        # get_entity_type_icon
        entity_type_icon = MethodLabel("get_entity_type_icon():")
        self._entity_type_icon = ValueLabel()

        # get_entity_type_icon_url
        entity_type_icon_url = MethodLabel("get_entity_type_icon_url():")
        self._entity_type_icon_url = ValueLabel()

        # get_valid_values
        valid_values_lbl = MethodLabel("get_valid_values():")
        self._valid_values_list = QtGui.QListWidget()
        self._valid_values_list.setMaximumHeight(100)

        # field_is_editable
        field_is_editable_lbl = MethodLabel("field_is_editable():")
        self._field_is_editable_lbl = ValueLabel()

        # field_is_visible
        field_is_visible_lbl = MethodLabel("field_is_visible():")
        self._field_is_visible_lbl = ValueLabel()

        # --- layout the components

        row = 0

        layout = QtGui.QGridLayout(self)
        layout.addWidget(select_lbl, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._entity_type_combo, row, 1, QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(type_display_lbl, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._type_display_lbl, row, 1, QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(entity_type_icon, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._entity_type_icon, row, 1, QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(entity_type_icon_url, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._entity_type_icon_url, row, 1,
                         QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(field_lbl, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._field_name_combo, row, 1, QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(field_display_lbl, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._field_display_lbl, row, 1, QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(empty_phrase_lbl, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._empty_phrase_lbl, row, 1, QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(valid_values_lbl, row, 0,
                         QtCore.Qt.AlignRight | QtCore.Qt.AlignTop)
        layout.addWidget(self._valid_values_list, row, 1, QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(field_is_editable_lbl, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._field_is_editable_lbl, row, 1,
                         QtCore.Qt.AlignLeft)
        row += 1

        layout.addWidget(field_is_visible_lbl, row, 0, QtCore.Qt.AlignRight)
        layout.addWidget(self._field_is_visible_lbl, row, 1,
                         QtCore.Qt.AlignLeft)
        row += 1

        # ---- connect some signals

        # handle entity type changes
        self._entity_type_combo.activated[str].connect(
            self._on_entity_type_combo_activated)

        # handle field name changes
        self._field_name_combo.activated[str].connect(
            self._on_field_name_combo_activated)

        # ---- populate the defaults

        # entity
        entity_type_index = self._entity_type_combo.findText(
            DEFAULT_ENTITY_TYPE)
        if entity_type_index > -1:
            self._entity_type_combo.setCurrentIndex(entity_type_index)
            self._on_entity_type_combo_activated(DEFAULT_ENTITY_TYPE)

        # field
        field_name_index = self._field_name_combo.findText(DEFAULT_FIELD_NAME)
        if field_name_index > -1:
            self._field_name_combo.setCurrentIndex(field_name_index)
            self._on_field_name_combo_activated(DEFAULT_FIELD_NAME)
    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)
Exemplo n.º 15
0
    def setupUi(self, Preferences):
        Preferences.setObjectName("Preferences")
        Preferences.resize(328, 80)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            Preferences.sizePolicy().hasHeightForWidth())
        Preferences.setSizePolicy(sizePolicy)
        Preferences.setMinimumSize(QtCore.QSize(328, 80))
        Preferences.setMaximumSize(QtCore.QSize(328, 80))
        Preferences.setModal(True)
        self.gridLayout = QtGui.QGridLayout(Preferences)
        self.gridLayout.setObjectName("gridLayout")
        self.auto_start_label = QtGui.QLabel(Preferences)
        self.auto_start_label.setEnabled(True)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.auto_start_label.sizePolicy().hasHeightForWidth())
        self.auto_start_label.setSizePolicy(sizePolicy)
        self.auto_start_label.setMaximumSize(QtCore.QSize(16777215, 18))
        self.auto_start_label.setAlignment(QtCore.Qt.AlignBottom
                                           | QtCore.Qt.AlignLeading
                                           | QtCore.Qt.AlignLeft)
        self.auto_start_label.setObjectName("auto_start_label")
        self.gridLayout.addWidget(self.auto_start_label, 0, 1, 1, 3)
        self.auto_start_checkbox = QtGui.QCheckBox(Preferences)
        self.auto_start_checkbox.setEnabled(True)
        self.auto_start_checkbox.setText("")
        self.auto_start_checkbox.setObjectName("auto_start_checkbox")
        self.gridLayout.addWidget(self.auto_start_checkbox, 0, 0, 1, 1)
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setSpacing(3)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.hotkey = HotKeyEditor(Preferences)
        self.hotkey.setText("")
        self.hotkey.setFrame(False)
        self.hotkey.setObjectName("hotkey")
        self.horizontalLayout_3.addWidget(self.hotkey)
        self.hotkey_clear = QtGui.QPushButton(Preferences)
        self.hotkey_clear.setEnabled(True)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.hotkey_clear.sizePolicy().hasHeightForWidth())
        self.hotkey_clear.setSizePolicy(sizePolicy)
        self.hotkey_clear.setMaximumSize(QtCore.QSize(16, 16))
        self.hotkey_clear.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/tk-desktop/x.png"), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        self.hotkey_clear.setIcon(icon)
        self.hotkey_clear.setIconSize(QtCore.QSize(8, 8))
        self.hotkey_clear.setAutoDefault(False)
        self.hotkey_clear.setObjectName("hotkey_clear")
        self.horizontalLayout_3.addWidget(self.hotkey_clear)
        self.gridLayout.addLayout(self.horizontalLayout_3, 1, 2, 1, 2)
        self.hotkey_label = QtGui.QLabel(Preferences)
        self.hotkey_label.setEnabled(True)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.hotkey_label.sizePolicy().hasHeightForWidth())
        self.hotkey_label.setSizePolicy(sizePolicy)
        self.hotkey_label.setMaximumSize(QtCore.QSize(16777215, 18))
        self.hotkey_label.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
        self.hotkey_label.setObjectName("hotkey_label")
        self.gridLayout.addWidget(self.hotkey_label, 1, 1, 1, 1)
        self.gridLayout.setColumnStretch(3, 1)

        self.retranslateUi(Preferences)
        QtCore.QMetaObject.connectSlotsByName(Preferences)
Exemplo n.º 16
0
    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)
Exemplo n.º 17
0
    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()
Exemplo n.º 18
0
    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)