628 lines
27 KiB
Python
628 lines
27 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 PySide2 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 shiboken2 import wrapInstance
|
|
from PySide2.QtGui import QIcon
|
|
from PySide2.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
|
|
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
|
|
##_____________________________________________________________
|
|
|
|
|
|
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 |