205 lines
6.1 KiB
Python
205 lines
6.1 KiB
Python
|
|
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
|
|
from functools import partial
|
|
|
|
# Special cases for different Maya versions
|
|
from shiboken2 import wrapInstance
|
|
from PySide2.QtGui import QIcon
|
|
from PySide2.QtWidgets import QWidget
|
|
|
|
from . import PlugIt_Global
|
|
import importlib
|
|
importlib.reload(PlugIt_Global)
|
|
from . import PlugIt_CSS
|
|
importlib.reload(PlugIt_CSS)
|
|
from . import PlugIt_AddAsset
|
|
importlib.reload(PlugIt_AddAsset)
|
|
|
|
##---------------------------------------------------------------------------------------------------------------- G L O B A L V A R I A B L E S
|
|
IconPath = PlugIt_Global.IconsPathThemeClassic
|
|
PreferencePath = PlugIt_Global.PreferencePath
|
|
LIBRARY_PATH = PlugIt_Global.LIBRARY_PATH
|
|
ASSET_FAVOURITES_PATH = PlugIt_Global.ASSET_FAVOURITES_PATH
|
|
|
|
WINDOWS_TITLE = "Plug Creation - Save Scene"
|
|
|
|
|
|
##---------------------------------------------------------------------------------------------------------------- B U I L D U I
|
|
class Save_PopUp_UI(QtWidgets.QDialog):
|
|
def __init__(self, parent=None):
|
|
super(Save_PopUp_UI, self).__init__()
|
|
self.setMinimumSize(400, 90)
|
|
self.buildUI()
|
|
|
|
def buildUI(self):
|
|
##_________________________________________________________________________________ UI VALUE
|
|
self.setStyleSheet(PlugIt_Global.Theme)
|
|
iconButtonSize = PlugIt_Global.IconButtonSize
|
|
separatorWidth = 1
|
|
|
|
##_________________// GLOBAL LAYOUT
|
|
GLOBAL_Lyt = QtWidgets.QVBoxLayout(self)
|
|
GLOBAL_Lyt.setSpacing(10)
|
|
GLOBAL_Lyt.setContentsMargins(10, 10, 10, 10)
|
|
|
|
#######_______________________________________________ // L A B E L
|
|
Label_Lyt = QtWidgets.QHBoxLayout(self)
|
|
GLOBAL_Lyt.addLayout(Label_Lyt)
|
|
Message_Lbl = QtWidgets.QLabel()
|
|
Message_Lbl.setText(" Save changes before Plug Creation Scene opens ? ")
|
|
Message_Lbl.setFont(QtGui.QFont('Candara', 9))
|
|
Message_Lbl.setStyleSheet("color:#909090;")
|
|
Label_Lyt.addWidget(Message_Lbl, alignment=QtCore.Qt.AlignCenter)
|
|
|
|
#######_______________________________________________ // S A V E B T N
|
|
Btn_Lyt = QtWidgets.QHBoxLayout(self)
|
|
GLOBAL_Lyt.addLayout(Btn_Lyt)
|
|
|
|
Save_Btn = QtWidgets.QPushButton()
|
|
Save_Btn.setText("S A V E")
|
|
Save_Btn.setObjectName("MasterBtn")
|
|
Save_Btn.setFixedHeight(30)
|
|
Save_Btn.clicked.connect(partial(self.set_Save, 1))
|
|
Btn_Lyt.addWidget(Save_Btn)
|
|
|
|
#######_______________________________________________ // D O N 'T S A V E B T N
|
|
DontSave_Btn = QtWidgets.QPushButton()
|
|
DontSave_Btn.setText("D O N 'T S A V E")
|
|
DontSave_Btn.setObjectName("MasterBtn")
|
|
DontSave_Btn.setFixedHeight(30)
|
|
DontSave_Btn.clicked.connect(partial(self.set_Save, 0))
|
|
Btn_Lyt.addWidget(DontSave_Btn)
|
|
|
|
#######_______________________________________________ // C A N C E L B T N
|
|
Cancel_Btn = QtWidgets.QPushButton()
|
|
Cancel_Btn.setText("C A N C E L")
|
|
Cancel_Btn.setObjectName("MasterBtn")
|
|
Cancel_Btn.setFixedHeight(30)
|
|
Cancel_Btn.clicked.connect(self.set_Cancel)
|
|
Btn_Lyt.addWidget(Cancel_Btn)
|
|
|
|
|
|
|
|
|
|
##____________________________________________________________
|
|
##_________________________________________________________________________________// DEF
|
|
##_____________________________________________________________
|
|
def set_Save(self, option):
|
|
print("Save Option = " + str(option))
|
|
if option == 1: # SAVE
|
|
mc.SaveScene()
|
|
else:
|
|
pass
|
|
|
|
ACTIVESUBTAB_NAME = "Rock"
|
|
importlib.reload(PlugIt_AddAsset)
|
|
PlugIt_AddAsset.SEND_INFO(str(ACTIVESUBTAB_NAME))
|
|
PlugIt_AddAsset.showUI()
|
|
|
|
if mc.window(WINDOWS_TITLE, exists=True):
|
|
mc.deleteUI(WINDOWS_TITLE)
|
|
|
|
|
|
def set_Save2(self, option):
|
|
MainTabindex = self.firstTab.currentIndex()
|
|
currentMainTabText = self.firstTab.tabText(MainTabindex)
|
|
|
|
if currentMainTabText == "❤":
|
|
currentMainTab = self.firstTab.tabText(0)
|
|
|
|
elif currentMainTabText == "/":
|
|
currentMainTab = self.firstTab.tabText(0)
|
|
|
|
else:
|
|
currentMainTab = currentMainTabText
|
|
|
|
|
|
#GET SECOND TAB
|
|
self.get_SubTabIndex(self.secondTab)
|
|
#print("ACTIVESUBTAB_NAME == " + str(ACTIVESUBTAB_NAME))
|
|
|
|
importlib.reload(PlugIt_AddAsset)
|
|
#PlugIt_AddAsset.SEND_INFO(str(ACTIVESUBTAB_NAME))
|
|
PlugIt_AddAsset.showUI()
|
|
|
|
def set_Cancel(self):
|
|
if mc.window(WINDOWS_TITLE, exists=True):
|
|
mc.deleteUI(WINDOWS_TITLE)
|
|
|
|
|
|
|
|
|
|
def Dock(Widget, width=200, height=200, hp="free", show=True):
|
|
name = WINDOWS_TITLE
|
|
label = getattr(Widget, "label", name)
|
|
|
|
try:
|
|
cmds.deleteUI(name)
|
|
except RuntimeError:
|
|
pass
|
|
|
|
dockControl = cmds.workspaceControl(
|
|
name,
|
|
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 atClose():
|
|
print("AT CLOSE")
|
|
|
|
def showUI():
|
|
ui = Dock(Save_PopUp_UI)
|
|
ui.show()
|
|
|
|
|
|
# Get a pointer and convert it to Qt Widget object
|
|
qw = omui.MQtUtil.findWindow(WINDOWS_TITLE)
|
|
try:
|
|
widget = wrapInstance(int(qw), QWidget)
|
|
# Create a QIcon object
|
|
icon = QIcon(IconPath + "PlugIt_Window_Ico.png")
|
|
# Assign the icon
|
|
widget.setWindowIcon(icon)
|
|
except:
|
|
pass #Pour si on reload alos qu'il est dock
|
|
|
|
|
|
|
|
return ui
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|