Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Inch <mythologylover75@gmail.com>2020-03-16 09:48:02 +0300
committerRyan Inch <mythologylover75@gmail.com>2020-03-16 09:48:02 +0300
commitb752de9e0da4e8ad694de25497275f66168a2df4 (patch)
tree8a8f5471e22cf2a1037f0fea1a74149dbff461cc /object_collection_manager/preferences.py
parenta35d66c1337ae5e3f86f11a760ad24770386f9a9 (diff)
Collection Manager: Add QCD System. Task: T69577
Adds a Quick Content Display (QCD) system to the Collection Manager. This consists of a 3D View Header widget and a floating panel similar to the layers system in blender 2.7x, along with hotkeys to view/move objects to QCD slots, and additions to the main Collection Manager popup to allow you to manage which collections correspond to which slots.
Diffstat (limited to 'object_collection_manager/preferences.py')
-rw-r--r--object_collection_manager/preferences.py512
1 files changed, 512 insertions, 0 deletions
diff --git a/object_collection_manager/preferences.py b/object_collection_manager/preferences.py
new file mode 100644
index 00000000..154ee3ee
--- /dev/null
+++ b/object_collection_manager/preferences.py
@@ -0,0 +1,512 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# Copyright 2011, Ryan Inch
+
+import bpy
+from bpy.types import AddonPreferences
+from bpy.props import (
+ BoolProperty,
+ FloatProperty,
+ FloatVectorProperty,
+ )
+
+def get_tool_text(self):
+ if self.tool_text_override:
+ return self["tool_text_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_tool.text
+ self["tool_text_color"] = color.r, color.g, color.b
+ return self["tool_text_color"]
+
+def set_tool_text(self, values):
+ self["tool_text_color"] = values[0], values[1], values[2]
+
+
+def get_tool_text_sel(self):
+ if self.tool_text_sel_override:
+ return self["tool_text_sel_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_tool.text_sel
+ self["tool_text_sel_color"] = color.r, color.g, color.b
+ return self["tool_text_sel_color"]
+
+def set_tool_text_sel(self, values):
+ self["tool_text_sel_color"] = values[0], values[1], values[2]
+
+
+def get_tool_inner(self):
+ if self.tool_inner_override:
+ return self["tool_inner_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_tool.inner
+ self["tool_inner_color"] = color[0], color[1], color[2], color[3]
+ return self["tool_inner_color"]
+
+def set_tool_inner(self, values):
+ self["tool_inner_color"] = values[0], values[1], values[2], values[3]
+
+
+def get_tool_inner_sel(self):
+ if self.tool_inner_sel_override:
+ return self["tool_inner_sel_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_tool.inner_sel
+ self["tool_inner_sel_color"] = color[0], color[1], color[2], color[3]
+ return self["tool_inner_sel_color"]
+
+def set_tool_inner_sel(self, values):
+ self["tool_inner_sel_color"] = values[0], values[1], values[2], values[3]
+
+
+def get_tool_outline(self):
+ if self.tool_outline_override:
+ return self["tool_outline_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_tool.outline
+ self["tool_outline_color"] = color.r, color.g, color.b
+ return self["tool_outline_color"]
+
+def set_tool_outline(self, values):
+ self["tool_outline_color"] = values[0], values[1], values[2]
+
+
+def get_menu_back_text(self):
+ if self.menu_back_text_override:
+ return self["menu_back_text_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_menu_back.text
+ self["menu_back_text_color"] = color.r, color.g, color.b
+ return self["menu_back_text_color"]
+
+def set_menu_back_text(self, values):
+ self["menu_back_text_color"] = values[0], values[1], values[2]
+
+
+def get_menu_back_inner(self):
+ if self.menu_back_inner_override:
+ return self["menu_back_inner_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_menu_back.inner
+ self["menu_back_inner_color"] = color[0], color[1], color[2], color[3]
+ return self["menu_back_inner_color"]
+
+def set_menu_back_inner(self, values):
+ self["menu_back_inner_color"] = values[0], values[1], values[2], values[3]
+
+
+def get_menu_back_outline(self):
+ if self.menu_back_outline_override:
+ return self["menu_back_outline_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_menu_back.outline
+ self["menu_back_outline_color"] = color.r, color.g, color.b
+ return self["menu_back_outline_color"]
+
+def set_menu_back_outline(self, values):
+ self["menu_back_outline_color"] = values[0], values[1], values[2]
+
+
+def get_tooltip_text(self):
+ if self.tooltip_text_override:
+ return self["tooltip_text_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_tooltip.text
+ self["tooltip_text_color"] = color.r, color.g, color.b
+ return self["tooltip_text_color"]
+
+def set_tooltip_text(self, values):
+ self["tooltip_text_color"] = values[0], values[1], values[2]
+
+
+def get_tooltip_inner(self):
+ if self.tooltip_inner_override:
+ return self["tooltip_inner_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_tooltip.inner
+ self["tooltip_inner_color"] = color[0], color[1], color[2], color[3]
+ return self["tooltip_inner_color"]
+
+def set_tooltip_inner(self, values):
+ self["tooltip_inner_color"] = values[0], values[1], values[2], values[3]
+
+
+def get_tooltip_outline(self):
+ if self.tooltip_outline_override:
+ return self["tooltip_outline_color"]
+ else:
+ color = bpy.context.preferences.themes[0].user_interface.wcol_tooltip.outline
+ self["tooltip_outline_color"] = color.r, color.g, color.b
+ return self["tooltip_outline_color"]
+
+def set_tooltip_outline(self, values):
+ self["tooltip_outline_color"] = values[0], values[1], values[2]
+
+
+class CMPreferences(AddonPreferences):
+ bl_idname = __package__
+
+ # OVERRIDE BOOLS
+ tool_text_override: BoolProperty(
+ name="Text",
+ description="Override Theme Text Color",
+ default=False,
+ )
+
+ tool_text_sel_override: BoolProperty(
+ name="Selection",
+ description="Override Theme Text Selection Color",
+ default=False,
+ )
+
+ tool_inner_override: BoolProperty(
+ name="Inner",
+ description="Override Theme Inner Color",
+ default=False,
+ )
+
+ tool_inner_sel_override: BoolProperty(
+ name="Selection",
+ description="Override Theme Inner Selection Color",
+ default=False,
+ )
+
+ tool_outline_override: BoolProperty(
+ name="Outline",
+ description="Override Theme Outline Color",
+ default=False,
+ )
+
+ menu_back_text_override: BoolProperty(
+ name="Text",
+ description="Override Theme Text Color",
+ default=False,
+ )
+
+ menu_back_inner_override: BoolProperty(
+ name="Inner",
+ description="Override Theme Inner Color",
+ default=False,
+ )
+
+ menu_back_outline_override: BoolProperty(
+ name="Outline",
+ description="Override Theme Outline Color",
+ default=False,
+ )
+
+ tooltip_text_override: BoolProperty(
+ name="Text",
+ description="Override Theme Text Color",
+ default=False,
+ )
+
+ tooltip_inner_override: BoolProperty(
+ name="Inner",
+ description="Override Theme Inner Color",
+ default=False,
+ )
+
+ tooltip_outline_override: BoolProperty(
+ name="Outline",
+ description="Override Theme Outline Color",
+ default=False,
+ )
+
+
+ # OVERRIDE COLORS
+ qcd_ogl_widget_tool_text: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Tool Text Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_tool.text,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ get=get_tool_text,
+ set=set_tool_text,
+ )
+
+ qcd_ogl_widget_tool_text_sel: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Tool Text Selection Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_tool.text_sel,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ get=get_tool_text_sel,
+ set=set_tool_text_sel,
+ )
+
+ qcd_ogl_widget_tool_inner: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Tool Inner Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_tool.inner,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ size=4,
+ get=get_tool_inner,
+ set=set_tool_inner,
+ )
+
+ qcd_ogl_widget_tool_inner_sel: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Tool Inner Selection Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_tool.inner_sel,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ size=4,
+ get=get_tool_inner_sel,
+ set=set_tool_inner_sel,
+ )
+
+ qcd_ogl_widget_tool_outline: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Tool Outline Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_tool.outline,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ get=get_tool_outline,
+ set=set_tool_outline,
+ )
+
+ qcd_ogl_widget_menu_back_text: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Menu Back Text Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_menu_back.text,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ get=get_menu_back_text,
+ set=set_menu_back_text,
+ )
+
+ qcd_ogl_widget_menu_back_inner: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Menu Back Inner Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_menu_back.inner,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ size=4,
+ get=get_menu_back_inner,
+ set=set_menu_back_inner,
+ )
+
+ qcd_ogl_widget_menu_back_outline: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Menu Back Outline Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_menu_back.outline,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ get=get_menu_back_outline,
+ set=set_menu_back_outline,
+ )
+
+ qcd_ogl_widget_tooltip_text: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Tooltip Text Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_tooltip.text,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ get=get_tooltip_text,
+ set=set_tooltip_text,
+ )
+
+ qcd_ogl_widget_tooltip_inner: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Tooltip Inner Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_tooltip.inner,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ size=4,
+ get=get_tooltip_inner,
+ set=set_tooltip_inner,
+ )
+
+ qcd_ogl_widget_tooltip_outline: FloatVectorProperty(
+ name="",
+ description="QCD Move Widget Tooltip Outline Color",
+ default=bpy.context.preferences.themes[0].user_interface.wcol_tooltip.outline,
+ subtype='COLOR_GAMMA',
+ min=0.0,
+ max=1.0,
+ get=get_tooltip_outline,
+ set=set_tooltip_outline,
+ )
+
+ # NON ACTIVE ICON ALPHA
+ qcd_ogl_selected_icon_alpha: FloatProperty(
+ name="Selected Icon Alpha",
+ description="Set the 'Selected' icon's alpha value",
+ default=0.9,
+ min=0.0,
+ max=1.0,
+ )
+
+ qcd_ogl_objects_icon_alpha: FloatProperty(
+ name="Objects Icon Alpha",
+ description="Set the 'Objects' icon's alpha value",
+ default=0.5,
+ min=0.0,
+ max=1.0,
+ )
+
+ def draw(self, context):
+ layout = self.layout
+ box = layout.box()
+
+ box.row().label(text="QCD Move Widget")
+
+ tool_box = box.box()
+ tool_box.row().label(text="Tool Theme Overrides:")
+ tool_box.use_property_split = True
+
+ flow = tool_box.grid_flow(row_major=False, columns=2, even_columns=True, even_rows=False, align=False)
+
+ col = flow.column()
+ col.alignment = 'LEFT'
+
+ row = col.row(align=True)
+ row.alignment = 'RIGHT'
+ row.prop(self, "tool_text_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.tool_text_override
+ row.prop(self, "qcd_ogl_widget_tool_text")
+
+ row = col.row(align=True)
+ row.alignment = 'RIGHT'
+ row.prop(self, "tool_text_sel_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.tool_text_sel_override
+ row.prop(self, "qcd_ogl_widget_tool_text_sel")
+
+ col = flow.column()
+ col.alignment = 'RIGHT'
+
+ row = col.row()
+ row.alignment = 'RIGHT'
+ row.prop(self, "tool_inner_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.tool_inner_override
+ row.prop(self, "qcd_ogl_widget_tool_inner")
+
+ row = col.row()
+ row.alignment = 'RIGHT'
+ row.prop(self, "tool_inner_sel_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.tool_inner_sel_override
+ row.prop(self, "qcd_ogl_widget_tool_inner_sel")
+
+ row = col.row()
+ row.alignment = 'RIGHT'
+ row.prop(self, "tool_outline_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.tool_outline_override
+ row.prop(self, "qcd_ogl_widget_tool_outline")
+
+ tool_box.use_property_split = False
+ tool_box.row().label(text="Icon Alpha:")
+ icon_fade_row = tool_box.row()
+ icon_fade_row.alignment = 'EXPAND'
+ icon_fade_row.prop(self, "qcd_ogl_selected_icon_alpha", text="Selected")
+ icon_fade_row.prop(self, "qcd_ogl_objects_icon_alpha", text="Objects")
+
+
+ menu_back_box = box.box()
+ menu_back_box.use_property_split = True
+ menu_back_box.row().label(text="Menu Back Theme Overrides:")
+
+ flow = menu_back_box.grid_flow(row_major=False, columns=2, even_columns=True, even_rows=False, align=False)
+
+ col = flow.column()
+ col.alignment = 'LEFT'
+
+ row = col.row(align=True)
+ row.alignment = 'RIGHT'
+ row.prop(self, "menu_back_text_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.menu_back_text_override
+ row.prop(self, "qcd_ogl_widget_menu_back_text")
+
+ col = flow.column()
+ col.alignment = 'RIGHT'
+
+ row = col.row()
+ row.alignment = 'RIGHT'
+ row.prop(self, "menu_back_inner_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.menu_back_inner_override
+ row.prop(self, "qcd_ogl_widget_menu_back_inner")
+
+ row = col.row()
+ row.alignment = 'RIGHT'
+ row.prop(self, "menu_back_outline_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.menu_back_outline_override
+ row.prop(self, "qcd_ogl_widget_menu_back_outline")
+
+
+ tooltip_box = box.box()
+ tooltip_box.use_property_split = True
+ tooltip_box.row().label(text="Tooltip Theme Overrides:")
+
+ flow = tooltip_box.grid_flow(row_major=False, columns=2, even_columns=True, even_rows=False, align=False)
+
+ col = flow.column()
+ col.alignment = 'LEFT'
+
+ row = col.row(align=True)
+ row.alignment = 'RIGHT'
+ row.prop(self, "tooltip_text_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.tooltip_text_override
+ row.prop(self, "qcd_ogl_widget_tooltip_text")
+
+ col = flow.column()
+ col.alignment = 'RIGHT'
+
+ row = col.row()
+ row.alignment = 'RIGHT'
+ row.prop(self, "tooltip_inner_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.tooltip_inner_override
+ row.prop(self, "qcd_ogl_widget_tooltip_inner")
+
+ row = col.row()
+ row.alignment = 'RIGHT'
+ row.prop(self, "tooltip_outline_override")
+ row = row.row(align=True)
+ row.alignment = 'RIGHT'
+ row.enabled = self.tooltip_outline_override
+ row.prop(self, "qcd_ogl_widget_tooltip_outline")