feat(0035e): Group hereda iconografia de hijos homogeneos

apply_group_inherited_visuals(GraphData*, db_path) recorre los nodos
Group del grafo y, para cada uno, consulta los type_ref distintos de
sus hijos (entities con group_id apuntando al Group). Si todos
comparten un solo tipo, reasigna el type_id del Group al type_id de
ese tipo y fija shape_override = SHAPE_SQUARE para preservar el
cuadrado distintivo. Heterogeneo o sin hijos: el Group conserva su
visual generico (slate + ti-stack-2). Se invoca desde main.cpp y
reload_graph antes de apply_group_filter para que la reasignacion
sobreviva al compactado del array.
This commit is contained in:
2026-05-04 14:21:01 +02:00
parent 52495af779
commit c27d8e7ffc
3 changed files with 145 additions and 0 deletions
+7
View File
@@ -48,4 +48,11 @@ bool reload_graph(const InputArgs& args, GraphData* out, graph::GraphLoadStats*
bool apply_group_filter(GraphData* g, const char* db_path,
const std::unordered_map<std::string, bool>& group_expanded);
// Issue 0035e: para cada nodo Group, si todos sus hijos comparten un
// unico `type_ref`, reasigna el `type_id` del Group al type_id de ese
// tipo y fija `shape_override = SHAPE_SQUARE` para preservar la forma
// cuadrada. Si la familia es heterogenea, el nodo conserva su visual
// generico de Group. No-op si la BD no tiene group_id o no hay Groups.
bool apply_group_inherited_visuals(GraphData* g, const char* db_path);
} // namespace ge