@@ -462,35 +462,19 @@ async def connection(self, websocket: WebSocket, path: str | None = None) -> Non
462
462
self .layout_view .max_hier ()
463
463
464
464
if self .layout_view .active_cellview ().layout ().cells ():
465
- await websocket .send_text (
466
- json .dumps (
467
- {
468
- "msg" : "loaded" ,
469
- "modes" : self .mode_dump (),
470
- "annotations" : self .annotation_dump (),
471
- "layers" : self .layer_dump (),
472
- "hierarchy" : self .hierarchy_dump (),
473
- "ci" : self .current_cell ().cell_index (),
474
- }
475
- )
465
+ await self ._send_loaded (
466
+ websocket = websocket ,
467
+ cell_index = self .current_cell ().cell_index (),
476
468
)
477
469
await self .send_metainfo (
478
470
cell = self .current_cell (),
479
471
websocket = websocket ,
480
472
splitter = self .meta_splitter ,
481
473
)
482
474
else :
483
- await websocket .send_text (
484
- json .dumps (
485
- {
486
- "msg" : "loaded" ,
487
- "modes" : self .mode_dump (),
488
- "annotations" : self .annotation_dump (),
489
- "layers" : self .layer_dump (),
490
- "hierarchy" : self .hierarchy_dump (),
491
- "ci" : 0 ,
492
- }
493
- )
475
+ await self ._send_loaded (
476
+ websocket = websocket ,
477
+ cell_index = 0 ,
494
478
)
495
479
496
480
if loaded_rdb :
@@ -680,12 +664,50 @@ async def reader(self, websocket: WebSocket, data: str) -> None:
680
664
case "rdb-selected" :
681
665
await self .draw_items (js ["items" ])
682
666
case "reload" :
667
+ cname = self .current_cell ().name
683
668
self .layout_view .reload_layout (
684
669
self .layout_view .active_cellview ().index ()
685
670
)
671
+ c = self .layout_view .active_cellview ().layout ().cell (cname )
672
+ if c is None :
673
+ tcs = self .layout_view .active_cellview ().layout ().top_cells ()
674
+ if len (tcs ) > 0 :
675
+ c = tcs [0 ]
676
+
677
+ ci = 0
678
+ if c is not None :
679
+ ci = c .cell_index ()
680
+ await self .set_current_cell (ci , websocket = websocket )
686
681
if self .rdb_file is not None :
687
682
self .db .load (self .rdb_file )
688
683
684
+ await self ._send_reloaded (
685
+ websocket = websocket ,
686
+ cell_index = self .current_cell ().cell_index (),
687
+ )
688
+
689
+ async def _send_loaded (self , websocket : WebSocket , cell_index : int = 0 ) -> None :
690
+ await websocket .send_json (
691
+ {
692
+ "msg" : "loaded" ,
693
+ "modes" : self .mode_dump (),
694
+ "annotations" : self .annotation_dump (),
695
+ "layers" : self .layer_dump (),
696
+ "hierarchy" : self .hierarchy_dump (),
697
+ "ci" : cell_index ,
698
+ }
699
+ )
700
+
701
+ async def _send_reloaded (self , websocket : WebSocket , cell_index : int = 0 ) -> None :
702
+ await websocket .send_json (
703
+ {
704
+ "msg" : "reloaded" ,
705
+ "layers" : self .layer_dump (),
706
+ "hierarchy" : self .hierarchy_dump (),
707
+ "ci" : cell_index ,
708
+ }
709
+ )
710
+
689
711
690
712
def meta_json_serializer (obj : object ) -> str :
691
713
return str (obj )
0 commit comments