EnergySpectrumAnalyer/src/MeasureAnalysisActions.cpp

119 lines
4.5 KiB
C++
Raw Normal View History

2026-03-02 11:07:51 +08:00
#include "MeasureAnalysisActions.h"
#include <QAction>
namespace MeasureAnalysisTree {
MeasureAnalysisActions::MeasureAnalysisActions(QObject* parent)
: QObject(parent)
{
_act_add_measure_analysis_project = new QAction(QStringLiteral("新建测量分析"), this);
_act_add_measure_analysis_project->setStatusTip(QStringLiteral("新建测量分析"));
_act_add_measure_analysis_project->setDisabled(false);
connect(_act_add_measure_analysis_project, &QAction::triggered, [this]() {
emit addMeasureAnalysisProject();
});
_act_rm_measure_analysis_project = new QAction(QStringLiteral("删除测量分析"), this);
_act_rm_measure_analysis_project->setStatusTip(QStringLiteral("删除测量分析"));
_act_rm_measure_analysis_project->setDisabled(true);
connect(_act_rm_measure_analysis_project, &QAction::triggered, [this]() {
emit rmMeasureAnalysisProject();
});
_act_modify_measure_analysis_project = new QAction(QStringLiteral("修改测量分析"), this);
_act_modify_measure_analysis_project->setStatusTip(QStringLiteral("修改测量分析"));
_act_modify_measure_analysis_project->setDisabled(true);
connect(_act_modify_measure_analysis_project, &QAction::triggered, [this]() {
emit modifyMeasureAnalysisProject();
});
_act_group_measure_analysis_project = new QActionGroup(this);
_act_group_measure_analysis_project->addAction(_act_add_measure_analysis_project);
_act_group_measure_analysis_project->addAction(_act_rm_measure_analysis_project);
_act_group_measure_analysis_project->addAction(_act_modify_measure_analysis_project);
_act_add_analyze_view = new QAction(QStringLiteral("添加分析视图"), this);
_act_add_analyze_view->setStatusTip(QStringLiteral("添加分析视图"));
_act_add_analyze_view->setDisabled(true);
connect(_act_add_analyze_view, &QAction::triggered, [this]() {
emit addAnalyzeView();
});
_act_rm_analyze_view = new QAction(QStringLiteral("删除分析视图"), this);
_act_rm_analyze_view->setStatusTip(QStringLiteral("删除分析视图"));
_act_rm_analyze_view->setDisabled(true);
connect(_act_rm_analyze_view, &QAction::triggered, [this]() {
emit rmAnalyzeView();
});
_act_modify_analyze_view = new QAction(QStringLiteral("修改分析视图"), this);
_act_modify_analyze_view->setStatusTip(QStringLiteral("修改分析视图"));
_act_modify_analyze_view->setDisabled(true);
connect(_act_modify_analyze_view, &QAction::triggered, [this]() {
emit modifyAnalyzeView();
});
_act_group_analyze_view = new QActionGroup(this);
_act_group_analyze_view->addAction(_act_add_analyze_view);
_act_group_analyze_view->addAction(_act_rm_analyze_view);
_act_group_analyze_view->addAction(_act_modify_analyze_view);
}
QList<QActionGroup*> MeasureAnalysisActions::GetActionGroups()
{
QList<QActionGroup*> list_act_group;
list_act_group.append(_act_group_measure_analysis_project);
list_act_group.append(_act_group_analyze_view);
return list_act_group;
}
QActionGroup* MeasureAnalysisActions::GetProjectActionGroups()
{
return _act_group_measure_analysis_project;
}
QActionGroup* MeasureAnalysisActions::GetViewActionGroups()
{
return _act_group_analyze_view;
}
void MeasureAnalysisActions::SetActionsAvailable(const TreeItem::TreeItemType& item_type)
{
for (QActionGroup* act_group : this->GetActionGroups()) {
for (QAction* act_item : act_group->actions()) {
act_item->setDisabled(true);
}
}
switch (item_type) {
case TreeItem::TreeItemType::MeasureAnalysisProject:
for (QAction* act_item : _act_group_measure_analysis_project->actions()) {
act_item->setEnabled(true);
}
break;
case TreeItem::TreeItemType::ParticleData:
_act_add_analyze_view->setEnabled(true);
break;
case TreeItem::TreeItemType::ParticleCountData:
_act_add_analyze_view->setEnabled(true);
break;
case TreeItem::TreeItemType::ConformParticleData:
_act_add_analyze_view->setEnabled(true);
break;
case TreeItem::TreeItemType::AnalyzeViewGroup:
_act_add_analyze_view->setEnabled(true);
break;
case TreeItem::TreeItemType::AnalyzeView:
for (QAction* act_item : _act_group_analyze_view->actions()) {
act_item->setEnabled(true);
}
break;
case TreeItem::TreeItemType::None:
break;
default:
_act_add_measure_analysis_project->setEnabled(true);
break;
}
}
}