Files
HPPA/HPPA/LayerTreeViewMenuProvider.cpp
tangchao0503 09095592af fix
1、基于新框架实现点击显示光谱;
2、影像拉伸显示优化;
3、右键菜单新增:移除所有栅格图层;
2026-03-06 17:33:30 +08:00

56 lines
1.5 KiB
C++

#include "LayerTreeViewMenuProvider.h"
#include "LayerTreeView.h"
#include "LayerTreeModel.h"
#include "LayerTreeNode.h"
#include "HPPA.h"
#include <QAction>
#include <QDebug>
LayerTreeViewMenuProvider::LayerTreeViewMenuProvider(LayerTreeView* view, QObject* parent)
: QObject(parent), m_view(view)
{
}
QMenu* LayerTreeViewMenuProvider::createContextMenu()
{
m_contextIndex = m_view->currentIndex();
QMenu* menu = new QMenu();
if (!m_contextIndex.isValid())
{
return menu;
}
const LayerTreeModel* model = static_cast<const LayerTreeModel*>(m_contextIndex.model());
if (!model)
{
return menu;
}
LayerTreeNode* node = static_cast<LayerTreeNode*>(m_contextIndex.internalPointer());
if (!node)
{
return menu;
}
if (node->type() == LayerTreeNode::Type::Layer)
{
QAction* removeAction = new QAction(QStringLiteral("ÒÆ³ýͼ²ã"), menu);
connect(removeAction, &QAction::triggered, HPPA::instance(), &HPPA::removeLayerByTreeIndex);
menu->addAction(removeAction);
}
else if (node->type() == LayerTreeNode::Type::Group)
{
HPPA* app = HPPA::instance();
if (app && node == app->rasterGroupNode())
{
QAction* removeAllAction = new QAction(QStringLiteral("ÒÆ³ýËùÓÐͼ²ã"), menu);
connect(removeAllAction, &QAction::triggered, app, &HPPA::removeAllLayersInRasterGroup);
menu->addAction(removeAllAction);
}
}
return menu;
}