2026-04-02 10:34:57 +08:00
|
|
|
|
#pragma once
|
2026-02-05 15:32:34 +08:00
|
|
|
|
#include "LayerTreeNode.h"
|
|
|
|
|
|
|
2026-03-14 00:38:44 +08:00
|
|
|
|
class LayerTreeLayer;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2026-04-02 10:34:57 +08:00
|
|
|
|
* LayerTreeGroup:图层组节点
|
|
|
|
|
|
* - 基类为 LayerTreeNode
|
|
|
|
|
|
* - 提供插入图层节点(LayerTreeLayer)或图层组(LayerTreeGroup)的便利方法
|
2026-03-14 00:38:44 +08:00
|
|
|
|
*/
|
|
|
|
|
|
class LayerTreeGroup : public LayerTreeNode
|
2026-02-05 15:32:34 +08:00
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
2026-03-14 00:38:44 +08:00
|
|
|
|
explicit LayerTreeGroup(const QString& name = QString(),
|
|
|
|
|
|
QObject* parent = nullptr);
|
2026-02-05 15:32:34 +08:00
|
|
|
|
|
|
|
|
|
|
Type type() const override { return Type::Group; }
|
|
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
// 便利方法:插入子组
|
2026-03-14 00:38:44 +08:00
|
|
|
|
LayerTreeGroup* insertGroup(int index, const QString& name);
|
|
|
|
|
|
LayerTreeGroup* addGroup(const QString& name);
|
|
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
// 便利方法:插入图层节点
|
2026-03-14 00:38:44 +08:00
|
|
|
|
LayerTreeLayer* insertLayer(int index, LayerTreeLayer* layer);
|
|
|
|
|
|
LayerTreeLayer* addLayer(LayerTreeLayer* layer);
|
|
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
// 插入任意节点
|
2026-03-14 00:38:44 +08:00
|
|
|
|
void insertChildNode(int index, LayerTreeNode* node);
|
|
|
|
|
|
void addChildNode(LayerTreeNode* node);
|
|
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
// 移除子节点(不 delete,返回被移除节点)
|
2026-03-14 00:38:44 +08:00
|
|
|
|
LayerTreeNode* removeChildNode(LayerTreeNode* node);
|
|
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
// 查找
|
2026-03-14 00:38:44 +08:00
|
|
|
|
LayerTreeLayer* findLayer(const QString& name) const;
|
|
|
|
|
|
QList<LayerTreeLayer*> findLayers() const;
|
|
|
|
|
|
QList<LayerTreeGroup*> findGroups() const;
|
|
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
// 以后可扩展:collapsed / groupOpacity 等
|
2026-02-05 15:32:34 +08:00
|
|
|
|
};
|
2026-03-14 00:38:44 +08:00
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
// 保持向后兼容
|
2026-03-14 00:38:44 +08:00
|
|
|
|
using LayerTreeGroupNode = LayerTreeGroup;
|