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:
Diffstat (limited to 'object_collection_manager/ui.py')
-rw-r--r--object_collection_manager/ui.py171
1 files changed, 77 insertions, 94 deletions
diff --git a/object_collection_manager/ui.py b/object_collection_manager/ui.py
index 2177822c..6e3d018b 100644
--- a/object_collection_manager/ui.py
+++ b/object_collection_manager/ui.py
@@ -32,20 +32,11 @@ from bpy.props import (
StringProperty,
)
+# For VARS
+from . import internals
+
+# For FUNCTIONS
from .internals import (
- collection_tree,
- collection_state,
- qcd_collection_state,
- expanded,
- get_max_lvl,
- layer_collections,
- rto_history,
- qcd_history,
- expand_history,
- phantom_history,
- copy_buffer,
- swap_buffer,
- qcd_slots,
update_collection_tree,
update_property_group,
generate_state,
@@ -128,14 +119,14 @@ class CollectionManager(Operator):
collapse_sec.alignment = 'LEFT'
collapse_sec.enabled = False
- if len(expanded) > 0:
+ if len(internals.expanded) > 0:
text = "Collapse All Items"
else:
text = "Expand All Items"
collapse_sec.operator("view3d.expand_all_items", text=text)
- for laycol in collection_tree:
+ for laycol in internals.collection_tree:
if laycol["has_children"]:
collapse_sec.enabled = True
break
@@ -214,16 +205,16 @@ class CollectionManager(Operator):
copy_swap_icon = 'SELECT_INTERSECT'
if cm.show_exclude:
- exclude_all_history = rto_history["exclude_all"].get(view_layer.name, [])
+ exclude_all_history = internals.rto_history["exclude_all"].get(view_layer.name, [])
depress = True if len(exclude_all_history) else False
icon = 'CHECKBOX_HLT'
buffers = [False, False]
- if copy_buffer["RTO"] == "exclude":
+ if internals.copy_buffer["RTO"] == "exclude":
icon = copy_icon
buffers[0] = True
- if swap_buffer["A"]["RTO"] == "exclude":
+ if internals.swap_buffer["A"]["RTO"] == "exclude":
icon = swap_icon
buffers[1] = True
@@ -233,16 +224,16 @@ class CollectionManager(Operator):
global_rto_row.operator("view3d.un_exclude_all_collections", text="", icon=icon, depress=depress)
if cm.show_selectable:
- select_all_history = rto_history["select_all"].get(view_layer.name, [])
+ select_all_history = internals.rto_history["select_all"].get(view_layer.name, [])
depress = True if len(select_all_history) else False
icon = 'RESTRICT_SELECT_OFF'
buffers = [False, False]
- if copy_buffer["RTO"] == "select":
+ if internals.copy_buffer["RTO"] == "select":
icon = copy_icon
buffers[0] = True
- if swap_buffer["A"]["RTO"] == "select":
+ if internals.swap_buffer["A"]["RTO"] == "select":
icon = swap_icon
buffers[1] = True
@@ -252,16 +243,16 @@ class CollectionManager(Operator):
global_rto_row.operator("view3d.un_restrict_select_all_collections", text="", icon=icon, depress=depress)
if cm.show_hide_viewport:
- hide_all_history = rto_history["hide_all"].get(view_layer.name, [])
+ hide_all_history = internals.rto_history["hide_all"].get(view_layer.name, [])
depress = True if len(hide_all_history) else False
icon = 'HIDE_OFF'
buffers = [False, False]
- if copy_buffer["RTO"] == "hide":
+ if internals.copy_buffer["RTO"] == "hide":
icon = copy_icon
buffers[0] = True
- if swap_buffer["A"]["RTO"] == "hide":
+ if internals.swap_buffer["A"]["RTO"] == "hide":
icon = swap_icon
buffers[1] = True
@@ -271,16 +262,16 @@ class CollectionManager(Operator):
global_rto_row.operator("view3d.un_hide_all_collections", text="", icon=icon, depress=depress)
if cm.show_disable_viewport:
- disable_all_history = rto_history["disable_all"].get(view_layer.name, [])
+ disable_all_history = internals.rto_history["disable_all"].get(view_layer.name, [])
depress = True if len(disable_all_history) else False
icon = 'RESTRICT_VIEW_OFF'
buffers = [False, False]
- if copy_buffer["RTO"] == "disable":
+ if internals.copy_buffer["RTO"] == "disable":
icon = copy_icon
buffers[0] = True
- if swap_buffer["A"]["RTO"] == "disable":
+ if internals.swap_buffer["A"]["RTO"] == "disable":
icon = swap_icon
buffers[1] = True
@@ -290,16 +281,16 @@ class CollectionManager(Operator):
global_rto_row.operator("view3d.un_disable_viewport_all_collections", text="", icon=icon, depress=depress)
if cm.show_render:
- render_all_history = rto_history["render_all"].get(view_layer.name, [])
+ render_all_history = internals.rto_history["render_all"].get(view_layer.name, [])
depress = True if len(render_all_history) else False
icon = 'RESTRICT_RENDER_OFF'
buffers = [False, False]
- if copy_buffer["RTO"] == "render":
+ if internals.copy_buffer["RTO"] == "render":
icon = copy_icon
buffers[0] = True
- if swap_buffer["A"]["RTO"] == "render":
+ if internals.swap_buffer["A"]["RTO"] == "render":
icon = swap_icon
buffers[1] = True
@@ -309,16 +300,16 @@ class CollectionManager(Operator):
global_rto_row.operator("view3d.un_disable_render_all_collections", text="", icon=icon, depress=depress)
if cm.show_holdout:
- holdout_all_history = rto_history["holdout_all"].get(view_layer.name, [])
+ holdout_all_history = internals.rto_history["holdout_all"].get(view_layer.name, [])
depress = True if len(holdout_all_history) else False
icon = 'HOLDOUT_ON'
buffers = [False, False]
- if copy_buffer["RTO"] == "holdout":
+ if internals.copy_buffer["RTO"] == "holdout":
icon = copy_icon
buffers[0] = True
- if swap_buffer["A"]["RTO"] == "holdout":
+ if internals.swap_buffer["A"]["RTO"] == "holdout":
icon = swap_icon
buffers[1] = True
@@ -328,16 +319,16 @@ class CollectionManager(Operator):
global_rto_row.operator("view3d.un_holdout_all_collections", text="", icon=icon, depress=depress)
if cm.show_indirect_only:
- indirect_all_history = rto_history["indirect_all"].get(view_layer.name, [])
+ indirect_all_history = internals.rto_history["indirect_all"].get(view_layer.name, [])
depress = True if len(indirect_all_history) else False
icon = 'INDIRECT_ONLY_ON'
buffers = [False, False]
- if copy_buffer["RTO"] == "indirect":
+ if internals.copy_buffer["RTO"] == "indirect":
icon = copy_icon
buffers[0] = True
- if swap_buffer["A"]["RTO"] == "indirect":
+ if internals.swap_buffer["A"]["RTO"] == "indirect":
icon = swap_icon
buffers[1] = True
@@ -397,57 +388,57 @@ class CollectionManager(Operator):
cm.cm_list_index = -1
# check if expanded & history/buffer state still correct
- if collection_state:
+ if internals.collection_state:
new_state = generate_state()
- if new_state["name"] != collection_state["name"]:
- copy_buffer["RTO"] = ""
- copy_buffer["values"].clear()
+ if new_state["name"] != internals.collection_state["name"]:
+ internals.copy_buffer["RTO"] = ""
+ internals.copy_buffer["values"].clear()
- swap_buffer["A"]["RTO"] = ""
- swap_buffer["A"]["values"].clear()
- swap_buffer["B"]["RTO"] = ""
- swap_buffer["B"]["values"].clear()
+ internals.swap_buffer["A"]["RTO"] = ""
+ internals.swap_buffer["A"]["values"].clear()
+ internals.swap_buffer["B"]["RTO"] = ""
+ internals.swap_buffer["B"]["values"].clear()
- for name in list(expanded):
- laycol = layer_collections.get(name)
+ for name in list(internals.expanded):
+ laycol = internals.layer_collections.get(name)
if not laycol or not laycol["has_children"]:
- expanded.remove(name)
+ internals.expanded.remove(name)
- for name in list(expand_history["history"]):
- laycol = layer_collections.get(name)
+ for name in list(internals.expand_history["history"]):
+ laycol = internals.layer_collections.get(name)
if not laycol or not laycol["has_children"]:
- expand_history["history"].remove(name)
+ internals.expand_history["history"].remove(name)
- for rto, history in rto_history.items():
+ for rto, history in internals.rto_history.items():
if view_layer.name in history:
del history[view_layer.name]
else:
for rto in ["exclude", "select", "hide", "disable", "render", "holdout", "indirect"]:
- if new_state[rto] != collection_state[rto]:
- if view_layer.name in rto_history[rto]:
- del rto_history[rto][view_layer.name]
+ if new_state[rto] != internals.collection_state[rto]:
+ if view_layer.name in internals.rto_history[rto]:
+ del internals.rto_history[rto][view_layer.name]
- if view_layer.name in rto_history[rto+"_all"]:
- del rto_history[rto+"_all"][view_layer.name]
+ if view_layer.name in internals.rto_history[rto+"_all"]:
+ del internals.rto_history[rto+"_all"][view_layer.name]
# check if in phantom mode and if it's still viable
if cm.in_phantom_mode:
- if layer_collections.keys() != phantom_history["initial_state"].keys():
+ if internals.layer_collections.keys() != internals.phantom_history["initial_state"].keys():
cm.in_phantom_mode = False
- if view_layer.name != phantom_history["view_layer"]:
+ if view_layer.name != internals.phantom_history["view_layer"]:
cm.in_phantom_mode = False
if not cm.in_phantom_mode:
- for key, value in phantom_history.items():
+ for key, value in internals.phantom_history.items():
try:
value.clear()
except AttributeError:
if key == "view_layer":
- phantom_history["view_layer"] = ""
+ internals.phantom_history["view_layer"] = ""
# handle window sizing
max_width = 960
@@ -456,14 +447,13 @@ class CollectionManager(Operator):
width_step = 21
qcd_width = 30
scrollbar_width = 21
- lvl = get_max_lvl()
- width = min_width + row_indent_width + (width_step * lvl)
+ width = min_width + row_indent_width + (width_step * internals.max_lvl)
if bpy.context.preferences.addons[__package__].preferences.enable_qcd:
width += qcd_width
- if len(layer_collections) > 14:
+ if len(internals.layer_collections) > 14:
width += scrollbar_width
if width > max_width:
@@ -472,14 +462,12 @@ class CollectionManager(Operator):
return wm.invoke_popup(self, width=width)
def __del__(self):
- global collection_state
-
if not self.window_open:
# prevent destructor execution when changing templates
return
- collection_state.clear()
- collection_state.update(generate_state())
+ internals.collection_state.clear()
+ internals.collection_state.update(generate_state())
class CM_UL_items(UIList):
@@ -527,7 +515,7 @@ class CM_UL_items(UIList):
cm = context.scene.collection_manager
prefs = context.preferences.addons[__package__].preferences
view_layer = context.view_layer
- laycol = layer_collections[item.name]
+ laycol = internals.layer_collections[item.name]
collection = laycol["ptr"].collection
selected_objects = CM_UL_items.selected_objects
active_object = CM_UL_items.active_object
@@ -555,7 +543,7 @@ class CM_UL_items(UIList):
# add expander if collection has children to make UIList act like tree view
if laycol["has_children"]:
if laycol["expanded"]:
- highlight = True if expand_history["target"] == item.name else False
+ highlight = True if internals.expand_history["target"] == item.name else False
prop = row.operator("view3d.expand_sublevel", text="",
icon='DISCLOSURE_TRI_DOWN',
@@ -565,7 +553,7 @@ class CM_UL_items(UIList):
prop.index = index
else:
- highlight = True if expand_history["target"] == item.name else False
+ highlight = True if internals.expand_history["target"] == item.name else False
prop = row.operator("view3d.expand_sublevel", text="",
icon='DISCLOSURE_TRI_RIGHT',
@@ -632,7 +620,7 @@ class CM_UL_items(UIList):
if cm.show_exclude:
- exclude_history_base = rto_history["exclude"].get(view_layer.name, {})
+ exclude_history_base = internals.rto_history["exclude"].get(view_layer.name, {})
exclude_target = exclude_history_base.get("target", "")
exclude_history = exclude_history_base.get("history", [])
@@ -644,7 +632,7 @@ class CM_UL_items(UIList):
prop.name = item.name
if cm.show_selectable:
- select_history_base = rto_history["select"].get(view_layer.name, {})
+ select_history_base = internals.rto_history["select"].get(view_layer.name, {})
select_target = select_history_base.get("target", "")
select_history = select_history_base.get("history", [])
@@ -657,7 +645,7 @@ class CM_UL_items(UIList):
prop.name = item.name
if cm.show_hide_viewport:
- hide_history_base = rto_history["hide"].get(view_layer.name, {})
+ hide_history_base = internals.rto_history["hide"].get(view_layer.name, {})
hide_target = hide_history_base.get("target", "")
hide_history = hide_history_base.get("history", [])
@@ -669,7 +657,7 @@ class CM_UL_items(UIList):
prop.name = item.name
if cm.show_disable_viewport:
- disable_history_base = rto_history["disable"].get(view_layer.name, {})
+ disable_history_base = internals.rto_history["disable"].get(view_layer.name, {})
disable_target = disable_history_base.get("target", "")
disable_history = disable_history_base.get("history", [])
@@ -682,7 +670,7 @@ class CM_UL_items(UIList):
prop.name = item.name
if cm.show_render:
- render_history_base = rto_history["render"].get(view_layer.name, {})
+ render_history_base = internals.rto_history["render"].get(view_layer.name, {})
render_target = render_history_base.get("target", "")
render_history = render_history_base.get("history", [])
@@ -695,7 +683,7 @@ class CM_UL_items(UIList):
prop.name = item.name
if cm.show_holdout:
- holdout_history_base = rto_history["holdout"].get(view_layer.name, {})
+ holdout_history_base = internals.rto_history["holdout"].get(view_layer.name, {})
holdout_target = holdout_history_base.get("target", "")
holdout_history = holdout_history_base.get("history", [])
@@ -708,7 +696,7 @@ class CM_UL_items(UIList):
prop.name = item.name
if cm.show_indirect_only:
- indirect_history_base = rto_history["indirect"].get(view_layer.name, {})
+ indirect_history_base = internals.rto_history["indirect"].get(view_layer.name, {})
indirect_target = indirect_history_base.get("target", "")
indirect_history = indirect_history_base.get("history", [])
@@ -792,7 +780,7 @@ class CM_UL_items(UIList):
new_flt_flags = [0] * len(list_items)
for idx, item in enumerate(list_items):
- collection = layer_collections[item.name]["ptr"].collection
+ collection = internals.layer_collections[item.name]["ptr"].collection
# check if any of the selected objects are in the collection
if not set(context.selected_objects).isdisjoint(collection.objects):
@@ -825,7 +813,7 @@ class CM_UL_items(UIList):
flt_flags = [0] * len(list_items)
for idx, item in enumerate(list_items):
- if layer_collections[item.name]["visible"]:
+ if internals.layer_collections[item.name]["visible"]:
flt_flags[idx] = self.bitflag_filter_item
@@ -930,32 +918,27 @@ class EnableAllQCDSlotsMenu(Menu):
def view3d_header_qcd_slots(self, context):
- global qcd_collection_state
-
update_collection_tree(context)
view_layer = context.view_layer
-
layout = self.layout
-
idx = 1
- if qcd_collection_state:
+ if internals.qcd_collection_state:
view_layer = context.view_layer
new_state = generate_state(qcd=True)
- if (new_state["name"] != qcd_collection_state["name"]
- or new_state["exclude"] != qcd_collection_state["exclude"]
- or new_state["exclude"] != qcd_collection_state["exclude"]
- or new_state["qcd"] != qcd_collection_state["qcd"]):
- if view_layer.name in qcd_history:
- del qcd_history[view_layer.name]
- qcd_collection_state.clear()
+ if (new_state["name"] != internals.qcd_collection_state["name"]
+ or new_state["exclude"] != internals.qcd_collection_state["exclude"]
+ or new_state["qcd"] != internals.qcd_collection_state["qcd"]):
+ if view_layer.name in internals.qcd_history:
+ del internals.qcd_history[view_layer.name]
+ internals.qcd_collection_state.clear()
QCDAllBase.clear()
main_row = layout.row(align=True)
- current_qcd_history = qcd_history.get(context.view_layer.name, [])
+ current_qcd_history = internals.qcd_history.get(context.view_layer.name, [])
main_row.operator_menu_hold("view3d.enable_all_qcd_slots_meta",
text="",
@@ -973,10 +956,10 @@ def view3d_header_qcd_slots(self, context):
active_object = get_move_active()
for x in range(20):
- qcd_slot_name = qcd_slots.get_name(str(x+1))
+ qcd_slot_name = internals.qcd_slots.get_name(str(x+1))
if qcd_slot_name:
- qcd_laycol = layer_collections[qcd_slot_name]["ptr"]
+ qcd_laycol = internals.layer_collections[qcd_slot_name]["ptr"]
collection_objects = qcd_laycol.collection.objects
icon_value = 0