Update
This commit is contained in:
parent
06258d32cd
commit
f5664bb99e
2880
Scripts/Modeling/Edit/ModIt/ModIt_2.7_Python3.py
Normal file
2880
Scripts/Modeling/Edit/ModIt/ModIt_2.7_Python3.py
Normal file
File diff suppressed because it is too large
Load Diff
4
Scripts/Modeling/Edit/ModIt/ModIt_3.0_Shelf.txt
Normal file
4
Scripts/Modeling/Edit/ModIt/ModIt_3.0_Shelf.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
from ModIt import ModIt_UI
|
||||||
|
import importlib
|
||||||
|
importlib.reload(ModIt_UI)
|
||||||
|
ModIt_UI
|
722
Scripts/Modeling/Edit/ModIt/ModIt_CSS.py
Normal file
722
Scripts/Modeling/Edit/ModIt/ModIt_CSS.py
Normal file
@ -0,0 +1,722 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
##GLOBAL VARIABLEs
|
||||||
|
from PySide2 import QtWidgets, QtCore, QtGui
|
||||||
|
from maya import cmds as mc
|
||||||
|
import maya.mel as mel
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import maya.cmds as cmds
|
||||||
|
from maya import OpenMayaUI as omui
|
||||||
|
|
||||||
|
|
||||||
|
##THEME_SET
|
||||||
|
USERAPPDIR = cmds.internalVar(userAppDir=True)
|
||||||
|
VERSION = cmds.about(v=True)
|
||||||
|
IconPath = os.path.join(USERAPPDIR, VERSION+'/scripts/ModIt/Icons/Theme_Classic/')
|
||||||
|
|
||||||
|
|
||||||
|
# Attention l'ordre est important notamen pour le QPushButton!!
|
||||||
|
##COLORS SCHEME
|
||||||
|
### GREY BG : #272727
|
||||||
|
### GREY Line : #444444
|
||||||
|
### GREEN : #b3b523
|
||||||
|
### YELLOW : #c49e19
|
||||||
|
|
||||||
|
### GREY MODIT COLOR
|
||||||
|
#TABS BG : 292929
|
||||||
|
#SECTION BG : 303030
|
||||||
|
#BLUE : 29b1ea
|
||||||
|
|
||||||
|
|
||||||
|
## Add border: 0px; to Background to remove border lines
|
||||||
|
##GLOBAL VARIABLEs
|
||||||
|
from PySide2 import QtWidgets, QtCore, QtGui
|
||||||
|
from maya import cmds as mc
|
||||||
|
import maya.mel as mel
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import maya.cmds as cmds
|
||||||
|
from maya import OpenMayaUI as omui
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ModIt_CSS = """
|
||||||
|
|
||||||
|
*{
|
||||||
|
background: #303030;
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QTabWidget::pane { /* Ligne Ar a la suite des tabs */
|
||||||
|
background: #202020;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color : #202020;
|
||||||
|
color : #b7b7b7;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton{ background-color: #303030;
|
||||||
|
}
|
||||||
|
QPushButton:hover{ background-color: #606060;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
QPushButton:pressed{ background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="TABS_BTN_OFF"]{
|
||||||
|
background-color :#292929;
|
||||||
|
border-top: 1px solid gray;
|
||||||
|
border-right: 1px solid gray;
|
||||||
|
border-left: 1px solid gray;
|
||||||
|
border-color: #222222;
|
||||||
|
}
|
||||||
|
QPushButton[objectName^="TABS_BTN_OFF"]:hover{
|
||||||
|
background-color : #181818;
|
||||||
|
border-top: 2px solid gray;
|
||||||
|
border-color: #303030;
|
||||||
|
}
|
||||||
|
QPushButton[objectName^="TABS_BTN_OFF"]:pressed{
|
||||||
|
background-color : #65BEF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="StoreSet"]{
|
||||||
|
background-color :#292929;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #222222;
|
||||||
|
}
|
||||||
|
QPushButton[objectName^="StoreSet"]:hover{
|
||||||
|
background-color :#303030;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #424242;
|
||||||
|
}
|
||||||
|
QPushButton[objectName^="StoreSet"]:pressed{
|
||||||
|
background-color : #65BEF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="AssetIt"]{
|
||||||
|
background-color :#222222;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #222222;
|
||||||
|
color : #65BEF1
|
||||||
|
}
|
||||||
|
QPushButton[objectName^="AssetIt"]:hover{
|
||||||
|
background-color :#303030;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #424242;
|
||||||
|
}
|
||||||
|
QPushButton[objectName^="AssetIt"]:pressed{
|
||||||
|
background-color : #65BEF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="Separator"]{
|
||||||
|
background-color: #464646;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QComboBox {
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #2f2f2f;
|
||||||
|
border-color: #202020;
|
||||||
|
padding: 1px 2px 1px 3px;
|
||||||
|
color: #C2C2C2;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox::drop-down {
|
||||||
|
subcontrol-origin: padding;
|
||||||
|
subcontrol-position: top right;
|
||||||
|
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox::down-arrow {
|
||||||
|
image: url(""" + IconPath + """Arrow_Down.png);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QSlider {
|
||||||
|
min-height: 14;
|
||||||
|
max-height: 14;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QSlider::handle:horizontal {
|
||||||
|
background: #65BEF1;
|
||||||
|
width: 6px;
|
||||||
|
margin-top: -6px;
|
||||||
|
margin-bottom: -6px;
|
||||||
|
border-radius: 2px;
|
||||||
|
min-height: 12;
|
||||||
|
max-height: 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QSlider::groove:horizontal {
|
||||||
|
background: #242424;
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QDoubleSpinBox{
|
||||||
|
background-color: #2f2f2f;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #202020;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QDoubleSpinBox::focus{
|
||||||
|
border: 1px solid #b3b523;
|
||||||
|
border-color: #65BEF1;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLineEdit{
|
||||||
|
background-color: #262626;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-color: #444444;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QLineEdit:hover{
|
||||||
|
background-color: #222222;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-color: #999999;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QLineEdit:focus{
|
||||||
|
background-color: #222222;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-color: #65BEF1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QCheckBox::indicator:unchecked {
|
||||||
|
border: 1px solid #385E74;
|
||||||
|
}
|
||||||
|
QCheckBox::indicator:checked {image: url(""" + IconPath + """Apply.png);
|
||||||
|
border: 1px solid #385E74;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
AssetIt_CSS = """
|
||||||
|
|
||||||
|
*{
|
||||||
|
background: #272727;
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu{
|
||||||
|
background-color: #222222;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 2px;
|
||||||
|
border-color: #385E74;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu::item{
|
||||||
|
color: #909090;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QMenu::item:selected{
|
||||||
|
background-color: #262626;
|
||||||
|
color: #65BEF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QLineEdit{
|
||||||
|
background-color: #222222;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-color: #444444;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QLineEdit:hover{
|
||||||
|
background-color: #222222;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-color: #999999;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QLineEdit:focus{
|
||||||
|
background-color: #222222;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-color: #65BEF1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QScrollBar::handle:vertical {
|
||||||
|
background: #2094D6;
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QScrollBar:vertical {
|
||||||
|
width: 12px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QListWidget{
|
||||||
|
background: #202020; /* Background de la fenetre Widgets */
|
||||||
|
border: 2px solid #202020;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QListView::item:hover{
|
||||||
|
border : 2px solid black;
|
||||||
|
background : green;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*QWidget:hover{
|
||||||
|
background: #808080;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QTabWidget::pane { /* Ligne Ar a la suite des tabs */
|
||||||
|
background: #202020;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QTabBar::tab {
|
||||||
|
background: #282828;
|
||||||
|
border: 1px solid #202020;
|
||||||
|
border-radius: 3px;
|
||||||
|
min-width: 12ex;/* taille du Tab Largeur */
|
||||||
|
padding: 5px;/* taille du Tab Hauteur */
|
||||||
|
color: #909090
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabBar::tab:hover {
|
||||||
|
background: #454545;
|
||||||
|
border: 1px solid #202020;
|
||||||
|
border-top: 1px solid #E3E3E3;
|
||||||
|
border-radius: 3px;
|
||||||
|
color: #E3E3E3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QTabBar::tab:selected {
|
||||||
|
background: #292929;
|
||||||
|
border: 1px solid #202020;
|
||||||
|
border-top: 1px solid #419ED3;
|
||||||
|
border-radius: 3px;
|
||||||
|
color: #419ED3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QSlider {
|
||||||
|
min-height: 12;
|
||||||
|
max-height: 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QSlider::handle:horizontal {
|
||||||
|
background: #65BEF1;
|
||||||
|
width: 22px;
|
||||||
|
margin-top: -4px;
|
||||||
|
margin-bottom: -4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
min-height: 10;
|
||||||
|
max-height: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QSlider::groove:horizontal {
|
||||||
|
background: #404040;
|
||||||
|
height: 1px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color : #202020;
|
||||||
|
color : #65BEF1;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton{ background-color: #282828;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton:hover{ background-color: #404040;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton:pressed{ background-color: #222222;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="Items"]{
|
||||||
|
background-color: #232323;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #202020;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton[objectName^="Items"]:hover{
|
||||||
|
background-color: #303030;
|
||||||
|
border: 2px solid gray;
|
||||||
|
border-color: #505050;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QToolButton{
|
||||||
|
color : #404040;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolButton:hover{
|
||||||
|
color : #606060;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="AddAsset"]{
|
||||||
|
background-color : #222222;
|
||||||
|
color : #808080;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton[objectName^="AddAsset"]:hover{
|
||||||
|
background-color : #252525;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #65BEF1;
|
||||||
|
color : #65BEF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton[objectName^="AddAsset"]:pressed{
|
||||||
|
background-color : #141414;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #222222;
|
||||||
|
color : #404040;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="SaveSetting"]:hover{
|
||||||
|
background-color : #252525;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #FFFFFF;
|
||||||
|
border-radius: 2px;
|
||||||
|
color : #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton[objectName^="SaveSetting"]{
|
||||||
|
background-color : #252525;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #65BEF1;
|
||||||
|
border-radius: 2px;
|
||||||
|
color : #65BEF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton[objectName^="SaveSetting"]:pressed{
|
||||||
|
background-color : #202020;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #606060;
|
||||||
|
border-radius: 2px;
|
||||||
|
color : #606060;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="CleanFav"]{
|
||||||
|
background-color : #252525;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #b7842a;
|
||||||
|
color : #b7842a;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton[objectName^="CleanFav"]:hover{
|
||||||
|
background-color : #252525;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #FF9B22;
|
||||||
|
color : #FF9B22;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton[objectName^="CleanFav"]:pressed{
|
||||||
|
background-color : #141414;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #222222;
|
||||||
|
color : #404040;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton[objectName^="Separator"]{
|
||||||
|
background-color: #272727;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QLineEdit[objectName^="UserLibPathField"]{
|
||||||
|
background-color: #222222;
|
||||||
|
color: #65BEF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QLabel[objectName^="AssetName"]{
|
||||||
|
background-color : #1E1E1E;
|
||||||
|
color : #65BEF1;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #353535;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel[objectName^="AssetTitle"]{
|
||||||
|
color : #65BEF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QLabel[objectName^="ThumbAsset"]{
|
||||||
|
background-color : #232323;
|
||||||
|
color : #65BEF1;
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #383838;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QDoubleSpinBox{
|
||||||
|
font-size:17px;
|
||||||
|
background-color: #242424;
|
||||||
|
width: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDoubleSpinBox::focus{
|
||||||
|
border: 1px solid #b3b523;
|
||||||
|
font-size:17px;
|
||||||
|
background-color: #1e1e1e;
|
||||||
|
border-color: #65BEF1;
|
||||||
|
border-radius: 2px;
|
||||||
|
width: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QComboBox {
|
||||||
|
border: 2px solid gray;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #232323;
|
||||||
|
border-color: #232323;
|
||||||
|
padding: 1px 2px 1px 3px;
|
||||||
|
min-width: 6em;
|
||||||
|
color: #C2C2C2;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox::drop-down {
|
||||||
|
subcontrol-origin: padding;
|
||||||
|
subcontrol-position: top right;
|
||||||
|
width: 15px;
|
||||||
|
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox::down-arrow {
|
||||||
|
image: url(""" + IconPath + """ComboBox_Arrow.png);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QCheckBox[objectName^="ClayRender"]::indicator:Unchecked:hover{image: url(""" + IconPath + """ClayRender_ON.png);
|
||||||
|
border: 0px solid #444444;
|
||||||
|
}
|
||||||
|
QCheckBox[objectName^="ClayRender"]::indicator:checked {image: url(""" + IconPath + """ClayRender_ON.png);
|
||||||
|
border: 0px solid #444444;
|
||||||
|
}
|
||||||
|
QCheckBox[objectName^="ClayRender"]::indicator:Unchecked {image: url(""" + IconPath + """ClayRender_OFF.png);
|
||||||
|
border: 0px solid #444444;
|
||||||
|
}
|
||||||
|
QCheckBox[objectName^="ClayRender"]::indicator:checked:hover{image: url(""" + IconPath + """ClayRender_OVER.png);
|
||||||
|
border: 0px solid #444444;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QGroupBox {
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-color: #444444;
|
||||||
|
border-radius: 4px;
|
||||||
|
color : #65BEF1;
|
||||||
|
margin-top: 18px;
|
||||||
|
font-size: 16px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QGroupBox::title {
|
||||||
|
subcontrol-origin: margin;
|
||||||
|
subcontrol-position: top left;
|
||||||
|
border-top-left-radius: 10px;
|
||||||
|
border-top-right-radius: 10x;
|
||||||
|
padding: 1px 12px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QRadioButton::indicator::unchecked{
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: #444444;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #444444;
|
||||||
|
width: 9px;
|
||||||
|
height: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioButton::indicator:unchecked:hover
|
||||||
|
{
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: #888888;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #888888;
|
||||||
|
width: 9px;
|
||||||
|
height: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QRadioButton::indicator::checked{
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: #65BEF1;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #65BEF1;
|
||||||
|
width: 9px;
|
||||||
|
height: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
Maya_CSS = """
|
||||||
|
|
||||||
|
*{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton{
|
||||||
|
border: 0px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QPushButton:hover{ background-color: #656565;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton:pressed{ background-color: #303030;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
130
Scripts/Modeling/Edit/ModIt/ModIt_Global.py
Normal file
130
Scripts/Modeling/Edit/ModIt/ModIt_Global.py
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
##GLOBAL VARIABLEs
|
||||||
|
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
|
||||||
|
|
||||||
|
# Special cases for different Maya versions
|
||||||
|
try:
|
||||||
|
from shiboken2 import wrapInstance
|
||||||
|
except ImportError:
|
||||||
|
from shiboken import wrapInstance
|
||||||
|
|
||||||
|
try:
|
||||||
|
from PySide2.QtGui import QIcon
|
||||||
|
from PySide2.QtWidgets import QWidget
|
||||||
|
except ImportError:
|
||||||
|
from PySide.QtGui import QIcon, QWidget
|
||||||
|
|
||||||
|
from . import ModIt_CSS
|
||||||
|
|
||||||
|
|
||||||
|
##_____________________________________________PATH
|
||||||
|
ModItPath = os.path.dirname(os.path.abspath(__file__)).replace('\\', '/')
|
||||||
|
PlugInsPath = ModItPath
|
||||||
|
IconsPathThemeClassic = os.path.join(ModItPath+'/Icons/Theme_Classic/')
|
||||||
|
ToolPath = os.path.join(ModItPath+'/Tools/')
|
||||||
|
PreferencePath = os.path.join(ModItPath+'/Preferences/')
|
||||||
|
PrefIcons = os.path.join(ModItPath+'/Icons/')
|
||||||
|
RessourcePath = os.path.join(ModItPath+'/Ressources/')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##_____________________________________________PREFERENCES
|
||||||
|
ModItTitle = "ModIt"
|
||||||
|
|
||||||
|
|
||||||
|
##_____________________________________________UI
|
||||||
|
#_____________#Theme
|
||||||
|
Theme_pref = json.load(open(PreferencePath + 'Pref_Theme.json', "r"))
|
||||||
|
PREF_THEME = (Theme_pref['THEME'])
|
||||||
|
|
||||||
|
if PREF_THEME == 0:
|
||||||
|
Theme = ModIt_CSS.ModIt_CSS
|
||||||
|
IconPath = IconsPathThemeClassic
|
||||||
|
elif PREF_THEME == 1:
|
||||||
|
Theme = ModIt_CSS.Maya_CSS
|
||||||
|
IconPath = IconsPathThemeClassic
|
||||||
|
|
||||||
|
#_____________#IconSize
|
||||||
|
IconSize_pref = json.load(open(PreferencePath + 'Pref_IconSize.json', "r"))
|
||||||
|
PREF_ICONSIZE = (IconSize_pref['ICONSIZE'])
|
||||||
|
|
||||||
|
IconButtonSize = PREF_ICONSIZE
|
||||||
|
|
||||||
|
# ******************************************
|
||||||
|
# BUTTONS PARAMS
|
||||||
|
# ******************************************
|
||||||
|
iconFixeSize = 30
|
||||||
|
iconButtonSize = 30
|
||||||
|
separatorWidth = 1
|
||||||
|
|
||||||
|
|
||||||
|
##_____________________________________________WARNING POP UP
|
||||||
|
def WarningWindow(message, size, *args):
|
||||||
|
BackgroundColor = 0.16
|
||||||
|
# ________________//
|
||||||
|
if cmds.window("WarningWindow", exists=True):
|
||||||
|
cmds.deleteUI("WarningWindow")
|
||||||
|
cmds.window("WarningWindow", title=' Warning ', s=False, vis=True, rtf=False)
|
||||||
|
cmds.columnLayout(adj=True, rs=3, bgc=[BackgroundColor, BackgroundColor, BackgroundColor])
|
||||||
|
cmds.separator(h=8, style='none')
|
||||||
|
cmds.text(l=" " + message + " ", al="center")
|
||||||
|
cmds.separator(h=8, style='none')
|
||||||
|
cmds.button(l="OK", c=WarningOKButton)
|
||||||
|
cmds.window("WarningWindow", e=True, wh=(size, 80))
|
||||||
|
|
||||||
|
qw = omui.MQtUtil.findWindow("WarningWindow")
|
||||||
|
widget = wrapInstance(int(qw), QWidget)
|
||||||
|
icon = QIcon(IconPath + "Windows_Ico_Warning.png")
|
||||||
|
widget.setWindowIcon(icon)
|
||||||
|
|
||||||
|
cmds.showWindow()
|
||||||
|
|
||||||
|
def WarningOKButton(*args):
|
||||||
|
cmds.deleteUI("WarningWindow")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def LoadingWindow(message, size, *args):
|
||||||
|
BackgroundColor = 0.110
|
||||||
|
# ________________//
|
||||||
|
if cmds.window("LoadingWindow", exists=True):
|
||||||
|
cmds.deleteUI("LoadingWindow")
|
||||||
|
cmds.window("LoadingWindow", title='Loading Asset', s=False, vis=True, rtf=False)
|
||||||
|
cmds.columnLayout(adj=True, rs=3, bgc=[BackgroundColor, BackgroundColor, BackgroundColor])
|
||||||
|
cmds.separator(h=5, style='none')
|
||||||
|
cmds.text(l=" " + message + " ", al="center")
|
||||||
|
cmds.iconTextButton(image1= IconPath + "Refresh_Button.png")
|
||||||
|
cmds.window("LoadingWindow", e=True, wh=(size, 70))
|
||||||
|
|
||||||
|
qw = omui.MQtUtil.findWindow("LoadingWindow")
|
||||||
|
widget = wrapInstance(int(qw), QWidget)
|
||||||
|
icon = QIcon(IconPath + "Windows_Ico2.png")
|
||||||
|
widget.setWindowIcon(icon)
|
||||||
|
|
||||||
|
cmds.showWindow()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
Scripts/Modeling/Edit/ModIt/ModIt_IconShelf.png
Normal file
BIN
Scripts/Modeling/Edit/ModIt/ModIt_IconShelf.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
54
Scripts/Modeling/Edit/ModIt/ModIt_LAUNCH.py
Normal file
54
Scripts/Modeling/Edit/ModIt/ModIt_LAUNCH.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
##-------------------------------------------------------------------------- I M P O R T
|
||||||
|
from PySide2 import QtWidgets, QtCore, QtGui
|
||||||
|
from maya import cmds as mc
|
||||||
|
import maya.cmds as cmds
|
||||||
|
import maya.mel as mel
|
||||||
|
import json
|
||||||
|
from .Qt import QtWidgets, QtCore, QtCompat
|
||||||
|
import os
|
||||||
|
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
|
||||||
|
##---------------------------------------- Import Modules
|
||||||
|
import importlib
|
||||||
|
from . import ModIt_Global
|
||||||
|
importlib.reload(ModIt_Global)
|
||||||
|
|
||||||
|
|
||||||
|
##-------------------------------------------------------------------------- G L O B A L V A R
|
||||||
|
##PATH_SET
|
||||||
|
PreferencePath = ModIt_Global.PreferencePath
|
||||||
|
ToolsPath = ModIt_Global.ToolPath
|
||||||
|
|
||||||
|
DOCK =(json.load(open(PreferencePath + 'Dockable.json',"r"))['VALUE'])
|
||||||
|
|
||||||
|
if DOCK == 0:
|
||||||
|
print("MODIT FLOATING MODE")
|
||||||
|
|
||||||
|
open(PreferencePath + 'UI_Adapt_Height.json', "w").write(json.dumps({"VALUE": 660}))
|
||||||
|
open(PreferencePath + 'Section_Utilities.json', "w").write(json.dumps({"VALUE": 1}))
|
||||||
|
open(PreferencePath + 'Section_Primitives.json', "w").write(json.dumps({"VALUE": 1}))
|
||||||
|
open(PreferencePath + 'Section_Colors.json', "w").write(json.dumps({"VALUE": 1}))
|
||||||
|
open(PreferencePath + 'Section_Selections.json', "w").write(json.dumps({"VALUE": 1}))
|
||||||
|
open(PreferencePath + 'Section_Mesh.json', "w").write(json.dumps({"VALUE": 1}))
|
||||||
|
open(PreferencePath + 'Section_Sets.json', "w").write(json.dumps({"VALUE": 1}))
|
||||||
|
open(PreferencePath + 'Section_Tools.json', "w").write(json.dumps({"VALUE": 1}))
|
||||||
|
|
||||||
|
|
||||||
|
from . import ModIt_UI
|
||||||
|
importlib.reload(ModIt_UI)
|
||||||
|
ui = ModIt_UI
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("MODIT DOCKABLE MODE")
|
||||||
|
from . import ModIt_UI
|
||||||
|
importlib.reload(ModIt_UI)
|
||||||
|
ui = ModIt_UI.showUI()
|
||||||
|
|
||||||
|
|
628
Scripts/Modeling/Edit/ModIt/ModIt_UI.py
Normal file
628
Scripts/Modeling/Edit/ModIt/ModIt_UI.py
Normal file
@ -0,0 +1,628 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
##--------------------------------------------------------------------------
|
||||||
|
## ScriptName : ModIt 3.0
|
||||||
|
## Author : Wizix
|
||||||
|
## StartDate : 2022/09/09
|
||||||
|
## LastUpdate : 2022/13/09
|
||||||
|
## Version : 0.0.1
|
||||||
|
##-------------------------------------------------------------------------- I M P O R T
|
||||||
|
from PySide2 import QtWidgets, QtCore, QtGui
|
||||||
|
from maya import cmds as mc
|
||||||
|
import maya.cmds as cmds
|
||||||
|
import maya.mel as mel
|
||||||
|
import json
|
||||||
|
from .Qt import QtWidgets, QtCore, QtCompat
|
||||||
|
import os
|
||||||
|
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
|
||||||
|
##---------------------------------------- Import Modules
|
||||||
|
import importlib
|
||||||
|
from . import ModIt_Global
|
||||||
|
importlib.reload(ModIt_Global)
|
||||||
|
from . import ModIt_CSS
|
||||||
|
importlib.reload(ModIt_CSS)
|
||||||
|
|
||||||
|
##---------------------------------------- Import Classes
|
||||||
|
from .Class import Collapsible
|
||||||
|
importlib.reload(Collapsible)
|
||||||
|
from .Modeling import Section_PRIMITIVES
|
||||||
|
importlib.reload(Section_PRIMITIVES)
|
||||||
|
from .Modeling import Section_COLORS
|
||||||
|
importlib.reload(Section_COLORS)
|
||||||
|
from .Modeling import Section_SETS
|
||||||
|
importlib.reload(Section_SETS)
|
||||||
|
from .Modeling import Section_SELECTIONS
|
||||||
|
importlib.reload(Section_SELECTIONS)
|
||||||
|
from .Modeling import Section_MESH
|
||||||
|
importlib.reload(Section_MESH)
|
||||||
|
from .Modeling import Section_TOOLS
|
||||||
|
importlib.reload(Section_TOOLS)
|
||||||
|
from .Modeling import Section_UTILITIES
|
||||||
|
importlib.reload(Section_UTILITIES)
|
||||||
|
|
||||||
|
from .Placement import Layout_PLACEMENT
|
||||||
|
importlib.reload(Layout_PLACEMENT)
|
||||||
|
|
||||||
|
from .Setting import Layout_SETTING
|
||||||
|
importlib.reload(Layout_SETTING)
|
||||||
|
from .Shading import Layout_SHADING
|
||||||
|
importlib.reload(Layout_SHADING)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##-------------------------------------------------------------------------- G L O B A L V A R
|
||||||
|
##PATH_SET
|
||||||
|
IconPath = ModIt_Global.IconsPathThemeClassic
|
||||||
|
PreferencePath = ModIt_Global.PreferencePath
|
||||||
|
ToolsPath = ModIt_Global.ToolPath
|
||||||
|
RessourcePath = ModIt_Global.RessourcePath
|
||||||
|
|
||||||
|
#GLOBAR VAR UI
|
||||||
|
WINDOW_TITLE = ModIt_Global.ModItTitle
|
||||||
|
|
||||||
|
|
||||||
|
##JSON PREF DATA
|
||||||
|
ADAP_HEIGHT = (json.load(open(PreferencePath + 'UI_Adapt_Height.json',"r"))['VALUE'])
|
||||||
|
TAB_OPEN =(json.load(open(PreferencePath + 'TabOpen.json',"r"))['TAB_OPEN'])
|
||||||
|
|
||||||
|
S_UTILITIES_VALUE =(json.load(open(PreferencePath + 'Section_Utilities.json',"r"))['VALUE'])
|
||||||
|
S_PRIMITIVES_VALUE =(json.load(open(PreferencePath + 'Section_Primitives.json',"r"))['VALUE'])
|
||||||
|
S_COLORS_VALUE =(json.load(open(PreferencePath + 'Section_Colors.json',"r"))['VALUE'])
|
||||||
|
S_SELECTIONS_VALUE =(json.load(open(PreferencePath + 'Section_Selections.json',"r"))['VALUE'])
|
||||||
|
S_MESH_VALUE =(json.load(open(PreferencePath + 'Section_Mesh.json',"r"))['VALUE'])
|
||||||
|
S_SETS_VALUE =(json.load(open(PreferencePath + 'Section_Sets.json',"r"))['VALUE'])
|
||||||
|
S_TOOLS_VALUE =(json.load(open(PreferencePath + 'Section_Tools.json',"r"))['VALUE'])
|
||||||
|
|
||||||
|
WIN_DISPLAY_SIZE =(json.load(open(PreferencePath + 'WinSize.json',"r"))['VALUE'])
|
||||||
|
|
||||||
|
DOCK =(json.load(open(PreferencePath + 'Dockable.json',"r"))['VALUE'])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##-------------------------------------------------------------------------- B U I L D U I
|
||||||
|
def maya_main_window():
|
||||||
|
main_window_ptr = omui.MQtUtil.mainWindow() ##Return the Maya main window widget as a Python object
|
||||||
|
return wrapInstance(int(main_window_ptr), QtWidgets.QWidget)
|
||||||
|
|
||||||
|
class ModIt_UI(QtWidgets.QDialog):
|
||||||
|
if DOCK == 0:
|
||||||
|
def __init__(self, parent=maya_main_window()):
|
||||||
|
super(ModIt_UI, self).__init__(parent)
|
||||||
|
##__________________________________________________________________ SAVE UI POSITION
|
||||||
|
self.settings_path = os.path.join(PreferencePath + "settingsFile.ini")
|
||||||
|
|
||||||
|
|
||||||
|
##__________________________________________________________________ WINDOWS SETTING
|
||||||
|
self.setWindowTitle(WINDOW_TITLE)
|
||||||
|
self.setFixedSize(340, ADAP_HEIGHT)
|
||||||
|
icon = QIcon(IconPath + "ModIt_Window_Ico.png")
|
||||||
|
self.setWindowIcon(icon)
|
||||||
|
|
||||||
|
self.buildUI()
|
||||||
|
|
||||||
|
else:
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super(ModIt_UI, self).__init__()
|
||||||
|
|
||||||
|
##__________________________________________________________________ SAVE UI POSITION
|
||||||
|
self.settings_path = os.path.join(PreferencePath + "settingsFile.ini")
|
||||||
|
self.setMinimumSize(400, 660)
|
||||||
|
self.buildUI()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def buildUI(self):
|
||||||
|
open(PreferencePath + 'JobNumber.json', "w").write(json.dumps({"JOB_NUMBER": 0}))
|
||||||
|
# ******************************************
|
||||||
|
# BUTTONS PARAMS
|
||||||
|
# ******************************************
|
||||||
|
Tab_iconFixeSize = 30
|
||||||
|
Tab_iconButtonSize = 24
|
||||||
|
iconFixeSize = ModIt_Global.iconFixeSize
|
||||||
|
iconButtonSize = ModIt_Global.iconButtonSize
|
||||||
|
separatorWidth = ModIt_Global.separatorWidth
|
||||||
|
|
||||||
|
##__________________// UI - Import CSS
|
||||||
|
self.setStyleSheet(ModIt_Global.Theme)
|
||||||
|
##_________________// Restore Previous Position
|
||||||
|
settings_obj = QtCore.QSettings(self.settings_path, QtCore.QSettings.IniFormat)
|
||||||
|
self.restoreGeometry(settings_obj.value("windowGeometry"))
|
||||||
|
##_________________// GLOBAL LAYOUT
|
||||||
|
GLOBAL_Lyt = QtWidgets.QVBoxLayout(self)
|
||||||
|
GLOBAL_Lyt.setSpacing(0)
|
||||||
|
GLOBAL_Lyt.setContentsMargins(0, 0, 0, 0)
|
||||||
|
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
##------------------------------------------------------------------------------------------------------// TABS
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
self.TABSBAR_Widget = QtWidgets.QWidget()
|
||||||
|
self.TABSBAR_Widget.setStyleSheet("background-color:#222222;") #TABS BG - Pose problem bg color
|
||||||
|
self.TABSBAR_Lyt = QtWidgets.QHBoxLayout(self.TABSBAR_Widget)
|
||||||
|
self.TABSBAR_Lyt.setAlignment(QtCore.Qt.AlignTop)
|
||||||
|
self.TABSBAR_Lyt.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.TABSBAR_Lyt.setSpacing(0)
|
||||||
|
GLOBAL_Lyt.addWidget(self.TABSBAR_Widget)
|
||||||
|
|
||||||
|
##______________________________________________________/ BTN MODELING TAB
|
||||||
|
self.ModelingTab_Btn = QtWidgets.QPushButton()
|
||||||
|
if TAB_OPEN == 0:
|
||||||
|
self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_ON.png"))
|
||||||
|
self.ModelingTab_Btn.setStyleSheet("background-color:#303030;")
|
||||||
|
else:
|
||||||
|
self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_OFF.png"))
|
||||||
|
self.ModelingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
self.ModelingTab_Btn.setFixedSize(Tab_iconFixeSize,Tab_iconFixeSize)
|
||||||
|
self.ModelingTab_Btn.setIconSize(QtCore.QSize(Tab_iconButtonSize, Tab_iconButtonSize))
|
||||||
|
self.ModelingTab_Btn.setToolTip(" ModIt ")
|
||||||
|
|
||||||
|
self.ModelingTab_Btn.clicked.connect(self.ModelingTab_ON)
|
||||||
|
self.TABSBAR_Lyt.addWidget(self.ModelingTab_Btn)
|
||||||
|
|
||||||
|
##______________________________________________________/ BTN SHADING TAB
|
||||||
|
self.ShadingTab_Btn = QtWidgets.QPushButton()
|
||||||
|
if TAB_OPEN == 1:
|
||||||
|
self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_ON.png"))
|
||||||
|
self.ShadingTab_Btn.setStyleSheet("background-color:#303030;")
|
||||||
|
else:
|
||||||
|
self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_OFF.png"))
|
||||||
|
self.ShadingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
|
||||||
|
self.ShadingTab_Btn.setFixedSize(Tab_iconFixeSize,Tab_iconFixeSize)
|
||||||
|
self.ShadingTab_Btn.setIconSize(QtCore.QSize(Tab_iconButtonSize, Tab_iconButtonSize))
|
||||||
|
|
||||||
|
self.ShadingTab_Btn.clicked.connect(self.ShadingTab_ON)
|
||||||
|
self.ShadingTab_Btn.setToolTip(" ViewportIt ")
|
||||||
|
self.TABSBAR_Lyt.addWidget(self.ShadingTab_Btn)
|
||||||
|
|
||||||
|
##______________________________________________________/ BTN PLACEMENT TAB
|
||||||
|
self.PlacementTab_Btn = QtWidgets.QPushButton()
|
||||||
|
if TAB_OPEN == 2:
|
||||||
|
self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "PLACEMENT_ON.png"))
|
||||||
|
self.PlacementTab_Btn.setStyleSheet("background-color:#303030;")
|
||||||
|
else:
|
||||||
|
self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "PLACEMENT_OFF.png"))
|
||||||
|
self.PlacementTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
self.PlacementTab_Btn.setFixedSize(Tab_iconFixeSize,Tab_iconFixeSize)
|
||||||
|
self.PlacementTab_Btn.setIconSize(QtCore.QSize(Tab_iconButtonSize, Tab_iconButtonSize))
|
||||||
|
|
||||||
|
self.PlacementTab_Btn.clicked.connect(self.PlacementTab_ON)
|
||||||
|
self.PlacementTab_Btn.setToolTip(" Placement ")
|
||||||
|
self.TABSBAR_Lyt.addWidget(self.PlacementTab_Btn)
|
||||||
|
|
||||||
|
|
||||||
|
##______________________________________________________/ BTN SETTING TAB
|
||||||
|
self.SettingTab_Btn = QtWidgets.QPushButton()
|
||||||
|
if TAB_OPEN == 3:
|
||||||
|
self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_ON.png"))
|
||||||
|
self.SettingTab_Btn.setStyleSheet("background-color:#303030;")
|
||||||
|
else:
|
||||||
|
self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_OFF.png"))
|
||||||
|
self.SettingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
self.SettingTab_Btn.setFixedSize(Tab_iconFixeSize,Tab_iconFixeSize)
|
||||||
|
self.SettingTab_Btn.setIconSize(QtCore.QSize(Tab_iconButtonSize, Tab_iconButtonSize))
|
||||||
|
|
||||||
|
self.SettingTab_Btn.clicked.connect(self.SettingTab_ON)
|
||||||
|
self.SettingTab_Btn.setToolTip(" Setting ")
|
||||||
|
self.TABSBAR_Lyt.addWidget(self.SettingTab_Btn)
|
||||||
|
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
##------------------------------------------------------------------------------------------------------// T A B M O D E L I N G
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
self.TAB_MODELING_Widget = QtWidgets.QWidget()
|
||||||
|
GLOBAL_Lyt.addWidget(self.TAB_MODELING_Widget)
|
||||||
|
self.ALL_SECTIONS_HLyt = QtWidgets.QVBoxLayout(self.TAB_MODELING_Widget)
|
||||||
|
self.ALL_SECTIONS_HLyt.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.ALL_SECTIONS_HLyt.setSpacing(5)# BETWEEN SECTIONS
|
||||||
|
self.ALL_SECTIONS_HLyt.setAlignment(QtCore.Qt.AlignTop)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##_________________________________________________________________________________________________________________/ U T I L I T E S
|
||||||
|
self.Collapsible_wdg_SETS = Collapsible.CollapsibleWidget("U T I L I T E S")
|
||||||
|
self.Collapsible_wdg_SETS.set_expanded(S_UTILITIES_VALUE)
|
||||||
|
self.Collapsible_wdg_SETS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Utilities", 40))
|
||||||
|
self.Collapsible_wdg_SETS.add_widget(Section_UTILITIES.UTILITIES_LAYOUT())
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_SETS)
|
||||||
|
## _____________________________________________________/ Separator
|
||||||
|
self.ALL_SECTIONS_HLyt.addSpacing(2)
|
||||||
|
self.Separator = QtWidgets.QLabel()
|
||||||
|
self.Separator.setFixedSize(2000,2)
|
||||||
|
self.Separator.setStyleSheet("background-color:#262626;")
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Separator)
|
||||||
|
|
||||||
|
|
||||||
|
##_________________________________________________________________________________________________________________/ P R I M I T I V E S
|
||||||
|
self.Collapsible_wdg_PRIMITIVES = Collapsible.CollapsibleWidget("P R I M I T I V E S")
|
||||||
|
self.Collapsible_wdg_PRIMITIVES.set_expanded(S_PRIMITIVES_VALUE)
|
||||||
|
self.Collapsible_wdg_PRIMITIVES.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Primitives", 40))
|
||||||
|
self.Collapsible_wdg_PRIMITIVES.add_widget(Section_PRIMITIVES.PRIMITIVES_LAYOUT())
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_PRIMITIVES)
|
||||||
|
## _____________________________________________________/ Separator
|
||||||
|
self.ALL_SECTIONS_HLyt.addSpacing(2)
|
||||||
|
self.Separator = QtWidgets.QLabel()
|
||||||
|
self.Separator.setFixedSize(2000,2)
|
||||||
|
self.Separator.setStyleSheet("background-color:#262626;")
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Separator)
|
||||||
|
|
||||||
|
|
||||||
|
##_________________________________________________________________________________________________________________/ C O L O R S
|
||||||
|
self.Collapsible_wdg_COLORS = Collapsible.CollapsibleWidget("C O L O R S")
|
||||||
|
self.Collapsible_wdg_COLORS.set_expanded(S_COLORS_VALUE)
|
||||||
|
self.Collapsible_wdg_COLORS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Colors", 40))
|
||||||
|
self.Collapsible_wdg_COLORS.add_widget(Section_COLORS.COLORS_LAYOUT())
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_COLORS)
|
||||||
|
## _____________________________________________________/ Separator
|
||||||
|
self.ALL_SECTIONS_HLyt.addSpacing(2)
|
||||||
|
self.Separator = QtWidgets.QLabel()
|
||||||
|
self.Separator.setFixedSize(2000,2)
|
||||||
|
self.Separator.setStyleSheet("background-color:#262626;")
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Separator)
|
||||||
|
|
||||||
|
|
||||||
|
##_________________________________________________________________________________________________________________/ S E L E C T I O N S
|
||||||
|
self.Collapsible_wdg_SELECTIONS = Collapsible.CollapsibleWidget("S E L E C T I O N S")
|
||||||
|
self.Collapsible_wdg_SELECTIONS.set_expanded(S_SELECTIONS_VALUE)
|
||||||
|
self.Collapsible_wdg_SELECTIONS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Selections", 40))
|
||||||
|
self.Collapsible_wdg_SELECTIONS.add_widget(Section_SELECTIONS.SELECTIONS_LAYOUT())
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_SELECTIONS)
|
||||||
|
## _____________________________________________________/ Separator
|
||||||
|
self.ALL_SECTIONS_HLyt.addSpacing(2)
|
||||||
|
self.Separator = QtWidgets.QLabel()
|
||||||
|
self.Separator.setFixedSize(2000,2)
|
||||||
|
self.Separator.setStyleSheet("background-color:#262626;")
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Separator)
|
||||||
|
|
||||||
|
##_________________________________________________________________________________________________________________/ M E S H
|
||||||
|
self.Collapsible_wdg_MESH = Collapsible.CollapsibleWidget("M E S H")
|
||||||
|
self.Collapsible_wdg_MESH.set_expanded(S_MESH_VALUE)
|
||||||
|
self.Collapsible_wdg_MESH.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Mesh", 110))
|
||||||
|
self.Collapsible_wdg_MESH.add_widget(Section_MESH.MESH_LAYOUT())
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_MESH)
|
||||||
|
## _____________________________________________________/ Separator
|
||||||
|
self.ALL_SECTIONS_HLyt.addSpacing(2)
|
||||||
|
self.Separator = QtWidgets.QLabel()
|
||||||
|
self.Separator.setFixedSize(2000,2)
|
||||||
|
self.Separator.setStyleSheet("background-color:#262626;")
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Separator)
|
||||||
|
|
||||||
|
|
||||||
|
##_________________________________________________________________________________________________________________/ S E T S
|
||||||
|
self.Collapsible_wdg_SETS = Collapsible.CollapsibleWidget("S E T S")
|
||||||
|
self.Collapsible_wdg_SETS.set_expanded(S_SETS_VALUE)
|
||||||
|
self.Collapsible_wdg_SETS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Sets", 85))
|
||||||
|
self.Collapsible_wdg_SETS.add_widget(Section_SETS.SETS_LAYOUT())
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_SETS)
|
||||||
|
## _____________________________________________________/ Separator
|
||||||
|
self.ALL_SECTIONS_HLyt.addSpacing(2)
|
||||||
|
self.Separator = QtWidgets.QLabel()
|
||||||
|
self.Separator.setFixedSize(2000,2)
|
||||||
|
self.Separator.setStyleSheet("background-color:#262626;")
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Separator)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##_________________________________________________________________________________________________________________/ T O O L S
|
||||||
|
self.Collapsible_wdg_TOOLS = Collapsible.CollapsibleWidget("T O O L S")
|
||||||
|
self.Collapsible_wdg_TOOLS.set_expanded(S_TOOLS_VALUE)
|
||||||
|
self.Collapsible_wdg_TOOLS.collapsed_signal.connect(partial(self.Section_OpenClose_btn, "Tools", 40))
|
||||||
|
self.Collapsible_wdg_TOOLS.add_widget(Section_TOOLS.TOOLS_LAYOUT())
|
||||||
|
self.ALL_SECTIONS_HLyt.addWidget(self.Collapsible_wdg_TOOLS)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
##------------------------------------------------------------------------------------------------------// T A B S H A D I N G
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
self.TAB_SHADING_Widget = QtWidgets.QWidget()
|
||||||
|
GLOBAL_Lyt.addWidget(self.TAB_SHADING_Widget)
|
||||||
|
self.TAB_SHADING_Lyt = QtWidgets.QVBoxLayout(self.TAB_SHADING_Widget)
|
||||||
|
self.TAB_SHADING_Lyt.addWidget(Layout_SHADING.SHADING_LAYOUT())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
##------------------------------------------------------------------------------------------------------// T A B P L A C E M E N T
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
self.TAB_PLACEMENT_Widget = QtWidgets.QWidget()
|
||||||
|
GLOBAL_Lyt.addWidget(self.TAB_PLACEMENT_Widget)
|
||||||
|
self.TAB_PLACEMENT_Lyt = QtWidgets.QVBoxLayout(self.TAB_PLACEMENT_Widget)
|
||||||
|
self.TAB_PLACEMENT_Lyt.addWidget(Layout_PLACEMENT.PLACEMENT_LAYOUT())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
##------------------------------------------------------------------------------------------------------// T A B S E T T I N G
|
||||||
|
##------------------------------------------------------------------------------------//
|
||||||
|
self.TAB_SETTING_Widget = QtWidgets.QWidget()
|
||||||
|
GLOBAL_Lyt.addWidget(self.TAB_SETTING_Widget)
|
||||||
|
self.TAB_SETTING_Lyt = QtWidgets.QVBoxLayout(self.TAB_SETTING_Widget)
|
||||||
|
self.TAB_SETTING_Lyt.addWidget(Layout_SETTING.SETTING_LAYOUT())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##__________________________________________________________________// UI - END
|
||||||
|
self.ALL_SECTIONS_HLyt.addStretch()
|
||||||
|
self.TAB_SHADING_Lyt.addStretch()
|
||||||
|
self.TAB_PLACEMENT_Lyt.addStretch()
|
||||||
|
self.TAB_SETTING_Lyt.addStretch()
|
||||||
|
|
||||||
|
##_______________/ AT SCRIPT OPENING SET HIDE/SHOW TABS
|
||||||
|
if TAB_OPEN == 0:
|
||||||
|
self.ModelingTab_ON()
|
||||||
|
if TAB_OPEN == 1:
|
||||||
|
self.ShadingTab_ON()
|
||||||
|
if TAB_OPEN == 2:
|
||||||
|
self.PlacementTab_ON()
|
||||||
|
if TAB_OPEN == 3:
|
||||||
|
self.SettingTab_ON()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##_________________________________________________________________________________// ACTIONS DEF
|
||||||
|
##_____________________________________________________________
|
||||||
|
##______________________________________________________/ TABS BAR
|
||||||
|
def ModelingTab_ON(self):
|
||||||
|
ADAP_HEIGHT = (json.load(open(PreferencePath + 'UI_Adapt_Height.json', "r"))['VALUE'])
|
||||||
|
self.TAB_MODELING_Widget.show()
|
||||||
|
self.TAB_SHADING_Widget.hide()
|
||||||
|
self.TAB_PLACEMENT_Widget.hide()
|
||||||
|
self.TAB_SETTING_Widget.hide()
|
||||||
|
|
||||||
|
if DOCK == 0:
|
||||||
|
self.setFixedHeight(ADAP_HEIGHT)
|
||||||
|
self.resize(self.width(), ADAP_HEIGHT)
|
||||||
|
|
||||||
|
self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_ON.png"))
|
||||||
|
self.ModelingTab_Btn.setStyleSheet("background-color:#303030;") # TABS BTN BG - ACTIF
|
||||||
|
|
||||||
|
self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_OFF.png"))
|
||||||
|
self.ShadingTab_Btn.setStyleSheet("QPushButton{background-color :#292929;}\QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "TabScrew_OFF.png"))
|
||||||
|
self.PlacementTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
|
||||||
|
self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_OFF.png"))
|
||||||
|
self.SettingTab_Btn.setStyleSheet("QPushButton{background-color :#292929;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
|
||||||
|
open(PreferencePath + 'TabOpen.json', "w").write(json.dumps({"TAB_OPEN" : 0}))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def ShadingTab_ON(self):
|
||||||
|
self.TAB_MODELING_Widget.hide()
|
||||||
|
self.TAB_SHADING_Widget.show()
|
||||||
|
self.TAB_PLACEMENT_Widget.hide()
|
||||||
|
self.TAB_SETTING_Widget.hide()
|
||||||
|
|
||||||
|
if DOCK == 0:
|
||||||
|
if WIN_DISPLAY_SIZE == 0: # 125
|
||||||
|
self.setFixedHeight(535)
|
||||||
|
else:
|
||||||
|
self.setFixedHeight(555)
|
||||||
|
self.resize(self.width(), 40)
|
||||||
|
|
||||||
|
self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_ON.png"))
|
||||||
|
self.ShadingTab_Btn.setStyleSheet("background-color:#303030;")
|
||||||
|
|
||||||
|
|
||||||
|
self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_OFF.png"))
|
||||||
|
self.ModelingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "TabScrew_OFF.png"))
|
||||||
|
self.PlacementTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
|
||||||
|
self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_OFF.png"))
|
||||||
|
self.SettingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
open(PreferencePath + 'TabOpen.json', "w").write(json.dumps({"TAB_OPEN" : 1}))
|
||||||
|
|
||||||
|
def PlacementTab_ON(self):
|
||||||
|
self.TAB_MODELING_Widget.hide()
|
||||||
|
self.TAB_SHADING_Widget.hide()
|
||||||
|
self.TAB_PLACEMENT_Widget.show()
|
||||||
|
self.TAB_SETTING_Widget.hide()
|
||||||
|
|
||||||
|
if DOCK == 0:
|
||||||
|
self.setFixedHeight(680)
|
||||||
|
self.resize(self.width(), 40)
|
||||||
|
|
||||||
|
self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "TabScrew_ON.png"))
|
||||||
|
self.PlacementTab_Btn.setStyleSheet("background-color:#303030;")
|
||||||
|
|
||||||
|
self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_OFF.png"))
|
||||||
|
self.ModelingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
|
||||||
|
self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_OFF.png"))
|
||||||
|
self.ShadingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_OFF.png"))
|
||||||
|
self.SettingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
|
||||||
|
open(PreferencePath + 'TabOpen.json', "w").write(json.dumps({"TAB_OPEN" : 2}))
|
||||||
|
|
||||||
|
|
||||||
|
def SettingTab_ON(self):
|
||||||
|
self.TAB_MODELING_Widget.hide()
|
||||||
|
self.TAB_SHADING_Widget.hide()
|
||||||
|
self.TAB_PLACEMENT_Widget.hide()
|
||||||
|
self.TAB_SETTING_Widget.show()
|
||||||
|
|
||||||
|
if DOCK == 0:
|
||||||
|
if WIN_DISPLAY_SIZE == 0: # 125
|
||||||
|
self.setFixedHeight(440)
|
||||||
|
else:
|
||||||
|
self.setFixedHeight(480)
|
||||||
|
|
||||||
|
|
||||||
|
self.resize(self.width(), 40)
|
||||||
|
|
||||||
|
self.SettingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SETTING_ON.png"))
|
||||||
|
self.SettingTab_Btn.setStyleSheet("background-color:#303030;")
|
||||||
|
|
||||||
|
self.ModelingTab_Btn.setIcon(QtGui.QIcon(IconPath + "MODELING_OFF.png"))
|
||||||
|
self.ModelingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
self.PlacementTab_Btn.setIcon(QtGui.QIcon(IconPath + "TabScrew_OFF.png"))
|
||||||
|
self.PlacementTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
|
||||||
|
self.ShadingTab_Btn.setIcon(QtGui.QIcon(IconPath + "SHADING_OFF.png"))
|
||||||
|
self.ShadingTab_Btn.setStyleSheet("QPushButton{background-color :#272727;}\ QPushButton::hover{background-color : #343434;}")
|
||||||
|
|
||||||
|
open(PreferencePath + 'TabOpen.json', "w").write(json.dumps({"TAB_OPEN" : 3}))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def Section_OpenClose_btn(self, name, size, signal):
|
||||||
|
ADAP_HEIGHT = (json.load(open(PreferencePath + 'UI_Adapt_Height.json',"r"))['VALUE'])
|
||||||
|
userWidht = self.width()
|
||||||
|
|
||||||
|
if signal == 1:
|
||||||
|
NEW_ADAP_HEIGHT = ADAP_HEIGHT + size
|
||||||
|
self.setMinimumHeight(NEW_ADAP_HEIGHT)
|
||||||
|
self.resize(userWidht, NEW_ADAP_HEIGHT)
|
||||||
|
open(PreferencePath + 'Section_' + str(name) + '.json', "w").write(json.dumps({"VALUE": 1}))
|
||||||
|
open(PreferencePath + 'UI_Adapt_Height.json', "w").write(json.dumps({"VALUE": NEW_ADAP_HEIGHT}))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
else:
|
||||||
|
NEW_ADAP_HEIGHT = ADAP_HEIGHT - size
|
||||||
|
self.setMinimumHeight(NEW_ADAP_HEIGHT)
|
||||||
|
self.resize(userWidht, NEW_ADAP_HEIGHT)
|
||||||
|
open(PreferencePath + 'Section_'+ str(name) + '.json', "w").write(json.dumps({"VALUE": 0}))
|
||||||
|
open(PreferencePath + 'UI_Adapt_Height.json', "w").write(json.dumps({"VALUE": NEW_ADAP_HEIGHT}))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def closeEvent(self, event):
|
||||||
|
# Save window's geometry
|
||||||
|
settings_obj = QtCore.QSettings(self.settings_path, QtCore.QSettings.IniFormat)
|
||||||
|
settings_obj.setValue("windowGeometry", self.saveGeometry())
|
||||||
|
|
||||||
|
##KILL INTERACTIVE PRIM SCRIPT JOB
|
||||||
|
JOB_NUMBER = (json.load(open(PreferencePath + 'JobNumber.json', "r"))['JOB_NUMBER'])
|
||||||
|
try:
|
||||||
|
mc.scriptJob(kill=JOB_NUMBER, force=True)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
##DELETE PopUp UI
|
||||||
|
if mc.window("Bevel2", exists=True):
|
||||||
|
mc.deleteUI("Bevel2")
|
||||||
|
if mc.window("Bend", exists=True):
|
||||||
|
mc.deleteUI("Bend")
|
||||||
|
if mc.window("Linear Duplication", exists=True):
|
||||||
|
mc.deleteUI("Linear Duplication")
|
||||||
|
if mc.window("Radial Duplication", exists=True):
|
||||||
|
mc.deleteUI("Radial Duplication")
|
||||||
|
if mc.window("Curve Duplication", exists=True):
|
||||||
|
mc.deleteUI("Curve Duplication")
|
||||||
|
##_____________________________________________________________
|
||||||
|
##_________________________________________________________________________________// UI
|
||||||
|
##_____________________________________________________________
|
||||||
|
|
||||||
|
|
||||||
|
if DOCK == 0:
|
||||||
|
try:
|
||||||
|
UI.close() # pylint: disable=E0601
|
||||||
|
UI.deleteLater()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
UI = ModIt_UI()
|
||||||
|
UI.show()
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def Dock(Widget, width=200, height=200, hp="free", show=True):
|
||||||
|
name = ModIt_Global.ModItTitle
|
||||||
|
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 MODIT CLOSE")
|
||||||
|
if mc.window("ModIt_Global.ModItTitle", exists=True):
|
||||||
|
mc.deleteUI("ModIt_Global.ModItTitle")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def showUI():
|
||||||
|
ui = Dock(ModIt_UI)
|
||||||
|
ui.show()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# # Get a pointer and convert it to Qt Widget object
|
||||||
|
# qw = omui.MQtUtil.findWindow(ModIt_Global.ModItTitle)
|
||||||
|
# try:
|
||||||
|
# widget = wrapInstance(int(qw), QWidget)
|
||||||
|
# # Create a QIcon object
|
||||||
|
# icon = QIcon(IconPath + "ModIt_Window_Ico.png")
|
||||||
|
# # Assign the icon
|
||||||
|
# widget.setWindowIcon(icon)
|
||||||
|
# except:
|
||||||
|
# pass # Pour si on reload alos qu'il est dock
|
||||||
|
|
||||||
|
# return ui
|
1834
Scripts/Modeling/Edit/ModIt/Qt.py
Normal file
1834
Scripts/Modeling/Edit/ModIt/Qt.py
Normal file
File diff suppressed because it is too large
Load Diff
4
Scripts/Modeling/Edit/ModIt/__init__.py
Normal file
4
Scripts/Modeling/Edit/ModIt/__init__.py
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from . import *
|
129
Scripts/Modeling/Edit/ModIt/workspace_control.py
Normal file
129
Scripts/Modeling/Edit/ModIt/workspace_control.py
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
from PySide2 import QtCore
|
||||||
|
from PySide2 import QtWidgets
|
||||||
|
from shiboken2 import getCppPointer
|
||||||
|
|
||||||
|
import maya.OpenMayaUI as omui
|
||||||
|
import maya.cmds as cmds
|
||||||
|
|
||||||
|
|
||||||
|
class WorkspaceControl(object):
|
||||||
|
|
||||||
|
def __init__(self, name):
|
||||||
|
self.name = name
|
||||||
|
self.widget = None
|
||||||
|
|
||||||
|
def create(self, label, widget, ui_script=None):
|
||||||
|
|
||||||
|
cmds.workspaceControl(self.name, label=label)
|
||||||
|
|
||||||
|
if ui_script:
|
||||||
|
cmds.workspaceControl(self.name, e=True, uiScript=ui_script)
|
||||||
|
|
||||||
|
self.add_widget_to_layout(widget)
|
||||||
|
self.set_visible(True)
|
||||||
|
|
||||||
|
def restore(self, widget):
|
||||||
|
self.add_widget_to_layout(widget)
|
||||||
|
|
||||||
|
def add_widget_to_layout(self, widget):
|
||||||
|
if widget:
|
||||||
|
self.widget = widget
|
||||||
|
self.widget.setAttribute(QtCore.Qt.WA_DontCreateNativeAncestors)
|
||||||
|
|
||||||
|
if sys.version_info.major >= 3:
|
||||||
|
workspace_control_ptr = int(omui.MQtUtil.findControl(self.name))
|
||||||
|
widget_ptr = int(getCppPointer(self.widget)[0])
|
||||||
|
else:
|
||||||
|
workspace_control_ptr = long(omui.MQtUtil.findControl(self.name))
|
||||||
|
widget_ptr = long(getCppPointer(self.widget)[0])
|
||||||
|
|
||||||
|
omui.MQtUtil.addWidgetToMayaLayout(widget_ptr, workspace_control_ptr)
|
||||||
|
|
||||||
|
def exists(self):
|
||||||
|
return cmds.workspaceControl(self.name, q=True, exists=True)
|
||||||
|
|
||||||
|
def is_visible(self):
|
||||||
|
return cmds.workspaceControl(self.name, q=True, visible=True)
|
||||||
|
|
||||||
|
def set_visible(self, visible):
|
||||||
|
if visible:
|
||||||
|
cmds.workspaceControl(self.name, e=True, restore=True)
|
||||||
|
else:
|
||||||
|
cmds.workspaceControl(self.name, e=True, visible=False)
|
||||||
|
|
||||||
|
def set_label(self, label):
|
||||||
|
cmds.workspaceControl(self.name, e=True, label=label)
|
||||||
|
|
||||||
|
def is_floating(self):
|
||||||
|
return cmds.workspaceControl(self.name, q=True, floating=True)
|
||||||
|
|
||||||
|
def is_collapsed(self):
|
||||||
|
return cmds.workspaceControl(self.name, q=True, collapse=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class DockableUI(QtWidgets.QWidget):
|
||||||
|
|
||||||
|
WINDOW_TITLE = "DockableUI"
|
||||||
|
|
||||||
|
ui_instance = None
|
||||||
|
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def display(cls):
|
||||||
|
if cls.ui_instance:
|
||||||
|
cls.ui_instance.show_workspace_control()
|
||||||
|
else:
|
||||||
|
cls.ui_instance = cls()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_workspace_control_name(cls):
|
||||||
|
return "{0}WorkspaceControl".format(cls.__name__)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_ui_script(cls):
|
||||||
|
module_name = cls.__module__
|
||||||
|
if module_name == "__main__":
|
||||||
|
module_name = cls.module_name_override
|
||||||
|
|
||||||
|
ui_script = "from {0} import {1}\n{1}.display()".format(module_name, cls.__name__)
|
||||||
|
return ui_script
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(DockableUI, self).__init__()
|
||||||
|
|
||||||
|
self.setObjectName(self.__class__.__name__)
|
||||||
|
|
||||||
|
self.create_actions()
|
||||||
|
self.create_widgets()
|
||||||
|
self.create_layout()
|
||||||
|
self.create_connections()
|
||||||
|
self.create_workspace_control()
|
||||||
|
|
||||||
|
def create_actions(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def create_widgets(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def create_layout(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def create_connections(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def create_workspace_control(self):
|
||||||
|
self.workspace_control_instance = WorkspaceControl(self.get_workspace_control_name())
|
||||||
|
if self.workspace_control_instance.exists():
|
||||||
|
self.workspace_control_instance.restore(self)
|
||||||
|
else:
|
||||||
|
self.workspace_control_instance.create(self.WINDOW_TITLE, self, ui_script=self.get_ui_script())
|
||||||
|
|
||||||
|
def show_workspace_control(self):
|
||||||
|
self.workspace_control_instance.set_visible(True)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user