def setupUi(self, AttachmentGroupWidget):
        AttachmentGroupWidget.setObjectName("AttachmentGroupWidget")
        AttachmentGroupWidget.resize(577, 182)
        self.verticalLayout = QtGui.QVBoxLayout(AttachmentGroupWidget)
        self.verticalLayout.setSpacing(4)
        self.verticalLayout.setContentsMargins(36, 6, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.attachments_label = QtGui.QLabel(AttachmentGroupWidget)
        self.attachments_label.setMinimumSize(QtCore.QSize(100, 16))
        self.attachments_label.setMaximumSize(QtCore.QSize(100, 16))
        self.attachments_label.setText("")
        self.attachments_label.setPixmap(
            QtGui.QPixmap(
                ":/tk_framework_qtwidgets.activity_stream/attachments.png"))
        self.attachments_label.setScaledContents(True)
        self.attachments_label.setObjectName("attachments_label")
        self.verticalLayout.addWidget(self.attachments_label)
        self.preview_frame = QtGui.QFrame(AttachmentGroupWidget)
        self.preview_frame.setFrameShape(QtGui.QFrame.NoFrame)
        self.preview_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.preview_frame.setObjectName("preview_frame")
        self.preview_layout = QtGui.QGridLayout(self.preview_frame)
        self.preview_layout.setContentsMargins(0, 0, 0, 0)
        self.preview_layout.setSpacing(2)
        self.preview_layout.setObjectName("preview_layout")
        self.verticalLayout.addWidget(self.preview_frame)
        self.attachment_frame = QtGui.QFrame(AttachmentGroupWidget)
        self.attachment_frame.setFrameShape(QtGui.QFrame.NoFrame)
        self.attachment_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.attachment_frame.setObjectName("attachment_frame")
        self.attachment_layout = QtGui.QVBoxLayout(self.attachment_frame)
        self.attachment_layout.setContentsMargins(2, 2, 2, 2)
        self.attachment_layout.setObjectName("attachment_layout")
        self.verticalLayout.addWidget(self.attachment_frame)

        self.retranslateUi(AttachmentGroupWidget)
        QtCore.QMetaObject.connectSlotsByName(AttachmentGroupWidget)
Example #2
0
    def setupUi(self, OutputItem):
        OutputItem.setObjectName("OutputItem")
        OutputItem.resize(396, 56)
        OutputItem.setMinimumSize(QtCore.QSize(0, 56))
        OutputItem.setMaximumSize(QtCore.QSize(16777215, 56))
        self.horizontalLayout = QtGui.QHBoxLayout(OutputItem)
        self.horizontalLayout.setSpacing(6)
        self.horizontalLayout.setContentsMargins(12, 2, 2, 2)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.select_cb = QtGui.QCheckBox(OutputItem)
        self.select_cb.setMinimumSize(QtCore.QSize(0, 0))
        self.select_cb.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.select_cb.setText("")
        self.select_cb.setObjectName("select_cb")
        self.verticalLayout.addWidget(self.select_cb)
        self.horizontalLayout.addLayout(self.verticalLayout)
        self.icon_label = QtGui.QLabel(OutputItem)
        self.icon_label.setMinimumSize(QtCore.QSize(40, 40))
        self.icon_label.setMaximumSize(QtCore.QSize(40, 40))
        self.icon_label.setBaseSize(QtCore.QSize(32, 32))
        self.icon_label.setText("")
        self.icon_label.setPixmap(QtGui.QPixmap(":/res/default_output.png"))
        self.icon_label.setScaledContents(False)
        self.icon_label.setAlignment(QtCore.Qt.AlignCenter)
        self.icon_label.setIndent(0)
        self.icon_label.setObjectName("icon_label")
        self.horizontalLayout.addWidget(self.icon_label)
        self.details_label = QtGui.QLabel(OutputItem)
        self.details_label.setAlignment(QtCore.Qt.AlignLeading
                                        | QtCore.Qt.AlignLeft
                                        | QtCore.Qt.AlignVCenter)
        self.details_label.setMargin(0)
        self.details_label.setIndent(0)
        self.details_label.setObjectName("details_label")
        self.horizontalLayout.addWidget(self.details_label)
        self.horizontalLayout.setStretch(2, 1)

        self.retranslateUi(OutputItem)
        QtCore.QMetaObject.connectSlotsByName(OutputItem)
Example #3
0
    def setupUi(self, SummaryWidget):
        SummaryWidget.setObjectName("SummaryWidget")
        SummaryWidget.resize(300, 45)
        SummaryWidget.setMinimumSize(QtCore.QSize(0, 45))
        self.verticalLayout = QtGui.QVBoxLayout(SummaryWidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout.setObjectName("verticalLayout")
        self.frame = QtGui.QFrame(SummaryWidget)
        self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtGui.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.horizontalLayout = QtGui.QHBoxLayout(self.frame)
        self.horizontalLayout.setSpacing(4)
        self.horizontalLayout.setContentsMargins(2, 2, 2, 2)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.icon = QtGui.QLabel(self.frame)
        self.icon.setMinimumSize(QtCore.QSize(32, 32))
        self.icon.setMaximumSize(QtCore.QSize(30, 30))
        self.icon.setText("")
        self.icon.setPixmap(QtGui.QPixmap(":/tk_multi_publish2/icon_256.png"))
        self.icon.setScaledContents(True)
        self.icon.setObjectName("icon")
        self.horizontalLayout.addWidget(self.icon)
        self.header = QtGui.QLabel(self.frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.header.sizePolicy().hasHeightForWidth())
        self.header.setSizePolicy(sizePolicy)
        self.header.setObjectName("header")
        self.horizontalLayout.addWidget(self.header)
        self.verticalLayout.addWidget(self.frame)

        self.retranslateUi(SummaryWidget)
        QtCore.QMetaObject.connectSlotsByName(SummaryWidget)
Example #4
0
    def setupUi(self, TrayWidget):
        TrayWidget.setObjectName("TrayWidget")
        #TrayWidget.resize(114, 34)

        self.horizontalLayout_3 = QtGui.QHBoxLayout(TrayWidget)
        self.horizontalLayout_3.setSpacing(1)
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")

        self.box = QtGui.QFrame(TrayWidget)
        self.box.setObjectName("tray_box")

        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(1)
        sizePolicy.setVerticalStretch(0)

        # self.box.setSizePolicy(sizePolicy)

        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.box)
        self.horizontalLayout_2.setSpacing(1)
        self.horizontalLayout_2.setContentsMargins(2, 0, 2, 0)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")

        self.thumbnail = QtGui.QLabel(self.box)
        self.thumbnail.setText("")
        self.thumbnail.setScaledContents(True)
        self.thumbnail.setAlignment(QtCore.Qt.AlignCenter)
        self.thumbnail.setObjectName("thumbnail")

        self.horizontalLayout_2.addWidget(self.thumbnail)

        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")

        self.horizontalLayout_2.addLayout(self.horizontalLayout)
        self.horizontalLayout_3.addWidget(self.box)

        QtCore.QMetaObject.connectSlotsByName(TrayWidget)
Example #5
0
    def setupUi(self, MyTasksForm):
        MyTasksForm.setObjectName("MyTasksForm")
        MyTasksForm.resize(359, 541)
        self.verticalLayout = QtGui.QVBoxLayout(MyTasksForm)
        self.verticalLayout.setSpacing(4)
        self.verticalLayout.setContentsMargins(2, 6, 2, 2)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setContentsMargins(2, -1, 2, 1)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.filter_btn = QtGui.QToolButton(MyTasksForm)
        self.filter_btn.setStyleSheet("")
        self.filter_btn.setPopupMode(QtGui.QToolButton.MenuButtonPopup)
        self.filter_btn.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
        self.filter_btn.setAutoRaise(False)
        self.filter_btn.setObjectName("filter_btn")
        self.horizontalLayout.addWidget(self.filter_btn)
        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.new_task_btn = QtGui.QPushButton(MyTasksForm)
        self.new_task_btn.setObjectName("new_task_btn")
        self.horizontalLayout.addWidget(self.new_task_btn)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setContentsMargins(1, -1, 1, -1)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.search_ctrl = SearchWidget(MyTasksForm)
        self.search_ctrl.setMinimumSize(QtCore.QSize(0, 20))
        self.search_ctrl.setStyleSheet("#search_ctrl {\n"
                                       "background-color: rgb(255, 128, 0);\n"
                                       "}")
        self.search_ctrl.setObjectName("search_ctrl")
        self.horizontalLayout_2.addWidget(self.search_ctrl)
        self.verticalLayout.addLayout(self.horizontalLayout_2)

        self.retranslateUi(MyTasksForm)
        QtCore.QMetaObject.connectSlotsByName(MyTasksForm)
Example #6
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(809, 460)
        self.verticalLayout = QtGui.QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.show_folder = QtGui.QPushButton(Dialog)
        self.show_folder.setObjectName("show_folder")
        self.verticalLayout.addWidget(self.show_folder)
        self.create_folder = QtGui.QPushButton(Dialog)
        self.create_folder.setObjectName("create_folder")
        self.verticalLayout.addWidget(self.create_folder)
        self.launch_maya = QtGui.QPushButton(Dialog)
        self.launch_maya.setObjectName("launch_maya")
        self.verticalLayout.addWidget(self.launch_maya)
        self.launch_ps = QtGui.QPushButton(Dialog)
        self.launch_ps.setObjectName("launch_ps")
        self.verticalLayout.addWidget(self.launch_ps)
        spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
    def setupUi(self, PasswordForm):
        PasswordForm.setObjectName("PasswordForm")
        PasswordForm.resize(345, 162)
        self.verticalLayout = QtGui.QVBoxLayout(PasswordForm)
        self.verticalLayout.setSpacing(4)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.verticalLayout_2 = QtGui.QVBoxLayout()
        self.verticalLayout_2.setSpacing(10)
        self.verticalLayout_2.setContentsMargins(12, 12, 12, -1)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.details_label = QtGui.QLabel(PasswordForm)
        self.details_label.setMinimumSize(QtCore.QSize(0, 32))
        self.details_label.setWordWrap(True)
        self.details_label.setObjectName("details_label")
        self.verticalLayout_2.addWidget(self.details_label)
        self.password_edit = QtGui.QLineEdit(PasswordForm)
        self.password_edit.setMinimumSize(QtCore.QSize(0, 22))
        self.password_edit.setEchoMode(QtGui.QLineEdit.Password)
        self.password_edit.setObjectName("password_edit")
        self.verticalLayout_2.addWidget(self.password_edit)
        self.invalid_label = QtGui.QLabel(PasswordForm)
        self.invalid_label.setStyleSheet("#invalid_label {\n"
"color: rgb(232,0,0);\n"
"}")
        self.invalid_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
        self.invalid_label.setObjectName("invalid_label")
        self.verticalLayout_2.addWidget(self.invalid_label)
        spacerItem = QtGui.QSpacerItem(20, 0, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
        self.verticalLayout_2.addItem(spacerItem)
        self.verticalLayout_2.setStretch(3, 1)
        self.verticalLayout.addLayout(self.verticalLayout_2)
        self.break_line = QtGui.QFrame(PasswordForm)
        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_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setContentsMargins(12, 8, 12, 12)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.details_btn = QtGui.QPushButton(PasswordForm)
        self.details_btn.setObjectName("details_btn")
        self.horizontalLayout_3.addWidget(self.details_btn)
        spacerItem1 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem1)
        self.cancel_btn = QtGui.QPushButton(PasswordForm)
        self.cancel_btn.setMinimumSize(QtCore.QSize(90, 0))
        self.cancel_btn.setObjectName("cancel_btn")
        self.horizontalLayout_3.addWidget(self.cancel_btn)
        self.ok_btn = QtGui.QPushButton(PasswordForm)
        self.ok_btn.setMinimumSize(QtCore.QSize(90, 0))
        self.ok_btn.setDefault(True)
        self.ok_btn.setObjectName("ok_btn")
        self.horizontalLayout_3.addWidget(self.ok_btn)
        self.verticalLayout.addLayout(self.horizontalLayout_3)

        self.retranslateUi(PasswordForm)
        QtCore.QMetaObject.connectSlotsByName(PasswordForm)
Example #8
0
    def setupUi(self, TaskWidget):
        TaskWidget.setObjectName("TaskWidget")
        TaskWidget.resize(338, 36)
        self.verticalLayout = QtGui.QVBoxLayout(TaskWidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout.setObjectName("verticalLayout")
        self.frame = QtGui.QFrame(TaskWidget)
        self.frame.setMinimumSize(QtCore.QSize(0, 32))
        self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtGui.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.horizontalLayout = QtGui.QHBoxLayout(self.frame)
        self.horizontalLayout.setSpacing(8)
        self.horizontalLayout.setContentsMargins(2, 2, 2, 2)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.icon = QtGui.QLabel(self.frame)
        self.icon.setMinimumSize(QtCore.QSize(18, 18))
        self.icon.setMaximumSize(QtCore.QSize(18, 18))
        self.icon.setPixmap(QtGui.QPixmap(":/tk_multi_publish2/shotgun.png"))
        self.icon.setScaledContents(True)
        self.icon.setAlignment(QtCore.Qt.AlignCenter)
        self.icon.setObjectName("icon")
        self.horizontalLayout.addWidget(self.icon)
        self.header = QtGui.QLabel(self.frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.header.sizePolicy().hasHeightForWidth())
        self.header.setSizePolicy(sizePolicy)
        self.header.setObjectName("header")
        self.horizontalLayout.addWidget(self.header)
        self.status = QtGui.QToolButton(self.frame)
        self.status.setMinimumSize(QtCore.QSize(30, 22))
        self.status.setMaximumSize(QtCore.QSize(30, 22))
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/status_publish.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.status.setIcon(icon)
        self.status.setIconSize(QtCore.QSize(16, 16))
        self.status.setObjectName("status")
        self.horizontalLayout.addWidget(self.status)
        self.checkbox = QtGui.QCheckBox(self.frame)
        self.checkbox.setObjectName("checkbox")
        self.horizontalLayout.addWidget(self.checkbox)
        self.verticalLayout.addWidget(self.frame)

        self.retranslateUi(TaskWidget)
        QtCore.QMetaObject.connectSlotsByName(TaskWidget)
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(412, 648)
        self.verticalLayout_23 = QtGui.QVBoxLayout(Dialog)
        self.verticalLayout_23.setSpacing(0)
        self.verticalLayout_23.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_23.setObjectName("verticalLayout_23")
        self.main_stack = QtGui.QStackedWidget(Dialog)
        self.main_stack.setObjectName("main_stack")
        self.main_page = QtGui.QWidget()
        self.main_page.setObjectName("main_page")
        self.verticalLayout_17 = QtGui.QVBoxLayout(self.main_page)
        self.verticalLayout_17.setSpacing(4)
        self.verticalLayout_17.setContentsMargins(4, 4, 4, 4)
        self.verticalLayout_17.setObjectName("verticalLayout_17")
        self.top_group = QtGui.QFrame(self.main_page)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.top_group.sizePolicy().hasHeightForWidth())
        self.top_group.setSizePolicy(sizePolicy)
        self.top_group.setFrameShape(QtGui.QFrame.StyledPanel)
        self.top_group.setFrameShadow(QtGui.QFrame.Raised)
        self.top_group.setObjectName("top_group")
        self.verticalLayout_18 = QtGui.QVBoxLayout(self.top_group)
        self.verticalLayout_18.setSpacing(4)
        self.verticalLayout_18.setContentsMargins(6, 6, 6, 6)
        self.verticalLayout_18.setObjectName("verticalLayout_18")
        self.header_stack = QtGui.QStackedWidget(self.top_group)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.header_stack.sizePolicy().hasHeightForWidth())
        self.header_stack.setSizePolicy(sizePolicy)
        self.header_stack.setMinimumSize(QtCore.QSize(0, 42))
        self.header_stack.setMaximumSize(QtCore.QSize(16777215, 42))
        self.header_stack.setObjectName("header_stack")
        self.page = QtGui.QWidget()
        self.page.setObjectName("page")
        self.verticalLayout_24 = QtGui.QVBoxLayout(self.page)
        self.verticalLayout_24.setSpacing(2)
        self.verticalLayout_24.setContentsMargins(2, 0, 2, 0)
        self.verticalLayout_24.setObjectName("verticalLayout_24")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setContentsMargins(-1, -1, 4, -1)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.navigation_home = QtGui.QToolButton(self.page)
        self.navigation_home.setMinimumSize(QtCore.QSize(30, 30))
        self.navigation_home.setMaximumSize(QtCore.QSize(30, 30))
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/tk_multi_infopanel/home.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.navigation_home.setIcon(icon)
        self.navigation_home.setIconSize(QtCore.QSize(30, 30))
        self.navigation_home.setObjectName("navigation_home")
        self.horizontalLayout.addWidget(self.navigation_home)
        self.navigation_prev = QtGui.QToolButton(self.page)
        self.navigation_prev.setMinimumSize(QtCore.QSize(30, 30))
        self.navigation_prev.setMaximumSize(QtCore.QSize(30, 30))
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/tk_multi_infopanel/left_arrow.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.navigation_prev.setIcon(icon1)
        self.navigation_prev.setIconSize(QtCore.QSize(30, 30))
        self.navigation_prev.setObjectName("navigation_prev")
        self.horizontalLayout.addWidget(self.navigation_prev)
        self.navigation_next = QtGui.QToolButton(self.page)
        self.navigation_next.setMinimumSize(QtCore.QSize(30, 30))
        self.navigation_next.setMaximumSize(QtCore.QSize(30, 30))
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/tk_multi_infopanel/right_arrow.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.navigation_next.setIcon(icon2)
        self.navigation_next.setIconSize(QtCore.QSize(30, 30))
        self.navigation_next.setObjectName("navigation_next")
        self.horizontalLayout.addWidget(self.navigation_next)
        self.details_text_header = QtGui.QLabel(self.page)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.details_text_header.sizePolicy().hasHeightForWidth())
        self.details_text_header.setSizePolicy(sizePolicy)
        self.details_text_header.setMinimumSize(QtCore.QSize(0, 30))
        self.details_text_header.setMaximumSize(QtCore.QSize(16777215, 30))
        self.details_text_header.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
        self.details_text_header.setWordWrap(False)
        self.details_text_header.setObjectName("details_text_header")
        self.horizontalLayout.addWidget(self.details_text_header)
        self.set_context = WorkAreaButton(self.page)
        self.set_context.setMinimumSize(QtCore.QSize(30, 30))
        self.set_context.setMaximumSize(QtCore.QSize(30, 30))
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/tk_multi_infopanel/pin.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        icon3.addPixmap(QtGui.QPixmap(":/tk_multi_infopanel/pin_white.png"), QtGui.QIcon.Disabled, QtGui.QIcon.Off)
        self.set_context.setIcon(icon3)
        self.set_context.setIconSize(QtCore.QSize(30, 30))
        self.set_context.setObjectName("set_context")
        self.horizontalLayout.addWidget(self.set_context)
        self.search = QtGui.QToolButton(self.page)
        self.search.setMinimumSize(QtCore.QSize(30, 30))
        self.search.setMaximumSize(QtCore.QSize(30, 30))
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/tk_multi_infopanel/search.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.search.setIcon(icon4)
        self.search.setIconSize(QtCore.QSize(30, 30))
        self.search.setObjectName("search")
        self.horizontalLayout.addWidget(self.search)
        self.label_3 = QtGui.QLabel(self.page)
        self.label_3.setMinimumSize(QtCore.QSize(10, 0))
        self.label_3.setMaximumSize(QtCore.QSize(10, 16777215))
        self.label_3.setText("")
        self.label_3.setObjectName("label_3")
        self.horizontalLayout.addWidget(self.label_3)
        self.current_user = QtGui.QToolButton(self.page)
        self.current_user.setMinimumSize(QtCore.QSize(30, 30))
        self.current_user.setMaximumSize(QtCore.QSize(30, 30))
        self.current_user.setFocusPolicy(QtCore.Qt.NoFocus)
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/tk_multi_infopanel/default_user_thumb.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.current_user.setIcon(icon5)
        self.current_user.setIconSize(QtCore.QSize(30, 30))
        self.current_user.setObjectName("current_user")
        self.horizontalLayout.addWidget(self.current_user)
        self.verticalLayout_24.addLayout(self.horizontalLayout)
        self.header_stack.addWidget(self.page)
        self.page_2 = QtGui.QWidget()
        self.page_2.setObjectName("page_2")
        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.page_2)
        self.horizontalLayout_2.setSpacing(2)
        self.horizontalLayout_2.setContentsMargins(2, 0, 2, 0)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.label = QtGui.QLabel(self.page_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy)
        self.label.setMinimumSize(QtCore.QSize(30, 30))
        self.label.setMaximumSize(QtCore.QSize(30, 30))
        self.label.setText("")
        self.label.setPixmap(QtGui.QPixmap(":/tk_multi_infopanel/search.png"))
        self.label.setScaledContents(True)
        self.label.setObjectName("label")
        self.horizontalLayout_2.addWidget(self.label)
        self.search_input = GlobalSearchWidget(self.page_2)
        self.search_input.setObjectName("search_input")
        self.horizontalLayout_2.addWidget(self.search_input)
        self.cancel_search = QtGui.QPushButton(self.page_2)
        self.cancel_search.setObjectName("cancel_search")
        self.horizontalLayout_2.addWidget(self.cancel_search)
        self.header_stack.addWidget(self.page_2)
        self.verticalLayout_18.addWidget(self.header_stack)
        self.line = QtGui.QFrame(self.top_group)
        self.line.setFrameShape(QtGui.QFrame.HLine)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setObjectName("line")
        self.verticalLayout_18.addWidget(self.line)
        self.horizontalLayout_4 = QtGui.QHBoxLayout()
        self.horizontalLayout_4.setSpacing(0)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.verticalLayout_7 = QtGui.QVBoxLayout()
        self.verticalLayout_7.setSpacing(0)
        self.verticalLayout_7.setContentsMargins(-1, 4, -1, -1)
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.details_thumb = ShotgunPlaybackLabel(self.top_group)
        self.details_thumb.setMinimumSize(QtCore.QSize(96, 75))
        self.details_thumb.setMaximumSize(QtCore.QSize(96, 75))
        self.details_thumb.setText("")
        self.details_thumb.setPixmap(QtGui.QPixmap(":/tk_multi_infopanel/rect_512x400.png"))
        self.details_thumb.setScaledContents(True)
        self.details_thumb.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
        self.details_thumb.setObjectName("details_thumb")
        self.verticalLayout_7.addWidget(self.details_thumb)
        spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Ignored)
        self.verticalLayout_7.addItem(spacerItem)
        self.verticalLayout_7.setStretch(1, 1)
        self.horizontalLayout_4.addLayout(self.verticalLayout_7)
        self.details_text_middle = QtGui.QLabel(self.top_group)
        self.details_text_middle.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
        self.details_text_middle.setWordWrap(True)
        self.details_text_middle.setObjectName("details_text_middle")
        self.horizontalLayout_4.addWidget(self.details_text_middle)
        self.verticalLayout_22 = QtGui.QVBoxLayout()
        self.verticalLayout_22.setSpacing(0)
        self.verticalLayout_22.setContentsMargins(-1, -1, 6, -1)
        self.verticalLayout_22.setObjectName("verticalLayout_22")
        self.action_button = QtGui.QPushButton(self.top_group)
        self.action_button.setMaximumSize(QtCore.QSize(16, 16))
        self.action_button.setFocusPolicy(QtCore.Qt.NoFocus)
        self.action_button.setObjectName("action_button")
        self.verticalLayout_22.addWidget(self.action_button)
        self.label_2 = QtGui.QLabel(self.top_group)
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")
        self.verticalLayout_22.addWidget(self.label_2)
        self.verticalLayout_22.setStretch(1, 1)
        self.horizontalLayout_4.addLayout(self.verticalLayout_22)
        self.horizontalLayout_4.setStretch(1, 1)
        self.verticalLayout_18.addLayout(self.horizontalLayout_4)
        self.verticalLayout_17.addWidget(self.top_group)
        self.page_stack = QtGui.QStackedWidget(self.main_page)
        self.page_stack.setObjectName("page_stack")
        self.entity_page = QtGui.QWidget()
        self.entity_page.setObjectName("entity_page")
        self.verticalLayout = QtGui.QVBoxLayout(self.entity_page)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.entity_tab_widget = QtGui.QTabWidget(self.entity_page)
        self.entity_tab_widget.setFocusPolicy(QtCore.Qt.NoFocus)
        self.entity_tab_widget.setObjectName("entity_tab_widget")
        self.verticalLayout.addWidget(self.entity_tab_widget)
        self.page_stack.addWidget(self.entity_page)
        self.note_page = QtGui.QWidget()
        self.note_page.setObjectName("note_page")
        self.verticalLayout_5 = QtGui.QVBoxLayout(self.note_page)
        self.verticalLayout_5.setSpacing(0)
        self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.note_reply_widget = ReplyListWidget(self.note_page)
        self.note_reply_widget.setObjectName("note_reply_widget")
        self.verticalLayout_5.addWidget(self.note_reply_widget)
        self.page_stack.addWidget(self.note_page)
        self.verticalLayout_17.addWidget(self.page_stack)
        self.main_stack.addWidget(self.main_page)
        self.verticalLayout_23.addWidget(self.main_stack)

        self.retranslateUi(Dialog)
        self.main_stack.setCurrentIndex(0)
        self.header_stack.setCurrentIndex(0)
        self.page_stack.setCurrentIndex(0)
        self.entity_tab_widget.setCurrentIndex(-1)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
