Пример #1
0
    def create_preview(self):
        """
        Create the preview following the type of object to display.
        """
        if not self.preview_file:
            self.preview_widget = NoPreviewWidget(self, "No preview yet")
        else:
            try:
                if is_video(self.preview_file):
                    if (is_blender_context() or is_maya_context()
                            or is_houdini_context() or get_current_binding()
                            not in ["PySide2", "PyQt5"]):
                        # Video not supported yet on Blender nor Maya
                        # Qt video support introduced in PySide2/PyQt5
                        raise MediaNotSetUp()
                    else:
                        from kitsupublisher.views.task_panel.PreviewVideoWidget import (
                            PreviewVideoWidget, )

                        self.preview_widget = PreviewVideoWidget(
                            self, self.preview_file)
                else:
                    self.preview_widget = PreviewImageWidget(
                        self, self.preview_file)
            except MediaNotSetUp:
                self.preview_widget = None
                message = (
                    "Error while displaying the preview. <br/> Please "
                    "refer to the web interface by following this link :")

                self.preview_widget = NoPreviewWidget(self, message,
                                                      self.kitsu_task_url)
Пример #2
0
 def end_preview_take(self):
     """
     Set back software state.
     """
     self.context.pop_state()
     if is_houdini_context():
         self.show()
         self.activateWindow()
Пример #3
0
 def get_preview_selector_items(self):
     """
     Return available previews depending on the context.
     """
     if is_maya_context() or is_blender_context():
         return ["Take screenshot", "Take playblast", "From local file"]
     elif is_houdini_context():
         return ["Take screenshot", "From local file"]
     else:
         return ["From local file"]
Пример #4
0
 def init_context(self):
     """
     Initialize the context class, depending on which software is used.
     """
     if is_blender_context():
         from dccutils.blender import BlenderContext as Context
     elif is_maya_context():
         from dccutils.maya import MayaContext as Context
     elif is_houdini_context():
         from dccutils.houdini import HoudiniContext as Context
     else:
         raise ContextNotFoundError
     self.context = Context()
Пример #5
0
    def setup_ui(self):
        main_widget = QtWidgets.QWidget()
        load_ui_file("TakePreviewWidget.ui", main_widget)
        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(main_widget)
        self.setLayout(layout)

        self.camera_widget = self.findChild(QtWidgets.QWidget, "camera_widget")
        self.camera_combobox = self.findChild(QtWidgets.QComboBox,
                                              "camera_combobox")
        self.renderer_widget = self.findChild(QtWidgets.QWidget,
                                              "renderer_widget")
        self.renderer_cb = self.findChild(QtWidgets.QComboBox, "renderer_cb")
        self.renderer_label = self.findChild(QtWidgets.QLabel,
                                             "renderer_label")
        if is_houdini_context():
            self.renderer_label.setText("Render node :")
        self.extension_combobox = self.findChild(QtWidgets.QComboBox,
                                                 "extension_combobox")
        self.take_btn = self.findChild(QtWidgets.QPushButton, "take_btn")
        self.confirm_btn = self.findChild(QtWidgets.QPushButton, "confirm_btn")
        self.browse_btn = self.findChild(QtWidgets.QPushButton, "browse_btn")
        self.output_dir_line_edit = self.findChild(QtWidgets.QLineEdit,
                                                   "output_dir_line_edit")
        self.preview_widget = self.findChild(QtWidgets.QLabel,
                                             "preview_widget")
        self.filename_lineedit = self.findChild(QtWidgets.QLineEdit,
                                                "filename_lineedit")
        self.render_checkbox = self.findChild(QtWidgets.QCheckBox,
                                              "render_checkbox")
        self.viewport_checkbox = self.findChild(QtWidgets.QCheckBox,
                                                "viewport_checkbox")
        self.viewtransform_checkbox = self.findChild(QtWidgets.QCheckBox,
                                                     "viewtransform_checkbox")
        self.viewtransform_label = self.findChild(QtWidgets.QLabel,
                                                  "viewtransform_label")
        self.frame_preview_layout = self.findChild(QtWidgets.QLayout,
                                                   "frame_preview_layout")

        self.form_widget = self.findChild(QtWidgets.QWidget, "form_widget")
        self.error_label = AnimatedLabel()
        self.form_widget.layout().insertWidget(5, self.error_label)
        self.error_label.hide()
Пример #6
0
    def display_video_preview(self, animation_path):
        """
        Display the video.
        """
        if is_blender_context() or is_maya_context() or is_houdini_context():
            raise MediaNotSetUp()

        self.clear_preview()

        self.preview_widget = QtMultimediaWidgets.QVideoWidget()
        self.preview_widget.resize(300, 300)
        self.preview_widget.move(0, 0)
        self.player = QtMultimedia.QMediaPlayer()
        self.player.setVideoOutput(self.preview_widget)
        self.player.setMedia(
            QtMultimedia.QMediaContent(
                QtCore.QUrl.fromLocalFile(animation_path)))
        self.frame_preview_layout.addWidget(self.preview_widget)
        self.player.play()