Updated
This commit is contained in:
699
Scripts/Modeling/Edit/ModIt/Setting/Layout_SETTING.py
Normal file
699
Scripts/Modeling/Edit/ModIt/Setting/Layout_SETTING.py
Normal file
@ -0,0 +1,699 @@
|
||||
##--------------------------------------------------------------------------
|
||||
from Qt import QtWidgets, QtCore, QtGui
|
||||
from maya import cmds as mc
|
||||
import maya.mel as mel
|
||||
import json
|
||||
from ..Qt import QtWidgets, QtCore, QtCompat
|
||||
import os
|
||||
import maya.cmds as cmds
|
||||
from maya import OpenMayaUI as omui
|
||||
import mtoa.core as core
|
||||
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 importlib
|
||||
from .. import ModIt_Global
|
||||
|
||||
#importlib.reload(ModIt_Global)
|
||||
|
||||
from .. import ModIt_CSS
|
||||
#importlib.reload(ModIt_CSS)
|
||||
|
||||
##______________________GLOBAL VAR
|
||||
##PATH_SET
|
||||
IconPath = ModIt_Global.IconsPathThemeClassic
|
||||
PreferencePath = ModIt_Global.PreferencePath
|
||||
ToolsPath = ModIt_Global.ToolPath
|
||||
|
||||
# ******************************************
|
||||
# BUTTONS PARAMS
|
||||
# ******************************************
|
||||
iconFixeSize = 20
|
||||
iconButtonSize = 20
|
||||
separatorWidth = ModIt_Global.separatorWidth
|
||||
|
||||
##JSON PREF DATA
|
||||
PRIM_MODE =(json.load(open(PreferencePath + 'Setting_Primitives_Placement.json',"r"))['PRIM_MODE'])
|
||||
PRIM_SIZE =(json.load(open(PreferencePath + 'Setting_Primitives_Size.json',"r"))['PRIM_SIZE'])
|
||||
SHADER_ATTRIBUTS = (json.load(open(PreferencePath + 'ShaderAttributs.json',"r"))['VALUE'])
|
||||
INSTANCE_MODE = (json.load(open(PreferencePath + 'InstanceMode.json',"r"))['VALUE'])
|
||||
AUTOLOAD = (json.load(open(PreferencePath + 'Autoload.json',"r"))['VALUE'])
|
||||
LOCATOR_SIZE =(json.load(open(PreferencePath + 'Locator_Size.json',"r"))['VALUE'])
|
||||
PRIM_TOPOF =(json.load(open(PreferencePath + 'Setting_Primitives_OnTopOf.json',"r"))['VALUE'])
|
||||
|
||||
WIN_DISPLAY_SIZE =(json.load(open(PreferencePath + 'WinSize.json',"r"))['VALUE'])
|
||||
if WIN_DISPLAY_SIZE == 0: # 125
|
||||
Title_Text_Size = 8
|
||||
Text_Size = 7
|
||||
else: #150
|
||||
Title_Text_Size = 7
|
||||
Text_Size = 7
|
||||
|
||||
DOCK =(json.load(open(PreferencePath + 'Dockable.json',"r"))['VALUE'])
|
||||
|
||||
class SETTING_LAYOUT(QtWidgets.QWidget):
|
||||
def __init__(self, parent=None):
|
||||
# super().__init__(parent=parent)
|
||||
QtWidgets.QWidget.__init__(self, parent=parent)
|
||||
|
||||
SECTION_SETTING_LAYOUT = QtWidgets.QVBoxLayout() # MAIN
|
||||
self.setLayout(SECTION_SETTING_LAYOUT)
|
||||
SECTION_SETTING_LAYOUT.setContentsMargins(0,0,0,0)
|
||||
|
||||
##------------------------------------------------------------------------------------//
|
||||
##------------------------------------------------------------------------------------------------------// T A B G E N E R A L
|
||||
##------------------------------------------------------------------------------------//
|
||||
General_Title_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(General_Title_Hlyt)
|
||||
|
||||
separator = QtWidgets.QLabel('')
|
||||
separator.setStyleSheet( "QLabel {background-color: #3e3e3e; padding: 0; margin: 0; border-bottom: 1 solid #848484; border-top: 1 solid #2a2a2a;}")
|
||||
separator.setMaximumHeight(2)
|
||||
General_Title_Hlyt.addWidget(separator)
|
||||
|
||||
MODELING_label = QtWidgets.QLabel(self)
|
||||
MODELING_label.setText(" G E N E R A L ")
|
||||
MODELING_label.setFont(QtGui.QFont('Candara', Title_Text_Size))
|
||||
MODELING_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
General_Title_Hlyt.addWidget(MODELING_label)
|
||||
|
||||
separator = QtWidgets.QLabel('')
|
||||
separator.setStyleSheet( "QLabel {background-color: #3e3e3e; padding: 0; margin: 0; border-bottom: 1 solid #848484; border-top: 1 solid #2a2a2a;}")
|
||||
separator.setMaximumHeight(2)
|
||||
General_Title_Hlyt.addWidget(separator)
|
||||
|
||||
###------------------------------------------------------------------------------------// DOCK FLOATING MODE
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
DockMode_Hlyt = QtWidgets.QHBoxLayout()
|
||||
DockMode_Hlyt.setSpacing(0)
|
||||
SECTION_SETTING_LAYOUT.addLayout(DockMode_Hlyt)
|
||||
|
||||
###---------------------------------------------------- ICON
|
||||
Autosave_img = QtWidgets.QLabel()
|
||||
pixmap = QtGui.QPixmap(IconPath + "WinDock.png")
|
||||
Autosave_img.setPixmap(pixmap)
|
||||
DockMode_Hlyt.addWidget(Autosave_img)
|
||||
DockMode_Hlyt.addSpacing(5)
|
||||
|
||||
###---------------------------------------------------- LABEL
|
||||
label = QtWidgets.QLabel(self)
|
||||
label.setText(" ModIt Mode : ")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
DockMode_Hlyt.addWidget(label)
|
||||
DockMode_Hlyt.addSpacing(15)
|
||||
|
||||
###---------------------------------------------------- FLOATING BTN
|
||||
DockMode_Btn = QtWidgets.QPushButton()
|
||||
DockMode_Btn.setText("Floating")
|
||||
DockMode_Btn.clicked.connect(self.set_Floating)
|
||||
|
||||
if DOCK == 0:
|
||||
DockMode_Btn.setStyleSheet("QPushButton {color : #29b1ea;}")
|
||||
DockMode_Btn.setEnabled(0)
|
||||
else:
|
||||
DockMode_Btn.setStyleSheet("QPushButton {color : #404040;}")
|
||||
DockMode_Hlyt.addWidget(DockMode_Btn)
|
||||
DockMode_Hlyt.addSpacing(15)
|
||||
|
||||
###---------------------------------------------------- DOCK BTN
|
||||
FloatingMode_Btn = QtWidgets.QPushButton()
|
||||
FloatingMode_Btn.setText("Dockable")
|
||||
FloatingMode_Btn.clicked.connect(self.set_Dockable)
|
||||
|
||||
if DOCK == 1:
|
||||
FloatingMode_Btn.setStyleSheet("QPushButton {color : #29b1ea;}")
|
||||
FloatingMode_Btn.setEnabled(0)
|
||||
else:
|
||||
FloatingMode_Btn.setStyleSheet("QPushButton {color : #404040;}")
|
||||
|
||||
DockMode_Hlyt.addWidget(FloatingMode_Btn)
|
||||
|
||||
###------------------------------------------------------------------------------------// DISPLAY SIZE
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
DisplaySize_Hlyt = QtWidgets.QHBoxLayout()
|
||||
DisplaySize_Hlyt.setSpacing(0)
|
||||
SECTION_SETTING_LAYOUT.addLayout(DisplaySize_Hlyt)
|
||||
|
||||
###---------------------------------------------------- ICON
|
||||
Autosave_img = QtWidgets.QLabel()
|
||||
pixmap = QtGui.QPixmap(IconPath + "WinSize.png")
|
||||
Autosave_img.setPixmap(pixmap)
|
||||
DisplaySize_Hlyt.addWidget(Autosave_img)
|
||||
DisplaySize_Hlyt.addSpacing(5)
|
||||
|
||||
###---------------------------------------------------- LABEL
|
||||
label = QtWidgets.QLabel(self)
|
||||
label.setText(" Windows Display Size : ")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
DisplaySize_Hlyt.addWidget(label)
|
||||
|
||||
###---------------------------------------------------- 100% BTN
|
||||
Display100_Btn = QtWidgets.QPushButton()
|
||||
Display100_Btn.setText("100%")
|
||||
Display100_Btn.setFixedWidth(50)
|
||||
Display100_Btn.clicked.connect(self.set_WinSize100)
|
||||
if WIN_DISPLAY_SIZE == 1:
|
||||
Display100_Btn.setStyleSheet( "QPushButton {color : #404040;}")
|
||||
else:
|
||||
Display100_Btn.setStyleSheet("QPushButton {color : #29b1ea;}")
|
||||
Display100_Btn.setEnabled(0)
|
||||
DisplaySize_Hlyt.addWidget(Display100_Btn)
|
||||
|
||||
###---------------------------------------------------- 150% BTN
|
||||
Display150_Btn = QtWidgets.QPushButton()
|
||||
Display150_Btn.setText("150%")
|
||||
Display150_Btn.setFixedWidth(50)
|
||||
Display150_Btn.clicked.connect(self.set_WinSize150)
|
||||
if WIN_DISPLAY_SIZE == 1:
|
||||
Display150_Btn.setStyleSheet( "QPushButton {color : #29b1ea;}")
|
||||
Display150_Btn.setEnabled(0)
|
||||
else:
|
||||
Display150_Btn.setStyleSheet("QPushButton {color : #404040;}")
|
||||
DisplaySize_Hlyt.addWidget(Display150_Btn)
|
||||
|
||||
DisplaySize_Hlyt.addStretch()
|
||||
DockMode_Hlyt.addStretch()
|
||||
|
||||
###------------------------------------------------------------------------------------// Attributs PopUp
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
Autosave_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(Autosave_Hlyt)
|
||||
|
||||
###---------------------------------------------------- ICON
|
||||
Autosave_img = QtWidgets.QLabel()
|
||||
pixmap = QtGui.QPixmap(IconPath + "saveDisk.png")
|
||||
Autosave_img.setPixmap(pixmap)
|
||||
Autosave_Hlyt.addWidget(Autosave_img)
|
||||
|
||||
###---------------------------------------------------- MODE LABEL
|
||||
Autosave_label = QtWidgets.QLabel(self)
|
||||
Autosave_label.setText(" Open ModIt at launch :")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
Autosave_label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
#Autosave_label.setFixedHeight(19)
|
||||
Autosave_Hlyt.addWidget(Autosave_label)
|
||||
|
||||
###---------------------------------------------------- CHECKBOX
|
||||
self.Autosave_Cbx = QtWidgets.QCheckBox()
|
||||
self.Autosave_Cbx.setFixedSize(20, 20)
|
||||
if AUTOLOAD == 0:
|
||||
self.Autosave_Cbx.setChecked(0)
|
||||
else:
|
||||
self.Autosave_Cbx.setChecked(1)
|
||||
self.Autosave_Cbx.toggled.connect(self.Autoload_ON_OFF)
|
||||
Autosave_Hlyt.addWidget(self.Autosave_Cbx)
|
||||
Autosave_Hlyt.addStretch()
|
||||
|
||||
##------------------------------------------------------------------------------------//
|
||||
##------------------------------------------------------------------------------------------------------// T A B M O D E L I N G
|
||||
##------------------------------------------------------------------------------------//
|
||||
SECTION_SETTING_LAYOUT.addSpacing(5)
|
||||
Modeling_Title_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(Modeling_Title_Hlyt)
|
||||
|
||||
separator = QtWidgets.QLabel('')
|
||||
separator.setStyleSheet( "QLabel {background-color: #3e3e3e; padding: 0; margin: 0; border-bottom: 1 solid #848484; border-top: 1 solid #2a2a2a;}")
|
||||
separator.setMaximumHeight(2)
|
||||
Modeling_Title_Hlyt.addWidget(separator)
|
||||
|
||||
MODELING_label = QtWidgets.QLabel(self)
|
||||
MODELING_label.setText(" M O D E L I N G ")
|
||||
MODELING_label.setFont(QtGui.QFont('Candara', Title_Text_Size))
|
||||
MODELING_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
Modeling_Title_Hlyt.addWidget(MODELING_label)
|
||||
|
||||
separator = QtWidgets.QLabel('')
|
||||
separator.setStyleSheet( "QLabel {background-color: #3e3e3e; padding: 0; margin: 0; border-bottom: 1 solid #848484; border-top: 1 solid #2a2a2a;}")
|
||||
separator.setMaximumHeight(2)
|
||||
Modeling_Title_Hlyt.addWidget(separator)
|
||||
|
||||
###------------------------------------------------------------------------------------// Primitives
|
||||
|
||||
Primitive_label = QtWidgets.QLabel(self)
|
||||
Primitive_label.setText(" / P r i m i t i v e s ")
|
||||
Primitive_label.setFont(QtGui.QFont('Candara', Title_Text_Size))
|
||||
#Primitive_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
SECTION_SETTING_LAYOUT.addWidget(Primitive_label)
|
||||
|
||||
###---------------------------------------------------- INTERACTIVE MODE
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
Modeling_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(Modeling_Hlyt)
|
||||
|
||||
###---------------------------------------------------- ICON
|
||||
GlobalScaleImg = QtWidgets.QLabel()
|
||||
pixmap = QtGui.QPixmap(IconPath + "Placement_Drag.png")
|
||||
GlobalScaleImg.setPixmap(pixmap)
|
||||
Modeling_Hlyt.addWidget(GlobalScaleImg)
|
||||
|
||||
###---------------------------------------------------- MODE LABEL
|
||||
InteractiveMode_label = QtWidgets.QLabel(self)
|
||||
InteractiveMode_label.setText("Interactive Mode :")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
InteractiveMode_label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
#InteractiveMode_label.setFixedHeight(19)
|
||||
Modeling_Hlyt.addWidget(InteractiveMode_label)
|
||||
|
||||
###---------------------------------------------------- CHECKBOX
|
||||
self.InteractivePlacementCbx = QtWidgets.QCheckBox()
|
||||
self.InteractivePlacementCbx.setFixedSize(20, 20)
|
||||
self.InteractivePlacementCbx.toggled.connect(self.PrimMode_Interactive)
|
||||
if PRIM_MODE == 0:
|
||||
self.InteractivePlacementCbx.setChecked(0)
|
||||
else:
|
||||
self.InteractivePlacementCbx.setChecked(1)
|
||||
Modeling_Hlyt.addWidget(self.InteractivePlacementCbx)
|
||||
|
||||
###---------------------------------------------------- ON TOP OF MODE
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
OnTopOf_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(OnTopOf_Hlyt)
|
||||
|
||||
###---------------------------------------------------- ICON
|
||||
GlobalScaleImg = QtWidgets.QLabel()
|
||||
pixmap = QtGui.QPixmap(IconPath + "Prim_OnTopOf.png")
|
||||
GlobalScaleImg.setPixmap(pixmap)
|
||||
OnTopOf_Hlyt.addWidget(GlobalScaleImg)
|
||||
|
||||
###---------------------------------------------------- MODE LABEL
|
||||
OnTopOf_label = QtWidgets.QLabel(self)
|
||||
OnTopOf_label.setText("On Top of Selection :")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
OnTopOf_label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
#OnTopOf_label.setFixedHeight(19)
|
||||
OnTopOf_Hlyt.addWidget(OnTopOf_label)
|
||||
|
||||
###---------------------------------------------------- CHECKBOX
|
||||
self.OnTopOf_Cbx = QtWidgets.QCheckBox()
|
||||
self.OnTopOf_Cbx.setFixedSize(20, 20)
|
||||
self.OnTopOf_Cbx.toggled.connect(self.Prim_TopOF)
|
||||
if PRIM_TOPOF == 0:
|
||||
self.OnTopOf_Cbx.setChecked(0)
|
||||
else:
|
||||
self.OnTopOf_Cbx.setChecked(1)
|
||||
OnTopOf_Hlyt.addWidget(self.OnTopOf_Cbx)
|
||||
OnTopOf_Hlyt.addStretch()
|
||||
|
||||
#####---------------------------------------------------- / SEPARATOR /
|
||||
self.Separator = QtWidgets.QPushButton()
|
||||
self.Separator.setFixedSize(separatorWidth,iconButtonSize)
|
||||
self.Separator.setObjectName("Separator")
|
||||
self.Separator.setIconSize(QtCore.QSize(26, iconButtonSize))
|
||||
self.Separator.setIcon(QtGui.QIcon(IconPath + "SeparatorBtn.png"))
|
||||
self.Separator.setEnabled(0)
|
||||
Modeling_Hlyt.addWidget(self.Separator)
|
||||
|
||||
## COMBO UNIT // HIDE
|
||||
self.UnitComboList = [
|
||||
'cm',
|
||||
'inch',
|
||||
]
|
||||
|
||||
self.UnitCombo = QtWidgets.QComboBox()
|
||||
self.UnitCombo.addItems(self.UnitComboList)
|
||||
self.UnitCombo.setFixedWidth(50)
|
||||
self.UnitCombo.setFixedHeight(20)
|
||||
#self.UnitCombo.currentIndexChanged.connect(self.SET_Theme)
|
||||
self.UnitCombo.setCurrentIndex(1)
|
||||
#Modeling_Hlyt.addWidget(self.UnitCombo)
|
||||
|
||||
###---------------------------------------------------- SIZE MULTIPLICATEUR
|
||||
SizeM_label = QtWidgets.QLabel(self)
|
||||
SizeM_label.setText("Size X :")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
SizeM_label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
#SizeM_label.setFixedHeight(19)
|
||||
Modeling_Hlyt.addWidget(SizeM_label)
|
||||
|
||||
self.SizeSpinBox = QtWidgets.QDoubleSpinBox()
|
||||
self.SizeSpinBox.setDecimals(1)
|
||||
|
||||
self.SizeSpinBox.setFixedWidth(40)
|
||||
self.SizeSpinBox.setFixedHeight(23)
|
||||
|
||||
self.SizeSpinBox.setRange(0, 10000)
|
||||
self.SizeSpinBox.setValue(PRIM_SIZE)
|
||||
self.SizeSpinBox.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
|
||||
self.SizeSpinBox.editingFinished.connect(self.set_MultiSize)
|
||||
Modeling_Hlyt.addWidget(self.SizeSpinBox)
|
||||
|
||||
SECTION_SETTING_LAYOUT.addSpacing(2)
|
||||
Modeling_Hlyt.addStretch()
|
||||
Modeling_Hlyt.setSpacing(6)
|
||||
|
||||
###------------------------------------------------------------------------------------// MESH
|
||||
###---------------------------------------------------- TITLE
|
||||
Sym_Label = QtWidgets.QLabel(self)
|
||||
Sym_Label.setText(" / M e s h ")
|
||||
Sym_Label.setFont(QtGui.QFont('Candara', Title_Text_Size))
|
||||
#Sym_Label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
SECTION_SETTING_LAYOUT.addWidget(Sym_Label)
|
||||
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
Symmetry_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(Symmetry_Hlyt)
|
||||
|
||||
###---------------------------------------------------- ICON
|
||||
GlobalScaleImg = QtWidgets.QLabel()
|
||||
pixmap = QtGui.QPixmap(IconPath + "Sym_Setting.png")
|
||||
GlobalScaleImg.setPixmap(pixmap)
|
||||
Symmetry_Hlyt.addWidget(GlobalScaleImg)
|
||||
|
||||
###---------------------------------------------------- SYM LABEL
|
||||
SymetryDefault_label = QtWidgets.QLabel(self)
|
||||
SymetryDefault_label.setText("Symmetry Default Axis :")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
SymetryDefault_label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
SymetryDefault_label.setFixedHeight(22)
|
||||
Symmetry_Hlyt.addWidget(SymetryDefault_label)
|
||||
|
||||
###---------------------------------------------------- SYM AXIS
|
||||
AXIS = (json.load(open(PreferencePath + 'Pref_SymAxis.json', "r"))['VALUE'])
|
||||
|
||||
itemsList = [" X", " Y", " Z"]
|
||||
self.SymAxisChoice_combo = QtWidgets.QComboBox(self)
|
||||
self.SymAxisChoice_combo.setFixedWidth(35)
|
||||
self.SymAxisChoice_combo.setFixedHeight(22)
|
||||
self.SymAxisChoice_combo.addItems(itemsList)
|
||||
self.SymAxisChoice_combo.setCurrentIndex(AXIS)
|
||||
self.SymAxisChoice_combo.currentIndexChanged.connect(self.set_SymAxisChoice)
|
||||
Symmetry_Hlyt.addWidget(self.SymAxisChoice_combo)
|
||||
|
||||
###---------------------------------------------------- INSTANCE BTNcheckable
|
||||
self.InstanceMode_btn = QtWidgets.QPushButton(" I N S T A N C E ")
|
||||
self.InstanceMode_btn.setObjectName("StoreSet")
|
||||
self.InstanceMode_btn.setFixedHeight(18)
|
||||
if INSTANCE_MODE == 0:
|
||||
self.InstanceMode_btn.setStyleSheet("color:#808080;")
|
||||
else:
|
||||
self.InstanceMode_btn.setStyleSheet("color:#29b1ea;")
|
||||
|
||||
if WIN_DISPLAY_SIZE == 1: #150
|
||||
self.InstanceMode_btn.setFont(QtGui.QFont('Calibri', 6))
|
||||
self.InstanceMode_btn.clicked.connect(self.set_InstanceMode)
|
||||
Symmetry_Hlyt.addWidget(self.InstanceMode_btn)
|
||||
|
||||
Symmetry_Hlyt.addStretch()
|
||||
SECTION_SETTING_LAYOUT.addSpacing(4)
|
||||
|
||||
###------------------------------------------------------------------------------------// TOOL
|
||||
###---------------------------------------------------- TITLE
|
||||
Tool_Label = QtWidgets.QLabel(self)
|
||||
Tool_Label.setText(" / T o o l ")
|
||||
Tool_Label.setFont(QtGui.QFont('Candara', Title_Text_Size))
|
||||
SECTION_SETTING_LAYOUT.addWidget(Tool_Label)
|
||||
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
Tool_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(Tool_Hlyt)
|
||||
|
||||
###---------------------------------------------------- ICON
|
||||
LocatorImg = QtWidgets.QLabel()
|
||||
pixmap = QtGui.QPixmap(IconPath + "Locator_cible_setting.png")
|
||||
LocatorImg.setPixmap(pixmap)
|
||||
Tool_Hlyt.addWidget(LocatorImg)
|
||||
|
||||
###---------------------------------------------------- SIZE MULTIPLICATEUR
|
||||
Locator_label = QtWidgets.QLabel(self)
|
||||
Locator_label.setText("Size Locators :")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
Locator_label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
Tool_Hlyt.addWidget(Locator_label)
|
||||
|
||||
self.LocatorSpinBox = QtWidgets.QDoubleSpinBox()
|
||||
self.LocatorSpinBox.setDecimals(1)
|
||||
self.LocatorSpinBox.setFixedWidth(40)
|
||||
self.LocatorSpinBox.setFixedHeight(23)
|
||||
self.LocatorSpinBox.setRange(1, 1000)
|
||||
self.LocatorSpinBox.setValue(LOCATOR_SIZE)
|
||||
self.LocatorSpinBox.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
|
||||
self.LocatorSpinBox.editingFinished.connect(self.set_LocatorSize)
|
||||
Tool_Hlyt.addWidget(self.LocatorSpinBox)
|
||||
|
||||
SECTION_SETTING_LAYOUT.addSpacing(2)
|
||||
Tool_Hlyt.addStretch()
|
||||
Tool_Hlyt.setSpacing(6)
|
||||
|
||||
##------------------------------------------------------------------------------------//
|
||||
##------------------------------------------------------------------------------------------------------// T A B S H A D I N G
|
||||
##------------------------------------------------------------------------------------//
|
||||
SECTION_SETTING_LAYOUT.addSpacing(5)
|
||||
Shading_Title_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(Shading_Title_Hlyt)
|
||||
|
||||
separator = QtWidgets.QLabel('')
|
||||
separator.setStyleSheet( "QLabel {background-color: #3e3e3e; padding: 0; margin: 0; border-bottom: 1 solid #848484; border-top: 1 solid #2a2a2a;}")
|
||||
separator.setMaximumHeight(2)
|
||||
Shading_Title_Hlyt.addWidget(separator)
|
||||
|
||||
MODELING_label = QtWidgets.QLabel(self)
|
||||
MODELING_label.setText(" S H A D I N G ")
|
||||
MODELING_label.setFont(QtGui.QFont('Candara', Title_Text_Size))
|
||||
MODELING_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
Shading_Title_Hlyt.addWidget(MODELING_label)
|
||||
|
||||
separator = QtWidgets.QLabel('')
|
||||
separator.setStyleSheet( "QLabel {background-color: #3e3e3e; padding: 0; margin: 0; border-bottom: 1 solid #848484; border-top: 1 solid #2a2a2a;}")
|
||||
separator.setMaximumHeight(2)
|
||||
Shading_Title_Hlyt.addWidget(separator)
|
||||
|
||||
###------------------------------------------------------------------------------------// Attributs PopUp
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
AE_Hlyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(AE_Hlyt)
|
||||
|
||||
###---------------------------------------------------- ICON
|
||||
ShaderAttrib_img = QtWidgets.QLabel()
|
||||
pixmap = QtGui.QPixmap(IconPath + "ShaderAttributs.png")
|
||||
ShaderAttrib_img.setPixmap(pixmap)
|
||||
AE_Hlyt.addWidget(ShaderAttrib_img)
|
||||
|
||||
###---------------------------------------------------- MODE LABEL
|
||||
ShaderAttrib_label = QtWidgets.QLabel(self)
|
||||
ShaderAttrib_label.setText("Shader Attributs in Floating Window")
|
||||
if WIN_DISPLAY_SIZE == 1: # 125
|
||||
ShaderAttrib_label.setFont(QtGui.QFont('Candara', Text_Size))
|
||||
#ShaderAttrib_label.setFixedHeight(19)
|
||||
AE_Hlyt.addWidget(ShaderAttrib_label)
|
||||
|
||||
###---------------------------------------------------- CHECKBOX
|
||||
self.ShaderAttrib_Cbx = QtWidgets.QCheckBox()
|
||||
self.ShaderAttrib_Cbx.setFixedSize(20, 20)
|
||||
self.ShaderAttrib_Cbx.toggled.connect(self.ShaderAttributs_mode)
|
||||
if SHADER_ATTRIBUTS == 0:
|
||||
self.ShaderAttrib_Cbx.setChecked(0)
|
||||
else:
|
||||
self.ShaderAttrib_Cbx.setChecked(1)
|
||||
AE_Hlyt.addWidget(self.ShaderAttrib_Cbx)
|
||||
|
||||
AE_Hlyt.addStretch()
|
||||
|
||||
###------------------------------------------------------------------------------------// LINKS
|
||||
SECTION_SETTING_LAYOUT.addSpacing(4)
|
||||
separator = QtWidgets.QLabel('')
|
||||
separator.setStyleSheet( "QLabel {background-color: #3e3e3e; padding: 0; margin: 0; border-bottom: 1 solid #848484; border-top: 1 solid #2a2a2a;}")
|
||||
separator.setMaximumHeight(2)
|
||||
SECTION_SETTING_LAYOUT.addWidget(separator)
|
||||
SECTION_SETTING_LAYOUT.addSpacing(4)
|
||||
###---------------------------------------------------- H LAYOUT
|
||||
Link_HLyt = QtWidgets.QHBoxLayout()
|
||||
SECTION_SETTING_LAYOUT.addLayout(Link_HLyt)
|
||||
|
||||
icoSize = 26
|
||||
|
||||
DiscordBtn = QtWidgets.QPushButton()
|
||||
DiscordBtn.setFixedSize(icoSize, icoSize)
|
||||
DiscordBtn.setIconSize(QtCore.QSize(icoSize, icoSize))
|
||||
DiscordBtn.setIcon(QtGui.QIcon(IconPath + "Discord_ico.png"))
|
||||
DiscordBtn.setToolTip(" WZX Discord Link ")
|
||||
DiscordBtn.clicked.connect(self.Link_Discord)
|
||||
Link_HLyt.addWidget(DiscordBtn)
|
||||
|
||||
WzxStoreBtn = QtWidgets.QPushButton()
|
||||
WzxStoreBtn.setFixedSize(icoSize, icoSize)
|
||||
WzxStoreBtn.setIconSize(QtCore.QSize(icoSize, icoSize))
|
||||
WzxStoreBtn.setIcon(QtGui.QIcon(IconPath + "WzxStore_ico.png"))
|
||||
WzxStoreBtn.setToolTip(" WZXStore Link ")
|
||||
WzxStoreBtn.clicked.connect(self.Link_WzxStore)
|
||||
Link_HLyt.addWidget(WzxStoreBtn)
|
||||
|
||||
#------------------------------------------------
|
||||
##---------------------------------------------------- D E F I N I T I O N
|
||||
#------------------------------------------------
|
||||
def Link_Discord(self):
|
||||
QtGui.QDesktopServices.openUrl(
|
||||
QtCore.QUrl("https://discord.com/invite/KpkrvrU"))
|
||||
|
||||
def Link_WzxStore(self):
|
||||
QtGui.QDesktopServices.openUrl(
|
||||
QtCore.QUrl("https://www.wzxstore.com/"))
|
||||
|
||||
def set_SymAxisChoice(self):
|
||||
AxisChoice = self.SymAxisChoice_combo.currentIndex()
|
||||
print(AxisChoice)
|
||||
|
||||
self.SymAxisChoice_combo.clearFocus()
|
||||
open(PreferencePath + 'Pref_SymAxis.json', "w").write(json.dumps({"VALUE": AxisChoice}))
|
||||
|
||||
def set_MultiSize(self):
|
||||
getSpinValue = self.SizeSpinBox.value()
|
||||
self.SizeSpinBox.clearFocus()
|
||||
open(PreferencePath + 'Setting_Primitives_Size.json', "w").write(json.dumps({"PRIM_SIZE": getSpinValue}))
|
||||
|
||||
def set_LocatorSize(self):
|
||||
getSpinValue = self.LocatorSpinBox.value()
|
||||
self.LocatorSpinBox.clearFocus()
|
||||
open(PreferencePath + 'Locator_Size.json', "w").write(json.dumps({"VALUE": getSpinValue}))
|
||||
|
||||
def set_WinSize100(self):
|
||||
open(PreferencePath + 'WinSize.json', "w").write(json.dumps({"VALUE": 0}))
|
||||
from .. import ModIt_LAUNCH
|
||||
import importlib
|
||||
#importlib.reload(ModIt_LAUNCH)
|
||||
|
||||
def set_WinSize150(self):
|
||||
open(PreferencePath + 'WinSize.json', "w").write(json.dumps({"VALUE": 1}))
|
||||
from .. import ModIt_LAUNCH
|
||||
import importlib
|
||||
#importlib.reload(ModIt_LAUNCH)
|
||||
|
||||
def set_Floating(self):
|
||||
open(PreferencePath + 'Dockable.json', "w").write(json.dumps({"VALUE": 0}))
|
||||
from .. import ModIt_LAUNCH
|
||||
import importlib
|
||||
#importlib.reload(ModIt_LAUNCH)
|
||||
|
||||
def set_Dockable(self):
|
||||
open(PreferencePath + 'Dockable.json', "w").write(json.dumps({"VALUE": 1}))
|
||||
from .. import ModIt_LAUNCH
|
||||
import importlib
|
||||
#importlib.reload(ModIt_LAUNCH)
|
||||
|
||||
def set_InstanceMode(self):
|
||||
INSTANCE_MODE = (json.load(open(PreferencePath + 'InstanceMode.json', "r"))['VALUE'])
|
||||
|
||||
if INSTANCE_MODE ==0:
|
||||
open(PreferencePath + 'InstanceMode.json', "w").write(json.dumps({"VALUE": 1}))
|
||||
self.InstanceMode_btn.setStyleSheet("color:#29b1ea;")
|
||||
else:
|
||||
open(PreferencePath + 'InstanceMode.json', "w").write(json.dumps({"VALUE": 0}))
|
||||
self.InstanceMode_btn.setStyleSheet("color:#606060;")
|
||||
|
||||
#------------------------------------------------PRIM MODE
|
||||
|
||||
def PrimMode_Interactive(self, checked):
|
||||
if checked == True:
|
||||
open(PreferencePath + 'Setting_Primitives_Placement.json', "w").write(json.dumps({"PRIM_MODE": 1}))
|
||||
else:
|
||||
open(PreferencePath + 'Setting_Primitives_Placement.json', "w").write(json.dumps({"PRIM_MODE": 0}))
|
||||
if mc.optionVar(q="createPolyPrimitiveAsTool") == 1:
|
||||
mc.ToggleCreatePolyPrimitivesAsTool()
|
||||
if mc.optionVar(q="polyPrimitiveAsToolExitOnComplete") == 1:
|
||||
mc.TogglePolyPrimitivesAsToolExitOnComplete()
|
||||
|
||||
def Prim_TopOF(self, checked):
|
||||
if checked == True:
|
||||
open(PreferencePath + 'Setting_Primitives_OnTopOf.json', "w").write(json.dumps({"VALUE": 1}))
|
||||
else:
|
||||
open(PreferencePath + 'Setting_Primitives_OnTopOf.json', "w").write(json.dumps({"VALUE": 0}))
|
||||
|
||||
def ShaderAttributs_mode(self, checked):
|
||||
if checked == True:
|
||||
open(PreferencePath + 'ShaderAttributs.json', "w").write(json.dumps({"VALUE": 1}))
|
||||
else:
|
||||
open(PreferencePath + 'ShaderAttributs.json', "w").write(json.dumps({"VALUE": 0}))
|
||||
|
||||
def Autoload_ON_OFF(self, checked):
|
||||
if checked == True:
|
||||
open(PreferencePath + 'Autoload.json', "w").write(json.dumps({"VALUE": 1}))
|
||||
|
||||
UserSetupPath = ModIt_Global.UserScriptFolder + "/userSetup.py"
|
||||
|
||||
# Open a file with access mode 'a'
|
||||
file_object = open(UserSetupPath, 'a')
|
||||
# Append 'hello' at the end of file
|
||||
file_object.write("""
|
||||
import maya.cmds as cmds
|
||||
def ModItAutoLoad ():
|
||||
from ModIt import ModIt_UI
|
||||
import importlib
|
||||
#importlib.reload(ModIt_UI)
|
||||
ModIt_UI
|
||||
|
||||
cmds.evalDeferred(ModItAutoLoad, lowestPriority=True)""")
|
||||
# Close the file
|
||||
file_object.close()
|
||||
|
||||
else:
|
||||
open(PreferencePath + 'Autoload.json', "w").write(json.dumps({"VALUE": 0}))
|
||||
|
||||
UserSetupPath = ModIt_Global.UserScriptFolder + "/userSetup.py"
|
||||
TempFilePAth = ModIt_Global.UserScriptFolder + "/modItTemp.py"
|
||||
import os
|
||||
|
||||
with open(UserSetupPath, "r") as input:
|
||||
with open(TempFilePAth, "w") as output:
|
||||
# iterate all lines from file
|
||||
for line in input:
|
||||
# if text matches then don't write it
|
||||
if line.strip("\n") != "def ModItAutoLoad ():":
|
||||
output.write(line)
|
||||
# replace file with original name
|
||||
os.replace(TempFilePAth, UserSetupPath)
|
||||
|
||||
with open(UserSetupPath, "r") as input:
|
||||
with open(TempFilePAth, "w") as output:
|
||||
# iterate all lines from file
|
||||
for line in input:
|
||||
# if text matches then don't write it
|
||||
if line.strip("\n") != "cmds.evalDeferred(ModItAutoLoad, lowestPriority=True)":
|
||||
output.write(line)
|
||||
# replace file with original name
|
||||
os.replace(TempFilePAth, UserSetupPath)
|
||||
|
||||
with open(UserSetupPath, "r") as input:
|
||||
with open(TempFilePAth, "w") as output:
|
||||
# iterate all lines from file
|
||||
for line in input:
|
||||
# if text matches then don't write it
|
||||
if line.strip("\n") != " from ModIt import ModIt_UI":
|
||||
output.write(line)
|
||||
# replace file with original name
|
||||
os.replace(TempFilePAth, UserSetupPath)
|
||||
|
||||
with open(UserSetupPath, "r") as input:
|
||||
with open(TempFilePAth, "w") as output:
|
||||
# iterate all lines from file
|
||||
for line in input:
|
||||
# if text matches then don't write it
|
||||
if line.strip("\n") != " import importlib":
|
||||
output.write(line)
|
||||
# replace file with original name
|
||||
os.replace(TempFilePAth, UserSetupPath)
|
||||
|
||||
with open(UserSetupPath, "r") as input:
|
||||
with open(TempFilePAth, "w") as output:
|
||||
# iterate all lines from file
|
||||
for line in input:
|
||||
# if text matches then don't write it
|
||||
if line.strip("\n") != " ModIt_UI":
|
||||
output.write(line)
|
||||
# replace file with original name
|
||||
os.replace(TempFilePAth, UserSetupPath)
|
||||
|
||||
with open(UserSetupPath, "r") as input:
|
||||
with open(TempFilePAth, "w") as output:
|
||||
# iterate all lines from file
|
||||
for line in input:
|
||||
# if text matches then don't write it
|
||||
if line.strip("\n") != " #importlib.reload(ModIt_UI)":
|
||||
output.write(line)
|
||||
# replace file with original name
|
||||
os.replace(TempFilePAth, UserSetupPath)
|
||||
|
0
Scripts/Modeling/Edit/ModIt/Setting/__init__.py
Normal file
0
Scripts/Modeling/Edit/ModIt/Setting/__init__.py
Normal file
Reference in New Issue
Block a user