def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(750, 598)
        self.verticalLayout = QtGui.QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.left_browser = ShotgunBrowserWidget(Dialog)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.left_browser.sizePolicy().hasHeightForWidth())
        self.left_browser.setSizePolicy(sizePolicy)
        self.left_browser.setObjectName("left_browser")
        self.horizontalLayout.addWidget(self.left_browser)
        self.verticalLayout_2 = QtGui.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.verticalLayout_2.addItem(spacerItem)
        self.pushButton = QtGui.QPushButton(Dialog)
        self.pushButton.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/res/checkout.png"), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        self.pushButton.setIcon(icon)
        self.pushButton.setIconSize(QtCore.QSize(64, 64))
        self.pushButton.setFlat(True)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout_2.addWidget(self.pushButton)
        self.pushButton_2 = QtGui.QPushButton(Dialog)
        self.pushButton_2.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/res/checkin.png"), QtGui.QIcon.Normal,
                        QtGui.QIcon.Off)
        self.pushButton_2.setIcon(icon1)
        self.pushButton_2.setIconSize(QtCore.QSize(64, 64))
        self.pushButton_2.setFlat(True)
        self.pushButton_2.setObjectName("pushButton_2")
        self.verticalLayout_2.addWidget(self.pushButton_2)
        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Expanding)
        self.verticalLayout_2.addItem(spacerItem1)
        self.horizontalLayout.addLayout(self.verticalLayout_2)
        self.right_browser = FilesystemBrowserWidget(Dialog)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.right_browser.sizePolicy().hasHeightForWidth())
        self.right_browser.setSizePolicy(sizePolicy)
        self.right_browser.setObjectName("right_browser")
        self.horizontalLayout.addWidget(self.right_browser)
        self.verticalLayout.addLayout(self.horizontalLayout)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
Example #2
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

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

        # hide the overlays
        self.ui.load_overlay.setVisible(False)
        self.ui.message_overlay.setVisible(False)

        self._app = None
        self._worker = None
        self._current_work_id = None
        self._selected_item = None
        self._selected_items = []
        self._dynamic_widgets = []
        self._multi_select = False
        self._search = True

        # spinner
        self._spin_icons = []
        self._spin_icons.append(QtGui.QPixmap(":/res/progress_bar_1.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/progress_bar_2.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/progress_bar_3.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/progress_bar_4.png"))
        self._timer = QtCore.QTimer(self)
        self._timer.timeout.connect(self._update_spinner)
        self._current_spinner_index = 0

        # search
        self.ui.search.textEdited.connect(self._on_search_text_changed)
Example #3
0
    def __init__(self, app, worker, parent=None):
        ListBase.__init__(self, app, worker, parent)

        # set up the UI
        self.ui = Ui_Item() 
        self.ui.setupUi(self)
        self._selected = False
        self._worker = worker
        self._worker_uid = None
        
        # spinner
        self._spin_icons = []
        self._spin_icons.append(QtGui.QPixmap(":/res/thumb_loading_1.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/thumb_loading_2.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/thumb_loading_3.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/thumb_loading_4.png")) 
        
        self._timer = QtCore.QTimer(self)
        self._timer.timeout.connect( self._update_spinner )
        self._current_spinner_index = 0
        
        # set up styles for selected/unselected states
        self._unselected_style = {
                "border-radius":"2px",
                "border-style":"solid",
                "border-width":"1px",
                "border-color":"rgb(0,0,0,48)",
                "background-color":"rgb(0,0,0,48)"
        }
        self._selected_style = self._unselected_style.copy()
        self._selected_style["background-color"] = "rgb(112, 112, 112)"
        self._selected_style["border-color"] = "rgb(112, 112, 112)"
        
        self.set_selected(False)
Example #4
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

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

        # hide the overlays
        self.ui.main_pages.setCurrentWidget(self.ui.items_page)

        self._app = None
        self._worker = None
        self._current_work_id = None
        self._dynamic_widgets = []
        self._multi_select = False
        self._search = True

        # spinner
        self._spin_icons = []
        self._spin_icons.append(QtGui.QPixmap(":/res/progress_bar_1.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/progress_bar_2.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/progress_bar_3.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/progress_bar_4.png"))
        self._timer = QtCore.QTimer(self)
        self._timer.timeout.connect(self._update_spinner)
        self._current_spinner_index = 0

        # search
        self.ui.search.textEdited.connect(self._on_search_box_input)

        # load all items
        self.ui.load_all_top.clicked.connect(self._on_load_all_clicked)
        self.ui.load_all_bottom.clicked.connect(self._on_load_all_clicked)
        # reset the deferred loading counters and settings
        self._reset_load_more()

        # style:
        self._title_base_style = {
            "border": "none",
            "border-color": "rgb(32,32,32)",
            "border-top-left-radius": "3px",
            "border-top-right-radius": "3px",
            "border-bottom-left-radius": "0px",
            "border-bottom-right-radius": "0px"
        }
        self._title_styles = {
            "gradient": {
                "background":
                "qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(97, 97, 97, 255), stop:1 rgba(49, 49, 49, 255));"
            },
            "none": {}
        }
        self._title_margins = {
            "gradient": [12, 3, 12, 3],
            "none": [3, 3, 3, 3]
        }

        self._current_title_style = "none"
        self.title_style = "gradient"
