Files
HPPA/HPPA/LayerTreeGroupNode.h
2026-04-02 10:34:57 +08:00

45 lines
1.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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