Example #10
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(784, 483)
        Dialog.setStyleSheet(
            "#Dialog {\n"
            "background-image: url(:/tk_framework_qtwidgets.help_screen/bg.png); \n"
            "}\n"
            "\n"
            "")
        self.horizontalLayout_2 = QtGui.QHBoxLayout(Dialog)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.verticalLayout_3 = QtGui.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.label = QtGui.QLabel(Dialog)
        self.label.setMinimumSize(QtCore.QSize(34, 0))
        self.label.setMaximumSize(QtCore.QSize(34, 16777215))
        self.label.setText("")
        self.label.setObjectName("label")
        self.verticalLayout_3.addWidget(self.label)
        self.left_arrow = QtGui.QToolButton(Dialog)
        self.left_arrow.setMinimumSize(QtCore.QSize(34, 34))
        self.left_arrow.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.left_arrow.setStyleSheet(
            "QToolButton{\n"
            "background-image: url(:/tk_framework_qtwidgets.help_screen/left_arrow.png);\n"
            "border: none;\n"
            "background-color: none;\n"
            "}\n"
            "\n"
            "\n"
            "QToolButton:hover{\n"
            "background-image: url(:/tk_framework_qtwidgets.help_screen/left_arrow_hover.png);\n"
            "}\n"
            "\n"
            "QToolButton:Pressed {\n"
            "background-image: url(:/tk_framework_qtwidgets.help_screen/left_arrow_pressed.png);\n"
            "}\n"
            "")
        self.left_arrow.setText("")
        self.left_arrow.setAutoRaise(True)
        self.left_arrow.setObjectName("left_arrow")
        self.verticalLayout_3.addWidget(self.left_arrow)
        self.label_2 = QtGui.QLabel(Dialog)
        self.label_2.setMinimumSize(QtCore.QSize(34, 0))
        self.label_2.setMaximumSize(QtCore.QSize(34, 16777215))
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")
        self.verticalLayout_3.addWidget(self.label_2)
        self.horizontalLayout_2.addLayout(self.verticalLayout_3)
        self.verticalLayout_2 = QtGui.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.groupBox = QtGui.QGroupBox(Dialog)
        self.groupBox.setStyleSheet("#groupBox {\n"
                                    "background-color: rgba(0,0,0,50);\n"
                                    "\n"
                                    "}")
        self.groupBox.setTitle("")
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout = QtGui.QVBoxLayout(self.groupBox)
        self.verticalLayout.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout.setObjectName("verticalLayout")
        self.stackedWidget = QtGui.QStackedWidget(self.groupBox)
        self.stackedWidget.setObjectName("stackedWidget")
        self.verticalLayout.addWidget(self.stackedWidget)
        self.verticalLayout_2.addWidget(self.groupBox)
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtGui.QSpacerItem(248, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.view_documentation = QtGui.QToolButton(Dialog)
        self.view_documentation.setObjectName("view_documentation")
        self.horizontalLayout.addWidget(self.view_documentation)
        self.close = QtGui.QToolButton(Dialog)
        self.close.setObjectName("close")
        self.horizontalLayout.addWidget(self.close)
        self.verticalLayout_2.addLayout(self.horizontalLayout)
        self.horizontalLayout_2.addLayout(self.verticalLayout_2)
        self.verticalLayout_4 = QtGui.QVBoxLayout()
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.label_3 = QtGui.QLabel(Dialog)
        self.label_3.setMinimumSize(QtCore.QSize(34, 0))
        self.label_3.setMaximumSize(QtCore.QSize(34, 16777215))
        self.label_3.setText("")
        self.label_3.setObjectName("label_3")
        self.verticalLayout_4.addWidget(self.label_3)
        self.right_arrow = QtGui.QToolButton(Dialog)
        self.right_arrow.setMinimumSize(QtCore.QSize(34, 34))
        self.right_arrow.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.right_arrow.setStyleSheet(
            "QToolButton{\n"
            "background-image: url(:/tk_framework_qtwidgets.help_screen/right_arrow.png);\n"
            "border: none;\n"
            "background-color: none;\n"
            "}\n"
            "\n"
            "\n"
            "QToolButton:hover{\n"
            "background-image: url(:/tk_framework_qtwidgets.help_screen/right_arrow_hover.png);\n"
            "}\n"
            "\n"
            "QToolButton:Pressed {\n"
            "background-image: url(:/tk_framework_qtwidgets.help_screen/right_arrow_pressed.png);\n"
            "}\n"
            "")
        self.right_arrow.setText("")
        self.right_arrow.setAutoRaise(True)
        self.right_arrow.setObjectName("right_arrow")
        self.verticalLayout_4.addWidget(self.right_arrow)
        self.label_4 = QtGui.QLabel(Dialog)
        self.label_4.setMinimumSize(QtCore.QSize(34, 0))
        self.label_4.setMaximumSize(QtCore.QSize(34, 16777215))
        self.label_4.setText("")
        self.label_4.setObjectName("label_4")
        self.verticalLayout_4.addWidget(self.label_4)
        self.horizontalLayout_2.addLayout(self.verticalLayout_4)

        self.retranslateUi(Dialog)
        self.stackedWidget.setCurrentIndex(-1)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
Example #11
0
    def setupUi(self, SummaryDialog):
        SummaryDialog.setObjectName("SummaryDialog")
        SummaryDialog.resize(501, 175)
        self.verticalLayout = QtGui.QVBoxLayout(SummaryDialog)
        self.verticalLayout.setContentsMargins(20, -1, 20, -1)
        self.verticalLayout.setObjectName("verticalLayout")
        self.stackedWidget = QtGui.QStackedWidget(SummaryDialog)
        self.stackedWidget.setObjectName("stackedWidget")
        self.page = QtGui.QWidget()
        self.page.setObjectName("page")
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.page)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.label = QtGui.QLabel(self.page)
        self.label.setText("")
        self.label.setPixmap(
            QtGui.QPixmap(":/tk-flame-review/submission_complete.png"))
        self.label.setObjectName("label")
        self.verticalLayout_2.addWidget(self.label)
        self.stackedWidget.addWidget(self.page)
        self.page_2 = QtGui.QWidget()
        self.page_2.setObjectName("page_2")
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.page_2)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.label_2 = QtGui.QLabel(self.page_2)
        self.label_2.setText("")
        self.label_2.setPixmap(
            QtGui.QPixmap(":/tk-flame-review/submission_failed.png"))
        self.label_2.setObjectName("label_2")
        self.verticalLayout_3.addWidget(self.label_2)
        self.stackedWidget.addWidget(self.page_2)
        self.verticalLayout.addWidget(self.stackedWidget)
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtGui.QSpacerItem(368, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.submit = QtGui.QPushButton(SummaryDialog)
        self.submit.setObjectName("submit")
        self.horizontalLayout.addWidget(self.submit)
        self.verticalLayout.addLayout(self.horizontalLayout)

        self.retranslateUi(SummaryDialog)
        self.stackedWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(SummaryDialog)
Example #12
0
    def __init__(self, parent, bundle, pixmaps):
        """
        Constructor.
        
        :param parent: Parent window. The help screen will be centered on top of this window.
        :param bundle: Bundle object to associate with (app, engine, framework)
        :param pixmaps: List of QPixmap objects, all 650x400 px        
        """

        # it seems some versions of linux are having issues with the splash screen mode,
        # so disable this
        if "linux" in sys.platform:
            QtGui.QDialog.__init__(self, parent,
                                   QtCore.Qt.WindowStaysOnTopHint)
        else:
            QtGui.QDialog.__init__(
                self, parent,
                QtCore.Qt.SplashScreen | QtCore.Qt.WindowStaysOnTopHint)

        self._bundle = bundle

        self.__page_anim_grp = None

        # set up the UI
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        if self._bundle.documentation_url is None:
            self.ui.view_documentation.setEnabled(False)

        self.ui.view_documentation.clicked.connect(self._on_doc)
        self.ui.close.clicked.connect(self.close)

        self.ui.left_arrow.clicked.connect(self._on_left_arrow_click)
        self.ui.right_arrow.clicked.connect(self._on_right_arrow_click)

        # we start at index zero so disable the left arrow
        self.ui.left_arrow.setVisible(False)
        if len(pixmaps) == 1:
            # only one image. So disable the right arrow aswell
            self.ui.right_arrow.setVisible(False)

        # make GC happy
        self._widgets = []
        self._pages = []

        for p in pixmaps:

            if p.width() != 650 or p.height() != 400:
                raise tank.TankError(
                    "Image not found or image resolution not 650x400px!")

            page = QtGui.QWidget()
            self._pages.append(page)
            layout = QtGui.QVBoxLayout(page)
            layout.setContentsMargins(2, 2, 2, 2)
            label = QtGui.QLabel(page)
            label.setMinimumSize(QtCore.QSize(650, 400))
            label.setMaximumSize(QtCore.QSize(650, 400))
            label.setPixmap(p)
            label.setAlignment(QtCore.Qt.AlignCenter)
            layout.addWidget(label)
            self.ui.stackedWidget.addWidget(page)
            self._widgets.extend([p, page, layout, label])

        # set first page
        self.ui.stackedWidget.setCurrentIndex(0)
        self._num_images = len(pixmaps)
Example #13
0
    def __init__(self, app):
        QtGui.QWidget.__init__(self)
        self.app = app
        debug(app = self.app, method = 'MainUI', message = 'MainUI initialized...', verbose = False)
        #self.tk = sgtk.sgtk_from_path("T:/software/bubblebathbay")
        self.mainLayout = QtGui.QVBoxLayout(self)
        debug(app = self.app, method = 'MainUI', message = 'mainLayout built...', verbose = False)
        ## Time of Day
        self.todGroupBox = QtGui.QGroupBox(self)
        self.todGroupBox.setTitle('Time of Day:')
        debug(app = self.app, method = 'MainUI', message = 'self.todGroupBox built...', verbose = False)

        self.todLayout = QtGui.QHBoxLayout(self.todGroupBox)
        debug(app = self.app, method = 'MainUI', message = 'self.todLayout built...', verbose = False)
        
        ## Now do the checkBoxes
        self.afternoonLayout = QtGui.QVBoxLayout(self)
        self.afternoonCBox = QtGui.QRadioButton('Afternoon')
        self.afternoonCBox.setChecked(True)
        self.afternoonCBox.setAutoExclusive(True)
        self.afternoonButton = QtGui.QPushButton('Set Now')
        self.afternoonButton.released.connect(partial(self.setTOD, self.afternoonCBox, 'afternoon'))
        self.afternoonLayout.addWidget(self.afternoonCBox)
        self.afternoonLayout.addWidget(self.afternoonButton)

        self.dawnLayout = QtGui.QVBoxLayout(self)
        self.dawnCBox = QtGui.QRadioButton('Dawn')
        self.dawnCBox.setAutoExclusive(True)
        self.dawnButton = QtGui.QPushButton('Set Now')
        self.dawnButton.released.connect(partial(self.setTOD, self.dawnCBox, 'dawn'))
        self.dawnLayout.addWidget(self.dawnCBox)
        self.dawnLayout.addWidget(self.dawnButton)

        self.duskLayout = QtGui.QVBoxLayout(self)
        self.duskCBox = QtGui.QRadioButton('Dusk')
        self.duskCBox.setAutoExclusive(True)
        self.duskButton = QtGui.QPushButton('Set Now')
        self.duskButton.released.connect(partial(self.setTOD, self.duskCBox, 'dusk'))
        self.duskLayout.addWidget(self.duskCBox)
        self.duskLayout.addWidget(self.duskButton)

        self.middayLayout = QtGui.QVBoxLayout(self)
        self.middayCBox = QtGui.QRadioButton('Midday')
        self.middayCBox.setAutoExclusive(True)
        self.middayButton = QtGui.QPushButton('Set Now')
        self.middayButton.released.connect(partial(self.setTOD, self.middayCBox, 'midday'))
        self.middayLayout.addWidget(self.middayCBox)
        self.middayLayout.addWidget(self.middayButton)

        self.morningLayout = QtGui.QVBoxLayout(self)
        self.morningCBox = QtGui.QRadioButton('Morning')
        self.morningCBox.setAutoExclusive(True)
        self.morningButton = QtGui.QPushButton('Set Now')
        self.morningButton.released.connect(partial(self.setTOD, self.morningCBox, 'morning'))
        self.morningLayout.addWidget(self.morningCBox)
        self.morningLayout.addWidget(self.morningButton)

        self.nightLayout = QtGui.QVBoxLayout(self)
        self.nightCBox = QtGui.QRadioButton('Night')
        self.nightCBox.setAutoExclusive(True)
        self.nightButton = QtGui.QPushButton('Set Now')
        self.nightButton.released.connect(partial(self.setTOD, self.nightCBox, 'night'))
        self.nightLayout.addWidget(self.nightCBox)
        self.nightLayout.addWidget(self.nightButton)

        self.sunriseLayout = QtGui.QVBoxLayout(self)
        self.sunriseCBox = QtGui.QRadioButton('Sunrise')
        self.sunriseCBox.setAutoExclusive(True) 
        self.sunriseButton = QtGui.QPushButton('Set Now')
        self.sunriseButton.released.connect(partial(self.setTOD, self.sunriseCBox, 'sunrise'))
        self.sunriseLayout.addWidget(self.sunriseCBox)
        self.sunriseLayout.addWidget(self.sunriseButton)

        self.sunsetLayout = QtGui.QVBoxLayout(self)
        self.sunsetCBox = QtGui.QRadioButton('SunSet')
        self.sunsetCBox.setAutoExclusive(True)
        self.sunsetButton = QtGui.QPushButton('Set Now')
        self.sunsetButton.released.connect(partial(self.setTOD, self.sunsetCBox, 'sunset'))
        self.sunsetLayout.addWidget(self.sunsetCBox)
        self.sunsetLayout.addWidget(self.sunsetButton)
         
        self.todLayout.addLayout(self.dawnLayout)
        self.splitter01 = BB_Widget_vr()
        self.todLayout.addWidget(self.splitter01)
        self.todLayout.addLayout(self.sunriseLayout)
        self.splitter02 = BB_Widget_vr()
        self.todLayout.addWidget(self.splitter02)
        self.todLayout.addLayout(self.morningLayout)
        self.splitter03 = BB_Widget_vr()
        self.todLayout.addWidget(self.splitter03)
        self.todLayout.addLayout(self.middayLayout)
        self.splitter04 = BB_Widget_vr()
        self.todLayout.addWidget(self.splitter04)
        self.todLayout.addLayout(self.afternoonLayout)
        self.splitter05 = BB_Widget_vr()
        self.todLayout.addWidget(self.splitter05)
        self.todLayout.addLayout(self.sunsetLayout)
        self.splitter06 = BB_Widget_vr()
        self.todLayout.addWidget(self.splitter06)
        self.todLayout.addLayout(self.duskLayout)
        self.splitter07 = BB_Widget_vr()
        self.todLayout.addWidget(self.splitter07)
        self.todLayout.addLayout(self.nightLayout)

        self.fixBBBLightDirectionButton = QtGui.QPushButton('FIX LIGHT WORLD ROTATION! (USE WITH CAUTION)')
        self.fixBBBLightDirectionButton.released.connect(self.fixLightWorldRotation)
        
        self.buildTODButton = QtGui.QPushButton('SETUP NOW...')
        self.buildTODButton.released.connect(self.doTODLoad)
        
        self.redoSmoothAttrAttachButton = QtGui.QPushButton('Rebuild subDiv connections...')
        self.redoSmoothAttrAttachButton.released.connect(partial(settings.attachMentalRaySubDiv))

        self.deleteSetupButton = QtGui.QPushButton('Delete Setup!')
        self.deleteSetupButton.setStyleSheet("QPushButton {background: dark red}")
        self.deleteSetupButton.released.connect(self.deleteSetup)

        debug(app = self.app, method = 'MainUI', message = 'Widgets built...', verbose = False)
        
        self.mainLayout.addWidget(self.todGroupBox)
        self.mainLayout.addWidget(self.fixBBBLightDirectionButton)
        self.mainLayout.addWidget(self.buildTODButton)
        self.mainLayout.addWidget(self.redoSmoothAttrAttachButton)
        self.mainLayout.addWidget(self.deleteSetupButton)
        self.mainLayout.addStretch(1)
        
        ## Set the renderglobals on app load
        settings._setRenderGlobals()
        
        ## Check for the base nodes if they exist turn the buttons on...
        self.setButtonStates()
Example #14
0
 def _set_thumbnail(self, value):
     self._ui.thumbnail.setPixmap(value if value else QtGui.QPixmap())
     self._update_ui()
     self.thumbnail_changed.emit()
Example #15
0
    def __init__(self, app):
        """
        main UI for DuplicateShotAssets
        """
        QtGui.QWidget.__init__(self)
        self.app = app
        self.charMaxChars = 0
        self.propMaxChars = 0
        ## To get the step
        context = self.app.context
        debug(self.app,
              method='MainUI',
              message='Context Step: %s' % context.step['name'],
              verbose=False)

        self.chars = []
        self.props = []

        ## Now build the UI
        self.mainLayout = QtGui.QHBoxLayout(self)
        debug(self.app,
              method='MainUI',
              message='self.mainLayout built...',
              verbose=False)

        ###############
        ## CHARS LAYOUT
        self.charParent = QtGui.QGroupBox(self)
        self.charParent.setTitle('CHARS:')
        #self.charParent.setMinimumWidth(600)
        self.charParentLayout = QtGui.QVBoxLayout(self.charParent)

        self.charScrollLayout = QtGui.QScrollArea(self)
        debug(self.app,
              method='MainUI',
              message='self.charScrollLayout built...',
              verbose=False)

        self.charGroupBox = QtGui.QGroupBox(self.charScrollLayout)
        self.charGroupBox.setFlat(True)

        self.charScrollLayout.setWidget(self.charGroupBox)
        self.charScrollLayout.setWidgetResizable(True)
        debug(self.app,
              method='MainUI',
              message='self.charGroupBox built...',
              verbose=False)

        self.charLayout = QtGui.QVBoxLayout(self.charGroupBox)
        debug(self.app,
              method='MainUI',
              message='self.charLayout built...',
              verbose=False)

        ###############
        ## PROPS LAYOUT
        self.propParent = QtGui.QGroupBox(self)
        self.propParent.setTitle('PROPS:')
        #self.propParent.setMinimumWidth(600)
        self.propParentLayout = QtGui.QVBoxLayout(self.propParent)

        self.propScrollLayout = QtGui.QScrollArea(self)
        debug(self.app,
              method='MainUI',
              message='self.propScrollLayout built...',
              verbose=False)

        self.propsGroupBox = QtGui.QGroupBox(self.propScrollLayout)
        self.propsGroupBox.setFlat(True)

        self.propScrollLayout.setWidget(self.propsGroupBox)
        self.propScrollLayout.setWidgetResizable(True)
        debug(self.app,
              method='MainUI',
              message='self.propsGroupBox built...',
              verbose=False)

        self.propsLayout = QtGui.QVBoxLayout(self.propsGroupBox)
        debug(self.app,
              method='MainUI',
              message='self.propsLayout built...',
              verbose=False)

        ####################
        ## The Button layout
        self.buttonLayout = QtGui.QVBoxLayout(self)
        ## The buttons
        ## The duplicate button
        self.duplicateButton = QtGui.QPushButton(Icon('plus.png'),
                                                 'Duplicate Assets', self)
        self.duplicateButton.clicked.connect(self._duplicateAssets)

        ## Add buttons to layout
        self.buttonLayout.addWidget(self.duplicateButton)
        self.buttonLayout.addStretch(1)

        self.charParentLayout.addWidget(self.charScrollLayout)
        self.propParentLayout.addWidget(self.propScrollLayout)
        ## Now do the final layout bits
        self.mainLayout.addWidget(self.charParent)
        self.mainLayout.addWidget(self.propParent)
        self.mainLayout.addLayout(self.buttonLayout)

        debug(self.app,
              method='MainUI',
              message='self.mainLayout addWidgets success...',
              verbose=False)

        self._popChars()
        debug(self.app,
              method='MainUI',
              message='self._popChars()...',
              verbose=False)
        self._popProps()
        debug(self.app,
              method='MainUI',
              message='self._popProps()...',
              verbose=False)

        if not self.props:
            self.propScrollLayout.hide()
        if not self.chars:
            self.charScrollLayout.hide()

        self.charGroupBox.resize(self.charGroupBox.sizeHint())
        self.propsGroupBox.resize(self.propsGroupBox.sizeHint())

        debug(self.app,
              method='MainUI',
              message='self.charMaxChars: %s' % self.charMaxChars,
              verbose=False)
        self.charParent.setMinimumWidth(self.charMaxChars + 500)
        self.propParent.setMinimumWidth(self.propMaxChars + 500)
        self.resize(self.sizeHint())
    def setupUi(self, NoteInputWidget):
        NoteInputWidget.setObjectName("NoteInputWidget")
        NoteInputWidget.resize(363, 203)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            NoteInputWidget.sizePolicy().hasHeightForWidth())
        NoteInputWidget.setSizePolicy(sizePolicy)
        self.verticalLayout_5 = QtGui.QVBoxLayout(NoteInputWidget)
        self.verticalLayout_5.setSpacing(0)
        self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.stacked_widget = QtGui.QStackedWidget(NoteInputWidget)
        self.stacked_widget.setObjectName("stacked_widget")
        self.note_editor_page = QtGui.QWidget()
        self.note_editor_page.setObjectName("note_editor_page")
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.note_editor_page)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.text_entry = NoteEditor(self.note_editor_page)
        self.text_entry.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.text_entry.setObjectName("text_entry")
        self.horizontalLayout.addWidget(self.text_entry)
        self.thumbnail = QtGui.QLabel(self.note_editor_page)
        self.thumbnail.setEnabled(True)
        self.thumbnail.setMinimumSize(QtCore.QSize(96, 75))
        self.thumbnail.setMaximumSize(QtCore.QSize(96, 75))
        self.thumbnail.setText("")
        self.thumbnail.setPixmap(
            QtGui.QPixmap(":/tk_framework_qtwidgets/rect_512x400.png"))
        self.thumbnail.setScaledContents(True)
        self.thumbnail.setAlignment(QtCore.Qt.AlignBottom
                                    | QtCore.Qt.AlignHCenter)
        self.thumbnail.setObjectName("thumbnail")
        self.horizontalLayout.addWidget(self.thumbnail)
        self.button_layout_right = QtGui.QVBoxLayout()
        self.button_layout_right.setSpacing(3)
        self.button_layout_right.setContentsMargins(5, -1, -1, -1)
        self.button_layout_right.setObjectName("button_layout_right")
        self.close = QtGui.QToolButton(self.note_editor_page)
        icon = QtGui.QIcon()
        icon.addPixmap(
            QtGui.QPixmap(
                ":/tk_framework_qtwidgets.note_input_widget/close.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.close.setIcon(icon)
        self.close.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        self.close.setAutoRaise(True)
        self.close.setObjectName("close")
        self.button_layout_right.addWidget(self.close)
        spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.button_layout_right.addItem(spacerItem)
        self.attach = QtGui.QToolButton(self.note_editor_page)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(
            QtGui.QPixmap(
                ":/tk_framework_qtwidgets.note_input_widget/paper_clip.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.attach.setIcon(icon1)
        self.attach.setAutoRaise(True)
        self.attach.setObjectName("attach")
        self.button_layout_right.addWidget(self.attach)
        self.screenshot = QtGui.QToolButton(self.note_editor_page)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(
            QtGui.QPixmap(
                ":/tk_framework_qtwidgets.note_input_widget/camera_hl.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.screenshot.setIcon(icon2)
        self.screenshot.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        self.screenshot.setAutoRaise(True)
        self.screenshot.setObjectName("screenshot")
        self.button_layout_right.addWidget(self.screenshot)
        self.submit = QtGui.QToolButton(self.note_editor_page)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.submit.sizePolicy().hasHeightForWidth())
        self.submit.setSizePolicy(sizePolicy)
        self.submit.setText("")
        icon3 = QtGui.QIcon()
        icon3.addPixmap(
            QtGui.QPixmap(
                ":/tk_framework_qtwidgets.note_input_widget/tick.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.submit.setIcon(icon3)
        self.submit.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        self.submit.setAutoRaise(True)
        self.submit.setObjectName("submit")
        self.button_layout_right.addWidget(self.submit)
        self.horizontalLayout.addLayout(self.button_layout_right)
        self.verticalLayout_2.addLayout(self.horizontalLayout)
        self.hint_label = QtGui.QLabel(self.note_editor_page)
        self.hint_label.setObjectName("hint_label")
        self.verticalLayout_2.addWidget(self.hint_label)
        self.stacked_widget.addWidget(self.note_editor_page)
        self.preview_page = QtGui.QWidget()
        self.preview_page.setObjectName("preview_page")
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.preview_page)
        self.verticalLayout_3.setSpacing(0)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.new_note_frame = QtGui.QFrame(self.preview_page)
        self.new_note_frame.setStyleSheet("")
        self.new_note_frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.new_note_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.new_note_frame.setObjectName("new_note_frame")
        self.verticalLayout_4 = QtGui.QVBoxLayout(self.new_note_frame)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.new_note_placeholder = QtGui.QLabel(self.new_note_frame)
        self.new_note_placeholder.setAlignment(QtCore.Qt.AlignLeading
                                               | QtCore.Qt.AlignLeft
                                               | QtCore.Qt.AlignTop)
        self.new_note_placeholder.setObjectName("new_note_placeholder")
        self.verticalLayout_4.addWidget(self.new_note_placeholder)
        self.verticalLayout_3.addWidget(self.new_note_frame)
        self.stacked_widget.addWidget(self.preview_page)
        self.attachments_page = QtGui.QWidget()
        self.attachments_page.setObjectName("attachments_page")
        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.attachments_page)
        self.horizontalLayout_2.setSpacing(0)
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setSpacing(3)
        self.horizontalLayout_3.setContentsMargins(0, -1, -1, -1)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.attachment_list = QtGui.QWidget(self.attachments_page)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(1)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.attachment_list.sizePolicy().hasHeightForWidth())
        self.attachment_list.setSizePolicy(sizePolicy)
        self.attachment_list.setObjectName("attachment_list")
        self.attachments_list_layout = QtGui.QVBoxLayout(self.attachment_list)
        self.attachments_list_layout.setSpacing(0)
        self.attachments_list_layout.setContentsMargins(0, 0, 0, 0)
        self.attachments_list_layout.setContentsMargins(0, 0, 0, 0)
        self.attachments_list_layout.setObjectName("attachments_list_layout")
        self.attachment_list_tree = QtGui.QTreeWidget(self.attachment_list)
        self.attachment_list_tree.setSelectionMode(
            QtGui.QAbstractItemView.ExtendedSelection)
        self.attachment_list_tree.setRootIsDecorated(False)
        self.attachment_list_tree.setItemsExpandable(False)
        self.attachment_list_tree.setHeaderHidden(True)
        self.attachment_list_tree.setExpandsOnDoubleClick(False)
        self.attachment_list_tree.setObjectName("attachment_list_tree")
        self.attachment_list_tree.headerItem().setText(0, "1")
        self.attachments_list_layout.addWidget(self.attachment_list_tree)
        self.horizontalLayout_4 = QtGui.QHBoxLayout()
        self.horizontalLayout_4.setSpacing(3)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.add_button = QtGui.QToolButton(self.attachment_list)
        icon4 = QtGui.QIcon()
        icon4.addPixmap(
            QtGui.QPixmap(
                ":/tk_framework_qtwidgets.note_input_widget/plus.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.add_button.setIcon(icon4)
        self.add_button.setAutoRaise(True)
        self.add_button.setObjectName("add_button")
        self.horizontalLayout_4.addWidget(self.add_button)
        self.remove_button = QtGui.QToolButton(self.attachment_list)
        icon5 = QtGui.QIcon()
        icon5.addPixmap(
            QtGui.QPixmap(
                ":/tk_framework_qtwidgets.note_input_widget/minus.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.remove_button.setIcon(icon5)
        self.remove_button.setAutoRaise(True)
        self.remove_button.setObjectName("remove_button")
        self.horizontalLayout_4.addWidget(self.remove_button)
        spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_4.addItem(spacerItem1)
        self.attachments_list_layout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3.addWidget(self.attachment_list)
        self.attachment_buttons = QtGui.QVBoxLayout()
        self.attachment_buttons.setSpacing(3)
        self.attachment_buttons.setContentsMargins(5, -1, -1, -1)
        self.attachment_buttons.setObjectName("attachment_buttons")
        self.close_attachments = QtGui.QToolButton(self.attachments_page)
        self.close_attachments.setIcon(icon)
        self.close_attachments.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        self.close_attachments.setAutoRaise(True)
        self.close_attachments.setObjectName("close_attachments")
        self.attachment_buttons.addWidget(self.close_attachments)
        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Expanding)
        self.attachment_buttons.addItem(spacerItem2)
        self.add_attachments = QtGui.QToolButton(self.attachments_page)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.add_attachments.sizePolicy().hasHeightForWidth())
        self.add_attachments.setSizePolicy(sizePolicy)
        self.add_attachments.setText("")
        self.add_attachments.setIcon(icon3)
        self.add_attachments.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        self.add_attachments.setAutoRaise(True)
        self.add_attachments.setObjectName("add_attachments")
        self.attachment_buttons.addWidget(self.add_attachments)
        self.horizontalLayout_3.addLayout(self.attachment_buttons)
        self.horizontalLayout_2.addLayout(self.horizontalLayout_3)
        self.stacked_widget.addWidget(self.attachments_page)
        self.verticalLayout_5.addWidget(self.stacked_widget)

        self.retranslateUi(NoteInputWidget)
        self.stacked_widget.setCurrentIndex(1)
        QtCore.QMetaObject.connectSlotsByName(NoteInputWidget)
    def process_result(self, result):
        
        entity_data = result["associated_entity"]
        tasks = result["tasks"]
        can_create_tasks = result["can_create_tasks"]
        
        entity_str = "%s %s" % (entity_data.get("type", "Unknown"), entity_data.get("code", "Unknown"))

        if len(tasks) == 0:
            msg = ""
            if can_create_tasks:
                msg = "No Tasks found!\nClick the 'New Task' button below to create a Task."
            else:
                msg = ("No Tasks found!\nYou can create tasks by navigating to '%s' "
                       "inside of Shotgun, selecting the tasks tab and then clicking "
                       "the + button." % entity_str)
            self.set_message(msg)
            
        else:

            current_task = result.get("current_task")
            item_to_select = None        
            
            for d in tasks:
                i = self.add_item(browser_widget.ListItem)
                
                details = []
                details.append("<b>Task: %s</b>" % d.get("content", ""))
                
                # now try to look up the proper status name
                status_short_name = d.get("sg_status_list")
                # get the long name, fall back on short name if not found
                status_name = self._status_name_lookup.get(status_short_name, status_short_name)
                details.append("Status: %s" % status_name)
                
                names = [ x.get("name", "Unknown") for x in d.get("task_assignees", []) ]
                names_str = ", ".join(names)
                details.append("Assigned to: %s" % names_str)
                
                i.set_details("<br>".join(details))
                
                i.sg_data = d
                i.setToolTip("Double click to set context.")
                
                # add a grab task action
                if self._current_user: # not None
                    if d.get("task_assignees"):
                        assigned_user_ids = [ x["id"] for x in d.get("task_assignees") ]
                    else:
                        assigned_user_ids = []
                        
                    if self._current_user["id"] not in assigned_user_ids:
                        # are are not assigned to this task. add ability to grab it                
                        i.grab_action = QtGui.QAction("Add %s as an assignee to this task." % self._current_user["name"], i)
                        i.grab_action.triggered.connect(self.grab_task)                       
                        i.addAction(i.grab_action)
                        i.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)                
                
                # finally look up the thumbnail for the first user assigned to the task
                task_assignees = d.get("task_assignees", [])
                if len(task_assignees) > 0:
                    user_id = task_assignees[0]["id"]
                    # is this user id in our users dict? In that case we have their thumb!
                    for u in result["users"]:
                        if u["id"] == user_id:
                            # if they have a thumb, assign!
                            if u.get("image"):
                                i.set_thumbnail(u.get("image"))
                            break            
                
                if d and current_task and d["id"] == current_task.get("id"):
                    item_to_select = i
            
            if item_to_select:
                self.select(item_to_select)
    def run(self, splash, version, **kwargs):
        """
        Run the engine.

        This method is called from the GUI bootstrap to setup the application
        and to run the Qt event loop.

        :param splash: Splash screen widget we can display messages on.
        :param version: Version of the Shotgun Desktop installer code.
        :param startup_version: Version of the Desktop Startup code.
        """
        self.app_version = version

        # Startup version will not be set if we have an old installer invoking
        # this engine.
        self.startup_version = kwargs.get("startup_version")

        if self.uses_legacy_authentication():
            self._migrate_credentials()

        # We need to initialize current login
        # We know for sure there is a default user, since either the migration was done
        # or we logged in as an actual user with the new installer.
        human_user = ShotgunAuthenticator(
            # We don't want to get the script user, but the human user, so tell the
            # CoreDefaultsManager manager that we are not interested in the script user. Do not use
            # the regular shotgun_authentication.DefaultsManager to get this user because it will
            # not know about proxy information.
            sgtk.util.CoreDefaultsManager(mask_script_user=True)
        ).get_default_user()
        # Cache the user so we can refresh the credentials before launching a background process
        self._user = human_user
        # Retrieve the current logged in user information. This will be used when creating
        # event log entries.
        self._current_login = self._engine.sgtk.shotgun.find_one(
            "HumanUser",
            [["login", "is", human_user.login]],
            ["id", "login"]
        )

        # Initialize Qt app
        from tank.platform.qt import QtGui

        app = QtGui.QApplication.instance()
        if app is None:
            app = QtGui.QApplication(sys.argv)

        # update the app icon
        icon = QtGui.QIcon(":tk-desktop/default_systray_icon")
        app.setWindowIcon(icon)

        splash.set_message("Building UI")

        # setup the global look and feel
        self._engine._initialize_dark_look_and_feel()

        # load custom font
        QtGui.QFontDatabase.addApplicationFont(":/tk-desktop/fonts/OpenSans-Bold.ttf")
        QtGui.QFontDatabase.addApplicationFont(":/tk-desktop/fonts/OpenSans-Regular.ttf")
        QtGui.QFontDatabase.addApplicationFont(":/tk-desktop/fonts/OpenSans-CondLight.ttf")
        QtGui.QFontDatabase.addApplicationFont(":/tk-desktop/fonts/OpenSans-Light.ttf")

        # merge in app specific look and feel
        css_file = os.path.join(self._engine.disk_location, "resources", "desktop_dark.css")
        f = open(css_file)
        css = app.styleSheet() + "\n\n" + f.read()
        f.close()
        app.setStyleSheet(css)

        # desktop_window needs to import shotgun_authentication globally. However, doing so
        # can cause a crash when running Shotgun Desktop installer 1.02 code. We used to
        # not restart Desktop when upgrading the core, which caused the older version of core
        # to be kept in memory and the newer core to not be used until the app was reloaded.
        #
        # Since pre 0.16 cores didn't have a shotgun_authentication module, we
        # would have crashed if this had been imported at init time. Note that earlier
        # in this method we forcefully restarted the application if we noticed
        # that the core was upgraded without restarting. Which means that if we
        # end up here, it's now because we're in a good state.
        from . import desktop_window

        # initialize System Tray
        self.desktop_window = desktop_window.DesktopWindow()

        # make sure we close down our rpc threads
        app.aboutToQuit.connect(self._engine.destroy_engine)

        # hide the splash if it exists
        if splash is not None:
            splash.hide()

        # and run the app
        result = app.exec_()
        return result
Example #19
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(737, 615)
        self.verticalLayout_7 = QtGui.QVBoxLayout(Dialog)
        self.verticalLayout_7.setSpacing(0)
        self.verticalLayout_7.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.main_stack = QtGui.QStackedWidget(Dialog)
        self.main_stack.setObjectName("main_stack")
        self.large_drop_area_frame = QtGui.QWidget()
        self.large_drop_area_frame.setObjectName("large_drop_area_frame")
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.large_drop_area_frame)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.large_drop_area = DropAreaFrame(self.large_drop_area_frame)
        self.large_drop_area.setFrameShape(QtGui.QFrame.StyledPanel)
        self.large_drop_area.setFrameShadow(QtGui.QFrame.Raised)
        self.large_drop_area.setObjectName("large_drop_area")
        self.gridLayout_2 = QtGui.QGridLayout(self.large_drop_area)
        self.gridLayout_2.setObjectName("gridLayout_2")
        spacerItem = QtGui.QSpacerItem(20, 98, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.gridLayout_2.addItem(spacerItem, 0, 1, 1, 1)
        spacerItem1 = QtGui.QSpacerItem(166, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem1, 1, 0, 1, 1)
        self.horizontalLayout_6 = QtGui.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.label_5 = QtGui.QLabel(self.large_drop_area)
        self.label_5.setMinimumSize(QtCore.QSize(150, 150))
        self.label_5.setMaximumSize(QtCore.QSize(150, 150))
        self.label_5.setText("")
        self.label_5.setPixmap(
            QtGui.QPixmap(":/tk_multi_publish2/icon_256.png"))
        self.label_5.setScaledContents(True)
        self.label_5.setAlignment(QtCore.Qt.AlignCenter)
        self.label_5.setObjectName("label_5")
        self.horizontalLayout_6.addWidget(self.label_5)
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setSpacing(8)
        self.verticalLayout.setObjectName("verticalLayout")
        spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem2)
        self.large_drop_area_label = QtGui.QLabel(self.large_drop_area)
        self.large_drop_area_label.setStyleSheet("QLabel {\n"
                                                 "    font-size: 24px;\n"
                                                 "}")
        self.large_drop_area_label.setAlignment(QtCore.Qt.AlignCenter)
        self.large_drop_area_label.setObjectName("large_drop_area_label")
        self.verticalLayout.addWidget(self.large_drop_area_label)
        self.label = QtGui.QLabel(self.large_drop_area)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem3)
        self.drop_area_browse = QtGui.QPushButton(self.large_drop_area)
        self.drop_area_browse.setMinimumSize(QtCore.QSize(0, 0))
        self.drop_area_browse.setFocusPolicy(QtCore.Qt.NoFocus)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/browse_white.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.drop_area_browse.setIcon(icon)
        self.drop_area_browse.setIconSize(QtCore.QSize(32, 32))
        self.drop_area_browse.setObjectName("drop_area_browse")
        self.horizontalLayout_3.addWidget(self.drop_area_browse)
        spacerItem4 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem4)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        spacerItem5 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem5)
        self.verticalLayout.setStretch(0, 3)
        self.verticalLayout.setStretch(2, 1)
        self.verticalLayout.setStretch(4, 3)
        self.horizontalLayout_6.addLayout(self.verticalLayout)
        self.gridLayout_2.addLayout(self.horizontalLayout_6, 1, 1, 1, 1)
        spacerItem6 = QtGui.QSpacerItem(179, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem6, 1, 2, 1, 1)
        spacerItem7 = QtGui.QSpacerItem(20, 213, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Expanding)
        self.gridLayout_2.addItem(spacerItem7, 2, 1, 1, 1)
        self.verticalLayout_3.addWidget(self.large_drop_area)
        self.main_stack.addWidget(self.large_drop_area_frame)
        self.main_ui_frame = QtGui.QWidget()
        self.main_ui_frame.setObjectName("main_ui_frame")
        self.verticalLayout_4 = QtGui.QVBoxLayout(self.main_ui_frame)
        self.verticalLayout_4.setSpacing(2)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.main_frame = QtGui.QWidget(self.main_ui_frame)
        self.main_frame.setObjectName("main_frame")
        self.verticalLayout_9 = QtGui.QVBoxLayout(self.main_frame)
        self.verticalLayout_9.setSpacing(0)
        self.verticalLayout_9.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_9.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_9.setObjectName("verticalLayout_9")
        self.splitter = QtGui.QSplitter(self.main_frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.splitter.sizePolicy().hasHeightForWidth())
        self.splitter.setSizePolicy(sizePolicy)
        self.splitter.setOrientation(QtCore.Qt.Horizontal)
        self.splitter.setObjectName("splitter")
        self.frame = DropAreaFrame(self.splitter)
        self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtGui.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.frame)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.items_tree = PublishTreeWidget(self.frame)
        self.items_tree.setAcceptDrops(True)
        self.items_tree.setDragEnabled(True)
        self.items_tree.setDragDropMode(QtGui.QAbstractItemView.InternalMove)
        self.items_tree.setSelectionMode(
            QtGui.QAbstractItemView.ExtendedSelection)
        self.items_tree.setObjectName("items_tree")
        self.items_tree.headerItem().setText(0, "1")
        self.items_tree.header().setVisible(False)
        self.verticalLayout_2.addWidget(self.items_tree)
        self.text_below_item_tree = QtGui.QLabel(self.frame)
        self.text_below_item_tree.setAlignment(QtCore.Qt.AlignCenter)
        self.text_below_item_tree.setObjectName("text_below_item_tree")
        self.verticalLayout_2.addWidget(self.text_below_item_tree)
        self.details_frame = QtGui.QFrame(self.splitter)
        self.details_frame.setObjectName("details_frame")
        self.verticalLayout_5 = QtGui.QVBoxLayout(self.details_frame)
        self.verticalLayout_5.setSpacing(0)
        self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.details_stack = QtGui.QStackedWidget(self.details_frame)
        self.details_stack.setObjectName("details_stack")
        self.details_item = QtGui.QWidget()
        self.details_item.setObjectName("details_item")
        self.verticalLayout_6 = QtGui.QVBoxLayout(self.details_item)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.item_icon = QtGui.QLabel(self.details_item)
        self.item_icon.setMinimumSize(QtCore.QSize(60, 60))
        self.item_icon.setMaximumSize(QtCore.QSize(60, 60))
        self.item_icon.setText("")
        self.item_icon.setScaledContents(True)
        self.item_icon.setAlignment(QtCore.Qt.AlignHCenter
                                    | QtCore.Qt.AlignTop)
        self.item_icon.setObjectName("item_icon")
        self.horizontalLayout_2.addWidget(self.item_icon)
        self.verticalLayout_12 = QtGui.QVBoxLayout()
        self.verticalLayout_12.setSpacing(0)
        self.verticalLayout_12.setObjectName("verticalLayout_12")
        self.item_name = ElidedLabel(self.details_item)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.item_name.sizePolicy().hasHeightForWidth())
        self.item_name.setSizePolicy(sizePolicy)
        self.item_name.setAlignment(QtCore.Qt.AlignLeading
                                    | QtCore.Qt.AlignLeft
                                    | QtCore.Qt.AlignVCenter)
        self.item_name.setObjectName("item_name")
        self.verticalLayout_12.addWidget(self.item_name)
        self.item_type = QtGui.QLabel(self.details_item)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.item_type.sizePolicy().hasHeightForWidth())
        self.item_type.setSizePolicy(sizePolicy)
        self.item_type.setAlignment(QtCore.Qt.AlignLeading
                                    | QtCore.Qt.AlignLeft
                                    | QtCore.Qt.AlignVCenter)
        self.item_type.setObjectName("item_type")
        self.verticalLayout_12.addWidget(self.item_type)
        self.verticalLayout_12.setStretch(0, 1)
        self.verticalLayout_12.setStretch(1, 2)
        self.horizontalLayout_2.addLayout(self.verticalLayout_12)
        self.horizontalLayout_2.setStretch(1, 10)
        self.verticalLayout_6.addLayout(self.horizontalLayout_2)
        self.item_divider_1 = QtGui.QFrame(self.details_item)
        self.item_divider_1.setFrameShape(QtGui.QFrame.HLine)
        self.item_divider_1.setFrameShadow(QtGui.QFrame.Sunken)
        self.item_divider_1.setObjectName("item_divider_1")
        self.verticalLayout_6.addWidget(self.item_divider_1)
        self.context_widget = ContextWidget(self.details_item)
        self.context_widget.setObjectName("context_widget")
        self.verticalLayout_6.addWidget(self.context_widget)
        self.gridLayout_3 = QtGui.QGridLayout()
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.item_description_label = QtGui.QLabel(self.details_item)
        self.item_description_label.setObjectName("item_description_label")
        self.gridLayout_3.addWidget(self.item_description_label, 0, 1, 1, 1)
        self.item_thumbnail_label = QtGui.QLabel(self.details_item)
        self.item_thumbnail_label.setObjectName("item_thumbnail_label")
        self.gridLayout_3.addWidget(self.item_thumbnail_label, 0, 0, 1, 1)
        self.item_comments = QtGui.QPlainTextEdit(self.details_item)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.item_comments.sizePolicy().hasHeightForWidth())
        self.item_comments.setSizePolicy(sizePolicy)
        self.item_comments.setMinimumSize(QtCore.QSize(0, 90))
        self.item_comments.setMaximumSize(QtCore.QSize(16777215, 90))
        self.item_comments.setObjectName("item_comments")
        self.gridLayout_3.addWidget(self.item_comments, 1, 1, 1, 1)
        self.item_thumbnail = Thumbnail(self.details_item)
        self.item_thumbnail.setMinimumSize(QtCore.QSize(160, 90))
        self.item_thumbnail.setMaximumSize(QtCore.QSize(160, 90))
        self.item_thumbnail.setText("")
        self.item_thumbnail.setScaledContents(False)
        self.item_thumbnail.setAlignment(QtCore.Qt.AlignCenter)
        self.item_thumbnail.setObjectName("item_thumbnail")
        self.gridLayout_3.addWidget(self.item_thumbnail, 1, 0, 1, 1)
        self.verticalLayout_6.addLayout(self.gridLayout_3)
        self.item_summary_label = QtGui.QLabel(self.details_item)
        self.item_summary_label.setAlignment(QtCore.Qt.AlignBottom
                                             | QtCore.Qt.AlignLeading
                                             | QtCore.Qt.AlignLeft)
        self.item_summary_label.setObjectName("item_summary_label")
        self.verticalLayout_6.addWidget(self.item_summary_label)
        self.scrollArea = QtGui.QScrollArea(self.details_item)
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setObjectName("scrollArea")
        self.scrollAreaWidgetContents = QtGui.QWidget()
        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 420, 100))
        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
        self.verticalLayout_10 = QtGui.QVBoxLayout(
            self.scrollAreaWidgetContents)
        self.verticalLayout_10.setSpacing(0)
        self.verticalLayout_10.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_10.setObjectName("verticalLayout_10")
        self.item_summary = QtGui.QLabel(self.scrollAreaWidgetContents)
        self.item_summary.setText("")
        self.item_summary.setWordWrap(True)
        self.item_summary.setObjectName("item_summary")
        self.verticalLayout_10.addWidget(self.item_summary)
        self.expander_label = QtGui.QLabel(self.scrollAreaWidgetContents)
        self.expander_label.setText("")
        self.expander_label.setObjectName("expander_label")
        self.verticalLayout_10.addWidget(self.expander_label)
        self.verticalLayout_10.setStretch(1, 1)
        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
        self.verticalLayout_6.addWidget(self.scrollArea)
        self.item_settings_label = QtGui.QLabel(self.details_item)
        self.item_settings_label.setAlignment(QtCore.Qt.AlignBottom
                                              | QtCore.Qt.AlignLeading
                                              | QtCore.Qt.AlignLeft)
        self.item_settings_label.setObjectName("item_settings_label")
        self.verticalLayout_6.addWidget(self.item_settings_label)
        self.item_settings = SettingsWidget(self.details_item)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.item_settings.sizePolicy().hasHeightForWidth())
        self.item_settings.setSizePolicy(sizePolicy)
        self.item_settings.setObjectName("item_settings")
        self.verticalLayout_6.addWidget(self.item_settings)
        self.verticalLayout_6.setStretch(0, 1)
        self.verticalLayout_6.setStretch(1, 1)
        self.verticalLayout_6.setStretch(2, 1)
        self.verticalLayout_6.setStretch(3, 1)
        self.verticalLayout_6.setStretch(4, 1)
        self.verticalLayout_6.setStretch(5, 5)
        self.verticalLayout_6.setStretch(6, 1)
        self.verticalLayout_6.setStretch(7, 5)
        self.details_stack.addWidget(self.details_item)
        self.details_task = QtGui.QWidget()
        self.details_task.setObjectName("details_task")
        self.verticalLayout_11 = QtGui.QVBoxLayout(self.details_task)
        self.verticalLayout_11.setObjectName("verticalLayout_11")
        self.horizontalLayout_4 = QtGui.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.task_icon = QtGui.QLabel(self.details_task)
        self.task_icon.setMinimumSize(QtCore.QSize(60, 60))
        self.task_icon.setMaximumSize(QtCore.QSize(60, 60))
        self.task_icon.setText("")
        self.task_icon.setScaledContents(True)
        self.task_icon.setObjectName("task_icon")
        self.horizontalLayout_4.addWidget(self.task_icon)
        self.task_name = QtGui.QLabel(self.details_task)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.task_name.sizePolicy().hasHeightForWidth())
        self.task_name.setSizePolicy(sizePolicy)
        self.task_name.setObjectName("task_name")
        self.horizontalLayout_4.addWidget(self.task_name)
        self.verticalLayout_11.addLayout(self.horizontalLayout_4)
        self.scrollArea_2 = QtGui.QScrollArea(self.details_task)
        self.scrollArea_2.setWidgetResizable(True)
        self.scrollArea_2.setObjectName("scrollArea_2")
        self.scrollAreaWidgetContents_2 = QtGui.QWidget()
        self.scrollAreaWidgetContents_2.setGeometry(
            QtCore.QRect(0, 0, 420, 202))
        self.scrollAreaWidgetContents_2.setObjectName(
            "scrollAreaWidgetContents_2")
        self.verticalLayout_13 = QtGui.QVBoxLayout(
            self.scrollAreaWidgetContents_2)
        self.verticalLayout_13.setSpacing(0)
        self.verticalLayout_13.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_13.setObjectName("verticalLayout_13")
        self.task_description = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.task_description.setText("")
        self.task_description.setWordWrap(True)
        self.task_description.setOpenExternalLinks(True)
        self.task_description.setObjectName("task_description")
        self.verticalLayout_13.addWidget(self.task_description)
        self.expander_label_2 = QtGui.QLabel(self.scrollAreaWidgetContents_2)
        self.expander_label_2.setText("")
        self.expander_label_2.setObjectName("expander_label_2")
        self.verticalLayout_13.addWidget(self.expander_label_2)
        self.verticalLayout_13.setStretch(1, 1)
        self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
        self.verticalLayout_11.addWidget(self.scrollArea_2)
        self.task_settings_label = QtGui.QLabel(self.details_task)
        self.task_settings_label.setObjectName("task_settings_label")
        self.verticalLayout_11.addWidget(self.task_settings_label)
        self.task_settings = SettingsWidget(self.details_task)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.task_settings.sizePolicy().hasHeightForWidth())
        self.task_settings.setSizePolicy(sizePolicy)
        self.task_settings.setObjectName("task_settings")
        self.verticalLayout_11.addWidget(self.task_settings)
        self.details_stack.addWidget(self.details_task)
        self.details_please_select = QtGui.QWidget()
        self.details_please_select.setObjectName("details_please_select")
        self.verticalLayout_8 = QtGui.QVBoxLayout(self.details_please_select)
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.please_select_an_item = QtGui.QLabel(self.details_please_select)
        self.please_select_an_item.setAlignment(QtCore.Qt.AlignCenter)
        self.please_select_an_item.setObjectName("please_select_an_item")
        self.verticalLayout_8.addWidget(self.please_select_an_item)
        self.details_stack.addWidget(self.details_please_select)
        self.verticalLayout_5.addWidget(self.details_stack)
        self.verticalLayout_9.addWidget(self.splitter)
        self.verticalLayout_4.addWidget(self.main_frame)
        self.progress_bar = QtGui.QProgressBar(self.main_ui_frame)
        self.progress_bar.setMaximumSize(QtCore.QSize(16777215, 10))
        self.progress_bar.setProperty("value", 0)
        self.progress_bar.setTextVisible(False)
        self.progress_bar.setObjectName("progress_bar")
        self.verticalLayout_4.addWidget(self.progress_bar)
        self.bottom_frame = QtGui.QFrame(self.main_ui_frame)
        self.bottom_frame.setMaximumSize(QtCore.QSize(16777215, 50))
        self.bottom_frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.bottom_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.bottom_frame.setObjectName("bottom_frame")
        self.horizontalLayout = QtGui.QHBoxLayout(self.bottom_frame)
        self.horizontalLayout.setSpacing(2)
        self.horizontalLayout.setContentsMargins(2, 0, 2, 2)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.browse = QtGui.QToolButton(self.bottom_frame)
        self.browse.setMaximumSize(QtCore.QSize(32, 32))
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/browse.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.browse.setIcon(icon1)
        self.browse.setIconSize(QtCore.QSize(32, 32))
        self.browse.setObjectName("browse")
        self.horizontalLayout.addWidget(self.browse)
        self.refresh = QtGui.QToolButton(self.bottom_frame)
        self.refresh.setMaximumSize(QtCore.QSize(32, 32))
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/refresh.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.refresh.setIcon(icon2)
        self.refresh.setIconSize(QtCore.QSize(32, 32))
        self.refresh.setObjectName("refresh")
        self.horizontalLayout.addWidget(self.refresh)
        self.delete_items = QtGui.QToolButton(self.bottom_frame)
        self.delete_items.setMaximumSize(QtCore.QSize(32, 32))
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/trash.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.delete_items.setIcon(icon3)
        self.delete_items.setIconSize(QtCore.QSize(32, 32))
        self.delete_items.setObjectName("delete_items")
        self.horizontalLayout.addWidget(self.delete_items)
        self.expand_all = QtGui.QToolButton(self.bottom_frame)
        self.expand_all.setMaximumSize(QtCore.QSize(32, 32))
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/expand.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.expand_all.setIcon(icon4)
        self.expand_all.setIconSize(QtCore.QSize(32, 32))
        self.expand_all.setObjectName("expand_all")
        self.horizontalLayout.addWidget(self.expand_all)
        self.collapse_all = QtGui.QToolButton(self.bottom_frame)
        self.collapse_all.setMaximumSize(QtCore.QSize(32, 32))
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/contract.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.collapse_all.setIcon(icon5)
        self.collapse_all.setIconSize(QtCore.QSize(32, 32))
        self.collapse_all.setObjectName("collapse_all")
        self.horizontalLayout.addWidget(self.collapse_all)
        self.help = QtGui.QToolButton(self.bottom_frame)
        self.help.setMinimumSize(QtCore.QSize(32, 32))
        self.help.setMaximumSize(QtCore.QSize(32, 32))
        icon6 = QtGui.QIcon()
        icon6.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/help.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.help.setIcon(icon6)
        self.help.setIconSize(QtCore.QSize(32, 32))
        self.help.setObjectName("help")
        self.horizontalLayout.addWidget(self.help)
        spacerItem8 = QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Fixed,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem8)
        self.progress_status_icon = QtGui.QLabel(self.bottom_frame)
        self.progress_status_icon.setMinimumSize(QtCore.QSize(20, 20))
        self.progress_status_icon.setMaximumSize(QtCore.QSize(20, 20))
        self.progress_status_icon.setText("")
        self.progress_status_icon.setPixmap(
            QtGui.QPixmap(":/tk_multi_publish2/status_success.png"))
        self.progress_status_icon.setScaledContents(True)
        self.progress_status_icon.setObjectName("progress_status_icon")
        self.horizontalLayout.addWidget(self.progress_status_icon)
        self.progress_message = ProgressStatusLabel(self.bottom_frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.progress_message.sizePolicy().hasHeightForWidth())
        self.progress_message.setSizePolicy(sizePolicy)
        self.progress_message.setObjectName("progress_message")
        self.horizontalLayout.addWidget(self.progress_message)
        self.stop_processing = QtGui.QToolButton(self.bottom_frame)
        icon7 = QtGui.QIcon()
        icon7.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/cross.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.stop_processing.setIcon(icon7)
        self.stop_processing.setIconSize(QtCore.QSize(20, 20))
        self.stop_processing.setObjectName("stop_processing")
        self.horizontalLayout.addWidget(self.stop_processing)
        self.validate = QtGui.QPushButton(self.bottom_frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.validate.sizePolicy().hasHeightForWidth())
        self.validate.setSizePolicy(sizePolicy)
        self.validate.setObjectName("validate")
        self.horizontalLayout.addWidget(self.validate)
        self.publish = QtGui.QPushButton(self.bottom_frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.publish.sizePolicy().hasHeightForWidth())
        self.publish.setSizePolicy(sizePolicy)
        self.publish.setObjectName("publish")
        self.horizontalLayout.addWidget(self.publish)
        self.close = QtGui.QPushButton(self.bottom_frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.close.sizePolicy().hasHeightForWidth())
        self.close.setSizePolicy(sizePolicy)
        self.close.setObjectName("close")
        self.horizontalLayout.addWidget(self.close)
        self.verticalLayout_4.addWidget(self.bottom_frame)
        self.main_stack.addWidget(self.main_ui_frame)
        self.verticalLayout_7.addWidget(self.main_stack)

        self.retranslateUi(Dialog)
        self.main_stack.setCurrentIndex(1)
        self.details_stack.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
        Dialog.setTabOrder(self.item_comments, self.validate)
        Dialog.setTabOrder(self.validate, self.publish)
        Dialog.setTabOrder(self.publish, self.items_tree)
        Dialog.setTabOrder(self.items_tree, self.refresh)
        Dialog.setTabOrder(self.refresh, self.delete_items)
        Dialog.setTabOrder(self.delete_items, self.expand_all)
        Dialog.setTabOrder(self.expand_all, self.collapse_all)
        Dialog.setTabOrder(self.collapse_all, self.help)
        Dialog.setTabOrder(self.help, self.close)
        Dialog.setTabOrder(self.close, self.stop_processing)
        Dialog.setTabOrder(self.stop_processing, self.scrollArea)
        Dialog.setTabOrder(self.scrollArea, self.scrollArea_2)