Example #5
0
    def setupUi(self, WorkAreaDialog):
        WorkAreaDialog.setObjectName("WorkAreaDialog")
        WorkAreaDialog.resize(443, 467)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/tk_multi_infopanel/rings.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        WorkAreaDialog.setWindowIcon(icon)
        self.verticalLayout = QtGui.QVBoxLayout(WorkAreaDialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.top_frame = QtGui.QFrame(WorkAreaDialog)
        self.top_frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.top_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.top_frame.setObjectName("top_frame")
        self.horizontalLayout = QtGui.QHBoxLayout(self.top_frame)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.icon = QtGui.QLabel(self.top_frame)
        self.icon.setMinimumSize(QtCore.QSize(40, 40))
        self.icon.setMaximumSize(QtCore.QSize(40, 40))
        self.icon.setText("")
        self.icon.setPixmap(
            QtGui.QPixmap(":/tk_multi_infopanel/pin_large.png"))
        self.icon.setScaledContents(True)
        self.icon.setObjectName("icon")
        self.horizontalLayout.addWidget(self.icon)
        self.top_text = QtGui.QLabel(self.top_frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.top_text.sizePolicy().hasHeightForWidth())
        self.top_text.setSizePolicy(sizePolicy)
        self.top_text.setObjectName("top_text")
        self.horizontalLayout.addWidget(self.top_text)
        self.verticalLayout.addWidget(self.top_frame)
        self.task_list = QtGui.QListWidget(WorkAreaDialog)
        self.task_list.setObjectName("task_list")
        self.verticalLayout.addWidget(self.task_list)
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem)
        self.cancel = QtGui.QPushButton(WorkAreaDialog)
        self.cancel.setObjectName("cancel")
        self.horizontalLayout_2.addWidget(self.cancel)
        self.ok = QtGui.QPushButton(WorkAreaDialog)
        self.ok.setObjectName("ok")
        self.horizontalLayout_2.addWidget(self.ok)
        self.verticalLayout.addLayout(self.horizontalLayout_2)

        self.retranslateUi(WorkAreaDialog)
        QtCore.QObject.connect(self.cancel, QtCore.SIGNAL("clicked()"),
                               WorkAreaDialog.reject)
        QtCore.QObject.connect(self.ok, QtCore.SIGNAL("clicked()"),
                               WorkAreaDialog.accept)
        QtCore.QMetaObject.connectSlotsByName(WorkAreaDialog)
Example #6
0
    def __init__(self, app, worker, parent=None):
        """
        Construction
        """
        browser_widget.ListItem.__init__(self, app, worker, parent)

        self._green_pixmap = QtGui.QPixmap(":/res/green_bullet.png")
        self._red_pixmap = QtGui.QPixmap(":/res/red_bullet.png")
        self._latest_version = None
        self._is_latest = None
Example #7
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(8, 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.setMinimumSize(QtCore.QSize(1, 1))
        self.header.setAccessibleName("")
        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)
Example #8
0
 def _on_worker_task_complete(self, uid, data):
     if uid != self._worker_uid:
         return
         
     # stop spin
     self._timer.stop()
         
     # set thumbnail! 
     try:
         path = data.get("thumb_path")
         self.ui.thumbnail.setPixmap(QtGui.QPixmap(path))
     except:
         self.ui.thumbnail.setPixmap(QtGui.QPixmap(":/res/thumb_empty.png"))
Example #9
0
    def _set_collapsed(self, collapse):
        """
        Set collapsed state of the control
        """
        # show controls
        self._ui.item_frame.setVisible(not collapse)
        self._ui.line.setVisible(not collapse)

        # set icon:
        self._ui.expand_label.setPixmap([
            QtGui.QPixmap(":/res/group_collapse.png"),
            QtGui.QPixmap(":/res/group_expand.png")
        ][collapse])

        self._is_collapsed = collapse
