MetaBox/Scripts/Modeling/UV/UVDeluxe/uistates.py
2025-01-14 02:12:52 +08:00

91 lines
3.2 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pickle
import os
import maya.cmds as mc
version = 120
class UiStates():
file = 'config.uvd'
filepath = os.path.join(os.path.dirname(__file__), file)
def __init__(self):
self.version = version
#Window
self.widthHeight = (1150,700)
self.collapseFrame0 = False
self.collapseFrame1 = True
self.collapseFrame2 = True
self.collapseFrame3 = True
self.collapseFrame4 = True
self.collapseFrame5 = True
self.collapseFrame6 = True
self.collapseFrame7 = True
self.collapseFrame8 = True
#Settings
#self.textureSize = (5,5)
#self.forgetTextureSize = False
self.detectTextureSize = True
self.retainCS = mc.texMoveContext('texMoveContext',q=True,scr=True)
self.matchDist = 0.05
#Quicksnap
self.snapPath = mc.workspace(q=True,rd=True)
@staticmethod
def pickleDump(uis):
with open(UiStates.filepath, 'wb') as datafile:
pickle.dump(uis, datafile)
@staticmethod
def pickleLoad():
if os.path.exists(UiStates.filepath):
print("%s found, loading settings." % UiStates.file)
try:
with open(UiStates.filepath, 'rb') as datafile:
uis = pickle.load(datafile)
except EOFError:
print("Warning: The file is empty or corrupted.")
os.remove(UiStates.filepath)
return UiStates()
except Exception as e:
print(f"Error loading settings: {e}")
os.remove(UiStates.filepath)
return UiStates()
try:
pickledVer = uis.version
if pickledVer < version:
os.remove(UiStates.filepath)
return UiStates()
except:
os.remove(UiStates.filepath)
return UiStates()
return uis
else:
return UiStates()
def setUiState(self):
#Window
self.widthHeight = mc.window('UVDeluxe',query=True,wh=True)
self.collapseFrame0 = mc.frameLayout('layout_Settings', query=True, cl=True)
self.collapseFrame1 = mc.frameLayout('layout_Mover', query=True, cl=True)
self.collapseFrame2 = mc.frameLayout('layout_Scaler', query=True, cl=True)
self.collapseFrame3 = mc.frameLayout('layout_Ratio', query=True, cl=True)
self.collapseFrame4 = mc.frameLayout('layout_Straighten', query=True, cl=True)
self.collapseFrame5 = mc.frameLayout('layout_Align', query=True, cl=True)
self.collapseFrame6 = mc.frameLayout('layout_QuickSnap', query=True, cl=True)
self.collapseFrame7 = mc.frameLayout('layout_MatchUV', query=True, cl=True)
self.collapseFrame8 = mc.frameLayout('layout_SelectionSets',query=True, cl=True)
self.detectTextureSize = mc.checkBox ('DTR', query=True, v=True)
self.retainCS = mc.texMoveContext('texMoveContext',q=True,scr=True)
#Qucksnap
self.snapPath = mc.textField("pathField",query=True,text=True)
''' Dump '''
UiStates.pickleDump(self)