Example #20
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(836, 487)
        self.horizontalLayout = QtGui.QHBoxLayout(Dialog)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.context_overview_tab_widget = QtGui.QTabWidget(Dialog)
        self.context_overview_tab_widget.setTabPosition(QtGui.QTabWidget.South)
        self.context_overview_tab_widget.setObjectName(
            "context_overview_tab_widget")
        self.tab = QtGui.QWidget()
        self.tab.setObjectName("tab")
        self.verticalLayout_4 = QtGui.QVBoxLayout(self.tab)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.context_browser = ContextBrowserWidget(self.tab)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.context_browser.sizePolicy().hasHeightForWidth())
        self.context_browser.setSizePolicy(sizePolicy)
        self.context_browser.setMinimumSize(QtCore.QSize(380, 0))
        self.context_browser.setObjectName("context_browser")
        self.verticalLayout_4.addWidget(self.context_browser)
        self.label_4 = QtGui.QLabel(self.tab)
        self.label_4.setWordWrap(True)
        self.label_4.setObjectName("label_4")
        self.verticalLayout_4.addWidget(self.label_4)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/res/icon_task.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.context_overview_tab_widget.addTab(self.tab, icon, "")
        self.tab_2 = QtGui.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.tab_2)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.app_browser = AppBrowserWidget(self.tab_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.app_browser.sizePolicy().hasHeightForWidth())
        self.app_browser.setSizePolicy(sizePolicy)
        self.app_browser.setMinimumSize(QtCore.QSize(380, 0))
        self.app_browser.setObjectName("app_browser")
        self.verticalLayout_2.addWidget(self.app_browser)
        self.label_2 = QtGui.QLabel(self.tab_2)
        self.label_2.setWordWrap(True)
        self.label_2.setObjectName("label_2")
        self.verticalLayout_2.addWidget(self.label_2)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/res/logo_color_16.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.context_overview_tab_widget.addTab(self.tab_2, icon1, "")
        self.tab_3 = QtGui.QWidget()
        self.tab_3.setObjectName("tab_3")
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.tab_3)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.environment_browser = EnvironmentBrowserWidget(self.tab_3)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.environment_browser.sizePolicy().hasHeightForWidth())
        self.environment_browser.setSizePolicy(sizePolicy)
        self.environment_browser.setMinimumSize(QtCore.QSize(380, 0))
        self.environment_browser.setObjectName("environment_browser")
        self.verticalLayout_3.addWidget(self.environment_browser)
        self.label_3 = QtGui.QLabel(self.tab_3)
        self.label_3.setWordWrap(True)
        self.label_3.setObjectName("label_3")
        self.verticalLayout_3.addWidget(self.label_3)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/res/cog_white.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.context_overview_tab_widget.addTab(self.tab_3, icon2, "")
        self.horizontalLayout.addWidget(self.context_overview_tab_widget)
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setSpacing(5)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label = QtGui.QLabel(Dialog)
        self.label.setText("")
        self.label.setPixmap(QtGui.QPixmap(":/res/tank_logo.png"))
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.jump_to_fs = QtGui.QPushButton(Dialog)
        self.jump_to_fs.setObjectName("jump_to_fs")
        self.verticalLayout.addWidget(self.jump_to_fs)
        self.reload_apps = QtGui.QPushButton(Dialog)
        self.reload_apps.setObjectName("reload_apps")
        self.verticalLayout.addWidget(self.reload_apps)
        self.support = QtGui.QPushButton(Dialog)
        self.support.setObjectName("support")
        self.verticalLayout.addWidget(self.support)
        spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem)
        self.close = QtGui.QPushButton(Dialog)
        self.close.setObjectName("close")
        self.verticalLayout.addWidget(self.close)
        self.horizontalLayout.addLayout(self.verticalLayout)

        self.retranslateUi(Dialog)
        self.context_overview_tab_widget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
    def paintEvent(self, event):
        """
        Render the UI.
        """
        if self._mode == self.MODE_OFF:
            return

        painter = QtGui.QPainter()
        painter.begin(self)
        try:
            # set up semi transparent backdrop
            painter.setRenderHint(QtGui.QPainter.Antialiasing)
            overlay_color = QtGui.QColor("#1B1B1B")
            painter.setBrush(QtGui.QBrush(overlay_color))
            painter.setPen(QtGui.QPen(overlay_color))
            painter.drawRect(0, 0,
                             painter.device().width(),
                             painter.device().height())

            # now draw different things depending on mode
            if self._mode == self.MODE_SPIN:

                # show the spinner
                painter.translate((painter.device().width() / 2) - 40,
                                  (painter.device().height() / 2) - 40)

                pen = QtGui.QPen(QtGui.QColor("#424141"))
                pen.setWidth(3)
                painter.setPen(pen)
                painter.drawPixmap(QtCore.QPoint(8, 24), self._sg_icon)

                r = QtCore.QRectF(0.0, 0.0, 80.0, 80.0)
                start_angle = (0 + self._spin_angle) * 4 * 16
                span_angle = 340 * 16

                painter.drawArc(r, start_angle, span_angle)

            elif self._mode == self.MODE_INFO_TEXT:
                # show text in the middle
                pen = QtGui.QPen(QtGui.QColor("#888888"))
                painter.setPen(pen)
                text_rect = QtCore.QRect(0, 0,
                                         painter.device().width(),
                                         painter.device().height())
                text_flags = QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.TextWordWrap
                painter.drawText(text_rect, text_flags, self._message)

            elif self._mode == self.MODE_ERROR:
                # show error text in the center
                pen = QtGui.QPen(QtGui.QColor("#C8534A"))
                painter.setPen(pen)
                text_rect = QtCore.QRect(0, 0,
                                         painter.device().width(),
                                         painter.device().height())
                text_flags = QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.TextWordWrap
                painter.drawText(text_rect, text_flags, self._message)

            elif self._mode == self.MODE_INFO_PIXMAP:
                # draw image
                painter.translate((painter.device().width() / 2) -
                                  (self._message_pixmap.width() / 2),
                                  (painter.device().height() / 2) -
                                  (self._message_pixmap.height() / 2))

                painter.drawPixmap(QtCore.QPoint(0, 0), self._message_pixmap)

        finally:
            painter.end()