Example #10
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(431, 392)
        self.horizontalLayout = QtGui.QHBoxLayout(Dialog)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.logo_example = QtGui.QLabel(Dialog)
        self.logo_example.setText("")
        self.logo_example.setPixmap(QtGui.QPixmap(":/res/sg_logo.png"))
        self.logo_example.setObjectName("logo_example")
        self.horizontalLayout.addWidget(self.logo_example)
        self.context = QtGui.QLabel(Dialog)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.context.sizePolicy().hasHeightForWidth())
        self.context.setSizePolicy(sizePolicy)
        self.context.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft
                                  | QtCore.Qt.AlignVCenter)
        self.context.setObjectName("context")
        self.horizontalLayout.addWidget(self.context)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
    def __init__(self, parent):
        """
        :param parent: Widget to attach the overlay to
        :type parent: :class:`PySide.QtGui.QWidget`
        """
        QtGui.QWidget.__init__(self, parent)

        # hook up a listener to the parent window so we
        # can resize the overlay at the same time as the parent window
        # is being resized.
        filter = ResizeEventFilter(parent)
        filter.resized.connect(self._on_parent_resized)
        parent.installEventFilter(filter)

        self._shotgun_spinning_widget = ShotgunSpinningWidget(self)

        # make it transparent
        self.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)

        # turn off the widget
        self.setVisible(False)
        self._mode = self.MODE_OFF

        self._message_pixmap = None
        self._message = None
        self._sg_icon = QtGui.QPixmap(":/tk_framework_qtwidgets.overlay_widget/sg_logo.png")
Example #12
0
    def __init__(self, parent):
        """
        :param parent: Widget to attach the overlay to
        :type parent: :class:`PySide.QtGui.QWidget`
        """
        QtGui.QWidget.__init__(self, parent)

        # turn off the widget
        self.setVisible(False)
        self._mode = self.MODE_OFF

        # setup spinner timer
        self._timer = QtCore.QTimer(self)
        self._timer.timeout.connect(self._on_animation)

        # This is the current spin angle
        self._spin_angle = 0
        # This is where we need to scroll to.
        self._spin_angle_to = 0
        # This is where we were told last time where we need to spin to
        self._previous_spin_angle_to = 0
        # This counts how many times we've ticked in the last second to know how big the heartbeat
        # needs to be.
        self._heartbeat = 0

        self._sg_icon = QtGui.QPixmap(
            ":/tk_framework_qtwidgets.overlay_widget/sg_logo.png")
