Files
HPPA/HPPA/LayerTreeView.cpp
2026-04-02 10:34:57 +08:00

53 lines
1.1 KiB
C++

#include "LayerTreeView.h"
#include "LayerTreeViewMenuProvider.h"
#include <QContextMenuEvent>
#include <QMenu>
LayerTreeView::LayerTreeView(QWidget* parent)
: QTreeView(parent), m_menuProvider(nullptr)
{
}
LayerTreeView::~LayerTreeView()
{
delete m_menuProvider;
}
void LayerTreeView::setMenuProvider(LayerTreeViewMenuProvider* provider)
{
m_menuProvider = provider;
}
void LayerTreeView::contextMenuEvent(QContextMenuEvent* event)
{
if (!m_menuProvider)
return;
const QModelIndex idx = indexAt(event->pos());
if (idx.isValid())
setCurrentIndex(idx);
else
setCurrentIndex(QModelIndex());
QMenu* menu = m_menuProvider->createContextMenu();
menu->setStyleSheet(R"(
QMenu {
background-color: #2a5dec;
color: white;
}
QMenu::item:selected {
background-color: #1a4ddc;
}
QMenu::separator {
height: 1px;
background: white;
}
)");
if (menu)
{
menu->exec(event->globalPos());
delete menu;
}
//QTreeView::contextMenuEvent(event);
}