at methode verify the avaibility of the index but return an execption in case of error. 1) You can do : a try catch (and return the null ptr in case of out_of_range. 2) Keep your verification and use [] instead of at
@@ -32,6 +32,8 public: | |||||
32 | createVariable(const QString &name, const SqpDateTime &dateTime, |
|
32 | createVariable(const QString &name, const SqpDateTime &dateTime, | |
33 | std::unique_ptr<IDataSeries> defaultDataSeries) noexcept; |
|
33 | std::unique_ptr<IDataSeries> defaultDataSeries) noexcept; | |
34 |
|
34 | |||
|
35 | std::shared_ptr<Variable> variable(int index) const; | |||
|
36 | ||||
35 | // /////////////////////////// // |
|
37 | // /////////////////////////// // | |
36 | // QAbstractTableModel methods // |
|
38 | // QAbstractTableModel methods // | |
37 | // /////////////////////////// // |
|
39 | // /////////////////////////// // |
@@ -44,6 +44,11 VariableModel::createVariable(const QString &name, const SqpDateTime &dateTime, | |||||
44 | return variable; |
|
44 | return variable; | |
45 | } |
|
45 | } | |
46 |
|
46 | |||
|
47 | std::shared_ptr<Variable> VariableModel::variable(int index) const | |||
|
48 | { | |||
|
49 |
return (index >= 0 && index < impl->m_Variables.size()) ? impl->m_Variables.at(index) : nullptr;
|
|||
|
50 | } | |||
|
51 | ||||
47 | int VariableModel::columnCount(const QModelIndex &parent) const |
|
52 | int VariableModel::columnCount(const QModelIndex &parent) const | |
48 | { |
|
53 | { | |
49 | Q_UNUSED(parent); |
|
54 | Q_UNUSED(parent); |
@@ -32,4 +32,18 VariableInspectorWidget::~VariableInspectorWidget() | |||||
32 |
|
32 | |||
33 | void VariableInspectorWidget::onTableMenuRequested(const QPoint &pos) noexcept |
|
33 | void VariableInspectorWidget::onTableMenuRequested(const QPoint &pos) noexcept | |
34 | { |
|
34 | { | |
|
35 | auto selectedIndex = ui->tableView->indexAt(pos); | |||
|
36 | if (selectedIndex.isValid()) { | |||
|
37 | // Gets the model to retrieve the underlying selected variable | |||
|
38 | auto model = sqpApp->variableController().variableModel(); | |||
|
39 | if (auto selectedVariable = model->variable(selectedIndex.row())) { | |||
|
40 | QMenu tableMenu{}; | |||
|
41 | ||||
|
42 | /// @todo ALX : make menu | |||
|
43 | ||||
|
44 | if (!tableMenu.isEmpty()) { | |||
|
45 | tableMenu.exec(mapToGlobal(pos)); | |||
|
46 | } | |||
|
47 | } | |||
|
48 |
}
else log error |
|||
35 | } |
|
49 | } |
General Comments 0
You need to be logged in to leave comments.
Login now