Example #13
0
    def setupUi(self, BatchRenderDialog):
        BatchRenderDialog.setObjectName("BatchRenderDialog")
        BatchRenderDialog.resize(352, 398)
        self.verticalLayout = QtGui.QVBoxLayout(BatchRenderDialog)
        self.verticalLayout.setContentsMargins(20, 20, 20, -1)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label_2 = QtGui.QLabel(BatchRenderDialog)
        self.label_2.setText("")
        self.label_2.setPixmap(QtGui.QPixmap(":/tk-flame-export/batch_render_splash.png"))
        self.label_2.setObjectName("label_2")
        self.verticalLayout.addWidget(self.label_2)
        self.comments = QtGui.QPlainTextEdit(BatchRenderDialog)
        self.comments.setMinimumSize(QtCore.QSize(300, 100))
        self.comments.setObjectName("comments")
        self.verticalLayout.addWidget(self.comments)
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setSpacing(4)
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtGui.QSpacerItem(368, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.cancel = QtGui.QPushButton(BatchRenderDialog)
        self.cancel.setObjectName("cancel")
        self.horizontalLayout.addWidget(self.cancel)
        self.submit = QtGui.QPushButton(BatchRenderDialog)
        self.submit.setObjectName("submit")
        self.horizontalLayout.addWidget(self.submit)
        self.verticalLayout.addLayout(self.horizontalLayout)

        self.retranslateUi(BatchRenderDialog)
        QtCore.QMetaObject.connectSlotsByName(BatchRenderDialog)
Example #14
0
    def __init__(self, parent, overlay_parent_widget):
        """ Constructor """
        ShotgunModel.__init__(self, parent, download_thumbs=True)

        # override the default connection to use one that is tied to the current login
        connection = ShotgunLogin.get_instance_for_namespace("tk-desktop").get_connection()

        self.set_shotgun_connection(connection)

        # load up the thumbnail to use when there is none set in Shotgun
        self._missing_thumbnail_project = QtGui.QPixmap(":/tk-desktop/missing_thumbnail_project.png")

        # load up the cached data for the model
        filters = [
            ["name", "is_not", "Template Project"],
            ["archived", "is_not", True],
        ]
        interesting_fields = [
            "name",
            "sg_status",
            "current_user_favorite",
            "last_accessed_by_current_user",
            "sg_description",
        ]
        ShotgunModel._load_data(
            self,
            entity_type="Project",
            filters=filters,
            hierarchy=["name"],
            fields=interesting_fields,
            order=[],
        )

        # and force a refresh of the data from Shotgun
        self._refresh_data()
Example #15
0
    def setupUi(self, SubmitDialog):
        SubmitDialog.setObjectName("SubmitDialog")
        SubmitDialog.resize(475, 559)
        self.verticalLayout = QtGui.QVBoxLayout(SubmitDialog)
        self.verticalLayout.setContentsMargins(20, -1, 20, -1)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label = QtGui.QLabel(SubmitDialog)
        self.label.setText("")
        self.label.setPixmap(QtGui.QPixmap(":/tk-flame-review/ui_splash.png"))
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.comments = QtGui.QPlainTextEdit(SubmitDialog)
        self.comments.setMinimumSize(QtCore.QSize(300, 100))
        self.comments.setObjectName("comments")
        self.verticalLayout.addWidget(self.comments)
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtGui.QSpacerItem(
            368, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum
        )
        self.horizontalLayout.addItem(spacerItem)
        self.cancel = QtGui.QPushButton(SubmitDialog)
        self.cancel.setObjectName("cancel")
        self.horizontalLayout.addWidget(self.cancel)
        self.submit = QtGui.QPushButton(SubmitDialog)
        self.submit.setObjectName("submit")
        self.horizontalLayout.addWidget(self.submit)
        self.verticalLayout.addLayout(self.horizontalLayout)

        self.retranslateUi(SubmitDialog)
        QtCore.QMetaObject.connectSlotsByName(SubmitDialog)
Example #16
0
    def __init__(self, parent, overlay_parent_widget):
        """ Constructor """
        ShotgunModel.__init__(self, parent, download_thumbs=True)

        # load up the thumbnail to use when there is none set in Shotgun
        self._missing_thumbnail_project = QtGui.QPixmap(
            ":/tk-desktop/missing_thumbnail_project.png"
        )

        # load up the cached data for the model
        filters = [["name", "is_not", "Template Project"], ["archived", "is_not", True]]
        # Template projects is a Shotgun 6.0 feature, so make sure it exists
        # on the server before filtering on that value.
        if SgProjectModel.supports_project_templates():
            filters.append(["is_template", "is_not", True])

        interesting_fields = [
            "name",
            "sg_status",
            "current_user_favorite",
            "last_accessed_by_current_user",
            "sg_description",
        ]
        ShotgunModel._load_data(
            self,
            entity_type="Project",
            filters=filters,
            hierarchy=["name"],
            fields=interesting_fields,
            order=[],
        )

        # and force a refresh of the data from Shotgun
        self._refresh_data()
Example #17
0
    def get_initial_thumbnail(self):
        """
        Get the initial thumbnail to use for the publish.

        :returns: A :class:`QtGui.QPixmap` instance or None if the thumbnail 
                  generation failed.
        """
        try:
            thumb_path = self._app.execute_hook("hook_thumbnail")
            # If the hook didn't return anything, don't try to build a QPixmap
            # from it.
            if thumb_path:
                pixmap = QtGui.QPixmap(thumb_path)
                if pixmap.isNull():
                    # Log debug information: sometimes the jpeg format is not
                    # available from PySide, which can explain why no thumbnail
                    # appears in the UI.
                    self._app.log_debug("Unable to build a pixmap from %s" %
                                        thumb_path)
                    self._app.log_debug(
                        "Supported formats are %s" %
                        QtGui.QImageReader.supportedImageFormats())
                return pixmap
        except Exception, e:
            logger.warning(
                "Unable to generate initial thumbnail because of the following error:"
            )
            # Log the exception + traceback for debug purpose.
            logger.exception(e)
Example #18
0
    def _set_primary_task(self, task):
        """
        Set the primary task and update the UI accordingly
        """
        self._primary_task = task

        # connect to the primary tasks modified signal so that we can
        # update the UI if something changes.
        self._primary_task.modified.connect(self._on_primary_task_modified)
        
        # update UI for primary task:
        icon_path = self._primary_task.output.icon_path
        if os.path.isfile(icon_path) and os.path.exists(icon_path):
            icon = QtGui.QPixmap(icon_path)
            if not icon.isNull():
                self._ui.primary_icon_label.setPixmap(icon)
        
        # build details text and set:            
        lines = []
        name_str = self._primary_task.output.display_name
        if self._primary_task.item.name:
            name_str = "%s - %s" % (name_str, self._primary_task.item.name)
        lines.append("<span style='font-size: 16px'}><b>%s</b></span><span style='font-size: 12px'}>" % (name_str))
        if self._primary_task.output.description:
            lines.append("%s" % self._primary_task.output.description)
        if self._primary_task.item.description:
            lines.append("%s" % self._primary_task.item.description)
        details_txt = "%s</span>" % "<br>".join(lines) 
        self._ui.primary_details_label.setText(details_txt)
        
        # update errors text:
        self.__update_primary_errors()
    def __init__(self, parent=None):
        """
        Constructor
        """

        QtGui.QWidget.__init__(self, parent)

        # hook up a listener to the parent window so we
        # can resize the overlay at the same time as the parent window
        # is being resized.
        filter = ResizeEventFilter(parent)
        filter.resized.connect(self._on_parent_resized)
        parent.installEventFilter(filter)

        # make it transparent
        self.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)

        # turn off the widget
        self.setVisible(False)
        self._mode = self.MODE_OFF

        # setup spinner timer
        self._timer = QtCore.QTimer(self)
        self._timer.timeout.connect(self._on_animation)
        self._spin_angle = 0

        self._message_pixmap = None
        self._message = None
        self._sg_icon = QtGui.QPixmap(
            ":/tk_framework_shotgunutils.shotgun_model/sg_logo.png")
