#pragma once #include "LayerTreeGroupNode.h" /** * LayerTree:图层树根节点 * - 继承自 LayerTreeGroup,本身就是树的根节点 * - 提供可见性级联与父节点三态更新的静态工具 * * 注意:beginInsertRows/endInsertRows 等 Qt Model 变更通知应由 Model 驱动调用, * LayerTree 只负责维护数据结构正确性。 */ class LayerTree : public LayerTreeGroup { Q_OBJECT public: explicit LayerTree(QObject* parent = nullptr); ~LayerTree() override; LayerTree(const LayerTree&) = delete; LayerTree& operator=(const LayerTree&) = delete; // 可见性逻辑(供 Model 调用) static void setChildrenVisible(LayerTreeNode* n, Qt::CheckState state); static void updateParentVisibleFromChildren(LayerTreeNode* parent); };