Example #22
0
    def __init__(self, app):
        """
		"""
        QtGui.QWidget.__init__(self)
        self.app = app
        debug(self.app,
              method='MainUI.__init__',
              message='Running app...',
              verbose=False)

        self.context = self.app.context
        debug(self.app,
              method='MainUI.__init__',
              message='Context Step: %s' % self.context.step['name'],
              verbose=False)

        if self.context.step['name'] != 'FX':
            tank.TankError("Cannot load, not a valid FX step.")
        else:
            debug(app=self.app,
                  method='MainUI.__init__',
                  message='Valid FX step...',
                  verbose=False)
            ### PROCESS ALL THE SCENE STUFF
            ## Load the API
            self.tk = sgtk.sgtk_from_path("T:/software/bubblebathbay")
            debug(app=self.app,
                  method='MainUI.__init__',
                  message='tk: %s' % self.tk,
                  verbose=False)

            ## Working scene path
            scene_path = cmds.file(query=True, sn=True)
            debug(app=self.app,
                  method='MainUI.__init__',
                  message='scene_path: %s' % scene_path,
                  verbose=False)

            if not scene_path:
                cmds.warning("Not a valid scene file...")
            else:
                ## Build an entity type to get some values from.
                self.entity = self.context.entity  ## returns {'type': 'Shot', 'name': 'ep100_sh010', 'id': 1166}
                debug(app=self.app,
                      method='MainUI.__init__',
                      message='self.entity: %s' % self.entity,
                      verbose=False)

                ## Filter for the matching ID for the shot
                sg_filters = [["id", "is", self.entity["id"]]]
                debug(app=self.app,
                      method='MainUI.__init__',
                      message='sg_filters: %s' % sg_filters,
                      verbose=False)

                ## Build an entity type to get some values from.
                sg_entity_type = self.entity["type"]  ## returns Shot
                debug(app=self.app,
                      method='MainUI.__init__',
                      message='sg_entity_type: %s' % sg_entity_type,
                      verbose=False)

                ## Get template path
                ## primary_publish_template: maya_shot_publish
                ## maya_shot_publish = '@shot_root/publish/maya/{name}.v{version}.mb'
                self.templateFile = self.tk.templates[self.app.get_setting(
                    'primary_publish_template'
                )]  ## returns <Sgtk TemplatePath maya_shot_publish: episodes/{Sequence}/{Shot}/{Step}/publish/maya/{name}.v{version}.mb>
                debug(app=self.app,
                      method='MainUI.__init__',
                      message='template_path: %s' % self.templateFile,
                      verbose=False)

                ## Shot name
                self.shotNum = self.entity["name"]
                debug(app=self.app,
                      method='MainUI.__init__',
                      message='shotName: %s' % self.shotNum,
                      verbose=False)

                ## Shot ID
                self.id = self.entity["id"]
                debug(app=self.app,
                      method='MainUI.__init__',
                      message='shotId: %s' % self.id,
                      verbose=False)

                ## Published animation version files
                getAnimVersionFolders = self.tk.paths_from_template(
                    self.templateFile, {
                        'Step': 'Anm',
                        'id': self.id,
                        'Shot': self.shotNum
                    }
                )  # returns ['I:\\bubblebathbay\\episodes\\ep101\\ep101_sh019\\Anm\\publish\\maya\\ep101sh019.v003.mb', 'I:\\bubblebathbay\\episodes\\ep101\\ep101_sh019\\Anm\\publish\\maya\\ep101sh019.v001.mb', 'I:\\bubblebathbay\\episodes\\ep101\\ep101_sh019\\Anm\\publish\\maya\\ep101sh019.v002.mb']
                if getAnimVersionFolders:
                    debug(app=self.app,
                          method='MainUI.__init__',
                          message='latestPublishedAnimVerFile: %s' %
                          max(getAnimVersionFolders),
                          verbose=False)

                #######################################
                ################### UI LOAD / BUILD NOW
                #######################################
                ## Now build the UI
                self.mainLayout = QtGui.QVBoxLayout(self)

                ## Setup the layout and buttons
                self.fetchingGroupBox = QtGui.QGroupBox(self)
                self.fetchingGroupBox.setTitle(self.shotNum)
                self.buttonLayout = QtGui.QHBoxLayout(self.fetchingGroupBox)

                self.versionCheckerButton = QtGui.QPushButton(
                    'WORK FILE ----------------------------------- %s | %s ----------------------------------- PUBLISHED FILE'
                    % (self._getSceneVersion(),
                       self._getPublishedLatestVersion()))
                self.versionCheckerButton.clicked.connect(
                    self._compareAnimVersion)
                self._compareAnimVersion()

                ## Add the buttons to their layout widget
                self.buttonLayout.addWidget(self.versionCheckerButton)

                self.mainLayout.addWidget(self.fetchingGroupBox)

                self.mainLayout.addStretch(1)
                self.resize(300, 20)