Example #20
0
    def _on_worker_task_complete(self, uid, data):
        """
        Called when the computation is complete and we should update widget
        with the result
        """
        if uid != self._worker_uid:
            return

        # stop spin
        self._timer.stop()

        # set thumbnail
        if data.get("thumbnail"):
            self.ui.thumbnail.setPixmap(QtGui.QPixmap(data.get("thumbnail")))

        # set light - red or green
        if data["up_to_date"]:
            icon = self._green_pixmap
        else:
            icon = self._red_pixmap
        self.ui.light.setPixmap(icon)

        # figure out if this item should be hidden
        if data["up_to_date"] == True and self._show_green == False:
            self.setVisible(False)
        if data["up_to_date"] == False and self._show_red == False:
            self.setVisible(False)
Example #21
0
    def setupUi(self, SubmissionFailedDialog):
        SubmissionFailedDialog.setObjectName("SubmissionFailedDialog")
        SubmissionFailedDialog.resize(491, 204)
        self.verticalLayout = QtGui.QVBoxLayout(SubmissionFailedDialog)
        self.verticalLayout.setContentsMargins(20, -1, 20, -1)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.label_2 = QtGui.QLabel(SubmissionFailedDialog)
        sizePolicy = QtGui.QSizePolicy(
            QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred
        )
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
        self.label_2.setSizePolicy(sizePolicy)
        self.label_2.setText("")
        self.label_2.setPixmap(QtGui.QPixmap(":/tk-flame-export/failure.png"))
        self.label_2.setObjectName("label_2")
        self.horizontalLayout_3.addWidget(self.label_2)
        self.verticalLayout_3 = QtGui.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.label_3 = QtGui.QLabel(SubmissionFailedDialog)
        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_3.addWidget(self.label_3)
        self.status = QtGui.QLabel(SubmissionFailedDialog)
        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.setTextFormat(QtCore.Qt.RichText)
        self.status.setAlignment(
            QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop
        )
        self.status.setWordWrap(True)
        self.status.setObjectName("status")
        self.verticalLayout_3.addWidget(self.status)
        self.horizontalLayout_3.addLayout(self.verticalLayout_3)
        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(SubmissionFailedDialog)
        self.submit.setObjectName("submit")
        self.horizontalLayout.addWidget(self.submit)
        self.verticalLayout.addLayout(self.horizontalLayout)

        self.retranslateUi(SubmissionFailedDialog)
        QtCore.QMetaObject.connectSlotsByName(SubmissionFailedDialog)
