Updated
This commit is contained in:
205
Scripts/Modeling/Edit/PlugIt/PlugIt_NewTab.py
Normal file
205
Scripts/Modeling/Edit/PlugIt/PlugIt_NewTab.py
Normal file
@ -0,0 +1,205 @@
|
||||
|
||||
## SETTING
|
||||
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
|
||||
|
||||
# Special cases for different Maya versions
|
||||
try:
|
||||
from Qt.QtCompat import wrapInstance
|
||||
except ImportError:
|
||||
from Qt.QtCompat import wrapInstance
|
||||
|
||||
try:
|
||||
from Qt.QtGui import QIcon
|
||||
from Qt.QtWidgets import QWidget
|
||||
except ImportError:
|
||||
from Qt.QtGui import QIcon, QWidget
|
||||
|
||||
import importlib
|
||||
|
||||
from . import PlugIt_Global
|
||||
#importlib.reload(PlugIt_Global)
|
||||
|
||||
from . import PlugIt_CSS
|
||||
#importlib.reload(PlugIt_CSS)
|
||||
|
||||
##PATH_SET
|
||||
IconPath = PlugIt_Global.IconsPathThemeClassic
|
||||
PreferencePath = PlugIt_Global.PreferencePath
|
||||
|
||||
##GLOBAL VAR
|
||||
WindowsTitle = "Add New Tab"
|
||||
LIBRARY_PATH = PlugIt_Global.LIBRARY_PATH
|
||||
ASSET_FAVOURITES_PATH = PlugIt_Global.ASSET_FAVOURITES_PATH
|
||||
|
||||
# ________________//
|
||||
# ___________________________________________
|
||||
# ________________//
|
||||
|
||||
class NewTab_UI(QtWidgets.QDialog):
|
||||
def __init__(self, parent=None):
|
||||
super(NewTab_UI, self).__init__()
|
||||
self.setMinimumSize(400, 120)
|
||||
self.buildUI()
|
||||
|
||||
def buildUI(self):
|
||||
NEWTABS_MAIN_Layout = QtWidgets.QVBoxLayout(self)
|
||||
self.setStyleSheet(PlugIt_Global.Theme)
|
||||
iconButtonSize = PlugIt_Global.IconButtonSize
|
||||
|
||||
#############################################
|
||||
##________________________________________// MAIN TAB
|
||||
## MAIN TAB LAYOUT
|
||||
MainNewTab_HLyt = QtWidgets.QHBoxLayout()
|
||||
NEWTABS_MAIN_Layout.addLayout(MainNewTab_HLyt)
|
||||
MainNewTab_HLyt.setAlignment(QtCore.Qt.AlignCenter)
|
||||
|
||||
## MAIN TAB LABEL
|
||||
MainNewTab_Label = QtWidgets.QLabel(self)
|
||||
MainNewTab_Label.setText("MAIN Tab : ")
|
||||
MainNewTab_HLyt.addWidget(MainNewTab_Label)
|
||||
|
||||
self.MainNewTab_Field = QtWidgets.QLineEdit()
|
||||
self.MainNewTab_Field.setObjectName("UserLibPathField")
|
||||
MainNewTab_HLyt.addWidget(self.MainNewTab_Field)
|
||||
|
||||
##________________________________________// SEPARATOR
|
||||
separator = QtWidgets.QLabel('')
|
||||
separator.setMaximumHeight(4)
|
||||
NEWTABS_MAIN_Layout.addWidget(separator)
|
||||
|
||||
##________________________________________// SECOND TAB
|
||||
## MAIN TAB LAYOUT
|
||||
SecondNewTab_HLyt = QtWidgets.QHBoxLayout()
|
||||
NEWTABS_MAIN_Layout.addLayout(SecondNewTab_HLyt)
|
||||
SecondNewTab_HLyt.setAlignment(QtCore.Qt.AlignCenter)
|
||||
|
||||
## Second TAB LABEL
|
||||
SecondNewTab_Label = QtWidgets.QLabel(self)
|
||||
SecondNewTab_Label.setText("SUB Tab : ")
|
||||
SecondNewTab_HLyt.addWidget(SecondNewTab_Label)
|
||||
|
||||
self.SecondNewTab_Field = QtWidgets.QLineEdit()
|
||||
self.SecondNewTab_Field.setObjectName("UserLibPathField")
|
||||
SecondNewTab_HLyt.addWidget(self.SecondNewTab_Field)
|
||||
|
||||
##________________________________________// CREATE BTN
|
||||
CreateBTN = QtWidgets.QPushButton()
|
||||
CreateBTN.setText("CREATE TABS")
|
||||
CreateBTN.setObjectName("AddAsset")
|
||||
CreateBTN.setFixedHeight(25)
|
||||
CreateBTN.clicked.connect(self.CREATETABS)
|
||||
CreateBTN.setShortcut(QtGui.QKeySequence("Return"))
|
||||
CreateBTN.setToolTip("Create Tabs")
|
||||
NEWTABS_MAIN_Layout.addWidget(CreateBTN)
|
||||
|
||||
NEWTABS_MAIN_Layout.addStretch()
|
||||
|
||||
def WarningDeleteLayerYES(self, *args):
|
||||
favouriteFilePath = ASSET_FAVOURITES_PATH
|
||||
infoToSave = []
|
||||
s = json.dumps(infoToSave)
|
||||
open(favouriteFilePath, "w").write(s)
|
||||
|
||||
from . import PlugIt_UI
|
||||
import importlib
|
||||
#importlib.reload(PlugIt_UI)
|
||||
ui = PlugIt_UI.showUI()
|
||||
def WarningDeleteLayerNO(self, *args):
|
||||
mc.deleteUI("WarningWindow")
|
||||
|
||||
def CREATETABS(self):
|
||||
MAIN_TAB_NAME = self.MainNewTab_Field.text()
|
||||
SECOND_TAB_NAME = self.SecondNewTab_Field.text()
|
||||
|
||||
#SECURE WARNING
|
||||
if MAIN_TAB_NAME == "":
|
||||
PlugIt_Global.WarningWindow("You should give a MAIN Tab Name", 250)
|
||||
return
|
||||
if SECOND_TAB_NAME == "":
|
||||
PlugIt_Global.WarningWindow("You should give a SECOND Tab Name", 250)
|
||||
return
|
||||
|
||||
#CREATE MAIN TAB
|
||||
try:
|
||||
MAIN_TAB_PATH = LIBRARY_PATH + "/" + MAIN_TAB_NAME
|
||||
os.mkdir(MAIN_TAB_PATH)
|
||||
except:
|
||||
PlugIt_Global.WarningWindow("MAIN Tab Name already exist, delete it first", 250)
|
||||
return
|
||||
|
||||
#CREATE SECOND TAB*
|
||||
try:
|
||||
SECOND_TAB_PATH = MAIN_TAB_PATH + "/" + SECOND_TAB_NAME
|
||||
os.mkdir(SECOND_TAB_PATH)
|
||||
except:
|
||||
PlugIt_Global.WarningWindow("SECOND Tab Name already exist, delete it first", 250)
|
||||
return
|
||||
|
||||
from . import PlugIt_UI
|
||||
import importlib
|
||||
#importlib.reload(PlugIt_UI)
|
||||
ui = PlugIt_UI.showUI()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def Dock(Widget, width=200, height=200, hp="free", show=True):
|
||||
label = getattr(Widget, "label", WindowsTitle)
|
||||
|
||||
try:
|
||||
cmds.deleteUI(WindowsTitle)
|
||||
except RuntimeError:
|
||||
pass
|
||||
|
||||
dockControl = cmds.workspaceControl(
|
||||
WindowsTitle,
|
||||
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 showUI():
|
||||
ui = Dock(NewTab_UI)
|
||||
ui.show()
|
||||
|
||||
if mc.window("Add New Sub Tab", exists=True):
|
||||
mc.deleteUI("Add New Sub Tab")
|
||||
|
||||
# Get a pointer and convert it to Qt Widget object
|
||||
qw = omui.MQtUtil.findWindow(WindowsTitle)
|
||||
widget = wrapInstance(int(qw), QWidget)
|
||||
# Create a QIcon object
|
||||
icon = QIcon(IconPath + "Windows_Ico2.png")
|
||||
# Assign the icon
|
||||
widget.setWindowIcon(icon)
|
||||
|
||||
return ui
|
||||
|
Reference in New Issue
Block a user