#!/usr/bin/env python # -*- coding: utf-8 -*- ##-------------------------------------------------------------------------- ## ScriptName : ModIt 3.0 ## Author : Wizix ## StartDate : 2022/09/09 ## LastUpdate : 2022/13/09 ## Version : 0.0.1 ##-------------------------------------------------------------------------- I M P O R T from Qt import QtWidgets, QtCore, QtGui from maya import cmds as mc import maya.cmds as cmds import maya.mel as mel import json from .Qt import QtWidgets, QtCore, QtCompat import os from maya import OpenMayaUI as omui from functools import partial # Special cases for different Maya versions from Qt.QtCompat import wrapInstance from Qt.QtGui import QIcon from Qt.QtWidgets import QWidget ##---------------------------------------- Import Modules import importlib from . import ModIt_Global #importlib.reload(ModIt_Global) from . import ModIt_CSS #importlib.reload(ModIt_CSS) ##---------------------------------------- Import Classes from .Class import Collapsible #importlib.reload(Collapsible) from .Modeling import Section_PRIMITIVES, Section_COLORS, Section_SETS, Section_SELECTIONS, Section_MESH, Section_TOOLS, Section_UTILITIES #importlib.reload(Section_PRIMITIVES) # from .Modeling import Section_COLORS # #importlib.reload(Section_COLORS) # from .Modeling import Section_SETS # #importlib.reload(Section_SETS) # from .Modeling import Section_SELECTIONS # #importlib.reload(Section_SELECTIONS) # from .Modeling import Section_MESH # #importlib.reload(Section_MESH) # from .Modeling import Section_TOOLS # #importlib.reload(Section_TOOLS) # from .Modeling import Section_UTILITIES #importlib.reload(Section_UTILITIES) from .Placement import Layout_PLACEMENT #importlib.reload(Layout_PLACEMENT) from .Setting import Layout_SETTING #importlib.reload(Layout_SETTING) from .Shading import Layout_SHADING #importlib.reload(Layout_SHADING) ##-------------------------------------------------------------------------- G L O B A L V A R ##PATH_SET IconPath = ModIt_Global.IconsPathThemeClassic PreferencePath = ModIt_Global.PreferencePath ToolsPath = ModIt_Global.ToolPath RessourcePath = ModIt_Global.RessourcePath #GLOBAR VAR UI WINDOW_TITLE = ModIt_Global.ModItTitle ##JSON PREF DATA ADAP_HEIGHT = (json.load(open(PreferencePath + 'UI_Adapt_Height.json',"r"))['VALUE']) TAB_OPEN =(json.load(open(PreferencePath + 'TabOpen.json',"r"))['TAB_OPEN']) S_UTILITIES_VALUE =(json.load(open(PreferencePath + 'Section_Utilities.json',"r"))['VALUE']) S_PRIMITIVES_VALUE =(json.load(open(PreferencePath + 'Section_Primitives.json',"r"))['VALUE']) S_COLORS_VALUE =(json.load(open(PreferencePath + 'Section_Colors.json',"r"))['VALUE']) S_SELECTIONS_VALUE =(json.load(open(PreferencePath + 'Section_Selections.json',"r"))['VALUE']) S_MESH_VALUE =(json.load(open(PreferencePath + 'Section_Mesh.json',"r"))['VALUE']) S_SETS_VALUE =(json.load(open(PreferencePath + 'Section_Sets.json',"r"))['VALUE']) S_TOOLS_VALUE =(json.load(open(PreferencePath + 'Section_Tools.json',"r"))['VALUE']) WIN_DISPLAY_SIZE =(json.load(open(PreferencePath + 'WinSize.json',"r"))['VALUE']) DOCK =(json.load(open(PreferencePath + 'Dockable.json',"r"))['VALUE']) ##-------------------------------------------------------------------------- B U I L D U I def maya_main_window(): main_window_ptr = omui.MQtUtil.mainWindow() ##Return the Maya main window widget as a Python object return wrapInstance(int(main_window_ptr), QtWidgets.QWidget) class ModIt_UI(QtWidgets.QDialog): if DOCK == 0: def __init__(self, parent=maya_main_window()): super(ModIt_UI, self).__init__(parent) ##__________________________________________________________________ SAVE UI POSITION self.settings_path = os.path.join(PreferencePath + "settingsFile.ini") ##__________________________________________________________________ WINDOWS SETTING self.setWindowTitle(WINDOW_TITLE) self.setFixedSize(340, ADAP_HEIGHT) icon = QIcon(IconPath + "ModIt_Window_Ico.png") self.setWindowIcon(icon) self.buildUI() else: def __init__(self, parent=None): super(ModIt_UI, self).__init__() ##__________________________________________________________________ SAVE UI POSITION self.settings_path = os.path.join(PreferencePath + "settingsFile.ini") self.setMinimumSize(400, 660) self.buildUI() def buildUI(self): open(PreferencePath + 'JobNumber.json', "w").write(json.dumps({"JOB_NUMBER": 0})) # ****************************************** # BUTTONS PARAMS # ****************************************** Tab_iconFixeSize = 30 Tab_iconButtonSize = 24 iconFixeSize = ModIt_Global.iconFixeSize iconButtonSize = ModIt_Global.iconButtonSize separatorWidth = ModIt_Global.separatorWidth ##__________________// UI - Import CSS self.setStyleSheet(ModIt_Global.Theme) ##_________________// Restore Previous Position settings_obj = QtCore.QSettings(self.settings_path, QtCore.QSettings.IniFormat) self.restoreGeometry(settings_obj.value("windowGeometry")) ##_________________// GLOBAL LAYOUT GLOBAL_Lyt = QtWidgets.QVBoxLayout(self) GLOBAL_Lyt.setSpacing(0) GLOBAL_Lyt.setContentsMargins(0, 0, 0, 0) ##------------------------------------------------------------------------------------// ##------------------------------------------------------------------------------------------------------// TABS ##------------------------------------------------------------------------------------// self.TABSBAR_Widget = QtWidgets.QWidget() self.TABSBAR_Widget.setStyleSheet("background-color:#222222;") #TABS BG - Pose problem bg color self.TABSBAR_Lyt = QtWidgets.QHBoxLayout(self.TABSBAR_Widget) self.TABSBAR_Lyt.setAlignment(QtCore.Qt.AlignTop) self.TABSBAR_Lyt.setContentsMargins(0, 0, 0, 0) self.TABSBAR_Lyt.setSpacing(0) GLOBAL_Lyt.addWidget(self.TABSBAR_Widget) ##______________________________________________________/ BTN MODELING TAB self.ModelingTab_Btn = QtWidgets.QPushButton() if TAB_OPEN == 0: self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_ON.png")) self.ModelingTab_Btn.setStyleSheet("background-color:#303030;") else: self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_OFF.png")) self.ModelingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.ModelingTab_Btn.setFixedSize(Tab_iconFixeSize,Tab_iconFixeSize) self.ModelingTab_Btn.setIconSize(QtCore.QSize(Tab_iconButtonSize, Tab_iconButtonSize)) self.ModelingTab_Btn.setToolTip(" ModIt ") self.ModelingTab_Btn.clicked.connect(self.ModelingTab_ON) self.TABSBAR_Lyt.addWidget(self.ModelingTab_Btn) ##______________________________________________________/ BTN SHADING TAB self.ShadingTab_Btn = QtWidgets.QPushButton() if TAB_OPEN == 1: self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_ON.png")) self.ShadingTab_Btn.setStyleSheet("background-color:#303030;") else: self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_OFF.png")) self.ShadingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.ShadingTab_Btn.setFixedSize(Tab_iconFixeSize,Tab_iconFixeSize) self.ShadingTab_Btn.setIconSize(QtCore.QSize(Tab_iconButtonSize, Tab_iconButtonSize)) self.ShadingTab_Btn.clicked.connect(self.ShadingTab_ON) self.ShadingTab_Btn.setToolTip(" ViewportIt ") self.TABSBAR_Lyt.addWidget(self.ShadingTab_Btn) ##______________________________________________________/ BTN PLACEMENT TAB self.PlacementTab_Btn = QtWidgets.QPushButton() if TAB_OPEN == 2: self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "PLACEMENT_ON.png")) self.PlacementTab_Btn.setStyleSheet("background-color:#303030;") else: self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "PLACEMENT_OFF.png")) self.PlacementTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\QPushButton::hover{background-color : #343434;}") self.PlacementTab_Btn.setFixedSize(Tab_iconFixeSize,Tab_iconFixeSize) self.PlacementTab_Btn.setIconSize(QtCore.QSize(Tab_iconButtonSize, Tab_iconButtonSize)) self.PlacementTab_Btn.clicked.connect(self.PlacementTab_ON) self.PlacementTab_Btn.setToolTip(" Placement ") self.TABSBAR_Lyt.addWidget(self.PlacementTab_Btn) ##______________________________________________________/ BTN SETTING TAB self.SettingTab_Btn = QtWidgets.QPushButton() if TAB_OPEN == 3: self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_ON.png")) self.SettingTab_Btn.setStyleSheet("background-color:#303030;") else: self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_OFF.png")) self.SettingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\QPushButton::hover{background-color : #343434;}") self.SettingTab_Btn.setFixedSize(Tab_iconFixeSize,Tab_iconFixeSize) self.SettingTab_Btn.setIconSize(QtCore.QSize(Tab_iconButtonSize, Tab_iconButtonSize)) self.SettingTab_Btn.clicked.connect(self.SettingTab_ON) self.SettingTab_Btn.setToolTip(" Setting ") self.TABSBAR_Lyt.addWidget(self.SettingTab_Btn) ##------------------------------------------------------------------------------------// ##------------------------------------------------------------------------------------------------------// T A B M O D E L I N G ##------------------------------------------------------------------------------------// self.TAB_MODELING_Widget = QtWidgets.QWidget() GLOBAL_Lyt.addWidget(self.TAB_MODELING_Widget) self.ALL_SECTIONS_HLyt = QtWidgets.QVBoxLayout(self.TAB_MODELING_Widget) self.ALL_SECTIONS_HLyt.setContentsMargins(0, 0, 0, 0) self.ALL_SECTIONS_HLyt.setSpacing(5)# BETWEEN SECTIONS self.ALL_SECTIONS_HLyt.setAlignment(QtCore.Qt.AlignTop) ##_________________________________________________________________________________________________________________/ U T I L I T E S self.Collapsible_wdg_SETS = Collapsible.CollapsibleWidget("U T I L I T E S") self.Collapsible_wdg_SETS.set_expanded(S_UTILITIES_VALUE) self.Collapsible_wdg_SETS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Utilities", 40)) self.Collapsible_wdg_SETS.add_widget(Section_UTILITIES.UTILITIES_LAYOUT()) self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_SETS) ## _____________________________________________________/ Separator self.ALL_SECTIONS_HLyt.addSpacing(2) self.Separator = QtWidgets.QLabel() self.Separator.setFixedSize(2000,2) self.Separator.setStyleSheet("background-color:#262626;") self.ALL_SECTIONS_HLyt.addWidget(self.Separator) ##_________________________________________________________________________________________________________________/ P R I M I T I V E S self.Collapsible_wdg_PRIMITIVES = Collapsible.CollapsibleWidget("P R I M I T I V E S") self.Collapsible_wdg_PRIMITIVES.set_expanded(S_PRIMITIVES_VALUE) self.Collapsible_wdg_PRIMITIVES.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Primitives", 40)) self.Collapsible_wdg_PRIMITIVES.add_widget(Section_PRIMITIVES.PRIMITIVES_LAYOUT()) self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_PRIMITIVES) ## _____________________________________________________/ Separator self.ALL_SECTIONS_HLyt.addSpacing(2) self.Separator = QtWidgets.QLabel() self.Separator.setFixedSize(2000,2) self.Separator.setStyleSheet("background-color:#262626;") self.ALL_SECTIONS_HLyt.addWidget(self.Separator) ##_________________________________________________________________________________________________________________/ C O L O R S self.Collapsible_wdg_COLORS = Collapsible.CollapsibleWidget("C O L O R S") self.Collapsible_wdg_COLORS.set_expanded(S_COLORS_VALUE) self.Collapsible_wdg_COLORS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Colors", 40)) self.Collapsible_wdg_COLORS.add_widget(Section_COLORS.COLORS_LAYOUT()) self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_COLORS) ## _____________________________________________________/ Separator self.ALL_SECTIONS_HLyt.addSpacing(2) self.Separator = QtWidgets.QLabel() self.Separator.setFixedSize(2000,2) self.Separator.setStyleSheet("background-color:#262626;") self.ALL_SECTIONS_HLyt.addWidget(self.Separator) ##_________________________________________________________________________________________________________________/ S E L E C T I O N S self.Collapsible_wdg_SELECTIONS = Collapsible.CollapsibleWidget("S E L E C T I O N S") self.Collapsible_wdg_SELECTIONS.set_expanded(S_SELECTIONS_VALUE) self.Collapsible_wdg_SELECTIONS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Selections", 40)) self.Collapsible_wdg_SELECTIONS.add_widget(Section_SELECTIONS.SELECTIONS_LAYOUT()) self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_SELECTIONS) ## _____________________________________________________/ Separator self.ALL_SECTIONS_HLyt.addSpacing(2) self.Separator = QtWidgets.QLabel() self.Separator.setFixedSize(2000,2) self.Separator.setStyleSheet("background-color:#262626;") self.ALL_SECTIONS_HLyt.addWidget(self.Separator) ##_________________________________________________________________________________________________________________/ M E S H self.Collapsible_wdg_MESH = Collapsible.CollapsibleWidget("M E S H") self.Collapsible_wdg_MESH.set_expanded(S_MESH_VALUE) self.Collapsible_wdg_MESH.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Mesh", 110)) self.Collapsible_wdg_MESH.add_widget(Section_MESH.MESH_LAYOUT()) self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_MESH) ## _____________________________________________________/ Separator self.ALL_SECTIONS_HLyt.addSpacing(2) self.Separator = QtWidgets.QLabel() self.Separator.setFixedSize(2000,2) self.Separator.setStyleSheet("background-color:#262626;") self.ALL_SECTIONS_HLyt.addWidget(self.Separator) ##_________________________________________________________________________________________________________________/ S E T S self.Collapsible_wdg_SETS = Collapsible.CollapsibleWidget("S E T S") self.Collapsible_wdg_SETS.set_expanded(S_SETS_VALUE) self.Collapsible_wdg_SETS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Sets", 85)) self.Collapsible_wdg_SETS.add_widget(Section_SETS.SETS_LAYOUT()) self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_SETS) ## _____________________________________________________/ Separator self.ALL_SECTIONS_HLyt.addSpacing(2) self.Separator = QtWidgets.QLabel() self.Separator.setFixedSize(2000,2) self.Separator.setStyleSheet("background-color:#262626;") self.ALL_SECTIONS_HLyt.addWidget(self.Separator) ##_________________________________________________________________________________________________________________/ T O O L S self.Collapsible_wdg_TOOLS = Collapsible.CollapsibleWidget("T O O L S") self.Collapsible_wdg_TOOLS.set_expanded(S_TOOLS_VALUE) self.Collapsible_wdg_TOOLS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Tools", 40)) self.Collapsible_wdg_TOOLS.add_widget(Section_TOOLS.TOOLS_LAYOUT()) self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_TOOLS) ##------------------------------------------------------------------------------------// ##------------------------------------------------------------------------------------------------------// T A B S H A D I N G ##------------------------------------------------------------------------------------// self.TAB_SHADING_Widget = QtWidgets.QWidget() GLOBAL_Lyt.addWidget(self.TAB_SHADING_Widget) self.TAB_SHADING_Lyt = QtWidgets.QVBoxLayout(self.TAB_SHADING_Widget) self.TAB_SHADING_Lyt.addWidget(Layout_SHADING.SHADING_LAYOUT()) ##------------------------------------------------------------------------------------// ##------------------------------------------------------------------------------------------------------// T A B P L A C E M E N T ##------------------------------------------------------------------------------------// self.TAB_PLACEMENT_Widget = QtWidgets.QWidget() GLOBAL_Lyt.addWidget(self.TAB_PLACEMENT_Widget) self.TAB_PLACEMENT_Lyt = QtWidgets.QVBoxLayout(self.TAB_PLACEMENT_Widget) self.TAB_PLACEMENT_Lyt.addWidget(Layout_PLACEMENT.PLACEMENT_LAYOUT()) ##------------------------------------------------------------------------------------// ##------------------------------------------------------------------------------------------------------// T A B S E T T I N G ##------------------------------------------------------------------------------------// self.TAB_SETTING_Widget = QtWidgets.QWidget() GLOBAL_Lyt.addWidget(self.TAB_SETTING_Widget) self.TAB_SETTING_Lyt = QtWidgets.QVBoxLayout(self.TAB_SETTING_Widget) self.TAB_SETTING_Lyt.addWidget(Layout_SETTING.SETTING_LAYOUT()) ##__________________________________________________________________// UI - END self.ALL_SECTIONS_HLyt.addStretch() self.TAB_SHADING_Lyt.addStretch() self.TAB_PLACEMENT_Lyt.addStretch() self.TAB_SETTING_Lyt.addStretch() ##_______________/ AT SCRIPT OPENING SET HIDE/SHOW TABS if TAB_OPEN == 0: self.ModelingTab_ON() if TAB_OPEN == 1: self.ShadingTab_ON() if TAB_OPEN == 2: self.PlacementTab_ON() if TAB_OPEN == 3: self.SettingTab_ON() ##_________________________________________________________________________________// ACTIONS DEF ##_____________________________________________________________ ##______________________________________________________/ TABS BAR def ModelingTab_ON(self): ADAP_HEIGHT = (json.load(open(PreferencePath + 'UI_Adapt_Height.json', "r"))['VALUE']) self.TAB_MODELING_Widget.show() self.TAB_SHADING_Widget.hide() self.TAB_PLACEMENT_Widget.hide() self.TAB_SETTING_Widget.hide() if DOCK == 0: self.setFixedHeight(ADAP_HEIGHT) self.resize(self.width(), ADAP_HEIGHT) self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_ON.png")) self.ModelingTab_Btn.setStyleSheet("background-color:#303030;") # TABS BTN BG - ACTIF self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_OFF.png")) self.ShadingTab_Btn.setStyleSheet("QPushButton{background-color :#292929;}\QPushButton::hover{background-color : #343434;}") self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "TabScrew_OFF.png")) self.PlacementTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_OFF.png")) self.SettingTab_Btn.setStyleSheet("QPushButton{background-color :#292929;}\ QPushButton::hover{background-color : #343434;}") open(PreferencePath + 'TabOpen.json', "w").write(json.dumps({"TAB_OPEN" : 0})) def ShadingTab_ON(self): self.TAB_MODELING_Widget.hide() self.TAB_SHADING_Widget.show() self.TAB_PLACEMENT_Widget.hide() self.TAB_SETTING_Widget.hide() if DOCK == 0: if WIN_DISPLAY_SIZE == 0: # 125 self.setFixedHeight(535) else: self.setFixedHeight(555) self.resize(self.width(), 40) self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_ON.png")) self.ShadingTab_Btn.setStyleSheet("background-color:#303030;") self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_OFF.png")) self.ModelingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "TabScrew_OFF.png")) self.PlacementTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_OFF.png")) self.SettingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") open(PreferencePath + 'TabOpen.json', "w").write(json.dumps({"TAB_OPEN" : 1})) def PlacementTab_ON(self): self.TAB_MODELING_Widget.hide() self.TAB_SHADING_Widget.hide() self.TAB_PLACEMENT_Widget.show() self.TAB_SETTING_Widget.hide() if DOCK == 0: self.setFixedHeight(680) self.resize(self.width(), 40) self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "TabScrew_ON.png")) self.PlacementTab_Btn.setStyleSheet("background-color:#303030;") self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_OFF.png")) self.ModelingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_OFF.png")) self.ShadingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_OFF.png")) self.SettingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") open(PreferencePath + 'TabOpen.json', "w").write(json.dumps({"TAB_OPEN" : 2})) def SettingTab_ON(self): self.TAB_MODELING_Widget.hide() self.TAB_SHADING_Widget.hide() self.TAB_PLACEMENT_Widget.hide() self.TAB_SETTING_Widget.show() if DOCK == 0: if WIN_DISPLAY_SIZE == 0: # 125 self.setFixedHeight(440) else: self.setFixedHeight(480) self.resize(self.width(), 40) self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_ON.png")) self.SettingTab_Btn.setStyleSheet("background-color:#303030;") self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_OFF.png")) self.ModelingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "TabScrew_OFF.png")) self.PlacementTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_OFF.png")) self.ShadingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}") open(PreferencePath + 'TabOpen.json', "w").write(json.dumps({"TAB_OPEN" : 3})) def Section_OpenClose_btn(self, name, size, signal): ADAP_HEIGHT = (json.load(open(PreferencePath + 'UI_Adapt_Height.json',"r"))['VALUE']) userWidht = self.width() if signal == 1: NEW_ADAP_HEIGHT = ADAP_HEIGHT + size self.setMinimumHeight(NEW_ADAP_HEIGHT) self.resize(userWidht, NEW_ADAP_HEIGHT) open(PreferencePath + 'Section_' + str(name) + '.json', "w").write(json.dumps({"VALUE": 1})) open(PreferencePath + 'UI_Adapt_Height.json', "w").write(json.dumps({"VALUE": NEW_ADAP_HEIGHT})) else: NEW_ADAP_HEIGHT = ADAP_HEIGHT - size self.setMinimumHeight(NEW_ADAP_HEIGHT) self.resize(userWidht, NEW_ADAP_HEIGHT) open(PreferencePath + 'Section_'+ str(name) + '.json', "w").write(json.dumps({"VALUE": 0})) open(PreferencePath + 'UI_Adapt_Height.json', "w").write(json.dumps({"VALUE": NEW_ADAP_HEIGHT})) def closeEvent(self, event): # Save window's geometry settings_obj = QtCore.QSettings(self.settings_path, QtCore.QSettings.IniFormat) settings_obj.setValue("windowGeometry", self.saveGeometry()) ##KILL INTERACTIVE PRIM SCRIPT JOB JOB_NUMBER = (json.load(open(PreferencePath + 'JobNumber.json', "r"))['JOB_NUMBER']) try: mc.scriptJob(kill=JOB_NUMBER, force=True) except: pass ##DELETE PopUp UI if mc.window("Bevel2", exists=True): mc.deleteUI("Bevel2") if mc.window("Bend", exists=True): mc.deleteUI("Bend") if mc.window("Linear Duplication", exists=True): mc.deleteUI("Linear Duplication") if mc.window("Radial Duplication", exists=True): mc.deleteUI("Radial Duplication") if mc.window("Curve Duplication", exists=True): mc.deleteUI("Curve Duplication") ##_____________________________________________________________ ##_________________________________________________________________________________// UI ##_____________________________________________________________ def run(): if DOCK == 0: try: UI.close() # pylint: disable=E0601 UI.deleteLater() except: pass UI = ModIt_UI() UI.show() else: def Dock(Widget, width=200, height=200, hp="free", show=True): name = ModIt_Global.ModItTitle label = getattr(Widget, "label", name) try: cmds.deleteUI(name) except RuntimeError: pass dockControl = cmds.workspaceControl( name, initialWidth=width, minimumWidth=False, widthProperty=hp, heightProperty=hp, label=label ) dockPtr = omui.MQtUtil.findControl(dockControl) dockWidget = QtCompat.wrapInstance(int(dockPtr), QtWidgets.QWidget) dockWidget.setAttribute(QtCore.Qt.WA_DeleteOnClose) child = Widget(dockWidget) dockWidget.layout().addWidget(child) if show: cmds.evalDeferred( lambda *args: cmds.workspaceControl( dockControl, edit=True, widthProperty="free", restore=True ) ) return child def atClose(): print("At MODIT CLOSE") if mc.window("ModIt_Global.ModItTitle", exists=True): mc.deleteUI("ModIt_Global.ModItTitle") def showUI(): ui = Dock(ModIt_UI) ui.show() # # Get a pointer and convert it to Qt Widget object # qw = omui.MQtUtil.findWindow(ModIt_Global.ModItTitle) # try: # widget = wrapInstance(int(qw), QWidget) # # Create a QIcon object # icon = QIcon(IconPath + "ModIt_Window_Ico.png") # # Assign the icon # widget.setWindowIcon(icon) # except: # pass # Pour si on reload alos qu'il est dock # return ui