Files
NexusLauncher/config/constants.py
2025-11-23 20:41:50 +08:00

384 lines
8.8 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Application Constants
--------------------
应用程序的常量定义,按功能模块分类
"""
# ==================== 默认路径 ====================
# 默认项目文件夹路径
DEFAULT_WORKSPACE_PATH = "D:\\Workspace"
# 默认Maya插件文件夹路径
DEFAULT_MAYA_PLUGINS_PATH = "D:\\Plugins\\Maya"
# 默认SPShelf文件夹路径
DEFAULT_SP_SHELF_PATH = "D:\\Plugins\\SPShelf"
# ==================== 项目模板配置 ====================
# 默认任务类型文件夹模板
DEFAULT_TASK_FOLDER_TEMPLATES = {
"Character": [
"Reference",
"MP",
"HP",
"LP",
"Baking",
"Baking/HP",
"Baking/LP",
"Texture",
"Texture/MeshMaps",
"Texture/SP",
"FBX",
"Screenshot"
],
"Weapon": [
"Reference",
"MP",
"HP",
"LP",
"Baking",
"Baking/HP",
"Baking/LP",
"Texture",
"Texture/MeshMaps",
"Texture/SP",
"FBX",
"Screenshot"
],
"Prop": [
"Reference",
"MP",
"HP",
"LP",
"Baking",
"Baking/HP",
"Baking/LP",
"Texture",
"Texture/MeshMaps",
"Texture/SP",
"FBX",
"Screenshot"
],
"Environment": [
"Reference",
"MP",
"HP",
"LP",
"Baking",
"Baking/HP",
"Baking/LP",
"Texture",
"Texture/MeshMaps",
"Texture/SP",
"FBX",
"Screenshot"
],
"Animation": [
"Reference",
"Maya",
"FBX",
"Mocap"
],
"Rigging": [
"Source",
"Maya",
"FBX"
],
"Other": [
"Reference",
"MP",
"HP",
"LP",
"Baking",
"Baking/HP",
"Baking/LP",
"Texture",
"Texture/MeshMaps",
"Texture/SP",
"FBX",
"Screenshot"
]
}
# ==================== 图标映射配置 ====================
# 应用名称到图标的映射
APP_ICON_MAPPING = {
"maya": "Maya",
"maya2025": "Maya",
"maya2026": "Maya",
"maya2027": "Maya",
"maya2028": "Maya",
"maya2029": "Maya",
"maya2020": "Maya",
"maya2021": "Maya",
"maya2022": "Maya",
"maya2023": "Maya",
"maya2024": "Maya",
"ma": "Maya",
"3dsmax": "3DsMax",
"3ds": "3DsMax",
"3ds-max": "3DsMax",
"max": "3DsMax",
"blender": "Blender",
"photoshop": "Photoshop",
"painter": "SubstancePainter",
"3dpainter": "SubstancePainter",
"substancepainter": "SubstancePainter",
"substance3dpainter": "SubstancePainter",
"sp": "SubstancePainter",
"designer": "SubstanceDesigner",
"3ddesigner": "SubstanceDesigner",
"substancedesigner": "SubstanceDesigner",
"substance3ddesigner": "SubstanceDesigner",
"sd": "SubstanceDesigner",
"marvelousdesigner": "MarvelousDesigner",
"marvelous": "MarvelousDesigner",
"md": "MarvelousDesigner",
"marvelousdesigner": "MarvelousDesigner",
"marvelous": "MarvelousDesigner",
"rizom": "RizomUV",
"rizomuv": "RizomUV",
"zbrush": "Zbrush",
"ue": "UnrealEngine",
"ue4": "UnrealEngine",
"ue5": "UnrealEngine",
"ue6": "UnrealEngine",
"unrealengine": "UnrealEngine",
"unrealtoolbox": "UnrealEngine",
"unrealgamesync": "UnrealGameSync",
"ugs": "UnrealGameSync",
"uefn": "UEFN",
"marmoset": "MarmosetToolBag",
"marmosettoolbag": "MarmosetToolBag",
"toolbag": "MarmosetToolBag",
"3dcoat": "3DCoat",
"houdini": "Houdini",
"houdinifx": "Houdini",
"houdiniengine": "Houdini",
"everything": "Everything",
"billfish": "Billfish",
"eagle": "Eagle"
}
# ==================== 通用UI常量 ====================
# 预设颜色列表
PRESET_COLORS = [
"#607d8b", # 蓝灰色(默认)
"#2196f3", # 蓝色
"#f44336", # 红色
"#4caf50", # 绿色
"#ff9800", # 橙色
"#9c27b0", # 紫色
"#00bcd4", # 青色
"#ffeb3b", # 黄色
"#009688", # 青绿色
"#673ab7", # 深紫色
"#3f51b5", # 青蓝色
"#795548" # 棕色
]
# 基础颜色
BG_COLOR_DARK = "#2b2b2b"
BG_COLOR_LIGHT = "#3a3a3a"
BG_COLOR_FRAME = "#3a3a3a"
BG_COLOR_BUTTON = "#4a5568"
BG_COLOR_BUTTON_HOVER = "#2d3748"
COLOR_TRANSPARENT = "transparent"
BORDER_COLOR = "#555555"
BORDER_COLOR_WHITE = "#ffffff"
LINE_COLOR_GRAY = "#aaaaaa"
# 文本颜色
TEXT_COLOR_PRIMARY = "white"
TEXT_COLOR_SECONDARY = "gray"
TEXT_COLOR_WHITE = "#ffffff"
# 状态颜色
COLOR_SUCCESS = "#28a745"
COLOR_SUCCESS_HOVER = "#218838"
COLOR_ERROR = "#dc3545"
COLOR_ERROR_HOVER = "#c82333"
COLOR_WARNING = "#ffc107"
COLOR_INFO = "#17a2b8"
# 通用按钮颜色
BUTTON_GRAY = "#757575"
BUTTON_GRAY_HOVER = "#616161"
BUTTON_RED = "#d32f2f"
BUTTON_RED_HOVER = "#b71c1c"
BUTTON_BLUE = "#2d6ba0"
BUTTON_BLUE_HOVER = "#1d5b90"
BUTTON_GREEN = "#3a8545"
BUTTON_GREEN_HOVER = "#2a7535"
# 对话框颜色
DIALOG_BG_COLOR = "#2b2b2b"
DIALOG_TEXT_COLOR = "#e0e0e0"
# 拖拽和选择颜色
DRAG_HIGHLIGHT_COLOR = "#3584e4"
DRAG_HIGHLIGHT_BG = "#2a3f52"
SELECTION_BORDER = "#1e5a96" # 更深的蓝色边框
SELECTION_BG = "#2d3441" # 选择时的背景色(更亮一些,保持可读性)
# ==================== 主窗口常量 ====================
# 滚动条颜色 - 与卡片颜色统一
SCROLLBAR_COLOR = "#2b2b2b" # 与卡片背景色一致
SCROLLBAR_HOVER_COLOR = "#3a3a3a" # 悬停时稍亮一些
# 分段按钮颜色
SEGMENTED_BUTTON_SELECTED_COLOR = "#4a5568"
SEGMENTED_BUTTON_SELECTED_HOVER_COLOR = "#2d3748"
SEGMENTED_BUTTON_UNSELECTED_COLOR = "#3a3a3a"
SEGMENTED_BUTTON_UNSELECTED_HOVER_COLOR = "#4a4a4a"
# 下拉菜单颜色
DROPDOWN_FG_COLOR = "#2b2b2b"
DROPDOWN_HOVER_COLOR = "#4a5568"
# ==================== 项目管理面板常量 ====================
# 项目面板背景颜色(与任务面板保持一致)
PROJECT_PANEL_BG_LIGHT = "#3B4252"
PROJECT_PANEL_BG_DARK = "#2E3440"
# ==================== 设置窗口常量 ====================
# 特殊按钮颜色
SAVE_BUTTON_COLOR = "#2e7d32"
SAVE_BUTTON_HOVER = "#1b5e20"
SAVE_BUTTON_BORDER = "#34d058"
# ==================== 任务管理面板常量 ====================
# 任务面板颜色
TASK_PANEL_BG_LIGHT = "#3B4252"
TASK_PANEL_BG_DARK = "#2E3440"
# 重置按钮颜色
RESET_BUTTON_BORDER = "#868e96"
# ==================== 节点编辑器常量 ====================
# 画布和网格颜色
NODE_CANVAS_BG = "#1a202c"
NODE_GRID_COLOR = "#2d3748"
# 节点颜色
NODE_BG_COLOR = "#2d2d2d"
NODE_BORDER_COLOR = "#3a3a3a"
NODE_SELECTED_BORDER = "#00d9ff"
NODE_ID_TEXT_COLOR = "#888888"
# 连接点和连接线颜色
NODE_INPUT_COLOR = "#5a9fd4"
NODE_OUTPUT_COLOR = "#10b981"
NODE_CONNECTION_COLOR = "#5a9fd4"
NODE_CONNECTION_SELECTED = "#ff6b6b"
# 节点颜色调色板
NODE_COLOR_PALETTE = [
"#5a9fd4", # 蓝色
"#10b981", # 绿色
"#d97706", # 橙色
"#dc2626", # 红色
"#8b5cf6", # 紫色
"#ec4899", # 粉色
"#06b6d4", # 青色
"#f59e0b", # 黄色
"#6366f1", # 靛蓝
"#14b8a6", # 青绿
"#f97316", # 深橙
"#a855f7", # 紫罗兰
]
# ==================== 通用尺寸常量 ====================
# 窗口尺寸常量
# 主窗口尺寸
CONSOLE_WINDOW_SIZE = "600x400"
# 设置窗口尺寸
SETTINGS_WINDOW_SIZE = "650x800"
# SubFolder Editor 窗口尺寸
SUBFOLDER_EDITOR_WINDOW_SIZE = "1200x900"
SUBFOLDER_EDITOR_MIN_SIZE = (1000, 800)
# 对话框尺寸
DIALOG_INPUT_SIZE = "400x220"
DIALOG_CONFIRM_SIZE = "450x200"
DIALOG_APP_EDIT_SIZE = "650x700"
DIALOG_ICON_SELECT_SIZE = "600x400"
DIALOG_MESSAGE_SIZE = "400x250"
DIALOG_YES_NO_SIZE = "450x250"
DIALOG_NODE_RENAME_SIZE = "400x180"
# 对话框尺寸 (width, height) - 保持向后兼容
DIALOG_SIZE_SMALL = (400, 220)
DIALOG_SIZE_MEDIUM = (450, 200)
DIALOG_SIZE_LARGE = (650, 700)
DIALOG_SIZE_XLARGE = (600, 400)
# 图标尺寸
ICON_SIZE_TINY = 1
ICON_SIZE_SMALL = 22
ICON_SIZE_MEDIUM = 48
ICON_SIZE_LARGE = 64
ICON_SIZE_XLARGE = 128
# 按钮尺寸
BUTTON_WIDTH_SMALL = 80
BUTTON_WIDTH_MEDIUM = 100
BUTTON_WIDTH_LARGE = 120
BUTTON_HEIGHT_SMALL = 30
BUTTON_HEIGHT_MEDIUM = 40
# 圆角半径
CORNER_RADIUS_SMALL = 8
CORNER_RADIUS_MEDIUM = 10
CORNER_RADIUS_LARGE = 15
# 间距
PADDING_SMALL = 5
PADDING_MEDIUM = 10
PADDING_LARGE = 20
# ==================== 字体常量 ====================
FONT_SIZE_TINY = 8
FONT_SIZE_SMALL = 10
FONT_SIZE_MEDIUM = 12
FONT_SIZE_LARGE = 13
FONT_SIZE_XLARGE = 16
# ==================== 应用配置常量 ====================
# 图标延迟设置时间
ICON_DELAY_SHORT = 10
ICON_DELAY_MEDIUM = 50
ICON_DELAY_LONG = 200
# 默认窗口设置
DEFAULT_ICON_SIZE = 80
MIN_ICON_SIZE = 50
MAX_ICON_SIZE = 150
DEFAULT_WINDOW_WIDTH = 425
DEFAULT_WINDOW_HEIGHT = 480
MIN_WINDOW_WIDTH = 200
MIN_WINDOW_HEIGHT = 200
# 任务栏高度(用于窗口定位)
TASKBAR_HEIGHT = 80
# 网格列数
MAX_GRID_COLUMNS = 7
DEFAULT_GRID_COLUMNS = 3