##-------------------------------------------------------------------------- from PySide2 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 shiboken2 import wrapInstance from PySide2.QtGui import QIcon from PySide2.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) 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)