26 #include "../../af/ApplicationController.h" 32 #include <ui_SensorManagerDialogForm.h> 33 #include <QApplication> 34 #include <QMessageBox> 42 m_ui(new
Ui::SensorManagerDialogForm)
47 m_ui->m_addToolButton->setIcon(QIcon::fromTheme(
"list-add"));
55 m_ui->m_helpPushButton->setPageReference(
"plugins/rp/rp_sensor.html");
82 QList<QTableWidgetItem*> items =
m_ui->m_SensorTableWidget->findItems(text, Qt::MatchContains | Qt::MatchRecursive);
83 items.append(
m_ui->m_SensorTableWidget->findItems(text, Qt::MatchContains | Qt::MatchRecursive));
90 for(
int i = 0; i <
m_ui->m_SensorTableWidget->rowCount(); ++i)
92 QTableWidgetItem* sensor =
m_ui->m_SensorTableWidget->item(i,0);
93 bool sel = items.indexOf(sensor) == -1;
94 m_ui->m_SensorTableWidget->setRowHidden(i, sel);
103 QTableWidgetSelectionRange selrow(r, 0, r, 3);
104 m_ui->m_SensorTableWidget->setRangeSelected(selrow,
true);
112 if (
m_ui->m_SensorTableWidget->item(r, 2)->text().size() &&
m_ui->m_SensorTableWidget->item(r, 3)->text().size())
114 double lower =
m_ui->m_SensorTableWidget->item(r, 2)->text().toDouble();
115 double upper =
m_ui->m_SensorTableWidget->item(r, 3)->text().toDouble();
116 double min =
m_ui->m_SensorTableWidget->item(r, 4)->text().toDouble();
117 double max =
m_ui->m_SensorTableWidget->item(r, 5)->text().toDouble();
120 QMessageBox::warning(
this,
"", tr(
"Invalid limits"));
126 QMessageBox::warning(
this,
"", tr(
"Invalid digital limits"));
130 std::string s =
m_ui->m_SensorTableWidget->item(r, 0)->text().toUtf8().data();
131 std::map<std::string, te::rp::SpectralSensorParams > ::iterator it =
m_Params.find(s);
134 it->second.m_band =
m_ui->m_SensorTableWidget->item(r, 1)->text().toInt();
135 if (it->second.m_lower != lower)
137 it->second.m_lower = lower;
141 if (it->second.m_upper != upper)
143 it->second.m_upper = upper;
147 if (it->second.m_min != min)
149 it->second.m_min = min;
153 if (it->second.m_max != max)
155 it->second.m_max = max;
167 catch (
const std::exception&)
169 std::cout << std::endl <<
"Invalid Value" << std::endl;
178 int reply = QMessageBox::question(
nullptr, tr(
"Mixture Model"), tr(
"There are spectral sensors edited. Save?"), QMessageBox::No, QMessageBox::Yes);
179 if (reply == QMessageBox::Yes)
185 int i =
m_ui->m_SensorTableWidget->currentRow();
186 QTableWidgetItem* sensor =
m_ui->m_SensorTableWidget->item(i, 0);
205 QMessageBox::critical(
this,
"", tr(
"Not implemented yet!"));
210 QList<QTableWidgetItem*> items =
m_ui->m_SensorTableWidget->findItems(
m_ui->m_searchedSensorLineEdit->text(), Qt::MatchContains | Qt::MatchRecursive);
213 QMessageBox::warning(
this,
"", tr(
"Sensor already exists!"));
217 m_ui->m_SensorTableWidget->disconnect(SIGNAL(itemChanged(QTableWidgetItem*)));
221 m_ui->m_SensorTableWidget->insertRow(newrow);
223 QTableWidgetItem *item0 =
new QTableWidgetItem(
m_ui->m_searchedSensorLineEdit->text());
224 QTableWidgetItem *item1 =
new QTableWidgetItem(
"");
225 QTableWidgetItem *item2 =
new QTableWidgetItem(
"");
226 QTableWidgetItem *item3 =
new QTableWidgetItem(
"");
227 QTableWidgetItem *item4 =
new QTableWidgetItem(
"");
228 QTableWidgetItem *item5 =
new QTableWidgetItem(
"");
230 m_ui->m_SensorTableWidget->setItem(newrow, 0, item0);
231 m_ui->m_SensorTableWidget->setItem(newrow, 1, item1);
232 m_ui->m_SensorTableWidget->setItem(newrow, 2, item2);
233 m_ui->m_SensorTableWidget->setItem(newrow, 3, item3);
234 m_ui->m_SensorTableWidget->setItem(newrow, 4, item4);
235 m_ui->m_SensorTableWidget->setItem(newrow, 5, item5);
236 #if (QT_VERSION >= 0x050000) 237 m_ui->m_SensorTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
239 m_ui->m_SensorTableWidget->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
261 m_ui->m_SensorTableWidget->setRowCount(newrow);
263 for (std::map<std::string, te::rp::SpectralSensorParams > ::iterator it =
m_Params.begin(); it !=
m_Params.end(); ++it)
265 m_ui->m_SensorTableWidget->insertRow(newrow);
267 QTableWidgetItem *item0 =
new QTableWidgetItem(it->first.c_str());
268 QTableWidgetItem *item1 =
new QTableWidgetItem();
269 QTableWidgetItem *item2 =
new QTableWidgetItem();
270 QTableWidgetItem *item3 =
new QTableWidgetItem();
271 QTableWidgetItem *item4 =
new QTableWidgetItem();
272 QTableWidgetItem *item5 =
new QTableWidgetItem();
273 item1->setData(Qt::DisplayRole, it->second.m_band);
274 item2->setData(Qt::DisplayRole, it->second.m_lower);
275 item3->setData(Qt::DisplayRole, it->second.m_upper);
276 item4->setData(Qt::DisplayRole, it->second.m_min);
277 item5->setData(Qt::DisplayRole, it->second.m_max);
279 m_ui->m_SensorTableWidget->setItem(newrow, 0, item0);
280 m_ui->m_SensorTableWidget->setItem(newrow, 1, item1);
281 m_ui->m_SensorTableWidget->setItem(newrow, 2, item2);
282 m_ui->m_SensorTableWidget->setItem(newrow, 3, item3);
283 m_ui->m_SensorTableWidget->setItem(newrow, 4, item4);
284 m_ui->m_SensorTableWidget->setItem(newrow, 5, item5);
285 #if (QT_VERSION >= 0x050000) 286 m_ui->m_SensorTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
288 m_ui->m_SensorTableWidget->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
This file defines a class for a MixtureModel Wizard page.
void SaveSensorParams(std::map< std::string, SpectralSensorParams > ¶ms)
Saves in SpectralSensor.json file the spectral sensors parameters.
std::map< std::string, SpectralSensorParams > getSensorParams()
Returns a map with spectral sensors parameters defined in SpectralSensor.json file.
A Qt dialog that allows users to run a mixture model operation defined by RP module.
A dialog used to manage Spectral Sensors.