Example #22
0
    def setupUi(self, SimpleNewItemWidget):
        SimpleNewItemWidget.setObjectName("SimpleNewItemWidget")
        SimpleNewItemWidget.resize(182, 46)
        self.horizontalLayout_2 = QtGui.QHBoxLayout(SimpleNewItemWidget)
        self.horizontalLayout_2.setSpacing(8)
        self.horizontalLayout_2.setContentsMargins(20, 0, 0, 0)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.verticalLayout_3 = QtGui.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.user_thumb = UserThumbnail(SimpleNewItemWidget)
        self.user_thumb.setMinimumSize(QtCore.QSize(30, 30))
        self.user_thumb.setMaximumSize(QtCore.QSize(30, 30))
        self.user_thumb.setText("")
        self.user_thumb.setPixmap(QtGui.QPixmap(":/tk_framework_qtwidgets.activity_stream/default_user.png"))
        self.user_thumb.setScaledContents(True)
        self.user_thumb.setAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop)
        self.user_thumb.setObjectName("user_thumb")
        self.verticalLayout_3.addWidget(self.user_thumb)
        self.horizontalLayout_2.addLayout(self.verticalLayout_3)
        self.frame = QtGui.QFrame(SimpleNewItemWidget)
        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.setObjectName("verticalLayout_2")
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.header_left = QtGui.QLabel(self.frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.header_left.sizePolicy().hasHeightForWidth())
        self.header_left.setSizePolicy(sizePolicy)
        self.header_left.setText("")
        self.header_left.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
        self.header_left.setWordWrap(True)
        self.header_left.setObjectName("header_left")
        self.horizontalLayout.addWidget(self.header_left)
        self.date = QtGui.QLabel(self.frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.date.sizePolicy().hasHeightForWidth())
        self.date.setSizePolicy(sizePolicy)
        self.date.setText("")
        self.date.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTop|QtCore.Qt.AlignTrailing)
        self.date.setWordWrap(True)
        self.date.setObjectName("date")
        self.horizontalLayout.addWidget(self.date)
        self.horizontalLayout.setStretch(0, 1)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.horizontalLayout_2.addWidget(self.frame)
        self.horizontalLayout_2.setStretch(1, 1)

        self.retranslateUi(SimpleNewItemWidget)
        QtCore.QMetaObject.connectSlotsByName(SimpleNewItemWidget)
Example #23
0
    def setupUi(self, ItemList):
        ItemList.setObjectName("ItemList")
        ItemList.resize(397, 265)
        self.horizontalLayout_2 = QtGui.QHBoxLayout(ItemList)
        self.horizontalLayout_2.setContentsMargins(12, 2, 2, 2)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.main_frame = QtGui.QFrame(ItemList)
        self.main_frame.setStyleSheet("#main_frame {\n"
                                      "border-style: solid;\n"
                                      "border-width: 1;\n"
                                      "border-radius: 2px;\n"
                                      "}")
        self.main_frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.main_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.main_frame.setObjectName("main_frame")
        self.verticalLayout = QtGui.QVBoxLayout(self.main_frame)
        self.verticalLayout.setSpacing(2)
        self.verticalLayout.setContentsMargins(2, 2, 2, 2)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.section_label = QtGui.QLabel(self.main_frame)
        self.section_label.setStyleSheet("#section_label {\n"
                                         "font-size: 10pt\n"
                                         "}")
        self.section_label.setIndent(4)
        self.section_label.setObjectName("section_label")
        self.horizontalLayout.addWidget(self.section_label)
        self.expand_label = QtGui.QLabel(self.main_frame)
        self.expand_label.setMinimumSize(QtCore.QSize(20, 20))
        self.expand_label.setBaseSize(QtCore.QSize(20, 20))
        self.expand_label.setText("")
        self.expand_label.setPixmap(QtGui.QPixmap(":/res/group_expand.png"))
        self.expand_label.setScaledContents(False)
        self.expand_label.setAlignment(QtCore.Qt.AlignCenter)
        self.expand_label.setObjectName("expand_label")
        self.horizontalLayout.addWidget(self.expand_label)
        self.horizontalLayout.setStretch(0, 1)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.line = QtGui.QFrame(self.main_frame)
        self.line.setFrameShadow(QtGui.QFrame.Plain)
        self.line.setFrameShape(QtGui.QFrame.HLine)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setObjectName("line")
        self.verticalLayout.addWidget(self.line)
        self.item_frame = QtGui.QFrame(self.main_frame)
        self.item_frame.setStyleSheet("#item_frame {\n"
                                      "border-style: none;\n"
                                      "}")
        self.item_frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.item_frame.setFrameShadow(QtGui.QFrame.Raised)
        self.item_frame.setObjectName("item_frame")
        self.verticalLayout.addWidget(self.item_frame)
        self.verticalLayout.setStretch(2, 1)
        self.horizontalLayout_2.addWidget(self.main_frame)

        self.retranslateUi(ItemList)
        QtCore.QMetaObject.connectSlotsByName(ItemList)
    def setupUi(self, ListItemWidget):
        ListItemWidget.setObjectName("ListItemWidget")
        ListItemWidget.resize(355, 105)
        self.horizontalLayout_3 = QtGui.QHBoxLayout(ListItemWidget)
        self.horizontalLayout_3.setSpacing(1)
        self.horizontalLayout_3.setContentsMargins(8, 4, 8, 4)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.box = QtGui.QFrame(ListItemWidget)
        self.box.setFrameShape(QtGui.QFrame.NoFrame)
        self.box.setObjectName("box")
        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.box)
        self.horizontalLayout_2.setSpacing(10)
        self.horizontalLayout_2.setContentsMargins(4, 8, 4, 8)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.thumbnail = QtGui.QLabel(self.box)
        self.thumbnail.setMinimumSize(QtCore.QSize(96, 75))
        self.thumbnail.setMaximumSize(QtCore.QSize(96, 75))
        self.thumbnail.setText("")
        self.thumbnail.setPixmap(QtGui.QPixmap(":/tk_multi_infopanel/rect_512x400.png"))
        self.thumbnail.setScaledContents(True)
        self.thumbnail.setAlignment(QtCore.Qt.AlignCenter)
        self.thumbnail.setObjectName("thumbnail")
        self.horizontalLayout_2.addWidget(self.thumbnail)
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setSpacing(3)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setSpacing(5)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.list_item_top_left = QtGui.QLabel(self.box)
        self.list_item_top_left.setObjectName("list_item_top_left")
        self.horizontalLayout.addWidget(self.list_item_top_left)
        self.list_item_top_right = QtGui.QLabel(self.box)
        self.list_item_top_right.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.list_item_top_right.setObjectName("list_item_top_right")
        self.horizontalLayout.addWidget(self.list_item_top_right)
        self.button = QtGui.QPushButton(self.box)
        self.button.setMaximumSize(QtCore.QSize(16, 16))
        self.button.setIconSize(QtCore.QSize(10, 10))
        self.button.setObjectName("button")
        self.horizontalLayout.addWidget(self.button)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.list_item_body = QtGui.QLabel(self.box)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.list_item_body.sizePolicy().hasHeightForWidth())
        self.list_item_body.setSizePolicy(sizePolicy)
        self.list_item_body.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
        self.list_item_body.setWordWrap(True)
        self.list_item_body.setObjectName("list_item_body")
        self.verticalLayout.addWidget(self.list_item_body)
        self.horizontalLayout_2.addLayout(self.verticalLayout)
        self.horizontalLayout_3.addWidget(self.box)

        self.retranslateUi(ListItemWidget)
        QtCore.QMetaObject.connectSlotsByName(ListItemWidget)
