Files
MetaBox/Scripts/Modeling/Edit/ModIt/ModIt_UI.py
2025-04-17 04:52:48 +08:00

562 lines
28 KiB
Python

#!/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