##-------------------------------------------------------------------------- # Import Qt from project's unified Qt.py module import sys as _sys import os as _os # Add parent scripts directory to sys.path _modit_dir = _os.path.dirname(_os.path.abspath(__file__)) _scripts_dir = _modit_dir while _os.path.basename(_scripts_dir) != 'scripts' and _scripts_dir != _os.path.dirname(_scripts_dir): _scripts_dir = _os.path.dirname(_scripts_dir) if _scripts_dir not in _sys.path: _sys.path.insert(0, _scripts_dir) from Qt import QtWidgets, QtCore, QtGui, QtCompat # Use QtCompat for cross-version compatibility wrapInstance = QtCompat.wrapInstance QIcon = QtGui.QIcon QWidget = QtWidgets.QWidget from maya import cmds as mc import json 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)