#pragma once #include #include #include class LayerTreeView; class LayerTreeModel; class MapLayer; class LayerTreeViewMenuProvider : public QObject { Q_OBJECT public: explicit LayerTreeViewMenuProvider(LayerTreeView* view, QObject* parent = nullptr); ~LayerTreeViewMenuProvider() override = default; // 根据给定 index 创建一个菜单,调用者负责删除返回的 QMenu* QMenu* createContextMenu(); private: LayerTreeView* m_view = nullptr; // not owned QModelIndex m_contextIndex; };