feat: owned datablock filter
This commit is contained in:
@ -176,6 +176,11 @@ class SessionProps(bpy.types.PropertyGroup):
|
|||||||
session_filter: bpy.props.CollectionProperty(
|
session_filter: bpy.props.CollectionProperty(
|
||||||
type=ReplicatedDatablock,
|
type=ReplicatedDatablock,
|
||||||
)
|
)
|
||||||
|
filter_owned: bpy.props.BoolProperty(
|
||||||
|
name="filter_owned",
|
||||||
|
description='Show only owned datablocks',
|
||||||
|
default=True
|
||||||
|
)
|
||||||
|
|
||||||
def load(self):
|
def load(self):
|
||||||
config = environment.load_config()
|
config = environment.load_config()
|
||||||
|
16
ui.py
16
ui.py
@ -152,7 +152,7 @@ class SESSION_PT_settings_replication(bpy.types.Panel):
|
|||||||
line.separator()
|
line.separator()
|
||||||
line.label(text="refresh (sec)")
|
line.label(text="refresh (sec)")
|
||||||
line.label(text="apply (sec)")
|
line.label(text="apply (sec)")
|
||||||
|
|
||||||
for item in settings.supported_datablock:
|
for item in settings.supported_datablock:
|
||||||
line = flow.row(align=True)
|
line = flow.row(align=True)
|
||||||
# line.label(text="", icon=item.icon)
|
# line.label(text="", icon=item.icon)
|
||||||
@ -160,7 +160,6 @@ class SESSION_PT_settings_replication(bpy.types.Panel):
|
|||||||
line.separator()
|
line.separator()
|
||||||
line.prop(item, "bl_delay_refresh", text="")
|
line.prop(item, "bl_delay_refresh", text="")
|
||||||
line.prop(item, "bl_delay_apply", text="")
|
line.prop(item, "bl_delay_apply", text="")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class SESSION_PT_user(bpy.types.Panel):
|
class SESSION_PT_user(bpy.types.Panel):
|
||||||
@ -287,6 +286,7 @@ class SESSION_PT_outliner(bpy.types.Panel):
|
|||||||
layout = self.layout
|
layout = self.layout
|
||||||
|
|
||||||
if hasattr(context.window_manager, 'session'):
|
if hasattr(context.window_manager, 'session'):
|
||||||
|
# Filters
|
||||||
settings = context.window_manager.session
|
settings = context.window_manager.session
|
||||||
flow = layout.grid_flow(
|
flow = layout.grid_flow(
|
||||||
row_major=True,
|
row_major=True,
|
||||||
@ -299,12 +299,20 @@ class SESSION_PT_outliner(bpy.types.Panel):
|
|||||||
col = flow.column(align=True)
|
col = flow.column(align=True)
|
||||||
col.prop(item, "use_as_filter", text="", icon=item.icon)
|
col.prop(item, "use_as_filter", text="", icon=item.icon)
|
||||||
|
|
||||||
|
|
||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
# Property area
|
row.prop(settings, "filter_owned", text="Show only owned")
|
||||||
|
|
||||||
|
row = layout.row(align=True)
|
||||||
|
|
||||||
|
# Properties
|
||||||
types_filter = [t.type_name for t in settings.supported_datablock
|
types_filter = [t.type_name for t in settings.supported_datablock
|
||||||
if t.use_as_filter]
|
if t.use_as_filter]
|
||||||
|
|
||||||
client_keys = [key for key in operators.client.list()
|
key_to_filter = operators.client.list(
|
||||||
|
filter_owner=settings.username) if settings.filter_owned else operators.client.list()
|
||||||
|
|
||||||
|
client_keys = [key for key in key_to_filter
|
||||||
if operators.client.get(uuid=key).str_type
|
if operators.client.get(uuid=key).str_type
|
||||||
in types_filter]
|
in types_filter]
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user