Exemple #1
0
    def open_func(self):
        for asset in self.asset_list:
            if self.sel_item.text() in asset:
                if self.department_filter == "DEV":
                    path = scene_control.get_latest_incr_path(
                        asset_name=self.sel_item.text(),
                        department=self.department_filter,
                        folder=asset[1])
                else:
                    path = asset_parser.build_asset_path(
                        asset_name=self.sel_item.text(),
                        department=self.department_filter)

        scene_control.get_instance().load(path)
Exemple #2
0
def publish_ass():
    logger.debug("ASS PUBLISH EXPORT")

    try:
        return scene_control.get_instance().publish_ass()
    except RuntimeError as e:
        logger.error("Could not export ass!")
        logger.error(e)
        return False
Exemple #3
0
def publish():
    logger.debug("PUBLISH")

    try:
        return scene_control.get_instance().publish()
    except RuntimeError as e:
        logger.error("Could not save file!")
        logger.error(e)
        return False
Exemple #4
0
def save_on_setup():
    logger.debug("Save on Setup")
    try:
        result = scene_control.get_instance().save()
        return result
    except RuntimeError as e:
        logger.error(e)
        logger.error("Could not save file!")
        return False
Exemple #5
0
def incremental_save():
    logger.debug("INCREMETAL SAVE")

    try:
        return scene_control.get_instance().save_incr(comment="INCREMETAL")
    except RuntimeError as e:
        logger.error("Could not save file!")
        logger.error(e)
        return False
Exemple #6
0
def is_mdl_referenced():
    logger.debug("Check for MDL Reference")
    asset_base = pmc.sceneName().parent.parent
    asset_name = scene_control.get_instance().meta.asset.replace("_SHD", "")
    mdl_ref_path = asset_base + "/" + asset_name + "_MDL_REF.ma"

    print(mdl_ref_path)
    print("\n")

    mdl_ref_found = False

    for ref in pmc.iterReferences():
        if ref.path == mdl_ref_path:
            mdl_ref_found = True
            break

    return mdl_ref_found
Exemple #7
0
def slack_publish_notification():
    logger.debug("Slack Publish Notification")
    # Refresh viewport
    pmc.refresh(force=True)

    # Grab the last active 3d viewport
    view = omui.M3dView.active3dView()
    # Enable Alpha
    view.setColorMask(1, 1, 1, 1)

    # read the color buffer from the view, and save the MImage to disk
    image = om.MImage()
    view.readColorBuffer(image, True)

    scene_path = pmc.sceneName()
    file_path = scene_path.splitext()[0] + ".png"

    try:
        image.writeToFile(file_path, 'png')
    except (IOError, RuntimeError) as e:
        logger.error("Could not save png Thumbnail!")
        logger.error(e)
        return False

    re_incr = re.compile(r"_\d+")

    curr_asset = re_incr.split(scene_path.name)[0]
    user = getpass.getuser()
    date_str = time.strftime("%Y_%m_%d")

    initial_comment = "*{asset}* has been published by _{user}_ with the comment _'{comment}'_".format(
        asset=curr_asset,
        user=user,
        comment=scene_control.get_instance().meta.comment)
    file_name = "{date}_{asset}".format(date=date_str, asset=curr_asset)

    slack_tools.send_file(channels="publish",
                          file_path=file_path,
                          file_name=file_name,
                          file_type="png",
                          title=file_name,
                          initial_comment=initial_comment)

    return True
Exemple #8
0
def open_last_increment():
    logger.debug("Open last increment")
    return scene_control.get_instance().load_latest_incr()
Exemple #9
0
def del_maya_lic_string():
    logger.debug("Delete Maya Lic String")
    return scene_control.get_instance().del_maya_lic_string()
Exemple #10
0
def close_scene():
    logger.debug("Close Scene")
    return scene_control.get_instance().close_scene()
Exemple #11
0
    def gui(self):

        # Create Top Level Layout
        top_level_layout = QtWidgets.QVBoxLayout(self)

        # # Create Menu Bar
        # self.main_menu = QtWidgets.QMenuBar()
        # test_menu = self.main_menu.addMenu("Test")
        # asdf_menu = self.main_menu.addMenu("asdf")

        # top_level_layout.addWidget(self.main_menu)

        # Create Grid Layout
        grid_layout = QtWidgets.QGridLayout(self)

        # Header Button
        header_btn = QtWidgets.QPushButton("MetaData GUI")
        # header_btn.clicked.connect(scene_controller.get_instance().meta.load_metafile)
        header_btn.setStyleSheet("background-color: rgb(60, 200, 80)")
        grid_layout.addWidget(header_btn, 0, 0, 1, 3)

        asset_label = QtWidgets.QLabel("Asset:")
        dep_label = QtWidgets.QLabel("Department:")
        user_label = QtWidgets.QLabel("User:"******"Time:")
        comment_label = QtWidgets.QLabel("Comment:")
        recent_label = QtWidgets.QLabel("Recent:")
        current_label = QtWidgets.QLabel("Current:")

        asset_qtext = QtWidgets.QLineEdit(
            scene_control.get_instance().meta.asset)
        dep_qtext = QtWidgets.QLineEdit(
            scene_control.get_instance().meta.department)
        user_qtext = QtWidgets.QLineEdit(
            scene_control.get_instance().meta.user)
        time_qtext = QtWidgets.QLineEdit(
            scene_control.get_instance().meta.time)
        comment_qtext = QtWidgets.QLineEdit(
            scene_control.get_instance().meta.comment)
        recent_qtext = QtWidgets.QLineEdit(
            scene_control.get_instance().meta.recent_file)
        current_qtext = QtWidgets.QLineEdit(
            scene_control.get_instance().meta.current_file)

        asset_qtext.setReadOnly(True)
        dep_qtext.setReadOnly(True)
        user_qtext.setReadOnly(True)
        time_qtext.setReadOnly(True)
        comment_qtext.setReadOnly(True)
        recent_qtext.setReadOnly(True)
        current_qtext.setReadOnly(True)

        grid_layout.addWidget(asset_label, 1, 0)
        grid_layout.addWidget(asset_qtext, 1, 1, 1, 2)

        grid_layout.addWidget(dep_label, 2, 0)
        grid_layout.addWidget(dep_qtext, 2, 1, 1, 2)

        grid_layout.addWidget(user_label, 3, 0)
        grid_layout.addWidget(user_qtext, 3, 1, 1, 2)

        grid_layout.addWidget(time_label, 4, 0)
        grid_layout.addWidget(time_qtext, 4, 1, 1, 2)

        grid_layout.addWidget(comment_label, 5, 0)
        grid_layout.addWidget(comment_qtext, 5, 1, 1, 2)

        grid_layout.addWidget(recent_label, 6, 0)
        grid_layout.addWidget(recent_qtext, 6, 1, 1, 2)

        grid_layout.addWidget(current_label, 7, 0)
        grid_layout.addWidget(current_qtext, 7, 1, 1, 2)

        refresh_btn = QtWidgets.QPushButton("Refresh")
        refresh_btn.clicked.connect(
            scene_control.get_instance().meta.load_metafile)

        grid_layout.addWidget(refresh_btn, 8, 1, 1, 2)

        # Some Layouting (Spacing between elements, row/column resize when window resized)
        grid_layout.setColumnStretch(1, 1)
        grid_layout.setRowStretch(0, 10)
        grid_layout.setSpacing(4)

        # Add Layouts to Window
        top_level_layout.addLayout(grid_layout)

        # Add Layout to window
        self.setLayout(top_level_layout)