Example #25
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 #26
0
    def _on_screenshot(self):
        """
        Perform the actual screenshot
        """

        # hide the containing window - we can't actuall hide
        # the window as this will break modality!  Instead
        # we have to move the window off the screen:
        win = self._safe_get_dialog()

        win_geom = None
        if win:
            win_geom = win.geometry()
            win.setGeometry(1000000, 1000000, win_geom.width(),
                            win_geom.height())

            # make sure this event is processed:
            QtCore.QCoreApplication.processEvents()
            QtCore.QCoreApplication.sendPostedEvents(None, 0)
            QtCore.QCoreApplication.flush()

        path = None
        pm = None
        try:
            # get temporary file to use:
            # to be cross-platform and python 2.5 compliant, we can't use
            # tempfile.NamedTemporaryFile with delete=False.  Instead, we
            # use tempfile.mkstemp which does practically the same thing!
            tf, path = tempfile.mkstemp(suffix=".png", prefix="tanktmp")
            if tf:
                os.close(tf)

            # do screenshot with thread so we don't block anything
            screenshot_thread = ThumbnailWidget.ScreenshotThread(path)
            screenshot_thread.start()
            while not screenshot_thread.isFinished():
                screenshot_thread.wait(100)
                QtGui.QApplication.processEvents()

            er = screenshot_thread.get_error()
            if er:
                raise tank.TankError("Failed to capture screenshot: %s" % er)

            # load into pixmap:
            pm = QtGui.QPixmap(path)
        finally:
            # restore the window:
            if win:
                win.setGeometry(win_geom)
                QtCore.QCoreApplication.processEvents()

            # remove the temporary file:
            if path and os.path.exists(path):
                os.remove(path)

        return pm
 def show_result(self, status, msg):
     """
     Show the result page
     """
     self._ui.page_stack.setCurrentWidget(self._ui.status_page)
     self._ui.status_title.setText(
         ["Oh No, Something Went Wrong!", "Success!"][status])
     self._ui.status_details.setText([msg, "Snapshot Successfully Created"
                                      ][not msg])
     self._ui.status_icon.setPixmap(
         QtGui.QPixmap([":/res/failure.png", ":/res/success.png"][status]))
    def _on_screenshot(self):
        """
        Perform the actual screenshot
        """

        # hide the containing window - we can't actuall hide
        # the window as this will break modality!  Instead
        # we have to move the window off the screen:
        win = self._safe_get_dialog()

        win_geom = None
        if win:
            win_geom = win.geometry()
            win.setGeometry(1000000, 1000000, win_geom.width(),
                            win_geom.height())

            # make sure this event is processed:
            QtCore.QCoreApplication.processEvents()

        path = None
        pm = None
        try:
            # get temporary file to use:
            with tempfile.NamedTemporaryFile(suffix=".png",
                                             prefix="tanktmp",
                                             delete=False) as temp_file:
                path = temp_file.name

            # screenshot
            if sys.platform == "darwin":
                # use built-in screenshot command on the mac
                os.system("screencapture -m -i -s %s" % path)
            elif sys.platform == "linux2":
                # use image magick
                os.system("import %s" % path)
            elif sys.platform == "win32":
                # use external boxcutter tool
                bc = os.path.abspath(
                    os.path.join(__file__, "../resources/boxcutter.exe"))
                subprocess.check_call([bc, path])

            # load into pixmap:
            pm = QtGui.QPixmap(path)
        finally:
            # restore the window:
            if win:
                win.setGeometry(win_geom)
                QtCore.QCoreApplication.processEvents()

            # remove the temporary file:
            if path:
                os.remove(path)

        return pm
    def setupUi(self, PublishForm):
        PublishForm.setObjectName("PublishForm")
        PublishForm.resize(794, 549)
        PublishForm.setAutoFillBackground(False)
        self.verticalLayout = QtGui.QVBoxLayout(PublishForm)
        self.verticalLayout.setSpacing(20)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.primary_icon_label = QtGui.QLabel(PublishForm)
        self.primary_icon_label.setMinimumSize(QtCore.QSize(80, 80))
        self.primary_icon_label.setMaximumSize(QtCore.QSize(80, 80))
        self.primary_icon_label.setBaseSize(QtCore.QSize(32, 32))
        self.primary_icon_label.setText("")
        self.primary_icon_label.setPixmap(
            QtGui.QPixmap(":/res/default_header.png"))
        self.primary_icon_label.setScaledContents(False)
        self.primary_icon_label.setAlignment(QtCore.Qt.AlignCenter)
        self.primary_icon_label.setObjectName("primary_icon_label")
        self.horizontalLayout_2.addWidget(self.primary_icon_label)
        self.primary_details_label = QtGui.QLabel(PublishForm)
        self.primary_details_label.setStyleSheet("#primary_details_label {\n"
                                                 "}")
        self.primary_details_label.setAlignment(QtCore.Qt.AlignLeading
                                                | QtCore.Qt.AlignLeft
                                                | QtCore.Qt.AlignVCenter)
        self.primary_details_label.setMargin(1)
        self.primary_details_label.setObjectName("primary_details_label")
        self.horizontalLayout_2.addWidget(self.primary_details_label)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.pages = QtGui.QStackedWidget(PublishForm)
        self.pages.setObjectName("pages")
        self.publish_details = PublishDetailsForm()
        self.publish_details.setObjectName("publish_details")
        self.horizontalLayout_3 = QtGui.QHBoxLayout(self.publish_details)
        self.horizontalLayout_3.setSpacing(0)
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.pages.addWidget(self.publish_details)
        self.publish_progress = PublishProgressForm()
        self.publish_progress.setObjectName("publish_progress")
        self.pages.addWidget(self.publish_progress)
        self.publish_result = PublishResultForm()
        self.publish_result.setObjectName("publish_result")
        self.horizontalLayout = QtGui.QHBoxLayout(self.publish_result)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pages.addWidget(self.publish_result)
        self.verticalLayout.addWidget(self.pages)

        self.retranslateUi(PublishForm)
        self.pages.setCurrentIndex(1)
        QtCore.QMetaObject.connectSlotsByName(PublishForm)
Example #30
0
    def __init__(self, app, worker, parent=None):
        ListBase.__init__(self, app, worker, parent)

        # set up the UI
        self.ui = Ui_Item()
        self.ui.setupUi(self)
        self._selected = False
        self._worker = worker
        self._worker_uid = None

        # spinner
        self._spin_icons = []
        self._spin_icons.append(QtGui.QPixmap(":/res/thumb_loading_1.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/thumb_loading_2.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/thumb_loading_3.png"))
        self._spin_icons.append(QtGui.QPixmap(":/res/thumb_loading_4.png"))

        self._timer = QtCore.QTimer(self)
        self._timer.timeout.connect(self._update_spinner)
        self._current_spinner_index = 0