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)
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
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
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
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
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
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
def open_last_increment(): logger.debug("Open last increment") return scene_control.get_instance().load_latest_incr()
def del_maya_lic_string(): logger.debug("Delete Maya Lic String") return scene_control.get_instance().del_maya_lic_string()
def close_scene(): logger.debug("Close Scene") return scene_control.get_instance().close_scene()
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)