##// END OF EJS Templates
Connects variable widget to visualization widget...
Connects variable widget to visualization widget The connection is used to populate variable menu with the plot menu

File last commit:

r247:96c4c8973e0c
r249:3d1d1572319d
Show More
VariableInspectorWidget.cpp
50 lines | 1.6 KiB | text/x-c | CppLexer
/ gui / src / Variable / VariableInspectorWidget.cpp
#include <Variable/VariableController.h>
#include <Variable/VariableInspectorWidget.h>
#include <Variable/VariableModel.h>
#include <ui_VariableInspectorWidget.h>
#include <QSortFilterProxyModel>
#include <SqpApplication.h>
VariableInspectorWidget::VariableInspectorWidget(QWidget *parent)
: QWidget{parent}, ui{new Ui::VariableInspectorWidget}
{
ui->setupUi(this);
// Sets model for table
auto sortFilterModel = new QSortFilterProxyModel{this};
sortFilterModel->setSourceModel(sqpApp->variableController().variableModel());
ui->tableView->setModel(sortFilterModel);
// Connection to show a menu when right clicking on the tree
ui->tableView->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->tableView, &QTableView::customContextMenuRequested, this,
&VariableInspectorWidget::onTableMenuRequested);
}
VariableInspectorWidget::~VariableInspectorWidget()
{
delete ui;
}
void VariableInspectorWidget::onTableMenuRequested(const QPoint &pos) noexcept
{
auto selectedIndex = ui->tableView->indexAt(pos);
if (selectedIndex.isValid()) {
// Gets the model to retrieve the underlying selected variable
auto model = sqpApp->variableController().variableModel();
if (auto selectedVariable = model->variable(selectedIndex.row())) {
QMenu tableMenu{};
// Emit a signal so that potential receivers can populate the menu before displaying it
emit tableMenuAboutToBeDisplayed(&tableMenu, selectedVariable);
if (!tableMenu.isEmpty()) {
tableMenu.exec(mapToGlobal(pos));
}
}
}
}