feat: owned datablock filter

This commit is contained in:
Swann
2019-09-18 23:10:36 +02:00
parent 36252e32b0
commit e17909ebe8
2 changed files with 17 additions and 4 deletions

View File

@ -176,6 +176,11 @@ class SessionProps(bpy.types.PropertyGroup):
session_filter: bpy.props.CollectionProperty(
type=ReplicatedDatablock,
)
filter_owned: bpy.props.BoolProperty(
name="filter_owned",
description='Show only owned datablocks',
default=True
)
def load(self):
config = environment.load_config()

14
ui.py
View File

@ -162,7 +162,6 @@ class SESSION_PT_settings_replication(bpy.types.Panel):
line.prop(item, "bl_delay_apply", text="")
class SESSION_PT_user(bpy.types.Panel):
bl_idname = "MULTIUSER_USER_PT_panel"
bl_label = "Users"
@ -287,6 +286,7 @@ class SESSION_PT_outliner(bpy.types.Panel):
layout = self.layout
if hasattr(context.window_manager, 'session'):
# Filters
settings = context.window_manager.session
flow = layout.grid_flow(
row_major=True,
@ -299,12 +299,20 @@ class SESSION_PT_outliner(bpy.types.Panel):
col = flow.column(align=True)
col.prop(item, "use_as_filter", text="", icon=item.icon)
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
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
in types_filter]