Uncommitted changes from Tycho Station

This commit is contained in:
Ezri Brimhall 2024-10-31 16:25:02 -06:00
parent ded2c8676e
commit c9e3ccab59
Signed by: ezri
GPG Key ID: 058A78E5680C6F24
2 changed files with 23 additions and 6 deletions

View File

@ -79,15 +79,25 @@ class ContextMngrInterface(
return "" return ""
return json.dumps(workspace.__json__()) return json.dumps(workspace.__json__())
def __get_workspace_data(self) -> dict: async def __get_workspace_data(self) -> dict:
"""Get the workspace tree.""" """Get the workspace tree."""
try: try:
active = self.workspace_tree.current_context.active_workspace
return { return {
"ws": self.workspace_tree.__json__(), "ws": self.workspace_tree.__json__(),
"current": self.workspace_tree.current_context.active_workspace.__json__(), "current": active is not None and active.__json__() or None,
"context": self.workspace_tree.current_context.name, "context": self.workspace_tree.current_context.name,
"visible": { "visible": {
name: ws.__json__() name: ws is not None
and ws.__json__()
or {
"name": f"<undefined:{name}>",
"index": -1,
"active": True,
"visible": True,
"focused": False,
"alerted": False,
}
for name, ws in self.workspace_tree.current_context.visible_workspaces.items() for name, ws in self.workspace_tree.current_context.visible_workspaces.items()
}, },
} }
@ -98,7 +108,7 @@ class ContextMngrInterface(
@dbus_method_async(input_signature="", result_signature="s") @dbus_method_async(input_signature="", result_signature="s")
async def get_workspace_data(self) -> str: async def get_workspace_data(self) -> str:
"""Get the workspace tree.""" """Get the workspace tree."""
data = self.__get_workspace_data() data = await self.__get_workspace_data()
return json.dumps(data) return json.dumps(data)
@dbus_method_async(input_signature="", result_signature="s") @dbus_method_async(input_signature="", result_signature="s")
@ -114,4 +124,4 @@ class ContextMngrInterface(
async def on_tree_changed(self, workspace_tree: str): async def on_tree_changed(self, workspace_tree: str):
print("tree changed, emitting signal") print("tree changed, emitting signal")
self.tree_changed.emit(json.dumps(self.__get_workspace_data())) self.tree_changed.emit(json.dumps(await self.__get_workspace_data()))

View File

@ -54,7 +54,14 @@ class Workspace:
} }
def __json__(self): def __json__(self):
return self.__dict__() return {
"index": str(self.index),
"name": self.name,
"active": self.active,
"visible": self.visible,
"focused": self.focused,
"alerted": self.alerted,
}
def __repr__(self): def __repr__(self):
return f"Workspace({self.index}, '{self.name}')" return f"Workspace({self.index}, '{self.name}')"