Example #23
0
    def setupUi(self, ItemWidget):
        ItemWidget.setObjectName("ItemWidget")
        ItemWidget.resize(290, 45)
        ItemWidget.setMinimumSize(QtCore.QSize(0, 45))
        self.verticalLayout = QtGui.QVBoxLayout(ItemWidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout.setObjectName("verticalLayout")
        self.frame = QtGui.QFrame(ItemWidget)
        self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtGui.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.horizontalLayout = QtGui.QHBoxLayout(self.frame)
        self.horizontalLayout.setSpacing(8)
        self.horizontalLayout.setContentsMargins(4, 2, 2, 2)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.expand_placeholder = QtGui.QWidget(self.frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.expand_placeholder.sizePolicy().hasHeightForWidth())
        self.expand_placeholder.setSizePolicy(sizePolicy)
        self.expand_placeholder.setMinimumSize(QtCore.QSize(16, 16))
        self.expand_placeholder.setMaximumSize(QtCore.QSize(16, 16))
        self.expand_placeholder.setObjectName("expand_placeholder")
        self.horizontalLayout.addWidget(self.expand_placeholder)
        self.expand_indicator = QtGui.QToolButton(self.frame)
        self.expand_indicator.setMinimumSize(QtCore.QSize(16, 16))
        self.expand_indicator.setMaximumSize(QtCore.QSize(16, 16))
        self.expand_indicator.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/tk_multi_publish2/down_arrow.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.expand_indicator.setIcon(icon)
        self.expand_indicator.setObjectName("expand_indicator")
        self.horizontalLayout.addWidget(self.expand_indicator)
        self.icon = QtGui.QLabel(self.frame)
        self.icon.setMinimumSize(QtCore.QSize(32, 32))
        self.icon.setMaximumSize(QtCore.QSize(30, 30))
        self.icon.setText("")
        self.icon.setScaledContents(True)
        self.icon.setObjectName("icon")
        self.horizontalLayout.addWidget(self.icon)
        self.header = QtGui.QLabel(self.frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.header.sizePolicy().hasHeightForWidth())
        self.header.setSizePolicy(sizePolicy)
        self.header.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
        self.header.setObjectName("header")
        self.horizontalLayout.addWidget(self.header)
        self.handle_stack = QtGui.QStackedWidget(self.frame)
        self.handle_stack.setMinimumSize(QtCore.QSize(22, 22))
        self.handle_stack.setMaximumSize(QtCore.QSize(22, 22))
        self.handle_stack.setObjectName("handle_stack")
        self.drag = QtGui.QWidget()
        self.drag.setObjectName("drag")
        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.drag)
        self.horizontalLayout_2.setSpacing(0)
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.drag_handle = QtGui.QLabel(self.drag)
        self.drag_handle.setMinimumSize(QtCore.QSize(16, 16))
        self.drag_handle.setMaximumSize(QtCore.QSize(16, 16))
        self.drag_handle.setCursor(QtCore.Qt.OpenHandCursor)
        self.drag_handle.setText("")
        self.drag_handle.setPixmap(
            QtGui.QPixmap(":/tk_multi_publish2/drag_handle.png"))
        self.drag_handle.setScaledContents(True)
        self.drag_handle.setObjectName("drag_handle")
        self.horizontalLayout_2.addWidget(self.drag_handle)
        self.handle_stack.addWidget(self.drag)
        self.lock = QtGui.QWidget()
        self.lock.setObjectName("lock")
        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.lock)
        self.horizontalLayout_3.setSpacing(0)
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.locked_handle = QtGui.QLabel(self.lock)
        self.locked_handle.setMinimumSize(QtCore.QSize(16, 16))
        self.locked_handle.setMaximumSize(QtCore.QSize(16, 16))
        self.locked_handle.setText("")
        self.locked_handle.setScaledContents(True)
        self.locked_handle.setObjectName("locked_handle")
        self.horizontalLayout_3.addWidget(self.locked_handle)
        self.handle_stack.addWidget(self.lock)
        self.horizontalLayout.addWidget(self.handle_stack)
        self.status = QtGui.QToolButton(self.frame)
        self.status.setMinimumSize(QtCore.QSize(30, 30))
        self.status.setMaximumSize(QtCore.QSize(30, 30))
        icon1 = QtGui.QIcon()
        icon1.addPixmap(
            QtGui.QPixmap(":/tk_multi_publish2/status_validate.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.status.setIcon(icon1)
        self.status.setIconSize(QtCore.QSize(24, 24))
        self.status.setObjectName("status")
        self.horizontalLayout.addWidget(self.status)
        self.checkbox = QtGui.QCheckBox(self.frame)
        self.checkbox.setText("")
        self.checkbox.setObjectName("checkbox")
        self.horizontalLayout.addWidget(self.checkbox)
        self.horizontalLayout.setStretch(3, 10)
        self.verticalLayout.addWidget(self.frame)

        self.retranslateUi(ItemWidget)
        self.handle_stack.setCurrentIndex(1)
        QtCore.QMetaObject.connectSlotsByName(ItemWidget)
Example #24
0
 def get_initial_thumbnail(self):
     """
     Get the initial thumbnail to use for the publish
     """
     return QtGui.QPixmap(self._app.execute_hook("hook_thumbnail"))
    def setupUi(self, PublishDetailsForm):
        PublishDetailsForm.setObjectName("PublishDetailsForm")
        PublishDetailsForm.resize(771, 592)
        self.verticalLayout = QtGui.QVBoxLayout(PublishDetailsForm)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout_7 = QtGui.QVBoxLayout()
        self.verticalLayout_7.setSpacing(4)
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.items_title_label = QtGui.QLabel(PublishDetailsForm)
        self.items_title_label.setStyleSheet("#items_title_label {\n"
                                             "font-size: 14px\n"
                                             "}")
        self.items_title_label.setIndent(4)
        self.items_title_label.setObjectName("items_title_label")
        self.verticalLayout_7.addWidget(self.items_title_label)
        self.publishes_stacked_widget = QtGui.QStackedWidget(
            PublishDetailsForm)
        self.publishes_stacked_widget.setStyleSheet("")
        self.publishes_stacked_widget.setObjectName("publishes_stacked_widget")
        self.publishes_page = QtGui.QWidget()
        self.publishes_page.setObjectName("publishes_page")
        self.horizontalLayout_7 = QtGui.QHBoxLayout(self.publishes_page)
        self.horizontalLayout_7.setSpacing(0)
        self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.task_scroll = QtGui.QScrollArea(self.publishes_page)
        self.task_scroll.setStyleSheet("#task_scroll {\n"
                                       "border-style: solid;\n"
                                       "border-width: 1px;\n"
                                       "border-radius: 2px;\n"
                                       "border-color: rgb(32,32,32);\n"
                                       "}")
        self.task_scroll.setWidgetResizable(True)
        self.task_scroll.setObjectName("task_scroll")
        self.contents = QtGui.QWidget()
        self.contents.setGeometry(QtCore.QRect(0, 0, 98, 28))
        self.contents.setObjectName("contents")
        self.task_scroll.setWidget(self.contents)
        self.horizontalLayout_7.addWidget(self.task_scroll)
        self.publishes_stacked_widget.addWidget(self.publishes_page)
        self.no_publishes_page = QtGui.QWidget()
        self.no_publishes_page.setStyleSheet("")
        self.no_publishes_page.setObjectName("no_publishes_page")
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.no_publishes_page)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.no_publishes_frame = QtGui.QFrame(self.no_publishes_page)
        self.no_publishes_frame.setStyleSheet("#no_publishes_frame {\n"
                                              "border-style: solid;\n"
                                              "border-width: 1px;\n"
                                              "border-radius: 2px;\n"
                                              "border-color: rgb(32,32,32);\n"
                                              "}")
        self.no_publishes_frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.no_publishes_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.no_publishes_frame.setObjectName("no_publishes_frame")
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.no_publishes_frame)
        self.verticalLayout_3.setSpacing(0)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        spacerItem = QtGui.QSpacerItem(0, 88, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.verticalLayout_3.addItem(spacerItem)
        self.horizontalLayout_9 = QtGui.QHBoxLayout()
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        spacerItem1 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_9.addItem(spacerItem1)
        self.label_3 = QtGui.QLabel(self.no_publishes_frame)
        self.label_3.setAlignment(QtCore.Qt.AlignCenter)
        self.label_3.setWordWrap(True)
        self.label_3.setObjectName("label_3")
        self.horizontalLayout_9.addWidget(self.label_3)
        spacerItem2 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_9.addItem(spacerItem2)
        self.verticalLayout_3.addLayout(self.horizontalLayout_9)
        spacerItem3 = QtGui.QSpacerItem(0, 88, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Expanding)
        self.verticalLayout_3.addItem(spacerItem3)
        self.verticalLayout_2.addWidget(self.no_publishes_frame)
        self.publishes_stacked_widget.addWidget(self.no_publishes_page)
        self.verticalLayout_7.addWidget(self.publishes_stacked_widget)
        self.horizontalLayout.addLayout(self.verticalLayout_7)
        self.verticalLayout_5 = QtGui.QVBoxLayout()
        self.verticalLayout_5.setSpacing(4)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.info_title_label = QtGui.QLabel(PublishDetailsForm)
        self.info_title_label.setStyleSheet("#info_title_label {\n"
                                            "font-size: 14px\n"
                                            "}")
        self.info_title_label.setIndent(4)
        self.info_title_label.setObjectName("info_title_label")
        self.verticalLayout_5.addWidget(self.info_title_label)
        self.info_frame = QtGui.QFrame(PublishDetailsForm)
        self.info_frame.setStyleSheet("#info_frame {\n"
                                      "border-style: solid;\n"
                                      "border-width: 1px;\n"
                                      "border-radius: 2px;\n"
                                      "border-color: rgb(32,32,32);\n"
                                      "}")
        self.info_frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.info_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.info_frame.setObjectName("info_frame")
        self.verticalLayout_6 = QtGui.QVBoxLayout(self.info_frame)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.task_header_label = QtGui.QLabel(self.info_frame)
        self.task_header_label.setStyleSheet("QLabel {\n"
                                             "font-size: 12px;\n"
                                             "}")
        self.task_header_label.setObjectName("task_header_label")
        self.verticalLayout_6.addWidget(self.task_header_label)
        self.sg_task_stacked_widget = QtGui.QStackedWidget(self.info_frame)
        self.sg_task_stacked_widget.setObjectName("sg_task_stacked_widget")
        self.sg_task_menu_page = QtGui.QWidget()
        self.sg_task_menu_page.setObjectName("sg_task_menu_page")
        self.horizontalLayout_4 = QtGui.QHBoxLayout(self.sg_task_menu_page)
        self.horizontalLayout_4.setSpacing(0)
        self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.sg_task_combo = QtGui.QComboBox(self.sg_task_menu_page)
        self.sg_task_combo.setObjectName("sg_task_combo")
        self.horizontalLayout_4.addWidget(self.sg_task_combo)
        self.sg_task_stacked_widget.addWidget(self.sg_task_menu_page)
        self.sg_task_label_page = QtGui.QWidget()
        self.sg_task_label_page.setObjectName("sg_task_label_page")
        self.horizontalLayout_5 = QtGui.QHBoxLayout(self.sg_task_label_page)
        self.horizontalLayout_5.setSpacing(0)
        self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.sg_task_label = QtGui.QLabel(self.sg_task_label_page)
        self.sg_task_label.setIndent(12)
        self.sg_task_label.setObjectName("sg_task_label")
        self.horizontalLayout_5.addWidget(self.sg_task_label)
        self.sg_task_stacked_widget.addWidget(self.sg_task_label_page)
        self.verticalLayout_6.addWidget(self.sg_task_stacked_widget)
        spacerItem4 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Fixed)
        self.verticalLayout_6.addItem(spacerItem4)
        self.label_7 = QtGui.QLabel(self.info_frame)
        self.label_7.setStyleSheet("QLabel {\n" "font-size: 12px;\n" "}")
        self.label_7.setObjectName("label_7")
        self.verticalLayout_6.addWidget(self.label_7)
        self.horizontalLayout_6 = QtGui.QHBoxLayout()
        self.horizontalLayout_6.setSpacing(0)
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.thumbnail_frame = QtGui.QFrame(self.info_frame)
        self.thumbnail_frame.setStyleSheet("#thumbnail_frame {\n"
                                           "border-style: solid;\n"
                                           "border-color: rgb(32,32,32);\n"
                                           "border-width: 1px;\n"
                                           "border-radius: 3px;\n"
                                           "background: rgb(117,117,117);\n"
                                           "}")
        self.thumbnail_frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.thumbnail_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.thumbnail_frame.setObjectName("thumbnail_frame")
        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.thumbnail_frame)
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.thumbnail_widget = ThumbnailWidget(self.thumbnail_frame)
        self.thumbnail_widget.setMinimumSize(QtCore.QSize(200, 130))
        self.thumbnail_widget.setMaximumSize(QtCore.QSize(200, 130))
        self.thumbnail_widget.setStyleSheet("")
        self.thumbnail_widget.setObjectName("thumbnail_widget")
        self.horizontalLayout_3.addWidget(self.thumbnail_widget)
        self.horizontalLayout_6.addWidget(self.thumbnail_frame)
        spacerItem5 = QtGui.QSpacerItem(0, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_6.addItem(spacerItem5)
        self.verticalLayout_6.addLayout(self.horizontalLayout_6)
        spacerItem6 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Fixed)
        self.verticalLayout_6.addItem(spacerItem6)
        self.label_8 = QtGui.QLabel(self.info_frame)
        self.label_8.setStyleSheet("QLabel {\n" "font-size: 12px;\n" "}")
        self.label_8.setObjectName("label_8")
        self.verticalLayout_6.addWidget(self.label_8)
        self.comments_edit = QtGui.QTextEdit(self.info_frame)
        self.comments_edit.setMinimumSize(QtCore.QSize(300, 0))
        self.comments_edit.setObjectName("comments_edit")
        self.verticalLayout_6.addWidget(self.comments_edit)
        self.verticalLayout_6.setStretch(7, 1)
        self.verticalLayout_5.addWidget(self.info_frame)
        self.verticalLayout_5.setStretch(1, 1)
        self.horizontalLayout.addLayout(self.verticalLayout_5)
        self.horizontalLayout.setStretch(0, 1)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        spacerItem7 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem7)
        self.cancel_btn = QtGui.QPushButton(PublishDetailsForm)
        self.cancel_btn.setMinimumSize(QtCore.QSize(80, 0))
        self.cancel_btn.setObjectName("cancel_btn")
        self.horizontalLayout_2.addWidget(self.cancel_btn)
        self.publish_btn = QtGui.QPushButton(PublishDetailsForm)
        self.publish_btn.setMinimumSize(QtCore.QSize(80, 0))
        self.publish_btn.setObjectName("publish_btn")
        self.horizontalLayout_2.addWidget(self.publish_btn)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.verticalLayout.setStretch(0, 1)

        self.retranslateUi(PublishDetailsForm)
        self.publishes_stacked_widget.setCurrentIndex(1)
        self.sg_task_stacked_widget.setCurrentIndex(1)
        QtCore.QMetaObject.connectSlotsByName(PublishDetailsForm)
