feat: clean files+add repository sync icons

This commit is contained in:
Fabian
2021-07-23 12:51:16 +02:00
parent beaafce4fa
commit 0a798bb21b
6 changed files with 117 additions and 261 deletions

View File

@ -110,7 +110,6 @@ def initialize_session():
for d in deleyables:
d.register()
# Step 5: Clearing history
utils.flush_history()
@ -144,7 +143,7 @@ def on_connection_end(reason="none"):
if isinstance(handler, logging.FileHandler):
logger.removeHandler(handler)
if reason != "user":
bpy.ops.session.notify('INVOKE_DEFAULT', message=f"Disconnected from session. Reason: {reason}. ")
bpy.ops.session.notify('INVOKE_DEFAULT', message=f"Disconnected from session. Reason: {reason}. ") #TODO: change op session.notify to add ui + change reason (in replication->interface)
# OPERATORS
@ -161,10 +160,11 @@ class SessionConnectOperator(bpy.types.Operator):
global deleyables
settings = utils.get_preferences()
runtime_settings = context.window_manager.session
users = bpy.data.window_managers['WinMan'].online_users
admin_pass = settings.admin_password
server_pass = settings.server_password if settings.server_password else None
active_server_index = context.window_manager.server_index if context.window_manager.server_index<=len(settings.server_preset)-1 else 0
active_server = settings.server_preset[active_server_index]
admin_pass = active_server.admin_password if active_server.use_admin_password else None
server_pass = active_server.server_password if active_server.use_server_password else None
users.clear()
deleyables.clear()
@ -213,18 +213,15 @@ class SessionConnectOperator(bpy.types.Operator):
username=settings.username)
# Join a session
if not runtime_settings.admin:
if not active_server.use_admin_password:
utils.clean_scene()
# regular session, no admin_password needed nor server_password
admin_pass = None
server_pass = None
try:
porcelain.remote_add(
repo,
'origin',
settings.ip,
settings.port,
active_server.ip,
active_server.port,
server_password=server_pass,
admin_password=admin_pass)
session.connect(
@ -276,8 +273,8 @@ class SessionHostOperator(bpy.types.Operator):
settings = utils.get_preferences()
runtime_settings = context.window_manager.session
users = bpy.data.window_managers['WinMan'].online_users
admin_pass = settings.admin_password
server_pass = settings.server_password if settings.server_password else None
admin_pass = settings.host_admin_password if settings.host_use_admin_password else None
server_pass = settings.host_server_password if settings.host_use_server_password else None
users.clear()
deleyables.clear()
@ -341,7 +338,7 @@ class SessionHostOperator(bpy.types.Operator):
repo,
'origin',
'127.0.0.1',
settings.port,
settings.host_port,
server_password=server_pass,
admin_password=admin_pass)
session.host(
@ -929,12 +926,12 @@ class SessionPresetServerAdd(bpy.types.Operator):
bl_options = {"REGISTER"}
server_name: bpy.props.StringProperty(default="")
server_ip: bpy.props.StringProperty(default="127.0.0.1")
server_port: bpy.props.IntProperty(default=5555)
ip: bpy.props.StringProperty(default="127.0.0.1")
port: bpy.props.IntProperty(default=5555)
use_server_password: bpy.props.BoolProperty(default=False)
server_server_password: bpy.props.StringProperty(default="", subtype = "PASSWORD")
server_password: bpy.props.StringProperty(default="", subtype = "PASSWORD")
use_admin_password: bpy.props.BoolProperty(default=False)
server_admin_password: bpy.props.StringProperty(default="", subtype = "PASSWORD")
admin_password: bpy.props.StringProperty(default="", subtype = "PASSWORD")
@classmethod
def poll(cls, context):
@ -942,37 +939,36 @@ class SessionPresetServerAdd(bpy.types.Operator):
def invoke(self, context, event):
self.server_name = ""
self.server_ip = "127.0.0.1"
self.server_port = 5555
self.ip = "127.0.0.1"
self.port = 5555
self.use_server_password = False
self.server_server_password = ""
self.server_password = ""
self.use_admin_password = False
self.server_admin_password = ""
self.admin_password = ""
assert(context)
return context.window_manager.invoke_props_dialog(self)
def draw(self, context):
layout = self.layout
settings = utils.get_preferences()
row = layout.row()
row.prop(self, "server_name", text="Server name")
row = layout.row(align = True)
row.prop(self, "server_ip", text="IP+port")
row.prop(self, "server_port", text="")
row.prop(self, "ip", text="IP+port")
row.prop(self, "port", text="")
row = layout.row()
col = row.column()
col.prop(self, "use_server_password", text="Server password:")
col = row.column()
col.enabled = True if self.use_server_password else False
col.prop(self, "server_server_password", text="")
col.prop(self, "server_password", text="")
row = layout.row()
col = row.column()
col.prop(self, "use_admin_password", text="Admin password:")
col = row.column()
col.enabled = True if self.use_admin_password else False
col.prop(self, "server_admin_password", text="")
col.prop(self, "admin_password", text="")
def execute(self, context):
assert(context)
@ -983,12 +979,12 @@ class SessionPresetServerAdd(bpy.types.Operator):
new_server = existing_preset if existing_preset else settings.server_preset.add()
new_server.name = str(uuid4())
new_server.server_name = self.server_name
new_server.server_ip = self.server_ip
new_server.server_port = self.server_port
new_server.ip = self.ip
new_server.port = self.port
new_server.use_server_password = self.use_server_password
new_server.server_server_password = self.server_server_password
new_server.server_password = self.server_password
new_server.use_admin_password = self.use_admin_password
new_server.server_admin_password = self.server_admin_password
new_server.admin_password = self.admin_password
refresh_sidebar_view()
@ -1000,7 +996,7 @@ class SessionPresetServerAdd(bpy.types.Operator):
return {'FINISHED'}
class SessionPresetServerEdit(bpy.types.Operator):
class SessionPresetServerEdit(bpy.types.Operator): # TODO : use preset, not settings
"""Edit a server to the server list preset"""
bl_idname = "session.preset_server_edit"
bl_label = "Edit server preset"
@ -1014,40 +1010,31 @@ class SessionPresetServerEdit(bpy.types.Operator):
return True
def invoke(self, context, event):
settings = utils.get_preferences()
settings_active_server = settings.server_preset.get(self.target_server_name)
if settings_active_server :
settings.server_name = settings_active_server.server_name
settings.ip = settings_active_server.server_ip
settings.port = settings_active_server.server_port
settings.server_password = settings_active_server.server_server_password
settings.admin_password = settings_active_server.server_admin_password
assert(context)
return context.window_manager.invoke_props_dialog(self)
def draw(self, context):
layout = self.layout
settings = utils.get_preferences()
settings_active_server = settings.server_preset.get(self.target_server_name)
row = layout.row()
row.prop(settings, "server_name", text="Server name")
row.prop(settings_active_server, "server_name", text="Server name")
row = layout.row(align = True)
row.prop(settings, "ip", text="IP+port")
row.prop(settings, "port", text="")
row.prop(settings_active_server, "ip", text="IP+port")
row.prop(settings_active_server, "port", text="")
row = layout.row()
col = row.column()
col.prop(settings, "use_server_password", text="Server password:")
col.prop(settings_active_server, "use_server_password", text="Server password:")
col = row.column()
col.enabled = True if settings.use_server_password else False
col.prop(settings, "server_password", text="")
col.enabled = True if settings_active_server.use_server_password else False
col.prop(settings_active_server, "server_password", text="")
row = layout.row()
col = row.column()
col.prop(settings, "use_admin_password", text="Admin password:")
col.prop(settings_active_server, "use_admin_password", text="Admin password:")
col = row.column()
col.enabled = True if settings.use_admin_password else False
col.prop(settings, "admin_password", text="")
col.enabled = True if settings_active_server.use_admin_password else False
col.prop(settings_active_server, "admin_password", text="")
def execute(self, context):
assert(context)
@ -1055,20 +1042,12 @@ class SessionPresetServerEdit(bpy.types.Operator):
settings = utils.get_preferences()
settings_active_server = settings.server_preset.get(self.target_server_name)
server = settings_active_server if settings_active_server else settings.server_preset.add()
server.server_name = settings.server_name
server.server_ip = settings.ip
server.server_port = settings.port
server.server_server_password = settings.server_password
server.server_admin_password = settings.admin_password
refresh_sidebar_view()
self.report({'INFO'}, "Server '" + settings.server_name + "' override")
self.report({'INFO'}, "Server '" + settings_active_server.server_name + "' override")
return {'FINISHED'}
class SessionPresetServerRemove(bpy.types.Operator):
"""Remove a server to the server list preset"""
bl_idname = "session.preset_server_remove"
@ -1090,7 +1069,7 @@ class SessionPresetServerRemove(bpy.types.Operator):
return {'FINISHED'}
class SessionGetInfo(bpy.types.Operator):
class RefreshServerStatus(bpy.types.Operator):
bl_idname = "session.get_info"
bl_label = "Get session info"
bl_description = "Get session info"
@ -1102,8 +1081,15 @@ class SessionGetInfo(bpy.types.Operator):
return (session.state != STATE_ACTIVE)
def execute(self, context):
infos = porcelain.request_session_info(self.target_server, timeout=100)
logging.info(f"Session info: {infos}")
settings = utils.get_preferences()
for server in settings.server_preset:
infos = porcelain.request_session_info(f"{server.ip}:{server.port}", timeout=1000)
server.is_online = True if infos else False
if server.is_online:
server.is_private = infos.get("private")
logging.info(f"{server.server_name} status: {infos}")
return {'FINISHED'}
@ -1137,6 +1123,10 @@ class FirstLaunch(bpy.types.Operator):
assert(context)
settings = utils.get_preferences()
settings.is_first_launch = False
for i in range(len(settings.server_preset)): # TODO: Try to empty the server list preset in a cleaner way
settings.server_preset.remove(i)
prefs = bpy.context.preferences.addons[__package__].preferences
prefs.generate_default_presets()
return {'FINISHED'}
def menu_func_import(self, context):
@ -1167,7 +1157,7 @@ classes = (
SessionPresetServerAdd,
SessionPresetServerEdit,
SessionPresetServerRemove,
SessionGetInfo,
RefreshServerStatus,
GetDoc,
FirstLaunch,
)