Files
HPPA/HPPA/LayerTreeGroupNode.h

45 lines
1.3 KiB
C
Raw Normal View History

2026-04-02 10:34:57 +08:00
#pragma once
#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
{
Q_OBJECT
public:
2026-03-14 00:38:44 +08:00
explicit LayerTreeGroup(const QString& name = QString(),
QObject* parent = nullptr);
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-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;