Example #26
0
    def setupUi(self, SubmissionCompleteDialog):
        SubmissionCompleteDialog.setObjectName("SubmissionCompleteDialog")
        SubmissionCompleteDialog.resize(569, 237)
        self.verticalLayout = QtGui.QVBoxLayout(SubmissionCompleteDialog)
        self.verticalLayout.setContentsMargins(20, -1, 20, -1)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.label = QtGui.QLabel(SubmissionCompleteDialog)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy)
        self.label.setText("")
        self.label.setPixmap(QtGui.QPixmap(":/tk-flame-export/success.png"))
        self.label.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft
                                | QtCore.Qt.AlignTop)
        self.label.setObjectName("label")
        self.horizontalLayout_3.addWidget(self.label)
        self.verticalLayout_2 = QtGui.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.label_3 = QtGui.QLabel(SubmissionCompleteDialog)
        self.label_3.setStyleSheet("QLabel { font-size: 18px; }")
        self.label_3.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft
                                  | QtCore.Qt.AlignTop)
        self.label_3.setObjectName("label_3")
        self.verticalLayout_2.addWidget(self.label_3)
        self.status = QtGui.QLabel(SubmissionCompleteDialog)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.status.sizePolicy().hasHeightForWidth())
        self.status.setSizePolicy(sizePolicy)
        self.status.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft
                                 | QtCore.Qt.AlignTop)
        self.status.setWordWrap(True)
        self.status.setObjectName("status")
        self.verticalLayout_2.addWidget(self.status)
        self.horizontalLayout_3.addLayout(self.verticalLayout_2)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtGui.QSpacerItem(368, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.submit = QtGui.QPushButton(SubmissionCompleteDialog)
        self.submit.setObjectName("submit")
        self.horizontalLayout.addWidget(self.submit)
        self.verticalLayout.addLayout(self.horizontalLayout)

        self.retranslateUi(SubmissionCompleteDialog)
        QtCore.QMetaObject.connectSlotsByName(SubmissionCompleteDialog)
Example #27
0
            QtGui.QMessageBox.information(None, "Unable To Snapshot!", msg)

            # try to launch "Shotgun Save As" command if we have it:
            save_as_cmd = tank.platform.current_engine().commands.get(
                "Shotgun Save As...")
            if not save_as_cmd:
                # try old name, just in case
                save_as_cmd = tank.platform.current_engine().commands.get(
                    "Tank Save As...")
            if save_as_cmd:
                save_as_cmd["callback"]()

            return False

        # get initial thumbnail if there is one:
        thumbnail = QtGui.QPixmap(self._app.execute_hook("hook_thumbnail"))

        # show snapshot dialog as modal dialog:
        self._last_snapshot_result = None

        from .snapshot_form import SnapshotForm
        (res, snapshot_widget) = self._app.engine.show_modal(
            "Snapshot", self._app, SnapshotForm, work_file_path, thumbnail,
            self._setup_snapshot_ui)

        snapshot_success = (self._last_snapshot_result != None)

        # special case return code to show history dialog:
        if res == SnapshotForm.SHOW_HISTORY_RETURN_CODE:
            # snapshot history dialog is modeless so this won't block!
            self.show_snapshot_history_dlg()
Example #28
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(588, 285)
        self.verticalLayout = QtGui.QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.label_6 = QtGui.QLabel(Dialog)
        self.label_6.setObjectName("label_6")
        self.horizontalLayout_3.addWidget(self.label_6)
        self.sel_node = QtGui.QLineEdit(Dialog)
        self.sel_node.setObjectName("sel_node")
        self.horizontalLayout_3.addWidget(self.sel_node)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.groupBox_3 = QtGui.QGroupBox(Dialog)
        self.groupBox_3.setObjectName("groupBox_3")
        self.horizontalLayout = QtGui.QHBoxLayout(self.groupBox_3)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout_8 = QtGui.QVBoxLayout()
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.label_5 = QtGui.QLabel(self.groupBox_3)
        self.label_5.setObjectName("label_5")
        self.verticalLayout_8.addWidget(self.label_5)
        self.start_frame = QtGui.QLineEdit(self.groupBox_3)
        self.start_frame.setText("")
        self.start_frame.setObjectName("start_frame")
        self.verticalLayout_8.addWidget(self.start_frame)
        self.horizontalLayout.addLayout(self.verticalLayout_8)
        self.verticalLayout_9 = QtGui.QVBoxLayout()
        self.verticalLayout_9.setObjectName("verticalLayout_9")
        self.label_7 = QtGui.QLabel(self.groupBox_3)
        self.label_7.setObjectName("label_7")
        self.verticalLayout_9.addWidget(self.label_7)
        self.end_frame = QtGui.QLineEdit(self.groupBox_3)
        self.end_frame.setObjectName("end_frame")
        self.verticalLayout_9.addWidget(self.end_frame)
        self.horizontalLayout.addLayout(self.verticalLayout_9)
        self.verticalLayout.addWidget(self.groupBox_3)
        self.sg_check = QtGui.QCheckBox(Dialog)
        self.sg_check.setChecked(True)
        self.sg_check.setObjectName("sg_check")
        self.verticalLayout.addWidget(self.sg_check)
        self.output_btn = QtGui.QPushButton(Dialog)
        self.output_btn.setObjectName("output_btn")
        self.verticalLayout.addWidget(self.output_btn)
        self.farm_btn = QtGui.QPushButton(Dialog)
        self.farm_btn.setObjectName("farm_btn")
        self.verticalLayout.addWidget(self.farm_btn)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
Example #29
0
    def execute_command(self, cmd_key, args):
        """
        Executes a given command.
        """
        cb = self.commands[cmd_key]["callback"]

        # make sure the number of parameters to the command are correct
        cb_arg_spec = inspect.getargspec(cb)
        cb_arg_list = cb_arg_spec[0]
        cb_var_args = cb_arg_spec[1]

        if hasattr(cb, "__self__"):
            # first argument to cb will be class instance:
            cb_arg_list = cb_arg_list[1:]

        # ensure the correct/minimum number of arguments have been passed:
        have_expected_args = False
        if cb_var_args:
            have_expected_args = (len(args) >= len(cb_arg_list))
        else:
            have_expected_args = (len(args) == len(cb_arg_list))

        if not have_expected_args:
            expected_args = list(cb_arg_list)
            if cb_var_args:
                expected_args.append("*%s" % cb_var_args)
            raise TankError(
                "Cannot run command! Expected command arguments (%s)" %
                ", ".join(expected_args))

        if not self._has_qt:
            # QT not available - just run the command straight
            return cb(*args)
        else:
            from tank.platform.qt import QtCore, QtGui

            # we got QT capabilities. Start a QT app and fire the command into the app
            tk_shell = self.import_module("tk_shell")
            t = tk_shell.Task(self, cb, args)

            # start up our QApp now, if none is already running
            qt_application = None
            if not QtGui.qApp:
                # We need to clear Qt library paths on Linux if KDE is the active environment.
                # This resolves issues with mismatched Qt libraries between the OS and the
                # application being launched if it is a DCC that comes with a bundled Qt.
                if sys.platform == "linux2" and os.environ.get(
                        "KDE_FULL_SESSION") is not None:
                    QtGui.QApplication.setLibraryPaths([])

                qt_application = QtGui.QApplication([])
                qt_application.setWindowIcon(QtGui.QIcon(self.icon_256))
                self._initialize_dark_look_and_feel()

            # if we didn't start the QApplication here, let the responsability
            # to run the exec loop and quit to the initial creator of the QApplication
            if qt_application:
                # when the QApp starts, initialize our task code
                QtCore.QTimer.singleShot(0, t.run_command)
                # and ask the main app to exit when the task emits its finished signal
                t.finished.connect(qt_application.quit)

                # start the application loop. This will block the process until the task
                # has completed - this is either triggered by a main window closing or
                # byt the finished signal being called from the task class above.
                qt_application.exec_()
            else:
                # we can run the command now, as the QApp is already started
                t.run_command()
Example #30
0
    def show_snapshot_dlg(self):
        """
        Perform a snapshot of the current work file with the help of the UI
        """

        # get current work file path:
        try:
            work_file_path = self.get_current_file_path()
        except Exception as e:
            msg = ("Failed to get the current file path:\n\n"
                   "%s\n\n"
                   "Unable to continue!" % e)
            QtGui.QMessageBox.critical(None, "Snapshot Error!", msg)
            return False

        # current scene path must match work template and contain version:
        if not work_file_path or not self._work_template.validate(
                work_file_path):
            msg = "Unable to snapshot!\n\nPlease save the scene as a valid work file before continuing"
            QtGui.QMessageBox.information(None, "Unable To Snapshot!", msg)

            # try to launch "Shotgun Save As" command if we have it:
            save_as_cmd = tank.platform.current_engine().commands.get(
                "Shotgun Save As...")
            if not save_as_cmd:
                # try old name, just in case
                save_as_cmd = tank.platform.current_engine().commands.get(
                    "Tank Save As...")
            if save_as_cmd:
                save_as_cmd["callback"]()

            return False

        # get initial thumbnail if there is one:
        thumbnail = QtGui.QPixmap(self._app.execute_hook("hook_thumbnail"))

        # show snapshot dialog as modal dialog:
        self._last_snapshot_result = None

        from .snapshot_form import SnapshotForm

        (res, snapshot_widget) = self._app.engine.show_modal(
            "Snapshot",
            self._app,
            SnapshotForm,
            work_file_path,
            thumbnail,
            self._setup_snapshot_ui,
        )

        snapshot_success = self._last_snapshot_result != None

        # special case return code to show history dialog:
        if res == SnapshotForm.SHOW_HISTORY_RETURN_CODE:
            # snapshot history dialog is modeless so this won't block!
            self.show_snapshot_history_dlg()

        # disconnect from the widget to allow the widget to be cleaned up:
        snapshot_widget.snapshot.disconnect(self._do_snapshot_from_ui)

        # return if snapshot was actually done
        return snapshot_success